xiejun
2023-12-06 980a7eab362b5a8c00f13427c73053382ca4ba44
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -8,6 +8,7 @@
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.constant.MdmDuckingConstant;
import com.vci.ubcs.code.dto.CodeBZApplyDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.*;
@@ -37,7 +38,6 @@
import com.vci.ubcs.code.webService.annotation.VciWebservice;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import com.vci.ubcs.code.webService.config.PersonAndDeptConfig;
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
@@ -71,6 +71,7 @@
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
@@ -83,6 +84,50 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
   /***
    * 操作类型
    */
   @Value("${bzApply.operationType:operationType}")
   private String operationType;
   /***
    * 是否系列
    */
   @Value("${bzApply.isSeries:isSeries}")
   private String isSeries;
   /***
    *发布时间
    */
   @Value("${bzApply.releaseTime:releaseTime}")
   private String releaseTime;
   /***
    * 源标准号
    */
   @Value("${bzApply.oldCode:oldCode}")
   private String oldCode;
   /***
    * 系列流水
    */
   @Value("${bzApply.seriesFlow:seriesFlow}")
   private String seriesFlow;
   /***
    * 是否变更系列
    */
   @Value("${bzApply.isEditSeries:isEditSeries}")
   private String isEditSeries;
   /***
    * 控制是否写入值的码段名称
    */
   @Value("${bzApply.secName:系列号}")
   private String secName;
   /***
    * 控制是否写入值的码段名称
    */
   @Value("${bzApply.yearSecName:年代号}")
   private String yearSecName;
   @Value("${code.universalinterface.checkSystemConfig:true}")
   public boolean CODE_CHECKCONFIG;
@@ -235,7 +280,9 @@
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT),this.getRequest());
         AuthUtil.getUser();
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
@@ -412,6 +459,7 @@
            if(personData==null){
               throw new Throwable("传入参数为null");
            }
            passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(Locale.ROOT),this.getRequest());
            masterDataList = personData.getMasterData();
            String personLibrary = personAndDeptConfig.getPersonLibrary();
            if (StringUtils.isBlank(personLibrary)) {
@@ -563,6 +611,9 @@
                     List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                     orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                     orderDTO.setTemplateOid(templateVO.getOid());
                     orderDTO.setCreator(rowData.getCreator());
                     orderDTO.setLastModifier(rowData.getEditor());
                     orderDTO.setLcStatus(rowData.getStatus());
                     if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                        ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                           if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
@@ -577,7 +628,7 @@
                     orderDTO.setCodeRuleOid(ruleVO.getOid());
                     orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                     orderDTO.setData(rowData.getFiledValue());
                     String code=engineService.addSaveCode(orderDTO);
                     String code=engineService.addSaveCodeNotauthUser(orderDTO,false);
                     if(StringUtils.isNotBlank(code)) {
                        StringBuffer sqlsb = new StringBuffer();
                        sqlsb.append(" select * from ");
@@ -684,6 +735,8 @@
               throw new Throwable("传入参数为null");
            }
            systemCode=orgData.getSystemCode();
            passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(),this.getRequest());
            orgMasterDataList = orgData.getMasterData();
            String personLibrary = personAndDeptConfig.getPersonLibrary();
            if (StringUtils.isBlank(personLibrary)) {
@@ -830,6 +883,9 @@
                     List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                     orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                     orderDTO.setTemplateOid(templateVO.getOid());
                     orderDTO.setCreator(rowData.getCreator());
                     orderDTO.setLastModifier(rowData.getEditor());
                     orderDTO.setLcStatus(rowData.getStatus());
                     if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                        ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                           if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
@@ -844,8 +900,9 @@
                     orderDTO.setCodeRuleOid(ruleVO.getOid());
                     orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                     orderDTO.setData(rowData.getFiledValue());
                     String code=engineService.addSaveCode(orderDTO);
                     String code=engineService.addSaveCodeNotauthUser(orderDTO,false);
                     if(StringUtils.isNotBlank(code)) {
                        //rowData.setCode(code);
                        StringBuffer sqlsb = new StringBuffer();
                        sqlsb.append(" select * from ");
                        sqlsb.append(tableName);
@@ -973,7 +1030,8 @@
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT),this.getRequest());
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
         //这是账号信息
@@ -1057,7 +1115,7 @@
            }
         });
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         msg="编码更改/状态更改/删除:"+e.getMessage();
          /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
            XMLResultSystemVO.setErrorid(errorid);
@@ -1145,9 +1203,11 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         //免密登录申请token,request中添加用户信息
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
@@ -1172,7 +1232,7 @@
            throw new Throwable("接口参数:账号信息获取失败");
         }
         List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, libId));
         if(CollectionUtils.isEmpty(libIdDos)) {
         if(!CollectionUtils.isEmpty(libIdDos)) {
            CodeClassify libCodeClassify =libIdDos.get(0);
            String oid=libCodeClassify.getOid();
            if (!CollectionUtils.isEmpty(classifyIdList)) {
@@ -1205,10 +1265,10 @@
                  throw new Throwable(msg);
               }
            } else {
               TreeQueryObject treeQueryObject = new TreeQueryObject();
               /*TreeQueryObject treeQueryObject = new TreeQueryObject();
               treeQueryObject.setParentOid(oid);
               treeQueryObject.setQueryAllLevel(true);
               codeClassifyVOS = classifyService.selectCodeClassifyDOByTree(treeQueryObject);
               treeQueryObject.setQueryAllLevel(true);*/
               codeClassifyVOS = classifyService.getIdPathToNamePathByParentId(oid,false);
            }
         }else{
            errorid = "101";
@@ -1228,7 +1288,7 @@
               classifyVO.setDescription(codeClassifyDO.getDescription());
               classifyVO.setName(codeClassifyDO.getName());
               classifyVO.setPid(codeClassifyDO.getParentCodeClassifyOid());
               classifyVO.setFullPathName(codeClassifyDO.getPath());
               classifyVO.setFullPathName(codeClassifyDO.getNamePath());
               classifyVOList.add(classifyVO);
            });
            libraryVo.setClassify(classifyVOList);
@@ -1239,7 +1299,7 @@
         issucess=true;
         resultData.setLibrary(libraryVo);
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         msg="查询分类失败:"+e.getMessage();
      }finally {
         resultData.setErrorid(errorid);
@@ -1279,7 +1339,7 @@
      boolean issucess=false;
      String resultStr = "";
      String errorid="0";
      msg="成功";
      msg = "数据查询成功";
      String systemId="";
      log.info("查询分类的数据参数:->"+data);
      log.info("查询分类的数据类型:->"+dataType);
@@ -1306,7 +1366,8 @@
         systemId=condtionsVO.getSystemId();
         UserVO userVo=condtionsVO.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
         CondtionVO condtionVO= condtionsVO.getCondtion();
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
@@ -1365,8 +1426,8 @@
               TreeQueryObject treeQueryObject=new TreeQueryObject();
               treeQueryObject.setParentOid(oid);
               treeQueryObject.setQueryAllLevel(true);
               dataCodeClassifyVOList=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
               dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0]));
               dataCodeClassifyVOList=classifyService.selectAllClassifyByOid(oid,"oid");//.selectCodeClassifyDOByTree(treeQueryObject);
               //dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0]));
               Map<String, CodeClassifyVO> oidCodeclassifyDOMap = dataCodeClassifyVOList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
               List<PropertyVO>  propertyVOS=condtionVO.getPro();
@@ -1443,6 +1504,9 @@
                     dataObjectVOS.add(dataObjectVO);
                  });
                  resultDataVO.setObject(dataObjectVOS);
               }else{
                  errorid = "0";
                  msg = "接口参数:classCode 未查询到对应的数据";
               }
            }else{
               errorid = "101";
@@ -1453,10 +1517,8 @@
            errorid = "101";
            msg = "接口参数:library 未查询到对应的库节点信息";
         }
         errorid = "0";
         msg = "数据查询成功";
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         msg="查询数据失败:"+e.getMessage();
      }finally {
         resultDataVO.setErrorid(errorid);
@@ -1520,9 +1582,11 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         //免密登录申请token,request中添加用户信息
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
@@ -1588,7 +1652,7 @@
                              String num=StringUtils.isBlank(codeFixedValueVO.getOrderNum()+"")?"":codeFixedValueVO.getOrderNum()+"";
                              String name=StringUtils.isBlank(codeFixedValueVO.getName())?"":codeFixedValueVO.getName();
                              String description=StringUtils.isBlank(codeFixedValueVO.getDescription())?"":codeFixedValueVO.getDescription();
                           CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,name,"",description);
                           CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,id,"",description);
                           codeSectionValueVOList.add(sectionValueVO);
                           });
                        }else if(secType.equals("codeclassifysec")){//分类码段
@@ -1661,11 +1725,11 @@
                                 if (!CollectionUtils.isEmpty(ListMap)) {
                                    ListMap.stream().forEach(map -> {
                                       num[0]++;
                                       String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
                                       String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
                                       String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
                                       String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
                                       CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, "", description);
                                       String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
                                       String value = Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
                                       String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
                                       String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
                                       CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, id, "", description);
                                       codeSectionValueVOList.add(sectionValueVO);
                                    });
                                 }
@@ -1750,11 +1814,11 @@
                                 if (!CollectionUtils.isEmpty(ListMap)) {
                                    ListMap.stream().forEach(map -> {
                                       num[0]++;
                                       String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
                                       String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
                                       String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
                                       String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
                                       String pid = map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString();
                                       String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
                                       String value =Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
                                       String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
                                       String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
                                       String pid =Func.isNull(map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString();
                                       CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description);
                                       codeSectionValueVOList.add(sectionValueVO);
                                    });
@@ -1906,7 +1970,7 @@
         issucess=true;
         resultClassifyRuleData.setLibrary(resultLibraryVO);
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         msg="查询分类失败:"+e.getMessage();
      }finally {
         resultClassifyRuleData.setErrorid(errorid);
@@ -1963,7 +2027,7 @@
         try {
            if ("xml".equals(dataType)) {
               XStream xStream = new XStream(new DomDriver());
               xStream.processAnnotations(RootDataVO.class);
               xStream.processAnnotations(ApplyBZVO.class);
               xStream.autodetectAnnotations(true);
               ApplyBZVO rootDataVO = (ApplyBZVO) xStream.fromXML(data);
               applyBZParamVO.setData(rootDataVO);
@@ -1978,19 +2042,17 @@
         systemId = applyBZParamVO.getData().getSystemId();
         UserVO userVo = applyBZParamVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest());
         AuthUtil.getUser();
         //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest());
         passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
         //这是账号信息
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
         sessionInfo.setUserName(userVo.getTrueName());
         sessionInfo.setIp(userVo.getIp());
         VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
//         List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>();
         String finalSystemId = systemId;
         String libray="";
         boolean isCodeOrGroupCode=false;
         libray = classfyBZVO.getLibrary();
         CodeClassifyVO codeClassifyVO = getClassfy(classfyBZVO,libray);
         log.info("end:分类查询完毕");
@@ -2012,8 +2074,8 @@
         }
         CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
         if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
            objerrorCode="1";
            throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
            objerrorCode="100";
            throw  new  Throwable ("根据传输的分类,未获取系统中对应模板");
         }
         log.info("end:模板查询完毕");
         ApplyBZDatasVO applyBZDatasVO = classfyBZVO.getObjects();
@@ -2021,54 +2083,76 @@
         List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
         ).collect(Collectors.toList());
         List<ApplyBZDataVO> applyBZDataVOList=   applyBZDatasVO.getObject();
         if(applyBZDataVOList.size()>1){
            objerrorCode="1";
            throw  new  Throwable ("标准申请只支持一条数据申请");
         }
         String finalLibray = libray;
         ClassfyBZVO finalClassfyBZVO = classfyBZVO;
         //规则的主键需要去获取
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
         if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
            objerrorCode="1";
            log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
            throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
         }
         CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
         if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){
            objerrorCode="102";
            throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
         }
         log.info("end:规则获取完毕");
         List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classfyBZVO.getSections().getSection(), ruleVO,classifyFullInfo);
         log.info("end:码段获取完毕");
         CodeBZApplyDTO codeBZApplyDTO=new CodeBZApplyDTO();
         codeBZApplyDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
         applyBZDataVOList.stream().forEach(applyBZDataVO -> {
            String code="";
            String id=applyBZDataVO.getId();
            try {
               this.getConfigDatas(finalSystemId, finalLibray, applyBZDatasVO, attrVOS, dataObjectVO);
               List<ProppertyVO> proppertyVOList=applyBZDataVO.getProp();
               String oldCodeValue=applyBZDataVO.getOldCode();
               setPropertyValue(oldCode,oldCodeValue,proppertyVOList);//源标准号
               boolean editSeriesFlag= applyBZDataVO.isEditSeriesFlag();
               setPropertyValue(isEditSeries,String.valueOf(editSeriesFlag),proppertyVOList);//是否更为系列
               boolean seriesFlag=applyBZDataVO.isSeriesFlag();
               setPropertyValue(isSeries,String.valueOf(seriesFlag),proppertyVOList);//源标准类型
               String operationTypeValue=applyBZDataVO.getOperationType();
               setPropertyValue(operationType,operationTypeValue,proppertyVOList);//操作类型1:制定,2:修订
               String releaseTimeValue= applyBZDataVO.getReleaseTime();
               setPropertyValue(releaseTime,releaseTimeValue,proppertyVOList);//发布时间
               String seriesFlow=applyBZDataVO.getSeriesFlow();//系列流水
               codeBZApplyDTO.setOldCode(oldCodeValue);
               codeBZApplyDTO.setReleaseTime(releaseTimeValue);
               codeBZApplyDTO.setEditSeries(editSeriesFlag);
               codeBZApplyDTO.setSeries(seriesFlag);
               codeBZApplyDTO.setOperationType(operationTypeValue);
               codeBZApplyDTO.setSeriesFlow(seriesFlow);
               codeBZApplyDTO.setCodeClassifyOid(codeClassifyVO.getOid());
               codeBZApplyDTO.setCodeRuleOid(ruleVO.getOid());
               codeBZApplyDTO.setTemplateOid(templateVO.getOid());
               codeBZApplyDTO.setCreator(applyBZDataVO.getCreator());
               codeBZApplyDTO.setLastModifier(applyBZDataVO.getEditor());
               codeBZApplyDTO.setLcStatus(applyBZDataVO.getStatus());
               ApplyBZDatasVO newApplyBZDatasVO=new ApplyBZDatasVO();
               newApplyBZDatasVO.setObject(Arrays.asList(applyBZDataVO));
               log.info("end:数据组织完毕");
               //规则的主键需要去获取
               CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
               if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
                  objerrorCode="1";
                  log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
                  throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
               }
               CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
               if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){
                  objerrorCode="102";
                  throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
               }
               log.info("end:规则获取完毕");
               //List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(ruleVO,classifyFullInfo);
               log.info("end:码段获取完毕");
               CodeOrderDTO orderDTO = new CodeOrderDTO();
               orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
               //orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
               //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode);
               //allResultDataObjectDetailDOS.add(resultDataObjectDetailDOs);
               log.info("end:申请获取完毕");
               this.getConfigDatas(finalSystemId, finalLibray, newApplyBZDatasVO, attrVOS, dataObjectVO);
               log.info("end:数据组织完毕");
               codeBZApplyDTO.setData(dataObjectVO.getRowData().get(0).getFiledValue());
               code=engineService.addSaveBZCodeNotauthUser(codeBZApplyDTO,false);
               msg="编码申请成功:编码为:"+code;
            } catch (Throwable e) {
               List<ApplyBZDataVO> applyDataVOList = finalClassfyBZVO.getObjects().getObject();
               objerrorCode = "1";
               if (!CollectionUtils.isEmpty(applyDataVOList)) {
                  applyDataVOList.stream().forEach(applyDataVO -> {
                     XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                     xmlResultDataObjectDetailDO.setCode("");
                     xmlResultDataObjectDetailDO.setId(applyDataVO.getId());
                     xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                     xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
                     resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                  });
               } else {
                  XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                  xmlResultDataObjectDetailDO.setCode("");
                  xmlResultDataObjectDetailDO.setId("");
                  xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                  xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
                  resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
               }
               msg="编码申请失败:" +e.getMessage();
               e.printStackTrace();
            }finally {
               XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
               xmlResultDataObjectDetailDO.setCode(code);
               xmlResultDataObjectDetailDO.setId(id);
               xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
               xmlResultDataObjectDetailDO.setMsg(msg);
               resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
            }
         });
         XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
@@ -2086,7 +2170,6 @@
         e.printStackTrace();
         msg="申请编码失败:"+e.getMessage();
      }finally {
         XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
         xmlResultSystemVO.setClassifys(resultClassfyVOList);
         xmlResultSystemVO.setMsg(msg);
@@ -2118,6 +2201,13 @@
      //调用集团申请接口申请集团码
      return resultStr;
   }
   private void setPropertyValue(String key,String value,List<ProppertyVO> proppertyVOList){
      ProppertyVO proppertyVO=new ProppertyVO();
      proppertyVO.setKey(key);
      proppertyVO.setValue(StringUtils.isBlank(value)?"":value);
      proppertyVOList.add(proppertyVO);
   }
   /***
    * 查询校验分类信息
    * @param classfyVO
@@ -2135,7 +2225,7 @@
            if (!CollectionUtils.isEmpty(codeClassifyList)) {
               codeClassifyList.stream().forEach(codeClassify -> {
                  CodeClassifyVO codeClassifyVO=  classifyService.getTopClassifyVO(codeClassify.getOid());
                  if(codeClassifyVO.getId().toLowerCase(Locale.ROOT).equals(libray.toLowerCase(Locale.ROOT))){
                  if(codeClassifyVO.getId().toUpperCase(Locale.ROOT).equals(libray.toUpperCase(Locale.ROOT))){
                     newCodeClassify[0] =codeClassify;
                  }
               });
@@ -2177,7 +2267,7 @@
            if (!CollectionUtils.isEmpty(codeClassifyList)) {
               codeClassifyList.stream().forEach(codeClassify -> {
                  CodeClassifyVO codeClassifyVO=  classifyService.getTopClassifyVO(codeClassify.getOid());
                  if(codeClassifyVO.getId().toLowerCase(Locale.ROOT).equals(libray.toLowerCase(Locale.ROOT))){
                  if(codeClassifyVO.getId().toUpperCase(Locale.ROOT).equals(libray.toUpperCase(Locale.ROOT))){
                     newCodeClassify[0] =codeClassify;
                  }
               });
@@ -2207,7 +2297,7 @@
      List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
      oldDataMap.stream().forEach(dataMap->{
         ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
         DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
         DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,true);
         for (String key:dataMap.keySet()){
            Object value= dataMap.getOrDefault(key,"");
            clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
@@ -2245,6 +2335,7 @@
      Map<String,String> errorMap=new HashMap<>();
      for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
         String sectype = codeBasicSecVO.getSecType();
         String newSecName=codeBasicSecVO.getName();
         String classifySecOid= codeBasicSecVO.getOid();
         String message="";
         if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
@@ -2274,7 +2365,7 @@
                     }
                  }
               }
               if(StringUtils.isBlank(sectypeValue)){
               if(StringUtils.isBlank(sectypeValue)&&!newSecName.equals(secName)){
                  message="传入的分类码段:【" + name + " 】的值不允许为空";
                  errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
               }
@@ -2312,9 +2403,9 @@
               Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
               log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置");
               String path=stringStringMap.get(systemId);
               if (libPropMaps.containsKey(libray)) {
               if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息");
                  List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray);
                  List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
                  propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size());
               }else{
@@ -2364,7 +2455,7 @@
            LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>();
            Map<String, String> filedValueMap = new HashMap<>();
            if (!CollectionUtils.isEmpty(proppertyVOList)) {
               Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2));
               Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey,  ProppertyVO::getValue, (key1, key2) -> key2));
               Map<String, String> keyValueMap = new HashMap<>();
               //判断attrMapConfigMap是否有值,如果没有则说明基础默认的是编码系统字段
               if (!CollectionUtils.isEmpty(attrMapConfigMap)) {
@@ -2423,9 +2514,9 @@
               Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
               log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置");
               String path=stringStringMap.get(systemId);
               if (libPropMaps.containsKey(libray)) {
               if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息");
                  List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray);
                  List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
                  propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size());
               }else{