xiejun
2023-09-18 a2fa411f10fefa7d7186e5d20ffe928d4689c373
申请集团码相关接口加上特殊取集团码的情况处理
已修改7个文件
122 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
@@ -61,13 +61,14 @@
     */
    @PostMapping(INSERT_BATCH_BY_TYPE)
    R<Integer> insertBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
    /**
     * 传入业务类型以及相关数据进行批量更新操作
     * 更新业务数据同时对码值表数据操作接口
     *
     * @param btmType 业务类型
     * @param baseModels      处理数据
     * @return 处理状态
     */
    @PostMapping(UPDATE_BATCH_BY_TYPE)
    R<Integer> updateBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
    R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
@@ -106,7 +106,7 @@
    public R getApplyGroupCode(DockingReturnStoreVO dockingReturnStoreVO) {
        log.info("获取集团集团码,赋值到主数据 start");
        try {
            List<BaseModel> editObjectList = new ArrayList();
            Map<String,List<BaseModel>> editObjectMap = new HashMap<>();
            List<DockingPreApplyForm> dockingPreApplyFormList = new ArrayList();
            //String classId = javaObject.getClassId();
@@ -167,18 +167,24 @@
                if (res) {
                    //此处需要查询业务数据,去更改
                    BaseModel baseModel = new BaseModel();
                    baseModel.setId("10" + customCoding);
                    String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                    if(partCoe.equals(classOid)){
                        baseModel.setId(10+customCoding);
                    }
                    String btmeName=baseModel.getBtmname();
                    baseModel.getData().put("groupcode",customCoding);
                    log.info("申请单:"+applyId+",集团码:"+customCoding+"编码:"+baseModel.getId());
                    editObjectList.add(baseModel);
                    editObjectMap.getOrDefault(btmeName,new ArrayList<>()).add(baseModel);
                }
                List<String> dataOidList=new ArrayList<>();
                dataOidList.add(jdataid);
            }
            if(!CollectionUtils.isEmpty(editObjectMap)) {
                //调用主数据服务批量保存接口
                mdmEngineClient.updateBatchByType(jdatabtmname,editObjectList);
                editObjectMap.forEach((btmName, modeList) -> {
                    mdmEngineClient.updateBatchBtypeDatas(btmName, modeList);
                });
            }
            dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
        }catch (Throwable e){
            e.printStackTrace();
            return R.fail("集团码集成赋值失败"+e);
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -9,6 +9,8 @@
import com.vci.ubcs.code.applyjtcodeservice.entity.*;
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
import com.vci.ubcs.code.applyjtcodeservice.vo.*;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
import com.vci.ubcs.code.applyjtcodeservice.mapper.DockingPreAttrMappingMapper;
@@ -168,11 +170,14 @@
                            if (isEditDatas) {
                                if (baseModelMap.containsKey(applyId)) {
                                    BaseModel baseModel = baseModelMap.get(applyId);
                                    baseModel.getData().getOrDefault("codeclassid","");
                                    String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                                    if(partCoe.equals(classOid)){
                                        baseModel.setId(10+customCoding);
                                    }
                                    BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    //baseModel.setId(customCoding);
                                    baseModel.getData().getOrDefault("groupCode", customCoding);
                                    updateCbos.add(baseModel);//更新数据集团code
                                }
@@ -202,7 +207,7 @@
                    }
                    //保存表单数据
                    dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                    mdmEngineClient.updateBatchByType(btmName, updateCbos);//保存数据
                    mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
                }
                return R.success("申请接口调用成功");
            } catch (VciBaseException e) {
@@ -212,7 +217,6 @@
            return R.fail("申请接口开关已关闭,不申请集团码");
        }
    }
    /***
     * 主数据像集团更改编码
     * @param oids 需要修改的数据主键数组
@@ -292,6 +296,10 @@
                            if (baseModelMap.containsKey(applyId)) {
                                BaseModel baseModel = baseModelMap.get(applyId);
                                //BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
                                String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                                if(partCoe.equals(classOid)){
                                    baseModel.setId(10+customCoding);
                                }
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                //    baseModel.setId(customCoding);
                                baseModel.getData().put("groupCode", customCoding);
@@ -323,7 +331,7 @@
                }
                //保存表单数据
                dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                mdmEngineClient.updateBatchByType(btmName, updateCbos);//保存数据
                mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
            }
            return R.success("更新接口调用成功");
        } catch (VciBaseException e) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
@@ -79,7 +79,7 @@
        }
    }
    /**
     * 传入业务类型以及相关数据进行批量插入操作
     * 更新业务数据同时对码值表数据操作接口
     *
     * @param btmType 业务类型
     * @param baseModels      处理数据
@@ -87,9 +87,9 @@
     */
    @Override
    @PostMapping(UPDATE_BATCH_BY_TYPE)
    public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
    public R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels){
        try {
            return mdmEngineService.updateBatchByBaseModel(btmType,baseModels);
            return mdmEngineService.updateBatchBtypeDatas(btmType,baseModels);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -413,6 +413,15 @@
    R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels);
    /**
     * 更新业务数据同时对码值表数据操作接口
     *
     * @param btmType 业务类型
     * @param baseModels      处理数据
     * @return 处理状态
     */
    public R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
    /**
     * 默认列表
     * @param referConfigVO
     * @return
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -16,6 +16,7 @@
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.ClientBusinessObject;
import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
import com.vci.ubcs.code.vo.CodeReferConfigVO;
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
@@ -56,6 +57,7 @@
import com.vci.ubcs.system.user.feign.IUserClient;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import oracle.sql.TIMESTAMP;
import org.aspectj.apache.bcel.classfile.Code;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;
@@ -3684,6 +3686,65 @@
        return R.success("更新成功!");
    }
    /**
     * 更新业务数据同时对码值表数据操作接口
     *
     * @param btmType 业务类型
     * @param baseModels      处理数据
     * @return 处理状态
     */
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) {
        //使用传入的业务类型查询表
        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
        if (!listR.isSuccess() || listR.getData().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
        }
        //获取当前业务类型所有字段用来做对比
        R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
        if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应字段信息,请检查!");
        }
        Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
            return btmTypeAttributeVO.getId();
        }).collect(Collectors.toSet());
        if(!CollectionUtils.isEmpty(baseModels)){
            List<String> oidList=baseModels.stream().filter(data-> com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(data.getOid())).map(BaseModel::getOid).distinct().collect(Collectors.toList());
            LambdaQueryWrapper<CodeAllCode> lqw = new LambdaQueryWrapper<>();
            lqw.in(CodeAllCode::getCreateCodeOid,oidList);
            List<CodeAllCode> codeAllCodeList= codeAllCodeService.selectByWrapper(lqw);
            Map<String, CodeAllCode> cboMap = codeAllCodeList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getCreateCodeOid(), t -> t));
            List<CodeAllCode> newCodeAllCodeList=new ArrayList<>();
            //将bean转为map,mybatis统一处理
            List<Map<String, String>> maps = new ArrayList<>();
            try {
                baseModels.stream().forEach(baseModel->{
                    String oid=baseModel.getOid();
                    try {
                        maps.add(VciBaseUtil.convertBean2Map(baseModel,existFild));
                    } catch (Exception e) {
                        throw new VciBaseException("类型转换错误:" + e.getMessage());
                    }
                    if(cboMap.containsKey(oid)){
                        CodeAllCode codeAllCode=    cboMap.get(oid);
                        codeAllCode.setId(baseModel.getId());
                        codeAllCode.setLastModifier(AuthUtil.getUser().getUserName());
                        codeAllCode.setLastModifyTime(new Date());
                        codeAllCode.setLcStatus(baseModel.getLcStatus());
                        newCodeAllCodeList.add(codeAllCode);
                    }
                });
                commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps);
                codeAllCodeService.saveOrUpdateBatch(newCodeAllCodeList);
            } catch (Exception e) {
                throw new VciBaseException("类型转换错误:" + e.getMessage());
            }
        }
        return R.success("更新成功!");
    }
    /**
     * 获取参照的信息
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2494,6 +2494,9 @@
                //是否调用集团接口申请接口
                if(isCodeOrGroupCode){
                    List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO-> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList());
                    if(!CollectionUtils.isEmpty(IdList)) {
                        this.sendApplyGroupcode(IdList, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
                    }