ludc
2023-05-29 d4ff6edc9c65f37fcaa6058231e5c0bed96a083c
集团主模型和模型详细信息接口移植开发
已修改4个文件
已重命名1个文件
已添加2个文件
578 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingModelQueryVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingQueryClassModelVO.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingQueryModelVO.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/resources/application-dev.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java
@@ -5,9 +5,7 @@
 * @date 2023-05-26
 */
import com.vci.ubcs.code.webservice.vo.DockingClassifyModelAttrVO;
import com.vci.ubcs.code.webservice.vo.DockingGroupDataVO;
import com.vci.ubcs.code.webservice.vo.DockingResultVO;
import com.vci.ubcs.code.webservice.vo.*;
import com.vci.ubcs.starter.exception.VciBaseException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -41,7 +39,20 @@
    @PostMapping("/externalMainData/receiveAddApply")
    DockingResultVO receiveEditApply(@NotNull @RequestBody DockingGroupDataVO dockingGroupDataVO)throws VciBaseException;
    /***
     * æŸ¥è¯¢ä¸»åˆ†ç±»æ¨¡åž‹
     * @param dockingModelQueryVO
     * @return æ‰§è¡Œç»“æžœ
     */
    @PostMapping("/externalMainData/queryMdmModel")
    DockingQueryModelVO queryMdmModel(@NotNull @RequestBody DockingModelQueryVO dockingModelQueryVO);
    /***
     * æŸ¥è¯¢åˆ†ç±»è¯¦ç»†æ¨¡åž‹è§†å›¾
     * @param dockingModelQueryVO
     * @return æ‰§è¡Œç»“æžœ
     */
    @PostMapping("/externalMainData/queryClassModel")
    DockingQueryClassModelVO queryClassModel(@NotNull @RequestBody DockingModelQueryVO dockingModelQueryVO);
}
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingModelQueryVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.vci.ubcs.code.webservice.vo;
public class DockingModelQueryVO {
    private  String sysName;
    private String classId;
    public String getSysName() {
        return sysName;
    }
    public void setSysName(String sysName) {
        this.sysName = sysName;
    }
    public String getClassId() {
        return classId;
    }
    public void setClassId(String classId) {
        this.classId = classId;
    }
    @Override
    public String toString() {
        return "DockingModelQueryVO{" +
            "sysName='" + sysName + '\'' +
            ", classId='" + classId + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingQueryClassModelVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.vci.ubcs.code.webservice.vo;
import java.util.List;
/***
 * é›†å›¢åˆ†ç±»ä¿¡æ¯
 * @author xiejun
 * @date 2023-05-26
 */
public class DockingQueryClassModelVO {
    /***
     * è¿”回编码
     */
    private int code=1;
    /***
     * è¿”回信息
     */
    private String msg="接口调用成功";
    /***
     * ç³»ç»Ÿæ ‡è¯†
     */
    private String sysName;
    /***
     * æ•°æ®é›†
     */
    private DockingClassifyMainVO mainData;
    /***
     * æ•°æ®é›†
     */
    private DockingClassifyMainVO data;
    private String applyEntId;
    /***
     * æ•°æ®é›†
     */
    private DockingClassifyMainVO dataStructure;
    public String getSysName() {
        return sysName;
    }
    public void setSysName(String sysName) {
        this.sysName = sysName;
    }
    public String getApplyEntId() {
        return applyEntId;
    }
    public void setApplyEntId(String applyEntId) {
        this.applyEntId = applyEntId;
    }
    public void setMainData(DockingClassifyMainVO mainData) {
        this.mainData = mainData;
    }
    public DockingClassifyMainVO getDataStructure() {
        return dataStructure;
    }
    public DockingClassifyMainVO getMainData() {
        return mainData;
    }
    public DockingClassifyMainVO getData() {
        return data;
    }
    public void setData(DockingClassifyMainVO data) {
        this.data = data;
    }
    public void setDataStructure(DockingClassifyMainVO dataStructure) {
        this.dataStructure = dataStructure;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    @Override
    public String toString() {
        return "DockingQueryClassModelVO{" +
            "code=" + code +
            ", msg='" + msg + '\'' +
            ", sysName='" + sysName + '\'' +
            ", mainData=" + mainData +
            ", data=" + data +
            ", applyEntId='" + applyEntId + '\'' +
            ", dataStructure=" + dataStructure +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingQueryModelVO.java
ÎļþÃû´Ó Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingModelVO.java ÐÞ¸Ä
@@ -2,13 +2,8 @@
import java.util.List;
/***
 * é›†å›¢åˆ†ç±»ä¿¡æ¯
 * @author xiejun
 * @date 2023-05-26
 */
public class DockingQueryModelVO {
public class DockingModelVO {
    private int code;
    private String msg;
    private List<DockingClassifyVO> data;
@@ -31,12 +26,8 @@
        this.data = data;
    }
    @Override
    public String toString() {
        return "ClsfModeObject{" +
            "code=" + code +
            ", msg='" + msg + '\'' +
            ", data=" + data +
            '}';
    }
}
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java
@@ -28,10 +28,21 @@
    public R receiveEditApply(String oids, String btmName)throws Throwable;
    /***
     *
     * @return
     * æŸ¥è¯¢åˆ†ç±»è¯¦ç»†æ¨¡åž‹è§†å›¾
     * @param jtclsfId:集团分类oid
     * @return è¿”回结果信息
     * @throws Throwable
     */
    public R pubJTclsfModel()throws Throwable;
    public R queryClassModel(String jtclsfId)throws Throwable;
    /***
     * æŸ¥è¯¢åˆ†ç±»è¯¦ç»†æ¨¡åž‹è§†å›¾
     * @param jtclsfId:集团分类oid
     * @return è¿”回结果信息
     * @throws Throwable
     */
    public R queryMdmModel()throws Throwable;
}
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java
@@ -42,8 +42,13 @@
    private String msg="";
    @Value("${docking.apply.unitCode:410-MDM}")
    @Value("${docking.apply.unitCode:41000}")
    public String dockingApplyUnitCode;
    @Value("${docking.apply.sysName:410-MDM}")
    public String dockingApplySysName;
    @Autowired(required = false)
    private MdmApplyGroupCodeProvider mdmApplyGroupCodeProvider;
    /***
@@ -90,8 +95,8 @@
     * @return è¿”回结果信息
     * @throws Exception
     */
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    @Transactional
    public R applyGroupCode(String oids, String btmName) throws VciBaseException {
        try {
            List<BaseModel> updateCbos = new ArrayList<BaseModel>();
@@ -206,6 +211,7 @@
     * @return è¿”回结果信息
     * @throws Throwable
     */
    @Transactional(rollbackFor = VciBaseException.class)
    @Override
    public R receiveEditApply(String oids, String btmName) throws VciBaseException {
        List<BaseModel> updateCbos=new ArrayList<BaseModel>();
@@ -313,10 +319,370 @@
        }
    }
    /***
     * èŽ·å–é›†å›¢æ¨¡åž‹è¯¦ç»†ä¿¡æ¯æ‰§è¡Œä¿å­˜
     * @param groupClassifyId
     * @return
     * @throws VciBaseException
     */
    @Override
    public R pubJTclsfModel() throws Throwable {
        return null;
    public R queryClassModel(String groupClassifyId) throws VciBaseException {
        log.info("获取集团模型详细信息执行保存start");
        String message="执行成功!";
        try {
            if (StringUtils.isBlank(groupClassifyId)) {
                message = "参数:集团分类主键,为空!";
                log.info(message);
                throw new Throwable(message);
            }
            if (StringUtils.isBlank(dockingApplySysName)) {
                message = "获取系统标识" + dockingApplySysName + "为空,请查看配置!";
                log.info(message);
                throw new Throwable(message);
            }
            DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO();
            dockingModelQueryVO.setClassId(groupClassifyId);
            dockingModelQueryVO.setSysName(dockingApplySysName);
            DockingQueryClassModelVO dockingQueryClassifyModelVO = mdmApplyGroupCodeProvider.queryClassModel(dockingModelQueryVO);
            if (dockingQueryClassifyModelVO != null) {
                int code = dockingQueryClassifyModelVO.getCode();
                message = dockingQueryClassifyModelVO.getMsg();
                if (code == 1) {
                    this.saveDatas(dockingQueryClassifyModelVO);
                } else {
                    log.info(message);
                    throw new Throwable(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);
        }
        log.info("获取集团模型详细信息执行保存end");
        return R.success(message);
    }
    /***
     * ä»Žé›†å›¢èŽ·å–ä¸»æ¨¡åž‹ä¿¡æ¯æ‰§è¡Œä¿å­˜
     * @return
     * @throws Throwable
     */
    @Override
    public R queryMdmModel() throws Throwable {
        String message="执行成功!";
        log.info("从集团获取主模型信息执行保存接口statr");
        try {
            if (StringUtils.isBlank(dockingApplySysName)) {
                message = "获取系统标识" + dockingApplySysName + "为空,请查看配置!";
                log.info(message);
                throw new Throwable(message);
            }
            DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO();
            dockingModelQueryVO.setSysName(dockingApplySysName);
            DockingQueryModelVO dockingQueryModelVO=  mdmApplyGroupCodeProvider.queryMdmModel(dockingModelQueryVO);
            if (dockingQueryModelVO != null) {
                int code = dockingQueryModelVO.getCode();
                message = dockingQueryModelVO.getMsg();
                if (code == 1) {
                    List<DockingClassifyVO> dockingClassifyVOList=dockingQueryModelVO.getData();
                    List<DockingPreClassify>dockingPreClassifyList=new ArrayList<>();
                    dockingClassifyVOList.stream().forEach(dockingClassifyVO -> {
                        String id = StringUtils.isBlank(dockingClassifyVO.getId())?"":dockingClassifyVO.getId();
                        String className = StringUtils.isBlank(dockingClassifyVO.getClassName())?"":dockingClassifyVO.getClassName();
                        String classNumber = StringUtils.isBlank(dockingClassifyVO.getClassNumber())?"":dockingClassifyVO.getClassNumber();
                        String nodeLink = StringUtils.isBlank(dockingClassifyVO.getNodeLink())?"":dockingClassifyVO.getNodeLink();
                        String nodeLinkName = StringUtils.isBlank(dockingClassifyVO.getNodeLinkName())?"":dockingClassifyVO.getNodeLinkName();
                        String pid = StringUtils.isBlank(dockingClassifyVO.getPid())?"":dockingClassifyVO.getPid();
                        String version = StringUtils.isBlank(dockingClassifyVO.getVersion())?"":dockingClassifyVO.getVersion();
                        DockingPreClassify dockingPreClassify=    this.dockingPreClassifyService.getById(id);
                        log.info("classify:-------------->集团分类主机:"+id);
                        log.info("classify:-------------->集团分类名称:"+className);
                        log.info("classify:--------------> é›†å›¢åˆ†ç±»çˆ¶èŠ‚ç‚¹:"+pid);
                        log.info("classify:-------------->链接:"+nodeLink);
                        log.info("classify:-------------->集团分类代号:"+classNumber);
                        log.info("classify:-------------->链接名称:"+nodeLinkName);
                        log.info("classify:-------------->链接版本:"+version);
                        if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
                            DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
                        } else {
                            DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
                        }
                        dockingPreClassify.setOid(id);
                        dockingPreClassify.setName(className);
                        dockingPreClassify.setPid(pid);
                        dockingPreClassify.setId(classNumber);
                        dockingPreClassify.setNodeLink(nodeLink);
                        dockingPreClassify.setGetNodeLinkName(nodeLinkName);
                        dockingPreClassify.setClassName(className);
                        dockingPreClassify.setVersionValue(version);
                        dockingPreClassifyList.add(dockingPreClassify);
                    });
                    boolean res=    dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyList);
                    if(res){
                        R.success(message);
                    }else{
                        message="保存分类主模型失败";
                        throw new Throwable(message);
                    }
                } else {
                    log.info(message);
                    throw new Throwable(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);
        }
        log.info("从集团获取主模型信息执行保存接口end");
        return R.success(message);
    }
    /***
     * ç»„织 ä¿å­˜æ•°æ®æ–¹æ³•
     *
     * @param dockingQueryClassifyModelVO
     * @return
     * @throws Throwable
     * @throws
     * @throws Throwable
     */
    private boolean saveDatas(DockingQueryClassModelVO dockingQueryClassifyModelVO) throws Throwable {
        try {
            DockingClassifyMainVO mainData = dockingQueryClassifyModelVO.getMainData();
            List<DockingClassifyVO> classList = mainData.getClassList();
            Map<String,List<DockingClassifyViewVO>>classInfoMap = mainData.getClassInfos();
            ////initVCIInvocationInfo("1");
            List<DockingPreClassify> dockingPreClassifyArrayList=new ArrayList<>();
            for (DockingClassifyVO jclassObject : classList) {
                String id =StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId();
                String className = StringUtils.isBlank(jclassObject.getClassName())?"":jclassObject.getClassName();
                String pid = StringUtils.isBlank(jclassObject.getPid())?"":jclassObject.getPid();
                String nodeLink = StringUtils.isBlank(jclassObject.getNodeLink())?"":jclassObject.getNodeLink();
                String nodeLinkName = StringUtils.isBlank(jclassObject.getNodeLinkName())?"":jclassObject.getNodeLinkName();
                String classNumber = StringUtils.isBlank(jclassObject.getClassNumber())?"":jclassObject.getClassNumber();
                //根据分类查询模型视图对象
                DockingPreClassify dockingPreClassify = dockingPreClassifyService.getById(id);
                log.info("classify:-------------->集团分类主机:"+id);
                log.info("classify:-------------->集团分类名称:"+className);
                log.info("classify:--------------> é›†å›¢åˆ†ç±»çˆ¶èŠ‚ç‚¹:"+pid);
                log.info("classify:-------------->链接:"+nodeLink);
                log.info("classify:-------------->链接名称:"+nodeLinkName);
                if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
                    DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
                } else {
                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
                }
                dockingPreClassify.setOid(id);
                dockingPreClassify.setName(className);
                dockingPreClassify.setPid(pid);
                dockingPreClassify.setId(classNumber);
                dockingPreClassify.setNodeLink(nodeLink);
                dockingPreClassify.setGetNodeLinkName(nodeLinkName);
                dockingPreClassify.setClassName(className);
                dockingPreClassifyArrayList.add(dockingPreClassify);
                // èŽ·å–å¯¹åº”çš„åˆ†ç±»è§†å›¾æ¨¡åž‹
                if (classInfoMap.containsKey(id)) {
                    List<DockingClassifyViewVO> list = classInfoMap.get(id);
                    getVilewMode(jclassObject,list);
                }
            }
            boolean res= dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyArrayList);
            return res;
        } catch (Throwable e) {
            e.printStackTrace();
            throw new Throwable("存储视图模型出现问题");
        }
    }
    /***
     * èŽ·å–åˆ†ç±»è§†å›¾
     *
     * @param jclassObject
     * @throws Throwable
     */
    private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list)
        throws Throwable {
        String nodeLinkName = jclassObject.getNodeLinkName();
        try {
            String jclassId = com.alibaba.cloud.commons.lang.StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId();
            Map<String, DockingPreViewModel> jviewmodelMap = new HashMap<String, DockingPreViewModel>();
            //Map<String, String> condtionMa = new HashMap<String, String>();
            //    condtionMa.put("jsourceclsfid", jclassId);
            List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,false));// æ ¹æ®åˆ†ç±»æŸ¥è¯¢æ¨¡åž‹è§†å›¾å¯¹è±¡
            for (DockingPreViewModel dockingPreViewModel : dockingPreViewModelList) {
                jviewmodelMap.put(dockingPreViewModel.getViewName(),dockingPreViewModel);
            }
            for (DockingClassifyViewVO viewInfo : list) {
                String viewName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getViewName())?"":viewInfo.getViewName();
                String impactList = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getImpactList())?"":viewInfo.getImpactList();
                log.info("VilewMode:-------------->视图名称:"+viewName);
                log.info("VilewMode:-------------->影响编码项:"+impactList);
                log.info("VilewMode:--------------> é›†å›¢åˆ†ç±»ä¸»é”®:"+jclassId);
                List<DockingClassifyMetaAttrVO> metaList = viewInfo.getMetaList();
                DockingPreViewModel jviewModelObject = null;
                if (jviewmodelMap.containsKey(viewName)) {
                    jviewModelObject = jviewmodelMap.get(viewName);
                    //影响编码项的数据
                    jviewModelObject.setImpactList(impactList);
                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(jviewModelObject);
                } else {
                    jviewModelObject =new DockingPreViewModel();
                    DefaultAttrAssimtUtil.addDefaultAttrAssimt(jviewModelObject,MdmBtmTypeConstant.DOCKING_PRE_JVIEWMODEL);
                    jviewModelObject.setSourceClassifyId(jclassId);// é›†å›¢åˆ†ç±»id
                    jviewModelObject.setViewName(viewName);// é›†å›¢è§†å›¾åç§°
                    //影响编码项的数据
                    jviewModelObject.setImpactList(impactList);
                    dockingPreViewModelList.add(jviewModelObject);
                }
                // èŽ·å–æ¨¡åž‹è§†å›¾ä¸‹çš„å±žæ€§é›†
                // String oid = jviewModelObject.getOid();
                List<DockingPreMetaAttr>allDockingPreMetaAttrList=new ArrayList<>();
                getMetaAttrObject(metaList, jclassId, jviewModelObject, "root",allDockingPreMetaAttrList);
                //保存模型视图属性
                dockingPreMetaAttrService.saveOrUpdateBatch(allDockingPreMetaAttrList);
                //保存模型视图
                dockingPreViewModelService.saveOrUpdateBatch(dockingPreViewModelList);
            }
        } catch (Throwable e) {
            e.printStackTrace();
            throw new Throwable("组织分类" + nodeLinkName + "模型视图存储出现问题");
        }
    }
    /***
     * èŽ·å–æ¨¡åž‹è§†å›¾å±žæ€§
     * @throws Throwable
     */
    private void getMetaAttrObject(List<DockingClassifyMetaAttrVO> metaList,
                                   String jclassId, DockingPreViewModel jviewModelObject, String pid,List<DockingPreMetaAttr>allDockingPreMetaAttrList)throws Throwable {
        try {
            //// æ ¹æ®åˆ†ç±»æŸ¥è¯¢æ¨¡åž‹è§†å›¾å¯¹è±¡
            List<DockingPreMetaAttr> dockingPreMetaAttrList = dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda()
                .eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid())
                .eq(DockingPreMetaAttr:: getPid,pid));
            Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter(
                s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t));
            for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) {
                String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// å±žæ€§åç§°
                String englishName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getEnglishName())?"":dockingClassifyMetaAttrVO.getEnglishName();// è‹±æ–‡åç§°
                String defaultValue = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getDefaultValue())?"":dockingClassifyMetaAttrVO.getDefaultValue();
                Integer metadataType =dockingClassifyMetaAttrVO.getMetadataType();// ç±»åž‹
                Integer necessaryConf = dockingClassifyMetaAttrVO.getNecessaryConf();// æ˜¯å¦å¿…å¡«
                Map<String, String> range = dockingClassifyMetaAttrVO.getRange()==null?new HashMap<String, String>():dockingClassifyMetaAttrVO.getRange();// å–值范围
                log.info("metaAttr:-------------->属性名称:"+chineseName);
                log.info("metaAttr:-------------->英文名称:"+englishName);
                log.info("metaAttr:-------------->默认值:"+defaultValue);
                log.info("metaAttr:--------------> ç±»åž‹:"+metadataType);
                log.info("metaAttr:-------------->  æ˜¯å¦å¿…å¡«:"+necessaryConf);
                DockingPreMetaAttr dockingPreMetaAttr = new DockingPreMetaAttr();
                if (jmetaattrMap.containsKey(englishName)) {
                    dockingPreMetaAttr = jmetaattrMap.get(englishName);
                    dockingPreMetaAttr.setChineseName(chineseName);
                    dockingPreMetaAttr.setDefaultValue(defaultValue);
                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreMetaAttr);
                } else {
                    DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreMetaAttr,MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR);
                    dockingPreMetaAttr.setSourceClassifyId(jclassId);// é›†å›¢åˆ†ç±»id
                    dockingPreMetaAttr.setViewModelId(jviewModelObject.getOid());// é›†å›¢è§†å›¾æ¨¡åž‹id
                    dockingPreMetaAttr.setChineseName(chineseName);// å±žæ€§åç§°
                    dockingPreMetaAttr.setEnglishName(englishName);// å±žæ€§å­—段
                    dockingPreMetaAttr.setDefaultValue(defaultValue);// å±žæ€§åç§°
                    dockingPreMetaAttr.setMetaDataType(metadataType);// å±žæ€§ç±»åž‹
                    dockingPreMetaAttr.setNecesSaryConf(necessaryConf);// å±žæ€§å¿…填项
                    dockingPreMetaAttr.setPid(pid);// çˆ¶èŠ‚ç‚¹id
                }
                if(range!=null&&range.size()>0){
                    // èŽ·å–å±žæ€§å€¼åŸŸ
                    getRange(dockingPreMetaAttr, range);
                }
                /***
                 * èŽ·å–å­èŠ‚ç‚¹
                 */
                DockingClassifyMetaAttrVO compositeMeta = dockingClassifyMetaAttrVO.getCompositeMeta();
                if (compositeMeta != null) {
                    pid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingPreMetaAttr.getOid())?"":dockingPreMetaAttr.getOid();// å½“前oid
                    List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>();
                    childMetaList.add(compositeMeta);
                    getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList);
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
            log.error("组织模型视图"+ jviewModelObject.getViewName()
                + "属性存储出现问题" + e);
            throw new Throwable("组织模型视图"+ jviewModelObject.getViewName()
                + "属性存储出现问题" + e);
        }
    }
    /**
     * @throws Throwable
     *             * èŽ·å–å€¼åŸŸ
     * @param metaAttrObject
     * @param range
     * @throws
     */
    private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable {
        String metaAttrOid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// å±žæ€§çš„oid
        String jchinesename = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName();
        Map<String, DockingPreAttrRange> rangeMap = new HashMap<>();
        try {
            Map<String, String> condtionMa = new HashMap<String, String>();
            condtionMa.put("jmetalistid", metaAttrOid);
            List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda()
                .eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// æ ¹æ®åˆ†ç±»æŸ¥è¯¢æ¨¡åž‹è§†å›¾å¯¹è±¡
            rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t));
            for (String rangeKey : range.keySet()) {
                DockingPreAttrRange rangeObject = new DockingPreAttrRange();
                String keyValue = com.alibaba.cloud.commons.lang.StringUtils.isBlank(range.get(rangeKey))?"":range.get(rangeKey);
                log.info("range:-------------->显示值"+rangeKey+",内部值"+keyValue);
                if (rangeMap.containsKey(rangeKey)) {
                    rangeObject = rangeMap.get(rangeKey);
                    rangeObject.setNumTextValue(keyValue);
                    rangeObject.setNumText(rangeKey);
                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(rangeObject);
                } else {
                    DefaultAttrAssimtUtil.addDefaultAttrAssimt(rangeObject,MdmBtmTypeConstant.DOCKING_PRE_JRANGE);
                    rangeObject.setNumTextValue(keyValue);
                    rangeObject.setNumText(rangeKey);
                    rangeObject.setTs(rangeObject.getLastModifyTime());
                    rangeObject.setMetaListId(metaAttrOid);
                    log.info("range:-------------->属性内部值:"+metaAttrOid);
                    log.info("range:-------------->时间:"+rangeObject.getLastModifyTime());
                    jmetaattrList.add(rangeObject);
                }
            }
            dockingPreAttrRangeService.saveOrUpdateBatch(jmetaattrList);
        } catch (Throwable e) {
            e.printStackTrace();
            log.info("组织属性:【" + jchinesename + "】值域出现问题"+ e);
            throw new Throwable("组织属性:【" + jchinesename + "】值域出现问题"+ e);
        }
    }
    /**
@@ -376,7 +742,7 @@
            }
            //根据数据模型,组织所需要数据
            DockingGroupDataVO postParameters=new DockingGroupDataVO();
            postParameters.setSysName("420-CODE");//系统标识
            postParameters.setSysName(dockingApplySysName);//系统标识
            postParameters.setMainData(mainDataList);//
            return postParameters;
        } catch (Throwable e) {
Source/UBCS/ubcs-service/ubcs-webservice/src/main/resources/application-dev.yml
@@ -12,8 +12,13 @@
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false
  #集团集成配置信息
docking:
  apply:
    #集团提供的接口地址
    jtInterUrl: http://116.205.176.185:8099
    unitCode: 410-MDM
    #系统厂家单位代码
    unitCode: 131460
    #系统标识
    sysName:  410-MDM