From a5de20d0041431b7f5e92a49315082ff2140d447 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 13 七月 2025 10:48:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 153 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 133 insertions(+), 20 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 507c554..8ca6eff 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,9 @@
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.asrs.utils.MatUtils;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.*;
import com.zy.nc.service.NccSaleXsfhmxWmsService;
@@ -25,6 +20,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -36,9 +32,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;
@@ -61,6 +62,9 @@
@Value("${NYNC.saveRefWhsTrans}")
private String saveRefWhsTrans;
+ @Value("${NYNC.invcountAdd}")
+ private String invcountAdd;
+
@Value("${NYNC.purchasein}")
private String purchasein;
@@ -82,6 +86,7 @@
Object process2 = null;
String memo = order.getMemo();
String remark = "";
+ log.info("璁㈠崟寮�濮嬩笂鎶�:{}", JSON.toJSONString(order));
try {
switch (order.getDocType$().toString()) {
case "閿�鍞��璐�":
@@ -199,7 +204,7 @@
e.printStackTrace();
throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�");
} finally {
- reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
+ reportApiLog(order, process1, process2, response, order.getDocType$(), nyncIp, saveRefDelivery);
}
}
@@ -217,6 +222,52 @@
// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
return false;
}
+ }
+
+ @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<>();
+ ArrayList<String> orderNoList = new ArrayList<>();
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (!warehouseIdList.contains(checkOrderDetl.getCwarehouseid())) {
+ warehouseIdList.add(checkOrderDetl.getCwarehouseid());
+ }
+ 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()) {
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ } else {
+ result = false;
+ }
+ }
+
+
+ if (result) {
+ List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
+ .in("order_no", orderNoList)
+ .eq("status", 1)
+ );
+
+ for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) {
+ inventoryCheckOrder.setStatus("2");
+ inventoryCheckOrderService.updateById(inventoryCheckOrder);
+ }
+ }
+ return result;
}
private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
@@ -294,6 +345,61 @@
data.put("SaleOutHeadVO", saleOutHeadVO);
data.put("SaleOutBodyVO", saleOutBodyVOList);
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)
+ );
+ if (inventoryCheckOrderDetls.isEmpty()) {
+ throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
+ }
+
+ //鍚堝苟鏁伴噺
+ BigDecimal checkAnfmeDecimal = new BigDecimal(0);
+ for (InventoryCheckOrderDetl checkOrderDetl : inventoryCheckOrderDetls) {
+ checkAnfmeDecimal = checkAnfmeDecimal.add(BigDecimal.valueOf(checkOrderDetl.getCheckAnfme()));
+ }
+
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(matnr, checkAnfmeDecimal.doubleValue());
+
+ //缁勮瀵硅薄鏁版嵁
+ 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鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
+ }
+ 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");
+ invCountHeaderVO.setCtrantypeid("4R-01");
+ invCountHeaderVO.setCwarehouseid(cwarehouseid);
+
+ data.put("InvCountHeaderVO", invCountHeaderVO);
+ data.put("InvCountBodyVO", invCountBodyVOList);
+ data.put("paper", "1");
+ data.put("splr", "0");
+
+ ArrayList<Map<String, Object>> list = new ArrayList<>();
+ list.add(data);
+ return list;
}
private Object processZKRK(List<OrderDetl> orderDetls) {
@@ -403,7 +509,7 @@
}
whsTransBillBodyVO = new WhsTransBillBodyVO();
- whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode());
+ whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
String remark = orderDetl.getRemark();
//if (!Cools.isEmpty(remark)) {
@@ -411,6 +517,7 @@
whsTransBillBodyVO.setNnum(orderDetl.getQty());
whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr());
whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch());
+ whsTransBillBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
//}
whsTransBillHeaderVO.setCwarehouseid(orderDetl.getStandby1());
whsTransBillBodyVOS.add(whsTransBillBodyVO);
@@ -442,10 +549,11 @@
ic_generalout_b generalout_b = null;
List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
for (int i = 0; i < orderDetls.size(); i++) {
-// NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetls.get(i).getBatch()).eq("wlbm", orderDetls.get(i).getMatnr()));
-// if (nccScPcdaWms == null) {
-// throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetls.get(i).getBatch() + orderDetls.get(i).getMatnr());
-// }
+ NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetls.get(i).getBatch()).eq("wlbm", orderDetls.get(i).getMatnr()));
+ if (nccScPcdaWms == null) {
+ throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetls.get(i).getBatch() + orderDetls.get(i).getMatnr());
+ }
+
OrderDetl orderDetl = orderDetls.get(i);
generalout_h.setCwarehouseid(orderDetl.getStandby1());
generalout_b = new ic_generalout_b();
@@ -453,7 +561,8 @@
generalout_b.setCsourcetype("4K-01");
generalout_b.setCsourcebillhid(cspecialhid);
generalout_b.setCmaterialvid(orderDetl.getMatnr());
- //generalout_b.setCstateid(nccScPcdaWms.getVcode());
+ generalout_b.setCstateid(nccScPcdaWms.getPkStorestate());
+ generalout_b.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
StoreType storeType = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", orderDetl.getStandby1()));
generalout_b.setCdptvid(storeType.getDepartmentId());
generalout_b.setBillmaker(renyuan);
@@ -472,16 +581,20 @@
}
- private Boolean reportApiLog(Object data, String docType, String url, String path) {
- String response = "";
+ private Boolean reportApiLog(Order order, Object process1, Object process2, Object response, String docType, String url, String path) {
+ HashMap<String, Object> request = new HashMap<>();
+ request.put("order", order);
+ request.put("process1", process1);
+ request.put("process2", process2);
+
boolean success = false;
apiLogService.save(
docType,
url + path,
null,
"127.0.0.1",
- JSON.toJSONString(data),
- response,
+ JSON.toJSONString(request),
+ JSON.toJSONString(response),
success
);
return false;
--
Gitblit v1.9.1