From 0920ae649f0cc376e7ea8045db722a4034edb3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Wed, 4 Nov 2020 16:00:58 +0800 Subject: [PATCH] fix --- .../flow/dao/EvaluationGroupMapper.java | 2 + .../modules/flow/entity/EvaluationGroup.java | 22 +++++++++ .../impl/EvaluationGroupServiceImpl.java | 3 +- .../performance/dto/ToScoreDingTalkDto.java | 16 +++++++ .../impl/AssessManagerServiceImpl.java | 46 +++++++++++++++---- .../sys/dao/app/ResultRecordMapper.java | 4 +- .../mapper/app/ResultRecordMapper.xml | 4 +- .../mapper/flow/EvaluationGroupMapper.xml | 15 ++++-- .../mapper/flow/FlowRecordMapper.xml | 2 + src/test/java/com/lz/mysql/MysqlMain.java | 2 +- 10 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/lz/modules/performance/dto/ToScoreDingTalkDto.java diff --git a/src/main/java/com/lz/modules/flow/dao/EvaluationGroupMapper.java b/src/main/java/com/lz/modules/flow/dao/EvaluationGroupMapper.java index 52a2fe34..c99522e2 100644 --- a/src/main/java/com/lz/modules/flow/dao/EvaluationGroupMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/EvaluationGroupMapper.java @@ -47,4 +47,6 @@ public interface EvaluationGroupMapper extends BaseMapper { List selectIdsByCopyIds(@Param("copyIds")String copyIds); + EvaluationGroup selectEvaluationGroupByCopyId(@Param("copyId")String copyId); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java b/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java index 5368756b..c753c307 100644 --- a/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java +++ b/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java @@ -52,6 +52,10 @@ public class EvaluationGroup implements java.io.Serializable { @ApiModelProperty(value = "本记录被拷贝的id,每次发起绩效备份一份copy_id表示被复制的那份id。发起后所有相关逻辑表使用的是拷贝后新生成的ID。绩效考核流程中,如果原考评组有人员变动,该拷贝也将变动", name = "copyId") private Long copyId; + //发起任务id + @ApiModelProperty(value = "发起任务id", name = "startId") + private Long startId; + @TableField(exist = false) @ApiModelProperty(value = "参与考核人数", name = "counts") private int counts; @@ -200,6 +204,23 @@ public class EvaluationGroup implements java.io.Serializable { this.outIds = outIds; } + + /** + * 发起任务id + * @return + */ + public Long getStartId() { + return startId; + } + /** + * 发起任务id + * @param startId + */ + public void setStartId(Long startId) { + this.startId = startId; + } + + @Override public String toString() { return "EvaluationGroup{" + @@ -213,6 +234,7 @@ public class EvaluationGroup implements java.io.Serializable { ",staffIds=" + staffIds + ",outIds=" + outIds + ",copyId=" + copyId + + ",startId=" + startId + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java index 5fc52962..d3e63028 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java @@ -135,7 +135,8 @@ public class EvaluationGroupServiceImpl extends ServiceImpl0){ group.setScore(1); } diff --git a/src/main/java/com/lz/modules/performance/dto/ToScoreDingTalkDto.java b/src/main/java/com/lz/modules/performance/dto/ToScoreDingTalkDto.java new file mode 100644 index 00000000..ecd8ff1c --- /dev/null +++ b/src/main/java/com/lz/modules/performance/dto/ToScoreDingTalkDto.java @@ -0,0 +1,16 @@ +package com.lz.modules.performance.dto; + +import lombok.Data; + +/** + * @Author: djc + * @Desc: + * @Date: 2020/11/4 11:38 + */ +@Data +public class ToScoreDingTalkDto { + + private Long id; + + private Long staffId; +} diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java index dd59f084..892727a9 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java @@ -3,6 +3,7 @@ package com.lz.modules.performance.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Maps; +import com.lz.common.emun.WorkMsgTypeEnum; import com.lz.common.exception.RRException; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; @@ -10,6 +11,7 @@ import com.lz.common.utils.StringUtil; import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.dto.StaffSimpleDto; import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.entity.StaffSimpleInfo; import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.dao.EvaluationGroupMapper; import com.lz.modules.flow.dao.EvaluationStartStaffMapper; @@ -24,6 +26,8 @@ import com.lz.modules.flow.service.EvaluationGroupService; import com.lz.modules.flow.service.EvaluationStartStaffService; import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.FlowStartService; +import com.lz.modules.job.business.DingtalkBusiness; +import com.lz.modules.performance.dto.ToScoreDingTalkDto; import com.lz.modules.performance.req.AssessChangeReq; import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.req.AssessListReq; @@ -83,6 +87,8 @@ public class AssessManagerServiceImpl implements AssessManagerService { private EvaluationGroupMapper evaluationGroupMapper; @Autowired private FlowRecordMapper flowRecordMapper; + @Autowired + private DingtalkBusiness dingtalkBusiness; public static final Long processId = 1L; @@ -250,30 +256,45 @@ public class AssessManagerServiceImpl implements AssessManagerService { @Override public void toScore(AssessToScoreReq req) { String[] split = req.getEvaluationIds().split(","); + List toStaffids = new ArrayList<>(); for(String s:split){ - Long evaluation = Long.valueOf(s); //更新评分 - int i = evaluationStartStaffService.updateBatchToScore(req.getStartId(), evaluation); + EvaluationGroup group = evaluationGroupMapper.selectEvaluationGroupByCopyId(s); + if(group==null){ + log.info("未找到主组信息,copyId: " + s); + continue; + } + Long evaluation = group.getId(); + int i = evaluationStartStaffService.updateBatchToScore(req.getStartId(), group.getId()); log.info("更新evaluationStartStaff 数据 为已评分 " + i); - List recordIds = resultRecordMapper.selectToScoreList(req.getStartId(), evaluation); - if(CollectionUtils.isEmpty(recordIds)){ + List dtos = resultRecordMapper.selectToScoreList(req.getStartId(), evaluation); + if(CollectionUtils.isEmpty(dtos)){ log.info("该考评组无数据 evaluationId:" + evaluation); continue; } - log.info("本次评分更新操作 num: " + recordIds.size()); - recordIds.forEach(aLong -> { + log.info("本次评分更新操作 num: " + dtos.size()); + dtos.forEach(dto -> { + Long recordId = dto.getId(); //更新流程绩效 ApprovalDto approvalDto = new ApprovalDto(); approvalDto.setStatus(1); - approvalDto.setResultRecordId(aLong); + approvalDto.setResultRecordId(recordId); approvalDto.setMenuName("开始评分"); try { R r = resultRecordService.newApproval(approvalDto); - log.info("绩效id aLong :" + aLong + " ,res" + JSON.toJSONString(r)); + log.info("绩效id aLong :" + recordId + " ,res" + JSON.toJSONString(r)); } catch (Exception e) { - log.error("执行中状态跳过失败 recorId:" + aLong,e); + log.error("执行中状态跳过失败 recorId:" + recordId,e); } + //钉钉通知评分构建 + StaffSimpleInfo staffSimpleInfo = new StaffSimpleInfo(); + staffSimpleInfo.setId(dto.getStaffId()); + staffSimpleInfo.setRecordId(recordId); + staffSimpleInfo.setStartId(req.getStartId()); + toStaffids.add(staffSimpleInfo); + + }); //更新flowRecord记录 List objects = resultRecordService.listObjs(new QueryWrapper() @@ -287,6 +308,13 @@ public class AssessManagerServiceImpl implements AssessManagerService { log.info("更新flowRecord记录,i:" + updateExecution); } + + //通知评分 + try { + dingtalkBusiness.sendWorkMSGWithThread(toStaffids, WorkMsgTypeEnum.START_SCORE.getType()); + } catch (Exception e) { + log.error("通知评分异常:",e); + } } 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 6d67c384..aa80000b 100644 --- a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java +++ b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java @@ -16,6 +16,7 @@ import com.lz.modules.app.req.ReportListReq; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.OwnResultResp; import com.lz.modules.flow.model.ResultRecordDto; +import com.lz.modules.performance.dto.ToScoreDingTalkDto; import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.res.AssessManagerDetailRes; import com.lz.modules.performance.res.ChartStatistical; @@ -24,6 +25,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; @Mapper public interface ResultRecordMapper extends BaseMapper { @@ -91,5 +93,5 @@ public interface ResultRecordMapper extends BaseMapper { int batchDeleteByStartIdAndStaffId(@Param("startId")Long startId,@Param("staffIds") List staffIds); - List selectToScoreList(@Param("startId")Long startId,@Param("evaluationId")Long evaluationId); + List selectToScoreList(@Param("startId")Long startId, @Param("evaluationId")Long evaluationId); } \ No newline at end of file diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index eeb6feb0..35ccc982 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -515,8 +515,8 @@ ) - + select id,staff_id from lz_result_record where is_delete = 0 and start_id = #{startId} and flow_process = 2 and evaluation_id = #{evaluationId} diff --git a/src/main/resources/mapper/flow/EvaluationGroupMapper.xml b/src/main/resources/mapper/flow/EvaluationGroupMapper.xml index a49fcbcc..51ae9d0f 100644 --- a/src/main/resources/mapper/flow/EvaluationGroupMapper.xml +++ b/src/main/resources/mapper/flow/EvaluationGroupMapper.xml @@ -14,12 +14,13 @@ + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, name AS name, manager_ids AS managerIds, dep_ids AS depIds, staff_ids AS staffIds, out_ids AS outIds, copy_id AS copyId + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, name AS name, manager_ids AS managerIds, dep_ids AS depIds, staff_ids AS staffIds, out_ids AS outIds, copy_id AS copyId, start_id AS startId @@ -38,6 +39,7 @@ staff_ids, out_ids, copy_id, + start_id, is_delete, gmt_create, gmt_modified @@ -48,6 +50,7 @@ #{ staffIds}, #{ outIds}, #{ copyId}, + #{ startId}, 0, now(), now() @@ -66,7 +69,8 @@ dep_ids = #{depIds}, staff_ids = #{staffIds}, out_ids = #{outIds}, - copy_id = #{copyId} + copy_id = #{copyId}, + start_id = #{startId} ,gmt_modified = now() where id = #{id} @@ -84,7 +88,8 @@ dep_ids = #{depIds}, staff_ids = #{staffIds}, out_ids = #{outIds}, - copy_id = #{copyId} + copy_id = #{copyId}, + start_id = #{startId} ,gmt_modified = now() where id = #{id} @@ -151,5 +156,9 @@ ) + + diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index 3658634e..a5cfd818 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -178,6 +178,7 @@ where f.is_delete=0 and r.is_delete=0 and approval_staff_id = #{approvalStaffId} and f.status = 1 + and f.flow_process != 2 order by r.gmt_modified desc @@ -188,6 +189,7 @@ where f.is_delete=0 and r.is_delete=0 and approval_staff_id = #{approvalStaffId} and f.status = 2 + and f.flow_process != 2 order by r.gmt_modified desc diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index d8784020..014f5562 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -126,7 +126,7 @@ public class MysqlMain { List list = new ArrayList(); - list.add(new TablesBean("lz_flow_record")); + list.add(new TablesBean("lz_evaluation_group")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments();