ACS基线接口改造

This commit is contained in:
psh
2023-10-11 10:09:58 +08:00
parent a46f9e7e8b
commit bdd15165d9
68 changed files with 2377 additions and 413 deletions

View File

@@ -23,4 +23,19 @@ public class AgvUtil {
String nowAsISO = df.format(date);
return nowAsISO;
}
/**
* 获得之后num个天的时间
*
* @return
*/
public static String getDate() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
df.setTimeZone(tz);
String nowAsISO = df.format(date);
return nowAsISO;
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -68,6 +69,7 @@ import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device.service.dto.DeviceDto;
import org.nl.acs.device.service.dto.DeviceQueryParam;
import org.nl.acs.device.service.mapper.DeviceMapper;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.logicflow.dao.mapper.StageMapper;
import org.nl.system.service.param.ISysParamService;
import org.nl.common.utils.CodeUtil;
@@ -470,6 +472,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
public JSONArray selectList() {
List<Device> deviceList= new LambdaQueryChainWrapper<>(deviceMapper)
.apply("is_delete= '0' AND is_active= '1' AND is_config = 'true'")
.orderByAsc(Device::getDevice_code)
.list();
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList));
JSONArray result = new JSONArray();

View File

@@ -0,0 +1,102 @@
package org.nl.acs.device_driver;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
* 驱动类型
* https://blog.csdn.net/moneyshi/article/details/82978073
*/
public enum RequestMethodEnum {
apply_mjxl(1, "apply_mjxl", "涂板线满架下料","1"),
feedback_task_status(2, "feedback_task_status", "反馈任务状态","1");
//驱动索引
private int index;
//驱动编码
private String code;
// 驱动名字
private String name;
//驱动描述
private String desc;
//设备驱动类型
private String type;
//是否隐藏显示 0否1是
private String isHidden;
// 构造方法
RequestMethodEnum(int index, String code, String name, String isHidden) {
this.index = index;
this.code = code;
this.name = name;
this.isHidden = isHidden;
}
//只反馈未隐藏的
public static JSONArray getList() {
JSONArray arr = new JSONArray();
for (RequestMethodEnum em : RequestMethodEnum.values()) {
JSONObject json = new JSONObject();
if(StrUtil.equals(em.getIsHidden(),"0")){
json.put("code", em.getCode());
json.put("name", em.getName());
arr.add(json);
}
}
return arr;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getIsHidden() {
return isHidden;
}
public void setType(String type) {
this.type = type;
}
public static String getName(String code) {
for (RequestMethodEnum c : RequestMethodEnum.values()) {
if ( StrUtil.equals(c.code,code)) {
return c.name;
}
}
return null;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}

View File

@@ -5,6 +5,7 @@ import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.device.domain.Device;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.utils.ReadUtil;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.DeviceDriver;
@@ -29,14 +30,16 @@ import java.util.Map;
@RequiredArgsConstructor
public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");
@Autowired
DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl");
@Autowired
RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl");
@Autowired
TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl");
AcsToWmsService acsToWmsService=SpringContextHolder.getBean("acsToWmsServiceImpl");
String container;
String container_type_desc;
String last_container_type_desc;
@@ -107,11 +110,15 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem
if (action != last_action) {
}
if (error != last_error) {
//this.execute_log.setContainer("");
}
if (state != last_state) {
//固化室状态变更后通知lms更新固化室状态
acsToWmsService.feedbackDeviceStatus(this.devicecode,String.valueOf(state));
}
last_action = action;
last_mode = mode;
last_error = error;
last_state = state;
//message = StringFormatUtl.format("设备报警:{}", new Object[]{});
// String manual_create_task = this.getDevice().getExtraValue().get("manual_create_task").toString();

View File

@@ -10,9 +10,11 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RequestMethodEnum;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.instruction.domain.Instruction;
import org.nl.acs.instruction.service.InstructionService;
@@ -151,6 +153,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
task = this.itemProtocol.getTask();
hasGoods = this.itemProtocol.getMove();
action = this.itemProtocol.getAction();
material_type = this.itemProtocol.getMaterialType();
if (mode != last_mode) {
this.setRequireSucess(false);
}
@@ -192,25 +195,25 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
case 2:
break;
case 4:
//todo 叫料
//叫料
if (move==0){
apply(4);
}
break;
case 5:
//todo 满料出库
//满料出库
if(move==1){
apply(5);
}
break;
case 6:
//todo 申请空盘
//申请空盘
if (move==0){
apply(6);
}
break;
case 7:
//todo 空托盘出库
//空托盘出库
if(move==1){
apply(7);
}
@@ -234,6 +237,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
last_error = error;
last_move = move;
last_task = task;
last_material_type = material_type;
}
@@ -436,12 +440,13 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
return false;
} else {
this.time = date;
JSONObject json = new JSONObject();
json.put("device_code", devicecode);
json.put("barcode", barcode);
json.put("is_auto_issue", "0");
json.put("type", type);
String resp = acsToWmsService.applyTaskToWms(json);
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setDevice_code(devicecode);
request.setVehicle_code(String.valueOf(barcode));
request.setTask_type(String.valueOf(type));
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
String resp = acsToWmsService.applyTask(request);
JSONObject res_jo = JSONObject.parseObject(resp);
if (StrUtil.equals(res_jo.getString("status"), "200")) {
this.writing(type);

View File

@@ -0,0 +1,51 @@
package org.nl.acs.ext.wms;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.log.service.DeviceExecuteLogService;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.ISysParamService;
import org.nl.system.service.param.impl.SysParamServiceImpl;
/**
* ACS连接外部系统工具类:
*/
@Slf4j
public class LmsUtil {
public static <W> String notifyAcs(String api, W requestParam) {
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);;
ISysParamService paramService = SpringContextHolder.getBean(SysParamServiceImpl.class);
//判断是否连接立库WCS系统
String isConnect = paramService.findByCode("hasWms").getValue();
if (StrUtil.equals("0", isConnect)) {
JSONObject result = new JSONObject();
result.put("400", "500");
result.put("message", "参数配置表中-hasWms为:0");
log.info("请求LMS异常返回参数:{}", String.valueOf(result));
return String.valueOf(result);
//throw new BadRequestException("参数配置表中-hasWms为:0");
}
String liKu_wcs_url = paramService.findByCode("wmsurl").getValue();
try {
// log.info("请求LMS参数:{}", JSON.toJSONString(requestParam));
String body = HttpRequest
.post(liKu_wcs_url + api).setConnectionTimeout(3000)
.body(JSON.toJSONString(requestParam))
.execute()
.body();
// log.info("请求LMS参数返回参数:{}", body);
return body;
} catch (Exception e) {
JSONObject result = new JSONObject();
result.put("code", "500");
result.put("message", e.getMessage());
// log.info("请求LMS异常返回参数:{}", String.valueOf(result));
return String.valueOf(result);
}
}
}

View File

@@ -1,49 +1,57 @@
package org.nl.acs.ext.wms.data;
import cn.hutool.core.util.IdUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.nl.acs.agv.AgvUtil;
import java.util.HashMap;
import java.util.Map;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseRequest {
private Map<String, String> parameters = new HashMap();
/**
* 请求号:uuid 唯一LMS需要返回对应值
*/
private String requestNo = IdUtil.simpleUUID();
/**
* 请求时间
*/
private String requestDate = AgvUtil.getDate();
/**
* 请求方法编号
*/
private String request_medthod_code;
/**
* 请求方法名称
*/
private String request_medthod_name;
/**
* 设备号
*/
private String device_code;
/**
* 系统编号
*/
private String systemCode;
private String houseCode;
public String getSystemCode() {
return this.systemCode;
}
/**
* 扩展参数:砖型等
*/
private Map<String, String> parameters = new HashMap();
public void setSystemCode(String systemCode) {
this.systemCode = systemCode;
}
public String getHouseCode() {
return this.houseCode;
}
public void setHouseCode(String houseCode) {
this.houseCode = houseCode;
}
public BaseRequest() {
}
public Map<String, String> getParameters() {
return this.parameters;
}
public void setParameters(Map<String, String> parameters) {
this.parameters = parameters;
}
public Object getParameter(String key) {
return this.parameters.get(key);
}
public void putParameter(String key, String object) {
this.parameters.put(key, object);
}
}

View File

@@ -8,7 +8,10 @@ import java.util.Map;
@Data
public class CreateTaskRequest extends BaseRequest {
/**
* 任务编号
*/
private String task_id;
/**
* 任务编号

View File

@@ -0,0 +1,45 @@
package org.nl.acs.ext.wms.data.feedBackTaskStatus;
import lombok.Data;
import org.nl.acs.ext.wms.data.BaseRequest;
@Data
public class FeedBackTaskStatusRequest extends BaseRequest {
/**
* 任务id
*/
private String task_id;
/**
* 任务code
*/
private String task_code;
/**
* 任务状态
*/
private String task_status;
/**
* 任务类型
*/
private String task_type;
/**
* 车号
*/
private String car_no;
/**
* 载具号
*/
private String vehicle_code;
/**
* 动作 1请求取货 2取货完成 3请求放货 4放货完成
*/
private String action;
}

View File

@@ -0,0 +1,6 @@
package org.nl.acs.ext.wms.data.feedBackTaskStatus;
import org.nl.acs.ext.wms.data.BaseResponse;
public class FeedBackTaskStatusResponse extends BaseResponse {
}

View File

@@ -67,7 +67,7 @@ public class AcsToWmsController {
@Log(value = "反馈设备状态")
@ApiOperation("反馈设备状态")
public ResponseEntity<Object> feedbackDeviceStatus(@RequestBody String device_code, String code, String value) {
return new ResponseEntity<>(acstowmsService.feedbackDeviceStatus(device_code, code, value), HttpStatus.OK);
return new ResponseEntity<>(acstowmsService.feedbackDeviceStatus(device_code, value), HttpStatus.OK);
}
@PostMapping("/feedbackOrderStatus")

View File

@@ -38,7 +38,7 @@ public interface AcsToWmsService {
* @param device_code
* @return
*/
HttpResponse feedbackDeviceStatus(String device_code, String code, String value);
HttpResponse feedbackDeviceStatus(String device_code, String state);
/**
* 反馈AGV设备信息
@@ -112,4 +112,9 @@ public interface AcsToWmsService {
* @return
*/
HttpResponse feedAgvTaskStatus(JSONArray from);
/**
* ACS向WMS申请晟华任务
*/
public String applyTask(BaseRequest request);
}

View File

@@ -8,12 +8,14 @@ import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.AcsConfig;
import org.nl.acs.address.service.AddressService;
import org.nl.acs.address.service.dto.AddressDto;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.ext.wms.LmsUtil;
import org.nl.acs.ext.wms.data.*;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.log.service.DeviceExecuteLogService;
@@ -199,18 +201,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
@Override
public HttpResponse feedbackDeviceStatus(String device_code, String code, String value) {
public HttpResponse feedbackDeviceStatus(String device_code, String state) {
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
JSONObject json = new JSONObject();
json.put("device_code", device_code);
json.put("back_time", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS"));
JSONArray ja = new JSONArray();
JSONObject jo = new JSONObject();
jo.put("code", code);
jo.put("value", value);
ja.add(jo);
json.put("data", ja);
json.put("state", state);
AddressDto addressDto = addressService.findByCode("feedbackDeviceStatus");
String methods_url = addressDto.getMethods_url();
String url = wmsUrl + methods_url;
@@ -553,4 +550,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
return result;
}
@Override
public String applyTask(BaseRequest requestParam) {
try {
MDC.put(log_file_type, log_type);
String api = addressService.findByCode("applyTaskToWms").getMethods_url();
log.info("applyTaskToWms-----输入参数{}", JSON.toJSONString(requestParam, SerializerFeature.DisableCircularReferenceDetect));
String result = LmsUtil.notifyAcs(api, requestParam);
log.info("applyTaskToWms-----输出参数{}", result);
return result;
} finally {
MDC.remove(log_file_type);
}
}
}

View File

@@ -464,6 +464,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
for (int i = 0; i < reqs.size(); i++) {
CreateTaskRequest req = reqs.get(i);
String task_code = req.getTask_code();
String task_id =req.getTask_id();
String start_device_code = req.getStart_device_code();
String next_device_code = req.getNext_device_code();
String priority = req.getPriority();
@@ -475,6 +476,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
String start_point_code = "";
String next_point_code = "";
if (StrUtil.isEmpty(task_id)) {
JSONObject json = new JSONObject();
json.put("task_id", task_id);
json.put("message", "任务号不能为空");
errArr.add(json);
continue;
}
if (StrUtil.isEmpty(task_code)) {
JSONObject json = new JSONObject();
json.put("task_code", task_code);
@@ -566,6 +574,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
}
JSONObject jo = new JSONObject();
jo.put("ext_task_id",task_id);
jo.put("task_code", task_code);
jo.put("task_id", IdUtil.simpleUUID());
jo.put("start_point_code", start_point_code);

View File

@@ -312,11 +312,11 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
for (int j = 0; j < next_arr.size(); j++) {
String next_device_code = next_arr.get(j);
RouteLineDto dto = new RouteLineDto();
dto.setWeights((String) whereJson.get("weights"));
dto.setRoute_plan_id((String) whereJson.get("route_plan_id"));
dto.setWeights(String.valueOf(whereJson.get("weights")));
dto.setRoute_plan_id(String.valueOf(whereJson.get("route_plan_id")));
dto.setDevice_code(device_code);
dto.setNext_device_code(next_device_code);
dto.setType((String) whereJson.get("type"));
dto.setType(String.valueOf(whereJson.get("type")));
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();

View File

@@ -22,6 +22,8 @@ import org.nl.acs.device.service.DeviceAssignedService;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device.service.dto.DeviceAssignedDto;
import org.nl.acs.device.service.impl.DeviceServiceImpl;
import org.nl.acs.device_driver.RequestMethodEnum;
import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.instruction.domain.Instruction;
import org.nl.acs.instruction.service.InstructionService;
@@ -619,7 +621,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
String start_device_code = dto.getStart_device_code();
String next_device_code = dto.getNext_device_code();
String route_plan_code = dto.getRoute_plan_code();
dto.setCreate_by(currentUsername);
dto.setCreate_by("auto");
dto.setUpdate_by(currentUsername);
dto.setUpdate_time(now);
dto.setCreate_time(now);
@@ -865,89 +867,21 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
JSONObject feed_jo = new JSONObject();
feed_jo.put("task_id", entity.getExt_task_id());
feed_jo.put("task_code", dto.getTask_code());
feed_jo.put("task_status", dto.getTask_status());
JSONArray ja = new JSONArray();
ja.add(feed_jo);
String message = null;
HttpResponse body = null;
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setTask_code(entity.getTask_code());
request.setTask_status(entity.getTask_status());
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
boolean flag = false;
String resp = null;
try {
body = acstowmsService.feedbackTaskStatusToWms(ja);
resp = acstowmsService.applyTask(request);
log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp);
} catch (Exception e) {
flag = true;
message = e.getMessage();
e.printStackTrace();
log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage());
} finally {
}
if (flag) {
if (ObjectUtil.isEmpty(feefbackdto)) {
feefbackdto = new TaskFeedbackDto();
feefbackdto.setTask_id(entity.getTask_id());
feefbackdto.setTask_code(entity.getTask_code());
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setVehicle_type(entity.getVehicle_type());
feefbackdto.setVehicle_code(entity.getVehicle_code());
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getStart_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
feefbackdto.setError_code("400");
feefbackdto.setIs_finished("0");
feefbackdto.setRemark(message);
taskFeedbackService.create(feefbackdto);
} else {
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getStart_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
feefbackdto.setError_code("400");
feefbackdto.setRemark(message);
taskFeedbackService.update(feefbackdto);
}
} else {
int status = body.getStatus();
JSONObject jo = JSONObject.parseObject(body.body());
if (ObjectUtil.isEmpty(feefbackdto)) {
feefbackdto = new TaskFeedbackDto();
feefbackdto.setTask_id(entity.getTask_id());
feefbackdto.setTask_code(entity.getTask_code());
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setVehicle_type(entity.getVehicle_type());
feefbackdto.setVehicle_code(entity.getVehicle_code());
feefbackdto.setError_code(String.valueOf(body.getStatus()));
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getNext_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
if (status == 200) {
if (StrUtil.equals(entity.getTask_status(), "2")) {
feefbackdto.setIs_finished("1");
} else {
feefbackdto.setIs_finished("0");
}
} else {
feefbackdto.setIs_finished("0");
feefbackdto.setRemark(jo.getString("message"));
}
taskFeedbackService.create(feefbackdto);
} else {
feefbackdto.setTask_status(entity.getTask_status());
if (status == 200) {
} else {
if (StrUtil.equals(entity.getTask_status(), "2")) {
feefbackdto.setIs_finished("1");
} else {
feefbackdto.setIs_finished("0");
}
}
taskFeedbackService.update(feefbackdto);
}
}
}
}
@@ -981,95 +915,24 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
// 判断是否为WMS下发的任务如果是反馈任务状态给WMS
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
System.out.println(feefbackdto == null);
JSONObject feed_jo = new JSONObject();
feed_jo.put("task_id", entity.getTask_id());
feed_jo.put("task_code", entity.getTask_code());
feed_jo.put("task_status", entity.getTask_status());
JSONArray ja = new JSONArray();
ja.add(feed_jo);
String message = null;
HttpResponse body = null;
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setTask_id(entity.getExt_task_id());
request.setTask_code(entity.getTask_code());
request.setTask_status(entity.getTask_status());
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
boolean flag = false;
String resp = null;
try {
body = acstowmsService.feedbackTaskStatusToWms(ja);
log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), body.body());
resp = acstowmsService.applyTask(request);
log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp);
} catch (Exception e) {
log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage());
flag = true;
message = e.getMessage();
e.printStackTrace();
} finally {
}
if (flag) {
if (ObjectUtil.isEmpty(feefbackdto)) {
feefbackdto = new TaskFeedbackDto();
feefbackdto.setTask_id(entity.getTask_id());
feefbackdto.setTask_code(entity.getTask_code());
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setVehicle_type(entity.getVehicle_type());
feefbackdto.setVehicle_code(entity.getVehicle_code());
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getStart_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
feefbackdto.setError_code("400");
feefbackdto.setIs_finished("0");
feefbackdto.setRemark(message);
taskFeedbackService.create(feefbackdto);
} else {
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getStart_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
feefbackdto.setError_code("400");
feefbackdto.setRemark(message);
taskFeedbackService.update(feefbackdto);
}
} else {
int status = body.getStatus();
JSONObject jo = JSONObject.parseObject(body.body());
if (ObjectUtil.isEmpty(feefbackdto)) {
feefbackdto = new TaskFeedbackDto();
feefbackdto.setTask_id(entity.getTask_id());
feefbackdto.setTask_code(entity.getTask_code());
feefbackdto.setTask_status(entity.getTask_status());
feefbackdto.setVehicle_type(entity.getVehicle_type());
feefbackdto.setVehicle_code(entity.getVehicle_code());
feefbackdto.setError_code(String.valueOf(body.getStatus()));
feefbackdto.setStart_device_code(entity.getStart_device_code());
feefbackdto.setStart_point_code(entity.getNext_point_code());
feefbackdto.setNext_device_code(entity.getNext_device_code());
feefbackdto.setNext_point_code(entity.getNext_point_code());
if (status == 200) {
if (StrUtil.equals(entity.getTask_status(), "2")) {
feefbackdto.setIs_finished("1");
} else {
feefbackdto.setIs_finished("0");
}
} else {
feefbackdto.setIs_finished("0");
feefbackdto.setRemark(jo.getString("message"));
}
taskFeedbackService.create(feefbackdto);
} else {
feefbackdto.setTask_status(entity.getTask_status());
if (status == 200) {
if (StrUtil.equals(entity.getTask_status(), "2")) {
feefbackdto.setIs_finished("1");
} else {
feefbackdto.setIs_finished("0");
}
} else {
feefbackdto.setIs_finished("0");
feefbackdto.setRemark(jo.getString("message"));
}
taskFeedbackService.update(feefbackdto);
}
}
}
// 如果属于先知AGV关闭运单序列
if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) {
@@ -1118,13 +981,23 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
// 判断是否为WMS下发的任务如果是反馈任务状态给WMS
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
JSONObject feed_jo = new JSONObject();
feed_jo.put("task_id", entity.getTask_id());
feed_jo.put("task_code", entity.getTask_code());
feed_jo.put("task_status", entity.getTask_status());
JSONArray ja = new JSONArray();
ja.add(feed_jo);
acstowmsService.feedbackTaskStatusToWms(ja);
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setTask_id(entity.getExt_task_id());
request.setTask_id(entity.getExt_task_id());
request.setTask_code(entity.getTask_code());
request.setTask_status(entity.getTask_status());
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
boolean flag = false;
String resp = null;
try {
resp = acstowmsService.applyTask(request);
log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp);
} catch (Exception e) {
log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage());
} finally {
}
}
List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(

View File

@@ -81,7 +81,7 @@ spring:
threads: 4
nettyThreads: 4
singleServerConfig:
database: 1
database: 3
connectionMinimumIdleSize: 8
connectionPoolSize: 8
address: redis://127.0.0.1:6379