opt: 联调测试优化
This commit is contained in:
@@ -110,21 +110,41 @@ public class NDCAgvServiceImpl implements NDCAgvService {
|
|||||||
str1 += "/priority:" + hexToString(prioritylow & 0xFF);
|
str1 += "/priority:" + hexToString(prioritylow & 0xFF);
|
||||||
System.out.println(str);
|
System.out.println(str);
|
||||||
System.out.println(str1);
|
System.out.println(str1);
|
||||||
byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
byte[] b = null;
|
||||||
(byte) 0X00, (byte) 0X08,
|
if(type == 1){
|
||||||
(byte) 0X00, (byte) 0X14,
|
b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
||||||
(byte) 0X00, (byte) 0X01,
|
(byte) 0X00, (byte) 0X08,
|
||||||
(byte) 0X00, (byte) 0X71,
|
(byte) 0X00, (byte) 0X14,
|
||||||
(byte) 0X00, (byte) 0X10,
|
(byte) 0X00, (byte) 0X01,
|
||||||
(byte) 0X01, (byte) 0X80,
|
(byte) 0X00, (byte) 0X71,
|
||||||
(byte) 0X00, (byte) 0X01,
|
(byte) 0X00, (byte) 0X10,
|
||||||
(byte) ikeyhigh, (byte) ikeylow,
|
(byte) 0X01, (byte) 0X80,
|
||||||
(byte) ikeyhigh, (byte) ikeylow,
|
(byte) 0X00, (byte) 0X01,
|
||||||
(byte) typehigh, (byte) typelow,
|
(byte) ikeyhigh, (byte) ikeylow,
|
||||||
(byte) qhdhigh, (byte) qhdlow,
|
(byte) ikeyhigh, (byte) ikeylow,
|
||||||
(byte) fhdhigh, (byte) fhdlow,
|
(byte) typehigh, (byte) typelow,
|
||||||
(byte) 0X00, (byte) 0X00,
|
(byte) qhdhigh, (byte) qhdlow,
|
||||||
};
|
(byte) 0X00, (byte) 0X00,
|
||||||
|
(byte) fhdhigh, (byte) fhdlow,
|
||||||
|
|
||||||
|
};
|
||||||
|
}else if(type == 2){
|
||||||
|
b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
||||||
|
(byte) 0X00, (byte) 0X08,
|
||||||
|
(byte) 0X00, (byte) 0X14,
|
||||||
|
(byte) 0X00, (byte) 0X01,
|
||||||
|
(byte) 0X00, (byte) 0X71,
|
||||||
|
(byte) 0X00, (byte) 0X10,
|
||||||
|
(byte) 0X01, (byte) 0X80,
|
||||||
|
(byte) 0X00, (byte) 0X01,
|
||||||
|
(byte) ikeyhigh, (byte) ikeylow,
|
||||||
|
(byte) ikeyhigh, (byte) ikeylow,
|
||||||
|
(byte) typehigh, (byte) typelow,
|
||||||
|
(byte) qhdhigh, (byte) qhdlow,
|
||||||
|
(byte) fhdhigh, (byte) fhdlow,
|
||||||
|
(byte) 0X00, (byte) 0X00,
|
||||||
|
};
|
||||||
|
}
|
||||||
log.info("下发AGV作业指令--{}", str1);
|
log.info("下发AGV作业指令--{}", str1);
|
||||||
log.info("下发AGV作业指令--{}", str);
|
log.info("下发AGV作业指令--{}", str);
|
||||||
OneNDCSocketConnectionAutoRun.write(b);
|
OneNDCSocketConnectionAutoRun.write(b);
|
||||||
|
|||||||
@@ -309,7 +309,6 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
|||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -194,13 +194,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if ("1".equals(plc_to_agv)) {
|
if ("1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
||||||
data = feedBackStatus(data, index, 1, inst, task,2,false);
|
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
}
|
}
|
||||||
} else if ("2".equals(plc_to_agv)) {
|
} else if ("2".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
|
plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetOutLowerAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetOutLowerAllowed() == 1) {
|
||||||
data = feedBackStatus(data, index, 1, inst, task,2,false);
|
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,7 +212,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
try {
|
try {
|
||||||
data = feedBackStatus(data, index, 1, inst, task,1,false);
|
data = feedBackStatus(data, index, 1, inst, task, 1, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("到达取货点反馈AGV状态失败:{}", e.getMessage());
|
log.info("到达取货点反馈AGV状态失败:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -257,10 +257,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("下发AGVInOP信号:{}失败", "0");
|
log.info("下发AGVInOP信号:{}失败", "0");
|
||||||
}
|
}
|
||||||
data = feedBackStatus(data, index, 2, inst, task,2,false);
|
data = feedBackStatus(data, index, 2, inst, task, 2, false);
|
||||||
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
try {
|
try {
|
||||||
data = feedBackStatus(data, index, 2, inst, task,1,false);
|
data = feedBackStatus(data, index, 2, inst, task, 1, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("取货完成反馈AGV状态失败:{}", e.getMessage());
|
log.info("取货完成反馈AGV状态失败:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -281,19 +281,6 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase);
|
logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*if (agvaddr != 0) {
|
|
||||||
old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
|
||||||
if (StrUtil.contains(old_device_code, "-")) {
|
|
||||||
String[] point = old_device_code.split("-");
|
|
||||||
emptyNum = point[1];
|
|
||||||
device_code = point[0];
|
|
||||||
} else if (StrUtil.contains(old_device_code, ".")) {
|
|
||||||
String[] point = old_device_code.split("\\.");
|
|
||||||
device_code = point[0];
|
|
||||||
} else {
|
|
||||||
device_code = old_device_code;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
if (agvaddr != 0) {
|
if (agvaddr != 0) {
|
||||||
old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
||||||
device_code = old_device_code;
|
device_code = old_device_code;
|
||||||
@@ -316,13 +303,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if ("1".equals(plc_to_agv)) {
|
if ("1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
||||||
data = feedBackStatus(data, index, 3, inst, task,2,false);
|
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
}
|
}
|
||||||
} else if ("2".equals(plc_to_agv)) {
|
} else if ("2".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
|
plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetInLowerAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetInLowerAllowed() == 1) {
|
||||||
data = feedBackStatus(data, index, 3, inst, task,2,false);
|
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -334,7 +321,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
try {
|
try {
|
||||||
data = feedBackStatus(data, index, 2, inst, task,1,false);
|
StandardOrdinarySiteDeviceDriver standar = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
Map<String, Object> extraValue = standar.getDevice().getExtraValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(extraValue.get("ignore_release_check")) && "true".equals(extraValue.get("ignore_release_check"))) {
|
||||||
|
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||||
|
} else {
|
||||||
|
data = feedBackStatus(data, index, 2, inst, task, 1, false);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("到达放货点反馈AGV状态失败:{}", e.getMessage());
|
log.info("到达放货点反馈AGV状态失败:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -393,16 +386,16 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("下发AGVInOP信号:{}失败", "0");
|
log.info("下发AGVInOP信号:{}失败", "0");
|
||||||
}
|
}
|
||||||
data = feedBackStatus(data, index, 4, inst, task,2,false);
|
data = feedBackStatus(data, index, 4, inst, task, 2, false);
|
||||||
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
try {
|
try {
|
||||||
StandardOrdinarySiteDeviceDriver standar = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
StandardOrdinarySiteDeviceDriver standar = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
Map<String, Object> extraValue = standar.getDevice().getExtraValue();
|
Map<String, Object> extraValue = standar.getDevice().getExtraValue();
|
||||||
boolean is_empty = false;
|
boolean is_empty = false;
|
||||||
if(ObjectUtil.isNotEmpty(extraValue.get("is_empty"))){
|
if (ObjectUtil.isNotEmpty(extraValue.get("is_empty"))) {
|
||||||
is_empty = (boolean)extraValue.get("is_empty");
|
is_empty = (boolean) extraValue.get("is_empty");
|
||||||
}
|
}
|
||||||
data = feedBackStatus(data, index, 4, inst, task,1,is_empty);
|
data = feedBackStatus(data, index, 4, inst, task, 1, is_empty);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("放货完成反馈AGV状态失败:{},", e.getMessage());
|
log.info("放货完成反馈AGV状态失败:{},", e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -436,12 +429,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} else if (phase == 0x73) {
|
} else if (phase == 0x73) {
|
||||||
//agv电量
|
//agv电量
|
||||||
electric_qty = ikey;
|
electric_qty = ikey;
|
||||||
int electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC).getValue());
|
/*int electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC).getValue());
|
||||||
if (electric_qty > 0 && electric_qty < electric) {
|
if (electric_qty > 0 && electric_qty < electric) {
|
||||||
log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.device_code, electric_qty, electric);
|
log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.device_code, electric_qty, electric);
|
||||||
NDCAgvService.charge(String.valueOf(this.agvaddr));
|
NDCAgvService.charge(String.valueOf(this.agvaddr));
|
||||||
isCharge = true;
|
isCharge = true;
|
||||||
}
|
}*/
|
||||||
} else if (phase == 0x74) {
|
} else if (phase == 0x74) {
|
||||||
//三色灯状态
|
//三色灯状态
|
||||||
status = ikey;
|
status = ikey;
|
||||||
@@ -456,8 +449,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
String hasWms = paramService.findByCode("hasWms").getValue();
|
String hasWms = paramService.findByCode("hasWms").getValue();
|
||||||
if ("3".equals(task.getTask_type()) && StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
if ("3".equals(task.getTask_type()) && StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
||||||
String resp = acsToWmsService.requestTaskAgain(task.getNext_point_code(), task.getExt_task_id(), inst.getVehicle_code());
|
String resp = acsToWmsService.requestTaskAgain(task.getNext_point_code(), task.getExt_task_id(), inst.getVehicle_code());
|
||||||
if(StrUtil.isEmpty(resp)){
|
if (StrUtil.isEmpty(resp)) {
|
||||||
log.info("申请分配二次点位失败,响应参数:{}",resp);
|
log.info("申请分配二次点位失败,响应参数:{}", resp);
|
||||||
}
|
}
|
||||||
JSONObject respjson = JSONObject.parseObject(resp);
|
JSONObject respjson = JSONObject.parseObject(resp);
|
||||||
String point_code = respjson.getString("point_code");
|
String point_code = respjson.getString("point_code");
|
||||||
@@ -473,14 +466,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] feedBackStatus(byte[] data, int index, int agvStatus, Instruction inst, TaskDto task,int connector_and_sorting,boolean is_empty) {
|
private byte[] feedBackStatus(byte[] data, int index, int agvStatus, Instruction inst, TaskDto task, int connector_and_sorting, boolean is_empty) {
|
||||||
String hasWms = paramService.findByCode("hasWms").getValue();
|
String hasWms = paramService.findByCode("hasWms").getValue();
|
||||||
if (StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
if (StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
||||||
log.info("存在LMS系统,需要反馈,指令号:{}",inst.getInstruction_code());
|
log.info("存在LMS系统,需要反馈,指令号:{}", inst.getInstruction_code());
|
||||||
JSONArray ja = new JSONArray();
|
JSONArray ja = new JSONArray();
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("is_connector", connector_and_sorting == 1? 1:2);
|
jo.put("is_connector", connector_and_sorting == 1 ? 1 : 2);
|
||||||
jo.put("task_type",task.getTask_type());
|
jo.put("task_type", task.getTask_type());
|
||||||
jo.put("vehicle_code", inst.getVehicle_code());
|
jo.put("vehicle_code", inst.getVehicle_code());
|
||||||
jo.put("status", agvStatus);
|
jo.put("status", agvStatus);
|
||||||
jo.put("device_code", this.device_code);
|
jo.put("device_code", this.device_code);
|
||||||
@@ -492,7 +485,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) {
|
if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) {
|
||||||
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
if(connector_and_sorting == 1){
|
if (connector_and_sorting == 1) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
@@ -502,7 +495,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
log.info("指令号:{},phase:{},acs反馈wms失败:{}", inst.getInstruction_code(), phase, httpResponse);
|
log.info("指令号:{},phase:{},acs反馈wms失败:{}", inst.getInstruction_code(), phase, httpResponse);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.info("不存在LMS系统,不需要反馈直接进去取货,指令号:{}",inst.getInstruction_code());
|
log.info("不存在LMS系统,不需要反馈直接进去取货,指令号:{}", inst.getInstruction_code());
|
||||||
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
|
|||||||
@@ -34,6 +34,12 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.gson</groupId>
|
||||||
|
<artifactId>gson</artifactId>
|
||||||
|
<version>2.10.1</version> <!-- 版本号可根据需要调整 -->
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- https://onew.me/logback/2018/09/17/logback_win.html-->
|
<!-- https://onew.me/logback/2018/09/17/logback_win.html-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.fusesource.jansi</groupId>
|
<groupId>org.fusesource.jansi</groupId>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpStatus;
|
import cn.hutool.http.HttpStatus;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -488,7 +489,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID());
|
schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID());
|
||||||
schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty());
|
schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty());
|
||||||
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
||||||
schBaseVehiclematerialgroup.setExtend(connectorDto.toString());
|
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto));
|
||||||
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
||||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||||
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, schBaseTask.getTask_code())
|
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, schBaseTask.getTask_code())
|
||||||
|
|||||||
@@ -12,4 +12,11 @@ public interface WmsToConnectorService {
|
|||||||
* @param json
|
* @param json
|
||||||
*/
|
*/
|
||||||
AcsResponse feedAgvTaskStatus(JSONObject json);
|
AcsResponse feedAgvTaskStatus(JSONObject json);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反馈放货完成
|
||||||
|
* @param json
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AcsResponse feedAgvFinishTask(JSONObject json);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.nl.wms.ext.connector.service.dto;
|
package org.nl.wms.ext.connector.service.dto;
|
||||||
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -17,44 +19,54 @@ public class ConnectorDto {
|
|||||||
/**
|
/**
|
||||||
* 任务号
|
* 任务号
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("jobname")
|
||||||
private String Jobname;
|
private String Jobname;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下料小车托盘号
|
* 下料小车托盘号
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("palletID")
|
||||||
private String PalletID;
|
private String PalletID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物料号
|
* 物料号
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("productID")
|
||||||
private String ProductID;
|
private String ProductID;
|
||||||
/**
|
/**
|
||||||
* 装载数量
|
* 装载数量
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("currentqty")
|
||||||
private Integer Currentqty;
|
private Integer Currentqty;
|
||||||
/**
|
/**
|
||||||
* X尺寸
|
* X尺寸
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("sizeX")
|
||||||
private String SizeX;
|
private String SizeX;
|
||||||
/**
|
/**
|
||||||
* Y尺寸
|
* Y尺寸
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("sizeY")
|
||||||
private String SizeY;
|
private String SizeY;
|
||||||
/**
|
/**
|
||||||
* 角度
|
* 角度
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("angle")
|
||||||
private String Angle;
|
private String Angle;
|
||||||
/**
|
/**
|
||||||
* 厚度
|
* 厚度
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("thickness")
|
||||||
private String Thickness;
|
private String Thickness;
|
||||||
/**
|
/**
|
||||||
* X坐标
|
* X坐标
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("positionX")
|
||||||
private String PositionX;
|
private String PositionX;
|
||||||
/**
|
/**
|
||||||
* Y坐标
|
* Y坐标
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("positionY")
|
||||||
private String PositionY;
|
private String PositionY;
|
||||||
/**
|
/**
|
||||||
* 载具号
|
* 载具号
|
||||||
@@ -63,17 +75,21 @@ public class ConnectorDto {
|
|||||||
/**
|
/**
|
||||||
* 工单
|
* 工单
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("productionOrder")
|
||||||
private String ProductionOrder;
|
private String ProductionOrder;
|
||||||
/**
|
/**
|
||||||
* JOBFinishFlag
|
* JOBFinishFlag
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("finished")
|
||||||
private String Finished;
|
private String Finished;
|
||||||
/**
|
/**
|
||||||
* 下一道工序
|
* 下一道工序
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("nextOperation")
|
||||||
private String NextOperation;
|
private String NextOperation;
|
||||||
/**
|
/**
|
||||||
* 截至时间
|
* 截至时间
|
||||||
*/
|
*/
|
||||||
|
@SerializedName("dueDate")
|
||||||
private String DueDate;
|
private String DueDate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.wms.ext.connector.service.impl;
|
package org.nl.wms.ext.connector.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
|
import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
|
||||||
@@ -18,8 +19,20 @@ public class WmsToConnectorServiceImpl implements WmsToConnectorService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AcsResponse feedAgvTaskStatus(JSONObject json) {
|
public AcsResponse feedAgvTaskStatus(JSONObject json) {
|
||||||
String api = "api/iot/agvtask";
|
String api = "/iot/agvarrive";
|
||||||
AcsResponse acsResponse = ConnectorUtil.notifyConnector2(api, json);
|
JSONArray objects = new JSONArray();
|
||||||
|
objects.add(json);
|
||||||
|
AcsResponse acsResponse = ConnectorUtil.notifyConnector2(api, objects);
|
||||||
|
return acsResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AcsResponse feedAgvFinishTask(JSONObject json) {
|
||||||
|
String api = "/iot/agvfinish";
|
||||||
|
JSONArray objects = new JSONArray();
|
||||||
|
objects.add(json);
|
||||||
|
AcsResponse acsResponse = ConnectorUtil.notifyConnector2(api, objects);
|
||||||
return acsResponse;
|
return acsResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package org.nl.wms.ext.handheld.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.wms.ext.handheld.service.HandheldService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author LENOVO
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "手持")
|
||||||
|
@RequestMapping("/api/")
|
||||||
|
@Slf4j
|
||||||
|
@SaIgnore
|
||||||
|
public class HandheldController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HandheldService handheldService;
|
||||||
|
|
||||||
|
@PostMapping("/task")
|
||||||
|
@Log("手持创建去地面点位任务")
|
||||||
|
@ApiOperation("手持创建去地面点位任务")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> applyGroundTask(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(handheldService.applyTask(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/emptyVehicle")
|
||||||
|
@Log("呼叫地面空载具点位")
|
||||||
|
@ApiOperation("呼叫地面空载具点位")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> applyEmptyVehicle(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(handheldService.applyEmptyVehicle(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.nl.wms.ext.handheld.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author LENOVO
|
||||||
|
*/
|
||||||
|
public interface HandheldService {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手持申请去地面点位任务
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Object applyTask(JSONObject param);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手持呼叫空载具地面点位
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Object applyEmptyVehicle(JSONObject param);
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package org.nl.wms.ext.handheld.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import nl.basjes.shaded.org.springframework.util.Assert;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.wms.ext.handheld.service.HandheldService;
|
||||||
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
|
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author LENOVO
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class HandheldServiceImpl implements HandheldService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService iSchBasePointService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TaskFactory taskFactory;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object applyTask(JSONObject param) {
|
||||||
|
Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_list")
|
||||||
|
, param.getString("vehicle_type")}, "参数不能为空!");
|
||||||
|
String vehicle_list = param.getString("vehicle_list");
|
||||||
|
String region_code = param.getString("region_code");
|
||||||
|
|
||||||
|
String device_code = param.getString("device_code");
|
||||||
|
String vehicle_type = param.getString("vehicle_type");
|
||||||
|
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code);
|
||||||
|
boolean equals = StrUtil.equals(schBasePoint.getPoint_type(), vehicle_type);
|
||||||
|
if (ObjectUtil.isEmpty(schBasePoint) || !equals) throw new BadRequestException("设备点位不存在!");
|
||||||
|
AbstractTask connectorTask = taskFactory.getTask("HHTask");
|
||||||
|
// 准备参数:设备编码
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("device_code", device_code);
|
||||||
|
jo.put("config_code", "HHTask");
|
||||||
|
jo.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
||||||
|
jo.put("vehicle_qty", BeanUtil.toBean(vehicle_list, List.class).size());
|
||||||
|
jo.put("vehicles", BeanUtil.toBean(vehicle_list, List.class));
|
||||||
|
jo.put("vehicle_type", vehicle_type);
|
||||||
|
jo.put("ext_data", param);
|
||||||
|
connectorTask.apply(jo);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object applyEmptyVehicle(JSONObject param) {
|
||||||
|
Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_type")}, "参数不能为空!");
|
||||||
|
String device_code = param.getString("device_code");
|
||||||
|
String vehicle_type = param.getString("vehicle_type");
|
||||||
|
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code);
|
||||||
|
boolean equals = StrUtil.equals(schBasePoint.getPoint_type(), vehicle_type);
|
||||||
|
if (ObjectUtil.isEmpty(schBasePoint) || !equals) throw new BadRequestException("设备点位不存在!");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ import io.swagger.annotations.Api;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.logging.annotation.Log;
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.wms.ext.connector.service.dto.ConnectorDto;
|
||||||
import org.nl.wms.ext.sorting.service.SortingService;
|
import org.nl.wms.ext.sorting.service.SortingService;
|
||||||
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -34,11 +35,12 @@ public class SortingController {
|
|||||||
Map map = sortingService.createAgvTask(jsonObject);
|
Map map = sortingService.createAgvTask(jsonObject);
|
||||||
return new ResponseEntity(map, HttpStatus.OK);
|
return new ResponseEntity(map, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/jobs")
|
@GetMapping("/jobs")
|
||||||
@Log("查询物料列表")
|
@Log("查询物料列表")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> getMaterialList(String Jobname){
|
public ResponseEntity<Object> getMaterialList(@RequestParam String Jobname){
|
||||||
List<PointMaterialInfo> structList = sortingService.getStructList(Jobname);
|
List<ConnectorDto> structList = sortingService.getStructList(Jobname);
|
||||||
return new ResponseEntity(structList, HttpStatus.OK);
|
return new ResponseEntity(structList, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.ext.sorting.service;
|
package org.nl.wms.ext.sorting.service;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.wms.ext.connector.service.dto.ConnectorDto;
|
||||||
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -18,5 +19,5 @@ public interface SortingService {
|
|||||||
*/
|
*/
|
||||||
Map createAgvTask(JSONObject jsonObject);
|
Map createAgvTask(JSONObject jsonObject);
|
||||||
|
|
||||||
List<PointMaterialInfo> getStructList(String jobName);
|
List<ConnectorDto> getStructList(String jobName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,20 @@
|
|||||||
package org.nl.wms.ext.sorting.service.impl;
|
package org.nl.wms.ext.sorting.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import org.nl.common.enums.region.RegionEnum;
|
import org.nl.common.enums.region.RegionEnum;
|
||||||
import org.nl.config.IdUtil;
|
import org.nl.config.IdUtil;
|
||||||
import org.nl.config.MapOf;
|
import org.nl.config.MapOf;
|
||||||
|
import org.nl.wms.ext.connector.service.dto.ConnectorDto;
|
||||||
import org.nl.wms.ext.sorting.enums.SortingEnum;
|
import org.nl.wms.ext.sorting.enums.SortingEnum;
|
||||||
import org.nl.wms.ext.sorting.service.SortingService;
|
import org.nl.wms.ext.sorting.service.SortingService;
|
||||||
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
||||||
@@ -20,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -39,6 +46,8 @@ public class SortingServiceImpl implements SortingService {
|
|||||||
private SortingSNTTask sortingSNTTask;
|
private SortingSNTTask sortingSNTTask;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService iSchBasePointService;
|
private ISchBasePointService iSchBasePointService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -90,8 +99,16 @@ public class SortingServiceImpl implements SortingService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PointMaterialInfo> getStructList(String jobName) {
|
public List<ConnectorDto> getStructList(String jobName) {
|
||||||
List<PointMaterialInfo> structList = iSchBasePointService.getStructList(RegionEnum.ZDFJ.getRegion_code(), "1");
|
List<SchBaseVehiclematerialgroup> list = iSchBaseVehiclematerialgroupService.list(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||||
return structList;
|
.eq(SchBaseVehiclematerialgroup::getJob_name, jobName));
|
||||||
|
List<ConnectorDto> connectors = new ArrayList<>();
|
||||||
|
for (SchBaseVehiclematerialgroup schBaseVehiclematerialgroup : list) {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
ConnectorDto connectorDto = gson.fromJson(schBaseVehiclematerialgroup.getExtend(), ConnectorDto.class);
|
||||||
|
connectors.add(connectorDto);
|
||||||
|
}
|
||||||
|
// List<PointMaterialInfo> structList = iSchBasePointService.getStructList(RegionEnum.ZDFJ.getRegion_code(), "1");
|
||||||
|
return connectors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -64,4 +65,6 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
|
|||||||
* @param data
|
* @param data
|
||||||
*/
|
*/
|
||||||
void updateByVehicleCode(String vehicle_code, String data);
|
void updateByVehicleCode(String vehicle_code, String data);
|
||||||
|
|
||||||
|
List selectByJobName(String jobName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,4 +136,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
|||||||
.set(SchBaseVehiclematerialgroup::getExtend, data));
|
.set(SchBaseVehiclematerialgroup::getExtend, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List selectByJobName(String jobName) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
* @param start_device_code
|
* @param start_device_code
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
SchBasePoint selectByPointCode(String start_device_code);
|
SchBasePoint selectByPointCode(String device_code);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询二次分配的虚拟站点
|
* 查询二次分配的虚拟站点
|
||||||
@@ -118,4 +118,10 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
*/
|
*/
|
||||||
SchBasePoint selectByNextWaitPoint(String device_code,String vehicleCode);
|
SchBasePoint selectByNextWaitPoint(String device_code,String vehicleCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据托盘类型查询
|
||||||
|
* @param vehicle_type
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
SchBasePoint selectByVehicleQty(String config_code, String vehicle_type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,6 +335,18 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SchBasePoint selectByVehicleQty(String config_code, String vehicle_type) {
|
||||||
|
Assert.noNullElements(new Object[]{config_code, vehicle_type}, "载具类型不能为空!");
|
||||||
|
|
||||||
|
List<SchBasePoint> schBasePoints = pointMapper.selectList(Wrappers.lambdaQuery(SchBasePoint.class).eq(SchBasePoint::getIs_lock, false)
|
||||||
|
.isNotNull(SchBasePoint::getVehicle_code)
|
||||||
|
.eq(SchBasePoint::getRegion_code, config_code)
|
||||||
|
.eq(SchBasePoint::getPoint_status, GoodsEnum.EMPTY_PALLETS.getValue())
|
||||||
|
.eq(SchBasePoint::getCan_vehicle_type, vehicle_type));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PointMaterialInfo> getStructList(String region_code, String vehicle_type) {
|
public List<PointMaterialInfo> getStructList(String region_code, String vehicle_type) {
|
||||||
List<PointMaterialInfo> structList = pointMapper.getStructList(region_code, vehicle_type);
|
List<PointMaterialInfo> structList = pointMapper.getStructList(region_code, vehicle_type);
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class ConnectorUtil {
|
|||||||
return AcsResponse.requestRefuse("未连接ACS!");
|
return AcsResponse.requestRefuse("未连接ACS!");
|
||||||
}
|
}
|
||||||
String url = connectorUrl + api;
|
String url = connectorUrl + api;
|
||||||
log.info("下发acs任务的参数为:{}", JSON.toJSONString(object));
|
log.info("反馈connector到达取货点的参数为:{},接口路径:{}", JSON.toJSONString(object),url);
|
||||||
AcsResponse resultForAcs;
|
AcsResponse resultForAcs;
|
||||||
try {
|
try {
|
||||||
String resultMsg = HttpRequest.post(url)
|
String resultMsg = HttpRequest.post(url)
|
||||||
@@ -94,6 +94,7 @@ public class ConnectorUtil {
|
|||||||
.execute().body();
|
.execute().body();
|
||||||
result = JSONObject.parseObject(resultMsg);
|
result = JSONObject.parseObject(resultMsg);
|
||||||
resultForAcs = JSONObject.toJavaObject(result, AcsResponse.class);
|
resultForAcs = JSONObject.toJavaObject(result, AcsResponse.class);
|
||||||
|
log.info("反馈connector到达取货点的响应参数为:{}", result);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String msg = e.getMessage();
|
String msg = e.getMessage();
|
||||||
//网络不通
|
//网络不通
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
package org.nl.wms.sch.task_manage.task.tasks.cnt;
|
package org.nl.wms.sch.task_manage.task.tasks.connector;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.enums.GoodsEnum;
|
import org.nl.common.enums.GoodsEnum;
|
||||||
@@ -11,13 +10,11 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||||
@@ -29,9 +26,7 @@ import org.nl.wms.util.TaskUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component(value = "CNTTask")
|
@Component(value = "CNTTask")
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package org.nl.wms.sch.task_manage.task.tasks.cnt;
|
package org.nl.wms.sch.task_manage.task.tasks.connector;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.enums.GoodsEnum;
|
import org.nl.common.enums.GoodsEnum;
|
||||||
@@ -11,13 +10,11 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task.tasks.handheld;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.common.enums.GoodsEnum;
|
||||||
|
import org.nl.common.enums.region.RegionEnum;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
|
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
||||||
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskType;
|
||||||
|
import org.nl.wms.util.PointUtils;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author LENOVO
|
||||||
|
*/
|
||||||
|
@Component("HHTask")
|
||||||
|
public class HHTask extends AbstractTask {
|
||||||
|
|
||||||
|
|
||||||
|
private static final String TASK_CONFIG_CODE = "HHTask";
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
@Autowired
|
||||||
|
private ISysNoticeService noticeService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService schBasePointService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void create() throws BadRequestException {
|
||||||
|
// 获取任务
|
||||||
|
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||||
|
// 配置信息
|
||||||
|
for (SchBaseTask task : tasks) {
|
||||||
|
TaskUtils.setUpdateByAcs(task);
|
||||||
|
// 查询终点
|
||||||
|
SchBasePoint schBasePoint = schBasePointService.selectByVehicleQty(RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code(),task.getVehicle_type());
|
||||||
|
if (TaskType.CARRY_TASK.getValue().equals(task.getTask_type())) {
|
||||||
|
schBasePoint = schBasePointService.selectByRegionCode(RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code(), task.getVehicle_code());
|
||||||
|
} else if (TaskType.REASSIGN_TASK.getValue().equals(task.getTask_type())) {
|
||||||
|
schBasePoint = schBasePointService.selectByReassign(RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code(), task.getVehicle_code());
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||||
|
task.setRemark("未找到所需点位!");
|
||||||
|
taskService.updateById(task);
|
||||||
|
// 消息通知
|
||||||
|
noticeService.createNotice("未找到所需点位!", TASK_CONFIG_CODE + task.getTask_code(),
|
||||||
|
NoticeTypeEnum.WARN.getCode());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置终点并修改创建成功状态
|
||||||
|
task.setPoint_code2(schBasePoint.getPoint_code());
|
||||||
|
task.setVehicle_type(schBasePoint.getCan_vehicle_type());
|
||||||
|
task.setRemark("");
|
||||||
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
|
taskService.updateById(task);
|
||||||
|
|
||||||
|
schBasePoint.setIng_task_code(task.getTask_code());
|
||||||
|
schBasePoint.setPoint_status(GoodsEnum.IN_STOCK.getValue());
|
||||||
|
PointUtils.setUpdateByAcs(schBasePoint);
|
||||||
|
pointService.updateById(schBasePoint);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void feedbackTaskState(JSONObject param, SchBaseTask schBaseTask, BaseResponse result) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
<property name="log.charset" value="utf-8"/>
|
<property name="log.charset" value="utf-8"/>
|
||||||
<property name="log.pattern"
|
<property name="log.pattern"
|
||||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
||||||
|
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||||
<property name="LOG_HOME" value="${logPath}"/>
|
<property name="LOG_HOME" value="${logPath}"/>
|
||||||
|
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@
|
|||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
||||||
|
<property name="LOG_HOME" value="${logPath}"/>
|
||||||
<!-- 按照每天生成日志文件 -->
|
<!-- 按照每天生成日志文件 -->
|
||||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
@@ -108,32 +110,46 @@
|
|||||||
</logger>
|
</logger>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
<springProfile name="prod">
|
<springProfile name="prod">
|
||||||
<root level="info">
|
<root level="debug">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
<appender-ref ref="asyncLuceneAppender"/>
|
|
||||||
</root>
|
</root>
|
||||||
<logger name="jdbc" level="ERROR" additivity="true">
|
<logger name="org.springframework" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.hibernate" level="ERROR" additivity="true">
|
<logger name="org.apache" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.quartz" level="ERROR" additivity="true">
|
<logger name="org.hibernate" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="com.google" level="ERROR" additivity="true">
|
<logger name="io.netty" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.redisson" level="ERROR" additivity="true">
|
<logger name="jdbc" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
|
<logger name="io.lettuce" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.springframework.data" level="ERROR" additivity="true">
|
<logger name="com.fasterxml" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.quartz" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="com.google" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="springfox" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="log4jdbc" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="nl.basjes" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
|
|||||||
Reference in New Issue
Block a user