From 305d8524d1d0adf2d4f7abd7a9ec2f21ac3e47cc Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 16 May 2026 14:29:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=BF=9B=E5=BA=A6=E6=AD=A5=E9=AA=A4=E8=B4=9F=E8=B4=A3?= =?UTF-8?q?=E4=BA=BA=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 OaProjectScheduleStepMapper 依赖注入 - 新增 updateNodeHeaderByScheduleId 方法用于批量更新节点负责人 - 在修改项目进度时同步更新相关步骤的负责人信息 - 添加相应的 XML 映射配置实现条件更新逻辑 - 完善操作日志记录机制确保数据变更可追溯 --- .../ruoyi/oa/mapper/OaProjectScheduleStepMapper.java | 5 +++++ .../oa/service/impl/OaProjectScheduleServiceImpl.java | 9 ++++++++- .../mapper/oa/OaProjectScheduleStepMapper.xml | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) 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 != '' + +