From c8a26479b281484e2b322c3db6a1b7ca00c53cc7 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 17 十二月 2024 13:37:20 +0800
Subject: [PATCH] 优化逻辑
---
src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java | 115 ++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 13 ++
src/main/java/com/zy/asrs/task/ReportDataScheduler.java | 76 +++---------------
3 files changed, 141 insertions(+), 63 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/ReportDataScheduler.java b/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
index 988c1f4..ba7974d 100644
--- a/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
@@ -1,16 +1,15 @@
package com.zy.asrs.task;
-import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.ReportData;
-import com.zy.asrs.entity.ReportDataLog;
import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.ReportDataLogService;
import com.zy.asrs.service.ReportDataService;
+import com.zy.asrs.task.handler.ReportDataHandler;
import com.zy.common.utils.HttpHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,11 +17,8 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -38,12 +34,10 @@
private ReportDataService reportDataService;
@Autowired
- private ReportDataLogService reportDataLogService;
-
-
- @Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private ReportDataHandler reportDataHandler;
@Value("${mes.appKey}")
private String appKey;
@@ -52,75 +46,36 @@
@Value("${mes.appSecret}")
private String appSecret;
+
@Value("${mes.report}")
private Boolean flag;
- @Value("${mes.url}")
- private String url;
-
@Value("${mes.getTokenUrl}")
private String getTokenUrl;
-
- @Value("${mes.orderReportPath}")
- private String orderReportPath;
-
- @Value("${mes.pakinReportPath}")
- private String pakinReportPath;
-
- @Value("${mes.buyPakinReportPath}")
- private String buyPakinReportPath;
-
- @Value("${mes.pakoutReportPath}")
- private String pakoutReportPath;
@Value("${mes.getTokenPath}")
private String getTokenPath;
- @Scheduled(cron = "0/10 * * * * ? ")
+ @Scheduled(fixedDelay = 5000)
public void execute() {
log.info("瀹氭椂浠诲姟寮�濮嬫墽琛�");
if (!flag) {
return;
}
- List<ReportData> reportData = reportDataService.selectList(new EntityWrapper<>());
- if (!Cools.isEmpty(reportData)) {
+ Page<ReportData> objectPage = new Page<>(1, 1000);
+ Page<ReportData> reportData = reportDataService.selectPage(objectPage, new EntityWrapper<ReportData>().orderBy("create_time", false));
+ if (reportData != null && !Cools.isEmpty(reportData.getRecords())) {
Map<String, Object> mesTokenInfo = getMesTokenInfo();
- for (ReportData data : reportData) {
- process(data, mesTokenInfo);
+ for (ReportData data : reportData.getRecords()) {
+ try {
+ reportDataHandler.start(data, mesTokenInfo);
+ } catch (Exception e) {
+ log.error("鏁版嵁澶勭悊寮傚父锛寋}", data.getId());
+ }
}
}
log.info("瀹氭椂浠诲姟缁撴潫鎵ц");
- }
-
- @Transactional
- public void process(ReportData data, Map<String, Object> mesTokenInfo) {
- String mesPath = "";
- if ("MES".equals(data.getReportType())) {
- switch (data.getMemo()) {
- case "涓婃姤mes閲囪喘鍏ュ簱淇℃伅":
- mesPath = buyPakinReportPath;
- break;
- case "涓婃姤mes鍏ュ簱淇℃伅":
- mesPath = pakinReportPath;
- break;
- case "涓婃姤mes鍑哄簱淇℃伅":
- mesPath = pakoutReportPath;
- break;
- case "涓婃姤mes璋冩嫧淇℃伅":
- mesPath = orderReportPath;
- break;
- }
- doHttpRequest(data.getReportJson(), mesTokenInfo, data.getMemo(), url, mesPath, null, "127.0.0.1");
- reportDataService.deleteById(data.getId());
- ReportDataLog reportDataLog = new ReportDataLog();
- BeanUtil.copyProperties(data, reportDataLog);
- reportDataLog.setReportTime(new Date());
- reportDataLog.setReportDataId(data.getId());
- reportDataLogService.insert(reportDataLog);
- }
-
-
}
//鑾峰彇mes token淇℃伅
@@ -162,5 +117,4 @@
}
}
-
}
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index bf9592c..c2c10bf 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -715,10 +715,19 @@
}
}
if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
- reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
+ String barcode = agvWrkMast.getBarcode();
+ if (barcode.startsWith("20") || barcode.startsWith("21") || barcode.startsWith("40")) {
+ reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
+ }
}
if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
- generateMesParam(agvWrkMast, agvWrkDetls);
+ String barcode = agvWrkMast.getBarcode();
+ if (agvWrkMast == null || agvWrkMast.getBarcode() == null) {
+ return;
+ }
+ if (barcode.startsWith("20") || barcode.startsWith("21") || barcode.startsWith("40")) {
+ generateMesParam(agvWrkMast, agvWrkDetls);
+ }
}
diff --git a/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java b/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
new file mode 100644
index 0000000..139d6f1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/ReportDataHandler.java
@@ -0,0 +1,115 @@
+package com.zy.asrs.task.handler;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.ReportData;
+import com.zy.asrs.entity.ReportDataLog;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.ReportDataLogService;
+import com.zy.asrs.service.ReportDataService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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.util.Date;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Service
+public class ReportDataHandler extends AbstractHandler<String> {
+
+ private static final Logger log = LoggerFactory.getLogger(ReportDataHandler.class);
+
+
+ @Autowired
+ private ReportDataService reportDataService;
+
+ @Autowired
+ private ReportDataLogService reportDataLogService;
+
+ @Autowired
+ private ApiLogService apiLogService;
+
+ @Value("${mes.url}")
+ private String url;
+
+ @Value("${mes.orderReportPath}")
+ private String orderReportPath;
+
+ @Value("${mes.pakinReportPath}")
+ private String pakinReportPath;
+
+ @Value("${mes.buyPakinReportPath}")
+ private String buyPakinReportPath;
+
+ @Value("${mes.pakoutReportPath}")
+ private String pakoutReportPath;
+
+
+ @Transactional
+ public ReturnT<String> start(ReportData data, Map<String, Object> mesTokenInfo) {
+ String mesPath = "";
+ if ("MES".equals(data.getReportType())) {
+ switch (data.getMemo()) {
+ case "涓婃姤mes閲囪喘鍏ュ簱淇℃伅":
+ mesPath = buyPakinReportPath;
+ break;
+ case "涓婃姤mes鍏ュ簱淇℃伅":
+ mesPath = pakinReportPath;
+ break;
+ case "涓婃姤mes鍑哄簱淇℃伅":
+ mesPath = pakoutReportPath;
+ break;
+ case "涓婃姤mes璋冩嫧淇℃伅":
+ mesPath = orderReportPath;
+ break;
+ }
+ doHttpRequest(data.getReportJson(), mesTokenInfo, data.getMemo(), url, mesPath, null, "127.0.0.1");
+ reportDataService.deleteById(data.getId());
+ ReportDataLog reportDataLog = new ReportDataLog();
+ BeanUtil.copyProperties(data, reportDataLog);
+ reportDataLog.setReportTime(new Date());
+ reportDataLog.setReportDataId(data.getId());
+ 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 = "";
+ boolean success = false;
+
+ try {
+ response = new HttpHandler.Builder().setUri(url).setPath(path).setTimeout(30, TimeUnit.SECONDS).setHeaders(headParam).setJson(requestParam).setHttps(true).build().doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+
+ if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) {
+ log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject);
+ //TODO 寮犺秴
+ throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
+ }
+ success = true;
+ return jsonObject;
+
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ throw new CoolException(e.getMessage());
+ } finally {
+ apiLogService.save(namespace, url + path, appkey, ip, requestParam, response, success);
+ }
+
+ }
+}
--
Gitblit v1.9.1