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 1/5] =?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} + + + From b95bb856d1b0e1f55877176aa5fa110d73581c3f Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 27 Oct 2020 14:54:58 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=8F=91=E8=B5=B7=E8=80=83=E6=A0=B8?= =?UTF-8?q?=E6=97=B6=E8=BF=94=E5=9B=9E=E5=8F=91=E8=B5=B7=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ResultRecordController.java | 47 ++- .../flow/dao/EvaluationStartStaffMapper.java | 2 + .../modules/flow/model/ResultDetailDto.java | 218 +++++++++++++ .../flow/model/ResultRecordDetailDto.java | 301 ++++++++++++++++++ .../flow/model/ResultRecortModelDto.java | 183 +++++++++++ .../service/EvaluationStartStaffService.java | 2 + .../impl/EvaluationStartStaffServiceImpl.java | 5 + .../service/impl/FlowStartServiceImpl.java | 2 +- .../controller/FlowStartController.java | 5 +- .../flow/EvaluationStartStaffMapper.xml | 7 +- src/test/java/com/lz/mysql/MysqlMain.java | 2 +- 11 files changed, 756 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/lz/modules/flow/model/ResultDetailDto.java create mode 100644 src/main/java/com/lz/modules/flow/model/ResultRecordDetailDto.java create mode 100644 src/main/java/com/lz/modules/flow/model/ResultRecortModelDto.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..0789864b 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -14,17 +14,13 @@ import com.lz.modules.app.resp.Step; import com.lz.modules.app.service.DepartmentsService; import com.lz.modules.app.service.DepartmentsStaffRelateService; import com.lz.modules.app.service.StaffService; -import com.lz.modules.flow.entity.FlowRecord; -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.entity.*; import com.lz.modules.flow.model.Auth; +import com.lz.modules.flow.model.FlowModel; +import com.lz.modules.flow.model.ResultRecordDetailDto; 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; -import com.lz.modules.flow.service.RecordFileService; -import com.lz.modules.flow.service.StaffRoleService; +import com.lz.modules.flow.service.*; import com.lz.modules.sys.controller.AbstractController; import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.sys.entity.app.ResultComment; @@ -33,15 +29,13 @@ import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultCommentService; import com.lz.modules.sys.service.app.ResultDetailService; import com.lz.modules.sys.service.app.ResultRecordService; +import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; @@ -59,6 +53,7 @@ import java.util.stream.Collectors; @RestController @RequestMapping("user/lzresultrecord") @Slf4j +@Api("绩效相关-吴林") public class ResultRecordController extends AbstractController { @Autowired private ResultRecordService lzResultRecordService; @@ -83,6 +78,8 @@ public class ResultRecordController extends AbstractController { @Autowired private RecordFileService recordFileService; + @Autowired + private EvaluationStartStaffService evaluationStartStaffService; @@ -92,6 +89,9 @@ public class ResultRecordController extends AbstractController { @Autowired private RedisCacheUtil redisCacheUtil; + @Autowired + private ResultModelService resultModelService; + /** * 列表 */ @@ -317,6 +317,29 @@ public class ResultRecordController extends AbstractController { return R.ok().put("lzResultRecord", lzResultRecord); } + /** + * 信息 + */ + @GetMapping("/getDetail") + @ApiOperation("获取绩效详情") + @ApiResponses({@ApiResponse(code = 200, message = "成功", response = ResultRecordDetailDto.class)}) + public R getDetail(@RequestParam @ApiParam("绩效id") Long id) { + + ResultRecord resultRecord = lzResultRecordService.selectResultRecordById(id); + SysUserEntity user = getUser(); + if(resultRecord.getStaffId().longValue() != user.getUserId().longValue()){ + //下面判断权限,是否可读 + EvaluationStartStaff evaluationStartStaff = + evaluationStartStaffService.selectManagerEvaluationStartStaff(resultRecord.getEvaluationId(), user.getUserId()); + if(evaluationStartStaff == null){//非考核组设置的绩效管理人员,下面应在查询其他权限 + return R.error("未被授权访问"); + } + } + //获取考核维度等信息 + List resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId()); + return R.ok().put("data", resultRecord); + } + /** * 信息 */ diff --git a/src/main/java/com/lz/modules/flow/dao/EvaluationStartStaffMapper.java b/src/main/java/com/lz/modules/flow/dao/EvaluationStartStaffMapper.java index a6ff4df1..aa8107fd 100644 --- a/src/main/java/com/lz/modules/flow/dao/EvaluationStartStaffMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/EvaluationStartStaffMapper.java @@ -36,4 +36,6 @@ public interface EvaluationStartStaffMapper extends BaseMapper evaluationStartStaffs); EvaluationStartStaff selectOneByStartIdAndStaffId(@Param("startId")Long startId,@Param("staffId")Long staffId); + + EvaluationStartStaff selectManagerEvaluationStartStaff(@Param("evaluationId") Long evaluationId, @Param("staffId") Long userId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java b/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java new file mode 100644 index 00000000..4a34c817 --- /dev/null +++ b/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java @@ -0,0 +1,218 @@ +package com.lz.modules.flow.model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** +*

+*

*业绩详情表 +* @author quyixiao +* @since 2020-10-27 +*/ + +@Data +@ApiModel(value = "业绩详情表Dto") +public class ResultDetailDto { + // + @ApiModelProperty(value = "", name = "id") + private Long id; + //1,业绩,2文化价值观 + @ApiModelProperty(value = "1,业绩,2文化价值观", name = "type") + private Integer type; + //目标 + @ApiModelProperty(value = "目标", name = "target") + private String target; + //关键结果 + @ApiModelProperty(value = "关键结果", name = "keyResult") + private String keyResult; + + //考核权重 + @ApiModelProperty(value = "考核权重", name = "checkWeight") + private BigDecimal checkWeight; + //考核结果 + @ApiModelProperty(value = "考核结果", name = "checkResult") + private String checkResult; + //直属上级评分 + @ApiModelProperty(value = "直属上级评分", name = "superScore") + private String superScore; + //得分 + @ApiModelProperty(value = "得分", name = "acquireScore") + private BigDecimal acquireScore; + //评分说明 + @ApiModelProperty(value = "评分说明", name = "scoreComment") + private String scoreComment; + + + //优先级,从大到小 + @ApiModelProperty(value = "优先级,从大到小", name = "priority") + private Integer priority; + /** + * + * @return + */ + public Long getId() { + return id; + } + /** + * + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 1,业绩,2文化价值观 + * @return + */ + public Integer getType() { + return type; + } + /** + * 1,业绩,2文化价值观 + * @param type + */ + public void setType(Integer type) { + this.type = type; + } + + /** + * 目标 + * @return + */ + public String getTarget() { + return target; + } + /** + * 目标 + * @param target + */ + public void setTarget(String target) { + this.target = target; + } + + /** + * 关键结果 + * @return + */ + public String getKeyResult() { + return keyResult; + } + /** + * 关键结果 + * @param keyResult + */ + public void setKeyResult(String keyResult) { + this.keyResult = keyResult; + } + + + /** + * 考核权重 + * @return + */ + public BigDecimal getCheckWeight() { + return checkWeight; + } + /** + * 考核权重 + * @param checkWeight + */ + public void setCheckWeight(BigDecimal checkWeight) { + this.checkWeight = checkWeight; + } + + /** + * 考核结果 + * @return + */ + public String getCheckResult() { + return checkResult; + } + /** + * 考核结果 + * @param checkResult + */ + public void setCheckResult(String checkResult) { + this.checkResult = checkResult; + } + + /** + * 直属上级评分 + * @return + */ + public String getSuperScore() { + return superScore; + } + /** + * 直属上级评分 + * @param superScore + */ + public void setSuperScore(String superScore) { + this.superScore = superScore; + } + + /** + * 得分 + * @return + */ + public BigDecimal getAcquireScore() { + return acquireScore; + } + /** + * 得分 + * @param acquireScore + */ + public void setAcquireScore(BigDecimal acquireScore) { + this.acquireScore = acquireScore; + } + + /** + * 评分说明 + * @return + */ + public String getScoreComment() { + return scoreComment; + } + /** + * 评分说明 + * @param scoreComment + */ + public void setScoreComment(String scoreComment) { + this.scoreComment = scoreComment; + } + + + /** + * 优先级,从大到小 + * @return + */ + public Integer getPriority() { + return priority; + } + /** + * 优先级,从大到小 + * @param priority + */ + public void setPriority(Integer priority) { + this.priority = priority; + } + + @Override + public String toString() { + return "ResultDetailDto{" + + ",id=" + id + + ",type=" + type + + ",target=" + target + + ",keyResult=" + keyResult + + ",checkWeight=" + checkWeight + + ",checkResult=" + checkResult + + ",superScore=" + superScore + + ",acquireScore=" + acquireScore + + ",scoreComment=" + scoreComment + + ",priority=" + priority + + "}"; + } +} \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/model/ResultRecordDetailDto.java b/src/main/java/com/lz/modules/flow/model/ResultRecordDetailDto.java new file mode 100644 index 00000000..04bbeb51 --- /dev/null +++ b/src/main/java/com/lz/modules/flow/model/ResultRecordDetailDto.java @@ -0,0 +1,301 @@ +package com.lz.modules.flow.model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** +*

+*

*业绩记录表 +* @author quyixiao +* @since 2020-10-27 +*/ + +@Data +@ApiModel(value = "业绩详情Dto") +public class ResultRecordDetailDto { + // + @ApiModelProperty(value = "", name = "id") + private Long id; + + //0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回,6申述,7 流程终止 + @ApiModelProperty(value = "0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回,6申述,7 流程终止", name = "status") + private Integer status; + //最后得分 + @ApiModelProperty(value = "最后得分", name = "lastScore") + private BigDecimal lastScore; + //总分 + @ApiModelProperty(value = "总分", name = "allScore") + private BigDecimal allScore; + //备注 + @ApiModelProperty(value = "备注", name = "remark") + private String remark; + //员工id + @ApiModelProperty(value = "员工id", name = "staffId") + private Long staffId; + + //当前审批流转所在员工 id + @ApiModelProperty(value = "当前审批流转所在员工 id", name = "flowStaffIdRole") + private Long flowStaffIdRole; + //员工所在部门 id + @ApiModelProperty(value = "员工所在部门 id", name = "departmentId") + private Long departmentId; + //员工所在部门名称 + @ApiModelProperty(value = "员工所在部门名称", name = "departmentName") + private String departmentName; + //员工姓名 + @ApiModelProperty(value = "员工姓名", name = "staffName") + private String staffName; + //当前审批的员工 id + @ApiModelProperty(value = "当前审批的员工 id", name = "currentApprovalStaffId") + private Long currentApprovalStaffId; + //当前审批的员工名,以逗号隔开 + @ApiModelProperty(value = "当前审批的员工名,以逗号隔开", name = "currentApprovalStaffName") + private String currentApprovalStaffName; + //等级 + @ApiModelProperty(value = "等级", name = "scoreLevel") + private String scoreLevel; + + //当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束 + @ApiModelProperty(value = "当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束", name = "flowProcess") + private Integer flowProcess; + List recortModelDtos; + /** + * + * @return + */ + public Long getId() { + return id; + } + /** + * + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + + /** + * 0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回,6申述,7 流程终止 + * @return + */ + public Integer getStatus() { + return status; + } + /** + * 0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回,6申述,7 流程终止 + * @param status + */ + public void setStatus(Integer status) { + this.status = status; + } + + /** + * 最后得分 + * @return + */ + public BigDecimal getLastScore() { + return lastScore; + } + /** + * 最后得分 + * @param lastScore + */ + public void setLastScore(BigDecimal lastScore) { + this.lastScore = lastScore; + } + + /** + * 总分 + * @return + */ + public BigDecimal getAllScore() { + return allScore; + } + /** + * 总分 + * @param allScore + */ + public void setAllScore(BigDecimal allScore) { + this.allScore = allScore; + } + + /** + * 备注 + * @return + */ + public String getRemark() { + return remark; + } + /** + * 备注 + * @param remark + */ + public void setRemark(String remark) { + this.remark = remark; + } + + /** + * 员工id + * @return + */ + public Long getStaffId() { + return staffId; + } + /** + * 员工id + * @param staffId + */ + public void setStaffId(Long staffId) { + this.staffId = staffId; + } + + + + /** + * 当前审批流转所在员工 id + * @return + */ + public Long getFlowStaffIdRole() { + return flowStaffIdRole; + } + /** + * 当前审批流转所在员工 id + * @param flowStaffIdRole + */ + public void setFlowStaffIdRole(Long flowStaffIdRole) { + this.flowStaffIdRole = flowStaffIdRole; + } + + /** + * 员工所在部门 id + * @return + */ + public Long getDepartmentId() { + return departmentId; + } + /** + * 员工所在部门 id + * @param departmentId + */ + public void setDepartmentId(Long departmentId) { + this.departmentId = departmentId; + } + + /** + * 员工所在部门名称 + * @return + */ + public String getDepartmentName() { + return departmentName; + } + /** + * 员工所在部门名称 + * @param departmentName + */ + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + /** + * 员工姓名 + * @return + */ + public String getStaffName() { + return staffName; + } + /** + * 员工姓名 + * @param staffName + */ + public void setStaffName(String staffName) { + this.staffName = staffName; + } + + /** + * 当前审批的员工 id + * @return + */ + public Long getCurrentApprovalStaffId() { + return currentApprovalStaffId; + } + /** + * 当前审批的员工 id + * @param currentApprovalStaffId + */ + public void setCurrentApprovalStaffId(Long currentApprovalStaffId) { + this.currentApprovalStaffId = currentApprovalStaffId; + } + + /** + * 当前审批的员工名,以逗号隔开 + * @return + */ + public String getCurrentApprovalStaffName() { + return currentApprovalStaffName; + } + /** + * 当前审批的员工名,以逗号隔开 + * @param currentApprovalStaffName + */ + public void setCurrentApprovalStaffName(String currentApprovalStaffName) { + this.currentApprovalStaffName = currentApprovalStaffName; + } + + /** + * 等级 + * @return + */ + public String getScoreLevel() { + return scoreLevel; + } + /** + * 等级 + * @param scoreLevel + */ + public void setScoreLevel(String scoreLevel) { + this.scoreLevel = scoreLevel; + } + + + /** + * 当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束 + * @return + */ + public Integer getFlowProcess() { + return flowProcess; + } + /** + * 当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束 + * @param flowProcess + */ + public void setFlowProcess(Integer flowProcess) { + this.flowProcess = flowProcess; + } + + + + @Override + public String toString() { + return "ResultRecordDto{" + + ",id=" + id + + ",status=" + status + + ",lastScore=" + lastScore + + ",allScore=" + allScore + + ",remark=" + remark + + ",staffId=" + staffId + + ",flowStaffIdRole=" + flowStaffIdRole + + ",departmentId=" + departmentId + + ",departmentName=" + departmentName + + ",staffName=" + staffName + + ",currentApprovalStaffId=" + currentApprovalStaffId + + ",currentApprovalStaffName=" + currentApprovalStaffName + + ",scoreLevel=" + scoreLevel + + ",flowProcess=" + flowProcess + + "}"; + } +} \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/model/ResultRecortModelDto.java b/src/main/java/com/lz/modules/flow/model/ResultRecortModelDto.java new file mode 100644 index 00000000..efa61dad --- /dev/null +++ b/src/main/java/com/lz/modules/flow/model/ResultRecortModelDto.java @@ -0,0 +1,183 @@ +package com.lz.modules.flow.model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** +*

+*

*考核维度表 +* @author quyixiao +* @since 2020-10-19 +*/ + +@Data +@ApiModel(value = "绩效维度表Dto") +public class ResultRecortModelDto { + // + @ApiModelProperty(value = "", name = "id") + private Long id; + //维度名称 + @ApiModelProperty(value = "维度名称", name = "name") + private String name; + + //1:业绩 2:文化价值观 + @ApiModelProperty(value = "1:业绩 2:文化价值观", name = "type") + private Integer type; + //权重 0不限权重 + @ApiModelProperty(value = "权重 0不限权重", name = "weight") + private BigDecimal weight; + //考核子项目个数最大限制 + @ApiModelProperty(value = "考核子项目个数最大限制", name = "maxCount") + private Integer maxCount; + //lz_result_calculate 的id,计算法方法id + @ApiModelProperty(value = "lz_result_calculate 的id,计算法方法id", name = "calculateId") + private Long calculateId; + + //使用的哪个等级。等级组id,lz_result_grade的group_id + @ApiModelProperty(value = "使用的哪个等级。等级组id,lz_result_grade的group_id", name = "gradeGroupId") + private Long gradeGroupId; + //排序 + @ApiModelProperty(value = "排序", name = "orderBy") + private Integer orderBy; + @ApiModelProperty(value = "绩效指标", name = "detailDtos") + private List detailDtos; + /** + * + * @return + */ + public Long getId() { + return id; + } + /** + * + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 维度名称 + * @return + */ + public String getName() { + return name; + } + /** + * 维度名称 + * @param name + */ + public void setName(String name) { + this.name = name; + } + + + /** + * 1:业绩 2:文化价值观 + * @return + */ + public Integer getType() { + return type; + } + /** + * 1:业绩 2:文化价值观 + * @param type + */ + public void setType(Integer type) { + this.type = type; + } + + /** + * 权重 0不限权重 + * @return + */ + public BigDecimal getWeight() { + return weight; + } + /** + * 权重 0不限权重 + * @param weight + */ + public void setWeight(BigDecimal weight) { + this.weight = weight; + } + + /** + * 考核子项目个数最大限制 + * @return + */ + public Integer getMaxCount() { + return maxCount; + } + /** + * 考核子项目个数最大限制 + * @param maxCount + */ + public void setMaxCount(Integer maxCount) { + this.maxCount = maxCount; + } + + /** + * lz_result_calculate 的id,计算法方法id + * @return + */ + public Long getCalculateId() { + return calculateId; + } + /** + * lz_result_calculate 的id,计算法方法id + * @param calculateId + */ + public void setCalculateId(Long calculateId) { + this.calculateId = calculateId; + } + + + + /** + * 使用的哪个等级。等级组id,lz_result_grade的group_id + * @return + */ + public Long getGradeGroupId() { + return gradeGroupId; + } + /** + * 使用的哪个等级。等级组id,lz_result_grade的group_id + * @param gradeGroupId + */ + public void setGradeGroupId(Long gradeGroupId) { + this.gradeGroupId = gradeGroupId; + } + + /** + * 排序 + * @return + */ + public Integer getOrderBy() { + return orderBy; + } + /** + * 排序 + * @param orderBy + */ + public void setOrderBy(Integer orderBy) { + this.orderBy = orderBy; + } + + @Override + public String toString() { + return "ResultModel{" + + ",id=" + id + + ",name=" + name + + ",type=" + type + + ",weight=" + weight + + ",maxCount=" + maxCount + + ",calculateId=" + calculateId + + ",gradeGroupId=" + gradeGroupId + + ",orderBy=" + orderBy + + "}"; + } +} \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/EvaluationStartStaffService.java b/src/main/java/com/lz/modules/flow/service/EvaluationStartStaffService.java index f6dc6b06..73e5fb67 100644 --- a/src/main/java/com/lz/modules/flow/service/EvaluationStartStaffService.java +++ b/src/main/java/com/lz/modules/flow/service/EvaluationStartStaffService.java @@ -35,4 +35,6 @@ public interface EvaluationStartStaffService extends IService evaluationStartStaffs); EvaluationStartStaff selectOneByStartIdAndStaffId(Long startId,Long staffId); + + EvaluationStartStaff selectManagerEvaluationStartStaff(Long evaluationId, Long userId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/EvaluationStartStaffServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/EvaluationStartStaffServiceImpl.java index 9a53ed20..a0b42fc4 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/EvaluationStartStaffServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/EvaluationStartStaffServiceImpl.java @@ -93,4 +93,9 @@ public class EvaluationStartStaffServiceImpl extends ServiceImpl - select * from lz_evaluation_start_staff where startId=#{startId} AND staffId =#{staffId} and is_delete = 0 limit 1 + select * from lz_evaluation_start_staff where start_id=#{startId} AND staff_id =#{staffId} and is_delete = 0 limit 1 + + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 94d28ea8..26edba35 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -96,7 +96,7 @@ public class MysqlMain { //list.add(new TablesBean("lz_flow_chart_detail_record")); //list.add(new TablesBean("lz_flow_approval_role")); - list.add(new TablesBean("lz_result_comment")); + list.add(new TablesBean("lz_result_detail")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments(); From 0836ce27bedf950ec559bc2f4b76c61fd9aa0ee8 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 27 Oct 2020 14:58:14 +0800 Subject: [PATCH 3/5] =?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 --- .../lz/modules/app/resp/FlowDetailResp.java | 1 + .../app/impl/ResultRecordServiceImpl.java | 190 ++++++++++-------- 2 files changed, 105 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java b/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java index 80a98625..7f957050 100644 --- a/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java +++ b/src/main/java/com/lz/modules/app/resp/FlowDetailResp.java @@ -6,4 +6,5 @@ import lombok.Data; public class FlowDetailResp { private Long currentStaffId; private String staffName; + private Long flowRecordId; } 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 75c41e56..15824907 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 @@ -838,11 +838,16 @@ 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); + private R skip(ApprovalDto approvalDto) { + approvalDto.setLoginUserId(approvalDto.getCurrentStaffId()); + return newSubmit(approvalDto,FlowRecordStatusEnums.SKIP_STATUS.getStatus()); } - 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; } @@ -968,7 +897,7 @@ public class ResultRecordServiceImpl extends ServiceImpl 0) { if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了 for (FlowRecord flowRecord : flowRecords) { if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) { - flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成 + flowRecord.setStatus(finishedStatus);//当前审批己经完成 } else { flowRecord.setStatus(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus()); //其他审批 } @@ -1001,14 +933,14 @@ 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()); + flowDetailResp.setFlowRecordId(flowRecord.getId()); + flowDetailRespList.add(flowDetailResp); + } + public StaffEntity getDepartmentStaff(Long staffId, int level) { DepartManagers departManagers = staffService.findLeader( staffId, level); List staffEntities = departManagers.getManagers(); From 184cd5d8e6008654af6f97b472f38e76b24f58d6 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 27 Oct 2020 15:35:39 +0800 Subject: [PATCH 4/5] rjuq whnt --- .../controller/ResultRecordController.java | 3 +- .../com/lz/modules/app/dto/ApprovalDto.java | 2 +- .../flow/service/FlowChangeService.java | 3 ++ .../service/impl/FlowChangeServiceImpl.java | 20 +++++++++ .../app/impl/ResultRecordServiceImpl.java | 43 ++++++++++++++----- 5 files changed, 59 insertions(+), 12 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 01a8119f..b638b1d4 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -672,7 +672,8 @@ public class ResultRecordController extends AbstractController { /** * 删除 */ - // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb + // 审批:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb + // 跳过:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=4&menuName=bbb&flowRecordId=360 @RequestMapping("/new/approval") public R approval(ApprovalDto approvalDto) { try { 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 b67720ce..f2ee7562 100644 --- a/src/main/java/com/lz/modules/app/dto/ApprovalDto.java +++ b/src/main/java/com/lz/modules/app/dto/ApprovalDto.java @@ -10,5 +10,5 @@ public class ApprovalDto { private String menuName; //按钮名称 private String comment; private Long transferStaffId; // 转交员工 id - private Long currentStaffId; //当前用户 id + private Long flowRecordId;// 流程 id } diff --git a/src/main/java/com/lz/modules/flow/service/FlowChangeService.java b/src/main/java/com/lz/modules/flow/service/FlowChangeService.java index 253211e4..da1e5fb9 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowChangeService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowChangeService.java @@ -1,7 +1,9 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.flow.entity.FlowChange; +import com.lz.modules.flow.entity.FlowRecord; /** *

@@ -30,4 +32,5 @@ public interface FlowChangeService extends IService { int deleteFlowChangeById(Long id); + void saveChange(ApprovalDto approvalDto, FlowRecord flowRecord, int i); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowChangeServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowChangeServiceImpl.java index 77c2ceaa..73e5bdac 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowChangeServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowChangeServiceImpl.java @@ -1,9 +1,13 @@ package com.lz.modules.flow.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.flow.dao.FlowChangeMapper; import com.lz.modules.flow.entity.FlowChange; +import com.lz.modules.flow.entity.FlowRecord; import com.lz.modules.flow.service.FlowChangeService; +import com.lz.modules.sys.entity.app.ResultRecord; +import com.lz.modules.sys.service.app.ResultRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +28,9 @@ public class FlowChangeServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1); if(flowRecords!=null && flowRecords.size()>0){ @@ -912,7 +933,7 @@ public class ResultRecordServiceImpl extends ServiceImpl 0) { + if (flowRecords.size() > 1) { if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了 for (FlowRecord flowRecord : flowRecords) { if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) { @@ -945,9 +966,13 @@ public class ResultRecordServiceImpl extends ServiceImpl nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(), 0, nextFlowRecord.getFlowIndex()); if (CollectionUtils.isEmpty(nextFlowRecords)) { - log.info("流程己经结束2"); + log.info("流程己经结束3"); return R.ok("流程己经结束"); } FlowRecord currentFlowRecord = nextFlowRecords.get(0); @@ -964,7 +989,6 @@ public class ResultRecordServiceImpl extends ServiceImpl currentflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus()); if(currentflowRecords !=null && currentflowRecords.size() > 0 ){ @@ -1018,7 +1042,6 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId()); From 64d336dd5fd1d651306447f5ea560b9f60c1eccb Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 27 Oct 2020 15:44:42 +0800 Subject: [PATCH 5/5] =?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 --- .../lz/modules/app/controller/ResultRecordController.java | 1 + .../sys/service/app/impl/ResultRecordServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 2 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 b638b1d4..b599ed67 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -674,6 +674,7 @@ public class ResultRecordController extends AbstractController { */ // 审批:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb // 跳过:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=4&menuName=bbb&flowRecordId=360 + // 转交:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=8&menuName=bbb&flowRecordId=360&transferStaffId=294 @RequestMapping("/new/approval") public R approval(ApprovalDto approvalDto) { try { 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 633e4103..680f395f 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 @@ -889,11 +889,12 @@ public class ResultRecordServiceImpl extends ServiceImpl