xiejun
2023-07-18 24e44fc25fc7b502486373589e61791ff5bb5eac
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -2,15 +2,16 @@
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
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.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.CodeDefaultLC;
import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.ClientBusinessObject;
@@ -35,25 +36,31 @@
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.revision.model.BaseModel;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.system.feign.ISysClient;
import com.vci.ubcs.system.user.entity.User;
import com.vci.ubcs.system.user.feign.IUserClient;
import com.vci.ubcs.system.vo.DeptVO;
import com.vci.ubcs.system.vo.RoleVO;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
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;
/***
@@ -63,7 +70,8 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
   @Value("${code.universalinterface.checkSystemConfig:true}")
   public boolean CODE_CHECKCONFIG;
   @Autowired(required = false)
   private AttributeMapConfig attributeMapConfig;
   /**
@@ -84,6 +92,18 @@
   private IBtmTypeClient btmTypeClient;
   /**
    * 人员服务
    */
   @Autowired
   private  ISysClient sysClient;
   /**
    * 人员服务
    */
   @Autowired
   private IUserClient userClient;
   /**
    * 通用查询
    */
   @Resource
@@ -101,6 +121,9 @@
   @Resource
   private MdmIOService mdmIOService;
   @Resource
   private IDockingSystemConfigService dockingSystemConfigService;
   @Autowired
   private ICodeClassifyValueService codeClassifyValueService;
@@ -156,6 +179,12 @@
         }
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         //校验是否配置
         boolean checkPass= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
         if(!checkPass){
            errorid="101";
            throw new Throwable("系统标识为【"+systemId+"】,"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"接口配置已停用或者未配置,请联系编码管理员!");
         }
         UserVO userVo = interParameterVO.getData().getUser();
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
@@ -323,6 +352,13 @@
         }
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         //校验是否配置
         boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
         if (!checkPass) {
            errorid = "101";
            throw new Throwable("系统标识为【" + systemId + "】," + sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText() + "接口配置已停用或者未配置,请联系编码管理员!");
         }
         UserVO userVo = interParameterVO.getData().getUser();
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
@@ -474,6 +510,13 @@
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
         List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
            //校验是否配置
         boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILY.getValue());
         if (!checkPass) {
            errorid = "101";
            throw new Throwable("系统标识为【" + systemId + "】," + sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILY.getText() + "接口配置已停用或者未配置,请联系编码管理员!");
         }
         //这是账号信息
         //这是账号信息
         if(userVo!=null) {
@@ -542,7 +585,7 @@
               classifyVO.setClassCode(codeClassifyDO.getId());
               classifyVO.setDescription(codeClassifyDO.getDescription());
               classifyVO.setName(codeClassifyDO.getName());
               classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid());
               classifyVO.setPid(codeClassifyDO.getParentCodeClassifyOid());
               classifyVO.setFullPathName(codeClassifyDO.getPath());
               classifyVOList.add(classifyVO);
            });
@@ -634,6 +677,13 @@
            errorid = "101";
            msg = "接口参数:library 为null";
            throw new Throwable(msg);
         }
         //校验是否配置
         boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue());
         if (!checkPass) {
            errorid = "101";
            throw new Throwable("系统标识为【" + systemId + "】," + sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText() + "接口配置已停用或者未配置,请联系编码管理员!");
         }
         //先简称是否有关联模板,有模板要先删除
@@ -820,6 +870,14 @@
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
         List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
         //校验是否配置
         boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getValue());
         if (!checkPass) {
            errorid = "101";
            throw new Throwable("系统标识为【" + systemId + "】," + sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getText() + "接口配置已停用或者未配置,请联系编码管理员!");
         }
         //这是账号信息
         //这是账号信息
         if(userVo!=null) {
@@ -906,10 +964,169 @@
                        }else if(secType.equals("coderefersec")){//引用码段
                           codeBasicSecVO.getReferAttributeId();
                           codeBasicSecVO.getReferCodeClassifyOid();
                           codeBasicSecVO.getReferBtmId();
                           codeBasicSecVO.getReferBtmName();
                           //codeBasicSecVO.getReferValueInfo();
                           String referBtmId=codeBasicSecVO.getReferBtmId();
                           String btmName=codeBasicSecVO.getReferBtmName();
                           String referConfig= codeBasicSecVO.getReferConfig();
                           CoderefersecSearchVO coderefersecSearchVO=new CoderefersecSearchVO();
                           if(StringUtils.isNotBlank(referConfig)){
                              coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class);
                           }
                           String buildSqlwhere="";
                           if(coderefersecSearchVO!=null) {
                              if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.DEFAULT.getValue()) || coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.GRID.getValue())) {//默认样式/列表
                                 Map<String, Object> condtionMap = new HashMap<>();
                                 List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
                                 if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
                                    codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
                                       condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
                                    });
                                    buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
                                 }
                                 //使用传入的业务类型查询表
                                 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
                                 if (!listR.isSuccess() || listR.getData().size() == 0) {
                                    throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
                                 }
                                 String referTable = listR.getData().get(0).getTableName();
                                 StringBuffer sb = new StringBuffer();
                                 sb.append(" select * from  ");
                                 sb.append(referTable);
                                 sb.append(" where 1=1  ");
                                 if (StringUtils.isNotBlank(buildSqlwhere)) {
                                    sb.append(buildSqlwhere);
                                 }
                                 List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
                                 String valueField = coderefersecSearchVO.getValueField();
                                 String textField = coderefersecSearchVO.getTextField();
                                 final int[] num = {0};
                                 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);
                                       codeSectionValueVOList.add(sectionValueVO);
                                    });
                                 }
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())) {//树形
                              /*   Map<String, Object> condtionMap = new HashMap<>();
                                 List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
                                 List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=coderefersecSearchVO.getCodeShowFieldConfigVOS();
                                 if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
                                    codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
                                       condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
                                    });
                                    buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
                                 }
                                 //使用传入的业务类型查询表
                                 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
                                 if (!listR.isSuccess() || listR.getData().size() == 0) {
                                    throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
                                 }
                                 String referTable = listR.getData().get(0).getTableName();
                                 StringBuffer sb = new StringBuffer();
                                 sb.append(" select * from  ");
                                 sb.append(referTable);
                                 sb.append(" where 1=1  ");
                                 if (StringUtils.isNotBlank(buildSqlwhere)) {
                                    sb.append(buildSqlwhere);
                                 }
                                 List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
                                 String valueField = coderefersecSearchVO.getValueField();
                                 String textField = coderefersecSearchVO.getTextField();
                                 final int[] num = {0};
                                 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);
                                       codeSectionValueVOList.add(sectionValueVO);
                                    });
                                 }
*/
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTGRIDREFERS.getValue()) ||////部门列表
                                 coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue())//部门树
                              ) {
                                 R<List<DeptVO>> r = sysClient.deptList("");
                                 if (r.isSuccess()) {
                                    List<DeptVO> deptVOList = r.getData();
                                    if (!CollectionUtils.isEmpty(deptVOList)) {
                                       deptVOList.stream().forEach(deptVO -> {
                                          String id = String.valueOf(deptVO.getId());
                                          int num = deptVO.getSort();
                                          String value = String.valueOf(deptVO.getId());
                                          String text = deptVO.getDeptName();
                                          String description = deptVO.getRemark();
                                          String pid = deptVO.getParentId() + "";
                                          CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num + "", value, text, pid, description);
                                          codeSectionValueVOList.add(sectionValueVO);
                                       });
                                    }
                                 }
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMUSERREFER.getValue())//用户
                                 || coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMUSERGRIDREFER.getValue())//用户列表
                              ) {
                                 R<List<User>>  r=userClient.selectAllUser();
                                 if (r.isSuccess()) {
                                    List<User> userList = r.getData();
                                    if (!CollectionUtils.isEmpty(userList)) {
                                       final int[] num = {0};
                                       userList.stream().forEach(user -> {
                                           String value=StringUtils.isBlank(user.getAccount())?"":user.getAccount();
                                          //String value= String.valueOf(StringUtils.isBlank(user.getCode())?"":user.getCode());
                                          String text=StringUtils.isBlank(user.getName())?"":user.getName();
                                          String pid=user.getDeptId();
                                          num[0]++;
                                          String description="";
                                          String id= String.valueOf(user.getId());
                                          CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description);
                                          codeSectionValueVOList.add(sectionValueVO);
                                       });
                                    }
                                 }
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMROLEREFER.getValue())) {//角色列表
                                 R<List<RoleVO>> r = sysClient.roleTree("");
                                 if (r.isSuccess()) {
                                    List<RoleVO> roleVOList = r.getData();
                                    if (!CollectionUtils.isEmpty(roleVOList)) {
                                       roleVOList.stream().forEach(roleVO -> {
                                          String id = String.valueOf(roleVO.getId());
                                          int num = roleVO.getSort();
                                          String value = String.valueOf(roleVO.getId());
                                          String text = roleVO.getRoleName();
                                          String description = roleVO.getRoleAlias();
                                          String pid = roleVO.getParentId() + "";
                                          CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num + "", value, text, pid, description);
                                          codeSectionValueVOList.add(sectionValueVO);
                                       });
                                    }
                                 }
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDUTYREFER.getValue())) {//职务
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMWORKTYPEREFER.getValue())) {//工种
                              } else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.WFPROCESSTEMPLATEREFER.getValue())) {//流程模板
                              }
                           }
                           log.info(libId);
                        }else if(secType.equals("codelevelsec")) {//层级码段
                           int level = codeBasicSecVO.getCodeLevelValue();
                           CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO();
@@ -972,7 +1189,7 @@
               classifyVO.setClassCode(StringUtils.isBlank(codeClassifyDO.getId())?"":codeClassifyDO.getId());
               classifyVO.setDescription(StringUtils.isBlank(codeClassifyDO.getDescription())?"":codeClassifyDO.getDescription());
               classifyVO.setName(StringUtils.isBlank(codeClassifyDO.getName())?"":codeClassifyDO.getName());
               classifyVO.setPid(StringUtils.isBlank(codeClassifyDO.getParentcodeclassifyoid())?"":codeClassifyDO.getParentcodeclassifyoid());
               classifyVO.setPid(StringUtils.isBlank(codeClassifyDO.getParentCodeClassifyOid())?"":codeClassifyDO.getParentCodeClassifyOid());
               classifyVO.setFullPathName(StringUtils.isBlank(codeClassifyDO.getPath())?"":codeClassifyDO.getPath());
               classifyVO.setCodeRule(resultCodeRuleVO);
               classifyVOList.add(classifyVO);
@@ -1072,9 +1289,11 @@
      });
      Map<String,CodeClassifyVO> codeClassifyVOMap= classifyFullInfo.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getId(), t -> t,(o1, o2)->o2));
      List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
      Map<String,String> errorMap=new HashMap<>();
      for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
         String sectype = codeBasicSecVO.getSecType();
         String classifySecOid= codeBasicSecVO.getOid();
         String message="";
         if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
            String name = codeBasicSecVO.getName();
            String sectypeText = codeBasicSecVO.getSecTypeText();
@@ -1096,18 +1315,27 @@
                        CodeClassifyValue codeClassifyValue=   codeClassifyValueDOMap.get(sectypeValue);
                        sectypeValue=codeClassifyValue.getOid();
                     }else {
                        objerrorCode = "101";
                        throw new Throwable("传入的分类码段:【" + name + " 值:" + sectypeValue + "】,不符合当前分类层级代号");
                        //throw new Throwable("传入的分类码段:【" + name + " 值:" + sectypeValue + "】,不符合当前分类层级代号");
                        message="传入的分类码段:【" + name + " 值:" + sectypeValue + "】,不符合当前分类层级代号";
                        errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
                     }
                  }
               }
               if(StringUtils.isBlank(sectypeValue)){
                  message="传入的分类码段:【" + name + " 】的值不允许为空";
                  errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
               }
               CodeOrderSecDTO.setSecValue(sectypeValue);
               codeOrderSecDTOList.add(CodeOrderSecDTO);
            } else {
               objerrorCode="101";
               throw new Throwable("传入的码段规则缺少" + name + "码段");
               message="传入的码段规则缺少" + name + "码段";
               errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
            }
         }
      }
      if(errorMap.size()>0){
         objerrorCode="101";
         throw new Throwable(errorMap.getOrDefault("error",""));
      }
      return codeOrderSecDTOList;
   }
@@ -1115,7 +1343,7 @@
    * 根据属性映射转换编码所需字段
    */
   public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
      List<ApplyDataVO> applyDataVOList=applyDatasVO.getObject();
      LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
      //如果将数据转换成所需要的数据对象
      Map<String, String> attrMapConfigMap=new HashMap<>();
@@ -1125,15 +1353,23 @@
         Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
         log.info("集成系统属性映射配置文件条目数-》"+stringStringMap.size());
         //stringStringMap.put("RLM","D:\\RLM.xml");
         LibraryDO libraryDO=gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap);
         List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf();
         Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
         log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置");
         if(libPropMaps.containsKey(libray)){
            log.info("根据参数:libray:-》"+libray+"匹配到相应的属性映射信息");
            List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray);
            propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
            log.info("根据参数:libray:-》"+libray+"匹配到相应的属性映射信息,属性映射条目数+"+clsfAttrMappingDOList.size());
         if(!CollectionUtils.isEmpty(stringStringMap)) {
            log.info("info:需要读取配置文件");
            LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap);
            List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf();
            if(!CollectionUtils.isEmpty(libraryClsfDOList)) {
               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)) {
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息");
                  List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray);
                  propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
                  log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size());
               }else{
                  throw new Throwable("根据系统标识【"+systemId+"】找到对应的配置文件:【"+path+"】,但未获取到对应的库【"+libray+"】属性映射信息配置");
               }
            }
         }
         log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置 end ");
      }catch (Throwable e){
@@ -1155,6 +1391,11 @@
         dataObjectVO.setColName(rowNameList);//放入属性
         attrMapConfigMap.putAll(propMaps);
         LinkedList<RowDatas> rowDataList = new LinkedList<>();
         List<ApplyDataVO> applyDataVOList=new ArrayList<>();
         if(!CollectionUtils.isEmpty(applyDatasVO.getObject())){
            applyDataVOList=applyDatasVO.getObject();
         }
         //Map<String, List<ProppertyVO>> dataPropMap = applyDataVOList.stream().collect(Collectors.toMap(ApplyDataVO::getId, ApplyDataVO::getProp, (key1, key2) -> key2));
         final int[] rowIndex = {0};
         applyDataVOList.stream().forEach(applyDataVO -> {
@@ -1290,5 +1531,23 @@
      return resultStr;
   }
   /***
    * 校验是否做了配置
    * @param systemId,系统标识
    * @param type:接口类型
    * @param operationType:接口操作类型
    * @return
    */
   private boolean checkIspass(String systemId,String type,String operationType){
      if(!CODE_CHECKCONFIG) {
         return true;
      }
      //根据类型去查询需要集成的分类或者数据
      LambdaQueryWrapper<DockingSystemConfig> queryWrapper = Wrappers.<DockingSystemConfig>lambdaQuery();
      queryWrapper.eq(DockingSystemConfig::getUsedFlag, MdmDuckingConstant.SEND_FLAG_TRUE);
      queryWrapper.eq(DockingSystemConfig::getSysBaseId,systemId);
      queryWrapper.eq(DockingSystemConfig::getDataFlowType,type);
      queryWrapper.eq(DockingSystemConfig::getPushType,operationType);
      return dockingSystemConfigService.count(queryWrapper)>0?true:false;
   }
}