xiejun
2023-09-13 81edec7c3bdef059a44e7c5e7b81d35ea09a72ed
人员组织结构申请接口开发
已修改2个文件
156 ■■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2329,12 +2329,17 @@
        sb.append(" where 1=1 ");
        sb.append(" and lastr=1 and lastv=1" );
        if(isCodeOrGroupCode) {
            sb.append(" and groupcode in (");
        }else{
            sb.append(" and id in (");
        }
            sb.append(" and ( groupcode in (");
        sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
        sb.append(")");
            sb.append(" or id in (");
            sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
            sb.append("))");
        }else{
            sb.append(" and id in (");
            sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
            sb.append(")");
        }
        List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
        List<ClientBusinessObject> cboList=    ChangeMapTOClientBusinessObjects(dataMapList);
@@ -2424,7 +2429,7 @@
                    List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
                    log.info("codeCbos size:" + newCodeAllCodeList.size());
                    if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
                        CodeAllCode codeCbo = codeAllCodeList.get(0);
                        CodeAllCode codeCbo = newCodeAllCodeList.get(0);
                        log.info("codeCbos code:" + codeCbo.getId());
                        codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue());
                        codeAllCodeList.add(codeCbo);
@@ -2616,7 +2621,21 @@
        //没有限制分类,但是一个模板只可能在一个业务类型里面,所以直接查询这个业务类型即可
        if (!CollectionUtils.isEmpty(conditionMap)) {
            final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " t where 1 = 1 "};
            String tableName="";
            R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
            if(r.isSuccess()) {
                BtmTypeVO btmTypeVO = r.getData();
                if (btmTypeVO != null) {
                    tableName = btmTypeVO.getTableName();
                }
            }
            if (StringUtils.isBlank(tableName)) {
                String errormsg="根据业务类型为查询到相关业务表";
                errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
                return;
            }
            final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
            conditionMap.forEach((key, value) -> {
                if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
                    sql[0] += " and " + key + " is null ";
@@ -2836,6 +2855,9 @@
            ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
            if(isCodeOrGroupCode){
                code=sysDataObject.getAttributeValue("GROUPCODE");
                if(StringUtils.isBlank(code)){
                    code=sysDataObject.getId();
                }
            }
            CodeOrderDTO orderDTO = new CodeOrderDTO();
            if(codeDataMap.containsKey(code)){
@@ -2844,11 +2866,7 @@
                orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                orderDTO.setOid(sysDataObject.getOid());//数据oid
                orderDTO.setLcStatus(rowDatas.getStatus());//状态
                if(isCodeOrGroupCode){
                    orderDTO.setId(sysDataObject.getId());
                }else{
                    orderDTO.setId(code);
                }
                orderDTO.setTs(sysDataObject.getTs());
                orderDTO.setBtmname(codeClassifyVO.getBtmname());//业务类型
                orderDTO.setDescription("集成调用:更新");//数据描述
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -61,10 +61,10 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX;
import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC;
/***
@@ -359,9 +359,9 @@
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        String systemCode=personData.getSystemCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        String message="";
        if(isUsedFlag){
            AtomicBoolean success= new AtomicBoolean(true);
            List<PersonMasterData> masterDataList=new ArrayList<>();
            List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
            try {
@@ -371,7 +371,7 @@
                masterDataList = personData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
                    success.set(false);
                    log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                    throw  new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                }
@@ -383,12 +383,12 @@
                log.info("end:分类查询完毕");
                //获取分类模板信息
                if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                    success=false;
                    success.set(false);
                    throw  new  Throwable ("根据配置分类的分类编号,未获取到分类信息");
                }
                CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                    success=false;
                    success.set(false);
                    throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                }
@@ -440,10 +440,11 @@
                        deleteDataVOList.add(object);
                    }else{
                        String worker_category=personMasterData.getWorker_category();
                        codeList.add(personMasterData.getLm_code());
                        object.setOperate("create");
                        applyDataVOList.add(object);
                    }
                    codeList.add(personMasterData.getLm_code());
                });
                R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -532,10 +533,31 @@
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
                            String code=engineService.addSaveCode(orderDTO);
                            if(StringUtils.isNotBlank(code)) {
                                StringBuffer sqlsb = new StringBuffer();
                                sqlsb.append(" select * from ");
                                sqlsb.append(tableName);
                                sqlsb.append(" where 1=1 ");
                                sqlsb.append(" and lastr=1 and lastv=1");
                                sqlsb.append(" and id in (");
                                sqlsb.append(VciBaseUtil.toInSql(code));
                                sqlsb.append(")");
                                List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
                                if (!CollectionUtils.isEmpty(newDataMapList)) {
                                    String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
                                    List<String> oidList = new ArrayList<>();
                                    oidList.add(oid);
                                    //如果有申请就去调用申请集团码
                                    if (isPersonApplyGroupCode) {
                                        mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                                        success.set(true);
                                        mesg = "数据保存成功,等待申请集团码";
                                    }
                                }
                            }
                        } catch (Exception e) {
                            mesg=e.getMessage();
                            e.getMessage();
                            e.printStackTrace();
                        }finally {
                            XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
@@ -547,7 +569,7 @@
                        }
                    });
                    resultDataObjectDetailDOs.addAll(xDOs);
                    boolean finalSuccess1 = success;
                    boolean finalSuccess1 = success.get();
                    String finalMessage1 = message;
                    resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
                        ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -560,17 +582,12 @@
                        resultMdMappingList.add(resultMdMapping);
                    });
                    log.info("end:申请获取完毕");
                    //如果有申请就去调用申请集团码
                    if(isPersonApplyGroupCode){
                        List<String> oidList=new ArrayList<>();
                        mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            }catch (Throwable e){
                success=false;
                success.set(false);
                message="人员数据接受失败:"+e.getMessage();
                //组织返回结果
                boolean finalSuccess = success;
                boolean finalSuccess = success.get();
                String finalMessage = message;
                masterDataList.stream().forEach(masterData -> {
                    ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -583,7 +600,7 @@
                });
            }finally {
                resultOrgData.setMessage(message);
                resultOrgData.setSuccess(success);
                resultOrgData.setSuccess(success.get());
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
            }
@@ -591,7 +608,7 @@
            String data = JSONObject.toJSONString(personData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson");
                this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForPerson");
            }catch (Throwable e){
                e.printStackTrace();
            }
@@ -609,10 +626,9 @@
    public ResultOrgData syncDataForOrg(OrgData orgData) {
        boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
        ResultOrgData resultOrgData=new ResultOrgData();
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        AtomicBoolean success= new AtomicBoolean(true);
        String message="";
        String systemCode="";
        if(isUsedFlag){
@@ -626,7 +642,7 @@
                orgMasterDataList = orgData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
                    success.set(false);
                    log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                    throw  new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                }
@@ -638,12 +654,12 @@
                log.info("end:分类查询完毕");
                //获取分类模板信息
                if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                    success=false;
                    success.set(false);
                    throw  new  Throwable ("根据配置分类的分类编号,未获取到分类信息");
                }
                CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                    success=false;
                    success.set(false);
                    throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                }
@@ -653,14 +669,14 @@
                List<String> codeList=new ArrayList<>();
                List<ApplyDataVO> applyDataVOList=new ArrayList<>();
                List<ApplyDataVO> deleteDataVOList=new ArrayList<>();
                orgMasterDataList.stream().forEach(personMasterData -> {
                orgMasterDataList.stream().forEach(orgMasterData -> {
                    ApplyDataVO object=new ApplyDataVO();
                    object.setCode(personMasterData.getMdm_code());//编码
                    object.setCreator(personMasterData.getCreator());//创建者
                    object.setEditor(personMasterData.getModifier());//修改者
                    object.setId(personMasterData.getPk_mdm());//主键
                    object.setCode(orgMasterData.getMdm_code());//编码
                    object.setCreator(orgMasterData.getCreator());//创建者
                    object.setEditor(orgMasterData.getModifier());//修改者
                    object.setId(orgMasterData.getPk_mdm());//主键
                    object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(orgMasterData);
                    List<ProppertyVO> proppertyVOList=new ArrayList<>();
                    /***
                     * 根据配置文件获取枚举值
@@ -686,14 +702,15 @@
                    });
                    object.setProp(proppertyVOList);
                    if(personMasterData.getDr()==1){
                    if(orgMasterData.getDr()==1){
                        object.setOperate("delete");//操作类型
                        deleteDataVOList.add(object);
                    }else{
                        codeList.add(personMasterData.getMdm_code());
                        object.setOperate("create");
                        applyDataVOList.add(object);
                    }
                    codeList.add(orgMasterData.getMdm_code());
                });
                R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -782,7 +799,29 @@
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
                            String code=engineService.addSaveCode(orderDTO);
                            if(StringUtils.isNotBlank(code)) {
                                StringBuffer sqlsb = new StringBuffer();
                                sqlsb.append(" select * from ");
                                sqlsb.append(tableName);
                                sqlsb.append(" where 1=1 ");
                                sqlsb.append(" and lastr=1 and lastv=1");
                                sqlsb.append(" and id in (");
                                sqlsb.append(VciBaseUtil.toInSql(code));
                                sqlsb.append(")");
                                List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
                                if (!CollectionUtils.isEmpty(newDataMapList)) {
                                    String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
                                    List<String> oidList = new ArrayList<>();
                                    oidList.add(oid);
                                    //如果有申请就去调用申请集团码
                                    if (isPersonApplyGroupCode) {
                                        mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                                        success.set(true);
                                        mesg = "数据保存成功,等待申请集团码";
                                    }
                                }
                            }
                        } catch (Exception e) {
                            mesg=e.getMessage();
                            e.getMessage();
@@ -797,7 +836,7 @@
                        }
                    });
                    resultDataObjectDetailDOs.addAll(xDOs);
                    boolean finalSuccess1 = success;
                    boolean finalSuccess1 = success.get();
                    String finalMessage1 = message;
                    resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
                        ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -810,17 +849,12 @@
                        resultMdMappingList.add(resultMdMapping);
                    });
                    log.info("end:申请获取完毕");
                    //如果有申请就去调用申请集团码
                    if(isPersonApplyGroupCode){
                        List<String> oidList=new ArrayList<>();
                        mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            }catch (Throwable e){
                success=false;
                success.set(false);
                message="人员数据接受失败:"+e.getMessage();
                //组织返回结果
                boolean finalSuccess = success;
                boolean finalSuccess = success.get();
                String finalMessage = message;
                orgMasterDataList.stream().forEach(masterData -> {
                    ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -833,7 +867,7 @@
                });
            }finally {
                resultOrgData.setMessage(message);
                resultOrgData.setSuccess(success);
                resultOrgData.setSuccess(success.get());
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
            }
@@ -841,7 +875,7 @@
            String data = JSONObject.toJSONString(orgData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg");
                this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForOrg");
            }catch (Throwable e){
                e.printStackTrace();
            }