From 01eb1a829bce01181fe2feb6aec00b657df62e3e Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 29 七月 2025 10:59:31 +0800 Subject: [PATCH] 调拔单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java | 64 +++++++++++++++---------------- 1 files changed, 31 insertions(+), 33 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java index 165262d..198d13d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.constant.Constants; import com.vincent.rsf.server.manager.entity.Wave; @@ -10,6 +11,7 @@ import com.vincent.rsf.server.manager.enums.WaveItemExceStatus; import com.vincent.rsf.server.manager.service.WaveItemService; import com.vincent.rsf.server.manager.service.WaveService; +import com.vincent.rsf.server.manager.service.impl.TaskItemServiceImpl; import com.vincent.rsf.server.system.constant.GlobalConfigCode; import com.vincent.rsf.server.system.entity.Config; import com.vincent.rsf.server.system.service.ConfigService; @@ -19,19 +21,16 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** -* @author Ryan -* @description 娉㈡瀹氭椂浠诲姟 -* @param -* @return -* @time 2025/6/23 13:49 -*/ + * @param + * @author Ryan + * @description 娉㈡瀹氭椂浠诲姟 + * @return + * @time 2025/6/23 13:49 + */ @Component public class WaveSchedules { @@ -44,45 +43,44 @@ @Autowired private ConfigService configService; - + @Autowired + private TaskItemServiceImpl taskItemService; /** - * @author Ryan - * @description 鑷姩涓嬪彂娉㈡浠诲姟 - * @param - * @return - * @time 2025/6/23 13:52 - */ + * @param + * @return + * @author Ryan + * @description 鑷姩涓嬪彂娉㈡浠诲姟 + * @time 2025/6/23 13:52 + */ @Scheduled(cron = "0/15 * * * * ?") - @Transactional(rollbackFor = Exception.class) +// @Transactional(rollbackFor = Exception.class) public void autoGenerateTask() { Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.WAVE_AUTO_EXCE_TASK)); if (Objects.isNull(config) || !Boolean.parseBoolean(config.getVal())) { return; } List<Wave> list = waveService.list(new LambdaQueryWrapper<Wave>() - .select(Wave::getId) - .eq(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val)); + .select(Wave::getId) + .in(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val + , WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val)); if (list.isEmpty()) { return; } + List<Long> longs = list.stream().map(Wave::getId).collect(Collectors.toList()); - List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>() + waveItemService.update(new LambdaUpdateWrapper<WaveItem>() .in(WaveItem::getWaveId, longs) - .eq(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_ITEM_EXCE_STATUS_UN.val)); - if (waveItems.isEmpty()) { - return; - } + .set(WaveItem::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val) + .apply("anfme > work_qty")); + Long loginUserId = SystemAuthUtils.getLoginUserId(); - Map<Long, List<WaveItem>> listMap = waveItems.stream().collect(Collectors.groupingBy(WaveItem::getWaveId)); - listMap.keySet().forEach(waveId -> { - List<Long> itemIds = listMap.get(waveId).stream().map(WaveItem::getId).collect(Collectors.toList()); - Map<String, Object> params = new HashMap<>(); - params.put("wave", waveId); - params.put("waveItem", itemIds); - waveService.waveToTask(params, loginUserId); - }); + Map<String, Object> params = new HashMap<>(); + params.put("ids", longs); + waveService.waveToTask(params, loginUserId); + } + } -- Gitblit v1.9.1