From 087db8aee2e9cbfb44b8e61531c1cace5e36a6e2 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期日, 28 四月 2024 14:53:52 +0800
Subject: [PATCH] ERP接口同步

---
 src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java |  134 +++++++++++++++++++++++++++-----------------
 1 files changed, 83 insertions(+), 51 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
index 3c86c42..de32211 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
@@ -2,87 +2,119 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.zy.asrs.entity.DocType;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
+import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.ErpAccessTokenScheduler;
 import com.zy.common.utils.HttpHandler;
 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 org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 @Service
 @Transactional
 public class OrderSendHandler extends AbstractHandler<String> {
-    private static final String erpIp = "10.100.221.19:81";
-    private static final String inPath = "/ierp/kapi/app/im/PurinbillApiPlugin";
-    private static final String outPath = "/ierp/kapi/app/im/SaloutbillApiPlugin";
 
+    @Value("${u8.url}")
+    private String url;
 
-
+    @Value("${u8.path}")
+    private String orderReportPath;
 
     @Autowired
     private OrderService orderService;
     @Autowired
     private DocTypeService docTypeService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     public void start(Order order) {
-        String accessToken = ErpAccessTokenScheduler.accessToken;
-        if (accessToken.equals("")) {
-            return;
+
+        List<OpenOrderPakoutParam> paramList = new ArrayList<>();
+        OpenOrderPakoutParam param = new OpenOrderPakoutParam();
+        paramList.add(param);
+
+        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+
+        param.setcCode(order.getOrderNo());
+        param.setcMaker(order.getOperMemb());
+        param.setcAccount(order.getCstmrName());
+        param.setcMemo(order.getMemo());
+        param.setType(order.getDocType$());
+        param.setdDate$(order.getCreateTime());
+        param.setAllocation(order.getItemName());
+
+
+        List<OpenOrderPakoutParam.Body> bodyList = new ArrayList<>();
+        param.setaDDBody(bodyList);
+
+        for(OrderDetl orderDetl : orderDetlList){
+            OpenOrderPakoutParam.Body body = new OpenOrderPakoutParam.Body();
+            body.setiQuantity(orderDetl.getQty());
+            body.setcInvCode(orderDetl.getMatnr());
+            body.setCbMemo(orderDetl.getMemo());
+            bodyList.add(body);
         }
 
-        HashMap<String, Object> header = new HashMap<>();
-        header.put("accessToken",accessToken);
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("orderNo",order.getOrderNo());
-        HttpHandler.Builder prepBuilder = new HttpHandler.Builder()
-                .setUri(erpIp)
-                .setHeaders(header)
-                .setJson(jsonObject.toJSONString());
-        JSONObject respJson;
+        doHttpRequest(paramList, "涓婃姤ERP鍑哄簱鍗曟嵁", url, orderReportPath, null, "127.0.0.1");
+
+        orderService.updateSettle(order.getId(),6L,0L);
 
 
-        //鍏ュ簱鍗曟嵁
-        if (docTypeService.selectOne(new EntityWrapper<DocType>()
-                .eq("doc_id",order.getDocType())).getPakin() == 1) {
-            try {
-                respJson = JSON.parseObject(
-                        prepBuilder.setPath(inPath)
-                        .build()
-                        .doPost());
-            } catch (IOException e) {
-                throw new RuntimeException(e);
+
+    }
+
+    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
+        String response = "";
+        boolean success = false;
+
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url)
+                    .setPath(path)
+                    .setJson(JSONObject.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+
+            if(Cools.isEmpty(jsonObject.get("errCode"))){
+                throw new CoolException(jsonObject.get("Message").toString());
             }
-        }else {
-            //鍑哄簱鍗曟嵁
-            try {
-                respJson = JSON.parseObject(
-                prepBuilder.setPath(outPath)
-                        .build()
-                        .doPost());
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        if ((boolean)respJson.get("success")) {
-            orderService.updateSettle(order.getId(),6L,1L);
-            log.info("鍗曟嵁:" + order.getOrderNo() + "鍥炰紶鎴愬姛锛屽凡鏇存柊鍗曟嵁鐘舵��");
-        }else {
 
-            order.setItemId(order.getItemId() + 1);
-            orderService.updateById(order);
-            log.info("鍗曟嵁:"+ order.getOrderNo()+" 鍥炰紶澶辫触锛岃繖鏄" + order.getItemId() + "娆″洖浼�");
-            log.info(respJson.toJSONString());
+            int code = (int) jsonObject.get("errCode");
+            if(code != 0){
+                throw new CoolException(jsonObject.get("errMsg").toString());
+            }
+            success = true;
+            return code;
+        }catch (Exception e){
+            log.error(e.getMessage());
+            throw new CoolException("璋冪敤鎺ュ彛鍝嶅簲閿欒");
+        }finally {
+            apiLogService.save(
+                    namespace,
+                    url + path,
+                    appkey,
+                    ip,
+                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
+                    response,
+                    success
+            );
         }
+
     }
 }

--
Gitblit v1.9.1