package com.zy.asrs.task; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.TaskOverToWms; import com.zy.asrs.entity.param.TaskStatusFeedbackParam; import com.zy.asrs.service.*; import com.zy.asrs.service.impl.TaskWrkLogServiceImpl; import com.zy.asrs.utils.PostMesDataUtils; import com.zy.common.utils.HttpHandler; 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; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 定时将任务(完成、取消)转成日志 */ @Slf4j @Component public class TaskLogScheduler { @Autowired private TaskWrkService taskWrkService; @Autowired private CommandInfoService commandInfoService; @Autowired private ApiLogService apiLogService; @Autowired private BasDevpService basDevpService; @Autowired private StaDescService staDescService; @Autowired private LocMastService locMastService; @Autowired private TaskWrkLogServiceImpl wrkLogService; @Value("${wms.url}") private String wmsUrl; @Value("${wms.taskStatusFeedbackPath}") private String taskStatusFeedbackPath; @Scheduled(cron = "0/3 * * * * ? ") public void execute() throws IOException { for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) { JSONObject jsonObject = null; String response = null; boolean success = false; HashMap map = new HashMap<>(); try { map.put("taskNo", taskWrk.getTaskNo()); map.put("status",5); map.put("ioType", taskWrk.getIoType()); map.put("barcode", taskWrk.getBarcode()); map.put("reportTime", new Date()); response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath(taskStatusFeedbackPath) .setJson(JSON.toJSONString(map)) .build() .doPost(); jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) == 0) { log.error("任务档转任务历史档失败" + taskWrk); return ; } success = true; //删除任务 taskWrkService.delete(new EntityWrapper().eq("task_no", taskWrk.getTaskNo())); } else { log.error("wms入库出库完成上报失败" + taskWrk); } } catch (Exception e) { log.error("wms通讯失败," + e.getMessage()); } finally { apiLogService.save("wms入库出库完成上报" , wmsUrl + taskStatusFeedbackPath , null , "127.0.0.1" , JSON.toJSONString(map) , response , success ); } } } }