添加了浮窗最小话以及一键写入日期

This commit is contained in:
2026-06-18 12:41:45 +08:00
parent 88c374952a
commit acaf13ff95
8 changed files with 177 additions and 15 deletions

View File

@@ -127,6 +127,15 @@ public class OaProjectScheduleStepController extends BaseController {
return toAjax(iOaProjectScheduleStepService.batchDelay(batchDelayBo));
}
/**
* 批量设定步骤结束时间为同一时间
*/
@RepeatSubmit()
@PutMapping("/batch-set-end")
public R<Void> batchSetEndTime(@RequestBody com.ruoyi.oa.domain.bo.BatchSetEndTimeBo bo) {
return toAjax(iOaProjectScheduleStepService.batchSetEndTime(bo));
}
/**
* 删除项目进度步骤跟踪
*

View File

@@ -63,4 +63,7 @@ public interface OaProjectScheduleStepMapper extends BaseMapperPlus<OaProjectSch
* @return 更新记录数
*/
int batchDelayPlanEnd(@Param("trackIds") List<Long> trackIds, @Param("delayMinutes") Long delayMinutes);
/** 批量设定 plan_end 为同一个具体时间 */
int batchSetPlanEnd(@Param("trackIds") List<Long> trackIds, @Param("newEndTime") java.util.Date newEndTime);
}

View File

@@ -89,4 +89,7 @@ public interface IOaProjectScheduleStepService{
* @return 是否成功
*/
Boolean batchDelay(com.ruoyi.oa.domain.bo.BatchDelayBo bo);
/** 批量设定步骤结束时间为同一时间 */
Boolean batchSetEndTime(com.ruoyi.oa.domain.bo.BatchSetEndTimeBo bo);
}

View File

@@ -1071,5 +1071,24 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS
return updated > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean batchSetEndTime(com.ruoyi.oa.domain.bo.BatchSetEndTimeBo bo) {
if (bo.getTrackIds() == null || bo.getTrackIds().isEmpty()) return false;
if (bo.getNewEndTime() == null) return false;
List<OaProjectScheduleStep> steps = baseMapper.selectList(
new LambdaQueryWrapper<OaProjectScheduleStep>()
.in(OaProjectScheduleStep::getTrackId, bo.getTrackIds())
);
String completedTrack = steps.stream()
.filter(s -> s.getStatus() != null && s.getStatus() == 2)
.map(OaProjectScheduleStep::getSecondLevelNode)
.collect(Collectors.joining(","));
if (!completedTrack.isEmpty()) {
throw new RuntimeException("以下步骤已完成,不允许修改:" + completedTrack);
}
int updated = baseMapper.batchSetPlanEnd(bo.getTrackIds(), bo.getNewEndTime());
return updated > 0;
}
}

View File

@@ -321,4 +321,16 @@
AND status IN (0, 1)
</update>
<update id="batchSetPlanEnd">
UPDATE oa_project_schedule_step
SET plan_end = #{newEndTime}
WHERE track_id IN
<foreach collection="trackIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND del_flag = '0'
AND use_flag = '1'
AND status IN (0, 1)
</update>
</mapper>