From a342994b3fd2775b9acf28841acbee7985b7c32b Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 16:54:24 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/sys/oauth2/OAuth2Realm.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/lz/modules/sys/oauth2/OAuth2Realm.java b/src/main/java/com/lz/modules/sys/oauth2/OAuth2Realm.java index 921f11fc..0d79af1b 100644 --- a/src/main/java/com/lz/modules/sys/oauth2/OAuth2Realm.java +++ b/src/main/java/com/lz/modules/sys/oauth2/OAuth2Realm.java @@ -14,6 +14,7 @@ import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.sys.entity.SysUserEntityDto; import com.lz.modules.sys.entity.SysUserTokenEntity; import com.lz.modules.sys.service.ShiroService; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authc.*; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; @@ -30,6 +31,7 @@ import java.util.Set; * @author Mark sunlightcs@gmail.com */ @Component +@Slf4j public class OAuth2Realm extends AuthorizingRealm { @Autowired private ShiroService shiroService; @@ -74,8 +76,10 @@ public class OAuth2Realm extends AuthorizingRealm { SysUserEntity user = null; StaffEntity staffEntity = staffService.selectStaffById(tokenEntity.getUserId()); if(tokenEntity.getType() == 0){ //如果是系统用户 + log.info("token判定为系统用户"); user = shiroService.queryUser(tokenEntity.getUserId()); if(staffEntity != null){ + log.info("查询到系统用户信息"); user.setAvatar(staffEntity.getAvatar()); } From dc5c5fae194e2db411f05e6929f9caf9d39c297b Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 18:04:29 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/job/business/DingtalkBusiness.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 93f0fb1d..aebd5c9b 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -247,6 +247,15 @@ public class DingtalkBusiness { if(type == WorkMsgTypeEnum.REJECT.getType()){//被拒 sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.REJECT.getType()); + }else if(type == WorkMsgTypeEnum.URGING.getType()){//被拒 + + sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.URGING.getType()); + }else if(type == WorkMsgTypeEnum.SKIP.getType()){//被拒 + + sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.SKIP.getType()); + }else if(type == WorkMsgTypeEnum.TRANSFER.getType()){//被拒 + + sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.TRANSFER.getType()); }else{ /*List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecordId, 2); From c6c4a4ae341b66f05d100a130c5b0faddedeba0a Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 18:08:10 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lz/common/emun/WorkMsgTypeEnum.java | 2 +- .../lz/modules/job/business/DingtalkBusiness.java | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index d56ba1f8..3d9806fa 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -23,7 +23,7 @@ public enum WorkMsgTypeEnum { SCORE(9, "绩效考评待办事项", "评分", "\n @的绩效\n \n 需您去评分"), SKIP(10, "绩效跳过", "跳过", "# @的绩效\n ## 己经跳过"), TRANSFER(11, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), - CLEARN(10, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), + CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), // 您的2020年10月绩效考核已经开始,请尽快制定绩效目标 // 吴林的2020年12月绩效考核的目标需要您确认,点击前往确认 ; 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 aebd5c9b..5bcef08e 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -257,20 +257,6 @@ public class DingtalkBusiness { sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.TRANSFER.getType()); }else{ - /*List flowRecords = - flowRecordService.selectFlowRecordByRecordIdStatus(resultRecordId, 2); - List ids = flowRecords.stream().map(new Function() { - @Override - public Long apply(FlowRecord flowRecord) { - return flowRecord.getApprovalStaffId(); - } - }).collect(Collectors.toList()); - toStaffids = staffService.selectStaffSimpleInfos(ids); - for (StaffSimpleInfo simpleInfo:toStaffids - ) { - simpleInfo.setResultRecord(resultRecord); - simpleInfo.setFlowStart(flowStart); - }*/ sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.PROCESS.getType()); } From 7dcc093843c67f9e214e3bf4ca71ee3619491b13 Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 18:40:27 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lz/modules/flow/dao/FlowRecordMapper.java | 2 ++ .../modules/flow/service/FlowRecordService.java | 2 ++ .../flow/service/impl/FlowRecordServiceImpl.java | 5 +++++ .../modules/job/business/DingtalkBusiness.java | 16 +++++----------- .../resources/mapper/flow/FlowRecordMapper.xml | 4 ++++ 5 files changed, 18 insertions(+), 11 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 0dce7065..36f3440e 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -87,4 +87,6 @@ public interface FlowRecordMapper extends BaseMapper { List selectLastFlowRecordsById(@Param("recordId") Long recordId); List selectLastFlowRecordsByIdAndFlowIndex(@Param("recordId") Long recordId, @Param("flowIndex") int flowIndex); + + List selectSkipFlowRecordsById(@Param("recordId") Long recordId); } \ 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 36cf8d62..394cbe8d 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -82,4 +82,6 @@ public interface FlowRecordService extends IService { List selectLastFlowRecordsById(Long recordId); //获取制定步骤一个小节点的所有数据 List selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex); + + List selectSkipFlowRecordsById(Long recordId); } \ 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 2535e4b3..bbfe4210 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 @@ -221,4 +221,9 @@ public class FlowRecordServiceImpl extends ServiceImpl selectSkipFlowRecordsById(Long recordId){ + return flowRecordMapper.selectSkipFlowRecordsById(recordId); + } + } 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 5bcef08e..9d6d7c57 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -490,16 +490,10 @@ public class DingtalkBusiness { }else if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.SKIP.getType()){//跳过 //跳过 logger.info("跳过待办任务处理"); - FlowChange flowChange = flowChangeService.selectFlowChangeByRecordIdAndToIdAndType(info.getResultRecord().getId(), - info.getId(), 1); - ThirdMsgSendRecord thirdMsgSendRecord = - thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( - info.getResultRecord().getId(), - flowChange.getApprovalId(), 1, 1); - if(thirdMsgSendRecord != null){//把原来的任务更新掉 - dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); - } - List flowRecords = flowRecordService.selectAndOrFlowRecordsById(flowChange.getFlowRecordId(), info.getResultRecord().getId()); + + + List flowRecords = + flowRecordService.selectSkipFlowRecordsById(info.getResultRecord().getId());//取消所有跳过的人 logger.info("查询到可能需要更新待办任务数量{}", flowRecords.size()); if(flowRecords.size() > 0){ if(flowRecords.get(0).getType().intValue() == 1){ @@ -510,7 +504,7 @@ public class DingtalkBusiness { if(flowRecord.getApprovalStaffId().longValue() != info.getId()){ logger.info("更新非直接跳关人员的待办任务,人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(), flowRecord.getApprovalStaffName()); - thirdMsgSendRecord = + ThirdMsgSendRecord thirdMsgSendRecord = thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( info.getResultRecord().getId(), flowRecord.getApprovalStaffId(), 1, 1); diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index bad0de7b..2a34cc6b 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -310,5 +310,9 @@ + + From d4f68d52866ba9d93ca59a0d51165601ea345a57 Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 18:41:11 +0800 Subject: [PATCH 5/9] youhua --- src/main/java/com/lz/modules/job/business/DingtalkBusiness.java | 1 + 1 file changed, 1 insertion(+) 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 9d6d7c57..6b8051cd 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -470,6 +470,7 @@ public class DingtalkBusiness { if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.TRANSFER.getType()){//转交 //转交 + //并发转交会有问题 logger.info("转交待办任务处理"); FlowChange flowChange = flowChangeService.selectFlowChangeByRecordIdAndToIdAndType(info.getResultRecord().getId(), info.getId(), 0); From 293c9ee98f1443774062b72ebcbb8979c4985fcc Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 18:56:06 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lz/modules/job/business/DingtalkBusiness.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6b8051cd..1bbd102e 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -502,7 +502,7 @@ public class DingtalkBusiness { logger.info("或签,需要更新该节点下所有人员的待办任务"); for (FlowRecord flowRecord:flowRecords ) { - if(flowRecord.getApprovalStaffId().longValue() != info.getId()){ + //if(flowRecord.getApprovalStaffId().longValue() != info.getId()){ logger.info("更新非直接跳关人员的待办任务,人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(), flowRecord.getApprovalStaffName()); ThirdMsgSendRecord thirdMsgSendRecord = @@ -512,7 +512,7 @@ public class DingtalkBusiness { if(thirdMsgSendRecord != null){//把原来的任务更新掉 dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); } - } + //} } } } From 4febc4cb9e276dcb133de60f9d0b9eb60af0936e Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 19:08:51 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= 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, 2 insertions(+) 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 1bbd102e..c6fa0e41 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -511,6 +511,8 @@ public class DingtalkBusiness { flowRecord.getApprovalStaffId(), 1, 1); if(thirdMsgSendRecord != null){//把原来的任务更新掉 dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); + }else{ + logger.info("无需更新"); } //} } From 71ada549b3cfd8e6da55890d178917e6d358d54c Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 20 Nov 2020 19:12:48 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lz/modules/job/business/DingtalkBusiness.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c6fa0e41..35f50cb6 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -497,7 +497,7 @@ public class DingtalkBusiness { flowRecordService.selectSkipFlowRecordsById(info.getResultRecord().getId());//取消所有跳过的人 logger.info("查询到可能需要更新待办任务数量{}", flowRecords.size()); if(flowRecords.size() > 0){ - if(flowRecords.get(0).getType().intValue() == 1){ + //if(flowRecords.get(0).getType().intValue() == 1){ //或签 logger.info("或签,需要更新该节点下所有人员的待办任务"); for (FlowRecord flowRecord:flowRecords @@ -516,7 +516,7 @@ public class DingtalkBusiness { } //} } - } + //} } }else{ List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2); From 9e3f26a00cc94ff7263573ebddfc157153a9ae52 Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 23 Nov 2020 09:19:20 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=BE=85=E5=8A=9E=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/job/business/DingtalkBusiness.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 35f50cb6..e140a3a2 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -238,7 +238,7 @@ public class DingtalkBusiness { ResultRecord resultRecord = resultRecordService.selectResultRecordById(resultRecordId); if(resultRecord != null){ FlowStart flowStart = flowStartService.selectFlowStartById(resultRecord.getStartId()); - StaffSimpleInfo fromStaff = staffService.selectStaffSimpleInfo(resultRecord.getStaffId()); + StaffSimpleInfo fromStaff = staffService.selectStaffSimpleInfo(resultRecord.getStaffId());//查询来自那里 fromStaff.setResultRecord(resultRecord); fromStaff.setFlowStart(flowStart); List toStaffids = new ArrayList<>(); @@ -480,10 +480,12 @@ public class DingtalkBusiness { if(thirdMsgSendRecord != null){//把原来的任务更新掉 dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); } - List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2); + FlowRecord flowRecord = flowRecordService.selectFlowRecordById(flowChange.getFlowRecordId()); + StaffSimpleInfo staffSimpleInfo = staffService.selectStaffSimpleInfo(flowRecord.getApprovalStaffId()); + //List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2); //发送待办任务到新指定人员,转交过来一定会有数据 - sendNotic(info.getId(), info.getEmployeeId(), - flowRecords.get(0).getFlowName(), info.getFlowStart().getName(), + sendNotic(info.getId(), staffSimpleInfo.getEmployeeId(), + flowRecord.getFlowName(), info.getFlowStart().getName(), info.getResultRecord().getStaffName(), token, url, info.getResultRecord().getId());