xiejun
2023-09-15 d989fc036d8e3c2261491e2ba89efcfc21939fb7
1.读取集成配置文件日志信息输出添加
2.集团接口加上开关控制
已修改3个文件
281 ■■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java 262 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/util/gennerAttrMapUtil.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
@@ -16,6 +16,7 @@
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RestController;
@@ -33,6 +34,8 @@
@AllArgsConstructor
@Slf4j
public class MdmInterJtClient implements IMdmInterJtClient {
    @Value("${docking.apply.partCoe:10}")
    public String partCoe;
    /**
     * 集团申请单服务
     */
@@ -89,9 +92,6 @@
            return R.fail("集团码数据修改失败:"+e.getMessage());
        }
    }
    /*
     * 主数据业务服务
     */
@@ -165,10 +165,10 @@
                String jdataid = dockingPreApplyForm.getDataOid();
                String jdatabtmname = dockingPreApplyForm.getDataBtmName();
                if (res) {
                    //此处需要查询业务数据,去更改
                    BaseModel baseModel = new BaseModel();
                    baseModel.setId(customCoding);
                    baseModel.setId("10" + customCoding);
                    baseModel.getData().put("groupcode",customCoding);
                    log.info("申请单:"+applyId+",集团码:"+customCoding+"编码:"+baseModel.getId());
                    editObjectList.add(baseModel);
                }
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -41,8 +41,10 @@
    private String code="";
    private String msg="";
    @Value("${docking.apply.partCoe:10}")
    public String partCoe;
    @Value("${docking.apply.userFlag:false}")
    public boolean usedFlag;
    @Value("${docking.apply.unitCode:41000}")
    public String dockingApplyUnitCode;
@@ -101,108 +103,113 @@
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    public R applyGroupCode(String oids, String btmName) throws VciBaseException {
        try {
            List<BaseModel> updateCbos = new ArrayList<BaseModel>();
            List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
            VciBaseUtil.alertNotNull(oids, "选择的数据");
            VciBaseUtil.alertNotNull(btmName, "业务类型");
            R<List<BaseModel>> baseModelR =mdmEngineClient.selectByTypeAndOid(btmName,oids);
            List<BaseModel> dataModelList= baseModelR.getData();
            if (!CollectionUtils.isEmpty(dataModelList)) {
                DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
                //申请单和申请单对象关系
                Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
                //组织数据
                dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
                DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
                code = resultDataObject.getCode();
                msg = resultDataObject.getMsg();
                if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
                    List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
                    dataObjectVOList.stream().forEach(dataObject -> {
                        boolean isEditDatas = false;
                        String code2 = dataObject.getCode();
                        DockingMainDataVO data2 = dataObject.getData();
                        String applyId = data2.getApplyId();//申请单id
                        String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//集团码段
                        msg = dataObject.getMsg();
                        if (code2.equals("1")) {//结果正确的情况
                            if (!"".equals(customCoding)) {
                                isEditDatas = true;
        if(usedFlag) {
            try {
                List<BaseModel> updateCbos = new ArrayList<BaseModel>();
                List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
                VciBaseUtil.alertNotNull(oids, "选择的数据");
                VciBaseUtil.alertNotNull(btmName, "业务类型");
                R<List<BaseModel>> baseModelR = mdmEngineClient.selectByTypeAndOid(btmName, oids);
                List<BaseModel> dataModelList = baseModelR.getData();
                if (!CollectionUtils.isEmpty(dataModelList)) {
                    DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
                    //申请单和申请单对象关系
                    Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                    Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                    Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
                    //组织数据
                    dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
                    DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
                    code = resultDataObject.getCode();
                    msg = resultDataObject.getMsg();
                    if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
                        List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
                        dataObjectVOList.stream().forEach(dataObject -> {
                            boolean isEditDatas = false;
                            String code2 = dataObject.getCode();
                            DockingMainDataVO data2 = dataObject.getData();
                            String applyId = data2.getApplyId();//申请单id
                            String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//集团码段
                            msg = dataObject.getMsg();
                            if (code2.equals("1")) {//结果正确的情况
                                if (!"".equals(customCoding)) {
                                    isEditDatas = true;
                                }
                            }
                        }
                        //需要修改的申请单数据
                        if (editDockingPreApplyFormMap.containsKey(applyId)) {
                            DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                            dockingPreApplyForm.setCode(code2);
                            //需要修改的申请单数据
                            if (editDockingPreApplyFormMap.containsKey(applyId)) {
                                DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                                dockingPreApplyForm.setCode(code2);
                                dockingPreApplyForm.setMsg("申请:" + msg);
                                dockingPreApplyForm.setGroupCode(customCoding);
                                ObjectMapper mp = new ObjectMapper();
                                String writeValueAsString = null;
                                try {
                                    writeValueAsString = mp.writeValueAsString(dataObject);
                                    dockingPreApplyForm.setContent(writeValueAsString);
                                } catch (JsonProcessingException e) {
                                }
                            }
                            //新增的申请单数据
                            if (addDockingPreApplyFormMap.containsKey(applyId)) {
                                DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                                dockingPreApplyForm.setCode(code2);
                                dockingPreApplyForm.setMsg("申请:" + msg);
                                dockingPreApplyForm.setGroupCode(customCoding);
                                ObjectMapper mp = new ObjectMapper();
                                String writeValueAsString = null;
                                try {
                                    writeValueAsString = mp.writeValueAsString(dataObject);
                                    dockingPreApplyForm.setContent(writeValueAsString);
                                } catch (JsonProcessingException e) {
                                }
                            }
                            //如果有集团码则更新数据
                            if (isEditDatas) {
                                if (baseModelMap.containsKey(applyId)) {
                                    BaseModel baseModel = baseModelMap.get(applyId);
                                    baseModel.getData().getOrDefault("codeclassid","");
                                    BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    //baseModel.setId(customCoding);
                                    baseModel.getData().getOrDefault("groupCode", customCoding);
                                    updateCbos.add(baseModel);//更新数据集团code
                                }
                            }
                        });
                    } else {
                        editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                            dockingPreApplyForm.setCode("2");
                            dockingPreApplyForm.setMsg("申请:" + msg);
                            dockingPreApplyForm.setGroupCode(customCoding);
                            ObjectMapper mp = new ObjectMapper();
                            String writeValueAsString = null;
                            try {
                                writeValueAsString = mp.writeValueAsString(dataObject);
                                dockingPreApplyForm.setContent(writeValueAsString);
                            } catch (JsonProcessingException e) {
                            }
                        }
                        //新增的申请单数据
                        if (addDockingPreApplyFormMap.containsKey(applyId)) {
                            DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                            dockingPreApplyForm.setCode(code2);
                            dockingPreApplyForm.setContent("");
                            dockingPreApplyForm.setGroupCode("");
                            DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                        });
                        addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                            dockingPreApplyForm.setCode("2");
                            dockingPreApplyForm.setMsg("申请:" + msg);
                            dockingPreApplyForm.setGroupCode(customCoding);
                            ObjectMapper mp = new ObjectMapper();
                            String writeValueAsString = null;
                            try {
                                writeValueAsString = mp.writeValueAsString(dataObject);
                                dockingPreApplyForm.setContent(writeValueAsString);
                            } catch (JsonProcessingException e) {
                            }
                        }
                        //如果有集团码则更新数据
                        if (isEditDatas) {
                            if (baseModelMap.containsKey(applyId)) {
                                BaseModel baseModel = baseModelMap.get(applyId);
                                BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                //baseModel.setId(customCoding);
                                baseModel.getData().getOrDefault("groupCode",customCoding);
                                updateCbos.add(baseModel);//更新数据集团code
                            }
                        }
                    });
                } else {
                    editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                        dockingPreApplyForm.setCode("2");
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        dockingPreApplyForm.setContent("");
                        dockingPreApplyForm.setGroupCode("");
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                    });
                    addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                        dockingPreApplyForm.setCode("2");
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        dockingPreApplyForm.setContent("");
                        dockingPreApplyForm.setGroupCode("");
                        DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                    });
                            dockingPreApplyForm.setContent("");
                            dockingPreApplyForm.setGroupCode("");
                            DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                        });
                    }
                    if (editDockingPreApplyFormMap.size() > 0) {
                        dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//添加申请单数据
                    }
                    if (addDockingPreApplyFormMap.size() > 0) {
                        dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//需要修改的申请单数据
                    }
                    //保存表单数据
                    dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                    mdmEngineClient.updateBatchByType(btmName, updateCbos);//保存数据
                }
                if (editDockingPreApplyFormMap.size() > 0) {
                    dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//添加申请单数据
                }
                if (addDockingPreApplyFormMap.size() > 0) {
                    dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//需要修改的申请单数据
                }
                //保存表单数据
                dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                mdmEngineClient.updateBatchByType(btmName,updateCbos);//保存数据
                return R.success("申请接口调用成功");
            } catch (VciBaseException e) {
                return R.fail("申请接口调用失败" + e);
            }
            return R.success("申请接口调用成功");
        }catch (VciBaseException e){
            return R.fail("申请接口调用失败"+e);
        }else{
            return R.fail("申请接口开关已关闭,不申请集团码");
        }
    }
@@ -216,10 +223,14 @@
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    public R receiveEditApply(String oids, String btmName) throws VciBaseException {
        List<BaseModel> updateCbos=new ArrayList<BaseModel>();
        List<DockingPreApplyForm> dockingPreAttrMappings=new ArrayList<>();
        VciBaseUtil.alertNotNull(oids,"选择的数据");
        VciBaseUtil.alertNotNull(btmName,"业务类型");
        if(usedFlag) {
            log.info("更新接口功能已关闭!->"+usedFlag);
            R.success("更新接口功能已关闭!");
        }
        List<BaseModel> updateCbos = new ArrayList<BaseModel>();
        List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
        VciBaseUtil.alertNotNull(oids, "选择的数据");
        VciBaseUtil.alertNotNull(btmName, "业务类型");
        //List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids));
        List<BaseModel> dataModelList = new ArrayList<>();
        try {
@@ -282,8 +293,8 @@
                                BaseModel baseModel = baseModelMap.get(applyId);
                                //BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                            //    baseModel.setId(customCoding);
                                baseModel.getData().getOrDefault("groupCode",customCoding);
                                //    baseModel.setId(customCoding);
                                baseModel.getData().put("groupCode", customCoding);
                                updateCbos.add(baseModel);//更新数据集团code
                            }
                        }
@@ -312,11 +323,11 @@
                }
                //保存表单数据
                dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                mdmEngineClient.updateBatchByType(btmName,updateCbos);//保存数据
                mdmEngineClient.updateBatchByType(btmName, updateCbos);//保存数据
            }
            return R.success("申请接口调用成功");
        }catch (VciBaseException e){
            return R.fail("申请接口调用失败"+e.getMessage());
            return R.success("更新接口调用成功");
        } catch (VciBaseException e) {
            return R.fail("更新接口调用失败" + e.getMessage());
        }
    }
@@ -330,6 +341,10 @@
    public R queryClassModel(String groupClassifyId) throws Throwable {
        log.info("获取集团模型详细信息执行保存start");
        String message="执行成功!";
        if(usedFlag){
            log.info("获取集团模型详细信息执行保存功能已关闭!->"+usedFlag);
            return R.fail("获取集团模型详细信息接口已关闭!");
        }
        try {
            if (StringUtils.isBlank(groupClassifyId)) {
                message = "参数:集团分类主键,为空!";
@@ -354,19 +369,19 @@
                    log.info(message);
                    throw new Throwable(message);
                }
            }else{
                message="未从集团获取到任何模型信息";
            } else {
                message = "未从集团获取到任何模型信息";
                log.info(message);
                throw new Throwable(message);
            }
            return R.success(message);
        }catch (Throwable e){
            e.printStackTrace();;
            log.error("获取数据模型详细信息失败"+e);
            R.fail(message);
        } catch (Throwable e) {
            e.printStackTrace();
            log.error("获取数据模型详细信息失败" + e);
            return R.fail(message);
        }finally {
            log.info("获取集团模型详细信息执行保存end");
        }
        log.info("获取集团模型详细信息执行保存end");
        return R.success(message);
    }
    /***
@@ -378,6 +393,10 @@
    public R queryMdmModel() throws Throwable {
        String message="执行成功!";
        log.info("从集团获取主模型信息执行保存接口statr");
        if(usedFlag){
            log.info("从集团获取主模型信息执行保存接口功能已关闭!->"+usedFlag);
            return R.fail("查询模型视图接口已关闭!");
        }
        try {
            if (StringUtils.isBlank(dockingApplySysName)) {
                message = "获取系统标识" + dockingApplySysName + "为空,请查看配置!";
@@ -461,7 +480,10 @@
     */
    @Override
    public R queryApplyState(String dataOids) throws VciBaseException {
        if(usedFlag){
            log.info("查询申请单状态接口开关已关闭");
            return R.fail("查询申请单状态接口开关已关闭");
        }
        String message="执行成功!";
        log.info("查询申请单状态接口statr");
        try {
@@ -524,6 +546,10 @@
     */
    @Override
    public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException {
        if(usedFlag){
            log.info("同步集团模型信息开关已关闭");
            return R.fail("同步集团模型信息开关已关闭");
        }
        VciBaseUtil.alertNotNull(operationType,"集成操作类型");
        try {
            if(operationType.equals("all")){
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/util/gennerAttrMapUtil.java
@@ -6,10 +6,12 @@
import com.vci.ubcs.code.vo.webserviceModel.attrmap.LibraryDO;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import com.vci.ubcs.starter.util.LocalFileUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map;
@Slf4j
public class gennerAttrMapUtil {
    @Autowired(required = false)
    private AttributeMapConfig attributeMapConfig;
@@ -27,17 +29,22 @@
     * @param systemId
     */
    public LibraryDO gennerAttrMapBySystem(String systemId, Map<String, String> system_attrmap) throws Throwable{
        log.info("系统标识->"+systemId);
        if(StringUtils.isBlank(systemId)){
            throw new Throwable("系统标识为空");
        }
        LibraryDO rootDataVO=new LibraryDO();
        if(system_attrmap.containsKey(systemId)){
           String path=system_attrmap.get(systemId);
           log.info("系统标识->"+systemId+";文件属性配置文件路径->"+path);
           String attributeMapData=  LocalFileUtil.readContentForFile(path);
           log.info("读取后的属性映射内容"+attributeMapData);
           XStream xStream = new XStream(new DomDriver());
           xStream.processAnnotations(LibraryDO.class);
           xStream.autodetectAnnotations(true);
            rootDataVO = (LibraryDO) xStream.fromXML(attributeMapData);
            log.info("转换成对象start");
           rootDataVO = (LibraryDO) xStream.fromXML(attributeMapData);
            log.info("转换成对象end");
        }
        return rootDataVO;