yuxc
2023-10-17 1df478bfab1a1e27d9c5e88f7c8c0fc71f904e8e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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.CodeClassify;
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.log.exception.ServiceException;
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.*;
import java.util.stream.Collectors;
 
@Service
public class CodeApplyWebManagementServiceImpl extends ServiceImpl<SystemClassifyRoleMapper, SystemClassifyRole> implements ICodeApplyWebManagementService {
 
    /**
     * 上级节点的属性名称
     */
    public static  final String PARENT_FIELD_NAME = "classParentOid";
 
    /**
     * 对象的操作
     */
    @Resource
    private RevisionModelUtil revisionModelUtil;
    @Resource
    private CodeClassifyServiceImpl classifyService;
 
 
    @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);
        List<SystemClassifyRole> systemClassifyRoles = this.listByIds(roleList.stream().map(SystemClassifyRole ::getOid).collect(Collectors.toList()));;
        this.remove(wrapper);
        List<SystemClassifyRole> newSCRoles = new ArrayList<>();
        //数据处理
        systemClassifyRoles.stream().forEach(classifyRole ->{
            classifyRole.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
            classifyRole.setCreateTime(new Date());
            classifyRole.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
            classifyRole.setLastModifyTime(new Date());
            classifyRole.setTs(new Date());
        });
        newSCRoles.addAll(systemClassifyRoles);
        //处理新选择的数据
        roleList.stream().forEach(systemClassifyRole -> {
            if(StringUtil.isBlank(systemClassifyRole.getOid())){
                DefaultAttrAssimtUtil.addDefaultAttrAssimt(systemClassifyRole,"systemClassifyRole");
                systemClassifyRole.setSystemId(systemId);
                systemClassifyRole.setSystemOid(systemOid);
                systemClassifyRole.setTenantId(AuthUtil.getTenantId());
                systemClassifyRole.setSelected(true);
                newSCRoles.add(systemClassifyRole);
            }
        });
        //保存
        this.saveBatch(newSCRoles);
        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;
    }
 
    @Override
    public List<Tree> getAuthTree(HashMap<String, String> paramMap) {
        //查询已经授权了的分类
        List<CodeClassify> listClassifyRole = baseMapper.getListClassifyRole(paramMap.get("systemOid"), paramMap.get("systemId"), paramMap.get("library"));
        if(listClassifyRole.size() == 0){
            throw new ServiceException("还未授权,请联系编码资源管理系统管理员授权!");
        }
        List<CodeClassifyVO> voList = classifyService.codeClassifyDO2VOs(listClassifyRole);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(classifyService.PARENT_FIELD_NAME);
        //转换成树形结构
        List<Tree> tree= revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyVO s) ->{
            //可以在这里处理树节点的显示
            return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
                .getLcStatus()) ? (" 【停用】 ") : "");
        });
        return tree;
    }
}