From de47d3e4cfe6f600e25e88c4a31b6fef1dc41182 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 20 十月 2025 08:47:18 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 148 ++++++++++++++++++++++++++++++-------------------
1 files changed, 90 insertions(+), 58 deletions(-)
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 393e27c..ec8faa1 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -220,12 +220,17 @@
}
@Override
- public boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme) {
+ public boolean reportTkrk(WaitPakin waitPakin) {
+ String matnr = waitPakin.getMatnr();
+ String batch = waitPakin.getBatch();
+ String orderNo = waitPakin.getTkFlag();
+ Double anfme = waitPakin.getAnfme();
+
Object process1 = null;
NcResultMessage response1 = null;
boolean success1 = false;
try {
- process1 = processTKRK(matnr, batch, orderNo, anfme);
+ process1 = processTKRK(matnr, batch, orderNo, anfme, waitPakin.getCstateid());
//鍙戦�佽姹�
response1 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
log.info("閫�搴撳叆搴搑esponse:{}", response1);
@@ -245,7 +250,7 @@
NcResultMessage response2 = null;
boolean success2 = false;
try {
- process2 = processDBTK(matnr, batch, orderNo, anfme);
+ process2 = processDBTK(matnr, batch, orderNo, anfme, waitPakin.getCstateidVcode());
//鍙戦�佽姹�
response2 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process2));
log.info("閫�搴撳叆搴搑esponse:{}", response2);
@@ -265,36 +270,48 @@
}
@Override
- public boolean reportCheckOrder(String matnr, String batch) {
- List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
- .eq("matnr", matnr)
- .eq("batch", batch)
- );
-
- ArrayList<String> warehouseIdList = new ArrayList<>();
+ public boolean reportCheckOrder(List<InventoryCheckOrderDetl> checkOrderDetls) {
ArrayList<String> orderNoList = new ArrayList<>();
+ HashMap<String, List<InventoryCheckOrderDetl>> map = new HashMap<>();
for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
- if (!warehouseIdList.contains(checkOrderDetl.getCwarehouseid())) {
- warehouseIdList.add(checkOrderDetl.getCwarehouseid());
+ if (map.containsKey(checkOrderDetl.getCwarehouseid())) {
+ List<InventoryCheckOrderDetl> list = map.get(checkOrderDetl.getCwarehouseid());
+ list.add(checkOrderDetl);
+ map.put(checkOrderDetl.getCwarehouseid(), list);
+ }else {
+ List<InventoryCheckOrderDetl> list = new ArrayList<>();
+ list.add(checkOrderDetl);
+ map.put(checkOrderDetl.getCwarehouseid(), list);
}
+
if (!orderNoList.contains(checkOrderDetl.getOrderNo())) {
orderNoList.add(checkOrderDetl.getOrderNo());
}
}
boolean result = true;
- for (String cwarehouseid : warehouseIdList) {
- Object process1 = processInvcount(matnr, batch, cwarehouseid);
- //鍙戦�佽姹�
- NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
- log.info("鐩樼偣鍗時esponse:{}", response);
- if (!Cools.isEmpty(response) && response.isSuccess()) {
+ for (Map.Entry<String, List<InventoryCheckOrderDetl>> entry : map.entrySet()) {
+ String cwarehouseid = entry.getKey();
+ List<InventoryCheckOrderDetl> list = entry.getValue();
+ Object process1 = processInvcount(list, cwarehouseid);
+ NcResultMessage response = null;
+ boolean success = false;
+ try {
+ //鍙戦�佽姹�
+ response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
log.info("鐩樼偣鍗時esponse:{}", response);
- } else {
- result = false;
+ if (!Cools.isEmpty(response) && response.isSuccess()) {
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ success = true;
+ } else {
+ result = false;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ reportApiLog(null, process1, null, response, "鐩樼偣涓婃姤", nyncIp, invcountAdd, success);
}
}
-
if (result) {
List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
@@ -350,7 +367,7 @@
return data;
}
- private Object processTKRK(String matnr,String batch, String orderNo, Double anfme) {
+ private Object processTKRK(String matnr, String batch, String orderNo, Double anfme, String cstateid) {
// EntityWrapper<NccXsckmxTkWms> wrapper = new EntityWrapper<>();
// wrapper.eq("VBATCHCODE", batch).eq("VSOURCEBILLCODE", orderNo);
// NccXsckmxTkWms nccXsckmxTkWms = nccXsckmxTkWmsService.selectOne(wrapper);
@@ -362,7 +379,7 @@
.eq("VBILLCODE", orderNo)
.eq("WLBM", matnr)
);
- if(null == nccSaleXsfhmxWms) {
+ if (null == nccSaleXsfhmxWms) {
throw new CoolException("鏈壘鍒伴攢鍞崟鎹�");
}
@@ -381,6 +398,7 @@
saleOutBodyVO.setVbatchcode(batch);
saleOutBodyVO.setNnum(anfme * -1);
+ saleOutBodyVO.setCstateid(cstateid);
saleOutBodyVOList.add(saleOutBodyVO);
data.put("SaleOutHeadVO", saleOutHeadVO);
@@ -388,7 +406,7 @@
return data;
}
- private Object processDBTK(String matnr, String batch, String orderNo, Double anfme) {
+ private Object processDBTK(String matnr, String batch, String orderNo, Double anfme, String cstateid) {
List<NccSaleDbddWms> nccSaleDbddWmsList = nccSaleDbddWmsService.selectList(new EntityWrapper<NccSaleDbddWms>()
.eq("wlbm", matnr)
.eq("vbillcode", orderNo)
@@ -405,10 +423,10 @@
List<IaIjBillB> bids = new ArrayList<>();
IaIjBillB iaIjBillB = new IaIjBillB();
- NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", batch).eq("wlbm", matnr));
- if (nccScPcdaWms == null) {
- throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + batch + "-" + matnr);
- }
+// NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", batch).eq("wlbm", matnr));
+// if (nccScPcdaWms == null) {
+// throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + batch + "-" + matnr);
+// }
Double weight = MatUtils.calcWeight(matnr, anfme);
iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid());
@@ -416,7 +434,7 @@
iaIjBillB.setNnum(anfme * -1);
iaIjBillB.setVbatchcode(batch);
iaIjBillB.setClocationid("");
- iaIjBillB.setCstateid(nccScPcdaWms.getVcode());
+ iaIjBillB.setCstateid(cstateid);
bids.add(iaIjBillB);
@@ -425,45 +443,59 @@
return data;
}
- private Object processInvcount(String matnr, String batch, String cwarehouseid) {
- List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
- .eq("matnr", matnr)
- .eq("batch", batch)
- .eq("cwarehouseid", cwarehouseid)
- );
+ private Object processInvcount(List<InventoryCheckOrderDetl> inventoryCheckOrderDetls, String cwarehouseid) {
if (inventoryCheckOrderDetls.isEmpty()) {
throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
}
- //鍚堝苟鏁伴噺
- BigDecimal checkAnfmeDecimal = new BigDecimal(0);
+ HashMap<String, InventoryCheckOrderDetl> map = new HashMap<>();
for (InventoryCheckOrderDetl checkOrderDetl : inventoryCheckOrderDetls) {
- checkAnfmeDecimal = checkAnfmeDecimal.add(BigDecimal.valueOf(checkOrderDetl.getCheckAnfme()));
- }
+ String key = checkOrderDetl.getMatnr() + "_" + checkOrderDetl.getBatch() + "_" + checkOrderDetl.getCstateid();
+ if (map.containsKey(key)) {
+ InventoryCheckOrderDetl orderDetl = map.get(key);
+ BigDecimal checkAnfmeDecimal = BigDecimal.valueOf(orderDetl.getCheckAnfme());
+ checkAnfmeDecimal = checkAnfmeDecimal.add(BigDecimal.valueOf(checkOrderDetl.getCheckAnfme()));
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(orderDetl.getMatnr(), checkAnfmeDecimal.doubleValue());
- //璁$畻杈呮暟閲�
- Double weight = MatUtils.calcWeight(matnr, checkAnfmeDecimal.doubleValue());
+ orderDetl.setCheckAnfme(checkAnfmeDecimal.doubleValue());
+ orderDetl.setWeight(weight);
+ map.put(key, orderDetl);
+ } else {
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(checkOrderDetl.getMatnr(), checkOrderDetl.getCheckAnfme());
+ checkOrderDetl.setWeight(weight);
+ map.put(key, checkOrderDetl);
+ }
+ }
//缁勮瀵硅薄鏁版嵁
Map<String, Object> data = new HashMap<String, Object>();
List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>();
- NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
- .eq("WLBM", matnr)
- .eq("VBATCHCODE", batch)
- );
- if (null == nccScPcdaWms) {
- throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
+ for (Map.Entry<String, InventoryCheckOrderDetl> entry : map.entrySet()) {
+ InventoryCheckOrderDetl checkOrderDetl = entry.getValue();
+ String matnr = checkOrderDetl.getMatnr();
+ String batch = checkOrderDetl.getBatch();
+
+ NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
+ .eq("WLBM", matnr)
+ .eq("VBATCHCODE", batch)
+ );
+ if (null == nccScPcdaWms) {
+ throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
+ }
+ InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
+ invCountBodyVO.setCmaterialoid(matnr);
+ invCountBodyVO.setVbatchcode(batch);
+ invCountBodyVO.setNcountnum(checkOrderDetl.getCheckAnfme());
+ invCountBodyVO.setNcountastnum(checkOrderDetl.getWeight());
+ invCountBodyVO.setCstateid(checkOrderDetl.getCstateid());
+ invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
+ invCountBodyVOList.add(invCountBodyVO);
}
- InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
- invCountBodyVO.setCmaterialoid(matnr);
- invCountBodyVO.setVbatchcode(batch);
- invCountBodyVO.setNcountnum(checkAnfmeDecimal.doubleValue());
- invCountBodyVO.setNcountastnum(weight);
- invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
- invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
- invCountBodyVOList.add(invCountBodyVO);
+
InvCountHeaderVO invCountHeaderVO = new InvCountHeaderVO();
invCountHeaderVO.setPk_org("FYT");
@@ -532,8 +564,8 @@
iaIjBillB.setCstateid(orderDetl.getCstateidVcode());
hid = nccSaleDbddWms.getCbillid();
+ bids.add(iaIjBillB);
}
- bids.add(iaIjBillB);
}
data.put("hid", hid);
data.put("bids", bids);
@@ -592,7 +624,7 @@
}
whsTransBillBodyVO = new WhsTransBillBodyVO();
- whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
+ whsTransBillBodyVO.setCstateid(orderDetl.getCstateid());
String remark = orderDetl.getRemark();
//if (!Cools.isEmpty(remark)) {
@@ -644,7 +676,7 @@
generalout_b.setCsourcetype("4K-01");
generalout_b.setCsourcebillhid(cspecialhid);
generalout_b.setCmaterialvid(orderDetl.getMatnr());
- generalout_b.setCstateid(nccScPcdaWms.getPkStorestate());
+ generalout_b.setCstateid(orderDetl.getCstateid());
generalout_b.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
StoreType storeType = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", orderDetl.getStandby1()));
generalout_b.setCdptvid(storeType.getDepartmentId());
--
Gitblit v1.9.1