xiejun
2023-08-28 300c96cbfb9a9cee605749e0b142205f415e17dc
统一接口配置保存bug修复
已修改3个文件
97 ■■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -101,7 +101,7 @@
    R deleteDatas(String redisOid, String codeClassifyOid, String dataOids);
    void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs);
    void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode);
    /**
     * 集成批量申请数据
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
import com.vci.ubcs.code.bo.AttributeValue;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
@@ -11,6 +12,7 @@
import com.vci.ubcs.code.entity.CodeAllCode;
import com.vci.ubcs.code.enumpack.CodeDefaultLC;
import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
import com.vci.ubcs.code.enumpack.sysIntegrationPushTypeEnum;
import com.vci.ubcs.code.lifecycle.CodeAllCodeLC;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
@@ -154,7 +156,11 @@
     */
    @Autowired
    private IBtmTypeClient btmTypeClient;
    /***
     * 申请集团编码服务
     */
    @Resource
    private IMdmInterJtClient mdmInterJtClient;
    /***
     * 密级服务
     */
@@ -2131,11 +2137,13 @@
                allNeedSaveCboList.add(baseModel.getOid());
            });
            try {
                List<String>applyGroupCodeIdList=new ArrayList<>();
                productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList);
                //如果是编码生成失败,则直接就失败了,其他的判断出来有错误的我们都统一返回到excel里面
                engineService.batchSaveSelectChar(templateVO, dataCBOList);
                // if(!isProcess){
                dataCBOList.stream().forEach(needSaveCbo->{
                    XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                    String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
                    String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
@@ -2143,6 +2151,7 @@
                    String msg="申请编码成功";
                    String oid=needSaveCbo.getOid();
                    String sourceOid=oid;
                    applyGroupCodeIdList.add(oid);
                    if(codeOidToSystemOidMap.containsKey(oid)){
                        sourceOid=codeOidToSystemOidMap.get(oid);
                    }
@@ -2178,6 +2187,13 @@
                    });
                }*/
                //是否调用集团接口申请接口
                if(isCodeOrGroupCode){
                    if(!CollectionUtils.isEmpty(applyGroupCodeIdList)) {
                        this.sendApplyGroupcode(applyGroupCodeIdList, classifyFullInfo.getTopClassifyVO().getId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            }catch (Throwable e){
                e.printStackTrace();
                needSaveCboList.stream().forEach(needSaveCbo->{
@@ -2248,10 +2264,11 @@
     * @param codeClassifyVO;
     * @param dataObjectVO 数据信息
     * @param resultDataObjectDetailDOs 错误信息
     * @param isCodeOrGroupCode 是否更集团系统数据
     */
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
    public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) {
        String errorid="";
        String msg="";
        //查询分类和模板
@@ -2276,8 +2293,8 @@
        List<String> titleRowData = dataObjectVO.getColName();
        Map<String/**中文名称**/, String/**英文名称**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId().toLowerCase(Locale.ROOT), (o1, o2) -> o2));
        getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap);
        Map<String, String> cboOidMap = new HashMap<>();
        cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
        //Map<String, String> cboOidMap = new HashMap<>();
        //cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
        String tableName ="";
        try {
            R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -2459,6 +2476,13 @@
                codeAllCodeService.saveBatch(codeAllCodeList);
                if(deleteList.size()>0) {
                    commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
                }
                //是否调用集团接口申请接口
                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());
                    }
                }
                errorid="0";
                msg="更新/状态更改/删除成功!";
@@ -4405,4 +4429,17 @@
        }
    }
    /***
     * 申请集团编码
     * @param idList
     * @param btmName
     */
    private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
        String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
        if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
            mdmInterJtClient.applyGroupCode(oids,btmName);
        }else if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_EDITCODE)){
            mdmInterJtClient.receiveEditApply(oids,btmName);
        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -6,7 +6,6 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.constant.MdmDuckingConstant;
import com.vci.ubcs.code.dto.CodeOrderDTO;
@@ -131,8 +130,6 @@
    @Autowired
    private ICodeClassifyValueService codeClassifyValueService;
    @Resource
    private IMdmInterJtClient mdmInterJtClient;
    /***
     * 集成接口日志服务的配置
     */
@@ -285,13 +282,6 @@
                    resultClassfyVO.setObjects(resultDataObjectDetailDOs);
                    resultClassfyVOList.add(resultClassfyVO);
                }
                //是否调用集团接口申请接口
                if(isCodeOrGroupCode){
                     List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO->StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList());
                     if(!CollectionUtils.isEmpty(IdList)) {
                        this.sendApplyGroupcode(IdList, libray,sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            });
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
@@ -344,19 +334,7 @@
        return resultStr;
    }
    /***
     * 申请集团编码
     * @param idList
     * @param btmName
     */
    private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
        String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
        if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
            mdmInterJtClient.applyGroupCode(oids,btmName);
        }else if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_EDITCODE)){
            mdmInterJtClient.receiveEditApply(oids,btmName);
        }
    }
    /***
     * 统一更新接口(更改状态,更改属性信息)接口
     * @param data
@@ -400,13 +378,6 @@
            }
            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
            systemId = interParameterVO.getData().getSystemId();
            //校验是否配置
            boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
            if (!checkPass) {
                errorid = "101";
                throw new Throwable("系统标识为【" + systemId + "】," + sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText() + "接口配置已停用或者未配置,请联系编码管理员!");
            }
            UserVO userVo = interParameterVO.getData().getUser();
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
@@ -419,16 +390,30 @@
            String finalSystemId = systemId;
            classVOList.stream().forEach(classVO->{
                log.info("参数:分类COde:" + classVO.getClassCode());
                boolean isCodeOrGroupCode=false;
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
                String libray ="";
                //获取分类信息
                try {
                    String libray = classVO.getLibrary();
                    libray = classVO.getLibrary();
                    CodeClassifyVO codeClassifyVO = getClassfy(classVO,libray);
                    if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                        objerrorCode="100";
                        throw  new  Throwable ("根据传输的分类,未获取到分类信息");
                    }
                    log.info("end:分类查询完毕");
                    String operation="";
                    if(CODE_CHECKCONFIG) {
                        //校验是否配置
                        DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue(),codeClassifyVO.getOid());
                        if(dockingSystemConfig==null){
                            objerrorCode ="101";
                            throw new Throwable("系统标识为【"+ finalSystemId +"】,集成分类为【"+codeClassifyVO.getName()+"】以上分类,"+sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText()+"接口配置已停用或者未配置,请联系编码管理员!");
                        }
                        isCodeOrGroupCode="true".equals(dockingSystemConfig.getIsGroupCodeFlag())?true:false;
                    }
                    //获取分类模板信息
                    CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                    if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
@@ -444,7 +429,7 @@
                    this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
                    log.info("end:数据构建完毕");
                    log.info("start:修改数据执行完毕");
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs);
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode);
                    log.info("end:修改数据执行完毕");
                } catch (Throwable e) {
                    XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
@@ -462,7 +447,6 @@
                    resultClassfyVO.setObjects(resultDataObjectDetailDOs);
                    resultClassfyVOList.add(resultClassfyVO);
                }
            });
        }catch (Throwable e){
            e.printStackTrace();;