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 160a3b2..bdb27fd 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 @@ -86,5 +86,7 @@ public interface ExamineConfigMapper { List list(ExamineConfig examineConfig); + void deleteByTaskId(Integer taskId); + } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/mapper/ExamineDetailMapper.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/mapper/ExamineDetailMapper.java index 86ddd6b..4f00e23 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/mapper/ExamineDetailMapper.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/detail/mapper/ExamineDetailMapper.java @@ -78,5 +78,7 @@ public interface ExamineDetailMapper { void deleteByExamineId(List collect); List listByExamineId(List idList); + + void deleteByTaskId(Integer taskId); } 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 7c9ce5d..2fdac7a 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 @@ -72,6 +72,7 @@ public interface ExamineDetailService { void deleteByExamineId( List collect); + void deleteByTaskId( Integer taskId); List listByExamineId(List taskId); } 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 c7e84b6..b15b494 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 @@ -198,6 +198,13 @@ public class ExamineDetailServiceImpl implements ExamineDetailService { examineDetailMapper.deleteByExamineId(collect); } + @Override + public void deleteByTaskId(Integer taskId) { + examineDetailMapper.deleteByTaskId(taskId); + } + + + @Override public List listByExamineId(List idList) { return examineDetailMapper.listByExamineId(idList); diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/ExamineTask.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/ExamineTask.java index 7b85112..00af3ba 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/ExamineTask.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/task/domain/ExamineTask.java @@ -44,5 +44,7 @@ public class ExamineTask implements Serializable { private Integer year; private Integer templateId; + private String templateType; + private String templateName; } 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 05dc278..6c5569f 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,9 +1,11 @@ package tech.unissense.pms.business.examine.task.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import tech.unissense.pms.business.examine.config.domain.ExamineConfig; import tech.unissense.pms.business.examine.config.enums.ReviewTypeEnum; import tech.unissense.pms.business.examine.config.mapper.ExamineConfigMapper; @@ -31,6 +33,7 @@ import java.util.stream.Collectors; @Slf4j @Service +@Transactional(rollbackFor = Exception.class) public class TaskServiceImpl implements TaskService { @Autowired @@ -100,6 +103,22 @@ public class TaskServiceImpl implements TaskService { @Override public ExamineTask updateTask(ExamineTask updatedTask) { + //如果模板变化 删除原有的指标项 重新生成 + ExamineTask examineTask = examineTaskDao.queryById(updatedTask.getId()); + if (!examineTask.getTemplateId().equals(updatedTask.getTemplateId())) { + //对应考核指标详情删除 + detailService.deleteByTaskId(updatedTask.getId()); + //对应考核指标项删除 + examineConfigMapper.deleteByTaskId(updatedTask.getId()); + //重新生成考核指标项 + ExamineConfig examineConfig = new ExamineConfig(); + examineConfig.setTemplateId(updatedTask.getTemplateId()); + List list = examineConfigMapper.list(examineConfig); + list.forEach(item -> { + item.setExamineTaskId(updatedTask.getId()); + }); + examineConfigMapper.insertBatch(list); + } examineTaskDao.updateTask(updatedTask); List userIdList = updatedTask.getUserIdList(); @@ -114,7 +133,11 @@ public class TaskServiceImpl implements TaskService { existingUsers.stream() .filter(user -> !userIdList.contains(user.getUserId())) .forEach(user -> userMapper.deleteById(user.getId())); - + //删除对应考核指标详情 + List examineIdList = existingUsers.stream().filter(user -> !userIdList.contains(user.getUserId())).map(ExamineUser::getId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(examineIdList)) { + detailService.deleteByExamineId(examineIdList); + } // 2. 添加新的用户记录(只插入那些不在现有用户中的用户) userIdList.stream() .filter(userId -> !existingUserIds.contains(userId)) diff --git a/pms-business/src/main/java/tech/unissense/pms/business/examine/template/domain/ExamineTemplate.java b/pms-business/src/main/java/tech/unissense/pms/business/examine/template/domain/ExamineTemplate.java index 81e82c2..41337f2 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/examine/template/domain/ExamineTemplate.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/examine/template/domain/ExamineTemplate.java @@ -33,11 +33,13 @@ public class ExamineTemplate { */ private Integer createBy; + private String createByName; /** * 更新者 */ private Integer updateBy; + private String updateByName; /** * 更新时间 */ diff --git a/pms-business/src/main/resources/mapper/business/examine/ExamineConfigMapper.xml b/pms-business/src/main/resources/mapper/business/examine/ExamineConfigMapper.xml index 51f95f2..97ede66 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineConfigMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineConfigMapper.xml @@ -181,6 +181,9 @@ from pms_examine_config where id = #{id} + + delete from pms_examine_config where examine_task_id = #{examineTaskId} + 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 1809572..a61fdb9 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineDetailMapper.xml @@ -142,6 +142,10 @@ #{item} + + delete + from pms_examine_detail where config_id in (select id from pms_examine_config where examine_task_id=#{taskId}); + 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 540a8f6..968fb88 100644 --- a/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml +++ b/pms-business/src/main/resources/mapper/business/examine/ExamineTaskMapper.xml @@ -11,57 +11,58 @@ + - INSERT INTO pms_examine_task (task_name, people_number, people_number_detail, task_status, create_time, end_time, year) - VALUES (#{taskName}, #{peopleNumber}, #{peopleNumberDetail}, #{taskStatus}, #{createTime}, #{endTime}, #{year}) + INSERT INTO pms_examine_task (task_name, people_number, people_number_detail, task_status, create_time, end_time, year,template_id) + VALUES (#{taskName}, #{peopleNumber}, #{peopleNumberDetail}, #{taskStatus}, #{createTime}, #{endTime}, #{year},#{templateId}) select - - from pms_examine_template + t1.id, t1.template_name, t1.template_type, t1.create_by, t1.update_by, t1.update_time, t1.create_time, + t2.nick_name as create_by_name, + t3.nick_name as update_by_name + from pms_examine_template t1 + left join sys_user t2 on t1.create_by=t2.user_id + left join sys_user t3 on t1.update_by=t3.user_id - and id = #{id} + and t1.id = #{id} - and template_name = #{templateName} + and t1.template_name = #{templateName} - and template_type = #{templateType} + and t1.template_type = #{templateType} - and create_by = #{createBy} + and t1.create_by = #{createBy} - and update_by = #{updateBy} + and t1.update_by = #{updateBy} - and update_time = #{updateTime} + and t1.update_time = #{updateTime} - and create_time = #{createTime} + and t1.create_time = #{createTime}