| | |
| | | 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; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | 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; |
| | | |
| | |
| | | private ReportDataService reportDataService; |
| | | |
| | | @Autowired |
| | | private ReportDataLogService reportDataLogService; |
| | | |
| | | |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | |
| | | @Autowired |
| | | private ReportDataHandler reportDataHandler; |
| | | |
| | | @Value("${mes.appKey}") |
| | | private String appKey; |
| | |
| | | @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; |
| | | } |
| | | Map<String, Object> mesTokenInfo = getMesTokenInfo(); |
| | | List<ReportData> reportData = reportDataService.selectList(new EntityWrapper<>()); |
| | | for (ReportData data : reportData) { |
| | | process(data, mesTokenInfo); |
| | | Page<ReportData> objectPage = new Page<>(1, 100); |
| | | 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.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信息 |
| | |
| | | log.error(e.getMessage()); |
| | | throw new CoolException(e.getMessage()); |
| | | } finally { |
| | | apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success); |
| | | apiLogService.save(namespace, url + path, appkey, ip, requestParam, response, success); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |