diff --git a/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/detail/ExamineDetailController.java b/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/detail/ExamineDetailController.java index c171eb3..26a7c4c 100644 --- a/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/detail/ExamineDetailController.java +++ b/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/detail/ExamineDetailController.java @@ -98,15 +98,18 @@ public class ExamineDetailController extends BaseController { for (ExamineDetail examineDetail : examineDto.getExamineDetailList()) { examineDetail.setExamineId(examineDto.getExamineId()); } - Map scoreMap = examineDetailService.calculateScoreByDetail(examineDto.getTaskId() - , examineDto.getExamineDetailList(), ReviewTypeEnum.MANAGE); - BigDecimal bigDecimal = scoreMap.get(examineDto.getExamineId()); - if (examineDto.getManageScore().compareTo(bigDecimal) != 0) { - return AjaxResult.error("总分与明细分数不一致"); + if (ReviewTypeEnum.MANAGE.getType().equals(examineDto.getReviewType())) { + //主管才需要计算分数 + Map scoreMap = examineDetailService.calculateScoreByDetail(examineDto.getTaskId() + , examineDto.getExamineDetailList(), ReviewTypeEnum.MANAGE); + BigDecimal bigDecimal = scoreMap.get(examineDto.getExamineId()); + if (examineDto.getManageScore().compareTo(bigDecimal) != 0) { + return AjaxResult.error("总分与明细分数不一致"); + } } //保存detail详情 - this.examineDetailService.insertBatch(examineDto.getExamineDetailList()); + this.examineDetailService.saveBatch(examineDto.getExamineDetailList()); //保存总体评价 examineUserService.access(examineDto); return AjaxResult.success(); diff --git a/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/task/TaskSetUpController.java b/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/task/TaskSetUpController.java index ea1b8b4..e76fdac 100644 --- a/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/task/TaskSetUpController.java +++ b/pms-admin/src/main/java/tech/unissense/pms/web/controller/business/examine/task/TaskSetUpController.java @@ -31,11 +31,15 @@ public class TaskSetUpController extends BaseController { // 分页查询+模糊查询 @GetMapping("/get") - public TableDataInfo getTasks(@RequestBody TaskQueryDto queryDto) { + public TableDataInfo getTasks(TaskQueryDto queryDto) { startPage(); List tasks = taskService.getTasks(queryDto); return getDataTable(tasks); } + @GetMapping("/list") + public AjaxResult listTask(TaskQueryDto queryDto) { + return success(taskService.listTask(queryDto)); + } // 编辑任务 @PutMapping("/update") diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/config/enums/ReviewTypeEnum.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/config/enums/ReviewTypeEnum.java index 0c1799e..2424bd4 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/config/enums/ReviewTypeEnum.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/config/enums/ReviewTypeEnum.java @@ -20,9 +20,9 @@ import lombok.Getter; public enum ReviewTypeEnum { MANAGE("0","管理"), - SELF("1","管理"), - SYSTEM("2","管理"), - ALL("-1","管理"), + SELF("1","个人"), + SYSTEM("2","系统核算"), + ALL("-1","所有"), ; private final String type; private final String remark; diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/config/mapper/ExamineConfigMapper.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/config/mapper/ExamineConfigMapper.java index 8a3ed99..160a3b2 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/config/mapper/ExamineConfigMapper.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/config/mapper/ExamineConfigMapper.java @@ -4,6 +4,8 @@ import org.apache.ibatis.annotations.Mapper; import tech.unissense.pms.business.examine.config.domain.ExamineConfig; import org.apache.ibatis.annotations.Param; import org.springframework.data.domain.Pageable; +import tech.unissense.pms.business.examine.task.domain.ExamineTask; +import tech.unissense.pms.business.examine.task.domain.TaskQueryDto; import java.util.List; diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/dto/ExamineDto.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/dto/ExamineDto.java index cef8656..226d218 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/dto/ExamineDto.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/dto/ExamineDto.java @@ -26,6 +26,7 @@ public class ExamineDto { private String judgeContent; private BigDecimal manageScore; private Integer taskId; + private String reviewType; /** * 主管评分状态 0:待完成 1:已完成 */ diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/ExamineDetailService.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/ExamineDetailService.java index b9bf08a..50ab54f 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/ExamineDetailService.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/ExamineDetailService.java @@ -68,4 +68,7 @@ public interface ExamineDetailService { * @return */ Map calculateScoreByDetail(Integer taskId,List examineList,ReviewTypeEnum typeEnum); + + void saveBatch(List examineDetailList); + } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/impl/ExamineDetailServiceImpl.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/impl/ExamineDetailServiceImpl.java index 215b014..23135b3 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/impl/ExamineDetailServiceImpl.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/service/impl/ExamineDetailServiceImpl.java @@ -146,4 +146,9 @@ public class ExamineDetailServiceImpl implements ExamineDetailService { return scoreMap; } + + @Override + public void saveBatch(List examineDetailList) { + examineDetailMapper.insertOrUpdateBatch(examineDetailList); + } } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/TaskQueryDto.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/TaskQueryDto.java index 169b852..e723e89 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/TaskQueryDto.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/TaskQueryDto.java @@ -1,9 +1,10 @@ package tech.unissense.pms.business.examine.task.domain; import lombok.Data; +import tech.unissense.pms.common.core.domain.BaseEntity; @Data -public class TaskQueryDto { +public class TaskQueryDto extends BaseEntity { private String taskName; private Integer taskStatus; diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/mapper/ExamineTaskMapper.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/mapper/ExamineTaskMapper.java index fd1e33d..af61232 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/mapper/ExamineTaskMapper.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/mapper/ExamineTaskMapper.java @@ -24,5 +24,7 @@ public interface ExamineTaskMapper { void updateTask(ExamineTask updatedTask); void deleteTask(Integer id); + + List listTask(TaskQueryDto queryDto); } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/TaskService.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/TaskService.java index f1d7328..bca4818 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/TaskService.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/TaskService.java @@ -5,6 +5,7 @@ import tech.unissense.pms.business.examine.task.domain.ExamineTask; import tech.unissense.pms.business.examine.task.domain.TaskQueryDto; import java.util.List; +import java.util.Map; public interface TaskService { ExamineTask addTask(ExamineTask task); @@ -16,4 +17,6 @@ public interface TaskService { void deleteTask(Integer id); List getTarget(Integer id); + + Map> listTask(TaskQueryDto queryDto); } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/impl/TaskServiceImpl.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/impl/TaskServiceImpl.java index 768627b..b8c0d4b 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/impl/TaskServiceImpl.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/service/impl/TaskServiceImpl.java @@ -1,5 +1,6 @@ package tech.unissense.pms.business.examine.task.service.impl; +import cn.hutool.core.date.LocalDateTimeUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,9 +11,18 @@ import tech.unissense.pms.business.examine.task.domain.ExamineTask; import tech.unissense.pms.business.examine.task.domain.TaskQueryDto; import tech.unissense.pms.business.examine.task.mapper.ExamineTaskMapper; import tech.unissense.pms.business.examine.task.service.TaskService; +import tech.unissense.pms.common.annotation.DataScope; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.temporal.TemporalUnit; +import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service @@ -60,4 +70,26 @@ public class TaskServiceImpl implements TaskService { examineConfig.setExamineTaskId(id); return examineConfigMapper.list(examineConfig); } + + @Override + @DataScope(deptAlias = "t3", userAlias = "t2") + public Map> listTask(TaskQueryDto queryDto) { + List examineTasks = examineTaskDao.listTask(queryDto); + LocalDateTime now = LocalDateTime.now(); + for (ExamineTask examineTask : examineTasks) { + // 获取endTime那一天的最大时间 + LocalDateTime endTime = examineTask.getEndTime().toInstant().atZone(ZoneId.systemDefault()) + .toLocalDate().atTime(LocalTime.MAX); + + // 比较当前时间与localDateTime + if (now.isAfter(endTime)) { + // 当前时间大于localDateTime,已过期 + examineTask.setTaskStatus(2); + } else { + // 当前时间小于localDateTime,进行中 + examineTask.setTaskStatus(0); + } + } + return examineTasks.stream().collect(Collectors.groupingBy(ExamineTask::getTaskStatus)); + } } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/user/domain/ExamineUser.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/user/domain/ExamineUser.java index 853a1bb..8f5f4ca 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/user/domain/ExamineUser.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/user/domain/ExamineUser.java @@ -5,6 +5,7 @@ import tech.unissense.pms.common.core.domain.BaseEntity; import java.io.Serializable; import java.math.BigDecimal; +import java.util.List; /** * 考核人员表(ExamineUser)实体类 @@ -51,5 +52,6 @@ public class ExamineUser extends BaseEntity { private String isAsc; + private List userIdList; } diff --git a/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml b/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml index c13c03c..f9e7a6a 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml @@ -97,10 +97,8 @@ (#{entity.examineId}, #{entity.score}, #{entity.remark}, #{entity.configId}) on duplicate key update - examine_id = values(examine_id), score = values(score), - remark = values(remark), - config_id = values(config_id) + remark = values(remark) diff --git a/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml b/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml index eb5b0bd..76a9f73 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml @@ -29,6 +29,23 @@ + UPDATE pms_examine_task diff --git a/pms-business/src/main/resources/mapper/business/examine/ExamineUserMapper.xml b/pms-business/src/main/resources/mapper/business/examine/ExamineUserMapper.xml index b42734e..6457989 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineUserMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineUserMapper.xml @@ -68,7 +68,7 @@ t1.examine_status, t1.examine_status_self, t2.nick_name as userName - from pms_examine_user t1 left join sys_user t2 on t1.user_id = t2.user_id + from pms_examine_user t1 left join sys_user t2 on t1.user_id = t2.user_id and t1.id = #{id} @@ -79,6 +79,12 @@ and t1.user_id = #{userId} + + and t1.user_id in + + #{userId} + + and t1.score = #{score} @@ -154,10 +160,10 @@ manage_score = #{manageScore}, - and examine_status = #{examineStatus} + examine_status = #{examineStatus}, - and examine_status_self = #{examineStatusSelf} + examine_status_self = #{examineStatusSelf}, where id = #{id}