|  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.domain.enums.TaskStatusType; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | 
 |  |  | import org.springframework.stereotype.Component; | 
 |  |  |  | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.time.LocalDateTime; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.HashMap; | 
 |  |  | import java.util.List; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Value("${wms.url}") | 
 |  |  |     private String wmsUrl; | 
 |  |  |     @Value("${wms.movePath}") | 
 |  |  |     private String movePath; | 
 |  |  |     @Value("${wms.taskStatusFeedbackPath}") | 
 |  |  |     private String taskStatusFeedbackPath; | 
 |  |  |  | 
 |  |  |     @Scheduled(cron = "0/3 * * * * ? ") | 
 |  |  |     public void execute() throws IOException { | 
 |  |  |         for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) { | 
 |  |  |             TaskStatusFeedbackParam taskStatusFeedbackParam = new TaskStatusFeedbackParam(taskWrk); | 
 |  |  |             if (taskWrk.getStatus().equals(TaskStatusType.OVER.id)) {//完成 | 
 |  |  |                 //区分入出库 | 
 |  |  |                     TaskWrkLog taskWrkLog=new TaskWrkLog(taskWrk); | 
 |  |  |                     if(!wrkLogService.insert(taskWrkLog)){ | 
 |  |  |                         throw new CoolException("转历史档失败"+taskWrkLog); | 
 |  |  |                     } | 
 |  |  |                     if(!taskWrkService.deleteById(taskWrk)){ | 
 |  |  |                         throw new CoolException("任务档删除失败"+taskWrkLog); | 
 |  |  |                     } | 
 |  |  |             } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) { | 
 |  |  |                 taskStatusFeedbackParam.setTaskStatus("cancelled"); | 
 |  |  |                 //new PostMesDataUtils().postMesData("取消任务完成",wmsUrl,movePath,taskWrk); | 
 |  |  |             } | 
 |  |  |         List<TaskWrk> taskWrkList = taskWrkService.selectToBeHistoryData(); | 
 |  |  |         for (TaskWrk taskWrk : taskWrkList) { | 
 |  |  |             JSONObject jsonObject = null; | 
 |  |  |             String response = null; | 
 |  |  |             boolean success = false; | 
 |  |  |             HashMap<String, Object> map = new HashMap<>(); | 
 |  |  |             try { | 
 |  |  |                 map.put("taskNo",taskWrk.getTaskNo()); | 
 |  |  |                 map.put("taskStatus",taskWrk.getStatusWms()); | 
 |  |  |                 map.put("ioType",taskWrk.getIoTypeWms()); | 
 |  |  |                 map.put("barCode",taskWrk.getBarcode()); | 
 |  |  |                 map.put("reportTime", LocalDateTime.now()); | 
 |  |  |                 map.put("weight",taskWrk.getScWeight().doubleValue()); | 
 |  |  |                 response = new HttpHandler.Builder() | 
 |  |  |                         .setUri(wmsUrl) | 
 |  |  |                         .setPath(taskStatusFeedbackPath) | 
 |  |  |                         .setJson(JSON.toJSONString(map)) | 
 |  |  |                         .build() | 
 |  |  |                         .doPost(); | 
 |  |  |                 jsonObject = JSON.parseObject(response); | 
 |  |  |  | 
 |  |  |             if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) > 0) { | 
 |  |  |                 //任务已经转日志,将该任务下面的指令转日志 | 
 |  |  |                 commandInfoService.saveToHistory(taskWrk.getTaskNo()); | 
 |  |  |  | 
 |  |  |                 //删除任务 | 
 |  |  |                 taskWrkService.delete(new EntityWrapper<TaskWrk>().eq("task_no", taskWrk.getTaskNo())); | 
 |  |  |                 //删除指令 | 
 |  |  |                 commandInfoService.delete(new EntityWrapper<CommandInfo>().eq("task_no", taskWrk.getTaskNo())); | 
 |  |  |                 if (!Cools.isEmpty(jsonObject.getInteger("code")) && jsonObject.getInteger("code").equals(200)) { | 
 |  |  |                     if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) == 0) { | 
 |  |  |                         log.error("任务档转任务历史档失败" + taskWrk); | 
 |  |  |                         return ; | 
 |  |  |                     } | 
 |  |  |                     success = true; | 
 |  |  |                     //删除任务 | 
 |  |  |                     taskWrkService.delete(new EntityWrapper<TaskWrk>().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 | 
 |  |  |                 ); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |