diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectScheduleStepMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectScheduleStepMapper.java index bc1f1b6..753d3c8 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectScheduleStepMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectScheduleStepMapper.java @@ -50,4 +50,9 @@ public interface OaProjectScheduleStepMapper extends BaseMapperPlus selectStepStatsGroupByProjectId(@Param("projectIds") Collection projectIds); + + /** + * 根据 schedule_id 批量更新节点负责人(仅更新 node_header 不为空的记录) + */ + int updateNodeHeaderByScheduleId(@Param("scheduleId") Long scheduleId, @Param("nodeHeader") String nodeHeader); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java index 4c6f80c..e016ef2 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java @@ -28,6 +28,7 @@ import com.ruoyi.oa.domain.bo.OaProjectScheduleBo; import com.ruoyi.oa.domain.vo.OaProjectScheduleVo; import com.ruoyi.oa.domain.OaProjectSchedule; import com.ruoyi.oa.mapper.OaProjectScheduleMapper; +import com.ruoyi.oa.mapper.OaProjectScheduleStepMapper; import com.ruoyi.oa.service.IOaProjectOperationLogService; import com.ruoyi.oa.service.IOaProjectScheduleService; import org.springframework.context.annotation.Lazy; @@ -51,6 +52,8 @@ public class OaProjectScheduleServiceImpl implements IOaProjectScheduleService { private final OaProjectScheduleMapper baseMapper; + private final OaProjectScheduleStepMapper scheduleStepMapper; + private final OaScheduleTemplateMapper scheduleTemplateMapper; private final IOaScheduleTemplateStepService scheduleTemplateStepService; @@ -221,7 +224,11 @@ public class OaProjectScheduleServiceImpl implements IOaProjectScheduleService { OaProjectSchedule update = BeanUtil.toBean(bo, OaProjectSchedule.class); validEntityBeforeSave(update); boolean ok = baseMapper.updateById(update) > 0; - if (ok) { + if (ok && bo.getSteward() != null) { + scheduleStepMapper.updateNodeHeaderByScheduleId(bo.getScheduleId(), bo.getSteward()); + operationLogService.recordLog(bo.getProjectId(), 1, bo.getScheduleId(), "项目进度", + 2, "修改项目进度", null, null); + } else if (ok) { operationLogService.recordLog(bo.getProjectId(), 1, bo.getScheduleId(), "项目进度", 2, "修改项目进度", null, null); } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml index 56c117f..8d48c40 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml @@ -300,4 +300,14 @@ GROUP BY sch.project_id + + UPDATE oa_project_schedule_step + SET node_header = #{nodeHeader} + WHERE schedule_id = #{scheduleId} + AND del_flag = '0' + AND use_flag = '1' + AND node_header IS NOT NULL + AND node_header != '' + +