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<String> {
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private ApiLogService apiLogService;
|
@Value("${rcs.address.url}")
|
private String url;
|
@Value("${rcs.address.attrcs}")
|
private String attrcs;
|
|
public ReturnT<String> 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<RCSParam.TaskBody> 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(15L);//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;
|
}
|
}
|