package com.zy.asrs.task.handler;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.entity.WrkMastExecute;
|
import com.zy.asrs.entity.param.AgvHaiKangTaskCreateParam;
|
import com.zy.asrs.service.ApiLogService;
|
import com.zy.asrs.service.impl.WrkMastExecuteServiceImpl;
|
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.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
@Slf4j
|
@Service
|
@Transactional
|
public class AutoMoveHaiKangHandler extends AbstractHandler<String> {
|
|
@Value("${agv.url}")
|
private String url;
|
|
@Value("${agv.taskCreatePath}")
|
private String taskCreatePath;
|
|
@Autowired
|
private ApiLogService apiLogService;
|
@Autowired
|
private WrkMastExecuteServiceImpl wrkMastExecuteService;
|
|
public ReturnT<String> start(WrkMastExecute wrkMastExecute) {
|
try{
|
AgvHaiKangTaskCreateParam agvTaskCreateParam = new AgvHaiKangTaskCreateParam();
|
getRequestParam(agvTaskCreateParam,wrkMastExecute);
|
int doHttpRequest = doHttpRequest(agvTaskCreateParam, "搬运任务下发==>2-3==1", url, taskCreatePath, null, "127.0.0.1");
|
if(doHttpRequest != 0){
|
throw new CoolException("任务下发失败,code:"+doHttpRequest);
|
}
|
wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
|
wrkMastExecute.setModiTime(new Date());
|
if (!wrkMastExecuteService.updateById(wrkMastExecute)){
|
throw new CoolException("任务下发成功,但是更新执行任务状态失败:"+doHttpRequest);
|
}
|
}catch (Exception e){
|
log.error("搬运任务下发===》异常:"+e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
// public ReturnT<String> start1(WrkMastExecute wrkMastExecute) {
|
// try{
|
// AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
|
// getRequestParam(agvTaskCreateParam,wrkMastExecute);
|
// int doHttpRequest = doHttpRequest(agvTaskCreateParam, "搬运任务下发", url, taskCreatePath, null, "127.0.0.1");
|
// if(doHttpRequest != 0){
|
// throw new CoolException("任务下发失败,code:"+doHttpRequest);
|
// }
|
// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
|
// wrkMastExecute.setModiTime(new Date());
|
// if (!wrkMastExecuteService.updateById(wrkMastExecute)){
|
// throw new CoolException("任务下发成功,但是更新执行任务状态失败:"+doHttpRequest);
|
// }
|
// }catch (Exception e){
|
// log.error("搬运任务下发===》异常:"+e.getMessage());
|
// }
|
// return SUCCESS;
|
// }
|
//
|
private void getRequestParam(AgvHaiKangTaskCreateParam agvHaiKangTaskCreateParam, WrkMastExecute wrkMastExecute){
|
|
// List<AgvTaskParam> agvTaskParamList = Arrays.asList(
|
// //起始位
|
// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getNowPosition()]),
|
// //目标位
|
// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getEndPosition()]));
|
|
Long wrkNo = wrkMastExecute.getWrkNo();
|
if (wrkMastExecute.getNowPosition()==1){
|
agvHaiKangTaskCreateParam.setTaskCode(wrkMastExecute.getWrkNo().toString());
|
}else {
|
wrkNo = -wrkNo;
|
agvHaiKangTaskCreateParam.setTaskCode(wrkNo.toString());
|
}
|
if (!wrkMastExecute.getSouFloor().equals(wrkMastExecute.getEndFloor())) {
|
agvHaiKangTaskCreateParam.setTaskTyp("F06");
|
} else {
|
agvHaiKangTaskCreateParam.setTaskTyp("F01");
|
}
|
|
// agvHaiKangTaskCreateParam.setPositionCodePath(agvTaskParamList);
|
|
}
|
|
private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
|
// if (true){
|
// apiLogService.save(
|
// namespace,
|
// url + path,
|
// appkey,
|
// ip,
|
// JSON.toJSONString(JSONObject.toJSONString(requestParam)),
|
// "",
|
// true
|
// );
|
// return 0;
|
// }
|
String response = "";
|
boolean success = false;
|
|
try {
|
response = new HttpHandler.Builder()
|
.setUri(url)
|
.setPath(path)
|
.setJson(JSONObject.toJSONString(requestParam))
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
|
int code = Integer.parseInt(jsonObject.get("code").toString());
|
if(code != 0){
|
throw new CoolException("调用AGV响应错误");
|
}
|
success = true;
|
return code;
|
}catch (Exception e){
|
log.error(e.getMessage());
|
throw new CoolException("调用AGV响应错误");
|
}finally {
|
apiLogService.save(
|
namespace,
|
url + path,
|
appkey,
|
ip,
|
JSON.toJSONString(JSONObject.toJSONString(requestParam)),
|
response,
|
success
|
);
|
}
|
|
}
|
}
|