From 9dc42c34145b57a4e38f4c2f62e1cb8dc3baa6c7 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, 9 Dec 2020 14:22:55 +0800 Subject: [PATCH] fix --- .../controller/ResultTaskController.java | 5 +- .../performance/dao/ResultTaskMapper.java | 1 + .../performance/entity/TaskProcessRecord.java | 40 +++++++++- .../performance/enums/ProcessRecordEnum.java | 40 ++++++++++ ...teTakReq.java => ResultUpdateTaskReq.java} | 5 +- .../service/ResultTaskService.java | 4 +- .../service/impl/ResultTaskServiceImpl.java | 75 +++++++++++++++++-- .../performance/TaskProcessRecordMapper.xml | 50 ++++++++----- src/test/java/com/lz/mysql/MysqlMain.java | 2 +- 9 files changed, 186 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java rename src/main/java/com/lz/modules/performance/req/{ResultUpdateTakReq.java => ResultUpdateTaskReq.java} (83%) 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 ff74cca9..4593898f 100644 --- a/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java +++ b/src/main/java/com/lz/modules/performance/controller/ResultTaskController.java @@ -1,9 +1,8 @@ package com.lz.modules.performance.controller; import com.lz.common.utils.R; -import com.lz.modules.performance.req.ResultUpdateTakReq; +import com.lz.modules.performance.req.ResultUpdateTaskReq; import com.lz.modules.performance.res.ResultTaskDetailRes; -import com.lz.modules.performance.res.TaskListRes; import com.lz.modules.performance.service.ResultTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -40,7 +39,7 @@ public class ResultTaskController { @PostMapping("/result/updateTask") @ApiOperation("任务修改") @ApiResponses({@ApiResponse(code = 200,message = "成功")}) - public R updateTask(ResultUpdateTakReq req){ + public R updateTask(ResultUpdateTaskReq req){ int i = resultTaskService.saveOrUpdateResultTask(req); if(i>0){ return R.ok(); 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 8e03f072..2039028a 100644 --- a/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java +++ b/src/main/java/com/lz/modules/performance/dao/ResultTaskMapper.java @@ -36,4 +36,5 @@ public interface ResultTaskMapper extends BaseMapper { List selectResultTasksByDetailId(Long detailId); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/entity/TaskProcessRecord.java b/src/main/java/com/lz/modules/performance/entity/TaskProcessRecord.java index 58f7704f..195edefc 100644 --- a/src/main/java/com/lz/modules/performance/entity/TaskProcessRecord.java +++ b/src/main/java/com/lz/modules/performance/entity/TaskProcessRecord.java @@ -12,7 +12,7 @@ import java.util.Date; *

*

*任务进度更新表 * @author quyixiao -* @since 2020-12-08 +* @since 2020-12-09 */ @Data @@ -43,6 +43,12 @@ public class TaskProcessRecord implements java.io.Serializable { //1,修改名称,2修改进度 ,3名称和进度都修改 @ApiModelProperty(value = "1,修改名称,2修改进度 ,3名称和进度都修改", name = "type") private Integer type; + //任务 result_task得id + @ApiModelProperty(value = "任务 result_task得id ", name = "taskId") + private Long taskId; + //任务名称 + @ApiModelProperty(value = "任务名称", name = "name") + private String name; /** * * @return @@ -163,6 +169,36 @@ public class TaskProcessRecord implements java.io.Serializable { this.type = type; } + /** + * 任务 result_task得id + * @return + */ + public Long getTaskId() { + return taskId; + } + /** + * 任务 result_task得id + * @param taskId + */ + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + /** + * 任务名称 + * @return + */ + public String getName() { + return name; + } + /** + * 任务名称 + * @param name + */ + public void setName(String name) { + this.name = name; + } + @Override public String toString() { return "TaskProcessRecord{" + @@ -174,6 +210,8 @@ public class TaskProcessRecord implements java.io.Serializable { ",remark=" + remark + ",label=" + label + ",type=" + type + + ",taskId=" + taskId + + ",name=" + name + "}"; } } \ 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 new file mode 100644 index 00000000..51402c71 --- /dev/null +++ b/src/main/java/com/lz/modules/performance/enums/ProcessRecordEnum.java @@ -0,0 +1,40 @@ +package com.lz.modules.performance.enums; + +/** + * @Author: djc + * @Desc: + * @Date: 2020/12/9 14:08 + */ +public enum ProcessRecordEnum { + NAME(1,"修改名称"), + PROCESS(2,"修改进度"), + ALL(3,"全部修改"), + ; + + + private int type; + + private String desc; + + + ProcessRecordEnum(int type, String desc) { + this.type = type; + this.desc = desc; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/src/main/java/com/lz/modules/performance/req/ResultUpdateTakReq.java b/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java similarity index 83% rename from src/main/java/com/lz/modules/performance/req/ResultUpdateTakReq.java rename to src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java index fcf293c8..ed989fa4 100644 --- a/src/main/java/com/lz/modules/performance/req/ResultUpdateTakReq.java +++ b/src/main/java/com/lz/modules/performance/req/ResultUpdateTaskReq.java @@ -11,7 +11,7 @@ import java.math.BigDecimal; * @Date: 2020/12/9 10:32 */ @Data -public class ResultUpdateTakReq { +public class ResultUpdateTaskReq { //绩效详情id @ApiModelProperty(value = "绩效详情id(如果任务id为空,必传)", name = "detailId") private Long detailId; @@ -24,5 +24,8 @@ public class ResultUpdateTakReq { //任务的当前进度 @ApiModelProperty(value = "任务的当前进度", name = "processRate") private BigDecimal processRate; + //更新说明 + @ApiModelProperty(value = "更新说明", name = "remake") + private String remake; } 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 e87dd6b7..2161a534 100644 --- a/src/main/java/com/lz/modules/performance/service/ResultTaskService.java +++ b/src/main/java/com/lz/modules/performance/service/ResultTaskService.java @@ -2,7 +2,7 @@ package com.lz.modules.performance.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.modules.performance.entity.ResultTask; -import com.lz.modules.performance.req.ResultUpdateTakReq; +import com.lz.modules.performance.req.ResultUpdateTaskReq; import com.lz.modules.performance.res.ResultTaskDetailRes; /** @@ -33,7 +33,7 @@ public interface ResultTaskService extends IService { ResultTaskDetailRes taskDetail(Long detailId); - int saveOrUpdateResultTask(ResultUpdateTakReq req); + int saveOrUpdateResultTask(ResultUpdateTaskReq req); } \ 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 e025f76b..2fade1fa 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 @@ -1,22 +1,28 @@ 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.performance.dao.ResultTaskMapper; import com.lz.modules.performance.dto.ResultTaskDto; import com.lz.modules.performance.entity.ResultTask; -import com.lz.modules.performance.req.ResultUpdateTakReq; +import com.lz.modules.performance.entity.TaskProcessRecord; +import com.lz.modules.performance.enums.ProcessRecordEnum; +import com.lz.modules.performance.req.ResultUpdateTaskReq; import com.lz.modules.performance.res.ResultTaskDetailRes; import com.lz.modules.performance.service.ResultTaskService; +import com.lz.modules.performance.service.TaskProcessRecordService; import com.lz.modules.sys.entity.app.ResultDetail; import com.lz.modules.sys.service.app.ResultDetailService; +import com.sun.org.apache.regexp.internal.RE; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.List; import java.util.Optional; -import java.util.function.Consumer; /** *

@@ -36,6 +42,8 @@ public class ResultTaskServiceImpl extends ServiceImpl resultTaskDtos = resultTaskMapper.selectResultTasksByDetailId(detailId); + if(CollectionUtils.isEmpty(resultTaskDtos)){ + log.info("未找到该绩效详情下得任务信息"); + return BigDecimal.ZERO; + } + int size = resultTaskDtos.size(); + BigDecimal rate = BigDecimal.ZERO; + for(ResultTaskDto dto:resultTaskDtos){ + rate = BigDecimalUtil.add(rate,dto.getProcessRate()); + } + return BigDecimalUtil.divide(rate,BigDecimal.valueOf(size)).setScale(2); + + } + + //记录变更记录 + private void changeTaskProcess(ResultTask before,ResultUpdateTaskReq after){ + TaskProcessRecord taskProcessRecord = new TaskProcessRecord(); + taskProcessRecord.setTaskId(before.getId()); + taskProcessRecord.setRemark(after.getRemake()); + //判断修改了名称或进度 + if(before.getName().equals(after.getName())){ + if(before.getProcessRate().equals(after.getProcessRate())){ + taskProcessRecord.setType(ProcessRecordEnum.ALL.getType()); + + return; + } + + taskProcessRecord.setType(ProcessRecordEnum.NAME.getType()); + return; + + } + if(before.getProcessRate().equals(after.getProcessRate())){ + taskProcessRecord.setType(ProcessRecordEnum.PROCESS.getType()); + + taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord); + } + + + + } } diff --git a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml index cf4420c1..b6d41fd1 100644 --- a/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml +++ b/src/main/resources/mapper/performance/TaskProcessRecordMapper.xml @@ -12,12 +12,14 @@ + + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, process_rate AS processRate, remark AS remark, label AS label, type AS type + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, process_rate AS processRate, remark AS remark, label AS label, type AS type, task_id AS taskId, name AS name @@ -30,35 +32,41 @@ insert into lz_task_process_record( - process_rate, - remark, - label, - type, - is_delete, - gmt_create, - gmt_modified + process_rate, + remark, + label, + type, + task_id, + name, + is_delete, + gmt_create, + gmt_modified )values( - #{ processRate}, - #{ remark}, - #{ label}, - #{ type}, - 0, - now(), - now() + #{ processRate}, + #{ remark}, + #{ label}, + #{ type}, + #{ taskId}, + #{ name}, + 0, + now(), + now() ) update - lz_task_process_record + lz_task_process_record is_delete = #{isDelete}, gmt_create = #{gmtCreate}, process_rate = #{processRate}, remark = #{remark}, label = #{label}, - type = #{type} + type = #{type}, + task_id = #{taskId}, + name = #{name} ,gmt_modified = now() where id = #{id} @@ -67,14 +75,16 @@ update - lz_task_process_record - set + lz_task_process_record + set is_delete = #{isDelete}, gmt_create = #{gmtCreate}, process_rate = #{processRate}, remark = #{remark}, label = #{label}, - type = #{type} + type = #{type}, + task_id = #{taskId}, + name = #{name} ,gmt_modified = now() where id = #{id} diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 24972149..35fd4113 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -84,7 +84,7 @@ public class MysqlMain { List list = new ArrayList(); - list.add(new TablesBean("lz_result_detail")); + list.add(new TablesBean("lz_task_process_record")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments();