Browse Source

opt: 联调测试优化

master
yanps 6 months ago
parent
commit
b018644aea
  1. 50
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
  2. 1
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java
  3. 65
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java
  4. 6
      lms/nladmin-system/nlsso-server/pom.xml
  5. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  6. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/WmsToConnectorService.java
  7. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java
  8. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java
  9. 48
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java
  10. 25
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java
  11. 72
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java
  12. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/controller/SortingController.java
  13. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/SortingService.java
  14. 23
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java
  15. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java
  16. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  17. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java
  18. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  19. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java
  20. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java
  21. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java
  22. 104
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/HHTask.java
  23. 38
      lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml

50
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java

@ -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);

1
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java

@ -309,7 +309,6 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
} catch (Exception e1) { } catch (Exception e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
} }
} }
} }

65
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java

@ -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;

6
lms/nladmin-system/nlsso-server/pom.xml

@ -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>

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java

@ -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())

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/WmsToConnectorService.java

@ -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);
} }

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java

@ -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;
} }

17
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java

@ -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;
} }

48
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java

@ -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);
}
}

25
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java

@ -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);
}

72
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java

@ -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
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/controller/SortingController.java

@ -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);
} }

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/SortingService.java

@ -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);
} }

23
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java

@ -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;
} }
} }

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java

@ -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);
} }

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java

@ -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;
}
} }

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java

@ -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);
} }

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java

@ -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);

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java

@ -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();
//网络不通 //网络不通

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cnt/CNTTask.java → lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java

@ -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")

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cnt/FTGTask.java → lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java

@ -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;

104
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/HHTask.java

@ -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) {
}
}

38
lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml

@ -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>

Loading…
Cancel
Save