New file |
| | |
| | | package com.zy.asrs.task; |
| | | |
| | | 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.DateUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.TaskWrkReport; |
| | | import com.zy.asrs.entity.TaskWrkReportLog; |
| | | import com.zy.asrs.entity.wms.WmsFeedback; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.TaskWrkReportLogService; |
| | | import com.zy.asrs.service.TaskWrkReportService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.utils.Synchro; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 定时将任务(完成、取消)转成日志 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class TaskReportScheduler { |
| | | |
| | | @Autowired |
| | | private TaskWrkReportService taskWrkReportService; |
| | | |
| | | @Autowired |
| | | private TaskWrkReportLogService taskWrkReportLogService; |
| | | |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | |
| | | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | | |
| | | @Value("${wms.taskExecCallback}") |
| | | private String TaskExecCallback; |
| | | |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | public void execute() throws IOException { |
| | | Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("createTime", true)); |
| | | if (taskWrkReportPage.getRecords() != null) { |
| | | //新增一个过滤机制 |
| | | for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) { |
| | | WmsFeedback wmsFeedback = getWmsFeedback(taskWrk); |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | try { |
| | | log.info("wcs手动完成任务上报wms={}", taskWrk); |
| | | response = new HttpHandler.Builder() |
| | | // .setHeaders(headParam) |
| | | .setUri(wmsUrl) |
| | | .setPath(TaskExecCallback) |
| | | .setJson(JSON.toJSONString(wmsFeedback)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | TaskWrkReportLog taskWrkLog = new TaskWrkReportLog(); |
| | | Synchro.Copy(taskWrk, taskWrkLog); |
| | | taskWrkLog.setId(null); |
| | | if (!taskWrkReportLogService.insert(taskWrkLog)) { |
| | | throw new CoolException("转历史档失败" + taskWrkLog); |
| | | } |
| | | if (!taskWrkReportService.deleteById(taskWrk)) { |
| | | throw new CoolException("任务档删除失败" + taskWrkLog); |
| | | } |
| | | bool = true; |
| | | } catch (Exception e) { |
| | | log.error("wcs手动完成任务上报wms失败{},返回值={}", taskWrk, response); |
| | | } finally { |
| | | apiLogService.save("任务状态上报" |
| | | , wmsUrl + TaskExecCallback |
| | | , null |
| | | , "127.0.0.1" |
| | | , JSON.toJSONString(wmsFeedback) |
| | | , response |
| | | , bool |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { |
| | | WmsFeedback feedback = new WmsFeedback(); |
| | | feedback.setBarcode(taskWrk.getBarcode()); |
| | | feedback.setReportTime(DateUtils.convert(new Date())); |
| | | feedback.setIoType(taskWrk.getIoType()); |
| | | feedback.setTaskNo(taskWrk.getTaskNo()); |
| | | feedback.setStatus(taskWrk.getStatus()); |
| | | return feedback; |
| | | } |
| | | } |