From e8855038f6e47cde0d6a8a9ddb2fa5a629e0efbb Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期四, 22 一月 2026 13:39:56 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 49 ++++++++++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java | 51 +++++++++++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 2 +
rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java | 1
4 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
index 355fa01..9da4be0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
@@ -17,4 +17,5 @@
R getStaMsgSelect(Map<String, Object> params);
R AGVBindAndInTaskStart(WaitPakinParam waitPakinPda, Long loginUserId);
+ R AGVBindAndInTaskStart(String barcode);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
index 7ddb9d0..a691ff0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
@@ -47,6 +47,17 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public R AGVBindAndInTaskStart(String barcode) {
+ //楠岃瘉鏉$爜
+ boolean b = checkStaStatus(barcode);
+ if (!b) {
+ return R.error("鏉$爜鏈壘鍒板搴旇鍒�");
+ }
+ return R.ok();
+ }
+
+ @Override
public R getStaMsgSelect(Map<String, Object> params) {
String sta = params.get("sta").toString();
if (Cools.isEmpty(sta)) {
@@ -345,4 +356,42 @@
return basStation;
}
+ private boolean checkStaStatus(String barcode) {
+ if (Cools.isEmpty(barcode)) {
+ throw new CoolException("瀹瑰櫒鐮佷笉鑳戒负绌�");
+ }
+ WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
+ .eq(WaitPakin::getBarcode, barcode)
+ .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val)
+ );
+ if (Cools.isEmpty(waitPakin)) {
+ throw new CoolException("瀹瑰櫒鐮佹湭鎵惧埌缁勬墭淇℃伅,璇锋鏌ョ粍鎵樼姸鎬�");
+ }
+ BasStation isBarcodeSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+ .eq(BasStation::getBarcode, barcode)
+ , false
+ );
+ if (!Cools.isEmpty(isBarcodeSta)) {
+ throw new CoolException("璇ユ潯鐮佸凡琚�" + isBarcodeSta.getStationName() + "绔欑粦瀹�");
+ }
+
+ List<BasContainer> containers = basContainerService.list(
+ new LambdaQueryWrapper<BasContainer>());
+ boolean matches = false;
+ for (BasContainer container : containers) {
+ String codeType = container.getCodeType(); // 鑾峰彇姝e垯琛ㄨ揪寮�
+ if (barcode.matches(codeType)) { // 鍒ゆ柇鏉$爜鏄惁绗﹀悎杩欎釜姝e垯
+ matches = true;
+ return true;
+ }
+ }
+// boolean matches = containers.stream()
+// .map(BasContainer::getCodeType)
+// .anyMatch(codeType -> barcode.matches(codeType));
+ if (!matches) {
+ throw new CoolException("瀹瑰櫒涓庣珯鐐逛笉鍖归厤");
+ }
+
+ return true;
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
index f5d5f63..b861d02 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WkOrder.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.manager.enums.OrderWorkType;
import com.vincent.rsf.server.system.constant.DictTypeCode;
@@ -343,6 +344,56 @@
this.memo = memo;
}
+ public WkOrder(SyncOrderParams syncOrderParams) {
+ this.code = code;
+ this.poCode = poCode;
+ this.poId = poId;
+ this.type = type;
+ this.wkType = wkType;
+ this.checkType = checkType;
+ this.anfme = anfme;
+ this.workQty = workQty;
+ this.qty = qty;
+ this.logisNo = logisNo;
+ this.waveId = waveId;
+ this.arrTime = arrTime;
+ this.ntyStatus = ntyStatus;
+ this.reportOnce = reportOnce;
+ this.rleStatus = rleStatus;
+ this.exceStatus = exceStatus;
+ this.status = status;
+ this.deleted = deleted;
+ this.tenantId = tenantId;
+ this.createBy = createBy;
+ this.createTime = createTime;
+ this.updateBy = updateBy;
+ this.updateTime = updateTime;
+ this.memo = memo;
+ this.warehouseId = warehouseId;
+ this.wareAreaId = wareAreaId;
+ this.businessTime = businessTime;
+ this.stationId = stationId;
+ this.shipperId = shipperId;
+ this.orderInternalCode = orderInternalCode;
+ this.stockDirect = stockDirect;
+ this.customerId = customerId;
+ this.customerName = customerName;
+ this.supplierId = supplierId;
+ this.supplierName = supplierName;
+ this.stockOrgId = stockOrgId;
+ this.stockOrgName = stockOrgName;
+ this.purchaseOrgId = purchaseOrgId;
+ this.purchaseOrgName = purchaseOrgName;
+ this.purchaseUserId = purchaseUserId;
+ this.purchaseUserName = purchaseUserName;
+ this.prdOrgId = prdOrgId;
+ this.prdOrgName = prdOrgName;
+ this.saleOrgId = saleOrgId;
+ this.saleOrgName = saleOrgName;
+ this.saleUserId = saleUserId;
+ this.saleUserName = saleUserName;
+ }
+
public String getExceStatus$() {
if (Cools.isEmpty(this.exceStatus)) {
return "";
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index 56dd1e9..49a184b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -297,6 +297,8 @@
}
if (waitPakin.getAgvSign()==1) {
agvService.AGVBindAndInTaskStart(waitPakin, userId);
+ } else {
+ agvService.AGVBindAndInTaskStart(waitPakin.getBarcode());
}
return pakin;
--
Gitblit v1.9.1