From aa528e202a458157157b4b4541858e27eaf87d59 Mon Sep 17 00:00:00 2001 From: ytfl <ytfl@qq.com> Date: 星期六, 19 七月 2025 14:30:11 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 257 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 221 insertions(+), 36 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 221dee2..c9e5522 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -6,16 +6,12 @@ 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; import com.zy.nc.service.NccScPcdaWmsService; import com.zy.nc.util.NcResultMessage; import com.zy.nc.vo.*; @@ -24,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; @@ -35,15 +32,23 @@ @Autowired private ApiLogService apiLogService; - @Autowired private OrderService orderService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; @Autowired private StoreTypeService storeTypeService; @Autowired private NccScPcdaWmsService nccScPcdaWmsService; + + @Autowired + private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService; @Value("${NYNC.ip}") private String nyncIp; @@ -56,6 +61,9 @@ @Value("${NYNC.saveRefWhsTrans}") private String saveRefWhsTrans; + + @Value("${NYNC.invcountAdd}") + private String invcountAdd; @Value("${NYNC.purchasein}") private String purchasein; @@ -78,6 +86,8 @@ Object process2 = null; String memo = order.getMemo(); String remark = ""; + boolean success = false; + log.info("璁㈠崟寮�濮嬩笂鎶�:{}", JSON.toJSONString(order)); try { switch (order.getDocType$().toString()) { case "閿�鍞��璐�": @@ -87,6 +97,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("閿�鍞彂璐esponse:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -98,6 +109,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("閿�鍞彂璐esponse:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -109,6 +121,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍏ュ簱response:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -138,6 +151,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍑哄簱2response:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -160,6 +174,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍑哄簱2response:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -173,6 +188,7 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response); step = 10; + success = true; } else { remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } @@ -195,11 +211,71 @@ e.printStackTrace(); throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�"); } finally { - reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery); + reportApiLog(order, process1, process2, response, order.getDocType$(), nyncIp, saveRefDelivery, success); } } + @Override + public boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme) { + Object process1 = processTKRK(matnr, batch, orderNo, anfme); + //鍙戦�佽姹� + NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, 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; + } + } + + @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) { //缁勮瀵硅薄鏁版嵁 @@ -240,6 +316,99 @@ return data; } + private Object processTKRK(String matnr,String batch, String orderNo, Double anfme) { +// EntityWrapper<NccXsckmxTkWms> wrapper = new EntityWrapper<>(); +// wrapper.eq("VBATCHCODE", batch).eq("VSOURCEBILLCODE", orderNo); +// NccXsckmxTkWms nccXsckmxTkWms = nccXsckmxTkWmsService.selectOne(wrapper); +// if (null == nccXsckmxTkWms) { +// throw new CoolException("鏈壘鍒版鏉$爜"); +// } + + NccSaleXsfhmxWms nccSaleXsfhmxWms = nccSaleXsfhmxWmsService.selectOne(new EntityWrapper<NccSaleXsfhmxWms>() + .eq("VBILLCODE", orderNo) + .eq("WLBM", matnr) + ); + if(null == nccSaleXsfhmxWms) { + throw new CoolException("鏈壘鍒伴攢鍞崟鎹�"); + } + + //缁勮瀵硅薄鏁版嵁 + Map<String, Object> data = new HashMap<String, Object>(); + SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO(); + saleOutHeadVO.setPk_org("FYT"); + SaleOutBodyVO saleOutBodyVO = null; + List<SaleOutBodyVO> saleOutBodyVOList = new ArrayList<>(); + + saleOutBodyVO = new SaleOutBodyVO(); + saleOutBodyVO.setCsourcetype("4331"); + saleOutBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid()); + saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid()); + saleOutHeadVO.setCwarehouseid(nccSaleXsfhmxWms.getFhckbm()); + + saleOutBodyVO.setVbatchcode(batch); + saleOutBodyVO.setNnum(anfme * -1); + saleOutBodyVOList.add(saleOutBodyVO); + + 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) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); @@ -272,26 +441,36 @@ private Object processDBDD(List<OrderDetl> orderDetls) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); - IaIjBill iaIjBill = new IaIjBill(); - iaIjBill.setPk_org("FYT"); - //iaIjBill.setCwarehouseid("6101"); - IaIjBillB iaIjBillB = null; - List<IaIjBillB> iaIjBillBS = new ArrayList<>(); + + String hid = ""; + List<IaIjBillB> bids = new ArrayList<>(); for (OrderDetl orderDetl : orderDetls) { - iaIjBillB = new IaIjBillB(); + if (orderDetl.getQty() <= 0) { + continue; + } + IaIjBillB iaIjBillB = new IaIjBillB(); String remark = orderDetl.getRemark(); if (!Cools.isEmpty(remark)) { - NccSaleDbddWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleDbddWms.class); - iaIjBillB.setCinventoryid(nccSaleXsfhmxWms.getWlbm()); - iaIjBillB.setCinventoryvid(nccSaleXsfhmxWms.getWlbm()); - iaIjBillB.setCsrcid(nccSaleXsfhmxWms.getCbillid()); - iaIjBillB.setNnum(orderDetl.getQty().intValue() + ""); - iaIjBillB.setPk_org("FYT"); + NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetl.getBatch()).eq("wlbm", orderDetl.getMatnr())); + if (nccScPcdaWms == null) { + throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetl.getBatch() + orderDetl.getMatnr()); + } + + Double weight = MatUtils.calcWeight(orderDetl.getMatnr(), orderDetl.getQty()); + NccSaleDbddWms nccSaleDbddWms = JSONObject.parseObject(remark, NccSaleDbddWms.class); + iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid()); + iaIjBillB.setNassistnum(weight); + iaIjBillB.setNnum(orderDetl.getQty()); + iaIjBillB.setVbatchcode(orderDetl.getBatch()); + iaIjBillB.setClocationid(""); + iaIjBillB.setCstateid(nccScPcdaWms.getVcode()); + + hid = nccSaleDbddWms.getCbillid(); } - iaIjBillBS.add(iaIjBillB); + bids.add(iaIjBillB); } - data.put("ia_ijbill", iaIjBill); - data.put("ia_ijbill_b", iaIjBillBS); + data.put("hid", hid); + data.put("bids", bids); return data; } @@ -347,7 +526,7 @@ } whsTransBillBodyVO = new WhsTransBillBodyVO(); - whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode()); + whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkStorestate()); String remark = orderDetl.getRemark(); //if (!Cools.isEmpty(remark)) { @@ -355,6 +534,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); @@ -386,10 +566,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(); @@ -397,7 +578,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); @@ -416,16 +598,19 @@ } - private Boolean reportApiLog(Object data, String docType, String url, String path) { - String response = ""; - boolean success = false; + private Boolean reportApiLog(Order order, Object process1, Object process2, Object response, String docType, String url, String path, Boolean success) { + HashMap<String, Object> request = new HashMap<>(); + request.put("order", order); + request.put("process1", process1); + request.put("process2", process2); + 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