From a1ea501c07ec06eb585cd54cfc5595cbc0dd8afa Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 29 Oct 2020 13:59:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/flow/entity/FlowChartRole.java | 2 +- src/main/java/com/lz/modules/flow/model/FlowChartRoleDto.java | 2 +- src/main/java/com/lz/modules/flow/req/FlowChartRoleReq.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/entity/FlowChartRole.java b/src/main/java/com/lz/modules/flow/entity/FlowChartRole.java index 08b0fa3f..0d023a73 100644 --- a/src/main/java/com/lz/modules/flow/entity/FlowChartRole.java +++ b/src/main/java/com/lz/modules/flow/entity/FlowChartRole.java @@ -37,7 +37,7 @@ public class FlowChartRole implements java.io.Serializable { @ApiModelProperty(value = "必须授权角色id", name = "roleId") private Long roleId; //1默认权限,必带权限,0可选权限 - @ApiModelProperty(value = "1默认权限,必带权限,0可选权限", name = "type") + @ApiModelProperty(value = "1默认权限,必带权限,不可修改权限,0可选权限,2被考核人默认权限,必带权限", name = "type") private Integer type; /** * diff --git a/src/main/java/com/lz/modules/flow/model/FlowChartRoleDto.java b/src/main/java/com/lz/modules/flow/model/FlowChartRoleDto.java index ee1278f5..7095efad 100644 --- a/src/main/java/com/lz/modules/flow/model/FlowChartRoleDto.java +++ b/src/main/java/com/lz/modules/flow/model/FlowChartRoleDto.java @@ -24,7 +24,7 @@ public class FlowChartRoleDto { @ApiModelProperty(value = "角色名称", name = "roleName") private String roleName; //1默认权限,必带权限,不可修改权限,0可选权限 - @ApiModelProperty(value = "1默认权限,必带权限,不可修改权限,0可选权限", name = "type") + @ApiModelProperty(value = "1默认权限,必带权限,不可修改权限,0可选权限,2被考核人默认权限,必带权限", name = "type") private Integer type; /** * diff --git a/src/main/java/com/lz/modules/flow/req/FlowChartRoleReq.java b/src/main/java/com/lz/modules/flow/req/FlowChartRoleReq.java index 6bb17f58..da07d80f 100644 --- a/src/main/java/com/lz/modules/flow/req/FlowChartRoleReq.java +++ b/src/main/java/com/lz/modules/flow/req/FlowChartRoleReq.java @@ -45,7 +45,7 @@ public class FlowChartRoleReq implements java.io.Serializable { @ApiModelProperty(value = "角色id", name = "roleId") private Long roleId; //1默认权限,必带权限,不可修改权限,0可选权限 - @ApiModelProperty(value = "1默认权限,必带权限,不可修改权限,0可选权限", name = "type") + @ApiModelProperty(value = "1默认权限,必带权限,不可修改权限,0可选权限,2被考核人默认权限,必带权限", name = "type") private Integer type; /** * From b92dfdb9749fcf06e926d84d63b0ae84ea5d94e7 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 29 Oct 2020 15:07:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E5=A2=9E=E5=8A=A0=E5=BF=85=E5=A4=87?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=9A=84=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/flow/dao/FlowChartRoleMapper.java | 4 ++ .../flow/service/FlowChartRoleService.java | 3 ++ .../impl/FlowChartRoleServiceImpl.java | 7 +++ .../service/impl/FlowStartServiceImpl.java | 4 +- .../controller/FlowChartController.java | 47 +++++++++++++++++-- .../mapper/flow/FlowChartRoleMapper.xml | 4 ++ src/test/java/com/lz/mysql/MysqlMain.java | 16 ++++++- 7 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/dao/FlowChartRoleMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowChartRoleMapper.java index adfde442..ac0cb11f 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowChartRoleMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowChartRoleMapper.java @@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lz.modules.flow.entity.FlowChartRole; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface FlowChartRoleMapper extends BaseMapper { @@ -30,4 +33,5 @@ public interface FlowChartRoleMapper extends BaseMapper { int deleteFlowChartRoleById(@Param("id")Long id); + List selectFlowChartRolesByChartIdAndType(@Param("id") Long id, @Param("type") int type); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/FlowChartRoleService.java b/src/main/java/com/lz/modules/flow/service/FlowChartRoleService.java index 86f55fd3..6a492289 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowChartRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowChartRoleService.java @@ -3,6 +3,8 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.modules.flow.entity.FlowChartRole; +import java.util.List; + /** *

* 流程节点权限对应关系表 服务类 @@ -30,4 +32,5 @@ public interface FlowChartRoleService extends IService { int deleteFlowChartRoleById(Long id); + List selectFlowChartRolesByChartIdAndType(Long id, int type); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowChartRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowChartRoleServiceImpl.java index cbf4f854..a5bdb12f 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowChartRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowChartRoleServiceImpl.java @@ -7,6 +7,8 @@ import com.lz.modules.flow.service.FlowChartRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 流程节点权限对应关系表 服务类 @@ -58,6 +60,11 @@ public class FlowChartRoleServiceImpl extends ServiceImpl selectFlowChartRolesByChartIdAndType(Long id, int type){ + return flowChartRoleMapper.selectFlowChartRolesByChartIdAndType(id, type); + } + } 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 a7b9141c..7718727b 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 @@ -308,7 +308,7 @@ public class FlowStartServiceImpl extends ServiceImpl 0){ flowApprovalRoleService.insertFlowApprovalRoles(flowApprovalRoles); @@ -375,7 +375,7 @@ public class FlowStartServiceImpl extends ServiceImpl 0){//当设置为几级领导时 ///查找领导,如果不存在那么设置管理人员 List staffLeader; - String key = staffInfo.getDepartmentId() + approvalRole.getType(); + String key = staffInfo.getDepartmentId() + "_" + approvalRole.getType(); if(staffManages.containsKey(key)){ staffLeader = staffManages.get(staffInfo.getDepartmentId()); }else{ 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 ed1cad79..e0a016a7 100644 --- a/src/main/java/com/lz/modules/performance/controller/FlowChartController.java +++ b/src/main/java/com/lz/modules/performance/controller/FlowChartController.java @@ -7,11 +7,13 @@ import com.lz.modules.app.dto.StaffSimpleDto; import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.entity.FlowChart; import com.lz.modules.flow.entity.FlowChartDetailRecord; +import com.lz.modules.flow.entity.FlowChartRole; import com.lz.modules.flow.entity.FlowManager; import com.lz.modules.flow.model.*; import com.lz.modules.flow.req.FlowChartDetailRecordListReq; import com.lz.modules.flow.req.FlowChartDetailRecordSimpleReq; import com.lz.modules.flow.service.FlowChartDetailRecordService; +import com.lz.modules.flow.service.FlowChartRoleService; import com.lz.modules.flow.service.FlowChartService; import com.lz.modules.flow.service.FlowManagerService; import io.swagger.annotations.*; @@ -19,9 +21,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; @@ -45,6 +45,9 @@ public class FlowChartController { @Autowired private StaffService staffService; + @Autowired + private FlowChartRoleService flowChartRoleService; + @GetMapping("/getByFlowManagerId") @ApiOperation("获取大流程节点") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = FlowChartDto.class)}) @@ -142,12 +145,50 @@ 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); flowChartDetailRecord.setStatus(flowChartDetailRecordListReq.getStatus()); diff --git a/src/main/resources/mapper/flow/FlowChartRoleMapper.xml b/src/main/resources/mapper/flow/FlowChartRoleMapper.xml index 58511742..c36cf30f 100644 --- a/src/main/resources/mapper/flow/FlowChartRoleMapper.xml +++ b/src/main/resources/mapper/flow/FlowChartRoleMapper.xml @@ -79,5 +79,9 @@ update lz_flow_chart_role set is_delete = 1 where id=#{id} limit 1 + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index b9a6be0a..91786e67 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -1,12 +1,15 @@ package com.lz.mysql; import com.lz.common.utils.StringUtil; +import com.lz.modules.flow.entity.FlowChartRole; import org.springframework.util.ResourceUtils; import java.io.File; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Function; import java.util.stream.Collectors; public class MysqlMain { @@ -62,7 +65,18 @@ public class MysqlMain { test.setMobile("18969093321"); testMaps.add(test); - Map t = testMaps.stream().collect(Collectors.toMap(TestMap::getName, testMap -> testMap));*/ + Map t = testMaps.stream().collect(Collectors.toMap(TestMap::getName, testMap -> testMap)); + List flowChartRoles = new ArrayList<>(); + flowChartRoles.add(1L); + flowChartRoles.add(2L); + flowChartRoles.add(3L); + flowChartRoles.add(4L); + String roles = flowChartRoles.stream().map(new Function() { + @Override + public String apply(Long flowChartRole) { + return flowChartRole.toString(); + } + }).collect(Collectors.joining(","));*/ String path = ResourceUtils.getURL("classpath:").getPath();