From 617a8c4fc0b81ec4b96db8a013a91f4e666b0b96 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 08 一月 2025 14:33:45 +0800
Subject: [PATCH] 出现空指针异常

---
 src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java |   75 +++++++++++++++++++++++++++++++------
 1 files changed, 62 insertions(+), 13 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 468925c..c46da1d 100644
--- a/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
@@ -4,12 +4,15 @@
 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;
@@ -22,9 +25,9 @@
 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;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/7/7
@@ -43,6 +46,10 @@
 
     @Autowired
     private ApiLogService apiLogService;
+
+
+    @Autowired
+    private MesLocDetlService mesLocDetlService;
 
     @Value("${mes.url}")
     private String url;
@@ -108,7 +115,7 @@
                 throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
             }
             success = true;
-            return null;
+            return response;
 
         } catch (Exception e) {
             log.error("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細{}", e.getMessage());
@@ -122,19 +129,61 @@
 
     @Transactional
     public ReturnT<String> stock(Map<String, Object> mesTokenInfo) {
-        String result = doHttpRequest("{}", mesTokenInfo, "鍚屾MES搴撳瓨", url, stock, null, "127.0.0.1");
-        JSONObject jsonObject = JSONObject.parseObject(result);
-        Object o = jsonObject.get("data");
-        if (o != null) {
-            JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
-            Object o1 = jsonObject1.get("list");
-            if (o1 != null) {
-                JSONArray jsonArray = JSONArray.parseArray(o1.toString());
-                //jsonArray.
+        List<MesLocDetl> all = mesLocDetlService.selectList(new EntityWrapper<>());
+        if (all != null) {
+            List<Long> collect = all.stream().map(MesLocDetl::getId).collect(Collectors.toList());
+            boolean del = true;
+            int d = 1;
+            while (del && collect.size() > 0) {
+                if (collect.size() > d * 1000) {
+                    mesLocDetlService.deleteBatchIds(collect.subList((d - 1) * 1000, d * 1000));
+                } else {
+                    mesLocDetlService.deleteBatchIds(collect.subList((d - 1) * 1000, collect.size()));
+                    del = false;
+                }
+                d++;
             }
         }
-        MesLocDetl mesLocDetl=new MesLocDetl();
 
+        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);
+                        mesLocDetlService.insert(mesLocDetl);
+                    }
+                } else {
+                    flag = false;
+                }
+            }
+            if (!mesLocDetls.isEmpty()) {
+                //mesLocDetlService.insertBatch(mesLocDetls);
+            }
+            i++;
+        }
         return SUCCESS;
     }
+
+
 }

--
Gitblit v1.9.1