From d2a6d40e93f46b0264fdd982a66d2122faa6cd16 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 11 Nov 2025 13:33:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=96=B0=E5=A2=9E=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=AE=A1=E5=88=92ID=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=AD=A5=E9=AA=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IOaProjectScheduleStepService 接口中新增 deleteByScheduleIds 方法 - 实现类 OaProjectScheduleStepServiceImpl 中实现 deleteByScheduleIds 方法 - 在 OaProjectScheduleStepMapper 中增加 deleteByScheduleIds 的 SQL 映射- 在 OaProjectScheduleServiceImpl 删除计划时同步删除相关步骤 - 添加 Mapper 层对 scheduleIds 参数的支持及 XML 删除语句- 更新 mapper 接口导入 Collection 类以支持参数传递 --- .../com/ruoyi/oa/mapper/OaProjectScheduleStepMapper.java | 8 ++++++++ .../ruoyi/oa/service/IOaProjectScheduleStepService.java | 2 ++ .../oa/service/impl/OaProjectScheduleServiceImpl.java | 2 ++ .../oa/service/impl/OaProjectScheduleStepServiceImpl.java | 7 +++++++ .../resources/mapper/oa/OaProjectScheduleStepMapper.xml | 7 +++++++ 5 files changed, 26 insertions(+) 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 00fcea7..dfce779 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 @@ -8,6 +8,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.toolkit.Constants; +import java.util.Collection; import java.util.List; /** @@ -29,4 +30,11 @@ public interface OaProjectScheduleStepMapper extends BaseMapperPlus entities); + + /** + * 根据 schedule_id 批量删除步骤记录 + * @param scheduleIds 主表的 schedule_id 集合 + * @return 删除的记录数 + */ + int deleteByScheduleIds(@Param("scheduleIds") Collection scheduleIds); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java index 5a7da49..c215a59 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java @@ -53,6 +53,8 @@ public interface IOaProjectScheduleStepService{ */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + Boolean deleteByScheduleIds(Collection scheduleIds, Boolean isValid); + OaProjectScheduleStepVo maxStepByScheduleId(Long scheduleId); void updateByStepAndScheduleId(Long currentStep,Long scheduleId); 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 a4ffe91..a2a0aa7 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 @@ -184,6 +184,8 @@ public class OaProjectScheduleServiceImpl implements IOaProjectScheduleService { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + //同时在删除对应的项目进度步骤 + projectScheduleStepService.deleteByScheduleIds(ids, false); return baseMapper.deleteBatchIds(ids) > 0; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java index a740dfd..403a851 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java @@ -202,6 +202,13 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS } return baseMapper.deleteBatchIds(ids) > 0; } + @Override + public Boolean deleteByScheduleIds(Collection scheduleIds, Boolean isValid) { + if (isValid) { + // 如需校验,添加业务校验逻辑(例如:判断步骤是否存在关联数据等) + } + return projectScheduleStepMapper.deleteByScheduleIds(scheduleIds) > 0; + } @Override public OaProjectScheduleStepVo maxStepByScheduleId(Long scheduleId) { diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml index ea9335d..a8afd90 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectScheduleStepMapper.xml @@ -89,6 +89,13 @@ AND del_flag = '0' and use_flag = '1' + + DELETE FROM oa_project_schedule_step + WHERE schedule_id IN + + #{id} + +