|
|
@ -108,6 +108,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
@Autowired |
|
|
|
private ISysParamService sysParamService; |
|
|
|
|
|
|
|
private long lastTime; |
|
|
|
|
|
|
|
private long milliseconds = 3000; |
|
|
|
|
|
|
|
/** |
|
|
|
* 初始化反射方法 |
|
|
|
*/ |
|
|
@ -504,75 +508,74 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
*/ |
|
|
|
private void requestPickup(SchBaseTask schBaseTask, String status, String is_connector) { |
|
|
|
if ("1".equals(is_connector)) { |
|
|
|
//反馈connector申请取货
|
|
|
|
JSONObject json = new JSONObject(); |
|
|
|
json.put("vehicle_code", schBaseTask.getVehicle_code()); |
|
|
|
json.put("status", status); |
|
|
|
json.put("device_code", schBaseTask.getPoint_code1()); |
|
|
|
json.put("task_code", schBaseTask.getTask_code()); |
|
|
|
if (schBaseTask.getPoint_code1().endsWith("1")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("1", "2"); |
|
|
|
SchBaseTask schBaseTask1 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask1)) { |
|
|
|
schBaseTask1.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask1); |
|
|
|
} |
|
|
|
} else if (schBaseTask.getPoint_code1().endsWith("3")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("3", "4"); |
|
|
|
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask2)) { |
|
|
|
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask2); |
|
|
|
} |
|
|
|
} else if (schBaseTask.getPoint_code1().endsWith("5")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("5", "6"); |
|
|
|
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask2)) { |
|
|
|
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask2); |
|
|
|
} |
|
|
|
} |
|
|
|
boolean flag = true; |
|
|
|
String jobName = null; |
|
|
|
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) |
|
|
|
.eq(SchBaseVehiclematerialgroup::getVehicle_code, schBaseTask.getVehicle_code())); |
|
|
|
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json); |
|
|
|
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) { |
|
|
|
JSONArray objects = JSONObject.parseArray(acsResponse.getData()); |
|
|
|
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class); |
|
|
|
for (ConnectorDto connectorDto : connectorDtos) { |
|
|
|
if (schBaseTask.getVehicle_code().equals(connectorDto.getVehicle_code())) { |
|
|
|
//TODO:载具号不同
|
|
|
|
long time = System.currentTimeMillis(); |
|
|
|
if (time - lastTime > milliseconds) { |
|
|
|
lastTime = System.currentTimeMillis(); |
|
|
|
//反馈connector申请取货
|
|
|
|
JSONObject json = new JSONObject(); |
|
|
|
json.put("vehicle_code", schBaseTask.getVehicle_code()); |
|
|
|
json.put("status", status); |
|
|
|
json.put("device_code", schBaseTask.getPoint_code1()); |
|
|
|
json.put("task_code", schBaseTask.getTask_code()); |
|
|
|
if (schBaseTask.getPoint_code1().endsWith("1")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("1", "2"); |
|
|
|
SchBaseTask schBaseTask1 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask1)) { |
|
|
|
schBaseTask1.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask1); |
|
|
|
} |
|
|
|
MdBaseMaterial mdBaseMaterial = iMdBaseMaterialService.getOne(Wrappers.lambdaQuery(MdBaseMaterial.class) |
|
|
|
.eq(MdBaseMaterial::getMaterial_code, connectorDto.getProductID())); |
|
|
|
if (ObjectUtil.isEmpty(mdBaseMaterial)) { |
|
|
|
//TODO:物料不存在
|
|
|
|
} else if (schBaseTask.getPoint_code1().endsWith("3")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("3", "4"); |
|
|
|
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask2)) { |
|
|
|
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask2); |
|
|
|
} |
|
|
|
connectorDto.setCreate_name("Connector"); |
|
|
|
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto); |
|
|
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); |
|
|
|
if ("Y".equals(connectorDto.getFinished())) { |
|
|
|
jobName = connectorDto.getJobname(); |
|
|
|
} else if (schBaseTask.getPoint_code1().endsWith("5")) { |
|
|
|
String replace = schBaseTask.getPoint_code1().replace("5", "6"); |
|
|
|
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) |
|
|
|
.eq(SchBaseTask::getPoint_code1, replace) |
|
|
|
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode())); |
|
|
|
if (ObjectUtil.isNotEmpty(schBaseTask2)) { |
|
|
|
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
|
taskService.update(schBaseTask2); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StrUtil.isNotEmpty(jobName)) { |
|
|
|
JSONObject jsonObject = new JSONObject(); |
|
|
|
jsonObject.put("cJobName", jobName); |
|
|
|
try { |
|
|
|
sortingService.applyFinishJobName(jsonObject); |
|
|
|
} catch (Exception e) { |
|
|
|
log.info("wms反馈sorting->JobName完成,失败{}", e.getMessage()); |
|
|
|
boolean flag = true; |
|
|
|
String jobName = null; |
|
|
|
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) |
|
|
|
.eq(SchBaseVehiclematerialgroup::getVehicle_code, schBaseTask.getVehicle_code())); |
|
|
|
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json); |
|
|
|
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) { |
|
|
|
JSONArray objects = JSONObject.parseArray(acsResponse.getData()); |
|
|
|
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class); |
|
|
|
for (ConnectorDto connectorDto : connectorDtos) { |
|
|
|
connectorDto.setCreate_name("Connector"); |
|
|
|
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto); |
|
|
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); |
|
|
|
if ("Y".equals(connectorDto.getFinished())) { |
|
|
|
jobName = connectorDto.getJobname(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StrUtil.isNotEmpty(jobName)) { |
|
|
|
JSONObject jsonObject = new JSONObject(); |
|
|
|
jsonObject.put("cJobName", jobName); |
|
|
|
try { |
|
|
|
sortingService.applyFinishJobName(jsonObject); |
|
|
|
} catch (Exception e) { |
|
|
|
log.info("wms反馈sorting->JobName完成,失败{}", e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new BadRequestException("LMS向Connector请求取货"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new BadRequestException("LMS向Connector请求取货"); |
|
|
|
log.info("请求connector取货间隔小于3秒,忽略"); |
|
|
|
throw new BadRequestException("请求connector取货间隔小于3秒,忽略"); |
|
|
|
} |
|
|
|
} |
|
|
|
if ("2".equals(is_connector)) { |
|
|
|