From 645da5e4e48dd94b760ea4dcbf80e22bf2a3f33c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 11 一月 2025 17:20:08 +0800
Subject: [PATCH] #添加播种站点功能
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 89 +++++++++++++++++++++++++++++++++++---------
1 files changed, 71 insertions(+), 18 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 ca3385f..0d6e371 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
@@ -1,6 +1,7 @@
package com.zy.asrs.wms.asrs.timer;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
import com.zy.asrs.framework.exception.CoolException;
@@ -8,6 +9,7 @@
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.service.*;
+import io.jsonwebtoken.lang.Collections;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -15,8 +17,11 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
@Slf4j
@Component
@@ -58,9 +63,12 @@
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private CacheSiteService cacheSiteService;
- @Scheduled(cron = "0/30 * * * * ? ")
- @Transactional
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ @Transactional(rollbackFor = Exception.class)
public void inExecute() {
InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
try {
@@ -100,8 +108,30 @@
}
}
-// @Scheduled(cron = "0/3 * * * * ? ")
- @Transactional
+
+ /**
+ * 1. 瀹氭椂鎷夊彇闇�瑕佹墽琛屽洖搴撲换鍔″垪琛ㄦ暟鎹紝
+ * 2. 鍒犻櫎鍘熷搴撲綅鏄庣粏锛屽師濮嬪簱浣嶇姸鎬佺疆鎴怬.绌哄簱
+ * 3.
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ @Transactional(rollbackFor = Exception.class)
+ public void rollbackStock() {
+ //鑾峰彇闇�瑕佹墽琛屽洖搴撶殑浠诲姟锛屾洿鏂板簱瀛樹俊鎭�
+ List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskType, 53).eq(Task::getTaskSts, TaskStsType.WCS_CONVEYOR_START.id));
+ if (tasks.isEmpty()) {
+ return;
+ }
+ tasks.forEach(task -> {
+ //鍒犻櫎鍘熷搴撲綅鏄庣粏锛岀姸鎬佺疆涓篛.绌哄簱
+ executeTask103(task);
+ });
+ //todo 闇�娣诲姞涓�涓换鍔$姸鎬佹垨涓存椂鐘舵�侊紝鍚﹀垯浼氫竴鐩磋疆寰紝绋嬪簭鎶ラ敊锛堝簱浣嶇姸鎬佷笉澶勪簬R.鍑哄簱棰勭害锛�
+ }
+
+
+ @Scheduled(cron = "0/10 * * * * ? ")
+ @Transactional(rollbackFor = Exception.class)
public void outExecute() {
InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
try {
@@ -113,7 +143,7 @@
for (Task task : list) {
//鍚屾鏁版嵁
switch (task.getTaskType().intValue()) {
- case 101://鍑哄簱
+ case 101://鍑哄簱xx
executeTask101(task);
break;
case 103://鎷f枡
@@ -122,13 +152,24 @@
default:
throw new CoolException("鏈煡浠诲姟绫诲瀷");
}
-
task.setTaskSts(TaskStsType.UPDATED_OUT.id);//200.搴撳瓨鏇存柊瀹屾垚
if (!taskService.updateById(task)) {
throw new CoolException("搴撳瓨鏇存柊澶辫触");
+ } else {
+ //CacheSite 閲婃斁宸茶鍗犵敤鐨勯�氶亾 //fixme 鎾鍔熻兘瀹屾垚鍚庯紝闇�瑕佸皢杩欓噷娉ㄩ噴鎺�
+// List<TaskDetl> detls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()));
+// if (!Collections.isEmpty(detls)) {
+// List<Long> waveIds = detls.stream().map(TaskDetl::getWaveId).collect(Collectors.toList());
+// List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
+// List<Long> orderIds = orders.stream().map(Order::getId).collect(Collectors.toList());
+// cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
+// .in(CacheSite::getOrderId, orderIds)
+// .set(CacheSite::getSiteStatus, 0)
+// .set(CacheSite::getOrderId, null)
+// .set(CacheSite::getOrderNo, null));
+// }
}
}
-
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -140,10 +181,8 @@
//鍏ュ簱
private void executeTask1(Task task) {
Long hostId = task.getHostId();
-
Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
if (loc == null) {
- log.info("搴撲綅涓嶅瓨鍦�" + "=======>" + task.getTargetLoc());
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
@@ -177,9 +216,10 @@
if (!locDetlService.save(locDetl)) {
throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触");
}
-
+ //fixme 鏆傛椂鍏抽棴HOSTID,鍚庣画鎵撳紑鏈烘瀯ID
//娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
- List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+// List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+ List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
for (TaskDetlField detlField : detlFields) {
LocDetlField locDetlField = new LocDetlField();
locDetlField.setDetlId(locDetl.getId());
@@ -192,15 +232,17 @@
}
}
}
-
+ //fixme 鏆傛椂鍏抽棴HOSTID,鍚庣画鎵撳紑鏈烘瀯ID
//缁勬墭閫氱煡妗h浆鍘嗗彶妗�
- List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+// List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+ List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()));
if (waitPakins.isEmpty()) {
throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪");
}
for (WaitPakin waitPakin : waitPakins) {
WaitPakinLog waitPakinLog = new WaitPakinLog();
waitPakinLog.sync(waitPakin);
+ waitPakinLog.setId(null);
if (!waitPakinLogService.save(waitPakinLog)) {
throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�");
}
@@ -292,11 +334,16 @@
}
+ /**
+ * 鎷f枡鍐嶅叆搴擄紝鏍规嵁浠诲姟鐩爣搴撲綅锛岀敓鎴愭柊搴撳瓨淇℃伅
+ * @param task
+ */
//鎷f枡鍐嶅叆搴�
private void executeTask53(Task task) {
Long hostId = task.getHostId();
-
- Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+ //fixme 灏嗕换鍔″綋鍓�
+// Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
@@ -338,7 +385,9 @@
}
//娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
- List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+ //fixme 娉ㄩ噴
+// List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+ List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
for (TaskDetlField detlField : detlFields) {
LocDetlField locDetlField = new LocDetlField();
locDetlField.setDetlId(locDetl.getId());
@@ -356,7 +405,8 @@
//鍑哄簱
private void executeTask101(Task task) {
Long hostId = task.getHostId();
- Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+// Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
@@ -391,7 +441,9 @@
//鎷f枡鍑哄簱
private void executeTask103(Task task) {
Long hostId = task.getHostId();
- Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+ //FIXME 鏆傛椂娉ㄩ噴HOSTID绛涢�夋潯浠�
+// Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
@@ -408,6 +460,7 @@
if (!locService.updateById(loc)) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
+
List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId));
//鍒犻櫎搴撳瓨鏄庣粏
for (LocDetl locDetl : detlList) {
--
Gitblit v1.9.1