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+"容器");