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