From 995aeeda06e8e06a8880eb2e04e239cf03fada7c Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期一, 16 六月 2025 15:40:59 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 268 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 184 insertions(+), 84 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 e668565..507c554 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -1,20 +1,23 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +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.nc.SendUtil; -import com.zy.nc.entity.NccCgCgdhdWms; -import com.zy.nc.entity.NccSaleDbddWms; -import com.zy.nc.entity.NccSaleXsfhmxWms; -import com.zy.nc.entity.NccScZkmxbWms; +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.*; import lombok.extern.slf4j.Slf4j; @@ -36,6 +39,15 @@ @Autowired private OrderService orderService; + + @Autowired + private StoreTypeService storeTypeService; + + @Autowired + private NccScPcdaWmsService nccScPcdaWmsService; + + @Autowired + private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService; @Value("${NYNC.ip}") private String nyncIp; @@ -68,15 +80,30 @@ NcResultMessage response = null; Object process1 = null; Object process2 = null; + String memo = order.getMemo(); + String remark = ""; try { switch (order.getDocType$().toString()) { - case "閿�鍞彂璐�": - process1 = processXSFH(orderDetls); + case "閿�鍞��璐�": + process1 = processXSFH(orderDetls, true); //鍙戦�佽姹� response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1)); if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("閿�鍞彂璐esponse:{}", response); step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); + } + break; + case "閿�鍞彂璐�": + process1 = processXSFH(orderDetls, false); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("閿�鍞彂璐esponse:{}", response); + step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } break; case "杞簱-鍏ュ簱": @@ -86,22 +113,28 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍏ュ簱response:{}", response); step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } break; case "閲囪喘鍒拌揣": - process1 = processCGDH(orderDetls); - List<Object> cg = new ArrayList<>(); - cg.add(process1); - //鍙戦�佽姹� - response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg)); - if (!Cools.isEmpty(response) && response.isSuccess()) { - log.info("閲囪喘鍒拌揣response:{}", response); - step = 10; - } + //涓嶉渶瑕佷笂鎶ヤ簡 + step = 10; +// process1 = processCGDH(orderDetls); +// List<Object> cg = new ArrayList<>(); +// cg.add(process1); +// //鍙戦�佽姹� +// response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg)); +// if (!Cools.isEmpty(response) && response.isSuccess()) { +// log.info("閲囪喘鍒拌揣response:{}", response); +// step = 10; +// } else { +// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); +// } break; case "杞簱-鍑哄簱": if (step == 1) { - process2 = processGENERALOUT2(orderDetls); + process2 = processGENERALOUT2(orderDetls, order.getOperMemb(), order.getItemId(), memo); List<Object> zkck2 = new ArrayList<>(); zkck2.add(process2); //鍙戦�佽姹� @@ -109,6 +142,8 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍑哄簱2response:{}", response); step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } } else { process1 = processZKCK(order, orderDetls); @@ -117,9 +152,11 @@ //鍙戦�佽姹� response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, whstrans, JSONObject.toJSONString(zkck1)); if (!Cools.isEmpty(response) && response.isSuccess()) { + step = 1; log.info("杞簱-鍑哄簱1response:{}", response); + memo = response.getData().toString(); - process2 = processGENERALOUT2(orderDetls); + process2 = processGENERALOUT2(orderDetls, order.getOperMemb(), order.getItemId(), memo); List<Object> zkck2 = new ArrayList<>(); zkck2.add(process2); //鍙戦�佽姹� @@ -127,9 +164,9 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("杞簱-鍑哄簱2response:{}", response); step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } - } else { - step = 1; } } break; @@ -140,6 +177,8 @@ if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response); step = 10; + } else { + remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); } break; default: @@ -152,7 +191,7 @@ } } else if (step != 0) { // 淇敼璁㈠崟鐘舵�� 鍋氭爣璁� - if (!orderService.updateSettleStep(order.getId(), 4L, null, step)) { + if (!orderService.updateSettleStep(order.getId(), 4L, null, step, memo, remark)) { throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); } } @@ -165,22 +204,38 @@ } + @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; + } + } - private Object processXSFH(List<OrderDetl> orderDetls) { + private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO(); saleOutHeadVO.setPk_org("FYT"); - saleOutHeadVO.setCwarehouseid("6101"); SaleOutBodyVO saleOutBodyVO = null; List<SaleOutBodyVO> saleOutBodyVOList = new ArrayList<>(); for (OrderDetl orderDetl : orderDetls) { + if (orderDetl.getQty() <= 0) { + continue; + } saleOutBodyVO = new SaleOutBodyVO(); String remark = orderDetl.getRemark(); if (!Cools.isEmpty(remark)) { NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class); saleOutBodyVO.setCsourcetype("4331"); - saleOutBodyVO.setClocationid("610101"); + //saleOutBodyVO.setClocationid("610101"); saleOutBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid()); saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid()); saleOutHeadVO.setVdef2(nccSaleXsfhmxWms.getVdef2()); @@ -191,11 +246,51 @@ saleOutHeadVO.setVdef13(nccSaleXsfhmxWms.getVdef13()); saleOutHeadVO.setVdef14(nccSaleXsfhmxWms.getVdef14()); } + saleOutHeadVO.setCwarehouseid(orderDetl.getStandby1()); + saleOutBodyVO.setVbatchcode(orderDetl.getBatch()); - saleOutBodyVO.setNshouldnum(orderDetl.getAnfme()); - saleOutBodyVO.setNnum(orderDetl.getQty()); + saleOutBodyVO.setNshouldnum(flag ? -orderDetl.getQty() : orderDetl.getQty()); + saleOutBodyVO.setNnum(flag ? -orderDetl.getQty() : orderDetl.getQty()); saleOutBodyVOList.add(saleOutBodyVO); } + data.put("SaleOutHeadVO", saleOutHeadVO); + data.put("SaleOutBodyVO", saleOutBodyVOList); + 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; @@ -206,7 +301,6 @@ Map<String, Object> data = new HashMap<String, Object>(); GeneralInHeadVO generalInHeadVO = new GeneralInHeadVO(); generalInHeadVO.setPk_org("FYT"); - generalInHeadVO.setCwarehouseid("6101"); GeneralInBodyVO generalInBodyVO = null; List<GeneralInBodyVO> generalInBodyVOS = new ArrayList<>(); for (OrderDetl orderDetl : orderDetls) { @@ -220,7 +314,9 @@ generalInBodyVO.setNnum(orderDetl.getQty()); generalInBodyVO.setNshouldnum(orderDetl.getAnfme()); generalInBodyVO.setCsourcetype(nccScZkmxbWms.getZklxbm()); + } + generalInHeadVO.setCwarehouseid(orderDetl.getStandby1()); generalInBodyVOS.add(generalInBodyVO); } data.put("GeneralInHeadVO", generalInHeadVO); @@ -255,31 +351,7 @@ return data; } - private Object processZKCK(Order order, List<OrderDetl> orderDetls) { - //缁勮瀵硅薄鏁版嵁 - Map<String, Object> data = new HashMap<String, Object>(); - WhsTransBillHeaderVO whsTransBillHeaderVO = new WhsTransBillHeaderVO(); - whsTransBillHeaderVO.setPk_org("FYT"); - whsTransBillHeaderVO.setCwarehouseid(order.getItemId()); - whsTransBillHeaderVO.setCtrantypeid("4K-01"); - WhsTransBillBodyVO whsTransBillBodyVO = null; - List<WhsTransBillBodyVO> whsTransBillBodyVOS = new ArrayList<>(); - for (OrderDetl orderDetl : orderDetls) { - whsTransBillBodyVO = new WhsTransBillBodyVO(); - String remark = orderDetl.getRemark(); - //if (!Cools.isEmpty(remark)) { - //NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class); - whsTransBillBodyVO.setNnum(orderDetl.getQty()); - whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr()); - whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch()); - //} - whsTransBillHeaderVO.setCotherbizid(orderDetl.getStandby1()); - whsTransBillBodyVOS.add(whsTransBillBodyVO); - } - data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO); - data.put("WhsTransBillBodyVO", whsTransBillBodyVOS); - return data; - } + private Object processCGDH(List<OrderDetl> orderDetls) { @@ -287,7 +359,7 @@ Map<String, Object> data = new HashMap<String, Object>(); ic_purchasein_h ic_purchasein_h = new ic_purchasein_h(); ic_purchasein_h.setPk_org("FYT"); - ic_purchasein_h.setCwarehouseid("6301"); + //ic_purchasein_h.setCwarehouseid("6301"); ic_purchasein_h.setCfanaceorgoid("FYT"); ic_purchasein_b ic_purchasein_b = null; List<ic_purchasein_b> ic_purchasein_bs = new ArrayList<>(); @@ -299,7 +371,6 @@ ic_purchasein_h.setCvendorid(nccCgCgdhdWms.getGysbm()); ic_purchasein_h.setCtrantypeid(nccCgCgdhdWms.getDhlxbm()); - ic_purchasein_b.setCsourcebillbid(nccCgCgdhdWms.getPkArriveorderB()); ic_purchasein_b.setCsourcebillhid(nccCgCgdhdWms.getPkArriveorder()); ic_purchasein_b.setCmaterialvid(orderDetl.getMatnr()); @@ -307,6 +378,7 @@ ic_purchasein_b.setCsourcetype(nccCgCgdhdWms.getDhlxbm()); ic_purchasein_b.setVbatchcode(orderDetl.getBatch()); } + ic_purchasein_h.setCwarehouseid(orderDetl.getStandby1()); ic_purchasein_bs.add(ic_purchasein_b); } data.put("ic_purchasein_h", ic_purchasein_h); @@ -314,56 +386,84 @@ return data; } - /** - * @param orderDetls - * @return - */ - private Object processGENERALOUT(List<OrderDetl> orderDetls) { + + private Object processZKCK(Order order, List<OrderDetl> orderDetls) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); - ic_generalout_h generalout_h = new ic_generalout_h(); - generalout_h.setPk_org("FYT"); - generalout_h.setCwarehouseid("6101"); - ic_generalout_b generalout_b = null; - List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>(); + WhsTransBillHeaderVO whsTransBillHeaderVO = new WhsTransBillHeaderVO(); + whsTransBillHeaderVO.setPk_org("FYT"); + whsTransBillHeaderVO.setCotherwhid(order.getItemId()); + whsTransBillHeaderVO.setCtrantypeid("4K-01"); + WhsTransBillBodyVO whsTransBillBodyVO = null; + List<WhsTransBillBodyVO> whsTransBillBodyVOS = new ArrayList<>(); for (OrderDetl orderDetl : orderDetls) { - generalout_b = new ic_generalout_b(); - String remark = orderDetl.getRemark(); - if (!Cools.isEmpty(remark)) { - NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class); - generalout_b.setMaterialvid(orderDetl.getMatnr()); - generalout_b.setNshouldassistnum(orderDetl.getQty()); - generalout_b.setVbatchcode(orderDetl.getBatch()); + 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()); } - ic_purchasein_bs.add(generalout_b); + + whsTransBillBodyVO = new WhsTransBillBodyVO(); + whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode()); + + String remark = orderDetl.getRemark(); + //if (!Cools.isEmpty(remark)) { + //NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class); + whsTransBillBodyVO.setNnum(orderDetl.getQty()); + whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr()); + whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch()); + //} + whsTransBillHeaderVO.setCwarehouseid(orderDetl.getStandby1()); + whsTransBillBodyVOS.add(whsTransBillBodyVO); } - data.put("ic_generalout_h", generalout_h); - data.put("ic_generalout_b", ic_purchasein_bs); + data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO); + data.put("WhsTransBillBodyVO", whsTransBillBodyVOS); return data; } - /** * @param orderDetls * @return */ - private Object processGENERALOUT2(List<OrderDetl> orderDetls) { + private Object processGENERALOUT2(List<OrderDetl> orderDetls, String renyuan, String rukucangku, String memo) { + Object o = JSONObject.parseArray(memo).get(0); + JSONObject jsonObject = JSONObject.parseObject(o.toString()); + String cspecialhid = JSONObject.parseObject(jsonObject.getString("ic.WhsTransBillHeaderVO")).getString("cspecialhid"); + List<String> s = new ArrayList<>(); + JSONArray objects = JSONObject.parseArray(jsonObject.getString("ic.WhsTransBillBodyVO")); + for (int i = 0; i < objects.size(); i++) { + s.add(objects.getJSONObject(i).getString("cspecialbid")); + } + //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); ic_generalout_h generalout_h = new ic_generalout_h(); generalout_h.setPk_org("FYT"); - generalout_h.setCwarehouseid("6101"); + //generalout_h.setCwarehouseid("6101"); ic_generalout_b generalout_b = null; List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>(); - for (OrderDetl orderDetl : orderDetls) { + 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()); +// } + OrderDetl orderDetl = orderDetls.get(i); + generalout_h.setCwarehouseid(orderDetl.getStandby1()); generalout_b = new ic_generalout_b(); - String remark = orderDetl.getRemark(); - if (!Cools.isEmpty(remark)) { - NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class); - generalout_b.setMaterialvid(orderDetl.getMatnr()); - generalout_b.setNshouldassistnum(orderDetl.getQty()); - generalout_b.setVbatchcode(orderDetl.getBatch()); - } + generalout_b.setCsourcebillbid(s.get(i)); + generalout_b.setCsourcetype("4K-01"); + generalout_b.setCsourcebillhid(cspecialhid); + generalout_b.setCmaterialvid(orderDetl.getMatnr()); + //generalout_b.setCstateid(nccScPcdaWms.getVcode()); + StoreType storeType = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", orderDetl.getStandby1())); + generalout_b.setCdptvid(storeType.getDepartmentId()); + generalout_b.setBillmaker(renyuan); + StoreType storeType2 = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", rukucangku)); + generalout_b.setCotherwhid(rukucangku); + generalout_b.setCothercalbodyvid(storeType2.getDepartmentId()); + + //generalout_b.setNshouldassistnum(orderDetl.getQty()); + generalout_b.setNnum(orderDetl.getQty()); + generalout_b.setVbatchcode(orderDetl.getBatch()); ic_purchasein_bs.add(generalout_b); } data.put("ic_generalout_h", generalout_h); -- Gitblit v1.9.1