ludc
2024-10-18 fd0287dfc1d5ab5c97f258d19757cafa29f7333c
changeStatus回收方法调整
已修改2个文件
29 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java
@@ -79,7 +79,7 @@
     */
    private String createCodeOid;
    /***
    /**
     * 流水依赖
     */
    private String serialUnit;
@@ -88,7 +88,8 @@
     * 没有填充前的流水号
     */
    private String unFillSerial;
    /***
    /**
     * 码段值链接
     */
    private String codeDelimit;
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1,11 +1,14 @@
package com.vci.ubcs.code.service.impl;
import cn.hutool.db.sql.Query;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreMetaAttr;
import com.vci.ubcs.code.applyjtcodeservice.vo.BaseModelVO;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
@@ -440,10 +443,18 @@
                throw new VciBaseException("未查询到相关数据。");
            }
            //还需要修改allCode的生命周期
            QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
            allCodeWrapper.eq("createcodebtm", baseModelDTO.getBtmname());
            allCodeWrapper.in("createcodeoid", oids);
            List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);// 回收需要业务数据删除
            LambdaQueryWrapper<CodeAllCode> allCodeWrapper = Wrappers.<CodeAllCode>query().lambda();
            allCodeWrapper.eq(CodeAllCode::getCreateCodeBtm, baseModelDTO.getBtmname());
            allCodeWrapper.in(CodeAllCode::getCreateCodeOid, oids);
            List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);
            if(codeCbos.size() != baseModels.size()){
                throw new ServiceException("当前回收操作中查询出的业务数据中,存在多条码值数据对应关系,请联系开发人员对数据进行排查处理!!");
            }
            //转为map后续取的时候方便
            Map<String, BaseModel> baseModelMap = baseModels.stream().collect(Collectors.toMap(BaseModel::getId, baseModel -> baseModel));
            // 回收需要业务数据删除
            if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
                R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
                if (!listR.isSuccess() || listR.getData().size() == 0) {
@@ -462,12 +473,13 @@
                }
            }
            // 刚好顺序是一致的,所以直接按照codeallcode的顺序来拿业务数据
            int i = -1;
            BaseModel baseModel = null;
            for (CodeAllCode codeCbo : codeCbos) {
                codeCbo.setLcStatus(baseModelDTO.getLcStatus());
                // 如果是回收,就需要将业务数据存储到码值表中
                baseModel = baseModelMap.get(codeCbo.getId());
                if (baseModelDTO.getLcStatus().equals(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_TAKEBACK)) {
                    codeCbo.setBusinessData(JSON.toJSONString(baseModels.get(++i)));
                    codeCbo.setBusinessData(JSON.toJSONString(baseModel));
                }
            }
            codeAllCodeService.updateBatchById(codeCbos);