统一接口编码申请同时多条关键属性一样的数据申请编码返回值的处理
已修改3个文件
73 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml
@@ -9,14 +9,12 @@
            <objects>
                <object code=""  id="0023401" status="Editing" operate="create" creator="weidy" >
                    <prop key="name" text="名称" value="温度调节器2333"/>
                    <prop key="xinghaoguige" text="型号规格" value="GB-002599"/>
                    <prop key="tuhao" text="图号" value="TH-002599"/>
                    <prop key="tuhao" text="图号" value="TH-0031"/>
                </object>
                <object  code="" id="0023402" status="Editing" operate="create" creator="weidy">
                    <prop key="name" text="所属结构" value="温度调节器"/>
                    <prop key="xinghaoguige" text="型号规格" value="GB-00257"/>
                    <prop key="tuhao" text="图号" value="TH-00257"/>
                    <prop key="tuhao" text="图号" value="TH-0031"/>
                </object>
            </objects>
        </classify>
@@ -27,13 +25,11 @@
            <objects>
                <object code="" id="0023403" status="Editing" operate="create" creator="weidy">
                    <prop  key="name" text="名称" value="温度调节器2"/>
                    <prop key="xinghaoguige" text="型号规格" value="GB-00255"/>
                    <prop key="tuhao" text="图号" value="TH-00255"/>
                    <prop key="tuhao" text="图号" value="TH-0032"/>
                </object>
                <object code="" id="0023404" status="Editing" operate="create" creator="weidy">
                    <prop key="name" text="所属结构" value="qwqw"/>
                    <prop key="xinghaoguige" text="型号规格" value="GB-0026"/>
                    <prop key="tuhao" text="图号" value="TH-0026"/>
                    <prop key="tuhao" text="图号" value="TH-0032"/>
                </object>
            </objects>
        </classify>
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -98,6 +98,8 @@
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            baseModel.setOid(dataMap.getOrDefault("OID",""));
            baseModel.setId(dataMap.getOrDefault("ID",""));
            baseModel.setData(dataMap);;
            Object createTimeObj=dataMap.getOrDefault("CREATETIME","");
            if(createTimeObj!=null) {
                String createTime = createTimeObj.toString();
@@ -140,6 +142,7 @@
            baseModel.setVersionValue(dataMap.getOrDefault("VERSIONVALUE",""));
            baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID",""));
            baseModel.setLastModifier(userId);
        }catch (VciBaseException e){
            e.printStackTrace();
        }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1962,6 +1962,7 @@
        CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
        Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
        Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
        Map<String,List<String>>keyAttrOkOidTORepeatOidMap= keyResultVO.getKeyAttrOkOidTORepeatOidMap();
        if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
            selfRepeatRowIndexList.stream().forEach(rowIndex->{
               /* //传入数据之间关键属性的校验
@@ -2064,8 +2065,8 @@
                            String lcstatus =newCbo.getLcStatus();
                            String newOid =newCbo.getOid();
                            Date ts =newCbo.getTs();
                            groupCode=newCbo.getData().get("GROUPCODE");
                            code=newCbo.getId();
                            code = StringUtils.isBlank(newCbo.getId())?"":newCbo.getId();
                            groupCode=newCbo.getData().getOrDefault("GROUPCODE","");
                            String lastmodifier=newCbo.getLastModifier();
                            if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
                                newCbo.setOid(newOid);
@@ -2136,8 +2137,8 @@
                // if(!isProcess){
                dataCBOList.stream().forEach(needSaveCbo->{
                    XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                    String code=needSaveCbo.getId();
                    String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE","");
                    String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
                    String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
                    //resultDataObjectDetailDO.setCode(needSaveCbo.getId());
                    String msg="申请编码成功";
                    String oid=needSaveCbo.getOid();
@@ -2157,6 +2158,9 @@
                    resultDataObjectDetailDO.setErrorid("0");
                    resultDataObjectDetailDO.setMsg(msg);
                    resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
                    //处理传送的数据中关键属性重复的,直接拿到已经申请到编码的数据编码直接将赋给关键属性重复的数据
                    LinkedList<XMLResultDataObjectDetailDO> repeatDataObjectDetailDOS=handleApplyDataKeyAttrRepeat(keyAttrOkOidTORepeatOidMap,codeOidToSystemOidMap,needSaveCbo,isCodeOrGroupCode);
                    resultDataObjectDetailDOs.addAll(repeatDataObjectDetailDOS);
                });
               /* }else{
                    needSaveCboList.stream().forEach(needSaveCbo->{
@@ -2195,6 +2199,50 @@
    }
    /***
     *给同一批申请编码存在关键属性的数据赋上一致编码
     * @param keyAttrOkOidTORepeatOidMap 一批申请数据关键属性一致的重复数据映射关系
     * @param codeOidToSystemOidMap
     * @param needSaveCbo
     * @param isCodeOrGroupCode
     */
    private LinkedList<XMLResultDataObjectDetailDO> handleApplyDataKeyAttrRepeat(Map<String,List<String>>keyAttrOkOidTORepeatOidMap,Map<String,String> codeOidToSystemOidMap,BaseModel needSaveCbo,boolean isCodeOrGroupCode){
        LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
        String oid=needSaveCbo.getOid();
        if(keyAttrOkOidTORepeatOidMap.containsKey(oid)){
            List<String> repeatOidList= keyAttrOkOidTORepeatOidMap.get(oid);
            if(!CollectionUtils.isEmpty(repeatOidList)){
                String sourceNewOid=needSaveCbo.getOid();
                String sourceOid=sourceNewOid;
                if(codeOidToSystemOidMap.containsKey(oid)){
                    sourceOid=codeOidToSystemOidMap.get(oid);
                }
                String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
                String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
                String finalSourceOid = sourceOid;
                repeatOidList.stream().forEach(repeatOid->{
                    if(codeOidToSystemOidMap.containsKey(repeatOid)){
                        XMLResultDataObjectDetailDO repeatresultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                        String repeatSourceOid=codeOidToSystemOidMap.get(repeatOid);
                        String repeatMsg="此数据与申请的编码数据id为【"+ finalSourceOid +"】的关键属性一致,则取相同编码";
                        if(isCodeOrGroupCode) {
                            if(StringUtils.isBlank(groupCode)){
                                repeatMsg="申请的编码类型为集团码,等待集团编码赋值";
                            }
                            repeatresultDataObjectDetailDO.setCode(groupCode);
                        }else{
                            repeatresultDataObjectDetailDO.setCode(code);
                        }
                        repeatresultDataObjectDetailDO.setId(repeatSourceOid);
                        repeatresultDataObjectDetailDO.setErrorid("0");
                        repeatresultDataObjectDetailDO.setMsg(repeatMsg);
                        resultDataObjectDetailDOs.add(repeatresultDataObjectDetailDO);
                    }
                });
            }
        }
        return  resultDataObjectDetailDOs;
    }
    /***
     * 集成批量同步更新接口
     * @param codeClassifyVO;
@@ -3878,7 +3926,7 @@
            if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){
                selfRepeatRowIndexList.add(rowIndex);
                String okOid=okOidKeyStringMap.getOrDefault(keyString,"");
                if(StringUtils.isBlank(okOid)){
                if(StringUtils.isNotBlank(okOid)){
                    List<String>newOidList=new ArrayList<>();
                    newOidList.add(oid);
                    if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){