From e148a7fab59cb1ba4c9db531bf84253033c47280 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期六, 04 一月 2025 19:53:28 +0800
Subject: [PATCH] 添加MES库存同步功能及配置

---
 src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java b/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
index 4ef0a8a..e9b0f01 100644
--- a/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
@@ -2,12 +2,17 @@
 
 import cn.hutool.core.bean.BeanUtil;
 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.MesLocDetl;
 import com.zy.asrs.entity.ReportData;
 import com.zy.asrs.entity.ReportDataLog;
+import com.zy.asrs.entity.param.MesStock;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.MesLocDetlService;
 import com.zy.asrs.service.ReportDataLogService;
 import com.zy.asrs.service.ReportDataService;
 import com.zy.asrs.task.AbstractHandler;
@@ -20,8 +25,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -42,6 +46,10 @@
     @Autowired
     private ApiLogService apiLogService;
 
+
+    @Autowired
+    private MesLocDetlService mesLocDetlService;
+
     @Value("${mes.url}")
     private String url;
 
@@ -56,6 +64,9 @@
 
     @Value("${mes.pakoutReportPath}")
     private String pakoutReportPath;
+
+    @Value("${mes.stock}")
+    private String stock;
 
 
     @Transactional
@@ -106,11 +117,54 @@
             return null;
 
         } catch (Exception e) {
-            log.error(e.getMessage());
+            log.error("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細{}", e.getMessage());
             //throw new CoolException(e.getMessage());
         } finally {
             apiLogService.save(namespace, url + path, appkey, ip, requestParam, response, success);
         }
         return response;
     }
+
+
+    @Transactional
+    public ReturnT<String> stock(Map<String, Object> mesTokenInfo) {
+        mesLocDetlService.delete(new EntityWrapper<MesLocDetl>().eq("1", 1));
+        boolean flag = true;
+        Map<String, Object> req = new HashMap<>();
+        int i = 1;
+        while (flag) {
+            req.put("page", i);
+            req.put("size", 1000);
+            String result = doHttpRequest(JSONObject.toJSONString(req), mesTokenInfo, "鍚屾MES搴撳瓨", url, stock, null, "127.0.0.1");
+            JSONObject jsonObject = JSONObject.parseObject(result);
+            Object o = jsonObject.get("data");
+            List<MesLocDetl> mesLocDetls = new ArrayList<>();
+            MesLocDetl mesLocDetl;
+            if (o != null) {
+                JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
+                Object o1 = jsonObject1.get("list");
+                if (o1 != null) {
+                    List<MesStock> mesStocks = JSONArray.parseArray(o1.toString(), MesStock.class);
+                    if (mesStocks.isEmpty()) {
+                        flag = false;
+                    }
+                    for (MesStock mesStock : mesStocks) {
+                        mesLocDetl = new MesLocDetl();
+                        mesLocDetl.setMatnr(mesStock.getMaterialInfo().getMaterialCode());
+                        mesLocDetl.setMaktx(mesStock.getMaterialInfo().getMaterialName());
+                        mesLocDetl.setBatch(mesStock.getBatchNo());
+                        mesLocDetl.setAnfme(mesStock.getOpAmount().getAmount().getAmount());
+                        mesLocDetls.add(mesLocDetl);
+                    }
+                } else {
+                    flag = false;
+                }
+            }
+            if (!mesLocDetls.isEmpty()) {
+                mesLocDetlService.insertBatch(mesLocDetls);
+            }
+            i++;
+        }
+        return SUCCESS;
+    }
 }

--
Gitblit v1.9.1