diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index 0f94627a..fb0a0920 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -24,6 +24,8 @@ public enum WorkMsgTypeEnum { SKIP(10, "绩效跳过", "跳过", "# @的绩效\n ## 己经跳过"), TRANSFER(11, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), + TASK_COMMENT(13, "任务评论", "去查看", "# 任务评论\n ## @1评论了你的@2的任务"), + TASK_UPDATE(14, "任务更新", "去更新", "# 任务更新\n ## 记得每天来更新任务哦"), // 您的2020年10月绩效考核已经开始,请尽快制定绩效目标 // 吴林的2020年12月绩效考核的目标需要您确认,点击前往确认 ; 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 878206c1..acd0a8b0 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -633,9 +633,6 @@ public class ResultRecordController extends AbstractController { resultRecordDetailDto.setRecortModelDtos(resultRecortModelDtos); return R.ok().put("data", resultRecordDetailDto); - - - } //目前支持已生成对象的。不支持当前非对象表中的数据,如果要使用请用常量值 @@ -873,10 +870,10 @@ public class ResultRecordController extends AbstractController { }else{ ResultUpdateTaskReq taskReq = new ResultUpdateTaskReq(); taskReq.setDetailId(resultDetail.getId()); - taskReq.setTasklId(taskDto.getId()); + taskReq.setTaskId(taskDto.getId()); taskReq.setName(taskDto.getName()); taskReq.setOrderBy(orderBy); - taskReq.setProcessRate(taskDto.getProcessRate()); + taskReq.setProcessRate(BigDecimal.valueOf(taskDto.getProcessRate())); resultTaskService.saveOrUpdateResultTask(taskReq); orderBy++; } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 03c8ced1..3fc77f65 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -29,9 +29,15 @@ import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.FlowStartService; import com.lz.modules.job.model.responseBo.DepartmentInfosBo; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; +import com.lz.modules.performance.entity.ResultTask; +import com.lz.modules.performance.entity.TaskComment; +import com.lz.modules.performance.service.ResultTaskService; +import com.lz.modules.performance.service.TaskCommentService; import com.lz.modules.sys.dao.SysUserTokenDao; import com.lz.modules.sys.entity.SysUserTokenEntity; +import com.lz.modules.sys.entity.app.ResultDetail; import com.lz.modules.sys.entity.app.ResultRecord; +import com.lz.modules.sys.service.app.ResultDetailService; import com.lz.modules.sys.service.app.ResultRecordService; import com.lz.modules.third.entity.ThirdAppConfig; import com.lz.modules.third.entity.ThirdMsgSendRecord; @@ -101,6 +107,15 @@ public class DingtalkBusiness { @Autowired private ThirdMsgSendRecordService thirdMsgSendRecordService; + @Autowired + private ResultDetailService resultDetailService; + + @Autowired + private ResultTaskService resultTaskService; + + @Autowired + private TaskCommentService taskCommentService; + @Resource StaffDao staffDao; @@ -645,8 +660,91 @@ public class DingtalkBusiness { return "error"; } - public String sendTaskNoticeMsg(Long detailId, Long taskId) { + public String sendTaskInputMsg(List staffs){ + int m = 0; + String userIds = ""; + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url = URLEncoder.encode(url); + + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + + for (int i = 0; i < staffs.size(); i++) { + StaffEntity staff = staffs.get(i); + userIds += (staff.getEmployeeId() + ","); + if(m >= 99 || i == staffs.size() - 1){ + //发送消息 + StaffEntity info = new StaffEntity(); + info.setId(0L); + info.setEmployeeId(userIds); + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_UPDATE.getTitle(), + WorkMsgTypeEnum.TASK_UPDATE.getContent(), WorkMsgTypeEnum.TASK_UPDATE.getBtnText(), url, token); + m = 0; + userIds = ""; + continue; + } + m++; + } + } + + return "OK"; + } + + public String sendTaskNoticeMsg(Long detailId, Long taskId) { + ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); + logger.info("评论通知指标id{}, 任务id{}", detailId, taskId); + if(resultDetail != null){ + TaskComment taskComment = null; + if(taskId == null){ + taskComment = taskCommentService.selectTaskCommentByDetailId(detailId); + }else{ + taskComment = taskCommentService.selectTaskCommentByTaskId(taskId); + } + StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskComment.getStaffId()); + StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); + + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url += ("&detail=1&id=" + resultDetail.getRecordId()); + url = URLEncoder.encode(url); + + + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + StaffEntity info = new StaffEntity(); + info.setId(toStaffSimpleInfo.getId()); + info.setEmployeeId(toStaffSimpleInfo.getEmployeeId()); + String content = WorkMsgTypeEnum.TASK_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); + content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); + logger.info("通知内容{},url{}", content, url); + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_COMMENT.getTitle(), + content, WorkMsgTypeEnum.TASK_COMMENT.getBtnText(), url, token); + + return "OK"; + + }else{ + return "token无效"; + } + } return "OK"; } public String sendNoticeMsg(ResultRecord lzResultRecord, List staffs) { diff --git a/src/main/java/com/lz/modules/job/task/ResultTaskNoticJob.java b/src/main/java/com/lz/modules/job/task/ResultTaskNoticJob.java new file mode 100644 index 00000000..ab160bab --- /dev/null +++ b/src/main/java/com/lz/modules/job/task/ResultTaskNoticJob.java @@ -0,0 +1,46 @@ +package com.lz.modules.job.task; + +import com.google.common.collect.Lists; +import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.service.StaffService; +import com.lz.modules.job.business.DingtalkBusiness; +import com.lz.modules.performance.enums.ResultFlowProcessEnum; +import com.lz.modules.sys.service.app.ResultRecordService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: djc + * @Desc: + * @Date: 2020/12/10 10:26 + */ + +@Component("resultTaskNoticJob") +public class ResultTaskNoticJob implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + DingtalkBusiness dingtalkBusiness; + @Autowired + private ResultRecordService resultRecordService; + @Autowired + private StaffService staffService; + + static final List process = Lists.newArrayList(ResultFlowProcessEnum.TARGET.getStatus(), ResultFlowProcessEnum.CONFIRM.getStatus(), + ResultFlowProcessEnum.DO.getStatus(), ResultFlowProcessEnum.WRITE.getStatus()); + + @Override + public void run(String params) { + + List ids = resultRecordService.selectStaffIdsByFlowProcess(process); + List staffEntities = staffService.selectByIds(ids); + String res = dingtalkBusiness.sendTaskInputMsg(staffEntities); + logger.info("绩效任务填写通知响应:" + res); + + } +} diff --git a/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java b/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java index b0f3cb53..33ab6f1b 100644 --- a/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java +++ b/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java @@ -2,6 +2,7 @@ package com.lz.modules.performance.controller; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.performance.dto.TaskProcessRecordDto; import com.lz.modules.performance.entity.TaskProcessRecord; import com.lz.modules.performance.req.ChangeTaskListReq; import com.lz.modules.performance.req.ResultUpdateTaskReq; @@ -56,8 +57,8 @@ public class ResultTaskController { @PostMapping("/result/changeTaskList") @ApiOperation("任务变更记录") - @ApiResponses({@ApiResponse(code = 200,message = "成功")}) - public R changeTaskList(ChangeTaskListReq req){ + @ApiResponses({@ApiResponse(code = 200,message = "成功",response = TaskProcessRecordDto.class)}) + public R changeTaskList(@RequestBody ChangeTaskListReq req){ PageUtils pageUtils = taskProcessRecordService.selectTaskProcessRecordsByTaskId(req); return R.ok().put("data",pageUtils); } diff --git a/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java b/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java index 0d7850d4..794b55d5 100644 --- a/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java +++ b/src/main/java/com/lz/modules/performance/dao/TaskCommentMapper.java @@ -38,4 +38,8 @@ public interface TaskCommentMapper extends BaseMapper { int deleteTaskCommensByTaskId(@Param("taskId") Long taskId); List selectByCondition(@Param("page") IPage page, @Param("taskModel") TaskModel taskModel); + + TaskComment selectTaskCommentByTaskId(Long taskId); + + TaskComment selectTaskCommentByDetailId(Long detailId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/dao/TaskProcessRecordMapper.java b/src/main/java/com/lz/modules/performance/dao/TaskProcessRecordMapper.java index c3c3d184..a1b969fb 100644 --- a/src/main/java/com/lz/modules/performance/dao/TaskProcessRecordMapper.java +++ b/src/main/java/com/lz/modules/performance/dao/TaskProcessRecordMapper.java @@ -33,4 +33,9 @@ public interface TaskProcessRecordMapper extends BaseMapper { List selectTaskProcessRecordsByTaskId(@Param("page") IPage page, @Param("taskId") Long taskId); int deleteTaskProcessRecordsByTaskId(@Param("taskId") Long taskId); + + TaskProcessRecordDto selectTaskProcessRecordLastByTaskId(@Param("taskId") Long taskId); + + List selectTaskProcessRecordsByTaskIds(@Param("page") IPage page, @Param("taskIds") List taskIds); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/dto/ResultTaskDto.java b/src/main/java/com/lz/modules/performance/dto/ResultTaskDto.java index 636e619f..a27cf643 100644 --- a/src/main/java/com/lz/modules/performance/dto/ResultTaskDto.java +++ b/src/main/java/com/lz/modules/performance/dto/ResultTaskDto.java @@ -28,44 +28,14 @@ public class ResultTaskDto { private String name; //任务的当前进度 @ApiModelProperty(value = "任务的当前进度", name = "processRate") - private BigDecimal processRate; - /** - * 任务名称 - * @return - */ - public String getName() { - return name; - } - /** - * 任务名称 - * @param name - */ - public void setName(String name) { - this.name = name; - } - - - - /** - * 任务的当前进度 - * @return - */ - public BigDecimal getProcessRate() { - return processRate; - } - /** - * 任务的当前进度 - * @param processRate - */ - public void setProcessRate(BigDecimal processRate) { - this.processRate = processRate; - } - - @Override - public String toString() { - return "ResultTaskDto{" + - "name='" + name + '\'' + - ", processRate=" + processRate + - '}'; - } + private Double processRate; + //头像 + @ApiModelProperty(value = "头像", name = "avatar") + private String avatar; + //姓名 + @ApiModelProperty(value = "姓名", name = "staffName") + private String staffName; + //标签 + @ApiModelProperty(value = "标签", name = "label") + private String label; } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java b/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java index efeaa3b3..6993f557 100644 --- a/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java +++ b/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java @@ -6,14 +6,23 @@ package com.lz.modules.performance.enums; * @Date: 2020/12/9 14:08 */ public enum ProcessRecordEnum { - NAME(1,"修改名称"), - PROCESS(2,"修改进度"), - ALL(3,"全部修改"), - ADD(4,"增加"), - DELETE(5,"删除"), + NAME(1,"更新了名称"), + PROCESS(2,"更新了进度"), + ALL(3,"更新了名称和进度"), + ADD(4,"增加了任务"), + DELETE(5,"删除了任务"), ; + public static ProcessRecordEnum findByType(int type){ + for(ProcessRecordEnum recordEnum:ProcessRecordEnum.values()){ + if(type == recordEnum.getType()){ + return recordEnum; + } + } + return null; + + } private int type; private String desc; diff --git a/src/main/java/com/lz/modules/performance/req/ChangeTaskListReq.java b/src/main/java/com/lz/modules/performance/req/ChangeTaskListReq.java index 278f1a1a..8a50ea22 100644 --- a/src/main/java/com/lz/modules/performance/req/ChangeTaskListReq.java +++ b/src/main/java/com/lz/modules/performance/req/ChangeTaskListReq.java @@ -15,6 +15,9 @@ import lombok.Data; @ApiModel("任务变更记录") public class ChangeTaskListReq extends BasePage { - @ApiModelProperty(value="任务id",name = "taskId") + @ApiModelProperty(value="任务id(二选一)",name = "taskId") private Long taskId; + + @ApiModelProperty(value="详情id(二选一)",name = "detailId") + private Long detailId; } diff --git a/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java b/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java index 5bf9d423..df5cb889 100644 --- a/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java +++ b/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java @@ -16,8 +16,8 @@ public class ResultUpdateTaskReq { @ApiModelProperty(value = "绩效详情id(如果任务id为空,必传)", name = "detailId") private Long detailId; //任务id - @ApiModelProperty(value = "任务id", name = "tasklId") - private Long tasklId; + @ApiModelProperty(value = "任务id", name = "taskId") + private Long taskId; //任务名称 @ApiModelProperty(value = "任务名称", name = "name") private String name; diff --git a/src/main/java/com/lz/modules/performance/res/ResultTaskDetailRes.java b/src/main/java/com/lz/modules/performance/res/ResultTaskDetailRes.java index 0fb34a09..5e9feef0 100644 --- a/src/main/java/com/lz/modules/performance/res/ResultTaskDetailRes.java +++ b/src/main/java/com/lz/modules/performance/res/ResultTaskDetailRes.java @@ -28,4 +28,5 @@ public class ResultTaskDetailRes { //任务列表 @ApiModelProperty(value = "集体进度", name = "resultTasks") private List resultTasks; + } diff --git a/src/main/java/com/lz/modules/performance/service/ResultTaskService.java b/src/main/java/com/lz/modules/performance/service/ResultTaskService.java index 92b0cb1b..ff9d59e8 100644 --- a/src/main/java/com/lz/modules/performance/service/ResultTaskService.java +++ b/src/main/java/com/lz/modules/performance/service/ResultTaskService.java @@ -44,5 +44,6 @@ public interface ResultTaskService extends IService { List selectResultTasksByDetailId(Long detailId); void deleteTask(Long taskId); + List selectResultTaskDtosByDetailId(Long detailId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/service/TaskCommentService.java b/src/main/java/com/lz/modules/performance/service/TaskCommentService.java index aeb55671..a6e4a0dd 100644 --- a/src/main/java/com/lz/modules/performance/service/TaskCommentService.java +++ b/src/main/java/com/lz/modules/performance/service/TaskCommentService.java @@ -31,4 +31,8 @@ public interface TaskCommentService extends IService { int deleteTaskCommensByTaskId(Long taskId); + + TaskComment selectTaskCommentByDetailId(Long detailId); + + TaskComment selectTaskCommentByTaskId(Long taskId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/service/impl/ResultTaskServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/ResultTaskServiceImpl.java index f142c315..83b9e5db 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/ResultTaskServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/ResultTaskServiceImpl.java @@ -2,8 +2,12 @@ package com.lz.modules.performance.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.common.utils.BigDecimalUtil; +import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.service.StaffService; import com.lz.modules.performance.dao.ResultTaskMapper; +import com.lz.modules.performance.dao.TaskProcessRecordMapper; import com.lz.modules.performance.dto.ResultTaskDto; +import com.lz.modules.performance.dto.TaskProcessRecordDto; import com.lz.modules.performance.entity.ResultTask; import com.lz.modules.performance.entity.TaskProcessRecord; import com.lz.modules.performance.enums.ProcessRecordEnum; @@ -24,6 +28,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; /** *

@@ -47,6 +52,10 @@ public class ResultTaskServiceImpl extends ServiceImpl { - res.setProcessRate(resultDetail1.getProcessRate()); - res.setTarget(resultDetail1.getTarget()); - }); + if(resultDetail != null){ + res.setProcessRate(resultDetail.getProcessRate()); + res.setTarget(resultDetail.getTarget()); + Long staffId = resultDetail.getStaffId(); + staffEntity = staffService.selectStaffById(staffId); + } List resultTasks = resultTaskMapper.selectResultTaskDtosByDetailId(detailId); + + //获取最近更新记录 + if(CollectionUtils.isNotEmpty(resultTasks)){ + StaffEntity finalStaffEntity = staffEntity; + resultTasks.forEach(resultTaskDto -> { + TaskProcessRecordDto taskProcessRecordDto = taskProcessRecordMapper.selectTaskProcessRecordLastByTaskId(resultTaskDto.getId()); + if(taskProcessRecordDto != null){ + ProcessRecordEnum byType = ProcessRecordEnum.findByType(taskProcessRecordDto.getType()); + Optional.ofNullable(byType).ifPresent(processRecordEnum -> resultTaskDto.setLabel(byType.getDesc())); + if(finalStaffEntity !=null){ + resultTaskDto.setAvatar(finalStaffEntity.getAvatar()); + resultTaskDto.setStaffName(finalStaffEntity.getName()); + } + } + + }); + } res.setResultTasks(resultTasks); return res; } @Override public int saveOrUpdateResultTask(ResultUpdateTaskReq req) { - Long tasklId = req.getTasklId(); + Long tasklId = req.getTaskId(); Long detailId = req.getDetailId(); if(tasklId == null && detailId == null){ log.error("任务保存或更新失败:tasklId, detailId都为空"); @@ -117,33 +146,40 @@ public class ResultTaskServiceImpl extends ServiceImpl resultTaskDtos = resultTaskMapper.selectResultTaskDtosByDetailId(detailId); if(CollectionUtils.isEmpty(resultTaskDtos)){ log.info("未找到该绩效详情下得任务信息"); - return BigDecimal.ZERO; + return 0d; } int size = resultTaskDtos.size(); - BigDecimal rate = BigDecimal.ZERO; + Double rate = 0d; for(ResultTaskDto dto:resultTaskDtos){ rate = BigDecimalUtil.add(rate,dto.getProcessRate()); } - return BigDecimalUtil.divide(rate,BigDecimal.valueOf(size)).setScale(2); + double result = BigDecimalUtil.div(rate, size, 4); + return result; } @@ -154,16 +190,16 @@ public class ResultTaskServiceImpl extends ServiceImpl selectResultTasksByDetailId(Long detailId){ return resultTaskMapper.selectResultTasksByDetailId(detailId); @@ -205,6 +243,10 @@ public class ResultTaskServiceImpl extends ServiceImpl @@ -81,19 +86,41 @@ public class TaskProcessRecordServiceImpl extends ServiceImpl taskProcessRecordMapper.selectTaskProcessRecordsByTaskId(page, req.getTaskId()) - ); + Long taskId = req.getTaskId(); + Long detailId = req.getDetailId(); + PageUtils pageUtils = new PageUtils(); + if(detailId!=null){ + List resultTaskDtos = resultTaskService.selectResultTaskDtosByDetailId(req.getDetailId()); + if(CollectionUtils.isNotEmpty(resultTaskDtos)){ + List collect = resultTaskDtos.stream().map(resultTaskDto -> resultTaskDto.getId()).collect(Collectors.toList()); + pageUtils = PageUtils.startPage(req.getCurrPage(),req.getPageSize()).doSelect( + page -> taskProcessRecordMapper.selectTaskProcessRecordsByTaskIds(page, collect) + ); + } + + } + else { + pageUtils = PageUtils.startPage(req.getCurrPage(),req.getPageSize()).doSelect( + page -> taskProcessRecordMapper.selectTaskProcessRecordsByTaskId(page, req.getTaskId()) + ); + } + List list = pageUtils.getList(); if(CollectionUtils.isNotEmpty(list)){ - Long taskId = req.getTaskId(); - ResultTask resultTask = resultTaskService.selectResultTaskById(taskId); - ResultDetail resultDetail = resultDetailService.selectResultDetailById(resultTask.getDetailId()); + + if(detailId == null){ + ResultTask resultTask = resultTaskService.selectResultTaskById(taskId); + detailId = resultTask.getDetailId(); + } + ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); StaffEntity staffEntity = staffService.selectStaffById(resultDetail.getStaffId()); List dtos = list; for(TaskProcessRecordDto dto:dtos){ - dto.setAvatar(staffEntity.getAvatar()); - dto.setStaffName(staffEntity.getName()); + Optional.ofNullable(staffEntity).ifPresent(staffEntity1 -> { + dto.setAvatar(staffEntity1.getAvatar()); + dto.setStaffName(staffEntity1.getName()); + }); + } } 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 316791c8..ea4c2003 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 @@ -112,5 +112,6 @@ public interface ResultRecordMapper extends BaseMapper { List selectLevelDetailList(@Param("departmentIds") List departmentIds, @Param("startId")Long startId, @Param("scoreLevel")String scoreLevel); + List selectStaffIdsByFlowProcess(@Param("flowProcess") List flowProcess); } \ 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 5b568912..b0700c9a 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 @@ -131,4 +131,6 @@ public interface ResultRecordService extends IService { R resetData(Long recordId, int clearFlag); + List selectStaffIdsByFlowProcess(List flowProcess); + } \ 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 972a107c..67472279 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 @@ -1506,4 +1506,10 @@ public class ResultRecordServiceImpl extends ServiceImpl selectStaffIdsByFlowProcess(List flowProcess) { + return resultRecordMapper.selectStaffIdsByFlowProcess(flowProcess); + } } diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 0f15ce89..9f6dbab2 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -643,5 +643,15 @@ ORDER BY all_score desc + + + diff --git a/src/main/resources/mapper/performance/ResultTaskMapper.xml b/src/main/resources/mapper/performance/ResultTaskMapper.xml index 5b94ecd5..95ebb1e9 100644 --- a/src/main/resources/mapper/performance/ResultTaskMapper.xml +++ b/src/main/resources/mapper/performance/ResultTaskMapper.xml @@ -85,7 +85,7 @@ @@ -93,7 +93,7 @@ diff --git a/src/main/resources/mapper/performance/TaskCommentMapper.xml b/src/main/resources/mapper/performance/TaskCommentMapper.xml index 67159b7c..faf001d6 100644 --- a/src/main/resources/mapper/performance/TaskCommentMapper.xml +++ b/src/main/resources/mapper/performance/TaskCommentMapper.xml @@ -111,5 +111,13 @@ update lz_task_comment set is_delete = 1 where task_id=#{taskId} + + + + diff --git a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml index 99dc1195..fbecc074 100644 --- a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml +++ b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml @@ -136,7 +136,20 @@ update lz_task_process_record set is_delete = 1 where task_id=#{taskId} + + +