From c4a2a84151e5927893944eb212bd5b73188aa88d Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 13 Jan 2021 11:10:43 +0800 Subject: [PATCH] =?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 --- .../app/impl/ResultRecordServiceImpl.java | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) 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 aa0e8f98..5b4a6ef9 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 @@ -953,7 +953,7 @@ public class ResultRecordServiceImpl extends ServiceImpl currflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 2); - if (CollectionUtils.isNotEmpty(currflowRecords)) { - FlowRecord preFlowRecord = currflowRecords.get(0); - if (approvalDto.getLoginUserId() != null && approvalDto.getLoginUserId() > 0) { - if (!preFlowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) { - log.info("审批人不是自己 ,ApprovalStaffId :" + preFlowRecord.getApprovalStaffId() + ",登陆用户 id:" + approvalDto.getLoginUserId()); - return R.error("审批人不是自己,不能撤回"); - } - } + if(!hasRecall(approvalDto.getResultRecordId(),approvalDto.getLoginUserId())){ + return R.error("没有撤回权限"); } return newReject(approvalDto); } + //当前是否有撤回权限 + public boolean hasRecall(Long resultRecordId, Long loginUserId) { + ResultRecord resultRecord = resultRecordService.selectResultRecordById(resultRecordId); + List currflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecordId, 2); + if (CollectionUtils.isNotEmpty(currflowRecords)) { + FlowRecord currentFlowRecord = currflowRecords.get(0); + List preFlowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(currentFlowRecord.getRecordId(), currentFlowRecord.getFlowIndex() - 1); + for (FlowRecord flowRecord : preFlowRecords) { + if (flowRecord.getApprovalStaffId().equals(loginUserId) + && loginUserId.equals(resultRecord.getStaffId()) + //在目标制定的时候和结果录入的时候允许撤回 + && (flowRecord.getFlowProcess().equals(new Integer(0)) || flowRecord.getFlowProcess().equals(new Integer(3)))) { + return true; + } + log.info("没有撤回权限:approvalStaffId :" + flowRecord.getApprovalStaffId() + ",loginUserId :" + loginUserId + ",staffId:" + resultRecord.getStaffId() + ",flowProcess:"+flowRecord.getFlowProcess()); + } + } + return false; + } + public Long comment(ApprovalDto approvalDto, FlowChart flowChart) { StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getLoginUserId()); if (staffEntity != null) { @@ -1415,17 +1427,8 @@ public class ResultRecordServiceImpl extends ServiceImpl preFlowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(currentFlowRecord.getRecordId(), currentFlowRecord.getFlowIndex() - 1); - if (CollectionUtils.isNotEmpty(preFlowRecords)) { - for (FlowRecord flowRecord : preFlowRecords) { - if (flowRecord.getApprovalStaffId().equals(recordDetailDto.getLoginUserId()) - && recordDetailDto.getLoginUserId().equals(resultRecord.getStaffId()) - //在目标制定的时候和结果录入的时候允许撤回 - && (flowRecord.getFlowProcess().equals(new Integer(0)) || flowRecord.getFlowProcess().equals(new Integer(3))) - ) { - auth.put("recall", 1); - } - } + if(hasRecall(currentFlowRecord.getRecordId(),recordDetailDto.getLoginUserId())){ + auth.put("recall", 1); }