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/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 49761822..b4a82f45 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -243,7 +243,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<>(); @@ -252,21 +252,16 @@ 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); - 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()); } @@ -480,6 +475,7 @@ public class DingtalkBusiness { if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.TRANSFER.getType()){//转交 //转交 + //并发转交会有问题 logger.info("转交待办任务处理"); FlowChange flowChange = flowChangeService.selectFlowChangeByRecordIdAndToIdAndType(info.getResultRecord().getId(), info.getId(), 0); @@ -489,10 +485,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()); @@ -500,36 +498,32 @@ 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){ + //if(flowRecords.get(0).getType().intValue() == 1){ //或签 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 thirdMsgSendRecord = thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( info.getResultRecord().getId(), flowRecord.getApprovalStaffId(), 1, 1); if(thirdMsgSendRecord != null){//把原来的任务更新掉 dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token); + }else{ + logger.info("无需更新"); } - } + //} } - } + //} } }else{ List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2); 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()); } 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 @@ + +