From a2ef24e5d60de082204a53e65bff6705e064c61e Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 18 六月 2025 15:37:46 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 76 +++++++++++-
src/main/java/com/zy/asrs/service/ReportToThirdService.java | 3
src/main/java/com/zy/nc/vo/InvCountHeaderVO.java | 13 ++
src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java | 127 +++++++++++++++++++++
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 79 -------------
src/main/java/com/zy/nc/vo/InvCountBodyVO.java | 14 ++
src/main/resources/application.yml | 2
7 files changed, 226 insertions(+), 88 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/ReportToThirdService.java b/src/main/java/com/zy/asrs/service/ReportToThirdService.java
index 26af8a2..3a1a8af 100644
--- a/src/main/java/com/zy/asrs/service/ReportToThirdService.java
+++ b/src/main/java/com/zy/asrs/service/ReportToThirdService.java
@@ -1,6 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.InventoryCheckOrder;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
@@ -12,4 +13,6 @@
boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme);
+ boolean reportCheckOrder(InventoryCheckOrder checkOrder);
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
index 507c554..a32b024 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -6,14 +6,8 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.entity.StoreType;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.service.ReportToThirdService;
-import com.zy.asrs.service.StoreTypeService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.*;
import com.zy.nc.service.NccSaleXsfhmxWmsService;
@@ -36,9 +30,14 @@
@Autowired
private ApiLogService apiLogService;
-
@Autowired
private OrderService orderService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private InventoryCheckOrderService inventoryCheckOrderService;
+ @Autowired
+ private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
@Autowired
private StoreTypeService storeTypeService;
@@ -60,6 +59,9 @@
@Value("${NYNC.saveRefWhsTrans}")
private String saveRefWhsTrans;
+
+ @Value("${NYNC.invcountAdd}")
+ private String invcountAdd;
@Value("${NYNC.purchasein}")
private String purchasein;
@@ -219,6 +221,21 @@
}
}
+ @Override
+ public boolean reportCheckOrder(InventoryCheckOrder checkOrder) {
+ Object process1 = processInvcount(checkOrder);
+ //鍙戦�佽姹�
+ NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ if (!Cools.isEmpty(response) && response.isSuccess()) {
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ return true;
+ } else {
+// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+ return false;
+ }
+ }
+
private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
//缁勮瀵硅薄鏁版嵁
Map<String, Object> data = new HashMap<String, Object>();
@@ -296,6 +313,47 @@
return data;
}
+ private Object processInvcount(InventoryCheckOrder checkOrder) {
+ List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("order_no", checkOrder.getOrderNo()));
+ if (inventoryCheckOrderDetls.isEmpty()) {
+ throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
+ }
+
+ //缁勮瀵硅薄鏁版嵁
+ Map<String, Object> data = new HashMap<String, Object>();
+
+ //浠撳簱id
+ String cwarehouseid = null;
+ List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>();
+ for (InventoryCheckOrderDetl inventoryCheckOrderDetl : inventoryCheckOrderDetls) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>()
+ .eq("matnr", inventoryCheckOrderDetl.getMatnr())
+ .eq("batch", inventoryCheckOrderDetl.getBatch())
+ );
+ if (wrkDetls.isEmpty()) {
+ throw new CoolException("宸ヤ綔妗f槑缁嗕笉瀛樺湪");
+ }
+
+ cwarehouseid = wrkDetls.get(0).getStandby1();
+
+ InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
+ invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr());
+ invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch());
+ invCountBodyVO.setNcountastnum(inventoryCheckOrderDetl.getCheckAnfme());
+ invCountBodyVOList.add(invCountBodyVO);
+ }
+
+ InvCountHeaderVO invCountHeaderVO = new InvCountHeaderVO();
+ invCountHeaderVO.setPk_org("FYT");
+ invCountHeaderVO.setCtrantypeid("4R-01");
+ invCountHeaderVO.setCwarehouseid(cwarehouseid);
+
+ data.put("InvCountHeaderVO", invCountHeaderVO);
+ data.put("InvCountBodyVO", invCountBodyVOList);
+ return data;
+ }
+
private Object processZKRK(List<OrderDetl> orderDetls) {
//缁勮瀵硅薄鏁版嵁
Map<String, Object> data = new HashMap<String, Object>();
diff --git a/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
new file mode 100644
index 0000000..424577b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
@@ -0,0 +1,127 @@
+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.service.InventoryCheckOrderDetlService;
+import com.zy.asrs.service.InventoryCheckOrderService;
+import com.zy.asrs.service.ReportToThirdService;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Slf4j
+@Component
+public class ReportInventoryCheckOrdersScheduler {
+
+ @Autowired
+ private InventoryCheckOrderService inventoryCheckOrderService;
+ @Autowired
+ private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
+ @Autowired
+ private ConfigService configService;
+ @Autowired
+ private ReportToThirdService reportToThirdService;
+
+ /**
+ * 涓婃姤鐩樼偣缁撴灉
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ public void execute() {
+ List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
+ .eq("status", 1));
+ if (inventoryCheckOrders.isEmpty()) {
+ return;
+ }
+
+ 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) {
+ boolean result = reportToThirdService.reportCheckOrder(checkOrder);
+ if (!result) {
+ continue;
+ }
+
+ checkOrder.setStatus("2");
+ if (!inventoryCheckOrderService.updateById(checkOrder)) {
+ log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo());
+ } else {
+ log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo());
+ }
+ }
+ }
+ }
+
+ /**
+ * 鑷姩鍒犻櫎瓒呰繃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("CheckOrderNum");
+// 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());
+// }
+// }
+// }
+// }
+
+}
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 5f241c3..59c2a50 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,17 +1,9 @@
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;
@@ -34,17 +26,6 @@
@Autowired
private WorkMastHandler workMastHandler;
- @Autowired
- private InventoryCheckOrderService inventoryCheckOrderService;
-
-
- @Autowired
- private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
-
-
- @Autowired
- private ConfigService configService;
-
@Scheduled(cron = "0/3 * * * * ? ")
public void execute() {
@@ -60,66 +41,6 @@
wrkMast.setErrorTime(new Date());
if (!wrkMastService.updateById(wrkMast)) {
log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
- }
- }
- }
- }
-
- /**
- * 鑷姩鍒犻櫎瓒呰繃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("CheckOrderNum");
- 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());
}
}
}
diff --git a/src/main/java/com/zy/nc/vo/InvCountBodyVO.java b/src/main/java/com/zy/nc/vo/InvCountBodyVO.java
new file mode 100644
index 0000000..12b3fb4
--- /dev/null
+++ b/src/main/java/com/zy/nc/vo/InvCountBodyVO.java
@@ -0,0 +1,14 @@
+package com.zy.nc.vo;
+
+import lombok.Data;
+
+@Data
+public class InvCountBodyVO {
+
+ private String cmaterialoid;//鐗╂枡
+
+ private String vbatchcode;//鎵规
+
+ private Double ncountastnum;//鐩樼偣鏁伴噺
+
+}
diff --git a/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java b/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java
new file mode 100644
index 0000000..7de858b
--- /dev/null
+++ b/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java
@@ -0,0 +1,13 @@
+package com.zy.nc.vo;
+
+import lombok.Data;
+
+@Data
+public class InvCountHeaderVO {
+
+ // 蹇呭~瀛楁
+ private String pk_org; // 搴撳瓨缁勭粐鏈�鏂扮増鏈�
+ private String cwarehouseid; // 浠撳簱
+ private String ctrantypeid; // 鐩樼偣绫诲瀷
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3525f0a..9c42cc1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -99,6 +99,8 @@
whstrans: /nccloud/api/ic/whstrans/save
#4.2鍏朵粬鍑哄簱鍗曟柊澧�
generalout: /nccloud/api/ic/generalout/save
+ #鐩樼偣鍗曟柊澧�
+ invcountAdd: /nccloud/api/ic/invcount/save
#4.3.鍏朵粬鍏ュ簱鍗曞弬鐓ц浆搴撴柊澧�
#saveRefWhsTrans: http://ip:port/nccloud/api/ic/generalin/saveRefWhsTrans
#5.1鏂板杞簱鍗�
--
Gitblit v1.9.1