田源
2023-09-20 8933441f4535cd01bcd5754ef3b033c1c6c79461
Merge remote-tracking branch 'origin/master'
已修改3个文件
已添加4个文件
339 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SystemClassifyRoleMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeApplyWebManagementService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeApplyWebManagementServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SystemClassifyRoleMapper.xml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
@@ -9,6 +9,7 @@
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -107,4 +108,108 @@
        }
    }
    public <T, R> List<Tree> doListSystemClassTrees(List<T> doList, TreeWrapperOptions wrapperOptions, Function<T, R> f) {
        if (CollectionUtils.isEmpty(doList)) {
            return new ArrayList();
        } else {
            List<Tree> allTree = new ArrayList();
            List<Tree> children = new ArrayList();
            Iterator var6 = doList.iterator();
            while(true) {
                while(var6.hasNext()) {
                    T doObject = (T) var6.next();
                    Tree tree = new Tree();
                    List<String> oidFieldNames = VciBaseUtil.str2List(wrapperOptions.getOidFieldName());
                    List<String> oidValues = new LinkedList();
                    oidFieldNames.stream().forEach((s) -> {
                        oidValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("oid", doObject)));
                    });
                    tree.setOid((String)oidValues.stream().collect(Collectors.joining(wrapperOptions.getOidValueSep())));
                    tree.setName((String) VciBaseUtil.getValueFromField("name", doObject));
                    if (f != null) {
                        tree.setText((String)f.apply(doObject));
                    } else {
                        List<String> textFieldNames = VciBaseUtil.str2List(wrapperOptions.getTextFieldName());
                        List<String> textValues = new LinkedList();
                        textFieldNames.stream().forEach((s) -> {
                            textValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject)));
                        });
                        tree.setText((String)textValues.stream().collect(Collectors.joining(wrapperOptions.getTextValueSep())));
                    }
                    if (StringUtils.isNotBlank(wrapperOptions.getParentFieldName())) {
                        String stringValueFromObject = VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(wrapperOptions.getParentFieldName(), doObject));
                        tree.setParentId(stringValueFromObject);
                    }
                    if (wrapperOptions.isAllAttributes()) {
                        try {
                            tree.setAttributes(VciBaseUtil.objectToMapString(doObject));
                        } catch (Exception var13) {
                            if (this.logger.isErrorEnabled()) {
                                this.logger.error("把对象转换为map时出现了错误,但是不影响树的展示,对业务可能有影响");
                            }
                        }
                    }
                    if (wrapperOptions.isMultipleSelect() || wrapperOptions.isShowCheckBox()) {
                        tree.setShowCheckbox(true);
                    }
                    if (wrapperOptions.getParentOid() == null) {
                        wrapperOptions.setParentOid("");
                    }
                    if (!StringUtils.isBlank(tree.getParentId()) && (!StringUtils.isNotBlank(wrapperOptions.getParentOid()) || !wrapperOptions.getParentOid().equalsIgnoreCase(tree.getParentId()))) {
                        children.add(tree);
                    } else {
                        allTree.add(tree);
                    }
                }
                (new Tree()).findSystemClassChild(allTree, children);
                if (allTree.size() <= 0) {
                    allTree.addAll(children);
                }
                return allTree;
            }
        }
    }
//
//    public void findSystemClassChild(List<Tree> treenode, List<Tree> children) {
//        Tree node;
//        for(Iterator var3 = treenode.iterator(); var3.hasNext(); {
//            if (var3 == null) {
//                var3.next();
//            } else {
//                ((Tree) var3.next()).getChildren().add(node);
//            }
//        }) {
//            node = (Tree)var3.next();
//            Iterator var5 = children.iterator();
//
//            while(var5.hasNext()) {
//                Tree childnode = (Tree)var5.next();
//                if (node.getAttributes().get("classifyOid").equalsIgnoreCase(childnode.getParentId())) {
//                    childnode.setParentName(node.getText());
//                    if (StringUtil.isBlank(childnode.getParentBtmName())) {
//                        childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname", ""));
//                    }
//
//                    node.getChildren().add(childnode);
//                }
//            }
//
//            if (node.getChildren().size() > 0) {
//                this.findSystemClassChild(node.getChildren(), children);
//                node.setLeaf(false);
//            } else {
//                node.setLeaf(true);
//            }
//        }
//
//    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java
@@ -207,6 +207,33 @@
    }
    public void findSystemClassChild(List<Tree> treenode, List<Tree> children) {
        Tree node;
        for(Iterator var3 = treenode.iterator(); var3.hasNext(); this.getChildren().add(node)) {
            node = (Tree)var3.next();
            Iterator var5 = children.iterator();
            while(var5.hasNext()) {
                Tree childnode = (Tree)var5.next();
                if (node.getAttributes().get("classifyOid").equalsIgnoreCase(childnode.getParentId())) {
                    childnode.setParentName(node.getText());
                    if (StringUtil.isBlank(childnode.getParentBtmName())) {
                        childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname", ""));
                    }
                    node.getChildren().add(childnode);
                }
            }
            if (node.getChildren().size() > 0) {
                this.findSystemClassChild(node.getChildren(), children);
                node.setLeaf(false);
            } else {
                node.setLeaf(true);
            }
        }
    }
    @Override
    public String toString() {
        return "Tree{oid='" + this.oid + '\'' + ", text='" + this.text + '\'' + ", leaf=" + this.leaf + ", showCheckbox=" + this.showCheckbox + ", checked=" + this.checked + ", children=" + this.children + ", icon='" + this.icon + '\'' + ", iconCls='" + this.iconCls + '\'' + ", parentId='" + this.parentId + '\'' + ", parentName='" + this.parentName + '\'' + ", parentBtmName='" + this.parentBtmName + '\'' + ", expanded=" + this.expanded + ", href='" + this.href + '\'' + ", index='" + this.index + '\'' + ", attributes=" + this.attributes + '}';
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java
@@ -1,11 +1,16 @@
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO;
import com.vci.ubcs.code.entity.SystemClassifyRole;
import com.vci.ubcs.code.service.ICodeApplyWebManagementService;
import com.vci.ubcs.code.service.ICodeClassifyService;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * ä¸»é¢˜åº“定义表 æŽ§åˆ¶å™¨
@@ -21,6 +26,8 @@
     * åˆ†ç±»æœåŠ¡å¯¹è±¡
     */
    private final ICodeClassifyService codeClassifyService;
    private final ICodeApplyWebManagementService codeApplyWebManagementService;
    /***
     * æ ¹æ®å‰ç«¯é€‰æ‹©çš„分类权限授权授权
@@ -45,5 +52,14 @@
        return R.success("查询成功");
    }
    @PostMapping( "/batchAddSave")
    public R batchAddSave(@RequestBody List<SystemClassifyRole> list,String systemOid,String systemId){
        return codeApplyWebManagementService.batchAddSave(list,systemOid,systemId);
    }
    @GetMapping("/getSystemClassifyRoleTree")
    public List<Tree> getSystemClassifyRoleTree(String systemOid,String systemId){
        return codeApplyWebManagementService.getSystemClassifyRoleTree(systemOid,systemId);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SystemClassifyRoleMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.SystemClassifyRole;
import java.util.List;
public interface SystemClassifyRoleMapper extends BaseMapper<SystemClassifyRole> {
    public List<SystemClassifyRole> getListSystemClassifyRole(String systemOid, String systemId);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeApplyWebManagementService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.SystemClassifyRole;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import org.springblade.core.tool.api.R;
import java.util.List;
public interface ICodeApplyWebManagementService extends IService<SystemClassifyRole> {
    R batchAddSave(List<SystemClassifyRole> list,String systemOid,String systemId);
    List<Tree> getSystemClassifyRoleTree(String systemOid, String systemId);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeApplyWebManagementServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.SystemClassifyRole;
import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
import com.vci.ubcs.code.mapper.SystemClassifyRoleMapper;
import com.vci.ubcs.code.service.ICodeApplyWebManagementService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import jodd.util.StringUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@Service
public class CodeApplyWebManagementServiceImpl extends ServiceImpl<SystemClassifyRoleMapper, SystemClassifyRole> implements ICodeApplyWebManagementService {
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„å±žæ€§åç§°
     */
    public static  final String PARENT_FIELD_NAME = "classParentOid";
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Resource
    private RevisionModelUtil revisionModelUtil;
    @Override
    public R batchAddSave(List<SystemClassifyRole> roleList,String systemOid,String systemId) {
        if(roleList.size() == 0){
            return R.fail("传入数据为空,请确认!!");
        }
        //先删除,再保存
        QueryWrapper<SystemClassifyRole> wrapper = new QueryWrapper<>();
        wrapper.eq("systemOid",systemOid);
        wrapper.eq("systemId",systemId);
        this.remove(wrapper);
        //数据处理
        roleList.stream().forEach(systemClassifyRole -> {
            if(StringUtil.isBlank(systemClassifyRole.getOid())){
                DefaultAttrAssimtUtil.addDefaultAttrAssimt(systemClassifyRole,"systemClassifyRole");
                systemClassifyRole.setSystemId(systemId);
                systemClassifyRole.setSystemOid(systemOid);
            }else{
                systemClassifyRole.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
                systemClassifyRole.setCreateTime(new Date());
                systemClassifyRole.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
                systemClassifyRole.setLastModifyTime(new Date());
                systemClassifyRole.setTs(new Date());
            }
            systemClassifyRole.setTenantId(AuthUtil.getTenantId());
        });
        //保存
        this.saveBatch(roleList);
        return R.success("操作成功");
    }
    @Override
    public List<Tree> getSystemClassifyRoleTree(String systemOid, String systemId) {
        List<SystemClassifyRole> listSystemClassifyRole = baseMapper.getListSystemClassifyRole(systemOid, systemId);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
        treeWrapperOptions.setOidFieldName("CLASSIFYOID");
        List<Tree> tree= revisionModelUtil.doListSystemClassTrees(listSystemClassifyRole,treeWrapperOptions,(SystemClassifyRole s) ->{
            //可以在这里处理树节点的显示
            return s.getClassifyId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
                .getLcStatus()) ? (" ã€åœç”¨ã€‘ ") : "");
        });
        return tree;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SystemClassifyRoleMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.SystemClassifyRoleMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="plSystemClassifyRoleMap" type="com.vci.ubcs.code.entity.SystemClassifyRole">
        <result column="OID" property="oid"/>
        <result column="REVISIONOID" property="revisionOid"/>
        <result column="NAMEOID" property="nameOid"/>
        <result column="BTMNAME" property="btmname"/>
        <result column="LASTR" property="lastR"/>
        <result column="FIRSTR" property="firstR"/>
        <result column="LASTV" property="lastV"/>
        <result column="FIRSTV" property="firstV"/>
        <result column="CREATOR" property="creator"/>
        <result column="CREATETIME" property="createTime"/>
        <result column="LASTMODIFIER" property="lastModifier"/>
        <result column="LASTMODIFYTIME" property="lastModifyTime"/>
        <result column="REVISIONRULE" property="revisionRule"/>
        <result column="VERSIONRULE" property="versionRule"/>
        <result column="REVISIONSEQ" property="revisionSeq"/>
        <result column="REVISIONVALUE" property="revisionValue"/>
        <result column="VERSIONSEQ" property="versionSeq"/>
        <result column="VERSIONVALUE" property="versionValue"/>
        <result column="LCTID" property="lctid"/>
        <result column="LCSTATUS" property="lcStatus"/>
        <result column="TS" property="ts"/>
        <result column="ID" property="id"/>
        <result column="NAME" property="name"/>
        <result column="DESCRIPTION" property="description"/>
        <result column="OWNER" property="owner"/>
        <result column="COPYFROMVERSION" property="copyFromVersion"/>
        <result column="TENANT_ID" property="tenantId"/>
        <result column="SYSTEMOID" property="systemOid"/>
        <result column="SYSTEMID" property="systemId"/>
        <result column="CLASSIFYOID" property="classifyOid"/>
        <result column="CLASSIFYID" property="classifyId"/>
        <result column="SELECTED" property="selected"/>
        <result column="CLASSPARENTOID" property="classParentOid"/>
    </resultMap>
    <select id="getListSystemClassifyRole" resultType="com.vci.ubcs.code.entity.SystemClassifyRole">
        select pc.OID,
               pc.REVISIONOID,
               pc.NAMEOID,
               pc.BTMNAME,
               pc.LASTR,
               pc.FIRSTR,
               pc.LASTV,
               pc.FIRSTV,
               pc.CREATOR,
               pc.CREATETIME,
               pc.LASTMODIFIER,
               pc.LASTMODIFYTIME,
               pc.REVISIONRULE,
               pc.VERSIONRULE,
               pc.REVISIONSEQ,
               pc.REVISIONVALUE,
               pc.VERSIONSEQ,
               pc.VERSIONVALUE,
               pc.LCTID,
               pc.LCSTATUS,
               pc.TS,
               pc.ID,
               p.NAME,
               pc.DESCRIPTION,
               pc.OWNER,
               pc.COPYFROMVERSION,
               pc.GROUPCODE,
               pc.TENANT_ID,
               pc.SYSTEMOID,
               pc.SYSTEMID,
               p.oid CLASSIFYOID,
               p.id CLASSIFYID,
               case when pc.selected is null then 'false' else  pc.SELECTED end SELECTED,
               p.PARENTCODECLASSIFYOID CLASSPARENTOID
        from PL_CODE_CLASSIFY p ,
             PL_CODE_SYSTEM_CLASSIFY_ROLE pc
        where p.oid = pc.CLASSIFYOID(+)
          and '${systemOid}' = pc.SYSTEMOID(+)
          and '${systemId}' = pc.SYSTEMID(+)
    </select>
</mapper>