From 09b2e40a121c7ac1c5141eb788ab0de1eddb5503 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期六, 02 八月 2025 09:08:00 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 128 +++++++++++++++++++++++++----------------- 1 files changed, 76 insertions(+), 52 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 931afed..7a5871e 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.getOrderNo(); + 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,26 +270,30 @@ } @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); + 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 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1)); log.info("鐩樼偣鍗時esponse:{}", response); @@ -294,7 +303,6 @@ result = false; } } - if (result) { List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>() @@ -342,6 +350,7 @@ saleOutBodyVO.setVbatchcode(orderDetl.getBatch()); saleOutBodyVO.setNshouldnum(flag ? -orderDetl.getQty() : orderDetl.getQty()); saleOutBodyVO.setNnum(flag ? -orderDetl.getQty() : orderDetl.getQty()); + saleOutBodyVO.setCstateid(orderDetl.getCstateid()); saleOutBodyVOList.add(saleOutBodyVO); } data.put("SaleOutHeadVO", saleOutHeadVO); @@ -349,7 +358,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); @@ -361,7 +370,7 @@ .eq("VBILLCODE", orderNo) .eq("WLBM", matnr) ); - if(null == nccSaleXsfhmxWms) { + if (null == nccSaleXsfhmxWms) { throw new CoolException("鏈壘鍒伴攢鍞崟鎹�"); } @@ -380,6 +389,7 @@ saleOutBodyVO.setVbatchcode(batch); saleOutBodyVO.setNnum(anfme * -1); + saleOutBodyVO.setCstateid(cstateid); saleOutBodyVOList.add(saleOutBodyVO); data.put("SaleOutHeadVO", saleOutHeadVO); @@ -387,7 +397,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) @@ -404,10 +414,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()); @@ -415,7 +425,7 @@ iaIjBillB.setNnum(anfme * -1); iaIjBillB.setVbatchcode(batch); iaIjBillB.setClocationid(""); - iaIjBillB.setCstateid(nccScPcdaWms.getVcode()); + iaIjBillB.setCstateid(cstateid); bids.add(iaIjBillB); @@ -424,45 +434,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(nccScPcdaWms.getPkStorestate()); + 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"); @@ -531,8 +555,8 @@ iaIjBillB.setCstateid(orderDetl.getCstateidVcode()); hid = nccSaleDbddWms.getCbillid(); + bids.add(iaIjBillB); } - bids.add(iaIjBillB); } data.put("hid", hid); data.put("bids", bids); @@ -591,7 +615,7 @@ } whsTransBillBodyVO = new WhsTransBillBodyVO(); - whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkStorestate()); + whsTransBillBodyVO.setCstateid(orderDetl.getCstateid()); String remark = orderDetl.getRemark(); //if (!Cools.isEmpty(remark)) { @@ -643,7 +667,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