From 57e23c353a177b9c003a2f524a2adeaf641e2e4c Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期五, 16 八月 2024 17:09:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wms-dev' into wms-dev --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 99 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 92 insertions(+), 7 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java index 90bbd5a..4b78bed 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java @@ -21,18 +21,40 @@ @Autowired private TaskService taskService; + @Autowired private TaskDetlService taskDetlService; + @Autowired private TaskDetlFieldService taskDetlFieldService; + @Autowired private LocService locService; + @Autowired private LocDetlService locDetlService; + @Autowired private LocDetlFieldService locDetlFieldService; + @Autowired private WaitPakinService waitPakinService; + + @Autowired + private WaitPakinLogService waitPakinLogService; + + @Autowired + private TaskDetlLogService taskDetlLogService; + + @Autowired + private TaskDetlFieldLogService taskDetlFieldLogService; + + @Autowired + private OrderService orderService; + + @Autowired + private OrderDetlService orderDetlService; + @Scheduled(cron = "0/3 * * * * ? ") @Transactional @@ -51,11 +73,11 @@ switch (task.getTaskType().intValue()) { case 1://鍏ュ簱 Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId)); - if(loc == null) { + if (loc == null) { throw new CoolException("搴撲綅涓嶅瓨鍦�"); } - if(loc.getLocStsId() != LocStsType.S.val()){ + if (loc.getLocStsId() != LocStsType.S.val()) { throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害"); } @@ -68,7 +90,7 @@ List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); - if(taskDetls.isEmpty()) { + if (taskDetls.isEmpty()) { throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); } @@ -94,6 +116,7 @@ locDetlField.setDetlId(locDetl.getId()); locDetlField.setFieldId(detlField.getFieldId()); locDetlField.setName(detlField.getName()); + locDetlField.setValue(detlField.getValue()); locDetlField.setHostId(hostId); if (!locDetlFieldService.save(locDetlField)) { throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触"); @@ -101,8 +124,21 @@ } } - //鍒犻櫎缁勬墭閫氱煡妗� - waitPakinService.remove(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId)); + //缁勬墭閫氱煡妗h浆鍘嗗彶妗� + List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId)); + if (waitPakins.isEmpty()) { + throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪"); + } + for (WaitPakin waitPakin : waitPakins) { + WaitPakinLog waitPakinLog = new WaitPakinLog(); + waitPakinLog.sync(waitPakin); + if (!waitPakinLogService.save(waitPakinLog)) { + throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�"); + } + + //鍒犻櫎缁勬墭閫氱煡妗� + waitPakinService.removeById(waitPakin.getId()); + } break; } @@ -116,7 +152,7 @@ } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - }finally { + } finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } } @@ -126,11 +162,60 @@ public void outExecute() { InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); try { + //鑾峰彇鍑哄簱瀹屾垚浠诲姟 + List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, 199)); + if (list.isEmpty()) { + return; + } + for (Task task : list) { + //鍚屾鏁版嵁 + Long hostId = task.getHostId(); + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId)); + if (loc == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } + if (loc.getLocStsId() != LocStsType.R.val()) { + throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害"); + } + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId()); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + switch (task.getTaskType().intValue()) { + //鍑哄簱 + case 101: + loc.setLocStsId(LocStsType.O.val()); + loc.setBarcode(""); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, loc.getId()).eq(LocDetl::getHostId, hostId)); + //鍒犻櫎搴撳瓨鏄庣粏 + for (LocDetl locDetl : detlList) { + if (!locDetlService.removeById(locDetl)) { + throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); + } + List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId)); + for (LocDetlField detlField : detlFields) { + if (!locDetlFieldService.removeById(detlField)) { + throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触"); + } + } + } + break; + + } + + task.setTaskSts(200L);//200.搴撳瓨鏇存柊瀹屾垚 + if (!taskService.updateById(task)) { + throw new CoolException("搴撳瓨鏇存柊澶辫触"); + } + } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - }finally { + } finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } } -- Gitblit v1.9.1