xiejun
2023-05-31 039f227d1f2998c0e0e5cd5d73d343ad57b88145
添加主数据分类及其属性为集团集成用
已修改10个文件
160 ■■■■ 文件已修改
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeClassifyClient.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/entity/DockingPreMetaAttr.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeClassifyClient.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IDockingPreAttrMappingService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreAttrMappingServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreClassifyServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/src/main/resources/mapper/DockingPreClassifyMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js
@@ -26,8 +26,8 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        //target: 'http://192.168.3.7:37000',
          target: 'http://localhost:37000',
        // target: 'http://192.168.3.7:37000',
        //target: 'http://dev.vci-tech.com:37000',
        //target: 'http://192.168.1.51:37000/',
        //远程演示服务地址,可用于直接启动项目
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeClassifyClient.java
@@ -17,10 +17,18 @@
package com.vci.ubcs.code.feign;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * 主题库定义表 Feign接口类
@@ -35,6 +43,8 @@
    String API_PREFIX = "/codeClass";
    String TOP = API_PREFIX + "/top";
    String CODE_CLASSIFY_TREE=API_PREFIX+"/referCodeClassifyTree";
    String CODE_ATTRIBUTE_LIST=API_PREFIX+"/listCodeAttributeByClassId";
    /**
     * 获取主题库定义表列表
@@ -46,4 +56,19 @@
    @GetMapping(TOP)
    BladePage<CodeClassify> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
    /***
     * 获取主题库分类层级树
     * @param treeQueryObject
     * @return 主题库分类
     */
    @PostMapping(CODE_CLASSIFY_TREE)
    public List<Tree> referCodeClassifyTree(@RequestBody TreeQueryObject treeQueryObject);
    /***
     * 获取主数据模板属性信息
     * @param codeClassifyId
     * reutn 返回主数据模板属性信息
     */
    @GetMapping(CODE_ATTRIBUTE_LIST)
    public List<CodeClassifyTemplateAttrVO> listCodeAttributeByClassId(@RequestParam("codeClassifyId") String codeClassifyId);
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
@@ -27,7 +27,7 @@
    private String name;
    //集团码
    private String groupcode;
    //private String groupcode;
    private String description;
@@ -342,13 +342,13 @@
        this.lctid = lctid;
    }
    public String getGroupcode() {
/*    public String getGroupcode() {
        return this.groupcode;
    }
    public void setGroupcode(String groupcode) {
        this.groupcode = groupcode;
    }
    }*/
    public Map<String, String> getData() {
        return this.data;
Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/entity/DockingPreMetaAttr.java
@@ -54,6 +54,7 @@
     * 视图模型id
     */
    @ApiModelProperty(value = "视图模型主键")
    @TableField(value = "viewModeId")
    private String viewModelId;
    /***
     * 默认值
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeClassifyClient.java
@@ -19,15 +19,26 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.mapper.CodeClassifyMapper;
import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
import com.vci.ubcs.code.service.MdmEngineService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import com.vci.ubcs.code.service.ICodeClassifyService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
 * 主题库定义表 Feign实现类
@@ -41,7 +52,9 @@
public class CodeClassifyClient implements ICodeClassifyClient {
    private final ICodeClassifyService plCodeClassifyService;
    private final ICodeClassifyTemplateAttrService codeClassifyTemplateAttrService;
    private final  MdmEngineService engineService;
    CodeClassifyMapper codeClassifyMapper;
    @Override
@@ -54,4 +67,23 @@
        return BladePage.of(page);
    }
    /***
     * 获取主题库分类层级树
     * @param treeQueryObject
     * @return 主题库分类
     */
    @Override
    @PostMapping(CODE_CLASSIFY_TREE)
    public List<Tree> referCodeClassifyTree(TreeQueryObject treeQueryObject) {
        return plCodeClassifyService.referTree(treeQueryObject);
    }
    @Override
    @GetMapping(CODE_ATTRIBUTE_LIST)
    public List<CodeClassifyTemplateAttrVO> listCodeAttributeByClassId(String codeClassifyId) {
        CodeClassifyTemplateVO codeClassifyTemplateVO=engineService.getUsedTemplateByClassifyOid(codeClassifyId,true);
        return codeClassifyTemplateVO.getAttributes();
    }
}
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.code.feign.ICodeClassifyClient;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.webservice.service.*;
import com.vci.ubcs.code.webservice.vo.*;
import com.vci.ubcs.code.webservice.wrapper.DockingPreApplyFormWrapper;
@@ -61,6 +63,11 @@
    private final IDockingPreApplyFormService dockingPreApplyFormService;
    /***
     * 属性枚举范围服务
     */
    private final ICodeClassifyClient codeClassifyClient;
    /**
     * 根据主数据编码oid获取集团属性映射信息
@@ -120,13 +127,34 @@
    /**
     * 参照树 集团分类(是否包含属性)
     * @param treeQueryObject 树形查询对象 conditionMap 存上 codeclsfid=主数据的分类oid
     * @return 主题库分类显示树
     * @return 集团分类显示树
     */
    @GetMapping("/referTree")
    public List<Tree> referTree(TreeQueryObject treeQueryObject)  {
    public List<Tree> referTree(@RequestBody TreeQueryObject treeQueryObject)  {
        return dockingPreClassifyService.treeCompanyGroupClassify(treeQueryObject);
    }
    /**
     * 参照树 主数据分类
     * @param treeQueryObject 树形查询对象 conditionMap 存上 codeclsfid=主数据的分类oid
     * @return 主题库分类显示树
     */
    @GetMapping("/referCodeClassifyTree")
    public List<Tree> referCodeClassifyTree(@RequestBody TreeQueryObject treeQueryObject)  {
        return codeClassifyClient.referCodeClassifyTree(treeQueryObject);
    }
    /**
     * 参照树 主数据模板属性信息
     * @param codeClassifyId 主数据分类主键
     * @return 主题库分类模板属性
     */
    @GetMapping("/referCodeClassifyTree")
    public List<CodeClassifyTemplateAttrVO>  listCodeAttributeByClassId(String codeClassifyId)  {
        return codeClassifyClient.listCodeAttributeByClassId(codeClassifyId);
    }
    /***
     * 申请集团编码
     * @return
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IDockingPreAttrMappingService.java
@@ -41,9 +41,10 @@
    /***
     *校验属性映射是否配置过
     * @param targetClassifyId
     *  @param sourceClassifyId
     * @return
     */
    boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId);
    boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId,String sourceClassifyId);
    /***
     * 属性查询
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -192,14 +192,15 @@
    /***
     * 根据主数据oid检测是否属性映射配置
     * @param targetClassifyId
     * @param sourceClassifyId
     * @return
     * @throws Exception
     */
    @Override
    public boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId){
    public boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId,String sourceClassifyId){
        Long count =0L;
        try {
            count = dockingPreAttrMappingMapper.selectCount(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, targetClassifyId));
            count = dockingPreAttrMappingMapper.selectCount(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, targetClassifyId).eq(DockingPreAttrMapping::getSourceClassifyId,sourceClassifyId));
        }catch (Throwable e){
            e.printStackTrace();;
        } finally {
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreClassifyServiceImpl.java
@@ -19,10 +19,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.*;
/**
@@ -36,7 +33,7 @@
    /**
     * 上级节点的属性名称
     */
    public static  final String PARENT_FIELD_NAME = "parentCodeClassifyOid";
    public static  final String PARENT_FIELD_NAME = "pid";
    /***
     * 集团分类属性
     */
@@ -70,7 +67,11 @@
    @Override
    public List<Tree> treeCompanyGroupClassify(TreeQueryObject treeQueryObject) {
        log.info("获取集团分类树start...");
        Map<String,String> conditionMap= treeQueryObject.getConditionMap();
        if(conditionMap==null){
            conditionMap=new HashMap<>();
        }
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
        treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
        List<DockingPreClassifyVO> dockingPreClassifyVOS= getCompanyGourpClassByParentId(treeQueryObject.getParentOid(),true);
@@ -78,27 +79,39 @@
            //可以在这里处理树节点的显示
            return s.getId() + " " + s.getName();//(FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s.getLcStatus()) ? (" 【停用】 ") : "");
        });
        setTreeConig(tree,conditionMap);
        log.info("获取集团分类树end...");
        return tree;
    }
    private void setTreeConig(List<Tree> tree,Map<String,String >conditionMap){
        boolean checkHasChild=false;
        Iterator var6 =  tree.listIterator();
        while(var6.hasNext()){
            Tree trees = (Tree) var6.next();
            boolean checkHasChild=dockingPreClassifyMapper.checkHasChild(trees.getOid());
            List<Tree> childrenList=trees.getChildren();
            if(childrenList.size()>0){
                checkHasChild=true;
            }
            boolean checkHas=false;
            //如果与条件传过来的值匹配的上则设置为选中
            if(conditionMap.containsKey(MdmBtmTypeConstant.CODE_CLASSIFY_OID_FIELD)){
                String codeClassifyId=conditionMap.get(MdmBtmTypeConstant.CODE_CLASSIFY_OID_FIELD);
                boolean checkHas=dockingPreAttrMappingService.checkHasConfigByTragetCodeclassifyId(codeClassifyId);
                if(checkHas) {
                    trees.setChecked(true);
                }
                checkHas = dockingPreAttrMappingService.checkHasConfigByTragetCodeclassifyId(codeClassifyId, trees.getOid());
            }
            ;
            if (checkHas) {
                trees.setChecked(true);
            }
            if(checkHasChild){
                trees.setLeaf(false);
            }else{
                trees.setLeaf(true);
            }
            if(checkHasChild) {
                setTreeConig(childrenList,conditionMap);
            }
        }
        log.info("获取集团分类树end...");
        return tree;
    }
    /***
Source/UBCS/ubcs-service/ubcs-webservice/src/main/resources/mapper/DockingPreClassifyMapper.xml
@@ -67,14 +67,17 @@
        codeclassify0.NODELINKNAME   as nodelinkname,
        codeclassify0.PID   as pid
        from PL_CODE_JCLASSIFY codeclassify0
        <where>
        <!--<where>-->
            <if test="oid != null and oid != ''">
                codeclassify0.pid = '${oid}'
                start with
                    codeclassify0.pid = '${oid}'
                connect by prior codeclassify0.oid =codeclassify0.pid
            </if>
            <if test="oid = null">
          <!--  <if test="oid = null">
                codeclassify0.pid is null
            </if>
        </where>
            </if>-->
        <!--</where>-->
        order by id asc
    </select>