xiejun
2023-09-11 fc4d1e17b9ed87e34835316d0e8b89feebe32be6
人员组织结构申请接口开发
已修改9个文件
已添加1个文件
580 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<clsfs>
    <clsf library="renyuan">
        <prop    sourceKey="id"    sourceName="编码"    targetKey="lm_code"    targetName="编码"/>
        <prop    sourceKey="group_code"    sourceName="集团码"    targetKey="ordernum"    targetName="集团码"/>
        <prop    sourceKey="name"    sourceName="名称"    targetKey="name"    targetName="名称"/>
        <prop    sourceKey="creator"    sourceName="创建人"    targetKey="    creator    "    targetName="创建人"/>
        <prop    sourceKey="createtime"    sourceName="创建时间"    targetKey="createtime"    targetName="创建时间"/>
        <prop    sourceKey="modifier"    sourceName="最后修改人"    targetKey="modifier"    targetName="最后修改人"/>
        <prop    sourceKey="modifytime"    sourceName="最后修改时间"    targetKey="modifytime"    targetName="最后修改时间"/>
    </clsf>
</clsfs>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java
@@ -17,4 +17,46 @@
     * æè¿°
     */
    private String descript;
    public String getMdm_code() {
        return mdm_code;
    }
    public void setMdm_code(String mdm_code) {
        this.mdm_code = mdm_code;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescript() {
        return descript;
    }
    public void setDescript(String descript) {
        this.descript = descript;
    }
    @Override
    public String toString() {
        return "EnumerableData{" +
            "mdm_code='" + mdm_code + '\'' +
            ", code='" + code + '\'' +
            ", name='" + name + '\'' +
            ", descript='" + descript + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java
@@ -106,7 +106,7 @@
    private String  link_fieldvalue;
    private String floy_middatastatus;
    private String originalcode;
    private String pk_mdn;
    private String pk_mdm;
    private String mdm_duplicate;
    private String mdm_code;
    private String mdm_version;
@@ -366,12 +366,12 @@
        this.originalcode = originalcode;
    }
    public String getPk_mdn() {
        return pk_mdn;
    public String getPk_mdm() {
        return pk_mdm;
    }
    public void setPk_mdn(String pk_mdn) {
        this.pk_mdn = pk_mdn;
    public void setPk_mdm(String pk_mdn) {
        this.pk_mdm = pk_mdn;
    }
    public String getMdm_duplicate() {
@@ -464,7 +464,7 @@
            ", link_fieldvalue='" + link_fieldvalue + '\'' +
            ", floy_middatastatus='" + floy_middatastatus + '\'' +
            ", originalcode='" + originalcode + '\'' +
            ", pk_mdn='" + pk_mdn + '\'' +
            ", pk_mdm='" + pk_mdm + '\'' +
            ", mdm_duplicate='" + mdm_duplicate + '\'' +
            ", mdm_code='" + mdm_code + '\'' +
            ", mdm_version='" + mdm_version + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java
@@ -187,7 +187,7 @@
    private String flow_middatastatus;
    private String employer;
    private int mdm_duplicate;
    private EnumerableData gerder_entity;
    private EnumerableData gender_entity;
    private EnumerableData employment_type_entity;
    private String gerder;
    private  String employment_type;
@@ -561,12 +561,12 @@
        this.mdm_duplicate = mdm_duplicate;
    }
    public EnumerableData getGerder_entity() {
        return gerder_entity;
    public EnumerableData getGender_entity() {
        return gender_entity;
    }
    public void setGerder_entity(EnumerableData gerder_entity) {
        this.gerder_entity = gerder_entity;
    public void setGender_entity(EnumerableData gender_entity) {
        this.gender_entity = gender_entity;
    }
    public EnumerableData getEmployment_type_entity() {
@@ -659,7 +659,7 @@
    @Override
    public String toString() {
        return "MasterData{" +
        return "PersonMasterData{" +
            "id='" + id + '\'' +
            ", lm_code='" + lm_code + '\'' +
            ", group_code='" + group_code + '\'' +
@@ -705,8 +705,8 @@
            ", flow_middatastatus='" + flow_middatastatus + '\'' +
            ", employer='" + employer + '\'' +
            ", mdm_duplicate=" + mdm_duplicate +
            ", gerder_entity='" + gerder_entity + '\'' +
            ", employment_type_entity='" + employment_type_entity + '\'' +
            ", gender_entity=" + gender_entity +
            ", employment_type_entity=" + employment_type_entity +
            ", gerder='" + gerder + '\'' +
            ", employment_type='" + employment_type + '\'' +
            ", employment_type_nane='" + employment_type_nane + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json
@@ -1,79 +1,77 @@
{
  msg:null,
  masterData:[
  {
    "departnent_code": "108040",
    "is_virtual": 0,
    "id_route": "2843121148743936]2843121413050624]",
    "departnent_type": "1",
    "nodifytime": "2023-06-1510:34:37",
    "mdm_workflow_status":l,
    "modifier":"王硕",
    "telephone_nunber":null,
  "msg": null,
  "masterData": [{
    "country": "中国大陆",
    "education": "大学本科",
    "mdm_workflow_status": 0,
    "worker_category": "在岗",
    "modifier": "主数据系统",
    "mdm_datastatus":3,
    "parent_departnent_nane":“财务管理部",
    "ndn_cleanstatus": "VAITING",
    "link_fieldvalue": null,
    "dr:0,"
    dr_ndm_code
    ":"
    0,
    "enable_status :3,"
    ndn_parentcode
    ";null,"
    departent
    head
    ":null,"
    floy_middatastatus
    ":null,"
    originalcode
    ":null,"
    node
    type
    ":"
    éƒ¨,
    "company_code": "20220423,department_level"
    :
    "2",
    "nane_route": null,
    "sort_order": "81”,"
    pk_mdn
    ":"
    1720683591179436130
    ",display_status": "不显示,"
    parent_department
    _code
    ":"
    108000
    ",creator:"
    çŽ‹ç‘žæ³¢
    â€,
    "createtine": 2023-05-08
    10: 45
    :
    33
    ï¼Œ
    "departnent nane": é›†å›¢è´¢åС处6666
    â€
    .
    "ndm duplicate": 0,
    ndn
    code
    ?
    :
    "99",
    /dcpartment_status
    ":"
    ä½œåºŸ
    â€
    ï¼Œ
    ndm_version
    ":4,company name :中国航发黎明"
    original
    nane: null,
    "departnent head code": null,
    "ts :"
    2023-06-1510: 34
    :
    37.451
    "]], distributeToken=, code=0, systemCode=nhdept,ndType=departnent_basic, action=distribute_manual}
    "dr": 0,
    "flow_middatastatus": null,
    "employer": "领焊加工厂",
    "parent_dept_code": "403000",
    "politiccountenance": null,
    "outer_email": null,
    "id_number": "210104198806062312",
    "worker_level": "初级工《基本生产》",
    "admin_division_code": null,
    "work_title": null,
    "mdm_duplicate":0,
    "employer_code":"403000",
    "birthplace": "辽宁省沈阳市”,",
    "nationality": "汉族",
    "gender_entity":{
      "mdm_code":"1",
      "code":"5",
      "name":"男性",
      "descript":"男女,集团标准要求: ç”·æ€§ 1和5,女性2和6"
    },
    "name":"田苗",
    "position":"飞机发动机领金工",
    "employment_type_entity":{
      "mdm_code":"1",
      "code":"1,",
      "name":"部门主职",
      "descript":"1、部门王职 2、部门兼职"
    },
    "parent_dept_name":"领焊加工厂",
    "brithday": "1988-06-06",
    "employment_type": "1",
    "employment_type_nane":"部门主职",
    "group_code":"19885013",
    "gender":1,
    "admin_division":null,
    "modifytime" :"2023-08-29",
    "worker_security_level":null,
    "mdm_cleanstatus":"WAITINC",
    "dr_mdm_code": "0",
    "mdm_parentcode":null,
    "mobile_phone":"15140256567",
    "id_type":"身份证",
    "dept_type":"机匣火焰筒工段",
    "worker_email":null,
    "pk_mdm":"1723S7091785C804868",
    "employment_form":"正式在岗人员",
    "lm_code":"19885013",
    "creator":"主数据系统" ,
    "createtime":"2023-06-1201:39:40",
    "office_telephone":null,
    "citizenship":"辽广省沈阳市",
    "dept_name":"403002",
    "mdm_code":"16305",
    "gender_name":"男性”,",
    "is_keyposion":"是",
    "worker_duty":"飞机友动机钣金工",
    "marital_status":"未婚",
    "mdm_version":"75,",
    "ts":"2025-08-t9 17:52:19.026"
  }],
  "distributeToken":"",
  "code":0,
  "systemCode":"mhperson",
  "mdType": "person_basic",
  "action": "distribute_subscribe"
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java
@@ -7,10 +7,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
 * ç”³è¯·äººå‘˜éƒ¨é—¨æŽ§åˆ¶å™¨
@@ -37,7 +34,7 @@
     * @throws Throwable
     */
    @PostMapping("/syncDataForPerson")
    public ResultOrgData syncDataForPerson(@RequestParam PersonData personData)  {
    public ResultOrgData syncDataForPerson(@RequestBody PersonData personData)  {
        String result="";
        try {
            return universalInterfaceI.syncDataForPerson(personData);
@@ -55,7 +52,7 @@
     * @throws Throwable
     */
    @PostMapping("/syncDataForOrg")
    public ResultOrgData syncDataForOrg(@RequestParam OrgData orgData)  {
    public ResultOrgData syncDataForOrg(@RequestBody OrgData orgData)  {
        String result="";
        try {
            return universalInterfaceI.syncDataForOrg(orgData);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -111,4 +111,12 @@
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode);
    /***
     * ç”³è¯·é›†å›¢ç æŽ¥å£
     * @param idList æ•°æ®oid
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @param operationType
     */
    void sendApplyGroupcode(List<String> idList,String btmName,String operationType);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -4455,7 +4455,7 @@
     * @param idList
     * @param btmName
     */
    private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
    public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
        String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
        if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
            mdmInterJtClient.applyGroupCode(oids,btmName);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -352,14 +352,23 @@
     */
    @Override
    public ResultOrgData syncDataForPerson(PersonData personData) {
        boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
        ResultOrgData resultOrgData=new ResultOrgData();
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        String systemCode=personData.getSystemCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        String message="";
        if(isUsedFlag){
            List<PersonMasterData> masterDataList = personData.getMasterData();
            List<PersonMasterData> masterDataList=new ArrayList<>();
            List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
            try {
                if(personData==null){
                    throw new Throwable("传入参数为null");
                }
                masterDataList = personData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
@@ -400,15 +409,31 @@
                    object.setEditor(personMasterData.getModifier());//修改者
                    object.setId(personMasterData.getId());//主键
                    object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
                    List<ProppertyVO> proppertyVOList=new ArrayList<>();
                    /***
                     * æ ¹æ®é…ç½®æ–‡ä»¶èŽ·å–æžšä¸¾å€¼
                     */
                    fields.stream().forEach(field->{
                        if(dataMap.containsKey(field)){
                            String enumFiled= dataMap.get(field);
                            EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class);
                            String enumCode=enumerableData.getCode();
                            //String enumCodeValue=enumerableData.getName();
                            ProppertyVO proppertyVO=new ProppertyVO();
                            proppertyVO.setKey(field);
                            proppertyVO.setValue(enumCode);
                            proppertyVOList.add(proppertyVO);
                            dataMap.remove(field);
                        }
                    });
                    dataMap.forEach((key,vaule)->{
                        ProppertyVO proppertyVO=new ProppertyVO();
                        proppertyVO.setKey(key);
                        proppertyVO.setValue(vaule);
                        proppertyVOList.add(proppertyVO);
                    });
                    object.setProp(proppertyVOList);
                    if(personMasterData.getDr()==1){
                        object.setOperate("delete");//操作类型
@@ -470,7 +495,7 @@
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
                if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    log.info("start:修改数据执行完毕");
                    boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
@@ -478,7 +503,7 @@
                }
                if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO);
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
@@ -492,6 +517,7 @@
                            CodeOrderDTO orderDTO = new CodeOrderDTO();
                            List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                            orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                            orderDTO.setTemplateOid(templateVO.getOid());
                            if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                                ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                                    if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
@@ -503,6 +529,7 @@
                                    }
                                });
                            }
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
@@ -533,6 +560,11 @@
                        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;
@@ -554,10 +586,17 @@
                resultOrgData.setSuccess(success);
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
                return resultOrgData;
            }
            String resultStr = JSONObject.toJSONString(resultOrgData);
            String data = JSONObject.toJSONString(personData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        Object object = JSONObject.toJSON(resultOrgData);
        return resultOrgData;
    }
    /****
@@ -568,7 +607,246 @@
     */
    @Override
    public ResultOrgData syncDataForOrg(OrgData orgData) {
        return null;
        boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
        ResultOrgData resultOrgData=new ResultOrgData();
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        String message="";
        String systemCode="";
        if(isUsedFlag){
            List<OrgMasterData> orgMasterDataList=new ArrayList<>();
            List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
            try {
                if(orgData==null){
                    throw new Throwable("传入参数为null");
                }
                systemCode=orgData.getSystemCode();
                orgMasterDataList = orgData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
                    log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                    throw  new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                }
                String personClassCode = personAndDeptConfig.getPersonClassCode();
                ClassfyVO classfyVO = new ClassfyVO();
                classfyVO.setLibrary(personLibrary);
                classfyVO.setClassCode(personClassCode);
                CodeClassifyVO  codeClassifyVO=this.getClassfy(classfyVO,personLibrary);
                log.info("end:分类查询完毕");
                //获取分类模板信息
                if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                    success=false;
                    throw  new  Throwable ("根据配置分类的分类编号,未获取到分类信息");
                }
                CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                    success=false;
                    throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                }
                List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
                ).collect(Collectors.toList());
                List<Map> dataList=new ArrayList<>();
                List<String> codeList=new ArrayList<>();
                List<ApplyDataVO> applyDataVOList=new ArrayList<>();
                List<ApplyDataVO> deleteDataVOList=new ArrayList<>();
                orgMasterDataList.stream().forEach(personMasterData -> {
                    ApplyDataVO object=new ApplyDataVO();
                    object.setCode(personMasterData.getMdm_code());//编码
                    object.setCreator(personMasterData.getCreator());//创建者
                    object.setEditor(personMasterData.getModifier());//修改者
                    object.setId(personMasterData.getPk_mdm());//主键
                    object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
                    List<ProppertyVO> proppertyVOList=new ArrayList<>();
                    /***
                     * æ ¹æ®é…ç½®æ–‡ä»¶èŽ·å–æžšä¸¾å€¼
                     */
                    fields.stream().forEach(field->{
                        if(dataMap.containsKey(field)){
                            String enumFiled= dataMap.get(field);
                            EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class);
                            String enumCode=enumerableData.getCode();
                            //String enumCodeValue=enumerableData.getName();
                            ProppertyVO proppertyVO=new ProppertyVO();
                            proppertyVO.setKey(field);
                            proppertyVO.setValue(enumCode);
                            proppertyVOList.add(proppertyVO);
                            dataMap.remove(field);
                        }
                    });
                    dataMap.forEach((key,vaule)->{
                        ProppertyVO proppertyVO=new ProppertyVO();
                        proppertyVO.setKey(key);
                        proppertyVO.setValue(vaule);
                        proppertyVOList.add(proppertyVO);
                    });
                    object.setProp(proppertyVOList);
                    if(personMasterData.getDr()==1){
                        object.setOperate("delete");//操作类型
                        deleteDataVOList.add(object);
                    }else{
                        codeList.add(personMasterData.getMdm_code());
                        object.setOperate("create");
                        applyDataVOList.add(object);
                    }
                });
                R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
                if(!r.isSuccess()) {
                    throw new Throwable(r.getMsg());
                }
                BtmTypeVO btmTypeVO = r.getData();
                if (btmTypeVO == null) {
                    throw new Throwable("根据业务类型未查询到业务类型对象!");
                }
                String tableName = btmTypeVO.getTableName();
                if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) {
                    throw new Throwable("根据业务类型未查询到业务类型相关联的表");
                }
                StringBuffer sb=new StringBuffer();
                sb.append(" select * from ");
                sb.append(tableName);
                sb.append(" where 1=1 ");
                sb.append(" and lastr=1 and lastv=1" );
                sb.append(" and id in (");
                sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0])));
                sb.append(")");
                List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
                List<ClientBusinessObject> cboList=    ChangeMapTOClientBusinessObjects(dataMapList);
                ApplyDatasVO applyDatasVO=new ApplyDatasVO();
                ApplyDatasVO editDatasVO=new ApplyDatasVO();
                if(!CollectionUtils.isEmpty(cboList)){
                    Map<String,ClientBusinessObject> oldpplyDataVOMap=    cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
                    //数据库不存在的
                    List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
                        String code =cbo.getCode();
                        return !oldpplyDataVOMap.containsKey(code);
                    }).collect(Collectors.toList());
                    applyDatasVO.setObject(applyApplyDataVOList);
                    //数据库存在的
                    List<ApplyDataVO> editApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
                        String code =cbo.getCode();
                        if(oldpplyDataVOMap.containsKey(code)){
                            cbo.setOperate("update");
                        }
                        return oldpplyDataVOMap.containsKey(code);
                    }).collect(Collectors.toList());
                    editApplyDataVOList.addAll(deleteDataVOList);
                    editDatasVO.setObject(editApplyDataVOList);
                }else{
                    applyDatasVO.setObject(applyDataVOList);
                }
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
                if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    log.info("start:修改数据执行完毕");
                    boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
                    log.info("end:修改数据执行完毕");
                }
                if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO);
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
                    if(ruleVO==null||"".equals(ruleVO.getOid())){
                        throw  new Throwable("编码规则");
                    }
                    List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>();
                    dataObjectVO.getRowData().parallelStream().forEach(rowData->{
                        String mesg="";
                        try {
                            CodeOrderDTO orderDTO = new CodeOrderDTO();
                            List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                            orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                            orderDTO.setTemplateOid(templateVO.getOid());
                            if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                                ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                                    if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
                                        CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
                                        CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
                                        CodeOrderSecDTO.setSecValue(rowData.getCode());
                                        codeOrderSecDTOList.add(CodeOrderSecDTO);
                                    }
                                });
                            }
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
                        } catch (Exception e) {
                            mesg=e.getMessage();
                            e.getMessage();
                            e.printStackTrace();
                        }finally {
                            XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
                            x.setId(rowData.getOid());
                            x.setCode(rowData.getCode());
                            x.setMsg(mesg);
                            x.setErrorid("1");
                            xDOs.add(x);
                        }
                    });
                    resultDataObjectDetailDOs.addAll(xDOs);
                    boolean finalSuccess1 = success;
                    String finalMessage1 = message;
                    resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
                        ResultMdMapping resultMdMapping=new ResultMdMapping();
                        resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId());
                        resultMdMapping.setSuccess(finalSuccess1);
                        resultMdMapping.setEntityCode(" ");
                        resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode());
                        resultMdMapping.setMessage(finalMessage1);
                        resultMdMapping.setSubMdMappings(null);
                        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;
                message="人员数据接受失败:"+e.getMessage();
                //组织返回结果
                boolean finalSuccess = success;
                String finalMessage = message;
                orgMasterDataList.stream().forEach(masterData -> {
                    ResultMdMapping resultMdMapping=new ResultMdMapping();
                    resultMdMapping.setBusiDataId(masterData.getPk_mdm());
                    resultMdMapping.setSuccess(finalSuccess);
                    resultMdMapping.setEntityCode(" ");
                    resultMdMapping.setMdmCode(masterData.getMdm_code());
                    resultMdMapping.setMessage(finalMessage);
                    resultMdMapping.setSubMdMappings(null);
                });
            }finally {
                resultOrgData.setMessage(message);
                resultOrgData.setSuccess(success);
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
            }
            String resultStr = JSONObject.toJSONString(resultOrgData);
            String data = JSONObject.toJSONString(orgData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        return resultOrgData;
    }
    /***
     * ç»Ÿä¸€æ›´æ–°æŽ¥å£ï¼ˆæ›´æ”¹çŠ¶æ€ï¼Œæ›´æ”¹å±žæ€§ä¿¡æ¯ï¼‰æŽ¥å£
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java
@@ -3,6 +3,8 @@
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@ConfigurationProperties(prefix="org.applypersonanddept")
@Component
public class PersonAndDeptConfig {
@@ -34,7 +36,16 @@
    /***
     * æ˜¯å¦å¼€å¯
     */
    private boolean isUsedFlag;
    private boolean usedFlag;
    /***
     * äººå‘˜æŽ¥å£æžšä¸¾å€¼å­—段
     */
    private String personFields;
    /***
     * ç»„织接口枚举值字段
     */
    private String deptFields;
    public String getPersonLibrary() {
        return personLibrary;
@@ -69,11 +80,11 @@
    }
    public boolean isUsedFlag() {
        return isUsedFlag;
        return usedFlag;
    }
    public void setUsedFlag(boolean usedFlag) {
        isUsedFlag = usedFlag;
        this.usedFlag = usedFlag;
    }
    public boolean isPersonApplyGroupCode() {
@@ -92,6 +103,22 @@
        this.deptApplyGroupCode = deptApplyGroupCode;
    }
    public String getPersonFields() {
        return personFields;
    }
    public void setPersonFields(String personFields) {
        this.personFields = personFields;
    }
    public String getDeptFields() {
        return deptFields;
    }
    public void setDeptFields(String deptFields) {
        this.deptFields = deptFields;
    }
    @Override
    public String toString() {
        return "PersonAndDeptConfig{" +
@@ -101,7 +128,9 @@
            ", deptClassCode='" + deptClassCode + '\'' +
            ", personApplyGroupCode=" + personApplyGroupCode +
            ", deptApplyGroupCode=" + deptApplyGroupCode +
            ", isUsedFlag=" + isUsedFlag +
            ", usedFlag=" + usedFlag +
            ", personFields='" + personFields + '\'' +
            ", deptFields='" + deptFields + '\'' +
            '}';
    }
}