From a774ec4bfa4273c612ae2c007f15c7fabfc5a12d 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 10:52:19 +0800 Subject: [PATCH 1/4] fix --- .../controller/AssessManagerController.java | 6 ++++++ .../performance/req/AssessDetailReq.java | 12 +++++++++--- .../impl/AssessManagerServiceImpl.java | 2 +- .../sys/dao/app/ResultRecordMapper.java | 3 ++- .../sys/service/app/ResultRecordService.java | 2 ++ .../app/impl/ResultRecordServiceImpl.java | 5 +++++ .../mapper/app/ResultRecordMapper.xml | 19 +++++++++++++------ 7 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 75402cbb..04ba980d 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -12,10 +12,13 @@ import com.lz.modules.performance.res.ChartStatistical; import com.lz.modules.performance.res.ChartStatisticalRes; import com.lz.modules.performance.service.AssessManagerService; import com.lz.modules.sys.dao.app.ResultRecordMapper; +import com.lz.modules.sys.service.app.ResultRecordService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @Author: djc * @Desc: @@ -32,6 +35,8 @@ public class AssessManagerController { private AssessManagerService assessManagerService; @Autowired private ResultRecordMapper resultRecordMapper; + @Autowired + private ResultRecordService resultRecordService; @PostMapping("assess/manager/list") @@ -56,6 +61,7 @@ public class AssessManagerController { @PostMapping("assess/manager/chart") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatistical.class)}) public R assessChart(@RequestBody AssessDetailReq req){ + List process = resultRecordService.countNumByFlowProcess(startId); return R.ok(); } diff --git a/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java b/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java index 3653ec1b..885b488c 100644 --- a/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java +++ b/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java @@ -1,6 +1,8 @@ package com.lz.modules.performance.req; import com.lz.modules.equipment.entity.model.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; import lombok.Data; @@ -12,17 +14,21 @@ import java.util.List; * @Date: 2020/10/13 18:00 */ @Data +@ApiModel("获取考核详情实体") public class AssessDetailReq extends BasePage{ //考勤组id - private Long evaluationId; + @ApiModelProperty(value = "考勤组ids",name = "evaluationIds") + private List evaluationIds; //发起考核的id + @ApiModelProperty(value = "发起考核的id",name = "startId") private int startId; //员工名称 + @ApiModelProperty(value = "员工名称",name = "staffName") private String staffName; - //部门ids数组 - private List departments; //人员id数组 + @ApiModelProperty(value = "人员id数组",name = "staffIds") private List staffIds; //状态 确认 执行 结果录入。。。 + @ApiModelProperty(value = "状态 确认 执行 结果录入。。。",name = "flowProcess") private Integer flowProcess; } 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 cb2a0e6b..36bb1871 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 @@ -74,7 +74,7 @@ public class AssessManagerServiceImpl implements AssessManagerService { @Override public PageUtils assessDetail(AssessDetailReq req) { PageUtils pageUtils = PageUtils.startPage(req.getCurrPage(),req.getPageSize()).doSelect( - page -> resultRecordMapper.selectAssessListByStartId(page,null) + page -> resultRecordMapper.selectAssessListByStartId(page,req) ); return pageUtils; } diff --git a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java index 114fb153..dc1c280b 100644 --- a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java +++ b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java @@ -16,6 +16,7 @@ import com.lz.modules.app.req.ReportListReq; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.OwnResultResp; import com.lz.modules.flow.model.ResultRecordDto; +import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.res.AssessManagerDetailRes; import com.lz.modules.performance.res.ChartStatistical; import com.lz.modules.sys.entity.app.ResultRecord; @@ -84,5 +85,5 @@ public interface ResultRecordMapper extends BaseMapper { ResultRecord selectOneByStartId(@Param("startId")Long startId); - List selectAssessListByStartId(@Param("page") IPage page, @Param("startId")Long startId); + List selectAssessListByStartId(@Param("page") IPage page, @Param("req")AssessDetailReq req); } \ No newline at end of file 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 ed10e077..9eafe8c9 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 @@ -111,4 +111,6 @@ public interface ResultRecordService extends IService { R initFlowRecord(Long resultRecordId); R newApproval(ApprovalDto approvalDto); + + List countNumByFlowProcess(AssessDetailReq req); } \ 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 4cddc7c0..e8a7a60f 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 @@ -930,4 +930,9 @@ public class ResultRecordServiceImpl extends ServiceImpl countNumByFlowProcess(AssessDetailReq req) { + return null; + } } diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 961f96ab..74dec517 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -388,15 +388,22 @@ ON r.start_id = s.start_id and r.staff_id = s.staff_id where r.is_delete = 0 and s.is_delete = 0 and r.start_id = #{startId} - - and r.evaluation_id = #{evaluationId} + + and r.evaluation_id in( + + #{evaluation_id} + + ) - - and r.flow_process = #{flowProcess} + + and r.flow_process = #{req.flowProcess} - + + and r.staff_name = #{req.staffName} + + and staff_id in( - + #{staff_id} ) From 4c0ff8225efd55f84b226ee23dd9fd97c7ef02a3 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 11:41:36 +0800 Subject: [PATCH 2/4] fix --- .../controller/AssessManagerController.java | 11 +++++-- .../controller/ChartController.java | 5 ++- .../performance/req/AssessDetailReq.java | 2 +- .../performance/res/ChartStatistical.java | 3 -- .../performance/res/ChartStatisticalRes.java | 3 ++ .../service/ChartResultService.java | 3 ++ .../service/impl/ChartResultServiceImpl.java | 18 +++++++++++ .../sys/dao/app/ResultRecordMapper.java | 2 ++ .../sys/service/app/ResultRecordService.java | 1 - .../app/impl/ResultRecordServiceImpl.java | 4 --- .../mapper/app/ResultRecordMapper.xml | 31 +++++++++++++++++-- 11 files changed, 67 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 04ba980d..c62a2319 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -51,6 +51,9 @@ public class AssessManagerController { @ApiOperation("获取考核详情列表") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = AssessManagerDetailRes.class)}) public R assessDetail(@RequestBody AssessDetailReq req){ + if(req.getStartId()==null){ + return R.error("考核id不能为空"); + } PageUtils pageUtils = assessManagerService.assessDetail(req); return R.ok().put("data",pageUtils); @@ -59,10 +62,14 @@ public class AssessManagerController { @PostMapping("assess/manager/chart") + @ApiOperation("获取考核详情列表人数统计") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatistical.class)}) public R assessChart(@RequestBody AssessDetailReq req){ - List process = resultRecordService.countNumByFlowProcess(startId); - return R.ok(); + if(req.getStartId()==null){ + return R.error("考核id不能为空"); + } + List process = resultRecordService.countAssessNumByFlowProcess(req); + return R.ok().put("data",process); } diff --git a/src/main/java/com/lz/modules/performance/controller/ChartController.java b/src/main/java/com/lz/modules/performance/controller/ChartController.java index c5c0f2f6..339aef54 100644 --- a/src/main/java/com/lz/modules/performance/controller/ChartController.java +++ b/src/main/java/com/lz/modules/performance/controller/ChartController.java @@ -14,7 +14,6 @@ import com.lz.modules.performance.res.ResultRankListRes; import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.controller.AbstractController; import io.swagger.annotations.*; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -38,7 +37,7 @@ public class ChartController extends AbstractController{ @ApiOperation("获取绩效报表统计") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatisticalRes.class)}) public R chartResult(@RequestParam(required = false) @ApiParam(name = "startId",value = "考核周期标识id") Long startId){ - String defaultTime = StringUtils.EMPTY; + String defaultTime = StringUtil.EMPTY; if(startId==null){ //取最近一条记录 FlowStart flowStart = flowStartMapper.selectRecentlyLimt(); @@ -46,7 +45,7 @@ public class ChartController extends AbstractController{ startId = flowStart.getId(); defaultTime = flowStart.getName(); }else { - return R.ok(); + return R.ok("暂无记录"); } } List chartStatisticalRes = chartResultService.chartReport(startId,defaultTime); diff --git a/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java b/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java index 885b488c..90f5547b 100644 --- a/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java +++ b/src/main/java/com/lz/modules/performance/req/AssessDetailReq.java @@ -21,7 +21,7 @@ public class AssessDetailReq extends BasePage{ private List evaluationIds; //发起考核的id @ApiModelProperty(value = "发起考核的id",name = "startId") - private int startId; + private Long startId; //员工名称 @ApiModelProperty(value = "员工名称",name = "staffName") private String staffName; diff --git a/src/main/java/com/lz/modules/performance/res/ChartStatistical.java b/src/main/java/com/lz/modules/performance/res/ChartStatistical.java index 9df82d0c..6a6e8211 100644 --- a/src/main/java/com/lz/modules/performance/res/ChartStatistical.java +++ b/src/main/java/com/lz/modules/performance/res/ChartStatistical.java @@ -14,7 +14,4 @@ public class ChartStatistical { @ApiModelProperty(value = "人数",name = "num") private int num = 0; - - @ApiModelProperty(value = "是否被选中",name = "check") - private int check; } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java b/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java index 86de2643..e08c77e9 100644 --- a/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java +++ b/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java @@ -20,6 +20,9 @@ public class ChartStatisticalRes { @ApiModelProperty(value = "默认时间 ",name = "defaultTime") private String defaultTime; + @ApiModelProperty(value = "默认考核id ",name = "defaultId") + private Long defaultId; + private List statisticals; } diff --git a/src/main/java/com/lz/modules/performance/service/ChartResultService.java b/src/main/java/com/lz/modules/performance/service/ChartResultService.java index 899ee8ce..99632b61 100644 --- a/src/main/java/com/lz/modules/performance/service/ChartResultService.java +++ b/src/main/java/com/lz/modules/performance/service/ChartResultService.java @@ -2,6 +2,7 @@ package com.lz.modules.performance.service; import com.lz.common.utils.PageUtils; import com.lz.modules.equipment.entity.model.BasePage; +import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.req.ChartStartsReq; import com.lz.modules.performance.res.ChartStartsRes; import com.lz.modules.performance.res.ChartStatistical; @@ -24,4 +25,6 @@ public interface ChartResultService { PageUtils chartStarts(ChartStartsReq req); + List countAssessNumByFlowProcess(AssessDetailReq req); + } diff --git a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java index ea8114b0..7410d584 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java @@ -3,6 +3,7 @@ package com.lz.modules.performance.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Maps; import com.lz.common.utils.PageUtils; +import com.lz.common.utils.StringUtil; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.service.DepartmentsStaffRelateService; import com.lz.modules.app.service.StaffService; @@ -11,6 +12,7 @@ import com.lz.modules.flow.entity.FlowStart; import com.lz.modules.flow.service.EvaluationGroupService; import com.lz.modules.flow.service.FlowStartService; import com.lz.modules.performance.enums.ResultFlowProcessEnum; +import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.req.ChartStartsReq; import com.lz.modules.performance.res.ChartStartsRes; import com.lz.modules.performance.res.ChartStatistical; @@ -24,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Consumer; /** * @Author: djc @@ -60,6 +63,9 @@ public class ChartResultServiceImpl implements ChartResultService { res.setType(0); res.setStatisticals(buildProcess(process,startId)); res.setDefaultTime(defaultTime); + if(StringUtil.isNotBlank(defaultTime)){ + res.setDefaultId(startId); + } data.add(res); List scoreLevel = resultRecordService.countNumByScoreLevel(startId); @@ -67,6 +73,9 @@ public class ChartResultServiceImpl implements ChartResultService { res.setType(1); res.setStatisticals(scoreLevel); res.setDefaultTime(defaultTime); + if(StringUtil.isNotBlank(defaultTime)){ + res.setDefaultId(startId); + } data.add(res); List strings = evaluationGroupService.selectAllStaffIdsByGroupId(3L); @@ -75,6 +84,9 @@ public class ChartResultServiceImpl implements ChartResultService { res.setType(2); res.setStatisticals(depstaff); res.setDefaultTime(defaultTime); + if(StringUtil.isNotBlank(defaultTime)){ + res.setDefaultId(startId); + } data.add(res); return data; @@ -144,6 +156,12 @@ public class ChartResultServiceImpl implements ChartResultService { } + @Override + public List countAssessNumByFlowProcess(AssessDetailReq req) { + resultRecordMapper.countAssessNumByFlowProcess(req); + + return null; + } //构建流程默认人数 private List buildProcess(List process,Long startId){ diff --git a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java index dc1c280b..7e788d16 100644 --- a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java +++ b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java @@ -86,4 +86,6 @@ public interface ResultRecordMapper extends BaseMapper { ResultRecord selectOneByStartId(@Param("startId")Long startId); List selectAssessListByStartId(@Param("page") IPage page, @Param("req")AssessDetailReq req); + + List countAssessNumByFlowProcess(@Param("req")AssessDetailReq req); } \ No newline at end of file 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 9eafe8c9..2e058317 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 @@ -112,5 +112,4 @@ public interface ResultRecordService extends IService { R newApproval(ApprovalDto approvalDto); - List countNumByFlowProcess(AssessDetailReq req); } \ 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 fe940e1a..17f19ae0 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 @@ -951,8 +951,4 @@ public class ResultRecordServiceImpl extends ServiceImpl countNumByFlowProcess(AssessDetailReq req) { - return null; - } } diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 74dec517..9dfa922f 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -387,7 +387,7 @@ LEFT JOIN lz_evaluation_start_staff s ON r.start_id = s.start_id and r.staff_id = s.staff_id where r.is_delete = 0 and s.is_delete = 0 - and r.start_id = #{startId} + and r.start_id = #{req.startId} and r.evaluation_id in( @@ -402,7 +402,7 @@ and r.staff_name = #{req.staffName} - and staff_id in( + and r.staff_id in( #{staff_id} @@ -410,5 +410,32 @@ + + From 02510f9ee65ec84b162112209d458a13acb1cee7 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 11:45:25 +0800 Subject: [PATCH 3/4] fix --- .../performance/controller/AssessManagerController.java | 5 +++-- .../performance/service/impl/ChartResultServiceImpl.java | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index c62a2319..92e11f01 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -11,6 +11,7 @@ import com.lz.modules.performance.res.AssessManagerListRes; import com.lz.modules.performance.res.ChartStatistical; import com.lz.modules.performance.res.ChartStatisticalRes; import com.lz.modules.performance.service.AssessManagerService; +import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.dao.app.ResultRecordMapper; import com.lz.modules.sys.service.app.ResultRecordService; import io.swagger.annotations.*; @@ -36,7 +37,7 @@ public class AssessManagerController { @Autowired private ResultRecordMapper resultRecordMapper; @Autowired - private ResultRecordService resultRecordService; + private ChartResultService chartResultService; @PostMapping("assess/manager/list") @@ -68,7 +69,7 @@ public class AssessManagerController { if(req.getStartId()==null){ return R.error("考核id不能为空"); } - List process = resultRecordService.countAssessNumByFlowProcess(req); + List process = chartResultService.countAssessNumByFlowProcess(req); return R.ok().put("data",process); } diff --git a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java index 7410d584..cb2d9b91 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java @@ -158,9 +158,9 @@ public class ChartResultServiceImpl implements ChartResultService { @Override public List countAssessNumByFlowProcess(AssessDetailReq req) { - resultRecordMapper.countAssessNumByFlowProcess(req); - - return null; + List process = resultRecordMapper.countAssessNumByFlowProcess(req); + List data = buildProcess(process, req.getStartId()); + return data; } //构建流程默认人数 From d8af83e0fb680142b02dfce35c4cae9b66cb996c Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 27 Oct 2020 11:48:32 +0800 Subject: [PATCH 4/4] =?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 | 9 +- .../app/controller/TestController.java | 13 -- .../com/lz/modules/app/dto/ApprovalDto.java | 4 +- .../app/enums/FlowRecordStatusEnums.java | 3 +- .../lz/modules/flow/dao/FlowRecordMapper.java | 7 + .../lz/modules/flow/entity/FlowRecord.java | 2 +- .../flow/service/FlowRecordService.java | 7 + .../service/impl/FlowRecordServiceImpl.java | 17 ++ .../sys/service/app/ResultRecordService.java | 2 +- .../app/impl/ResultRecordServiceImpl.java | 176 +++++++++++++----- .../mapper/flow/FlowRecordMapper.xml | 15 ++ 11 files changed, 187 insertions(+), 68 deletions(-) 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 3fe8202b..1bda4bab 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -650,10 +650,15 @@ public class ResultRecordController extends AbstractController { /** * 删除 */ + // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825 @RequestMapping("/new/approval") public R approval(ApprovalDto approvalDto) { - approvalDto.setLoginUserId(approvalDto.getLoginUserId()); - return resultRecordService.newApproval(approvalDto); + try { + approvalDto.setLoginUserId(approvalDto.getLoginUserId()); + return resultRecordService.newApproval(approvalDto); + } catch (Exception e) { + return R.error(e.getMessage()); + } } diff --git a/src/main/java/com/lz/modules/app/controller/TestController.java b/src/main/java/com/lz/modules/app/controller/TestController.java index 0b96c350..bd5ac44b 100644 --- a/src/main/java/com/lz/modules/app/controller/TestController.java +++ b/src/main/java/com/lz/modules/app/controller/TestController.java @@ -266,18 +266,5 @@ public class TestController { - /** - * 删除 - */ - // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1 - @RequestMapping("/new/approval") - public R approval(Long resultRecordId,Integer status ) { - ApprovalDto approvalDto = new ApprovalDto(); - approvalDto.setResultRecordId(resultRecordId); - approvalDto.setStatus(status); - return resultRecordService.newApproval(approvalDto); - - } - } diff --git a/src/main/java/com/lz/modules/app/dto/ApprovalDto.java b/src/main/java/com/lz/modules/app/dto/ApprovalDto.java index 04629587..b67720ce 100644 --- a/src/main/java/com/lz/modules/app/dto/ApprovalDto.java +++ b/src/main/java/com/lz/modules/app/dto/ApprovalDto.java @@ -5,8 +5,10 @@ import lombok.Data; @Data public class ApprovalDto { private Long resultRecordId; - private Integer status; //1 提交审批,审批通过,2 撤回,3 催办,5 驳回,6 申述,7 流程终止 + private Integer status; //1 提交审批,审批通过,2 撤回,3 催办,4 跳过,5 驳回,6 申述,7 流程终止,8 转交 private Long loginUserId; private String menuName; //按钮名称 private String comment; + private Long transferStaffId; // 转交员工 id + private Long currentStaffId; //当前用户 id } diff --git a/src/main/java/com/lz/modules/app/enums/FlowRecordStatusEnums.java b/src/main/java/com/lz/modules/app/enums/FlowRecordStatusEnums.java index e4e38ece..db15582d 100644 --- a/src/main/java/com/lz/modules/app/enums/FlowRecordStatusEnums.java +++ b/src/main/java/com/lz/modules/app/enums/FlowRecordStatusEnums.java @@ -5,7 +5,8 @@ public enum FlowRecordStatusEnums { UN_TO_STATUS(0, "流程未到"), FINISHED_STATUS(1, "流程已走"), CURRENT_FLOW_STATUS(2, "当前流程"), - SKIP_STATUS(3, "跳过"); + OTHER_APPROVAL(3,"其他人己审批"), + SKIP_STATUS(4, "跳过"); private Integer status; private String desc ; 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 7739ceca..a6b96ebf 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -64,4 +64,11 @@ public interface FlowRecordMapper extends BaseMapper { List selectFlowRecordByRecordIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("status") Integer status); FlowRecord selectFlowRecordByRecordIdAndFlowId(@Param("resultRecordId") Long resultRecordId, @Param("flowId") Long flowId); + + List selectFlowRecordByRecordIdStatusFlowIndex(@Param("resultRecordId") Long resultRecordId, @Param("status") int status, @Param("flowIndex") int flowIndex); + + + FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("id") Long id, @Param("status") int status); + + List selectFlowRecordByRecordIdFlowIndex(@Param("resultRecordId") Long resultRecordId, @Param("flowIndex") Integer flowIndex); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java index 36250494..b03f5334 100644 --- a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java +++ b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java @@ -46,7 +46,7 @@ public class FlowRecord implements java.io.Serializable { private String flowStaffIdRole; //状态名称 private String statusName; - //类型 ,1 表示提交目标,2 表示提交结果 + //步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可) private Integer type; /** * 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 3bb55b2b..f2640222 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -63,4 +63,11 @@ public interface FlowRecordService extends IService { List selectFlowRecordByRecordIdStatus(Long resultRecordId,Integer status); FlowRecord selectFlowRecordByRecordIdAndFlowId(Long resultRecordId, Long id); + + List selectFlowRecordByRecordIdStatusFlowIndex(Long resultRecordId, int status, int flowIndex); + + + FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status); + + List selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex); } \ 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 66904608..09f0ae20 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 @@ -173,4 +173,21 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFlowRecordByRecordIdStatusFlowIndex(Long resultRecordId, int status, int flowIndex) { + return flowRecordMapper.selectFlowRecordByRecordIdStatusFlowIndex(resultRecordId,status,flowIndex); + } + + @Override + public FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status) { + return flowRecordMapper.selectPreFlowRecordByRecordIdMaxIdStatus(resultRecordId,id,status); + } + + @Override + public List selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex) { + return flowRecordMapper.selectFlowRecordByRecordIdFlowIndex(resultRecordId,flowIndex); + } + + } 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 ed10e077..c10f4444 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 @@ -110,5 +110,5 @@ public interface ResultRecordService extends IService { R initFlowRecord(Long resultRecordId); - R newApproval(ApprovalDto approvalDto); + R newApproval(ApprovalDto approvalDto) throws Exception; } \ 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 b6731bf0..f35138fc 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.common.emun.WorkMsgTypeEnum; +import com.lz.common.exception.RRException; import com.lz.common.utils.*; import com.lz.modules.app.dao.DepartmentsDao; import com.lz.modules.app.dao.DepartmentsStaffRelateDao; @@ -27,7 +28,6 @@ import com.lz.modules.flow.enums.FlowRecordEnum; import com.lz.modules.flow.model.*; import com.lz.modules.flow.service.*; import com.lz.modules.job.business.DingtalkBusiness; -import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.res.ChartStatistical; import com.lz.modules.sys.dao.app.ResultRecordMapper; import com.lz.modules.sys.entity.SysUserEntity; @@ -813,8 +813,17 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1); if(flowRecords!=null && flowRecords.size()>0){ @@ -840,72 +862,128 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByRecordId(approvalDto.getResultRecordId()); ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); - FlowRecord currentFlowRecord = null; - for(FlowRecord flowRecord: flowRecords){ - if(flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())){ - log.info("flowRecordId:" + flowRecord.getId() + "更新为流程己走"); - flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus()); - flowRecordService.updateFlowRecordById(flowRecord); - } else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.SKIP_STATUS.getStatus())){ - continue; - } else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())){ - flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus()); - log.info("flowRecordId:" + flowRecord.getId() + "更新为正在执行"); - currentFlowRecord = flowRecord; - flowRecordService.updateFlowRecordById(flowRecord); - break; + if(approvalDto.getLoginUserId() == null){ + approvalDto.setLoginUserId(resultRecord.getCurrentApprovalStaffId()); + } + List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2); + if(CollectionUtils.isEmpty(flowRecords)){ + log.info("流程己经结束"); + return R.ok("流程己经结束"); + } + FlowRecord preFlowRecord = flowRecords.get(0); + int stepType = preFlowRecord.getType(); + if (flowRecords != null && flowRecords.size() > 0) { + if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了 + for (FlowRecord flowRecord : flowRecords) { + if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) { + flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成 + } else { + flowRecord.setStatus(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus()); //其他审批 + } + flowRecordService.updateFlowRecordById(flowRecord); + } + } else { + boolean flag = false; + FlowRecord currentFlowRecord = null; + for (FlowRecord flowRecord : flowRecords) { + if (!flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId()) + && flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())) { + flag = true; + } else { + currentFlowRecord = flowRecord;//当前流程 id + } + } + currentFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成 + flowRecordService.updateFlowRecordById(currentFlowRecord); + if (flag) { //流程未向下走 + return R.ok("审批成功"); + } } + } else { + preFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//流程己走 + flowRecordService.updateFlowRecordById(preFlowRecord); + FlowChart flowChart = flowService.selectFlowChartByChartId(preFlowRecord.getFlowId()); + comment(approvalDto, flowChart); + } + + List nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(),0,preFlowRecord.getFlowIndex() + 1 ); + 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()); - resultRecord.setFlowStaffIdRole(currentFlowRecord.getFlowStaffIdRole()); - resultRecord.setCurrentApprovalStaffId(currentFlowRecord.getApprovalStaffId()); - resultRecord.setCurrentApprovalStaffName(currentFlowRecord.getApprovalStaffName()); - resultRecordService.updateResultRecordById(resultRecord); - comment(approvalDto,flowChart); + resultRecord.setFlowStaffIdRole(nextFlowRecords.size() == 1 ? currentFlowRecord.getFlowStaffIdRole() : null); + resultRecord.setCurrentApprovalStaffId(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffId() : null); + resultRecord.setCurrentApprovalStaffName(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffName() : null); + resultRecordService.updateCoverResultRecordById(resultRecord); return R.ok(); } + private R newReject(ApprovalDto approvalDto) { - List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2); - if(flowRecords !=null && flowRecords.size() > 0 ){ - FlowRecord currentFlowRecord = flowRecords.get(0); - for(FlowRecord flowRecord : flowRecords){ - flowRecord.setStatus(0); + List currentflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus()); + if(currentflowRecords !=null && currentflowRecords.size() > 0 ){ + FlowRecord currentFlowRecord = currentflowRecords.get(0); + // 更新当前数据 + // 获取当前审批结点组 + List currentFlowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(approvalDto.getResultRecordId(), currentFlowRecord.getFlowIndex()); + for(FlowRecord flowRecord : currentFlowRecords){ + flowRecord.setStatus(FlowRecordStatusEnums.UN_TO_STATUS.getStatus()); flowRecordService.updateFlowRecordById(flowRecord); } + FlowRecord currentApprovalFlowRecord = currentFlowRecords.get(0); + FlowChart currentflowChart = flowService.selectFlowChartByChartId(currentApprovalFlowRecord.getFlowId()); + comment(approvalDto, currentflowChart); //评论 - FlowRecord lastFlowRecord = flowRecordService.selectFlowRecordByRecordIdAndFlowId(approvalDto.getResultRecordId(),currentFlowRecord.getId()); - lastFlowRecord.setStatus(2); - flowRecordService.updateFlowRecordById(lastFlowRecord); + // 恢复之前数据 + // 获取之前审批过的结点 + FlowRecord preFlowRecord = flowRecordService.selectPreFlowRecordByRecordIdMaxIdStatus(approvalDto.getResultRecordId(), + currentFlowRecord.getId(),FlowRecordStatusEnums.FINISHED_STATUS.getStatus()); + if(preFlowRecord != null) { + // 获取之前审批结点组 + List flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(approvalDto.getResultRecordId(), preFlowRecord.getFlowIndex()); + for (FlowRecord flowRecord : flowRecords) { + flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus()); + flowRecordService.updateFlowRecordById(flowRecord); + } - ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); - resultRecord.setCurrentApprovalStaffId(lastFlowRecord.getApprovalStaffId()); - resultRecord.setCurrentApprovalStaffName(lastFlowRecord.getApprovalStaffName()); - resultRecord.setFlowStaffIdRole(lastFlowRecord.getFlowStaffIdRole()); - FlowChart flowChart = flowService.selectFlowChartByChartId(lastFlowRecord.getFlowId()); - resultRecord.setFlowProcess(flowChart.getFlowProcess()); - resultRecordService.updateResultRecordById(resultRecord); - comment(approvalDto,flowChart); + FlowRecord lastFlowRecord = flowRecords.get(0); + ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); + resultRecord.setCurrentApprovalStaffId(flowRecords.size() == 1 ? lastFlowRecord.getApprovalStaffId():null); + resultRecord.setCurrentApprovalStaffName(flowRecords.size() == 1 ?lastFlowRecord.getApprovalStaffName():null); + resultRecord.setFlowStaffIdRole(flowRecords.size() == 1 ?lastFlowRecord.getFlowStaffIdRole():null); + + FlowChart flowChart = flowService.selectFlowChartByChartId(lastFlowRecord.getFlowId()); + resultRecord.setFlowProcess(flowChart.getFlowProcess()); + resultRecordService.updateCoverResultRecordById(resultRecord); + } } return R.ok(); } - private R urge(ApprovalDto approvalDto) { ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); if(!resultRecord.getCurrentApprovalStaffId().equals(approvalDto.getLoginUserId())){ diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index a2e3e6d1..03f41db9 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -266,10 +266,25 @@ + + + + + + + + +