From d15db7a932c7d833a934406cdb202e9b02371588 Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 23 Nov 2020 16:35:13 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E6=AD=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lz/modules/flow/dao/FlowRecordMapper.java | 4 +- .../flow/service/FlowRecordService.java | 4 +- .../service/impl/FlowRecordServiceImpl.java | 9 +++- .../job/business/DingtalkBusiness.java | 41 +++++++++++-------- .../mapper/flow/FlowRecordMapper.xml | 8 +++- 5 files changed, 44 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java index 36f3440e..d417c7c5 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -86,7 +86,9 @@ public interface FlowRecordMapper extends BaseMapper { List selectLastFlowRecordsById(@Param("recordId") Long recordId); - List selectLastFlowRecordsByIdAndFlowIndex(@Param("recordId") Long recordId, @Param("flowIndex") int flowIndex); + List selectLastFlowRecordsByIdAndFlowIndex(@Param("recordId") Long recordId, @Param("flowIndex") int flowIndex, @Param("status") int status); List selectSkipFlowRecordsById(@Param("recordId") Long recordId); + + List selectFirstFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex, int status); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java index 394cbe8d..99c44187 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -81,7 +81,9 @@ public interface FlowRecordService extends IService { //获取最后流程同一个小节点的所有数据 List selectLastFlowRecordsById(Long recordId); //获取制定步骤一个小节点的所有数据 - List selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex); + List selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex, int status); List selectSkipFlowRecordsById(Long recordId); + + List selectFirstFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex, int status); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java index bbfe4210..412a65e5 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java @@ -217,8 +217,8 @@ public class FlowRecordServiceImpl extends ServiceImpl selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex){ - return flowRecordMapper.selectLastFlowRecordsByIdAndFlowIndex(recordId, flowIndex); + public List selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex, int status){ + return flowRecordMapper.selectLastFlowRecordsByIdAndFlowIndex(recordId, flowIndex, status); } @Override @@ -226,4 +226,9 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFirstFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex, int status){ + return flowRecordMapper.selectFirstFlowRecordsByIdAndFlowIndex(recordId, flowIndex, status); + } + } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 6b062fee..c5ebaab8 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -522,35 +522,42 @@ public class DingtalkBusiness { }else{ if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.REJECT.getType()){//被拒 logger.info("任务驳回"); - cancelRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() - , flowRecords.get(0).getFlowIndex().intValue() + 1);//获取下一步的数据 + cancelRecords = flowRecordService.selectFirstFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() + , flowRecords.get(0).getFlowIndex().intValue() + 1, 0);//获取下一步的数据 }else{ logger.info("任务流转下一步"); cancelRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() - , flowRecords.get(0).getFlowIndex().intValue() - 1);//获取上一步的数据 + , flowRecords.get(0).getFlowIndex().intValue() - 1, 0);//获取上一步的数据 } } logger.info("查询到可能需要更新的待办任务数量{}", cancelRecords.size()); if(cancelRecords.size() > 0){ + int flowIndex = cancelRecords.get(0).getFlowIndex().intValue(); for (FlowRecord flowRecord:cancelRecords ) { - if(flowRecord.getStatus().intValue() == 1 - || flowRecord.getStatus().intValue() == 3 - || flowRecord.getStatus().intValue() == 4 - || workMsgTypeEnum.getType() == WorkMsgTypeEnum.REJECT.getType()){ - logger.info("将要更新人员的待办任务,人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(), - flowRecord.getApprovalStaffName()); - ThirdMsgSendRecord thirdMsgSendRecord = - thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( - fromStaff.getResultRecord().getId(), - flowRecord.getApprovalStaffId(), 1, 1); - if(thirdMsgSendRecord != null){//把原来的任务更新掉 - dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); - }else{ - logger.info("无需更新待办任务"); + if(flowRecord.getFlowIndex() == flowIndex){//同一个小结点的才进来 + if(flowRecord.getStatus().intValue() == 1 + || flowRecord.getStatus().intValue() == 3 + || flowRecord.getStatus().intValue() == 4 + || workMsgTypeEnum.getType() == WorkMsgTypeEnum.REJECT.getType()){ + logger.info("将要更新人员的待办任务,人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(), + flowRecord.getApprovalStaffName()); + ThirdMsgSendRecord thirdMsgSendRecord = + thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( + fromStaff.getResultRecord().getId(), + flowRecord.getApprovalStaffId(), 1, 1); + if(thirdMsgSendRecord != null){//把原来的任务更新掉 + dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); + }else{ + logger.info("无需更新待办任务"); + } } + }else{ + logger.info("已经取消完毕"); + break; } + } } //给下一步需要处理的人员发送待办任务 diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index 1055a137..643e6554 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -308,11 +308,17 @@ + + From 00e260c734f09aeb2749289c39a386cbe53e2d15 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 23 Nov 2020 16:36:27 +0800 Subject: [PATCH 2/7] =?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 --- .../flow/service/impl/StaffRoleServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java index d8b76b8c..b09deed9 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java @@ -33,12 +33,10 @@ import com.lz.modules.sys.entity.SysRoleEntity; import com.lz.modules.sys.service.app.ResultRecordService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.lang.reflect.Array; import java.util.*; import java.util.stream.Collectors; @@ -425,9 +423,11 @@ public class StaffRoleServiceImpl extends ServiceImpl masterPMs = staffRoleMapper.selectStaffRolesByDepartmentLevelList(Arrays.asList(new String[]{RoleEnums.MASTER_PM.getName()})); - if(CollectionUtils.isNotEmpty(masterPMs)){ - return R.error("主管理员只能设置一个,如果想添加,只能更改管理员。"); + if (RoleEnums.MASTER_PM.getName().equals(staffRole.getDepartmentLevel())) { + List masterPMs = staffRoleMapper.selectStaffRolesByDepartmentLevelList(Arrays.asList(new String[]{RoleEnums.MASTER_PM.getName()})); + if (CollectionUtils.isNotEmpty(masterPMs)) { + return R.error("主管理员只能设置一个,如果想添加,只能更改管理员。"); + } } staffRoleMapper.insertStaffRole(staffRole); } From e3327b78d596fb56dd8c0926e18e69b1e2a6098e Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 23 Nov 2020 16:37:13 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/job/business/DingtalkBusiness.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index c5ebaab8..f859f94f 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -527,7 +527,7 @@ public class DingtalkBusiness { }else{ logger.info("任务流转下一步"); cancelRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() - , flowRecords.get(0).getFlowIndex().intValue() - 1, 0);//获取上一步的数据 + , flowRecords.get(0).getFlowIndex().intValue() - 1, 1);//获取上一步的数据 } } From 0b6ba66212aa22dd7f870fca1903f62488adc966 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 23 Nov 2020 18:08:42 +0800 Subject: [PATCH 4/7] =?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 --- .../flow/service/impl/StaffRoleServiceImpl.java | 10 ++++++++-- .../lz/modules/sys/controller/SysLoginController.java | 8 +------- src/main/resources/mapper/flow/StaffRoleMapper.xml | 3 --- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java index b09deed9..c40b9aa8 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java @@ -399,9 +399,15 @@ public class StaffRoleServiceImpl extends ServiceImpl - - - From 5f128805c630255ede489ec0bb740c73478b5752 Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 24 Nov 2020 09:19:25 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=98=AF=E5=90=A6=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81=E7=A0=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=88=B0=E9=85=8D=E7=BD=AE=E6=88=91=E5=91=A2=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/sys/controller/SysLoginController.java | 4 +++- src/main/java/com/lz/modules/sys/oauth2/OAuth2Filter.java | 2 +- src/main/resources/application-dev.yml | 2 ++ src/main/resources/application-prod.yml | 3 ++- src/main/resources/application-test.yml | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java index 53a71492..7b833e10 100644 --- a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java +++ b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java @@ -75,6 +75,8 @@ public class SysLoginController extends AbstractController { @Autowired private StaffService staffService; + @Value(value = "${sms.code}") + private boolean sendSMSCode; /** * 验证码 @@ -201,7 +203,7 @@ public class SysLoginController extends AbstractController { } } //测试环境将不进行短信验证码, - if (true) { + if (!sendSMSCode) { //账号不存在、密码错误 if (!user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { return R.error("密码不正确!"); diff --git a/src/main/java/com/lz/modules/sys/oauth2/OAuth2Filter.java b/src/main/java/com/lz/modules/sys/oauth2/OAuth2Filter.java index 91b5e54a..ab61ede1 100644 --- a/src/main/java/com/lz/modules/sys/oauth2/OAuth2Filter.java +++ b/src/main/java/com/lz/modules/sys/oauth2/OAuth2Filter.java @@ -62,7 +62,7 @@ public class OAuth2Filter extends AuthenticatingFilter { httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin()); - String json = new Gson().toJson(R.error(HttpStatus.SC_UNAUTHORIZED, "登录已过期,请重新登录")); + String json = new Gson().toJson(R.error(HttpStatus.SC_UNAUTHORIZED, "invalid token")); httpResponse.getWriter().print(json); return false; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a33a1510..70cd2e92 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -35,6 +35,8 @@ dingtalk: appid: 855818566 domain: main: "http://192.168.43.94:8001" +sms: + code: false ##多数据源的配置 #dynamic: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index b6ac0e3a..964f818f 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -34,7 +34,8 @@ dingtalk: appid: 856016278 domain: main: "https://lzmanagement.ldxinyong.com" - +sms: + code: true ##多数据源的配置 #dynamic: # datasource: diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 6552c314..91fd96e5 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -34,7 +34,8 @@ dingtalk: appid: 855818566 domain: main: "http:/localhost" - +sms: + code: false ##多数据源的配置 From c2ba51d97b1716f3abb75c1c43c9777a8a7fc014 Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 24 Nov 2020 09:41:36 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lz/modules/sys/controller/SysLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java index 7b833e10..2863ceaa 100644 --- a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java +++ b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java @@ -203,7 +203,7 @@ public class SysLoginController extends AbstractController { } } //测试环境将不进行短信验证码, - if (!sendSMSCode) { + if (sendSMSCode) { //账号不存在、密码错误 if (!user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { return R.error("密码不正确!"); From c7f2afdbfa0e9268cb5989bcd195fceedc3d5f37 Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 24 Nov 2020 11:12:58 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=BB=84=E6=97=B6?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=87=8C=E9=9D=A2=E5=8D=95=E7=8B=AC=E5=8A=A0?= =?UTF-8?q?=E7=BB=A9=E6=95=88=E7=AE=A1=E7=90=86=E4=BA=BA=E5=91=98=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=89=8D=E7=AB=AF=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flow/service/StaffRoleService.java | 3 +- .../controller/EvaluationGroupController.java | 29 ++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java index 549f8f5a..26bde5a1 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java @@ -71,8 +71,9 @@ public interface StaffRoleService extends IService { List selectAllGroupManageRoles(); List selectAllStaffRoleByDepartmentLevel(List asList); - + //获取指定组的请按不管理人员 List selectByEvaluationGroupId(Long id); StaffRole selectStaffRolesByStaffIdDepartmentLevelList(Long loginUserId, List asList); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java b/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java index 9ff5ef53..3311846b 100644 --- a/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java +++ b/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java @@ -2,6 +2,7 @@ package com.lz.modules.performance.controller; import com.alibaba.fastjson.JSONObject; +import com.google.common.base.Joiner; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; import com.lz.common.utils.StringUtil; @@ -91,9 +92,35 @@ public class EvaluationGroupController extends AbstractController { return Long.parseLong(s); } }).collect(Collectors.toList()); - + //下面的操作是防止在权限里面单独加绩效管理人员时,导致前端展示不一致问题 + //搜索管理表里面的人员去重 + List staffRoles = staffRoleService.selectAllGroupManageRoles(); + if(staffRoles.size() > 0){ + List roleIds = staffRoles.stream().map(new Function() { + @Override + public Long apply(StaffRole staffRole) { + return staffRole.getStaffId(); + } + }).collect(Collectors.toList()); + ids.addAll(roleIds); + } + //获取管理特定组的 + staffRoles = staffRoleService.selectByEvaluationGroupId(evaluationGroup.getId()); + if(staffRoles.size() > 0){ + List roleIds = staffRoles.stream().map(new Function() { + @Override + public Long apply(StaffRole staffRole) { + return staffRole.getStaffId(); + } + }).collect(Collectors.toList()); + ids.addAll(roleIds); + } + //去重 + Map mapIds = ids.stream().collect(Collectors.toMap(Long::longValue,Function.identity(), (e, r) -> e)); + ids = mapIds.values().stream().collect(Collectors.toList()); //指定人员,搜索人员信息 List staffSimpleDtos = staffService.selectStaffSimpleInfoByIds(ids); + evaluationGroupDto.setManagers(staffSimpleDtos); } if(evaluationGroup.getOutIds() != null && evaluationGroup.getOutIds().length() > 0){