田源
2023-08-29 a9f5becb47b768c1b7704efc580182dfd089c44a
Merge remote-tracking branch 'origin/master'
已修改2个文件
已添加1个文件
97 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/edit.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | 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/edit.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<data systemId="MPM">
    <user userName="weidy" trueName="魏大勇" ip="127.0.0.1"/>
    <classifys>
        <classify classCode="020101" library="wupin" fullclsfNamePath="物品##VCI##标准件##VCI##螺栓">
            <objects>
                <object code="02010100039"  id="0023401" status="Released" operate="update" editor="weidy" >
                    <prop  key="partname" text="名称" value="温度调节器1"/>
                    <prop key="use" text="主要功能" value="导电连接1"/>
                    <prop key="xinghaoguige" text="主要功能" value="TH-003274"/>
                </object>
                <object  code="02010100040" id="0023402" status="Released" operate="update" editor="weidy">
                    <prop key="partname" text="所属结构" value="温度调节器2"/>
                    <prop key="use" text="主要功能" value="导电连接2"/>
                    <prop key="xinghaoguige" text="主要功能" value="GGXH-003274"/>
                </object>
            </objects>
        </classify>
        <classify classCode="020102" library="wupin" fullclsfNamePath="物品##VCI##标准件##VCI##螺母">
            <objects>
                <object code="02010200033" id="0023401" status="Released" operate="update" editor="weidy">
                    <prop  key="partname" text="名称" value="温度调节器1"/>
                    <prop key="use" text="主要功能" value="导电连接1"/>
                    <prop key="xinghaoguige" text="主要功能" value="GGXH-003274"/>
                </object>
                <object code="02010200034" id="0023402" status="Released" operate="update" editor="weidy">
                    <prop key="partname" text="所属结构" value="温度调节器2"/>
                    <prop key="use" text="主要功能" value="导电连接2"/>
                    <prop key="xinghaoguige" text="主要功能" value="GGXH-003274"/>
                </object>
            </objects>
        </classify>
    </classifys>
</data>
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -367,7 +367,10 @@
    @Override
    public boolean deleteDataById(String oids) {
        return false;
        VciBaseUtil.alertNotNull(oids, "数据主键为空");
        List<String> oidList=VciBaseUtil.str2List(oids);
        int i=dockingSystemConfigMapper.deleteBatchIds(oidList);
        return i>0?true:false;
    }
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2090,6 +2090,7 @@
                            XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                            if(isCodeOrGroupCode) {
                                if(StringUtils.isBlank(groupCode)){
                                    errorid="1";
                                    mes+=";申请的编码类型为集团码,等待集团编码赋值";
                                }
                                resultDataObjectDetailDO.setCode(groupCode);
@@ -2157,14 +2158,16 @@
                    }
                    if(isCodeOrGroupCode) {
                        if(StringUtils.isBlank(groupCode)){
                            resultDataObjectDetailDO.setErrorid("1");
                            msg="申请的编码类型为集团码,等待集团编码赋值";
                        }
                        resultDataObjectDetailDO.setCode(groupCode);
                    }else{
                        resultDataObjectDetailDO.setCode(code);
                        resultDataObjectDetailDO.setErrorid("0");
                    }
                    resultDataObjectDetailDO.setId(sourceOid);
                    resultDataObjectDetailDO.setErrorid("0");
                    resultDataObjectDetailDO.setMsg(msg);
                    resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
                    //处理传送的数据中关键属性重复的,直接拿到已经申请到编码的数据编码直接将赋给关键属性重复的数据
@@ -2324,15 +2327,20 @@
        sb.append(" select * from ");
        sb.append(tableName);
        sb.append(" where 1=1 ");
        sb.append(" id in (");
        if(isCodeOrGroupCode) {
            sb.append(" and groupcode in (");
        }else{
            sb.append(" and id in (");
        }
        sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
        sb.append(")");
        List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
        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<>();
        List<CodeOrderDTO> codeOrderDTOList = new ArrayList<>();
        this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap);
        this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap,isCodeOrGroupCode);
        // List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order");
        boolean isProcess=false;
        /**  if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){
@@ -2354,7 +2362,7 @@
            RowDatas rowData=codeDataMap.get(code);
            String status=rowData.getStatus();
            String operation=rowData.getOperation();
            if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) {
            if (cbo.getTs().compareTo(orderDTO.getTs())==0?false:true) {
                // throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试");
                errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";数据不是最新的,可能他人已经修改,请刷新后再试");
            }
@@ -2396,7 +2404,7 @@
                List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
                if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
                    CodeAllCode codeCbo = codeAllCodeList.get(0);
                    CodeAllCode codeCbo = newCodeAllCodeList.get(0);
                    log.info("codeCbos code:" + codeCbo.getId());
                    codeCbo.setLcStatus(status);
                    codeAllCodeList.add(codeCbo);
@@ -2473,7 +2481,7 @@
            //存储数据
            try {
                engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList);
                codeAllCodeService.saveBatch(codeAllCodeList);
                codeAllCodeService.saveOrUpdateBatch(codeAllCodeList);
                if(deleteList.size()>0) {
                    commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
                }
@@ -2607,17 +2615,22 @@
        //没有限制分类,但是一个模板只可能在一个业务类型里面,所以直接查询这个业务类型即可
        if (!CollectionUtils.isEmpty(conditionMap)) {
            final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "};
            final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " t where 1 = 1 "};
            conditionMap.forEach((key, value) -> {
                sql[0] += " and " + key + " = " + value;
                if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
                    sql[0] += " and " + key + " is null ";
                }else{
                    sql[0] += " and " + key + " = " + value;
                }
            });
            if (StringUtils.isNotBlank(orderDTO.getOid())) {
                //修改的时候,需要排除自己
                sql[0] += " and oid != '" + orderDTO.getOid() + "'";
                sql[0] += " and t.oid != '" + orderDTO.getOid() + "'";
            } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
                sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
                sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'";
            }
            sql[0] += " and lastR = '1' and lastV = '1' ";
            sql[0] += " and t.lastR = '1' and t.lastV = '1' ";
            if (commonsMapper.queryCountBySql(sql[0]) > 0) {
                String ruleInfoMsg = keyRuleVO == null ? "" : "查询规则:去除空格--{0},忽略大小写--{1},忽略全半角--{2},忽略全部空格--{3}";
                String[] objs = new String[]{trim ? "是" : "否", ignoreCase ? "是" : "否", ignoreWidth ? "是" : "否", trimAll ? "是" : "否"};
@@ -2817,17 +2830,24 @@
     * @param errorMap
     * @return
     */
    private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){
        codeDataMap.keySet().forEach(code->{
            RowDatas rowDatas=codeDataMap.get(code);
            Map<String, String> data= rowDatas.getFiledValue();
    private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap,boolean isCodeOrGroupCode){
        codeSystemObjectMap.keySet().forEach(code->{
            ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
            if(isCodeOrGroupCode){
                code=sysDataObject.getAttributeValue("GROUPCODE");
            }
            CodeOrderDTO orderDTO = new CodeOrderDTO();
            if(codeSystemObjectMap.containsKey(code)){
                ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
            if(codeDataMap.containsKey(code)){
                RowDatas rowDatas=codeDataMap.get(code);
                Map<String, String> data= rowDatas.getFiledValue();
                orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                orderDTO.setOid(sysDataObject.getOid());//数据oid
                orderDTO.setLcStatus(rowDatas.getStatus());//状态
                orderDTO.setId(code);
                if(isCodeOrGroupCode){
                    orderDTO.setId(sysDataObject.getId());
                }else{
                    orderDTO.setId(code);
                }
                orderDTO.setTs(sysDataObject.getTs());
                orderDTO.setBtmname(codeClassifyVO.getBtmname());//业务类型
                orderDTO.setDescription("集成调用:更新");//数据描述
@@ -4001,7 +4021,7 @@
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
            for (String key:dataMap.keySet()){
                Object value= dataMap.getOrDefault(key,"");
                clientBusinessObject.setAttributeValue(key,value.toString());
                clientBusinessObject.setAttributeValue(key,value==null?"":value.toString());
            }
            clientBusinessObjectList.add(clientBusinessObject);
        });