diff --git a/lib/modbus4j-3.0.3.jar b/lib/modbus4j-3.0.3.jar new file mode 100644 index 0000000..991bcee --- /dev/null +++ b/lib/modbus4j-3.0.3.jar diff --git a/pom.xml b/pom.xml index 3f88698..5f1646e 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,11 @@ <artifactId>jimureport-spring-boot-starter</artifactId> <version>1.5.2</version> </dependency> - + <dependency> + <groupId>com.intelligt.modbus</groupId> + <artifactId>jlibmodbus</artifactId> + <version>1.2.9.7</version> + </dependency> <!--qrcODE end--> <!--对于web的依赖--> <dependency> diff --git a/src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java b/src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java index 14afb27..a824f9a 100644 --- a/src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java +++ b/src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java @@ -382,13 +382,22 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac if(StringUtils.isNull(o1)) { return AjaxResult.error("任务号为空"); } + Integer taskNo=Integer.valueOf(o1.toString()); + List<AgvTask> list = list(new LambdaQueryWrapper<AgvTask>().eq(AgvTask::getId, taskNo)); + if(CollectionUtils.isNotEmpty(list)){ + AgvTask agvTask1 = list.get(0); + if(agvTask1.getStatus().equals(100)){ + return AjaxResult.success("任务已经是完成了的"); + } + }else { + return AjaxResult.success("任务不存在"); + } if(StringUtils.isNull(o2)) { return AjaxResult.error("小车编号为空"); } if(StringUtils.isNull(o3)) { return AjaxResult.error("任务状态为空"); } - Integer taskNo=Integer.valueOf(o1.toString()); String carNo=o2.toString(); String status=o3.toString(); agvTask.setId(taskNo); diff --git a/src/main/java/com/huaheng/api/dianqi/JLibModbusRead.java b/src/main/java/com/huaheng/api/dianqi/JLibModbusRead.java new file mode 100644 index 0000000..c10b578 --- /dev/null +++ b/src/main/java/com/huaheng/api/dianqi/JLibModbusRead.java @@ -0,0 +1,97 @@ +package com.huaheng.api.dianqi; + + +import java.net.InetAddress; + +import com.intelligt.modbus.jlibmodbus.Modbus; +import com.intelligt.modbus.jlibmodbus.exception.ModbusIOException; +import com.intelligt.modbus.jlibmodbus.exception.ModbusNumberException; +import com.intelligt.modbus.jlibmodbus.exception.ModbusProtocolException; +import com.intelligt.modbus.jlibmodbus.master.ModbusMaster; +import com.intelligt.modbus.jlibmodbus.master.ModbusMasterFactory; +import com.intelligt.modbus.jlibmodbus.tcp.TcpParameters; + + +/** + * Hello world! + * + */ +public class JLibModbusRead { + public static void main(String[] args) { + try { + // 设置主机TCP参数 + TcpParameters tcpParameters = new TcpParameters(); + + // 设置TCP的ip地址 + InetAddress adress = InetAddress.getByName("192.168.2.1"); + //InetAddress adress = InetAddress.getByName("127.0.0.1"); + + // TCP参数设置ip地址 + // tcpParameters.setHost(InetAddress.getLocalHost()); + tcpParameters.setHost(adress); + + // TCP设置长连接 + tcpParameters.setKeepAlive(true); + // TCP设置端口,这里设置是默认端口502 + tcpParameters.setPort(Modbus.TCP_PORT); + + // 创建一个主机 + ModbusMaster master = ModbusMasterFactory.createModbusMasterTCP(tcpParameters); + Modbus.setAutoIncrementTransactionId(true); + + int slaveId = 1;//从机地址 + int offset = 0;//寄存器读取开始地址 + int quantity = 10;//读取的寄存器数量 + + + try { + if (!master.isConnected()) { + master.connect();// 开启连接 + } +// * 读线圈: ON=1,OFF=0 +// * 读离散量 ON=1,OFF=0 +// * 读保存寄存器 指定数据类型(可以是Float) +// * 读输入寄存器 指定数据类型(可以是Float) + boolean[] readCoils = master.readCoils(slaveId, offset, quantity); + boolean[] discreteInputs = master.readDiscreteInputs(slaveId, offset, quantity); + int[] readHoldingRegisters = master.readHoldingRegisters(slaveId, offset, quantity); + // 读取对应从机的数据,readInputRegisters读取的写寄存器,功能码04 + int[] readInputRegisters = master.readInputRegisters(slaveId, offset, quantity); + + for (boolean value : readCoils) { + System.out.println("readCoils:Address: " + offset++ + ", Value: " + value); + } + + for (boolean value : discreteInputs) { + System.out.println("discreteInputs:Address: " + offset++ + ", Value: " + value); + } + + for (int value : readHoldingRegisters) { + System.out.println("readHoldingRegisters:Address: " + offset++ + ", Value: " + value); + } + + // 控制台输出 + for (int value : readInputRegisters) { + System.out.println("readInputRegisters:Address: " + offset++ + ", Value: " + value); + } + + } catch (ModbusProtocolException e) { + e.printStackTrace(); + } catch (ModbusNumberException e) { + e.printStackTrace(); + } catch (ModbusIOException e) { + e.printStackTrace(); + } finally { + try { + master.disconnect(); + } catch (ModbusIOException e) { + e.printStackTrace(); + } + } + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/huaheng/api/dianqi/JLibModbusWrite.java b/src/main/java/com/huaheng/api/dianqi/JLibModbusWrite.java new file mode 100644 index 0000000..e413ff8 --- /dev/null +++ b/src/main/java/com/huaheng/api/dianqi/JLibModbusWrite.java @@ -0,0 +1,84 @@ +package com.huaheng.api.dianqi; + +import com.intelligt.modbus.jlibmodbus.Modbus; +import com.intelligt.modbus.jlibmodbus.exception.ModbusIOException; +import com.intelligt.modbus.jlibmodbus.exception.ModbusNumberException; +import com.intelligt.modbus.jlibmodbus.exception.ModbusProtocolException; +import com.intelligt.modbus.jlibmodbus.master.ModbusMaster; +import com.intelligt.modbus.jlibmodbus.master.ModbusMasterFactory; +import com.intelligt.modbus.jlibmodbus.tcp.TcpParameters; + +import java.net.InetAddress; + +public class JLibModbusWrite { + public static void main(String[] args) { + try { + // 设置主机TCP参数 + TcpParameters tcpParameters = new TcpParameters(); + + // 设置TCP的ip地址 + InetAddress adress = InetAddress.getByName("192.168.2.1"); + // InetAddress adress = InetAddress.getByName("127.0.0.1"); + + // TCP参数设置ip地址 + // tcpParameters.setHost(InetAddress.getLocalHost()); + tcpParameters.setHost(adress); + + // TCP设置长连接 + tcpParameters.setKeepAlive(true); + // TCP设置端口,这里设置是默认端口502 + tcpParameters.setPort(Modbus.TCP_PORT); + + // 创建一个主机 + ModbusMaster master = ModbusMasterFactory.createModbusMasterTCP(tcpParameters); + Modbus.setAutoIncrementTransactionId(true); + + int slaveId = 1;//从机地址 + int offset = 6;//寄存器读取开始地址 + int quantity = 10;//读取的寄存器数量 + + + try { + if (!master.isConnected()) { + master.connect();// 开启连接 + } +// * 读线圈: ON=1,OFF=0 +// * 读离散量 ON=1,OFF=0 +// * 读保存寄存器 指定数据类型(可以是Float) +// * 读输入寄存器 指定数据类型(可以是Float) +// boolean[] readCoils = master.readCoils(slaveId, offset, 1); +// for (boolean readCoil : readCoils) { +// System.out.println(readCoil); +// } +// int[] readHoldingRegisters = master.readHoldingRegisters(slaveId, offset, 1); +// for (int readHoldingRegister : readHoldingRegisters) { +// System.out.println(readHoldingRegister); +// } + // master.writeSingleCoil(slaveId,0,true); + // boolean[] booleans=new boolean[]{true,true,true,true,true,true,true,true,true,true}; + // master.writeMultipleCoils(slaveId,0,booleans); + master.writeSingleRegister(slaveId,5,512); + //int[] register=new int[]{0,0,0,0,0,0,0,0,0,0}; + + + // master.writeMultipleRegisters(slaveId,0,register); + } catch (ModbusProtocolException e) { + e.printStackTrace(); + } catch (ModbusNumberException e) { + e.printStackTrace(); + } catch (ModbusIOException e) { + e.printStackTrace(); + } finally { + try { + master.disconnect(); + } catch (ModbusIOException e) { + e.printStackTrace(); + } + } + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/huaheng/api/dianqi/Modbus4jUtils.java b/src/main/java/com/huaheng/api/dianqi/Modbus4jUtils.java new file mode 100644 index 0000000..4d15284 --- /dev/null +++ b/src/main/java/com/huaheng/api/dianqi/Modbus4jUtils.java @@ -0,0 +1,206 @@ +//package com.tcb.modbus; +// +//import com.serotonin.modbus4j.BatchRead; +//import com.serotonin.modbus4j.BatchResults; +//import com.serotonin.modbus4j.ModbusFactory; +//import com.serotonin.modbus4j.ModbusMaster; +//import com.serotonin.modbus4j.code.DataType; +//import com.serotonin.modbus4j.exception.ErrorResponseException; +//import com.serotonin.modbus4j.exception.ModbusInitException; +//import com.serotonin.modbus4j.exception.ModbusTransportException; +//import com.serotonin.modbus4j.ip.IpParameters; +//import com.serotonin.modbus4j.locator.BaseLocator; +// +///** +// * modbus通讯工具类,采用modbus4j实现 +// * +// * @author lxq +// * @dependencies modbus4j-3.0.3.jar +// * @website https://github.com/infiniteautomation/modbus4j +// */ +//public class Modbus4jUtils { +// /** +// * 工厂。 +// */ +// static ModbusFactory modbusFactory; +// static { +// if (modbusFactory == null) { +// modbusFactory = new ModbusFactory(); +// } +// } +// +// /** +// * 获取master +// * +// * @return +// * @throws ModbusInitException +// */ +// public static ModbusMaster getMaster() throws ModbusInitException { +// IpParameters params = new IpParameters(); +// params.setHost("192.168.2.1"); +// params.setPort(502); +// // +// // modbusFactory.createRtuMaster(wapper); //RTU 协议 +// // modbusFactory.createUdpMaster(params);//UDP 协议 +// // modbusFactory.createAsciiMaster(wrapper);//ASCII 协议 +// ModbusMaster master = modbusFactory.createTcpMaster(params, false);// TCP 协议 +// master.init(); +// +// return master; +// } +// +// /** +// * 读取[01 Coil Status 0x]类型 开关数据 +// * +// * @param slaveId +// * slaveId +// * @param offset +// * 位置 +// * @return 读取值 +// * @throws ModbusTransportException +// * 异常 +// * @throws ErrorResponseException +// * 异常 +// * @throws ModbusInitException +// * 异常 +// */ +// public static Boolean readCoilStatus(int slaveId, int offset) +// throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// // 01 Coil Status +// BaseLocator<Boolean> loc = BaseLocator.coilStatus(slaveId, offset); +// Boolean value = getMaster().getValue(loc); +// return value; +// } +// +// /** +// * 读取[02 Input Status 1x]类型 开关数据 +// * +// * @param slaveId +// * @param offset +// * @return +// * @throws ModbusTransportException +// * @throws ErrorResponseException +// * @throws ModbusInitException +// */ +// public static Boolean readInputStatus(int slaveId, int offset) +// throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// // 02 Input Status +// BaseLocator<Boolean> loc = BaseLocator.inputStatus(slaveId, offset); +// Boolean value = getMaster().getValue(loc); +// return value; +// } +// +// /** +// * 读取[03 Holding Register类型 2x]模拟量数据 +// * +// * @param slaveId +// * slave Id +// * @param offset +// * 位置 +// * @param dataType +// * 数据类型,来自com.serotonin.modbus4j.code.DataType +// * @return +// * @throws ModbusTransportException +// * 异常 +// * @throws ErrorResponseException +// * 异常 +// * @throws ModbusInitException +// * 异常 +// */ +// public static Number readHoldingRegister(int slaveId, int offset, int dataType) +// throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// // 03 Holding Register类型数据读取 +// BaseLocator<Number> loc = BaseLocator.holdingRegister(slaveId, offset, dataType); +// Number value = getMaster().getValue(loc); +// return value; +// } +// +// /** +// * 读取[04 Input Registers 3x]类型 模拟量数据 +// * +// * @param slaveId +// * slaveId +// * @param offset +// * 位置 +// * @param dataType +// * 数据类型,来自com.serotonin.modbus4j.code.DataType +// * @return 返回结果 +// * @throws ModbusTransportException +// * 异常 +// * @throws ErrorResponseException +// * 异常 +// * @throws ModbusInitException +// * 异常 +// */ +// public static Number readInputRegisters(int slaveId, int offset, int dataType) +// throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// // 04 Input Registers类型数据读取 +// BaseLocator<Number> loc = BaseLocator.inputRegister(slaveId, offset, dataType); +// Number value = getMaster().getValue(loc); +// return value; +// } +// +// /** +// * 批量读取使用方法 +// * +// * @throws ModbusTransportException +// * @throws ErrorResponseException +// * @throws ModbusInitException +// */ +// public static void batchRead() throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// +// BatchRead<Integer> batch = new BatchRead<Integer>(); +// +// batch.addLocator(0, BaseLocator.holdingRegister(1, 1, DataType.FOUR_BYTE_FLOAT)); +// batch.addLocator(1, BaseLocator.inputStatus(1, 0)); +// +// ModbusMaster master = getMaster(); +// +// batch.setContiguousRequests(false); +// BatchResults<Integer> results = master.send(batch); +// System.out.println(results.getValue(0)); +// System.out.println(results.getValue(1)); +// } +// +// /** +// * 测试 +// * +// * @param args +// */ +// public static void main(String[] args) { +// try { +// // 01测试 +// Boolean v011 = readCoilStatus(1, 0); +// //Boolean v012 = readCoilStatus(1, 1); +// // Boolean v013 = readCoilStatus(1, 6); +// System.out.println("v011:" + v011); +// // System.out.println("v012:" + v012); +// // System.out.println("v013:" + v013); +// // 02测试 +// // Boolean v021 = readInputStatus(1, 0); +// // Boolean v022 = readInputStatus(1, 1); +// // Boolean v023 = readInputStatus(1, 2); +// // System.out.println("v021:" + v021); +// // System.out.println("v022:" + v022); +// // System.out.println("v023:" + v023); +// +// // 03测试 +// Number v031 = readHoldingRegister(1, 1, DataType.FOUR_BYTE_FLOAT);// 注意,float +// // Number v032 = readHoldingRegister(1, 3, DataType.FOUR_BYTE_FLOAT);// 同上 +// System.out.println("v031:" + v031); +// // System.out.println("v032:" + v032); +// +// // 04测试 +// Number v041 = readInputRegisters(1, 0, DataType.FOUR_BYTE_FLOAT);// +// // Number v042 = readInputRegisters(1, 2, DataType.FOUR_BYTE_FLOAT);// +// System.out.println("v041:" + v041); +// // System.out.println("v042:" + v042); +// // 批量读取 +// // batchRead(); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +//} +// diff --git a/src/main/java/com/huaheng/api/dianqi/Modbus4jWriteUtils.java b/src/main/java/com/huaheng/api/dianqi/Modbus4jWriteUtils.java new file mode 100644 index 0000000..22174b2 --- /dev/null +++ b/src/main/java/com/huaheng/api/dianqi/Modbus4jWriteUtils.java @@ -0,0 +1,221 @@ +//package com.tcb.modbus; +// +//import org.apache.commons.logging.Log; +//import org.apache.commons.logging.LogFactory; +// +//import com.serotonin.modbus4j.ModbusFactory; +//import com.serotonin.modbus4j.ModbusMaster; +//import com.serotonin.modbus4j.code.DataType; +//import com.serotonin.modbus4j.exception.ErrorResponseException; +//import com.serotonin.modbus4j.exception.ModbusInitException; +//import com.serotonin.modbus4j.exception.ModbusTransportException; +//import com.serotonin.modbus4j.ip.IpParameters; +//import com.serotonin.modbus4j.locator.BaseLocator; +//import com.serotonin.modbus4j.msg.ModbusResponse; +//import com.serotonin.modbus4j.msg.WriteCoilRequest; +//import com.serotonin.modbus4j.msg.WriteCoilResponse; +//import com.serotonin.modbus4j.msg.WriteCoilsRequest; +//import com.serotonin.modbus4j.msg.WriteCoilsResponse; +//import com.serotonin.modbus4j.msg.WriteRegisterRequest; +//import com.serotonin.modbus4j.msg.WriteRegisterResponse; +//import com.serotonin.modbus4j.msg.WriteRegistersRequest; +// +///** +// * modbus4j写入数据 +// * +// * @author xq +// * +// */ +//public class Modbus4jWriteUtils { +// static Log log = LogFactory.getLog(Modbus4jWriteUtils.class); +// /** +// * 工厂。 +// */ +// static ModbusFactory modbusFactory; +// static { +// if (modbusFactory == null) { +// modbusFactory = new ModbusFactory(); +// } +// } +// +// /** +// * 获取tcpMaster +// * +// * @return +// * @throws ModbusInitException +// */ +// public static ModbusMaster getMaster() throws ModbusInitException { +// IpParameters params = new IpParameters(); +// params.setHost("localhost"); +// params.setPort(502); +// +// ModbusMaster tcpMaster = modbusFactory.createTcpMaster(params, false); +// tcpMaster.init(); +// +// return tcpMaster; +// } +// +// /** +// * 写 [01 Coil Status(0x)]写一个 function ID = 5 +// * +// * @param slaveId +// * slave的ID +// * @param writeOffset +// * 位置 +// * @param writeValue +// * 值 +// * @return 是否写入成功 +// * @throws ModbusTransportException +// * @throws ModbusInitException +// */ +// public static boolean writeCoil(int slaveId, int writeOffset, boolean writeValue) +// throws ModbusTransportException, ModbusInitException { +// // 获取master +// ModbusMaster tcpMaster = getMaster(); +// // 创建请求 +// WriteCoilRequest request = new WriteCoilRequest(slaveId, writeOffset, writeValue); +// // 发送请求并获取响应对象 +// WriteCoilResponse response = (WriteCoilResponse) tcpMaster.send(request); +// if (response.isException()) { +// return false; +// } else { +// return true; +// } +// } +// +// /** +// * 写[01 Coil Status(0x)] 写多个 function ID = 15 +// * +// * @param slaveId +// * slaveId +// * @param startOffset +// * 开始位置 +// * @param bdata +// * 写入的数据 +// * @return 是否写入成功 +// * @throws ModbusTransportException +// * @throws ModbusInitException +// */ +// public static boolean writeCoils(int slaveId, int startOffset, boolean[] bdata) +// throws ModbusTransportException, ModbusInitException { +// // 获取master +// ModbusMaster tcpMaster = getMaster(); +// // 创建请求 +// WriteCoilsRequest request = new WriteCoilsRequest(slaveId, startOffset, bdata); +// // 发送请求并获取响应对象 +// WriteCoilsResponse response = (WriteCoilsResponse) tcpMaster.send(request); +// if (response.isException()) { +// return false; +// } else { +// return true; +// } +// +// } +// +// /*** +// * 写[03 Holding Register(4x)] 写一个 function ID = 6 +// * +// * @param slaveId +// * @param writeOffset +// * @param writeValue +// * @return +// * @throws ModbusTransportException +// * @throws ModbusInitException +// */ +// public static boolean writeRegister(int slaveId, int writeOffset, short writeValue) +// throws ModbusTransportException, ModbusInitException { +// // 获取master +// ModbusMaster tcpMaster = getMaster(); +// // 创建请求对象 +// WriteRegisterRequest request = new WriteRegisterRequest(slaveId, writeOffset, writeValue); +// WriteRegisterResponse response = (WriteRegisterResponse) tcpMaster.send(request); +// if (response.isException()) { +// log.error(response.getExceptionMessage()); +// return false; +// } else { +// return true; +// } +// +// } +// +// /** +// * +// * 写入[03 Holding Register(4x)]写多个 function ID=16 +// * +// * @param slaveId +// * modbus的slaveID +// * @param startOffset +// * 起始位置偏移量值 +// * @param sdata +// * 写入的数据 +// * @return 返回是否写入成功 +// * @throws ModbusTransportException +// * @throws ModbusInitException +// */ +// public static boolean writeRegisters(int slaveId, int startOffset, short[] sdata) +// throws ModbusTransportException, ModbusInitException { +// // 获取master +// ModbusMaster tcpMaster = getMaster(); +// // 创建请求对象 +// WriteRegistersRequest request = new WriteRegistersRequest(slaveId, startOffset, sdata); +// // 发送请求并获取响应对象 +// ModbusResponse response = tcpMaster.send(request); +// if (response.isException()) { +// log.error(response.getExceptionMessage()); +// return false; +// } else { +// return true; +// } +// } +// +// /** +// * 写入数字类型的模拟量(如:写入Float类型的模拟量、Double类型模拟量、整数类型Short、Integer、Long) +// * +// * @param slaveId +// * @param offset +// * @param value +// * 写入值,Number的子类,例如写入Float浮点类型,Double双精度类型,以及整型short,int,long +// * @param registerCount +// * ,com.serotonin.modbus4j.code.DataType +// * @throws ModbusTransportException +// * @throws ErrorResponseException +// * @throws ModbusInitException +// */ +// public static void writeHoldingRegister(int slaveId, int offset, Number value, int dataType) +// throws ModbusTransportException, ErrorResponseException, ModbusInitException { +// // 获取master +// ModbusMaster tcpMaster = getMaster(); +// // 类型 +// BaseLocator<Number> locator = BaseLocator.holdingRegister(slaveId, offset, dataType); +// tcpMaster.setValue(locator, value); +// } +// +// public static void main(String[] args) { +// try { +// //@formatter:off +// // 测试01 +//// boolean t01 = writeCoil(1, 0, true); +//// System.out.println("T01:" + t01); +// +// // 测试02 +//// boolean t02 = writeCoils(1, 0, new boolean[] { true, false, true }); +//// System.out.println("T02:" + t02); +// +// // 测试03 +//// short v = -3; +//// boolean t03 = writeRegister(1, 0, v); +//// System.out.println("T03:" + t03); +// // 测试04 +//// boolean t04 = writeRegisters(1, 0, new short[] { -3, 3, 9 }); +//// System.out.println("t04:" + t04); +// //写模拟量 +// writeHoldingRegister(1,0, 10.1f, DataType.FOUR_BYTE_FLOAT); +// +// //@formatter:on +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// } +// +//} diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java index 53e2e55..dcec69e 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java @@ -194,7 +194,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService for (TaskDetail taskDetail : taskDetailList) { ReceiptContainerDetail receiptContainerDetail = receiptContainerDetailService. getById(taskDetail.getAllocationId()); - if (receiptContainerDetail != null) { + if (receiptContainerDetail != null&&taskHeader.getInternalTaskType().equals(100)) { receiptContainerDetailList.add(receiptContainerDetail); } } diff --git a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java index b60c3b1..015cb47 100644 --- a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java +++ b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java @@ -157,13 +157,20 @@ public class RyTask extends BaseController { } public void autoExecuteAgvTask(){ - List<AgvTask> agvTasks = acsService.list(new LambdaQueryWrapper<AgvTask>().eq(AgvTask::getStatus, 1) - .isNotNull(AgvTask::getContainerCode) - .isNotNull(AgvTask::getToPort) - .isNotNull(AgvTask::getFromPort)); - if(CollectionUtils.isNotEmpty(agvTasks)){ - AjaxResult ajaxResult = acsService.sendTaskToAGV(Convert.toIntArray(agvTasks.get(0).getId().toString().trim())); - } + handleMultiProcess(new BaseController.MultiProcessListener() { + @Override + public AjaxResult doProcess() { + AjaxResult ajaxResult=new AjaxResult(); + List<AgvTask> agvTasks = acsService.list(new LambdaQueryWrapper<AgvTask>().eq(AgvTask::getStatus, 1) + .isNotNull(AgvTask::getContainerCode) + .isNotNull(AgvTask::getToPort) + .isNotNull(AgvTask::getFromPort)); + if(CollectionUtils.isNotEmpty(agvTasks)){ + ajaxResult = acsService.sendTaskToAGV(Convert.toIntArray(agvTasks.get(0).getId().toString().trim())); + } + return ajaxResult; + } + }); } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java index d58ffad..ecec1b2 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java @@ -426,28 +426,19 @@ public class ShipmentTaskService { if (StringUtils.isNull(fromLocationRecord)) { throw new ServiceException("系统没有" + fromLocation + "库位"); } - /* 如果目标库位与源库位不一样时,需要更新两个库位*/ - if (StringUtils.isNotEmpty(toLocation) - && !fromLocation.equals(toLocation)) { + if (taskType.equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT)) { + fromLocationRecord.setStatus(QuantityConstant.STATUS_LOCATION_EMPTY); + fromLocationRecord.setContainerCode(""); + locationService.updateById(fromLocationRecord); + }else { Location toLocationRecord = locationService.getLocationByCode(toLocation, warehouseCode); if (StringUtils.isNull(fromLocationRecord)) { throw new ServiceException("系统没有" + toLocation + "库位"); } toLocationRecord.setStatus(QuantityConstant.STATUS_LOCATION_EMPTY); - if (taskType.equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT)) { - toLocationRecord.setContainerCode(""); - } else { - toLocationRecord.setContainerCode(containerCode); - } + toLocationRecord.setContainerCode(containerCode); locationService.updateById(toLocationRecord); - fromLocationRecord.setContainerCode(""); } - fromLocationRecord.setStatus(QuantityConstant.STATUS_LOCATION_EMPTY); - if (taskType.equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT)) { - fromLocationRecord.setContainerCode(""); - } - locationService.updateById(fromLocationRecord); - Container container = containerService.getContainerByCode(containerCode, warehouseCode); if (StringUtils.isEmpty(containerCode)) { throw new ServiceException("系统无"+container+"容器");