1、处理流程处理查询报错问题。
2、处理流程处理批量报错报错问题。
3、处理更新时bean里面的data数据与bean字段数据冲突时,以data数据为准。
已修改3个文件
47 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -1320,7 +1320,7 @@
                }
            }
        }
        Map mapData = new HashMap<>();
        for (int i = 0, n = propertyDescriptors.length; i <n ; i++) {
            PropertyDescriptor descriptor = propertyDescriptors[i];
            String propertyName = descriptor.getName();
@@ -1332,16 +1332,7 @@
                if (result != null) {
                    if ("data".equals(propertyName)){
                        if(existFild == null){
                            returnMap.putAll((Map) result);
                        }else{
                            Map resulMapChild = (Map) result;
                            for (Object o : resulMapChild.keySet()) {
                                if(existFild.contains(String.valueOf(o).toLowerCase())){
                                    returnMap.put(String.valueOf(o).toLowerCase(),resulMapChild.get(o));
                                }
                            }
                        }
                        mapData = (Map) result;
                    }else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){
                        returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName, result);
                    }
@@ -1350,6 +1341,17 @@
                }
            }
        }
        //作用主要用于已MAP中的数据为准,bean里面遇到字段相同也会进行覆盖。
        if(existFild == null){
            returnMap.putAll((Map) mapData);
        }else{
            Map resulMapChild = (Map) mapData;
            for (Object o : resulMapChild.keySet()) {
                if(existFild.contains(String.valueOf(o).toLowerCase())){
                    returnMap.put(String.valueOf(o).toLowerCase(),resulMapChild.get(o));
                }
            }
        }
        return returnMap;
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
@@ -1108,7 +1108,7 @@
            //递归找上级的模板
            CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid);
//                codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid);
            if(Func.isEmpty(classifyDO)&&StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){
            if(Func.isEmpty(classifyDO)){
                //说明已经是顶了,也没找到的话,那就返回了
                return new ArrayList<>();
            }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -2441,27 +2441,22 @@
        List<BaseModel> updateList = new ArrayList<>();
        // 应该都是一个分类下的业务数据,找第一条的就行
        CodeClassifyFullInfoBO topClassifyFullInfo = classifyService.getClassifyFullInfo(orderDTOList.get(0).getCodeClassifyOid());
//        Map<String,String> cboOidMap = new HashMap<>();
        if (CollectionUtils.isEmpty(orderDTOMap.keySet())) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
//        cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")");
//        List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap);
        if (CollectionUtils.isEmpty(cboList)) {
        if (CollectionUtils.isEmpty(cboList)) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
//        BatchCBO batchCBO = new BatchCBO();
//        CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid());
        Map<String, BaseModel> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
        Map<String, BaseModel> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
        orderDTOMap.keySet().stream().forEach(oid -> {
            CodeOrderDTO orderDTO = orderDTOMap.get(oid);
            CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
            CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid());
            BaseModel cbo = cboMap.get(oid);
            String code = cbo.getId();
            if (!cbo.getTs().toString().contains(orderDTO.getTs().toString())) {
            if (!cbo.getTs().toString().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
                throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试");
            }
            if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) {
@@ -2487,21 +2482,13 @@
            //企业码和集团码的不修改
            cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
            cbo.setName(orderDTO.getName());
//            try {
//                cbo.setAttributeValue("id",code);
            cbo.setId(code);
            cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
//                cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription());
//                cbo.setAttributeValue("name", orderDTO.getName());
            cbo.setName(orderDTO.getName());
//            } catch (VCIError e) {
//                e.printStackTrace();
//            }
//            batchCBO.getUpdateCbos().add(cbo);
            updateList.add(cbo);
            batchSaveSelectChar(firstTemplateVO, cboList);
        });
//        boService.persistenceBatch(batchCBO);
        updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), updateList);
        return R.success("操作成功!");
    }