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} + +