From c82b47020ff5b0e76609454ab915afd0e27db199 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 01 七月 2025 13:47:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 71 insertions(+), 44 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 57ce31b..6424df5 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -20,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; @@ -223,18 +224,49 @@ } @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; + 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("orderNo", orderNoList) + .eq("status", 1) + ); + + for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) { + inventoryCheckOrder.setStatus("2"); + inventoryCheckOrderService.updateById(inventoryCheckOrder); + } + } + return result; } private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) { @@ -314,50 +346,45 @@ return data; } - private Object processInvcount(InventoryCheckOrder checkOrder) { + private Object processInvcount(String matnr, String batch, String cwarehouseid) { List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>() - .eq("order_no", checkOrder.getOrderNo())); + .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>(); - //浠撳簱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槑缁嗕笉瀛樺湪"); - } - NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>() - .eq("WLBM", inventoryCheckOrderDetl.getMatnr()) - .eq("VBATCHCODE", inventoryCheckOrderDetl.getBatch()) - ); - if(null == nccScPcdaWms) { - throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁"); - } - - cwarehouseid = wrkDetls.get(0).getStandby1(); - - //璁$畻杈呮暟閲� - Double weight = MatUtils.calcWeight(inventoryCheckOrderDetl.getMatnr(), inventoryCheckOrderDetl.getCheckAnfme()); - - InvCountBodyVO invCountBodyVO = new InvCountBodyVO(); - invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr()); - invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch()); - invCountBodyVO.setNcountnum(inventoryCheckOrderDetl.getCheckAnfme()); - invCountBodyVO.setNcountastnum(weight); - invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate()); - invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode()); - invCountBodyVOList.add(invCountBodyVO); + 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"); -- Gitblit v1.9.1