ludc
2023-12-13 f4cf8b5bed78ef69b05e080053f944d8ebe09f48
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2506,10 +2506,10 @@
                  if (!CollectionUtils.isEmpty(newCboList)) {
                     //处理关键属性查出多条的话,根据集成调用的当前分类代号取当前分类的码值。
                     Map<String/**编码**/, BaseModel/**重复编码数据**/> classOidTOBaseModelMap = new HashMap<>();
                        newCboList.stream().forEach(baseModel->{
                           String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase(Locale.ROOT));
                           classOidTOBaseModelMap.put(codeclsfid,baseModel);
                        });
                     newCboList.stream().forEach(baseModel->{
                        String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toLowerCase(Locale.ROOT));
                        classOidTOBaseModelMap.put(codeclsfid,baseModel);
                     });
                     String codeclsfid= classifyFullInfo.getCurrentClassifyVO().getOid();
                     if(classOidTOBaseModelMap.containsKey(codeclsfid)){
                        BaseModel newCbo= classOidTOBaseModelMap.get(codeclsfid);
@@ -2546,7 +2546,7 @@
                  }
               }
            });
            //关键熟悉更改
            //关键属性更改
            if (!CollectionUtils.isEmpty(editBoList)) {
               engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),editBoList);//保存数据
            }
@@ -2782,6 +2782,7 @@
      }
      List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
      DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
      List<ClientBusinessObject> cboList=   ChangeMapTOClientBusinessObjects(dataMapList);
      Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
      Map<String, String> errorMap = new HashMap<>();
@@ -3959,7 +3960,8 @@
                  String sql = "select " + valueField + "," + showText.toLowerCase(Locale.ROOT) +" from " + table + "  where " + showText + " in (%s)";
                  valueCollections.stream().forEach(values->{
                     List<Map<String,String>> dataMapList = commonsMapper.queryByOnlySqlForMap(String.format(sql, VciBaseUtil.toInSql(values.toArray(new String[0]))));
                     List<ClientBusinessObject> cbos=   ChangeMapTOClientBusinessObjects(dataMapList);
                     DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
                     List<ClientBusinessObject> cbos=ChangeMapTOClientBusinessObjects(dataMapList);
                     if(!CollectionUtils.isEmpty(cbos)){
                        valueOidTextMap.putAll(cbos.stream().collect(Collectors.toMap(s->s.getAttributeValue(valueField),t->t.getAttributeValue(showText))));
                     }
@@ -4376,7 +4378,9 @@
      // 查询不需要参与关键属性校验的除自己以外的所有分类oid
      final String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
      final BladeUser user = AuthUtil.getUser();
      List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> {
      //cboList = new CopyOnWriteArrayList<>(cboList);
      // TODO:Thread limit exceeded replacing blocked 异常是这部分代码抛出的,所以暂时将parallelStream改成了stream
      List<ClientBusinessObject> repeatDataMap = cboList.stream().filter(cbo -> {
         //每行都得查询.如果其中出现了错误,我们就直接抛出异常,其余的显示
         //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
         Map<String, String> conditionMap = new HashMap<>();
@@ -4403,6 +4407,7 @@
            List<String> repeatData = commonsMapper.selectList(sqlBO.getSqlId());
            if(!repeatData.isEmpty()){
               final List<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
               DefaultAttrAssimtUtil.mapToLowerCase(newDataList,true);
               //List<ClientBusinessObject> newCboList=ChangeMapTOClientBusinessObjects(newDataList);
               List<BaseModel> newCboList = new ArrayList<>();
               newDataList.stream().forEach(stringStringMap -> {
@@ -4631,10 +4636,11 @@
   }
   private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){
      List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
      DefaultAttrAssimtUtil.mapToLowerCase(oldDataMap,true);
      final BladeUser user = AuthUtil.getUser();
      oldDataMap.stream().forEach(dataMap->{
         ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
         DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,true,user);
         DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,false,user);
         for (String key:dataMap.keySet()){
            Object value= dataMap.getOrDefault(key,"");
            clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
@@ -4925,6 +4931,7 @@
               pageHelper.addDefaultDesc("id");
               CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(btmtypeid, templateVO, conditionMap, pageHelper);
               List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
               DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
               List<ClientBusinessObject> resembleCboList=   ChangeMapTOClientBusinessObjects(dataMapList);
               if(!CollectionUtils.isEmpty(resembleCboList)) {
                  List<Map<String, String>> finalDataMap = dataMap;
@@ -5293,7 +5300,7 @@
            final BladeUser user = AuthUtil.getUser();
            cboList.stream().forEach(clientBusinessObject -> {
               BaseModel newBaseModel=new BaseModel();
               DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,true,user);
               DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,false,user);
               newCbos.add(newBaseModel);
            });
            // 插入新的数据
@@ -5332,12 +5339,12 @@
         List<Map<String,String>>dataList=new ArrayList<>();
         List<String> fieldList= execGroupCodePortDataDTO.getFieldList();
         getDatas(classifyFullInfo,templateVO,execGroupCodePortDataDTO.getFieldList(),dataList,Arrays.asList(code));
         DefaultAttrAssimtUtil.mapToLowerCase(dataList,true);
         if(!CollectionUtils.isEmpty(dataList)){
            Map<String,String> newDataMap=new HashMap<>();//将新对象属性暂时存储在Map<>
            newDataMap.putAll(clientBusinessObject.getData());
            Map<String,String> dataMap=dataList.get(0);
            BaseModel oldBaseModel=new BaseModel();
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,oldBaseModel,false,user);
            String oldOid=oldBaseModel.getOid();