From ea69776780f0d7e0bb006517b7bb5543b0797c34 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期日, 27 四月 2025 08:42:48 +0800
Subject: [PATCH] #盘点上报

---
 src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java |  116 ++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java         |    1 
 src/main/java/com/zy/asrs/controller/CheckDetlController.java    |   11 +++
 src/main/java/com/zy/asrs/service/CheckDetlService.java          |    3 +
 4 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CheckDetlController.java b/src/main/java/com/zy/asrs/controller/CheckDetlController.java
index 862e4be..fd40cd4 100644
--- a/src/main/java/com/zy/asrs/controller/CheckDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/CheckDetlController.java
@@ -36,4 +36,15 @@
         }
         return R.ok();
     }
+
+    @RequestMapping(value = "/check/upload/auth")
+    @ManagerAuth(memo = "搴撳瓨鐩樼偣涓婁紶")
+    public R upload(@RequestParam String param){
+        List<CheckDetl> list = JSONArray.parseArray(param, CheckDetl.class);
+        if (Cools.isEmpty(list)){
+            return R.error();
+        }
+        checkDetlService.upload(list);
+        return R.ok();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 13ae2f9..5a442c2 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -59,6 +59,7 @@
         return R.ok();
     }
 
+
     /****************************************************************************/
     /********************************* 鎵撳寘涓婄嚎 **********************************/
     /****************************************************************************/
diff --git a/src/main/java/com/zy/asrs/service/CheckDetlService.java b/src/main/java/com/zy/asrs/service/CheckDetlService.java
index a549bed..4635e5e 100644
--- a/src/main/java/com/zy/asrs/service/CheckDetlService.java
+++ b/src/main/java/com/zy/asrs/service/CheckDetlService.java
@@ -3,5 +3,8 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.CheckDetl;
 
+import java.util.List;
+
 public interface CheckDetlService extends IService<CheckDetl> {
+    void upload(List<CheckDetl> checkDetls);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
index b57ac9f..28c91e6 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
@@ -1,12 +1,128 @@
 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.service.impl.ServiceImpl;
 import com.zy.asrs.entity.CheckDetl;
 import com.zy.asrs.mapper.CheckDetlMapper;
+import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.CheckDetlService;
+import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler;
+import com.zy.common.utils.HttpHandler;
+import javafx.print.Printer;
+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.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
 
 @Service
+@Slf4j
 public class CheckDetlServiceImpl extends ServiceImpl<CheckDetlMapper, CheckDetl> implements CheckDetlService {
+    @Value("${erp.address.URL}")
+    //绔彛
+    private String URL;
+    @Value("${erp.address.outaddressSubmit}")
+    //涓婃姤鍑哄叆搴撳湴鍧�
+    private String outaddressSubmit;
 
+    @Autowired
+    private ApiLogService apiLogService;
+
+    @Autowired
+    private LoginAuthenticationHandler loginAuthenticationHandler;
+
+
+    @Override
+    @Transactional
+    public void upload(List<CheckDetl> list) {
+        Date now = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // 鏋勫缓涓诲崟 JSON 鏁版嵁
+        JSONObject requestBody = new JSONObject();
+        requestBody.put("createTime", sdf.format(now));
+        // 鏋勫缓鐗╂枡鍒楄〃
+        JSONArray matList = new JSONArray();
+
+        for(CheckDetl checkDetl : list) {
+            JSONObject mat = new JSONObject();
+            mat.put("detailId", checkDetl.getDetailId());
+            mat.put("orderNo", checkDetl.getOrderNo());
+            mat.put("matnr", checkDetl.getMatnr());
+            mat.put("anfme", checkDetl.getAnfme());
+            matList.add(mat);
+        }
+        requestBody.put("data", matList);
+        // 鍙戦�� POST 璇锋眰
+        String response = "";
+        boolean success = false;
+        try {
+            HashMap<String, Object> headers = new HashMap<>();
+            //  cookie
+            headers.put("Cookie", loginAuthenticationHandler.start().getContent());
+
+            response = new HttpHandler.Builder()
+                    .setHeaders(headers)
+                    .setUri(URL)
+                    .setPath(outaddressSubmit) // 璁剧疆浣犵殑鎺ュ彛璺緞
+                    .setJson(requestBody.toJSONString())
+                    .build()
+                    .doPost();
+
+            JSONObject data = JSON.parseObject(response);
+            Object isSuccess = findValueByKey(data, "IsSuccess");
+            String bool = isSuccess != null ? isSuccess.toString() : "false";
+
+            if ("true".equals(bool)) {
+                success = true;
+            }
+        } catch (Exception e) {
+            log.error("涓婃姤ERP澶辫触", e);
+        } finally {
+            try {
+                apiLogService.save(
+                        "鐩樼偣涓婃姤",
+                        URL + outaddressSubmit,
+                        null,
+                        "127.0.0.1",
+                        requestBody.toJSONString(),
+                        response,
+                        success
+                );
+            } catch (Exception e) {
+                log.error("鏃ュ織淇濆瓨澶辫触", e);
+            }
+        }
+    }
+
+    public static Object findValueByKey(JSONObject json, String key) {
+        Set<String> keySet = json.keySet();
+        for (String k : keySet) {
+            Object v = json.get(k);
+            if (k.equals(key)) {
+                return v;
+            } else if (v instanceof JSONArray) {
+                int size = ((JSONArray) v).size();
+                for (int i = 0; i <= size - 1; i++) {
+                    Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key);
+                    if (result != null){
+                        return result;
+                    }
+                }
+            } else if (v instanceof JSONObject){
+                Object result = findValueByKey((JSONObject) v, key);
+                if (result != null){
+                    return result;
+                }
+            }
+        }
+        return null;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1