From c22266b4dfbe3f338d2dd0bb31b10df1b5c92fb5 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期六, 24 五月 2025 13:54:39 +0800 Subject: [PATCH] 13 --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 377 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 325 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 dc7520a..72b5c6d 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -10,14 +10,22 @@ import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.OrderService; import com.zy.asrs.service.ReportToThirdService; -import com.zy.common.utils.HttpHandler; +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.util.NcResultMessage; +import com.zy.nc.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j @@ -38,66 +46,331 @@ @Value("${NYNC.saveRefDelivery}") private String saveRefDelivery; + @Value("${NYNC.saveRefWhsTrans}") + private String saveRefWhsTrans; + + @Value("${NYNC.purchasein}") + private String purchasein; + + @Value("${NYNC.whstrans}") + private String whstrans; + + @Value("${NYNC.generalout}") + private String generalout; + + @Value("${NYNC.dbdd}") + private String dbdd; + @Override public void report(Order order, List<OrderDetl> orderDetls, DocType docType) { - Boolean http = false; - switch (order.getDocType().toString()) { - case "閿�鍞彂璐�": - http = http("", docType.getDocName(), nyncIp + port, saveRefDelivery); - if (Cools.isEmpty(order.getShipCode()) || order.getShipCode().equalsIgnoreCase("1")) { + int step = (Cools.isEmpty(order.getStep()) || order.getStep() == 0) ? 0 : order.getStep(); + NcResultMessage response = null; + Object process1 = null; + Object process2 = null; + try { + switch (order.getDocType$().toString()) { + case "閿�鍞彂璐�": + process1 = processXSFH(orderDetls); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("閿�鍞彂璐esponse:{}", response); + step = 10; + } + break; + case "杞簱-鍏ュ簱": + process1 = processZKRK(orderDetls); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefWhsTrans, JSONObject.toJSONString(process1)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("杞簱-鍏ュ簱response:{}", response); + step = 10; + } + 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; + } + break; + case "杞簱-鍑哄簱": + process1 = processZKCK(order, orderDetls); + List<Object> zkck1 = new ArrayList<>(); + zkck1.add(process1); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, whstrans, JSONObject.toJSONString(zkck1)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("杞簱-鍑哄簱1response:{}", response); + step = 1; + } - } - break; - case "浜ф垚鍝佸叆搴�": - break; - case "杈呮枡閲囪喘鍏ュ簱": - break; - case "杈呮枡鍙婃垚鍝佽浆搴�": - break; - case "鑷姩鍖呰鍏ュ簱": - break; - case "鍐呴儴璋冩嫧": - break; - default: - break; - } - if (http) { - // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� - if (!orderService.updateSettle(order.getId(), 6L, null)) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + process2 = processGENERALOUT2(orderDetls); + List<Object> zkck2 = new ArrayList<>(); + zkck2.add(process2); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, generalout, JSONObject.toJSONString(zkck2)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("杞簱-鍑哄簱2response:{}", response); + step = 10; + } + break; + case "闆嗗洟鍐呴儴璋冩嫧": + process1 = processDBDD(orderDetls); + //鍙戦�佽姹� + response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process1)); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response); + step = 10; + } + break; + default: + throw new CoolException("涓嶈兘璇嗗埆鐨勫崟鎹被鍨�"); } + if (step == 10) { + // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� + if (!orderService.updateSettle(order.getId(), 6L, null)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + } + } else if (step != 0) { + // 淇敼璁㈠崟鐘舵�� 鍋氭爣璁� + if (!orderService.updateSettleStep(order.getId(), 6L, null, step)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�"); + } finally { + reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery); } + } - private Boolean http(Object data, String docType, String url, String path) { + + private Object processXSFH(List<OrderDetl> orderDetls) { + //缁勮瀵硅薄鏁版嵁 + 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) { + 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.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid()); + saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid()); + saleOutHeadVO.setVdef2(nccSaleXsfhmxWms.getVdef2()); + saleOutHeadVO.setVdef3(nccSaleXsfhmxWms.getVdef3()); + saleOutHeadVO.setVdef4(nccSaleXsfhmxWms.getVdef4()); + saleOutHeadVO.setVdef7(nccSaleXsfhmxWms.getVdef7()); + saleOutHeadVO.setVdef8(nccSaleXsfhmxWms.getVdef8()); + saleOutHeadVO.setVdef13(nccSaleXsfhmxWms.getVdef13()); + saleOutHeadVO.setVdef14(nccSaleXsfhmxWms.getVdef14()); + } + saleOutBodyVO.setVbatchcode(orderDetl.getBatch()); + saleOutBodyVO.setNshouldnum(orderDetl.getAnfme()); + saleOutBodyVO.setNnum(orderDetl.getQty()); + saleOutBodyVOList.add(saleOutBodyVO); + } + data.put("SaleOutHeadVO", saleOutHeadVO); + data.put("SaleOutBodyVO", saleOutBodyVOList); + return data; + } + + private Object processZKRK(List<OrderDetl> orderDetls) { + //缁勮瀵硅薄鏁版嵁 + 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) { + generalInBodyVO = new GeneralInBodyVO(); + String remark = orderDetl.getRemark(); + if (!Cools.isEmpty(remark)) { + NccScZkmxbWms nccScZkmxbWms = JSONObject.parseObject(remark, NccScZkmxbWms.class); + generalInBodyVO.setCsourcebillbid(nccScZkmxbWms.getCspecialbid()); + generalInBodyVO.setCsourcebillhid(nccScZkmxbWms.getCspecialhid()); + + generalInBodyVO.setNnum(orderDetl.getQty()); + generalInBodyVO.setNshouldnum(orderDetl.getAnfme()); + generalInBodyVO.setCsourcetype(nccScZkmxbWms.getZklxbm()); + } + generalInBodyVOS.add(generalInBodyVO); + } + data.put("GeneralInHeadVO", generalInHeadVO); + data.put("GeneralInBodyVO", generalInBodyVOS); + return data; + } + + + 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<>(); + for (OrderDetl orderDetl : orderDetls) { + 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"); + } + iaIjBillBS.add(iaIjBillB); + } + data.put("ia_ijbill", iaIjBill); + data.put("ia_ijbill_b", iaIjBillBS); + 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.setCotherbizid(order.getAllotItemId() + ""); + whsTransBillHeaderVO.setCtrantypeid("4K-Cxx-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.setVfree10(orderDetl.getBatch()); + whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr()); + //} + whsTransBillBodyVOS.add(whsTransBillBodyVO); + } + data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO); + data.put("WhsTransBillBodyVO", whsTransBillBodyVOS); + return data; + } + + + private Object processCGDH(List<OrderDetl> orderDetls) { + //缁勮瀵硅薄鏁版嵁 + 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.setCfanaceorgoid("FYT"); + ic_purchasein_b ic_purchasein_b = null; + List<ic_purchasein_b> ic_purchasein_bs = new ArrayList<>(); + for (OrderDetl orderDetl : orderDetls) { + ic_purchasein_b = new ic_purchasein_b(); + String remark = orderDetl.getRemark(); + if (!Cools.isEmpty(remark)) { + NccCgCgdhdWms nccCgCgdhdWms = JSONObject.parseObject(remark, NccCgCgdhdWms.class); + 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()); + ic_purchasein_b.setNnum(orderDetl.getQty()); + ic_purchasein_b.setCsourcetype(nccCgCgdhdWms.getDhlxbm()); + ic_purchasein_b.setVbatchcode(orderDetl.getBatch()); + } + ic_purchasein_bs.add(ic_purchasein_b); + } + data.put("ic_purchasein_h", ic_purchasein_h); + data.put("ic_purchasein_b", ic_purchasein_bs); + return data; + } + + /** + * @param orderDetls + * @return + */ + private Object processGENERALOUT(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<>(); + 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()); + } + ic_purchasein_bs.add(generalout_b); + } + data.put("ic_generalout_h", generalout_h); + data.put("ic_generalout_b", ic_purchasein_bs); + return data; + } + + + /** + * @param orderDetls + * @return + */ + private Object processGENERALOUT2(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<>(); + 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()); + } + ic_purchasein_bs.add(generalout_b); + } + data.put("ic_generalout_h", generalout_h); + data.put("ic_generalout_b", ic_purchasein_bs); + return data; + } + + + private Boolean reportApiLog(Object data, String docType, String url, String path) { String response = ""; boolean success = false; - try { - response = new HttpHandler.Builder() - .setUri(url) - .setPath(path) - .setJson(JSON.toJSONString(data)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(1)) { - return true; - } - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url + path, JSON.toJSONString(data), response); - } catch (IOException e) { - e.printStackTrace(); - } finally { - apiLogService.save( - docType, - url + path, - null, - "127.0.0.1", - JSON.toJSONString(data), - response, - success - ); - } + apiLogService.save( + docType, + url + path, + null, + "127.0.0.1", + JSON.toJSONString(data), + response, + success + ); return false; } } -- Gitblit v1.9.1