From e98497176742fa8c0bb8f98e70926ac4916ac55f Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期六, 07 六月 2025 15:23:00 +0800
Subject: [PATCH] 盘点
---
src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java | 6 ++-
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 5 ++
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 82 ++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 19 ++++++++-
src/main/java/com/zy/asrs/controller/MatController.java | 2
5 files changed, 107 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index 1c6b93f..d034093 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -69,7 +69,7 @@
EntityWrapper<Mat> wrapper = new EntityWrapper<>();
if (!Cools.isEmpty(condition)) {
// wrapper.like("matnr", condition).or().like("maktx", condition);
- wrapper.like("matnr", condition).or().like("specs", condition);
+ wrapper.like("matnr", condition).or().like("specs", condition).or().like("maktx", condition);
}
wrapper.orderBy("create_time", false);
List<Mat> mats = matService.selectList(wrapper);
diff --git a/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java b/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java
index 8960248..ef9b7fd 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java
@@ -87,9 +87,11 @@
}
switch (this.status){
case "1":
- return "鏈彁浜�";
+ return "鐩樼偣涓�";
case "2":
- return "宸叉彁浜�";
+ return "鐩樼偣瀹�";
+ case "3":
+ return "宸蹭笂鎶�";
default:
return "";
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index ee6392b..d8e1c93 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -17,6 +17,7 @@
import com.zy.common.model.DetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
+import com.zy.common.utils.Synchro;
import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -794,8 +795,6 @@
}
}
//濡傛灉宸茬粡鎷f枡鍥炲簱锛屽氨闇�瑕佸彇locNo瀛楁
-// String locNo =Cools.isEmpty(wrkMast.getLocNo())? wrkMast.getSourceLocNo():wrkMast.getLocNo();
-// inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no",locNo))
iterator.remove();
iterator1.remove();
}
@@ -827,7 +826,21 @@
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
}
-
+ String locNo = Cools.isEmpty(wrkMast.getLocNo()) ? wrkMast.getSourceLocNo() : wrkMast.getLocNo();
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo));
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (wrkDetl.getMatnr().equals(checkOrderDetl.getMatnr()) && Cools.eq(wrkDetl.getBatch(), checkOrderDetl.getBatch())) {
+ checkOrderDetl.setCheckAnfme(wrkDetl.getAnfme());
+ checkOrderDetl.setStatus("2");
+ } else {
+ InventoryCheckOrderDetl newDetl = new InventoryCheckOrderDetl();
+ Synchro.Copy(wrkDetl, newDetl);
+ newDetl.setAnfme(0D);
+ newDetl.setCheckAnfme(wrkDetl.getAnfme());
+ newDetl.setOrderNo(checkOrderDetl.getOrderNo());
+ newDetl.setStatus("2");
+ }
+ }
}
List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls1) {
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 57158ed..dadd3b0 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -389,6 +389,10 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
if (ioType == 107) {
+ List<InventoryCheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrderNo).eq("loc_no", dto.getLocNo()));
+ if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
+ throw new CoolException("璇ュ簱浣嶇殑鐩樼偣浠诲姟宸茬粡娣诲姞鍒颁簡璇ュ簱浣嶄腑");
+ }
InventoryCheckOrderDetl checkOrderDetl = new InventoryCheckOrderDetl();
checkOrderDetl.setOrderNo(checkOrderNo);
checkOrderDetl.setMatnr(detlDto.getLocDetl().getMatnr());
@@ -396,6 +400,7 @@
checkOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
checkOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
checkOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
+ checkOrderDetl.setIoTime(new Date());
checkOrderDetl.setStatus("0");
checkOrderDetlService.insert(checkOrderDetl);
}
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index ebfb840..e7c0f42 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,9 +1,17 @@
package com.zy.asrs.task;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.InventoryCheckOrder;
+import com.zy.asrs.entity.InventoryCheckOrderDetl;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.InventoryCheckOrderDetlService;
+import com.zy.asrs.service.InventoryCheckOrderService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,8 +34,20 @@
@Autowired
private WorkMastHandler workMastHandler;
+ @Autowired
+ private InventoryCheckOrderService inventoryCheckOrderService;
+
+
+ @Autowired
+ private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
+
+
+ @Autowired
+ private ConfigService configService;
+
+
@Scheduled(cron = "0/3 * * * * ? ")
- public void execute(){
+ public void execute() {
List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
return;
@@ -45,4 +65,64 @@
}
}
+ /**
+ * 鑷姩鍒犻櫎瓒呰繃1澶╋紝鏃犳槑缁嗙殑鐩樼偣鍗�
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ public void execute2() {
+ List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>());
+ if (inventoryCheckOrders.isEmpty()) {
+ return;
+ }
+ for (InventoryCheckOrder checkOrder : inventoryCheckOrders) {
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo()));
+ if (checkOrderDetls.isEmpty() && System.currentTimeMillis() - checkOrder.getCreateTime().getTime() >= 1000 * 60 * 60 * 24) {
+ if (!inventoryCheckOrderService.deleteById(checkOrder)) {
+ log.error("鐩樼偣鍗昜orderNo={}]鍒犻櫎澶辫触", checkOrder.getOrderNo());
+ } else {
+ log.info("鐩樼偣鍗昜orderNo={}]鍒犻櫎鎴愬姛", checkOrder.getOrderNo());
+ }
+ }
+ }
+ }
+
+ /**
+ * 鑷姩瀹岀粨杈惧埌涓�瀹氭暟閲忕殑鐩樼偣鍗�
+ */
+ @Scheduled(cron = "0/30 * * * * ? ")
+ public void execute3() {
+ List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>());
+ if (inventoryCheckOrders.isEmpty()) {
+ return;
+ }
+ int num = 20;
+ try {
+ Config config = configService.selectConfigByCode("AutoLocMove");
+ if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+
+ } else {
+ num = Integer.parseInt(config.getValue());
+ }
+ } catch (Exception e) {
+
+ }
+ for (InventoryCheckOrder checkOrder : inventoryCheckOrders) {
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo()));
+ boolean complete = true;
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (!checkOrderDetl.getStatus().equals("2")) {
+ complete = false;
+ }
+ }
+ if (complete && checkOrderDetls.size() >= num) {
+ checkOrder.setStatus("2");
+ if (!inventoryCheckOrderService.updateById(checkOrder)) {
+ log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo());
+ } else {
+ log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo());
+ }
+ }
+ }
+ }
+
}
--
Gitblit v1.9.1