Просмотр исходного кода

案例流程管理查询接口

gy b 2 лет назад
Родитель
Сommit
9d7be2c16b

+ 60
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/flow/CaseFlowController.java Просмотреть файл

@@ -0,0 +1,60 @@
1
+package com.ruoyi.web.controller.flow;
2
+
3
+import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
5
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
6
+import com.ruoyi.system.service.flow.CaseFlowService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.RequestBody;
10
+import org.springframework.web.bind.annotation.RequestMapping;
11
+import org.springframework.web.bind.annotation.RestController;
12
+
13
+import static com.ruoyi.common.core.domain.AjaxResult.success;
14
+
15
+/**
16
+ * 案件流程管理
17
+ */
18
+@RestController
19
+@RequestMapping("/case/flow")
20
+public class CaseFlowController {
21
+    @Autowired
22
+    CaseFlowService caseFlowService;
23
+
24
+    /**
25
+     * 查询案件流程节点信息
26
+     */
27
+    @PostMapping("/queryCaseFlowInfo")
28
+    public AjaxResult queryCaseFlowInfo(@RequestBody MsCaseFlowSearchVO caseFlowSearchVO) {
29
+        Object obj = caseFlowService.queryCaseFlowInfo(caseFlowSearchVO);
30
+        return success(obj);
31
+    }
32
+
33
+    /**
34
+     * 新增或编辑案件流程节点信息
35
+     */
36
+    @PostMapping("/saveCaseFlow")
37
+    public AjaxResult addCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) {
38
+        Boolean result = caseFlowService.addCaseFlow(caseFlowVO);
39
+        return success(result);
40
+
41
+    }
42
+
43
+    /**
44
+     * 删除案件流程节点信息
45
+     */
46
+    @PostMapping("/deleteCaseFlow")
47
+    public AjaxResult deleteCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) {
48
+        Boolean result = caseFlowService.deleteCaseFlow(caseFlowVO);
49
+        return success(result);
50
+    }
51
+
52
+    /**
53
+     * 排序案件流程节点
54
+     */
55
+    @PostMapping("/sortCaseFlow")
56
+    public AjaxResult sortCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) {
57
+        Boolean result = caseFlowService.sortCaseFlow(caseFlowVO);
58
+        return success(result);
59
+    }
60
+}

+ 48
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java Просмотреть файл

@@ -0,0 +1,48 @@
1
+package com.ruoyi.system.domain.entity.flow;
2
+
3
+import javax.persistence.*;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+import lombok.ToString;
7
+
8
+@Getter
9
+@Setter
10
+@ToString
11
+@Table(name = "ms_case_flow")
12
+public class MsCaseFlow {
13
+    /**
14
+     * 主键id
15
+     */
16
+    @Id
17
+    @GeneratedValue(generator = "JDBC")
18
+    private Integer id;
19
+
20
+    /**
21
+     * 案件节点id
22
+     */
23
+    @Column(name = "node_id")
24
+    private Integer nodeId;
25
+
26
+    /**
27
+     * 案件节点名称
28
+     */
29
+    @Column(name = "node_name")
30
+    private String nodeName;
31
+
32
+    /**
33
+     * 顺序
34
+     */
35
+    private Integer sort;
36
+
37
+    /**
38
+     * 案件状态名称
39
+     */
40
+    @Column(name = "case_status_name")
41
+    private String caseStatusName;
42
+
43
+    /**
44
+     * 驳回节点id
45
+     */
46
+    @Column(name = "back_flow_id")
47
+    private Integer backFlowId;
48
+}

+ 30
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlowRoleRelated.java Просмотреть файл

@@ -0,0 +1,30 @@
1
+package com.ruoyi.system.domain.entity.flow;
2
+
3
+import javax.persistence.*;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+import lombok.ToString;
7
+
8
+@Getter
9
+@Setter
10
+@ToString
11
+@Table(name = "ms_case_flow_role_related")
12
+public class MsCaseFlowRoleRelated {
13
+    /**
14
+     * id
15
+     */
16
+    @Id
17
+    @GeneratedValue(generator = "JDBC")
18
+    private Integer id;
19
+
20
+    /**
21
+     * 案件流程id
22
+     */
23
+    @Column(name = "flow_id")
24
+    private Integer flowId;
25
+
26
+    /**
27
+     * 用户角色id
28
+     */
29
+    private Long roleid;
30
+}

+ 28
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowSearchVO.java Просмотреть файл

@@ -0,0 +1,28 @@
1
+package com.ruoyi.system.domain.vo.flow;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.Column;
8
+import javax.persistence.GeneratedValue;
9
+import javax.persistence.Id;
10
+import javax.persistence.Table;
11
+
12
+@Getter
13
+@Setter
14
+@ToString
15
+public class MsCaseFlowSearchVO {
16
+    /**
17
+     * 主键id
18
+     */
19
+    private Integer id;
20
+
21
+    /**
22
+     * 案件节点名称
23
+     */
24
+    private String nodeName;
25
+    private Integer pageNum;
26
+    private Integer pageSize;
27
+
28
+}

+ 45
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java Просмотреть файл

@@ -0,0 +1,45 @@
1
+package com.ruoyi.system.domain.vo.flow;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Builder;
5
+import lombok.Data;
6
+import lombok.NoArgsConstructor;
7
+
8
+
9
+@AllArgsConstructor
10
+@NoArgsConstructor
11
+@Builder
12
+@Data
13
+public class MsCaseFlowVO {
14
+    /**
15
+     * 主键id
16
+     */
17
+    private Integer id;
18
+
19
+    /**
20
+     * 案件节点id
21
+     */
22
+    private Integer nodeId;
23
+
24
+    /**
25
+     * 案件节点名称
26
+     */
27
+    private String nodeName;
28
+
29
+    /**
30
+     * 顺序
31
+     */
32
+    private Integer sort;
33
+
34
+    /**
35
+     * 案件状态名称
36
+     */
37
+    private String caseStatusName;
38
+
39
+    /**
40
+     * 驳回节点id
41
+     */
42
+    private Integer backFlowId;
43
+    private String backFlowName;
44
+    private String roleNames;
45
+}

+ 7
- 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java Просмотреть файл

@@ -0,0 +1,7 @@
1
+package com.ruoyi.system.mapper.flow;
2
+
3
+import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
4
+import tk.mybatis.mapper.common.Mapper;
5
+
6
+public interface MsCaseFlowMapper extends Mapper<MsCaseFlow> {
7
+}

+ 7
- 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.java Просмотреть файл

@@ -0,0 +1,7 @@
1
+package com.ruoyi.system.mapper.flow;
2
+
3
+import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated;
4
+import tk.mybatis.mapper.common.Mapper;
5
+
6
+public interface MsCaseFlowRoleRelatedMapper extends Mapper<MsCaseFlowRoleRelated> {
7
+}

+ 34
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowService.java Просмотреть файл

@@ -0,0 +1,34 @@
1
+package com.ruoyi.system.service.flow;
2
+
3
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
4
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
5
+
6
+public interface CaseFlowService {
7
+    /**
8
+     * 查询案件流程节点信息
9
+     * @param caseFlowSearchVO
10
+     * @return
11
+     */
12
+    Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO);
13
+
14
+    /**
15
+     * 新增或编辑案件流程节点信息
16
+     * @param caseFlowVO
17
+     * @return
18
+     */
19
+    Boolean addCaseFlow(MsCaseFlowVO caseFlowVO);
20
+
21
+    /**
22
+     * 删除案件流程节点信息
23
+     * @param caseFlowVO
24
+     * @return
25
+     */
26
+    Boolean deleteCaseFlow(MsCaseFlowVO caseFlowVO);
27
+
28
+    /**
29
+     * 排序案件流程节点
30
+     * @param caseFlowVO
31
+     * @return
32
+     */
33
+    Boolean sortCaseFlow(MsCaseFlowVO caseFlowVO);
34
+}

+ 154
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java Просмотреть файл

@@ -0,0 +1,154 @@
1
+package com.ruoyi.system.service.flow;
2
+
3
+import com.github.pagehelper.PageHelper;
4
+import com.github.pagehelper.PageInfo;
5
+import com.ruoyi.common.core.domain.entity.SysRole;
6
+import com.ruoyi.common.utils.PageUtils;
7
+import com.ruoyi.system.domain.SysOperLog;
8
+import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
9
+import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated;
10
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
11
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
12
+import com.ruoyi.system.mapper.SysRoleMapper;
13
+import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
14
+import com.ruoyi.system.mapper.flow.MsCaseFlowRoleRelatedMapper;
15
+import org.springframework.beans.BeanUtils;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.stereotype.Service;
18
+import tk.mybatis.mapper.entity.Example;
19
+
20
+import java.util.ArrayList;
21
+import java.util.HashMap;
22
+import java.util.List;
23
+import java.util.Map;
24
+import java.util.stream.Collectors;
25
+
26
+import static com.deepoove.poi.data.NumberingRenderData.build;
27
+import static com.ruoyi.common.utils.PageUtils.startPage;
28
+import static jdk.nashorn.internal.runtime.Debug.id;
29
+
30
+@Service
31
+public class CaseFlowServiceImpl implements CaseFlowService {
32
+    @Autowired
33
+    MsCaseFlowMapper msCaseFlowMapper;
34
+    @Autowired
35
+    MsCaseFlowRoleRelatedMapper msCaseFlowRoleRelatedMapper;
36
+    @Autowired
37
+    SysRoleMapper sysRoleMapper;
38
+
39
+    /**
40
+     * 查询案件流程节点信息
41
+     *
42
+     * @param caseFlowSearchVO
43
+     * @return
44
+     */
45
+    @Override
46
+    public Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO) {
47
+        //查询某个案件流程节点信息
48
+        if (caseFlowSearchVO.getId() != null) {
49
+            return msCaseFlowMapper.selectByPrimaryKey(caseFlowSearchVO.getId());
50
+        } else if (caseFlowSearchVO == null) {
51
+            return msCaseFlowMapper.selectAll();
52
+        } else if (caseFlowSearchVO.getPageNum() == null || caseFlowSearchVO.getPageSize() == null) {
53
+            return msCaseFlowMapper.selectAll();
54
+        } else {
55
+            Map<Integer, List<SysRole>> sysRoleMap = queryRoleByFlowId(null);
56
+            Example example = new Example(MsCaseFlow.class);
57
+            example.setOrderByClause(" sort DESC ");
58
+            Example.Criteria criteria = example.createCriteria();
59
+            if (caseFlowSearchVO.getNodeName() != null) {
60
+                criteria.andLike("nodeName", "%" + caseFlowSearchVO.getNodeName() + "%");
61
+            }
62
+            PageHelper.startPage(caseFlowSearchVO.getPageNum(), caseFlowSearchVO.getPageSize());
63
+            List<MsCaseFlow> msCaseFlows = msCaseFlowMapper.selectByExample(example);
64
+            PageInfo<MsCaseFlow> pageInfo = new PageInfo<>(msCaseFlows);
65
+            PageInfo<MsCaseFlowVO> newpageInfo = new PageInfo<>();
66
+            BeanUtils.copyProperties(pageInfo, newpageInfo);
67
+            List<MsCaseFlowVO> list = new ArrayList<>();
68
+            for (int i = 0; i < msCaseFlows.size(); i++) {
69
+                MsCaseFlow msCaseFlow = msCaseFlows.get(i);
70
+                MsCaseFlowVO temp = new MsCaseFlowVO();
71
+                BeanUtils.copyProperties(msCaseFlow, temp);
72
+                //关联的角色
73
+                List<String> roleNames = new ArrayList<>();
74
+                if (sysRoleMap.containsKey(msCaseFlow.getId())) {
75
+                    List<SysRole> sysRoles = sysRoleMap.get(msCaseFlow.getId());
76
+                    roleNames = sysRoles
77
+                            .stream()
78
+                            .map(sysRole -> sysRole.getRoleName())
79
+                            .collect(Collectors.toList());
80
+                    temp.setRoleNames(roleNames.toString());
81
+                }
82
+                //驳回节点
83
+                if (msCaseFlow.getBackFlowId() != null) {
84
+                    MsCaseFlow msCaseFlow1 = msCaseFlowMapper.selectByPrimaryKey(msCaseFlow.getBackFlowId());
85
+                    temp.setBackFlowName(msCaseFlow1.getNodeName());
86
+                }
87
+                list.add(temp);
88
+            }
89
+            return list;
90
+        }
91
+    }
92
+
93
+    /**
94
+     * 查询流程信息相关的角色信息
95
+     *
96
+     * @return
97
+     */
98
+    Map<Integer, List<SysRole>> queryRoleByFlowId(Integer flowId) {
99
+        Map<Integer, List<SysRole>> map = new HashMap<>();
100
+        Example example = new Example(MsCaseFlowRoleRelated.class);
101
+        Example.Criteria criteria = example.createCriteria();
102
+        if (flowId != null) {
103
+            criteria.andEqualTo("flowId", flowId);
104
+        }
105
+        List<MsCaseFlowRoleRelated> msCaseFlowRoleRelateds = msCaseFlowRoleRelatedMapper.selectByExample(example);
106
+        for (int i = 0; i < msCaseFlowRoleRelateds.size(); i++) {
107
+            Integer flowId1 = msCaseFlowRoleRelateds.get(i).getFlowId();
108
+            if (msCaseFlowRoleRelateds.get(i).getRoleid() != null) {
109
+                SysRole sysRole = sysRoleMapper.selectRoleById(msCaseFlowRoleRelateds.get(i).getRoleid());
110
+                if (map.containsKey(flowId1)) {
111
+                    map.get(flowId1).add(sysRole);
112
+                } else {
113
+                    List<SysRole> newList = new ArrayList<>();
114
+                    newList.add(sysRole);
115
+                    map.put(flowId1, newList);
116
+                }
117
+            }
118
+        }
119
+        return map;
120
+    }
121
+
122
+    /**
123
+     * 新增或编辑案件流程节点信息
124
+     *
125
+     * @param caseFlowVO
126
+     * @return
127
+     */
128
+    @Override
129
+    public Boolean addCaseFlow(MsCaseFlowVO caseFlowVO) {
130
+        return null;
131
+    }
132
+
133
+    /**
134
+     * 删除案件流程节点信息
135
+     *
136
+     * @param caseFlowVO
137
+     * @return
138
+     */
139
+    @Override
140
+    public Boolean deleteCaseFlow(MsCaseFlowVO caseFlowVO) {
141
+        return null;
142
+    }
143
+
144
+    /**
145
+     * 排序案件流程节点
146
+     *
147
+     * @param caseFlowVO
148
+     * @return
149
+     */
150
+    @Override
151
+    public Boolean sortCaseFlow(MsCaseFlowVO caseFlowVO) {
152
+        return null;
153
+    }
154
+}

+ 15
- 0
ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.xml Просмотреть файл

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.ruoyi.system.mapper.flow.MsCaseFlowMapper">
4
+  <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.entity.flow.MsCaseFlow">
5
+    <!--
6
+      WARNING - @mbg.generated
7
+    -->
8
+    <id column="id" jdbcType="INTEGER" property="id" />
9
+    <result column="node_id" jdbcType="INTEGER" property="nodeId" />
10
+    <result column="node_name" jdbcType="VARCHAR" property="nodeName" />
11
+    <result column="sort" jdbcType="INTEGER" property="sort" />
12
+    <result column="case_status_name" jdbcType="VARCHAR" property="caseStatusName" />
13
+    <result column="back_flow_id" jdbcType="INTEGER" property="backFlowId" />
14
+  </resultMap>
15
+</mapper>

+ 12
- 0
ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.xml Просмотреть файл

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.ruoyi.system.mapper.flow.MsCaseFlowRoleRelatedMapper">
4
+  <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated">
5
+    <!--
6
+      WARNING - @mbg.generated
7
+    -->
8
+    <id column="id" jdbcType="INTEGER" property="id" />
9
+    <result column="flow_id" jdbcType="INTEGER" property="flowId" />
10
+    <result column="roleid" jdbcType="BIGINT" property="roleid" />
11
+  </resultMap>
12
+</mapper>

+ 3
- 3
tkgenerator/src/main/resources/generator/config.properties Просмотреть файл

@@ -3,10 +3,10 @@ jdbc.url=jdbc:mysql://121.40.189.20:3306/mediation_system?serverTimezone=Asia/Sh
3 3
 jdbc.user=root
4 4
 jdbc.password=YMzc157#
5 5
 #目标模块项目路径
6
-targetprojectpath=D:/ymPro/Mediation-Backend/ruoyi-system
6
+targetprojectpath=E:/WorkCode/SH/Mediation-Backend/ruoyi-system
7 7
 #模块名称
8
-moduleName=mscase
8
+moduleName=flow
9 9
 #表名
10
-tableName=ms_case_application
10
+tableName=ms_case_flow_role_related
11 11
 #主键
12 12
 premaryId=id