From cebe1b1a55979bad49e003bf30074b2397516146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Tue, 27 Oct 2020 14:31:44 +0800 Subject: [PATCH 1/2] fix --- .../performance/service/impl/AssessManagerServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java index 36bb1871..69a36be5 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java @@ -59,7 +59,7 @@ public class AssessManagerServiceImpl implements AssessManagerService { } int i = resultRecordMapper.countStartAndGroupNum(flowStart.getId()); ResultRecord resultRecord = resultRecordMapper.selectOneByStartId(flowStart.getId()); - res.setJoinNum(resultRecord == null? StringUtil.EMPTY : resultRecord.getStaffName() + i + "人"); + res.setJoinNum(resultRecord == null? StringUtil.EMPTY : resultRecord.getStaffName() + i + "等人"); data.add(res); }); PageUtils pages = new PageUtils(); From 4a27bc2692938d8e623860dfa1b9511df5792350 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 27 Oct 2020 14:34:10 +0800 Subject: [PATCH 2/2] =?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 --- .../controller/ResultRecordController.java | 23 ++-- ...ecordListDto.java => RecordDetailDto.java} | 3 +- .../lz/modules/app/resp/FlowDetailResp.java | 9 ++ .../lz/modules/app/resp/FlowRecordResp.java | 18 +++ .../lz/modules/flow/dao/FlowRecordMapper.java | 4 + .../flow/service/FlowRecordService.java | 4 + .../service/impl/FlowRecordServiceImpl.java | 11 ++ .../sys/service/app/ResultRecordService.java | 3 + .../app/impl/ResultRecordServiceImpl.java | 121 +++++++++++++++--- .../mapper/flow/FlowRecordMapper.xml | 7 + 10 files changed, 174 insertions(+), 29 deletions(-) rename src/main/java/com/lz/modules/app/dto/{RecordListDto.java => RecordDetailDto.java} (58%) create mode 100644 src/main/java/com/lz/modules/app/resp/FlowDetailResp.java create mode 100644 src/main/java/com/lz/modules/app/resp/FlowRecordResp.java diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 59a914c1..5dad8b85 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -4,7 +4,7 @@ import com.lz.common.emun.WorkMsgTypeEnum; import com.lz.common.utils.*; import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.dto.DepartmentsDto; -import com.lz.modules.app.dto.RecordListDto; +import com.lz.modules.app.dto.RecordDetailDto; import com.lz.modules.app.dto.StaffDepartmentDto; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; @@ -19,7 +19,6 @@ import com.lz.modules.flow.entity.RecordAuth; import com.lz.modules.flow.entity.RecordFile; import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.model.Auth; -import com.lz.modules.flow.model.ResultRecordDto; import com.lz.modules.flow.req.ResultDetailReq; import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.RecordAuthService; @@ -651,28 +650,30 @@ public class ResultRecordController extends AbstractController { /** * 删除 */ - // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825 + // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb @RequestMapping("/new/approval") public R approval(ApprovalDto approvalDto) { try { - approvalDto.setLoginUserId(approvalDto.getLoginUserId()); + if (getUser() != null) { + approvalDto.setLoginUserId(getUserId()); + } return resultRecordService.newApproval(approvalDto); } catch (Exception e) { return R.error(e.getMessage()); } } - - /** * 删除 */ - // http://localhost:8080/lz_management/user/lzresultrecord/new/resultRecordList - @RequestMapping("/new/resultRecordList") - public R newResultRecordList(RecordListDto recordListDto) { + // http://localhost:8080/lz_management/user/lzresultrecord/new/resultRecordDetail?resultRecordId=215 + @RequestMapping("/new/resultRecordDetail") + public R newResultRecordList(RecordDetailDto recordDetailDto) { + if(recordDetailDto.getLoginUserId() ==null && getUser() !=null ){ + recordDetailDto.setLoginUserId(getUserId()); + } + return resultRecordService.newResultRecordList(recordDetailDto); - - return null; } diff --git a/src/main/java/com/lz/modules/app/dto/RecordListDto.java b/src/main/java/com/lz/modules/app/dto/RecordDetailDto.java similarity index 58% rename from src/main/java/com/lz/modules/app/dto/RecordListDto.java rename to src/main/java/com/lz/modules/app/dto/RecordDetailDto.java index d7e5c896..6857a540 100644 --- a/src/main/java/com/lz/modules/app/dto/RecordListDto.java +++ b/src/main/java/com/lz/modules/app/dto/RecordDetailDto.java @@ -3,6 +3,7 @@ package com.lz.modules.app.dto; import lombok.Data; @Data -public class RecordListDto { +public class RecordDetailDto { private Long loginUserId; + private Long resultRecordId; } diff --git a/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java b/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java new file mode 100644 index 00000000..80a98625 --- /dev/null +++ b/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java @@ -0,0 +1,9 @@ +package com.lz.modules.app.resp; + +import lombok.Data; + +@Data +public class FlowDetailResp { + private Long currentStaffId; + private String staffName; +} diff --git a/src/main/java/com/lz/modules/app/resp/FlowRecordResp.java b/src/main/java/com/lz/modules/app/resp/FlowRecordResp.java new file mode 100644 index 00000000..782a4456 --- /dev/null +++ b/src/main/java/com/lz/modules/app/resp/FlowRecordResp.java @@ -0,0 +1,18 @@ +package com.lz.modules.app.resp; + +import lombok.Data; + +import java.util.List; + +@Data +public class FlowRecordResp { + + private String flowName; + + private String staffName; + + private int status; + + private List flowDetailRespList; + +} 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 a6b96ebf..5147fb2c 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -71,4 +71,8 @@ public interface FlowRecordMapper extends BaseMapper { FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("id") Long id, @Param("status") int status); List selectFlowRecordByRecordIdFlowIndex(@Param("resultRecordId") Long resultRecordId, @Param("flowIndex") Integer flowIndex); + + List selectFlowRecordByResultRecordId(@Param("resultRecordId") Long resultRecordId); + + FlowRecord selectFlowRecordByRecordIdMinIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("id") Long id, @Param("status") 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 f2640222..903b71c8 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -70,4 +70,8 @@ public interface FlowRecordService extends IService { FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status); List selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex); + + List selectFlowRecordByResultRecordId(Long resultRecordId); + + FlowRecord selectFlowRecordByRecordIdMinIdStatus(Long resultRecordId, Long id, int i); } \ 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 09f0ae20..bfd5a6d8 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 @@ -189,5 +189,16 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFlowRecordByResultRecordId(Long resultRecordId) { + + return flowRecordMapper.selectFlowRecordByResultRecordId(resultRecordId); + } + + @Override + public FlowRecord selectFlowRecordByRecordIdMinIdStatus(Long resultRecordId, Long id, int status) { + return flowRecordMapper.selectFlowRecordByRecordIdMinIdStatus(resultRecordId,id,status); + } + } diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java index c10f4444..a19563bc 100644 --- a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java +++ b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java @@ -5,6 +5,7 @@ import com.lz.common.emun.WorkMsgTypeEnum; import com.lz.common.utils.R; import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.dto.GraphicsStatisticalDto; +import com.lz.modules.app.dto.RecordDetailDto; import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; @@ -111,4 +112,6 @@ public interface ResultRecordService extends IService { R initFlowRecord(Long resultRecordId); R newApproval(ApprovalDto approvalDto) throws Exception; + + R newResultRecordList(RecordDetailDto recordDetailDto); } \ No newline at end of file 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 132cac25..75c41e56 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 @@ -11,12 +11,15 @@ import com.lz.modules.app.dao.DepartmentsStaffRelateDao; import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.dto.EmployeesDto; import com.lz.modules.app.dto.GraphicsStatisticalDto; +import com.lz.modules.app.dto.RecordDetailDto; import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.enums.FlowApprovalRoleTypeEnums; import com.lz.modules.app.enums.FlowRecordStatusEnums; import com.lz.modules.app.req.ResultRecordReq; +import com.lz.modules.app.resp.FlowDetailResp; +import com.lz.modules.app.resp.FlowRecordResp; import com.lz.modules.app.resp.OwnResultResp; import com.lz.modules.app.resp.ResultRecordResp; import com.lz.modules.app.service.DepartmentsService; @@ -824,6 +827,15 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2); + if(CollectionUtils.isNotEmpty(flowRecords)){ + FlowRecord preFlowRecord = flowRecords.get(0); + // 评论内容 + FlowChart flowChart = flowService.selectFlowChartByChartId(preFlowRecord.getFlowId()); + comment(approvalDto, flowChart); + } + switch (approvalDto.getStatus()) { case 1: //1 提交审批,审批通过 return newSubmit(approvalDto); @@ -849,6 +861,88 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId()); + List flowRecordList = new ArrayList<>(); + int flowIndex = -1; + for (FlowRecord flowRecord : flowRecords) { + if (flowRecord.getFlowIndex().equals(flowIndex)) { //表示有重复数据 + FlowRecordResp lastResp = flowRecordList.get(flowRecordList.size() - 1); + List mulFlowRecord = flowRecordService.selectFlowRecordByRecordIdFlowIndex(recordDetailDto.getResultRecordId(), flowIndex); + FlowRecord fisrt = mulFlowRecord.get(0); + int stepIndex = fisrt.getType(); + boolean flag0 = false; + boolean flag1 = false; + boolean flag2 = false; + boolean flag4 = false; + List flowDetailRespList = lastResp.getFlowDetailRespList(); + mySetFlowDetailRespList(flowDetailRespList, flowRecord); + for (FlowRecord mul : mulFlowRecord) { + if (mul.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())) { + flag0 = true; + } else if (mul.getStatus().equals(FlowRecordStatusEnums.FINISHED_STATUS.getStatus())) { + flag1 = true; + } else if (mul.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())) { + flag2 = true; + } else if (mul.getStatus().equals(FlowRecordStatusEnums.SKIP_STATUS.getStatus())) { + flag4 = true; + } + if(mul.getApprovalStaffId().equals(recordDetailDto.getLoginUserId())){ + lastResp.setStaffName(mul.getApprovalStaffName()); + } + } + if (stepIndex == 0 || stepIndex == 1) { // 依次 + if(flag0){ + lastResp.setStatus(0); + }else if(flag1){ + lastResp.setStatus(1); + }else if(flag2){ + lastResp.setStatus(1); + }else if (flag4){ + lastResp.setStatus(4); + } + } else { //所有 + if(flag0){ //只要有 0 表示当前节点所有的为0 + lastResp.setStatus(0); + }else if(flag2){ // 只要有 2 表示所有的结点停留在当前 + lastResp.setStatus(1); + }else if(flag1){ + lastResp.setStatus(1); // 当前步骤中只存在1和4 ,那么当前结点肯定通过了 + }else if (flag4){ + lastResp.setStatus(4); // 当前步骤中所有的结点都跳过了 + } + } + continue; + } + FlowRecordResp resp = new FlowRecordResp(); + resp.setFlowName(flowRecord.getFlowName()); + resp.setStaffName(flowRecord.getApprovalStaffName()); + resp.setStatus(flowRecord.getStatus()); + + List flowDetailRespList = new ArrayList<>(); + mySetFlowDetailRespList(flowDetailRespList,flowRecord); + + resp.setFlowDetailRespList(flowDetailRespList); + flowRecordList.add(resp); + flowIndex = flowRecord.getFlowIndex(); + } + FlowRecordResp end = new FlowRecordResp(); + end.setFlowName("线束"); + flowRecordList.add(end); + List resultCommentList = resultCommentService.selectByRecordId(recordDetailDto.getResultRecordId()); + Map map = new HashMap<>(); + map.put("flowRecordList", flowRecordList); + map.put("resultCommentList", resultCommentList); + return R.ok().put("data", map); + } + + public void mySetFlowDetailRespList(List flowDetailRespList ,FlowRecord flowRecord){ + FlowDetailResp flowDetailResp = new FlowDetailResp(); + flowDetailResp.setCurrentStaffId(flowRecord.getApprovalStaffId()); + flowDetailResp.setStaffName(flowRecord.getApprovalStaffName()); + flowDetailRespList.add(flowDetailResp); + } private R transfer(ApprovalDto approvalDto) { return null; } @@ -861,15 +955,15 @@ public class ResultRecordServiceImpl extends ServiceImpl nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(),0,preFlowRecord.getFlowIndex() + 1 ); - if(CollectionUtils.isEmpty(nextFlowRecords)){ + // 找到当前下一个节点为0的 flowIndex + FlowRecord nextFlowRecord = flowRecordService.selectFlowRecordByRecordIdMinIdStatus(approvalDto.getResultRecordId(),preFlowRecord.getId(), 0); + List nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(), 0, nextFlowRecord.getFlowIndex()); + if (CollectionUtils.isEmpty(nextFlowRecords)) { log.info("流程己经结束2"); return R.ok("流程己经结束"); } FlowRecord currentFlowRecord = nextFlowRecords.get(0); - for (FlowRecord flowRecord : nextFlowRecords) { flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus()); flowRecordService.updateFlowRecordById(flowRecord); } - FlowChart flowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId()); - - resultRecord.setFlowProcess(flowChart.getFlowProcess()); + FlowChart currentFlowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId()); + resultRecord.setFlowProcess(currentFlowChart.getFlowProcess()); resultRecord.setFlowStaffIdRole(nextFlowRecords.size() == 1 ? currentFlowRecord.getFlowStaffIdRole() : null); resultRecord.setCurrentApprovalStaffId(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffId() : null); resultRecord.setCurrentApprovalStaffName(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffName() : null); @@ -953,10 +1044,6 @@ public class ResultRecordServiceImpl extends ServiceImpl select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and flow_index = #{flowIndex} + + +