diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index fb0a0920..2061cafd 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -26,6 +26,7 @@ public enum WorkMsgTypeEnum { CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"), TASK_COMMENT(13, "任务评论", "去查看", "# 任务评论\n ## @1评论了你的@2的任务"), TASK_UPDATE(14, "任务更新", "去更新", "# 任务更新\n ## 记得每天来更新任务哦"), + TASK_REPLY_COMMENT(15, "任务评论", "去查看", "# 任务评论\n ## @1在@2的任务中@的了你"), // 您的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 acd0a8b0..7304d3f5 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -752,6 +752,7 @@ public class ResultRecordController extends AbstractController { @PostMapping("/saveDetail") @ApiOperation("保存绩效详情-吴林") public R saveDetail(@RequestBody @ApiParam ResultRecordDetailDto dto) { + Long userId = getUserId(); ResultRecord resultRecord = new ResultRecord(); BeanUtils.copyProperties(dto, resultRecord); resultRecord.setAllScore(resultRecord.getLastScore()); @@ -866,7 +867,7 @@ public class ResultRecordController extends AbstractController { ) { if(taskDto.getId() != null && taskDto.getIsDelete() != null && taskDto.getIsDelete().intValue() == 1){ //删除 - resultTaskService.deleteTask(taskDto.getId()); + resultTaskService.deleteTask(taskDto.getId(),userId); }else{ ResultUpdateTaskReq taskReq = new ResultUpdateTaskReq(); taskReq.setDetailId(resultDetail.getId()); @@ -874,7 +875,7 @@ public class ResultRecordController extends AbstractController { taskReq.setName(taskDto.getName()); taskReq.setOrderBy(orderBy); taskReq.setProcessRate(BigDecimal.valueOf(taskDto.getProcessRate())); - resultTaskService.saveOrUpdateResultTask(taskReq); + resultTaskService.saveOrUpdateResultTask(taskReq,userId); orderBy++; } @@ -1005,9 +1006,9 @@ public class ResultRecordController extends AbstractController { resultComment.setOptDesc("修改了目标"); resultComment.setComment(commandValue); }else{ - resultComment.setOptDesc(resultComment.getOptDesc() + "-修改了目标"); + resultComment.setOptDesc("修改了目标-" + resultComment.getOptDesc()); - resultComment.setComment((resultComment.getComment() == null ? "" : resultComment.getComment()) + commandValue); + resultComment.setComment((resultComment.getComment() == null ? "" : (resultComment.getComment() + "\n")) + commandValue); } resultCommentService.updateResultCommentById(resultComment);//.updateResultCommentCommentById(dto.getCommentId(), commandValue); } 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 a3894c7f..e931eeca 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -693,7 +693,7 @@ public class DingtalkBusiness { public String sendTaskNoticeMsg(Long detailId, Long taskId) { ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); - logger.info("评论通知指标id{}, 任务id{}", detailId, taskId); + logger.info("评论通知指标id{}, 任务id{}, 指标信息{}", detailId, taskId, resultDetail); if(resultDetail != null){ TaskProcessRecord taskProcessRecord = null; if(taskId == null){ @@ -701,17 +701,13 @@ public class DingtalkBusiness { }else{ taskProcessRecord = taskProcessRecordService.selectCommentTaskProcessRecordByTaskId(taskId); } - StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskProcessRecord.getStaffId()); - StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); - - ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); - String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); - if(token != null && token.length() > 0){ - + if(taskProcessRecord != null) { + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); String url = homeUrl; - if(url.contains("?")){ + if (url.contains("?")) { url += "&halokit=" + System.currentTimeMillis(); - }else{ + } else { url += "?halokit=" + System.currentTimeMillis(); } url += ("&detail=1&id=" + resultDetail.getRecordId()); @@ -721,20 +717,71 @@ public class DingtalkBusiness { 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); + if (token != null && token.length() > 0) { - return "OK"; + StaffSimpleInfo fromStaffSimpleInfo = staffService.selectStaffSimpleInfo(taskProcessRecord.getStaffId()); + if (taskProcessRecord.getStaffId().longValue() != resultDetail.getId().longValue()) { + //自己评论自己的不允许给自己发消息 + StaffSimpleInfo toStaffSimpleInfo = staffService.selectStaffSimpleInfo(resultDetail.getStaffId()); + 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); + + } + if(taskProcessRecord.getAtStaffIds().length() > 0){ + //@的人员 + List ids = Arrays.stream(taskProcessRecord.getAtStaffIds().split(",")) + .map(new Function() { + @Override + public Long apply(String s) { + return Long.parseLong(s); + } + }).collect(Collectors.toList()); + List staffEntities = staffService.selectByIds(ids); + logger.info("评论推送人员个数{}", staffEntities.size()); + String content = WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent().replace("@1", fromStaffSimpleInfo.getName()); + content = content.replace("@2", "“" + resultDetail.getTarget() + "”"); + logger.info("通知内容{},url{}", content, url); + String userIds = ""; + int m = 0; + for (int i = 0; i < staffEntities.size(); i++) { + StaffEntity staff = staffEntities.get(i); + userIds += (staff.getEmployeeId() + ","); + if(m >= 99 || i == staffEntities.size() - 1){ + //发送消息 + StaffEntity info = new StaffEntity(); + info.setId(0L); + info.setEmployeeId(userIds); + logger.info("推送的人员信息{}", info); + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), + WorkMsgTypeEnum.TASK_REPLY_COMMENT.getContent(), WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); + m = 0; + userIds = ""; + continue; + } + m++; + } + /*for (StaffEntity info:staffEntities + ) { + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), + content, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); + }*/ + + } + return "OK"; + }else { + return "token无效"; + } }else{ - return "token无效"; + logger.info("任务不存在"); } + } return "OK"; } diff --git a/src/main/java/com/lz/modules/job/service/impl/ScheduleJobServiceImpl.java b/src/main/java/com/lz/modules/job/service/impl/ScheduleJobServiceImpl.java index b4633631..6d33f1d1 100644 --- a/src/main/java/com/lz/modules/job/service/impl/ScheduleJobServiceImpl.java +++ b/src/main/java/com/lz/modules/job/service/impl/ScheduleJobServiceImpl.java @@ -43,7 +43,7 @@ public class ScheduleJobServiceImpl extends ServiceImpl0){ - return R.ok(); - } - return R.error(); + Long userId = getUserId(); + return resultTaskService.saveOrUpdateResultTask(req,userId); } @@ -67,7 +65,7 @@ public class ResultTaskController { @ApiOperation("任务删除") @ApiResponses({@ApiResponse(code = 200,message = "成功")}) public R deleteTask(Long taskId){ - resultTaskService.deleteTask(taskId); - return R.ok(); + Long userId = getUserId(); + return resultTaskService.deleteTask(taskId,userId); } } diff --git a/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java b/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java index c8c5a454..b4164503 100644 --- a/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java +++ b/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java @@ -35,6 +35,8 @@ public interface ResultTaskMapper extends BaseMapper { List selectResultTaskDtosByDetailId(@Param("detailId") Long detailId); + List selectAllResultTaskDtosByDetailId(@Param("detailId") Long detailId); + List selectResultTasksByDetailId(@Param("detailId") Long detailId); int deleteResultTasksByDetailId(Long detailId); diff --git a/src/main/java/com/lz/modules/performance/dto/TaskProcessRecordDto.java b/src/main/java/com/lz/modules/performance/dto/TaskProcessRecordDto.java index 84d88c14..f23f05a1 100644 --- a/src/main/java/com/lz/modules/performance/dto/TaskProcessRecordDto.java +++ b/src/main/java/com/lz/modules/performance/dto/TaskProcessRecordDto.java @@ -35,9 +35,16 @@ public class TaskProcessRecordDto { @ApiModelProperty(value = "类型", name = "描述") private String typeDesc; //操作标签 - @ApiModelProperty(value = "任务名称", name = "name") - private String name; + @ApiModelProperty(value = "任务名称", name = "taskName") + private String taskName; //1,修改名称,2修改进度 ,3名称和进度都修改 @ApiModelProperty(value = "0表示记录,不传全部", name = "useType") private Integer useType; + //1,修改名称,2修改进度 ,3名称和进度都修改 + @ApiModelProperty(value = "职位", name = "position") + private String position; + + private Long taskId; + + private Long detailId; } 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 6993f557..accbcabb 100644 --- a/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java +++ b/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java @@ -6,11 +6,15 @@ package com.lz.modules.performance.enums; * @Date: 2020/12/9 14:08 */ public enum ProcessRecordEnum { - NAME(1,"更新了名称"), + NAME(1,"修改名称"), PROCESS(2,"更新了进度"), - ALL(3,"更新了名称和进度"), - ADD(4,"增加了任务"), - DELETE(5,"删除了任务"), + NAME_PROCESS(3,"更新了名称和进度"), + REMARK(4,"修改进度说明"), + NAME_REMARK(5,"修改了名称和进度说明"), + PROCESS_REMARK(6,"修改了进度和进度说明"), + ALL(7,"都修改"), + ADD(8,"新增"), + DELETE(9,"删除"), ; 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 df5cb889..ca0da54d 100644 --- a/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java +++ b/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java @@ -25,8 +25,8 @@ public class ResultUpdateTaskReq { @ApiModelProperty(value = "任务的当前进度", name = "processRate") private BigDecimal processRate; //更新说明 - @ApiModelProperty(value = "更新说明", name = "remake") - private String remake; + @ApiModelProperty(value = "更新说明", name = "remark") + private String remark; //排序由小到大 @ApiModelProperty(value = "排序由小到大", name = "orderBy") private Integer orderBy; 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 ff9d59e8..fac9a234 100644 --- a/src/main/java/com/lz/modules/performance/service/ResultTaskService.java +++ b/src/main/java/com/lz/modules/performance/service/ResultTaskService.java @@ -1,6 +1,7 @@ package com.lz.modules.performance.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.lz.common.utils.R; import com.lz.modules.performance.dto.ResultTaskDto; import com.lz.modules.performance.entity.ResultTask; import com.lz.modules.performance.req.ResultUpdateTaskReq; @@ -36,14 +37,14 @@ public interface ResultTaskService extends IService { ResultTaskDetailRes taskDetail(Long detailId); - int saveOrUpdateResultTask(ResultUpdateTaskReq req); + R saveOrUpdateResultTask(ResultUpdateTaskReq req, Long userId); int deleteResultTasksByDetailId(Long detailId); List selectResultTasksByDetailId(Long detailId); - void deleteTask(Long taskId); + R deleteTask(Long taskId,Long userId); List selectResultTaskDtosByDetailId(Long detailId); } \ 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 9c7b89e1..277421e0 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,6 +2,8 @@ package com.lz.modules.performance.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.common.utils.BigDecimalUtil; +import com.lz.common.utils.R; +import com.lz.common.utils.StringUtil; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.service.StaffService; import com.lz.modules.performance.dao.ResultTaskMapper; @@ -19,6 +21,7 @@ import com.lz.modules.sys.entity.app.ResultDetail; import com.lz.modules.sys.service.app.ResultDetailService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -122,27 +125,40 @@ public class ResultTaskServiceImpl extends ServiceImpl selectResultTaskDtosByDetailId(Long detailId){ return resultTaskMapper.selectResultTaskDtosByDetailId(detailId); } + } diff --git a/src/main/java/com/lz/modules/performance/service/impl/TaskProcessRecordServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/TaskProcessRecordServiceImpl.java index b5f89af7..92236da7 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/TaskProcessRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/TaskProcessRecordServiceImpl.java @@ -5,8 +5,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.lz.common.utils.PageUtils; import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.entity.StaffOccupationEntity; import com.lz.modules.app.model.TaskModel; +import com.lz.modules.app.service.StaffOccupationService; 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; @@ -53,6 +56,10 @@ public class TaskProcessRecordServiceImpl extends ServiceImpl resultTaskDtos = resultTaskService.selectResultTaskDtosByDetailId(req.getDetailId()); + List resultTaskDtos = resultTaskMapper.selectAllResultTaskDtosByDetailId(detailId); if(CollectionUtils.isNotEmpty(resultTaskDtos)){ List collect = resultTaskDtos.stream().map(resultTaskDto -> resultTaskDto.getId()).collect(Collectors.toList()); pageUtils = PageUtils.startPage(req.getCurrPage(),req.getPageSize()).doSelect( @@ -106,26 +113,32 @@ public class TaskProcessRecordServiceImpl extends ServiceImpl taskProcessRecordMapper.selectTaskProcessRecordsByTaskId(page, req.getTaskId(),req.getUseType()) + page -> taskProcessRecordMapper.selectTaskProcessRecordsByTaskId(page, taskId,req.getUseType()) ); } List list = pageUtils.getList(); if(CollectionUtils.isNotEmpty(list)){ - + List dtos = list; if(detailId == null){ - ResultTask resultTask = resultTaskService.selectResultTaskById(taskId); - detailId = resultTask.getDetailId(); + detailId = dtos.get(0).getDetailId(); } ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId); StaffEntity staffEntity = staffService.selectStaffById(resultDetail.getStaffId()); - List dtos = list; + StaffOccupationEntity staffOccupationByStaffId = staffOccupationService.getStaffOccupationByStaffId(resultDetail.getStaffId()); + + for(TaskProcessRecordDto dto:dtos){ - dto.setTypeDesc(ProcessRecordEnum.findByType(dto.getType()).getDesc()); + ResultTask resultTask = resultTaskService.selectResultTaskById(dto.getTaskId()); + Optional.ofNullable(resultTask).ifPresent(resultTask1 -> dto.setTaskName(resultTask1.getName())); + if(dto.getUseType()==0){ + dto.setTypeDesc(ProcessRecordEnum.findByType(dto.getType()).getDesc()); + } Optional.ofNullable(staffEntity).ifPresent(staffEntity1 -> { dto.setAvatar(staffEntity1.getAvatar()); dto.setStaffName(staffEntity1.getName()); }); + Optional.ofNullable(staffOccupationByStaffId).ifPresent(staffOccupationEntity -> dto.setPosition(staffOccupationEntity.getPosition())); } diff --git a/src/main/resources/mapper/performance/ResultTaskMapper.xml b/src/main/resources/mapper/performance/ResultTaskMapper.xml index 95ebb1e9..fcc82271 100644 --- a/src/main/resources/mapper/performance/ResultTaskMapper.xml +++ b/src/main/resources/mapper/performance/ResultTaskMapper.xml @@ -95,5 +95,9 @@ + + diff --git a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml index 91df1ed4..d2ec9871 100644 --- a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml +++ b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml @@ -131,7 +131,7 @@ - select gmt_create,remark,label,type from lz_task_process_record where is_delete = 0 + select gmt_create,remark,label,type,use_type,task_id,detail_id from lz_task_process_record where is_delete = 0 and use_type = #{useType} @@ -165,8 +165,6 @@ select * from lz_task_process_record where is_delete = 0 and (detail_id = #{taskModel.detailId} or task_id=#{taskModel.taskId} ) and use_type=#{taskModel.useType} order by id desc -<<<<<<< HEAD -======= @@ -175,6 +173,5 @@ select * from lz_task_process_record where task_id=#{taskId} and is_delete = 0 and use_type=1 order by id desc limit 1 ->>>>>>> 0759c9bb2ac2d85becab14db3150110f2bf20e63 diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index ff99a668..5d7c5b5a 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -69,6 +69,7 @@ public class MysqlMain { + String path = ResourceUtils.getURL("classpath:").getPath(); System.out.println(path); String dir = null;