From 7f89d1c4af046ee4a41faea77fb4083ecb8ea2a0 Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Tue, 3 Nov 2020 11:59:37 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../lz/modules/flow/entity/FlowRecord.java | 58 ++++++++++++++++---
.../app/impl/ResultRecordServiceImpl.java | 4 +-
.../mapper/flow/FlowRecordMapper.xml | 47 +++------------
src/test/java/com/lz/mysql/MysqlMain.java | 21 +------
4 files changed, 63 insertions(+), 67 deletions(-)
diff --git a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java
index b03f5334..f8a77c5f 100644
--- a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java
+++ b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java
@@ -1,53 +1,73 @@
package com.lz.modules.flow.entity;
-import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
*
-* 菜单权限表
*
*流转记录表
* @author quyixiao
-* @since 2020-09-03
+* @since 2020-11-03
*/
@Data
@TableName("lz_flow_record")
+@ApiModel(value = "流转记录表")
public class FlowRecord implements java.io.Serializable {
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
//是否删除状态,1:删除,0:有效
+ @ApiModelProperty(value = "是否删除状态,1:删除,0:有效", name = "isDelete")
private Integer isDelete;
//创建时间
+ @ApiModelProperty(value = "创建时间", name = "gmtCreate")
private Date gmtCreate;
//最后修改时间
+ @ApiModelProperty(value = "最后修改时间", name = "gmtModified")
private Date gmtModified;
//
+ @ApiModelProperty(value = "", name = "departmentLevel")
private String departmentLevel;
//记录 id
+ @ApiModelProperty(value = "记录 id", name = "recordId")
private Long recordId;
//审批员工 id
+ @ApiModelProperty(value = "审批员工 id", name = "approvalStaffId")
private Long approvalStaffId;
//审批员工名称
+ @ApiModelProperty(value = "审批员工名称", name = "approvalStaffName")
private String approvalStaffName;
//流程名称
+ @ApiModelProperty(value = "流程名称", name = "flowName")
private String flowName;
//record 表中的员工 id
+ @ApiModelProperty(value = "record 表中的员工 id", name = "recordStaffId")
private Long recordStaffId;
//流程 id
+ @ApiModelProperty(value = "流程 id", name = "flowId")
private Long flowId;
//流程中的第几个步骤
+ @ApiModelProperty(value = "流程中的第几个步骤", name = "flowIndex")
private Integer flowIndex;
- //0表示正常状态,1 表示被驳回无用的流程
+ //0表示流程未到,1 表示流程已走 2 :当前流程 3:其他人己经审批,4,跳过
+ @ApiModelProperty(value = "0表示流程未到,1 表示流程已走 2 :当前流程 3:其他人己经审批,4,跳过", name = "status")
private Integer status;
// 员工&权限id
+ @ApiModelProperty(value = " 员工&权限id", name = "flowStaffIdRole")
private String flowStaffIdRole;
//状态名称
+ @ApiModelProperty(value = "状态名称", name = "statusName")
private String statusName;
//步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)
+ @ApiModelProperty(value = "步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)", name = "type")
private Integer type;
+ //flow_manager表中id
+ @ApiModelProperty(value = "flow_manager表中id", name = "processId")
+ private Long processId;
/**
*
* @return
@@ -229,14 +249,14 @@ public class FlowRecord implements java.io.Serializable {
}
/**
- * 0表示正常状态,1 表示被驳回无用的流程
+ * 0表示流程未到,1 表示流程已走 2 :当前流程 3:其他人己经审批,4,跳过
* @return
*/
public Integer getStatus() {
return status;
}
/**
- * 0表示正常状态,1 表示被驳回无用的流程
+ * 0表示流程未到,1 表示流程已走 2 :当前流程 3:其他人己经审批,4,跳过
* @param status
*/
public void setStatus(Integer status) {
@@ -273,14 +293,36 @@ public class FlowRecord implements java.io.Serializable {
this.statusName = statusName;
}
+ /**
+ * 步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)
+ * @return
+ */
public Integer getType() {
return type;
}
-
+ /**
+ * 步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)
+ * @param type
+ */
public void setType(Integer type) {
this.type = type;
}
+ /**
+ * flow_manager表中id
+ * @return
+ */
+ public Long getProcessId() {
+ return processId;
+ }
+ /**
+ * flow_manager表中id
+ * @param processId
+ */
+ public void setProcessId(Long processId) {
+ this.processId = processId;
+ }
+
@Override
public String toString() {
return "FlowRecord{" +
@@ -299,6 +341,8 @@ public class FlowRecord implements java.io.Serializable {
",status=" + status +
",flowStaffIdRole=" + flowStaffIdRole +
",statusName=" + statusName +
+ ",type=" + type +
+ ",processId=" + processId +
"}";
}
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java
index f071c467..e1864723 100644
--- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java
+++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java
@@ -796,14 +796,16 @@ public class ResultRecordServiceImpl extends ServiceImpl
+
- id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, department_level AS departmentLevel, record_id AS recordId, approval_staff_id AS approvalStaffId, approval_staff_name AS approvalStaffName, flow_name AS flowName, record_staff_id AS recordStaffId, flow_id AS flowId, flow_index AS flowIndex, status AS status, flow_staff_id_role AS flowStaffIdRole, status_name AS statusName, type AS type
+ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, department_level AS departmentLevel, record_id AS recordId, approval_staff_id AS approvalStaffId, approval_staff_name AS approvalStaffName, flow_name AS flowName, record_staff_id AS recordStaffId, flow_id AS flowId, flow_index AS flowIndex, status AS status, flow_staff_id_role AS flowStaffIdRole, status_name AS statusName, type AS type, process_id AS processId
@@ -50,6 +51,7 @@
flow_staff_id_role,
status_name,
type,
+ process_id,
is_delete,
gmt_create,
gmt_modified
@@ -66,48 +68,13 @@
#{ flowStaffIdRole},
#{ statusName},
#{ type},
+ #{ processId},
0,
now(),
now()
)
-
- insert into lz_flow_record(
- department_level,
- record_id,
- approval_staff_id,
- approval_staff_name,
- flow_name,
- record_staff_id,
- flow_id,
- flow_index,
- status,
- flow_staff_id_role,
- status_name,
- type,
- is_delete,
- gmt_create,
- gmt_modified
- )values(
- #{ departmentLevel},
- #{ recordId},
- #{ approvalStaffId},
- #{ approvalStaffName},
- #{ flowName},
- #{ recordStaffId},
- #{ flowId},
- #{ flowIndex},
- #{ status},
- #{ flowStaffIdRole},
- #{ statusName},
- #{ type},
- 0,
- #{ gmtCreate},
- #{ gmtModified}
- )
-
-
update
@@ -126,7 +93,8 @@
status = #{status},
flow_staff_id_role = #{flowStaffIdRole},
status_name = #{statusName},
- type = #{type}
+ type = #{type},
+ process_id = #{processId}
,gmt_modified = now()
where id = #{id}
@@ -150,7 +118,8 @@
status = #{status},
flow_staff_id_role = #{flowStaffIdRole},
status_name = #{statusName},
- type = #{type}
+ type = #{type},
+ process_id = #{processId}
,gmt_modified = now()
where id = #{id}
diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java
index cfcf9bf7..d8784020 100644
--- a/src/test/java/com/lz/mysql/MysqlMain.java
+++ b/src/test/java/com/lz/mysql/MysqlMain.java
@@ -125,27 +125,8 @@ public class MysqlMain {
}
List list = new ArrayList();
- /*list.add(new TablesBean("lz_evaluation_group"));
- list.add(new TablesBean("lz_evaluation_start_staff"));
- list.add(new TablesBean("lz_flow_approval_role"));
- list.add(new TablesBean("lz_flow_change"));
- list.add(new TablesBean("lz_flow_chart"));
- list.add(new TablesBean("lz_flow_chart_role"));
- list.add(new TablesBean("lz_flow_start"));
- list.add(new TablesBean("lz_result_calculate"));
- list.add(new TablesBean("lz_result_dimension"));'
- list.add(new TablesBean("lz_result_grade"));*/
- //list.add(new TablesBean("lz_result_model"));
- //list.add(new TablesBean("lz_result_score"));
- //list.add(new TablesBean("lz_result_taget_lib"));
- //list.add(new TablesBean("lz_flow_chart_detail_record"));
- //list.add(new TablesBean("lz_flow_approval_role"));
-
- list.add(new TablesBean("lz_staff_menu"));
- list.add(new TablesBean("lz_staff_role"));
- list.add(new TablesBean("lz_staff_role_evaluation_group"));
- list.add(new TablesBean("lz_staff_role_menu"));
+ list.add(new TablesBean("lz_flow_record"));
List list2 = new ArrayList();
Map map = MysqlUtil2ShowCreateTable.getComments();
From 02ea9a0c984639cd09479871d15781aedcdd0de8 Mon Sep 17 00:00:00 2001
From: wulin
Date: Tue, 3 Nov 2020 13:44:25 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E6=8A=8A=E4=BF=9D=E5=AD=98=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E6=98=AF=E7=9A=84=E5=BF=85=E5=A4=87=E6=9D=83=E9=99=90?=
=?UTF-8?q?=E6=94=BE=E5=88=B0=E5=8F=91=E8=B5=B7=E8=80=83=E6=A0=B8=E6=97=B6?=
=?UTF-8?q?=E8=B5=8B=E5=80=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/FlowStartServiceImpl.java | 73 +++++++++++++++++--
.../controller/FlowChartController.java | 36 +--------
2 files changed, 68 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
index bb59aaed..a69cb6e9 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
@@ -24,10 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -80,6 +77,9 @@ public class FlowStartServiceImpl extends ServiceImpl evaluationGroups = evaluationGroupService.selectEvaluationGroupByIds(ids);
+ Map> mustRole = new HashMap<>();
+ Map> selfMustRole = new HashMap<>();
+
for (int n = 0; n < evaluationGroups.size(); n++
) {
EvaluationGroup evaluationGroup = evaluationGroups.get(n);
@@ -202,7 +205,7 @@ public class FlowStartServiceImpl extends ServiceImpl> staffManages, List staffIds){
+ Map> staffManages, List staffIds,
+ Map> mustRole, Map> selfMustRole){
List resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId());
@@ -317,8 +321,24 @@ public class FlowStartServiceImpl extends ServiceImpl flowChartRoles = null;
+ //获取必备权限
+ if(mustRole.containsKey(flow.getChartId())){
+ flowChartRoles = mustRole.get(flow.getChartId());
+ }else{
+ flowChartRoles =
+ flowChartRoleService.selectFlowChartRolesByChartIdAndType(flow.getChartId(), 1);
+ mustRole.put(flow.getChartId(), flowChartRoles);
+ }
+
+
+
if(flowChartDetailRecord.getOptType().intValue() == ChartOptType.APPOINT.getCode()){//指定人员的
+
+
String[] optIds = flowChartDetailRecord.getOptIds().split(",");
+
+
for (String id:optIds
) {
@@ -334,6 +354,20 @@ public class FlowStartServiceImpl extends ServiceImpl 0){//设置必备权限
+ String roles = flowChartRoles.stream().map(new Function() {
+ @Override
+ public String apply(FlowChartRole flowChartRole) {
+ return flowChartRole.getRoleId().toString();
+ }
+ }).collect(Collectors.joining(","));
+ if(flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0){
+ flowApprovalRole.setRoleId(roles);
+ }else{
+ flowApprovalRole.setRoleId(flowChartDetailRecord.getRoleIds() + "," + roles);
+ }
+ }
}
//stepIndex++;
if(flowApprovalRole != null){
@@ -341,6 +375,17 @@ public class FlowStartServiceImpl extends ServiceImpl flowChartRoles1 =
+ flowChartRoleService.selectFlowChartRolesByChartIdAndType(flow.getChartId(), 2);
+ selfMustRole.put(flow.getChartId(), flowChartRoles1);
+ flowChartRoles.addAll(flowChartRoles1);
+ }
+ }
flowApprovalRole = new FlowApprovalRole();
flowApprovalRole.setFlowId(flow.getId());
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
@@ -349,9 +394,25 @@ public class FlowStartServiceImpl extends ServiceImpl 0){//设置必备权限
+ String roles = flowChartRoles.stream().map(new Function() {
+ @Override
+ public String apply(FlowChartRole flowChartRole) {
+ return flowChartRole.getRoleId().toString();
+ }
+ }).collect(Collectors.joining(","));
+ if(flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0){
+ flowApprovalRole.setRoleId(roles);
+ }else{
+ flowApprovalRole.setRoleId(flowChartDetailRecord.getRoleIds() + "," + roles);
+ }
+ }
+
stepIndex++;
}
+
+
}
//插入记录/flowChart/saveDetailProcs
if(flowApprovalRoles.size() > 0){
diff --git a/src/main/java/com/lz/modules/performance/controller/FlowChartController.java b/src/main/java/com/lz/modules/performance/controller/FlowChartController.java
index e0a016a7..394fa38c 100644
--- a/src/main/java/com/lz/modules/performance/controller/FlowChartController.java
+++ b/src/main/java/com/lz/modules/performance/controller/FlowChartController.java
@@ -145,49 +145,15 @@ public class FlowChartController {
if(flowChartDetailRecordListReq.getRecordSimpleDtos() != null && flowChartDetailRecordListReq.getRecordSimpleDtos().size() > 0){
List inserts = new ArrayList<>();
List updaes = new ArrayList<>();
- Map> mustRole = new HashMap<>();
- Map> selfMustRole = new HashMap<>();
+
int index = 0;
for (FlowChartDetailRecordSimpleReq req:flowChartDetailRecordListReq.getRecordSimpleDtos()
) {
FlowChartDetailRecord flowChartDetailRecord = new FlowChartDetailRecord();
BeanUtils.copyProperties(req, flowChartDetailRecord);
flowChartDetailRecord.setChartId(flowChartDetailRecordListReq.getId());
- List flowChartRoles = null;
- if(mustRole.containsKey(flowChartDetailRecordListReq.getId())){
- flowChartRoles = mustRole.get(flowChartDetailRecordListReq.getId());
- }else{
- flowChartRoles =
- flowChartRoleService.selectFlowChartRolesByChartIdAndType(flowChartDetailRecordListReq.getId(), 1);
- mustRole.put(flowChartDetailRecordListReq.getId(), flowChartRoles);
- }
- if(flowChartDetailRecord.getOptType().intValue() == -1){//考核人是自己的
- //获取被考核人的必备权限
- if(selfMustRole.containsKey(flowChartDetailRecordListReq.getId())){
- flowChartRoles.addAll(selfMustRole.get(flowChartDetailRecordListReq.getId()));
- }else{
- List flowChartRoles1 =
- flowChartRoleService.selectFlowChartRolesByChartIdAndType(flowChartDetailRecordListReq.getId(), 2);
- selfMustRole.put(flowChartDetailRecordListReq.getId(), flowChartRoles1);
- flowChartRoles.addAll(flowChartRoles1);
- }
- }
-
- if(flowChartRoles != null && flowChartRoles.size() > 0){//设置必备权限
- String roles = flowChartRoles.stream().map(new Function() {
- @Override
- public String apply(FlowChartRole flowChartRole) {
- return flowChartRole.getRoleId().toString();
- }
- }).collect(Collectors.joining(","));
- if(flowChartDetailRecord.getRoleIds() == null || flowChartDetailRecord.getRoleIds().length() == 0){
- flowChartDetailRecord.setRoleIds(roles);
- }else{
- flowChartDetailRecord.setRoleIds(flowChartDetailRecord.getRoleIds() + "," + roles);
- }
- }
flowChartDetailRecord.setEvaluationGroupId(flowChartDetailRecordListReq.getEvaluationGroupId());
flowChartDetailRecord.setStepIndex(index);
From c9cee68261b93f084da05b1993b1b5440ae45b09 Mon Sep 17 00:00:00 2001
From: wulin
Date: Tue, 3 Nov 2020 13:45:48 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=8A=E4=BF=9D=E5=AD=98=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E6=98=AF=E7=9A=84=E5=BF=85=E5=A4=87=E6=9D=83=E9=99=90?=
=?UTF-8?q?=E6=94=BE=E5=88=B0=E5=8F=91=E8=B5=B7=E8=80=83=E6=A0=B8=E6=97=B6?=
=?UTF-8?q?=E8=B5=8B=E5=80=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../lz/modules/flow/service/impl/FlowStartServiceImpl.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
index a69cb6e9..0cfd1966 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
@@ -129,13 +129,15 @@ public class FlowStartServiceImpl extends ServiceImpl> staffManages = new HashedMap();//部门(id+几级)和部门几级管理对应关系,减少数据库查找
+ Map> mustRole = new HashMap<>();
+ Map> selfMustRole = new HashMap<>();
for (GroupStaffs groupStaffs:startGroupStaffIds.getGroups()
) {
List staffSimpleInfos = staffService.selectStaffSimpleInfos(groupStaffs.getStaffIds());
if(staffSimpleInfos.size() == 0){
R.error(groupStaffs.getEvaluationGroup().getName() + "——无有效考核人员");
}
- switch (start(groupStaffs.getEvaluationGroup(), flowStart, staffManages, staffSimpleInfos)){
+ switch (start(groupStaffs.getEvaluationGroup(), flowStart, staffManages, staffSimpleInfos, mustRole, selfMustRole)){
case 1:
return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置考核模板");
From b11e3af70d45ad26daa5c6cf33e85c33ce76ba73 Mon Sep 17 00:00:00 2001
From: wulin
Date: Tue, 3 Nov 2020 14:08:06 +0800
Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../lz/modules/flow/service/impl/FlowStartServiceImpl.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
index 0cfd1966..58364636 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java
@@ -367,7 +367,7 @@ public class FlowStartServiceImpl extends ServiceImpl