package com.zy.asrs.task.newWay.handler; import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.param.RCSParam; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; 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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; @Slf4j @Service @Transactional public class AssignTasksToRCSHandler extends AbstractHandler { @Autowired private WrkMastService wrkMastService; @Autowired private ApiLogService apiLogService; @Value("${rcs.address.url}") private String url; @Value("${rcs.address.attrcs}") private String attrcs; public ReturnT start(WrkMast wrkMast) { RCSParam rcsParam = new RCSParam(); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String formattedDate = now.format(formatter); // 格式化日期时间 //网络流水号 rcsParam.setReqId(now.toString()); //应用标识 rcsParam.setClientId("WMS"); //通知时间 rcsParam.setReqTime(formattedDate); RCSParam.DataBody dataBody=new RCSParam.DataBody(); //任务号 dataBody.setId(wrkMast.getWrkNo()+""); List taskBodyList=new ArrayList<>(); RCSParam.TaskBody taskBody=new RCSParam.TaskBody(); //取货类型 taskBody.setType("load"); taskBody.setStation(wrkMast.getStaNo()+""); taskBodyList.add(taskBody); RCSParam.TaskBody taskBody1=new RCSParam.TaskBody(); //放货类型 taskBody1.setType("unload"); taskBody1.setStation(wrkMast.getMemo()); taskBodyList.add(taskBody1); dataBody.setTasks(taskBodyList); rcsParam.setData(dataBody); String response =""; Boolean bool =false; try { log.info("wms派发搬运任务给AGV搬运={}", rcsParam); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(url) .setPath(attrcs) .setJson(JSON.toJSONString(rcsParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if(jsonObject.getBoolean("IsSuccess")){ wrkMast.setWrkSts(31L);//WMS下发搬运任务给RCS成功 wrkMastService.updateById(wrkMast); bool = true; } } catch (Exception e) { log.error("wms派发搬运任务给AGV搬运失败{},返回值={}", wrkMast, response); } finally { apiLogService.save("wms派发搬运任务给AGV搬运" , url + attrcs , null , "127.0.0.1" , JSON.toJSONString(rcsParam) , response , bool ); } return SUCCESS; } }