From 8bcd2bb5a4ea1af4755556eead150877e92eac12 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:57:06 +0800
Subject: [PATCH] 添加MES库存同步功能及配置
---
src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java | 73 ++++++++++++++++++++++++++++++++----
1 files changed, 64 insertions(+), 9 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 139d6f1..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
@@ -76,20 +87,21 @@
mesPath = orderReportPath;
break;
}
- doHttpRequest(data.getReportJson(), mesTokenInfo, data.getMemo(), url, mesPath, null, "127.0.0.1");
- reportDataService.deleteById(data.getId());
ReportDataLog reportDataLog = new ReportDataLog();
+ String result = doHttpRequest(data.getReportJson(), mesTokenInfo, data.getMemo(), url, mesPath, null, "127.0.0.1");
+ reportDataService.deleteById(data.getId());
BeanUtil.copyProperties(data, reportDataLog);
reportDataLog.setReportTime(new Date());
reportDataLog.setReportDataId(data.getId());
+ reportDataLog.setThreeCode(result);
reportDataLogService.insert(reportDataLog);
}
return SUCCESS;
}
- private JSONObject doHttpRequest(String requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) {
- String response = "";
+ private String doHttpRequest(String requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) {
+ String response = "fail";
boolean success = false;
try {
@@ -102,14 +114,57 @@
throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
}
success = true;
- return jsonObject;
+ return null;
} catch (Exception e) {
- log.error(e.getMessage());
- throw new CoolException(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