From adfce6c5a94c7aefa9b5d4f67e63db7eaac268d9 Mon Sep 17 00:00:00 2001 From: DESKTOP-LMJ82IJ\Eno <creaycat@gmail.com> Date: 星期二, 07 一月 2025 20:29:31 +0800 Subject: [PATCH] #拣货单功能 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java | 52 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 31 insertions(+), 21 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java index e619af4..ae9d121 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java @@ -20,10 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.util.*; @Component public class TaskWaveTimer { @@ -45,6 +42,11 @@ @Autowired private DictService dictService; + /** + * modifty锛� + * original : fetch datasource of task type on WAVE_SEED + * now: Fetch datasource of task type on WCS_EXECUTE_OUT_ARRIVED, After completing the task and for setting the task type equal to WAVE_SEED + */ @Scheduled(cron = "0/15 * * * * ? ") @Transactional(rollbackFor = Exception.class) public void taskWave() { @@ -58,8 +60,10 @@ if (!autoCreateWaveSeed.equals("true")) { return; } - - List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id)); + //鏌ヨ鐘舵�佷负瀹瑰櫒鍒拌揪鐘舵�佹墍鏈変换鍔″崟鎹� +// List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id)); + List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT_TASK_DONE.id)); + HashSet<String> sycMatnrs = new HashSet<>(); if (taskList.isEmpty()) { // throw new CoolException("娌℃湁鍙挱绉嶄换鍔★紒锛�"); } else { @@ -74,6 +78,12 @@ for (TaskDetl taskDetl : taskDetls) { //鍒嗛厤璁㈠崟 Long waveId = taskDetl.getWaveId(); + //鍚屼竴涓墿鏂欏彧娣诲姞涓�娆℃挱绉嶄换鍔� + if(sycMatnrs.contains(taskDetl.getMatnr())) { + continue; + } + sycMatnrs.add(taskDetl.getMatnr()); + List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId)); if (list.isEmpty()) { continue; @@ -96,17 +106,17 @@ Double anfme = taskDetl.getAnfme(); for (OrderDetl orderDetl : orderDetls) { //fixme 浣滀笟涓暟閲忚皟鏁存斁鑷筹紝鐢熸垚鍑哄簱浠诲姟鎴愬姛鍚� -// double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D); -// if (issued <= 0.0D) { continue; } -// if (anfme <= 0.0D) { break; } -// -// double workQty = issued; -// if(anfme - issued < 0){ -// workQty = anfme; -// } -// anfme -= workQty; -// -// orderUtils.updateWorkQty(orderDetl.getId(), workQty, true); + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D); + if (issued <= 0.0D) { continue; } + if (anfme <= 0.0D) { break; } + + double workQty = issued; + if(anfme - issued < 0){ + workQty = anfme; + } + anfme -= workQty; + + orderUtils.updateWorkQty(orderDetl.getId(), workQty, true); CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId)); if (cacheSite == null) { @@ -119,8 +129,10 @@ waveSeed.setOrderNo(orderDetl.getOrderNo()); waveSeed.setOrderId(orderDetl.getOrderId()); waveSeed.setOrderDetlId(orderDetl.getId()); + waveSeed.setWaveId(taskDetl.getWaveId()).setWaveNo(taskDetl.getWaveNo()); waveSeed.setTaskDetlId(taskDetl.getId()); - waveSeed.setAnfme(taskDetl.getAnfme()); + //涓烘弧瓒冲綋鍓嶉渶姹傦紝缁忕‘璁わ紝鏀规垚璁㈠崟鏁伴噺 + waveSeed.setAnfme(orderDetl.getAnfme()); waveSeed.setWorkQty(0D); waveSeed.setMatnr(taskDetl.getMatnr()); waveSeed.setBatch(taskDetl.getBatch()); @@ -129,7 +141,6 @@ if (!waveSeedService.save(waveSeed)) { throw new CoolException("娉㈡鎾鍒涘缓澶辫触"); } - cacheSite.setOrderId(orderDetl.getOrderId()); cacheSite.setOrderNo(orderDetl.getOrderNo()); cacheSite.setSiteStatus(CacheSiteStatusType.R.id); @@ -139,10 +150,9 @@ } } - } - task.setTaskSts(TaskStsType.COMPLETE_OUT.id); + task.setTaskSts(TaskStsType.GENERATE_WAVE_SEED.id); task.setUpdateTime(new Date()); if (!taskService.updateById(task)) { throw new CoolException("浠诲姟鏇存柊澶辫触"); -- Gitblit v1.9.1