集成申码接口调整:当码值按照约定传表名为空的业务场景下传null校验问题和码值组装问题。
已修改3个文件
30 ■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -38,6 +38,7 @@
import com.vci.ubcs.code.vo.webserviceModel.attrmap.*;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import com.vci.ubcs.omd.cache.EnumCache;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
@@ -543,9 +544,10 @@
        SectionVOList.stream().forEach(SectionVO -> {
            sectionVOMap.put(SectionVO.getName(), SectionVO.getValue());
        });
        //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<>();
        String nullSymbol = EnumCache.getValue("nullSymbol", "NULL");
        nullSymbol = Func.isBlank(nullSymbol) ? "#NaN?":nullSymbol;
        for (CodeBasicSecVO codeBasicSecVO : codeBasicSecVOS) {
            String sectype = codeBasicSecVO.getSecType();
            String newSecName = codeBasicSecVO.getName();
@@ -568,7 +570,7 @@
                        if (!CollectionUtils.isEmpty(codeClassifyValueDOList)) {
                            Map<String, CodeClassifyValue> codeClassifyValueDOMap = codeClassifyValueDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2));
                            if (codeClassifyValueDOMap.containsKey(sectypeValue)) {
                            if (codeClassifyValueDOMap.containsKey(sectypeValue) || nullSymbol.equals(sectypeValue)) {
                                CodeClassifyValue codeClassifyValue = codeClassifyValueDOMap.get(sectypeValue);
                                sectypeValue = codeClassifyValue.getOid();
                            } else {
@@ -578,7 +580,7 @@
                            }
                        }
                    }
                    if (StringUtils.isBlank(sectypeValue)) {
                    if (StringUtils.isBlank(sectypeValue)&&!name.equals(secName)) {
                        message = "传入的分类码段:【" + name + " 】的值不允许为空";
                        errorMap.put("error", errorMap.getOrDefault("error", "") + ";" + message);
                    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
@@ -822,7 +822,8 @@
            case CODE_CLASSIFY_SEC:
                //分类码段的,也是从前端选择了码值即可,不论码值的长度是多少
                CodeClassifyValue codeClassifyValueDO= codeClassifyValueMapper.selectById(secValue);
                if(Func.isBlank(codeClassifyValueDO.getId())){
                //当码值为空或#NaN?时即表示作为空字符串进行拼接
                if(Func.isBlank(codeClassifyValueDO.getId()) || codeClassifyValueDO.getId().equals("#NaN?")){
                    codeClassifyValueDO.setId("");
                }
                if(codeClassifyValueDO!=null) {
@@ -1329,7 +1330,7 @@
            case CODE_CLASSIFY_SEC:
                //分类码段的,也是从前端选择了码值即可,不论码值的长度是多少
                CodeClassifyValue codeClassifyValueDO= codeClassifyValueMapper.selectById(secValue);
                if(Func.isBlank(codeClassifyValueDO.getId())){
                if(Func.isBlank(codeClassifyValueDO.getId()) || codeClassifyValueDO.getId().equals("#NaN?")){
                    codeClassifyValueDO.setId("");
                }
                if(codeClassifyValueDO!=null) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -38,7 +38,10 @@
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.omd.cache.EnumCache;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.feign.IDictClient;
import com.vci.ubcs.omd.feign.IEnumClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
@@ -2423,8 +2426,13 @@
        return codeOrderSecDTOList;
    }
    /***
    /**
     * 根据传入的参数信息校验码段规则
     * @param SectionVOList
     * @param ruleVO
     * @param classifyFullInfo
     * @return
     * @throws Throwable
     */
    private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo) throws Throwable{
        List<CodeBasicSecVO>  codeBasicSecVOS= ruleVO.getSecVOList();
@@ -2440,6 +2448,9 @@
        //    String newSecName=codeBasicSecVO.getName();
            String classifySecOid= codeBasicSecVO.getOid();
            String message="";
            //#NaN?表示码值为空的场景
            String nullSymbol = EnumCache.getValue("nullSymbol", "NULL");
            nullSymbol = Func.isBlank(nullSymbol) ? "#NaN?":nullSymbol;
            if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
                String name = codeBasicSecVO.getName();
                String sectypeText = codeBasicSecVO.getSecTypeText();
@@ -2456,8 +2467,8 @@
                        List<CodeClassifyValue> codeClassifyValueDOList = codeClassifyValueService.list(Wrappers.<CodeClassifyValue>query().lambda().eq(CodeClassifyValue::getCodeClassifySecOid,classifySecOid));
                        if (!CollectionUtils.isEmpty(codeClassifyValueDOList)) {
                            Map<String, CodeClassifyValue> codeClassifyValueDOMap = codeClassifyValueDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2));
                            if(codeClassifyValueDOMap.containsKey(sectypeValue)){
                                CodeClassifyValue codeClassifyValue=   codeClassifyValueDOMap.get(sectypeValue);
                            if(codeClassifyValueDOMap.containsKey(sectypeValue) || nullSymbol.equals(sectypeValue)){
                                CodeClassifyValue codeClassifyValue = codeClassifyValueDOMap.get(sectypeValue);
                                sectypeValue=codeClassifyValue.getOid();
                            }else {
                                //throw new Throwable("传入的分类码段:【" + name + " 值:" + sectypeValue + "】,不符合当前分类层级代号");