diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/QueryAGVStatus.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/QueryAGVStatus.java
index 269e7a9..6e835d8 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/QueryAGVStatus.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/QueryAGVStatus.java
@@ -4,11 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.AcsConfig;
 import org.nl.acs.device.domain.Device;
@@ -16,7 +12,6 @@ import org.nl.acs.device_driver.agv.xg_agv_car.XgAgvCarDeviceDriver;
 import org.nl.acs.instruction.domain.Instruction;
 import org.nl.acs.instruction.service.InstructionService;
 import org.nl.acs.opc.DeviceAppService;
-import org.nl.acs.task.domain.Task;
 import org.nl.acs.task.enums.AgvActionTypeEnum;
 import org.nl.acs.task.enums.AgvSystemTypeEnum;
 import org.nl.acs.task.service.TaskService;
@@ -80,7 +75,7 @@ public class QueryAGVStatus {
                         instruction.setCarno(carNo);
                         TaskDto task = new TaskDto();
                         instructionService.update(instruction);
-                        task.setCarno(carNo);
+                        task.setCar_no(carNo);
                         task.setTask_id(instruction.getTask_id());
                         instructionService.update(instruction);
                         taskService.update(task);
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
index 273657c..dadd644 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
@@ -1,12 +1,12 @@
 package org.nl.acs.agv.server.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.AcsConfig;
 import org.nl.acs.agv.server.NDCAgvService;
 import org.nl.acs.agv.server.dto.AgvDto;
-import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
 import org.nl.acs.auto.run.TwoNDCSocketConnectionAutoRun;
 import org.nl.acs.common.base.CommonFinalParam;
 import org.nl.acs.device.service.DeviceService;
@@ -15,10 +15,9 @@ import org.nl.acs.ext.wms.service.AcsToWmsService;
 import org.nl.acs.instruction.domain.Instruction;
 import org.nl.acs.log.service.DeviceExecuteLogService;
 import org.nl.acs.opc.DeviceAppService;
-import org.nl.acs.opc.DeviceAppServiceImpl;
-import org.nl.system.service.param.ISysParamService;
 import org.nl.common.utils.CodeUtil;
 import org.nl.config.SpringContextHolder;
+import org.nl.system.service.param.ISysParamService;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -98,6 +97,13 @@ public class NDCAgvServiceImpl implements NDCAgvService {
 
             String str = "十进制下发:";
             String str1 = "十六进制下发:";
+            if (ObjectUtil.isNotEmpty(inst.getCarno())) {
+                int carNo = Integer.parseInt(inst.getCarno());
+                byte agvnohigh = (byte) IntToHexHigh(carNo);
+                byte agvnolow = (byte) IntToHexLow(carNo);
+                str += "agv车号 /carNo:" + (carNo);
+                str1 += "agv车号 /carNo:" + hexToString(agvnolow & 0xFF);
+            }
             str += "任务号 ikey:" + (Integer.parseInt(instcode));
             str1 += "任务号 ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
 
@@ -111,20 +117,41 @@ public class NDCAgvServiceImpl implements NDCAgvService {
 
 
             byte[] b = new byte[]{};
-            b = new byte[]{(byte) 0X87, (byte) 0XCD,
-                    (byte) 0X00, (byte) 0X08,
-                    (byte) 0X00, (byte) 0X12,
-                    (byte) 0X00, (byte) 0X01,
-                    (byte) 0X00, (byte) 0X71,
-                    (byte) 0X00, (byte) 0X0E,
-                    (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,
-            };
+            if (ObjectUtil.isNotEmpty(inst.getCarno())) {
+                int carNo = Integer.parseInt(inst.getCarno());
+                byte agvnohigh = (byte) IntToHexHigh(carNo);
+                byte agvnolow = (byte) IntToHexLow(carNo);
+                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) agvnohigh, (byte) agvnolow
+                };
+            } else {
+                b = new byte[]{(byte) 0X87, (byte) 0XCD,
+                        (byte) 0X00, (byte) 0X08,
+                        (byte) 0X00, (byte) 0X12,
+                        (byte) 0X00, (byte) 0X01,
+                        (byte) 0X00, (byte) 0X71,
+                        (byte) 0X00, (byte) 0X0E,
+                        (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,
+                };
+            }
             log.info("下发AGV作业指令 --{}", str1);
             log.info("下发AGV作业指令--{}", str);
             log.info("下发agv指令数据--{}", Bytes2HexString(b));
@@ -255,7 +282,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
                 (byte) 0X00, (byte) 0X6D,
                 (byte) 0X00, (byte) 0X06,
                 (byte) indexhigh, (byte) indexlow,
-                (byte) 0X01, (byte) 0X10,
+                (byte) 0X01, (byte) 0X12,
                 (byte) phasehigh, (byte) phaselow
         };
 
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java
index c58e6d7..ff5f680 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java
@@ -1,18 +1,16 @@
 package org.nl.acs.auto.run;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.AcsConfig;
 import org.nl.acs.agv.server.NDCAgvService;
+import org.nl.acs.common.base.CommonFinalParam;
 import org.nl.acs.device.domain.Device;
 import org.nl.acs.device.service.DeviceService;
 import org.nl.acs.device_driver.agv.ndcone.AgvNdcOneDeviceDriver;
 import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver;
 import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver;
-import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
 import org.nl.acs.ext.wms.service.AcsToWmsService;
 import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
 import org.nl.acs.instruction.domain.Instruction;
@@ -20,8 +18,11 @@ import org.nl.acs.instruction.service.InstructionService;
 import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
 import org.nl.acs.log.service.DeviceExecuteLogService;
 import org.nl.acs.opc.DeviceAppService;
+import org.nl.acs.region.domain.Region;
+import org.nl.acs.region.service.RegionService;
 import org.nl.config.SpringContextHolder;
 import org.nl.config.lucene.service.LuceneExecuteLogService;
+import org.nl.config.lucene.service.dto.LuceneLogDto;
 import org.nl.system.service.param.ISysParamService;
 import org.nl.system.service.param.impl.SysParamServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,13 +31,9 @@ import org.springframework.stereotype.Component;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
-import java.lang.reflect.Field;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.util.Date;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
 
 import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString;
 
@@ -93,6 +90,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
         InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class);
         AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
         NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
+        RegionService regionService = SpringContextHolder.getBean(RegionService.class);
         DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
         DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
         DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
@@ -244,18 +242,35 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
                         if (ObjectUtil.isNotEmpty(device)) {
                             if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
                                 standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                                try {
-                                    standardAutodoorDeviceDriver.writing("to_open", "1");
-                                    standardAutodoorDeviceDriver.writing("to_close", "0");
-                                } catch (Exception e) {
-                                    log.info("下发电气信号失败:" + e.getMessage());
-                                    e.printStackTrace();
-                                }
-                                if (standardAutodoorDeviceDriver.getOpen() == 1 && standardAutodoorDeviceDriver.getToOpen() == 1) {
-                                    log.info("下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getOpen());
-                                    data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
+                                String region_code = (String) device.getExtraValue().get("region");
+                                if (StrUtil.isNotEmpty(region_code)) {
+                                    Region region = regionService.findByCode(region_code);
+                                    if (StrUtil.equals(region.getIs_charge(), CommonFinalParam.ZERO)) {
+                                        data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
+                                        LuceneLogDto logDto = LuceneLogDto.builder()
+                                                .device_code(device_code)
+                                                .content("agvphase:" + phase + "反馈:" + data)
+                                                .build();
+                                        logDto.setLog_level(4);
+                                        luceneExecuteLogService.deviceExecuteLog(logDto);
+                                        region.setIs_charge("1");
+                                        region.setHas_agv("1");
+                                        regionService.updateById(region);
+                                    }
                                 } else {
-                                    log.info("未下发NDC信号原因: 下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getToClose());
+                                    try {
+                                        standardAutodoorDeviceDriver.writing("to_open", "1");
+                                        standardAutodoorDeviceDriver.writing("to_close", "0");
+                                    } catch (Exception e) {
+                                        log.info("下发电气信号失败:" + e.getMessage());
+                                        e.printStackTrace();
+                                    }
+                                    if (standardAutodoorDeviceDriver.getOpen() == 1 && standardAutodoorDeviceDriver.getToOpen() == 1) {
+                                        log.info("下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getOpen());
+                                        data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
+                                    } else {
+                                        log.info("未下发NDC信号原因: 下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getToClose());
+                                    }
                                 }
                             }
                         } else {
@@ -270,18 +285,34 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
                         if (ObjectUtil.isNotEmpty(device)) {
                             if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
                                 standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                                try {
-                                    standardAutodoorDeviceDriver.writing("to_close", "1");
-                                    standardAutodoorDeviceDriver.writing("to_open", "0");
-                                } catch (Exception e) {
-                                    log.info("下发电气信号失败:" + e.getMessage());
-                                    e.printStackTrace();
-                                }
-                                if (standardAutodoorDeviceDriver.getClose() == 1) {
-                                    log.info("读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
-                                    data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
+                                String region_code = (String) device.getExtraValue().get("region");
+                                if (StrUtil.isNotEmpty(region_code)) {
+                                    Region region = regionService.findByCode(region_code);
+                                    data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
+                                    LuceneLogDto logDto = LuceneLogDto.builder()
+                                            .device_code(device_code)
+                                            .content("agvphase:" + phase + "反馈:" + data)
+                                            .build();
+                                    logDto.setLog_level(4);
+                                    luceneExecuteLogService.deviceExecuteLog(logDto);
+                                    region.setIs_charge("0");
+                                    region.setHas_agv("0");
+                                    regionService.updateById(region);
                                 } else {
-                                    log.info("未下发NDC信号原因: 读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
+                                    try {
+                                        standardAutodoorDeviceDriver.writing("to_close", "1");
+                                        standardAutodoorDeviceDriver.writing("to_open", "0");
+                                    } catch (Exception e) {
+                                        log.info("下发电气信号失败:" + e.getMessage());
+                                        e.printStackTrace();
+                                    }
+                                    if (standardAutodoorDeviceDriver.getClose() == 1) {
+                                        log.info("读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
+                                        data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
+                                        standardAutodoorDeviceDriver.writing("to_close", "0");
+                                    } else {
+                                        log.info("未下发NDC信号原因: 读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
+                                    }
                                 }
                             }
                         } else {
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java
index 49666c2..3b1b242 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java
@@ -15,15 +15,8 @@ import org.nl.acs.device.service.DeviceService;
 import org.nl.acs.device_driver.DeviceDriver;
 import org.nl.acs.device_driver.FeedLmsRealFailed;
 import org.nl.acs.device_driver.agv.utils.TwoAgvPhase;
-import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver;
 import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
-import org.nl.acs.device_driver.paper_tube_pick_site.PaperTubePickSiteDeviceDriver;
-import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDriver;
 import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.ranging_stations.RangingStationsDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.waste_foil_weighing_station.WasteFoilWeighingStationDriver;
 import org.nl.acs.ext.wms.service.AcsToWmsService;
 import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
 import org.nl.acs.history.ErrorUtil;
@@ -36,21 +29,16 @@ import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
 import org.nl.acs.log.service.DeviceExecuteLogService;
 import org.nl.acs.monitor.DeviceStageMonitor;
 import org.nl.acs.opc.DeviceAppService;
-import org.nl.acs.region.domain.Region;
 import org.nl.acs.region.service.RegionService;
 import org.nl.acs.task.service.TaskService;
 import org.nl.acs.task.service.dto.TaskDto;
 import org.nl.acs.task.service.impl.TaskServiceImpl;
+import org.nl.config.SpringContextHolder;
 import org.nl.config.lucene.service.LuceneExecuteLogService;
 import org.nl.config.lucene.service.dto.LuceneLogDto;
-import org.nl.config.thread.ThreadPoolExecutorUtil;
 import org.nl.system.service.param.ISysParamService;
-import org.nl.config.SpringContextHolder;
 
-import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.concurrent.ThreadPoolExecutor;
 
 
 /**
@@ -226,26 +214,16 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
 
             if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
                 standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
-                //放货确认
-                if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
-                    data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
-                    LuceneLogDto logDto = LuceneLogDto.builder()
-                            .device_code(this.getDeviceCode())
-                            .content("agvphase:" + phase + "反馈:" + data)
-                            .build();
-                    logDto.setLog_level(4);
-                    luceneExecuteLogService.deviceExecuteLog(logDto);
-                    standardOrdinarySiteDeviceDriver.setOption(0);
-                } else {
-                    log.info("等待一体机进行放货确认,设备号{},option值{}", standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
-                    logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行放货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
-                    LuceneLogDto logDto = LuceneLogDto.builder()
-                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
-                            .content("等待一体机进行放货确认,设备号" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
-                            .build();
-                    logDto.setLog_level(4);
-                    luceneExecuteLogService.deviceExecuteLog(logDto);
-                }
+                data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
+                LuceneLogDto logDto = LuceneLogDto.builder()
+                        .device_code(this.getDeviceCode())
+                        .content("agvphase:" + phase + "反馈:" + data)
+                        .build();
+                logDto.setLog_level(4);
+                luceneExecuteLogService.deviceExecuteLog(logDto);
+                standardOrdinarySiteDeviceDriver.setAgvphase(phase);
+                standardOrdinarySiteDeviceDriver.setIndex(index);
+                standardOrdinarySiteDeviceDriver.setInst(inst);
             } else {
                 data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
                 LuceneLogDto logDto = LuceneLogDto.builder()
@@ -302,103 +280,45 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
                 log.info("未找到指令号{}对应的指令", ikey);
                 return;
             }
-            if (ObjectUtil.isEmpty(inst.getCarno())) {
-                inst.setCarno(String.valueOf(carno));
-                instructionService.update(inst);
-            }
 
             if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
                 standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
-                data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
-                LuceneLogDto logDto = LuceneLogDto.builder()
-                        .device_code(this.getDeviceCode())
-                        .content("agvphase:" + phase + "反馈:" + data)
-                        .build();
-                logDto.setLog_level(4);
-                luceneExecuteLogService.deviceExecuteLog(logDto);
-                standardOrdinarySiteDeviceDriver.setAgvphase(phase);
-                standardOrdinarySiteDeviceDriver.setIndex(index);
-                standardOrdinarySiteDeviceDriver.setInst(inst);
-            }
-        }
-
-        // 到达放货点
-        //(Itype=1/2/3,需要WCS反馈)
-        else if (phase == 0x07) {
-            if (agvaddr == 0) {
-                agvaddr = agvaddr_copy;
-            }
-            if (agvaddr < 1) {
-                LuceneLogDto logDto = LuceneLogDto.builder()
-                        .device_code(device_code)
-                        .content("agv地址参数有误,phase:" + phase)
-                        .build();
-                logDto.setLog_level(4);
-                luceneExecuteLogService.deviceExecuteLog(logDto);
-                return;
-            }
-            if (agvaddr != 0) {
-                CommonFinalParam commonFinalParam = new CommonFinalParam();
-                old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
-                if (StrUtil.contains(old_device_code, commonFinalParam.getBARRE())) {
-                    String[] point = old_device_code.split(commonFinalParam.getBARRE());
-                    device_code = point[0];
-                } else if (StrUtil.contains(old_device_code, commonFinalParam.getPOINT())) {
-                    String[] point = old_device_code.split("\\.");
-                    device_code = point[0];
-                    emptyNum = point[1];
-                } else {
-                    device_code = old_device_code;
-                }
-            }
-
-            device = deviceAppService.findDeviceByCode(device_code);
-            if (ObjectUtil.isEmpty(device_code)) {
-                log.info(agvaddr + "对应设备号为空!");
-                return;
-            }
-            if (ObjectUtil.isEmpty(inst)) {
-                log.info("未找到指令号{}对应的指令", ikey);
-                return;
-            }
-            if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
-                standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
-                //卸货确认
-                if (standardOrdinarySiteDeviceDriver.getOption() == 2) {
+                //放货确认
+                if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
+                    log.info("等待一体机进行放货确认,指令号{},设备号{},option值{}", inst, standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
                     data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
                     LuceneLogDto logDto = LuceneLogDto.builder()
-                            .device_code(this.getDeviceCode())
-                            .content("agvphase:" + phase + "反馈:" + data)
+                            .instruct_code(inst.getInstruction_code())
+                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
+                            .content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
                             .build();
                     logDto.setLog_level(4);
                     luceneExecuteLogService.deviceExecuteLog(logDto);
                     standardOrdinarySiteDeviceDriver.setOption(0);
+                    LuceneLogDto logDto1 = LuceneLogDto.builder()
+                            .instruct_code(inst.getInstruction_code())
+                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
+                            .content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
+                            .build();
+                    logDto1.setLog_level(4);
+                    luceneExecuteLogService.deviceExecuteLog(logDto1);
                 } else {
-                    log.info("等待一体机进行卸货确认,设备号{},option值{}", standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
-                    logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行卸货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
+                    log.info("等待一体机进行放货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
+                    logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行放货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
                     LuceneLogDto logDto = LuceneLogDto.builder()
+                            .instruct_code(inst.getInstruction_code())
                             .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
-                            .content("等待一体机进行卸货确认,设备号" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
+                            .content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
                             .build();
                     logDto.setLog_level(4);
                     luceneExecuteLogService.deviceExecuteLog(logDto);
                 }
-
-            } else {
-                data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
-                LuceneLogDto logDto = LuceneLogDto.builder()
-                        .device_code(this.getDeviceCode())
-                        .content("agvphase:" + phase + "反馈:" + data)
-                        .build();
-                logDto.setLog_level(4);
-                luceneExecuteLogService.deviceExecuteLog(logDto);
             }
         }
 
-
-        //放货完成
-        //(Itype=1/2/3,需要WCS反馈)
-        else if (phase == 0x09) {
+        // 到达放货点
+        //(Itype=1/2/3,需要WCS反馈)
+        else if (phase == 0x07) {
             if (agvaddr == 0) {
                 agvaddr = agvaddr_copy;
             }
@@ -447,11 +367,22 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
                 standardOrdinarySiteDeviceDriver.setAgvphase(phase);
                 standardOrdinarySiteDeviceDriver.setIndex(index);
                 standardOrdinarySiteDeviceDriver.setInst(inst);
+
+            } else {
+                data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
+                LuceneLogDto logDto = LuceneLogDto.builder()
+                        .device_code(this.getDeviceCode())
+                        .content("agvphase:" + phase + "反馈:" + data)
+                        .build();
+                logDto.setLog_level(4);
+                luceneExecuteLogService.deviceExecuteLog(logDto);
             }
         }
 
-        //todo 待完善
-        else if (phase == 0x4D) {
+
+        //放货完成
+        //(Itype=1/2/3,需要WCS反馈)
+        else if (phase == 0x09) {
             if (agvaddr == 0) {
                 agvaddr = agvaddr_copy;
             }
@@ -488,80 +419,41 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
                 log.info("未找到指令号{}对应的指令", ikey);
                 return;
             }
-
             if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
-                //通道1
-                Region region = regionService.findByCode("1");
-                if (StrUtil.equals(region.getIs_charge(), CommonFinalParam.ZERO)) {
+                standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
+                //卸货确认
+                if (standardOrdinarySiteDeviceDriver.getOption() == 2) {
+                    log.info("等待一体机进行卸货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
                     data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
                     LuceneLogDto logDto = LuceneLogDto.builder()
-                            .device_code(this.getDeviceCode())
-                            .content("agvphase:" + phase + "反馈:" + data)
+                            .instruct_code(inst.getInstruction_code())
+                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
+                            .content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
                             .build();
                     logDto.setLog_level(4);
                     luceneExecuteLogService.deviceExecuteLog(logDto);
-                    region.setIs_charge("1");
-                    region.setHas_agv("1");
-                    regionService.updateById(region);
-                }
-            }
-        }
+                    standardOrdinarySiteDeviceDriver.setOption(0);
+                    LuceneLogDto logDto1 = LuceneLogDto.builder()
+                            .instruct_code(inst.getInstruction_code())
+                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
+                            .content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
+                            .build();
+                    logDto1.setLog_level(4);
+                    luceneExecuteLogService.deviceExecuteLog(logDto1);
 
-        //todo 待完善
-        else if (phase == 0x4E) {
-            if (agvaddr == 0) {
-                agvaddr = agvaddr_copy;
-            }
-            if (agvaddr < 1) {
-                LuceneLogDto logDto = LuceneLogDto.builder()
-                        .device_code(device_code)
-                        .content("agv地址参数有误,phase:" + phase)
-                        .build();
-                logDto.setLog_level(4);
-                luceneExecuteLogService.deviceExecuteLog(logDto);
-                return;
-            }
-            if (agvaddr != 0) {
-                CommonFinalParam commonFinalParam = new CommonFinalParam();
-                old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
-                if (StrUtil.contains(old_device_code, commonFinalParam.getBARRE())) {
-                    String[] point = old_device_code.split(commonFinalParam.getBARRE());
-                    device_code = point[0];
-                } else if (StrUtil.contains(old_device_code, commonFinalParam.getPOINT())) {
-                    String[] point = old_device_code.split("\\.");
-                    device_code = point[0];
-                    emptyNum = point[1];
                 } else {
-                    device_code = old_device_code;
+                    log.info("等待一体机进行卸货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
+                    logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行卸货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
+                    LuceneLogDto logDto = LuceneLogDto.builder()
+                            .instruct_code(inst.getInstruction_code())
+                            .device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
+                            .content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
+                            .build();
+                    logDto.setLog_level(4);
+                    luceneExecuteLogService.deviceExecuteLog(logDto);
                 }
             }
-
-            device = deviceAppService.findDeviceByCode(device_code);
-            if (ObjectUtil.isEmpty(device_code)) {
-                log.info(agvaddr + "对应设备号为空!");
-                return;
-            }
-            if (ObjectUtil.isEmpty(inst)) {
-                log.info("未找到指令号{}对应的指令", ikey);
-                return;
-            }
-
-            if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
-                Region region = regionService.findByCode("1");
-                data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
-                LuceneLogDto logDto = LuceneLogDto.builder()
-                        .device_code(this.getDeviceCode())
-                        .content("agvphase:" + phase + "反馈:" + data)
-                        .build();
-                logDto.setLog_level(4);
-                luceneExecuteLogService.deviceExecuteLog(logDto);
-                region.setIs_charge("0");
-                region.setHas_agv("0");
-                regionService.updateById(region);
-            }
-        }
-
-         else if (phase == 0x70) {
+        } else if (phase == 0x70) {
             //x坐标
             x = ikey;
             LuceneLogDto logDto = LuceneLogDto.builder()
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java
index 749cbbf..1597ce7 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java
@@ -8,16 +8,13 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.agv.server.NDCAgvService;
 import org.nl.acs.common.base.CommonFinalParam;
-import org.nl.acs.device.domain.Device;
 import org.nl.acs.device.service.DeviceService;
-import org.nl.acs.device.service.dto.DeviceDto;
 import org.nl.acs.device_driver.DeviceDriver;
 import org.nl.acs.device_driver.RouteableDeviceDriver;
 import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
 import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
 import org.nl.acs.ext.wms.service.AcsToWmsService;
 import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
-import org.nl.acs.history.ErrorUtil;
 import org.nl.acs.instruction.domain.Instruction;
 import org.nl.acs.instruction.service.InstructionService;
 import org.nl.acs.log.service.DeviceExecuteLogService;
@@ -267,15 +264,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
             move = LangProcess.msg("universal_two_yes");
             jo.put("hasGoods", true);
         }
-        DeviceDto dto = deviceservice.findByCode(this.getDevice().getDevice_code());
-        jo.put("zh_device_name", dto.getZh_device_name());
-        jo.put("en_device_name", dto.getEn_device_name());
-        jo.put("mode", mode);
-        jo.put("move", move);
-        jo.put("action", action);
         jo.put("isOnline", true);
-        jo.put("error", ErrorUtil.getDictDetail("error_type", String.valueOf(this.getError())));
-        jo.put("isError", this.getIserror());
         jo.put("option", option);
         jo.put("is_click", true);
         return jo;
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/region/service/impl/RegionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/region/service/impl/RegionServiceImpl.java
index b1e3e82..f6c3b93 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/region/service/impl/RegionServiceImpl.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/region/service/impl/RegionServiceImpl.java
@@ -2,41 +2,35 @@ package org.nl.acs.region.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import lombok.AllArgsConstructor;
-import org.nl.acs.auto.initial.ApplicationAutoInitial;
 import org.nl.acs.common.base.CommonFinalParam;
 import org.nl.acs.common.base.PageInfo;
 import org.nl.acs.common.base.impl.CommonServiceImpl;
-import org.nl.acs.custompolicy.domain.CustomPolicy;
-import org.nl.acs.custompolicy.server.dto.CustomPolicyDTO;
-import org.nl.acs.device.domain.Device;
 import org.nl.acs.region.domain.Region;
 import org.nl.acs.region.service.RegionService;
 import org.nl.acs.region.service.dto.RegionDto;
 import org.nl.acs.region.service.mapper.RegionMapper;
-import org.nl.acs.task.domain.Task;
 import org.nl.acs.utils.ConvertUtil;
 import org.nl.acs.utils.PageUtil;
 import org.nl.common.exception.BadRequestException;
 import org.nl.common.utils.SecurityUtils;
 import org.nl.config.language.LangProcess;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 @Service
 @AllArgsConstructor
@@ -121,9 +115,10 @@ public class RegionServiceImpl extends CommonServiceImpl<RegionMapper,Region> im
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteAll(String[] ids) {
-        Set<String> idsSet = new HashSet<>(1);
-        idsSet.addAll(Arrays.asList(ids));
-        regionMapper.upBatchIds(idsSet);
+        List<Region> list = regionMapper.selectBatchIds(Arrays.asList(ids));
+        for (Region region : list) {
+            regionMapper.deleteById(region.getId());
+        }
     }
 
 }
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java
index 6e77c6c..3e691ce 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java
@@ -1,24 +1,16 @@
 package org.nl.acs.task.domain;
 
-import org.nl.acs.common.base.CommonModel;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.IdType;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.nl.acs.common.base.CommonModel;
 
-import javax.validation.constraints.*;
-import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * @author jiaolm
@@ -196,6 +188,8 @@ public class Task extends CommonModel<Task> implements Serializable {
 
     private String empty_site;
 
+    private String car_no;
+
 
     @NotBlank
     private String is_active;
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java
index 9a4639c..bd6585b 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java
@@ -57,7 +57,7 @@ public class TaskDto implements Serializable {
     /**
      * 车号
      */
-    private String carno;
+    private String car_no;
 
     /**
      * 复合任务
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
index e1b4e9d..d4e1b03 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
@@ -21,6 +21,9 @@ import org.nl.acs.AcsConfig;
 import org.nl.acs.agv.server.XianGongAgvService;
 import org.nl.acs.auto.initial.ApplicationAutoInitial;
 import org.nl.acs.common.base.CommonFinalParam;
+import org.nl.acs.common.base.PageInfo;
+import org.nl.acs.common.base.QueryHelpMybatisPlus;
+import org.nl.acs.common.base.impl.CommonServiceImpl;
 import org.nl.acs.device.domain.Device;
 import org.nl.acs.device.enums.DeviceType;
 import org.nl.acs.device.service.DeviceAssignedService;
@@ -28,7 +31,6 @@ import org.nl.acs.device.service.DeviceService;
 import org.nl.acs.device.service.dto.DeviceAssignedDto;
 import org.nl.acs.device.service.impl.DeviceServiceImpl;
 import org.nl.acs.device_driver.DeviceDriverDefination;
-import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
 import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDriver;
 import org.nl.acs.ext.wms.service.AcsToWmsService;
 import org.nl.acs.instruction.domain.Instruction;
@@ -42,35 +44,30 @@ import org.nl.acs.route.domain.RoutePlan;
 import org.nl.acs.route.service.RouteLineService;
 import org.nl.acs.route.service.dto.RouteLineDto;
 import org.nl.acs.route.service.mapper.RoutePlanMapper;
+import org.nl.acs.task.domain.Task;
 import org.nl.acs.task.enums.AgvSystemTypeEnum;
 import org.nl.acs.task.enums.TaskStatusEnum;
 import org.nl.acs.task.enums.TaskTypeEnum;
 import org.nl.acs.task.service.TaskFeedbackService;
-import org.nl.acs.common.base.PageInfo;
-import org.nl.acs.common.base.QueryHelpMybatisPlus;
-import org.nl.acs.common.base.impl.CommonServiceImpl;
-import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
-import org.nl.common.exception.BadRequestException;
-import org.nl.acs.utils.ConvertUtil;
-import org.nl.common.utils.FileUtil;
-import org.nl.acs.utils.PageUtil;
-import org.nl.acs.task.domain.Task;
 import org.nl.acs.task.service.TaskService;
 import org.nl.acs.task.service.dto.TaskDto;
+import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
 import org.nl.acs.task.service.dto.TaskQueryParam;
 import org.nl.acs.task.service.mapper.TaskMapper;
+import org.nl.acs.utils.ConvertUtil;
+import org.nl.acs.utils.PageUtil;
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.utils.CodeUtil;
+import org.nl.common.utils.FileUtil;
 import org.nl.common.utils.SecurityUtils;
+import org.nl.config.SpringContextHolder;
 import org.nl.config.language.LangProcess;
 import org.nl.system.service.param.ISysParamService;
-import org.nl.common.utils.CodeUtil;
-
-import org.nl.config.SpringContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.data.domain.Pageable;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -551,6 +548,14 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
             dto.setTask_id(IdUtil.simpleUUID());
         }
         String task_code = dto.getTask_code();
+        if (StrUtil.isEmpty(dto.getCar_no())) {
+            if ((dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A2")) || (dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A1"))) {
+                dto.setCar_no("2");
+            }
+            if (dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A4")) {
+                dto.setCar_no("1");
+            }
+        }
         if (StrUtil.isEmpty(task_code)) {
             task_code = CodeUtil.getNewCode("TASK_NO");
             task_code = CommonFinalParam.HYPHEN_ + task_code;
@@ -1068,7 +1073,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
             map.put("路由方案编码", acsTask.getRoute_plan_code());
             map.put("是否需要反馈上位系统", acsTask.getIs_needfeedback());
             map.put("备注", acsTask.getRemark());
-            map.put("agv车号", acsTask.getCarno());
+            map.put("agv车号", acsTask.getCar_no());
             map.put("是否启用", acsTask.getIs_active());
             map.put("是否删除", acsTask.getIs_delete());
             map.put("创建者", acsTask.getCreate_by());
@@ -1682,8 +1687,8 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
             if (ObjectUtil.isNotEmpty(entity.getWeight())) {
                 feed_jo.put("weight", entity.getWeight());
             }
-            if (ObjectUtil.isNotEmpty(entity.getCarno())) {
-                feed_jo.put("car_no", entity.getCarno());
+            if (ObjectUtil.isNotEmpty(entity.getCar_no())) {
+                feed_jo.put("car_no", entity.getCar_no());
             }
             JSONArray ja = new JSONArray();
             ja.add(feed_jo);
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java
index 24c4e59..9baa885 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java
@@ -9,52 +9,36 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.AcsConfig;
 import org.nl.acs.address.service.AddressService;
 import org.nl.acs.address.service.dto.AddressDto;
-import org.nl.acs.common.base.CommonFinalParam;
 import org.nl.acs.device.domain.Device;
 import org.nl.acs.device.service.DeviceService;
 import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver;
-import org.nl.acs.device_driver.conveyor.box_palletizing_manipulator.BoxPalletizingManipulatorDeviceDriver;
 import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
-import org.nl.acs.device_driver.one_conveyor.fold_disc_site.FoldDiscSiteDeviceDriver;
-import org.nl.acs.device_driver.one_manipulator.box_package_manipulator.BoxPackageManipulatorDeviceDriver;
-import org.nl.acs.device_driver.paper_tube_device2.PaperTubeConveyor2DeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.blank_manipulator.BlankManipulatorDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.hongxiang_device.HongXiangConveyorDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.inflatable_shaft_library.InflatableShaftLibraryDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
-import org.nl.acs.device_driver.two_conveyor.subvolume_weighing_station.SubvolumeWeighingStationDriver;
-import org.nl.acs.device_driver.two_conveyor.waste_foil_weighing_station.WasteFoilWeighingStationDriver;
 import org.nl.acs.instruction.domain.Instruction;
 import org.nl.acs.instruction.service.InstructionService;
 import org.nl.acs.opc.DeviceAppService;
 import org.nl.acs.region.domain.Region;
 import org.nl.acs.region.service.RegionService;
-import org.nl.acs.storage_cell.domain.StorageCell;
-import org.nl.acs.task.enums.TaskStatusEnum;
 import org.nl.acs.task.service.TaskService;
 import org.nl.acs.task.service.dto.TaskDto;
 import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
 import org.nl.common.exception.BadRequestException;
 import org.nl.config.language.LangProcess;
+import org.nl.config.lucene.service.LuceneExecuteLogService;
+import org.nl.config.lucene.service.dto.LuceneLogDto;
 import org.nl.hand.dto.HeadDto;
-import org.nl.hand.dto.HeadTaskDto;
-import org.nl.hand.service.HandService;
 import org.nl.hand.service.PdaService;
 import org.nl.system.service.dict.dao.Dict;
 import org.nl.system.service.dict.dao.mapper.SysDictMapper;
 import org.nl.system.service.param.ISysParamService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -62,6 +46,9 @@ import java.util.Map;
 @RequiredArgsConstructor
 @Slf4j
 public class PdaServiceImpl implements PdaService {
+
+    @Autowired
+    LuceneExecuteLogService luceneExecuteLogService;
     @Autowired
     private DeviceService deviceService;
 
@@ -91,6 +78,7 @@ public class PdaServiceImpl implements PdaService {
         JSONArray data = new JSONArray();
         //查询所有设备
         List<Device> list = deviceService.lambdaQuery()
+                .eq(Device::getDriver_code, "standard_ordinary_site")
                 .list();
         if (CollectionUtil.isEmpty(list)) {
             throw new BadRequestException(LangProcess.msg("error_no_regional"));
@@ -154,6 +142,12 @@ public class PdaServiceImpl implements PdaService {
         jo.put("task_type", "1");
         jo.put("agv_system_type", "2");
         jo.put("priority", "1");
+        if ((start_device_code.equals("A3") && next_device_code.equals("A2"))|| (start_device_code.equals("A3") && next_device_code.equals("A1"))) {
+            jo.put("car_no", "2");
+        }
+        if (start_device_code.equals("A3") && next_device_code.equals("A4")){
+            jo.put("car_no", "1");
+        }
 
         TaskDto task_dto = jo.toJavaObject(TaskDto.class);
         try {
@@ -209,21 +203,27 @@ public class PdaServiceImpl implements PdaService {
             throw new BadRequestException("当前任务不存在!");
         }
         JSONObject resultJson = new JSONObject();
-        Instruction instruction = instructionService.findByTaskid(dto.getTask_id(), "instruction_status <2 ");
-        if (instruction != null) {
-            resultJson.put("message", "有指令未完成!");
+        if (Integer.parseInt(dto.getTask_status()) == 0) {
+            TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
+            taskIdAndStatusDTO.setTask_id(dto.getTask_id());
+            taskIdAndStatusDTO.setTask_status(dto.getTask_status());
+            try {
+                taskserver.finish(taskIdAndStatusDTO);
+            } catch (Exception e) {
+                resultJson.put("message", e.getMessage());
+                return resultJson;
+            }
+            resultJson.put("message", "强制完成成功");
             return resultJson;
         }
-        TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
-        taskIdAndStatusDTO.setTask_id(dto.getTask_id());
-        taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
         try {
-            taskserver.finish(taskIdAndStatusDTO);
+            Instruction instruction = instructionService.findByTaskid(dto.getTask_id(), "1");
+            instructionService.finish(instruction);
         } catch (Exception e) {
             resultJson.put("message", e.getMessage());
             return resultJson;
         }
-        resultJson.put("message", "操作成功");
+        resultJson.put("message", "强制完成成功");
         return resultJson;
     }
 
@@ -288,6 +288,12 @@ public class PdaServiceImpl implements PdaService {
         if (device_k.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
             standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_k.getDeviceDriver();
             standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option));
+            LuceneLogDto logDto = LuceneLogDto.builder()
+                    .device_code(device_code)
+                    .content("设备号:" + device_code + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
+                    .build();
+            logDto.setLog_level(4);
+            luceneExecuteLogService.deviceExecuteLog(logDto);
         }
         JSONObject resultJson = new JSONObject();
         if (ObjectUtil.isEmpty(errArr)) {
@@ -327,7 +333,7 @@ public class PdaServiceImpl implements PdaService {
 
     @Override
     public Map<String, Object> queryDevice(String jsonObject) throws Exception {
-        JSONArray backja = new JSONArray();
+        JSONObject resultJson = new JSONObject();
         JSONArray datas = JSONArray.parseArray(jsonObject);
         //agv
         AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver;
@@ -347,18 +353,18 @@ public class PdaServiceImpl implements PdaService {
             }
             if (device.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) {
                 agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) device.getDeviceDriver();
-                jo.put("device_code", agvNdcTwoDeviceDriver.getDevice().getDevice_code());
                 jo.put("x", agvNdcTwoDeviceDriver.getX());
                 jo.put("y", agvNdcTwoDeviceDriver.getY());
                 jo.put("angle", agvNdcTwoDeviceDriver.getAngle());
-                ja.put(agvNdcTwoDeviceDriver.getDevice().getDevice_code(), jo);
+                if (device_code.equals("1")) {
+                    resultJson.put("one", jo);
+                } else {
+                    resultJson.put("two", jo);
+                }
             }
-            backja.add(ja);
         }
-        JSONObject resultJson = new JSONObject();
         resultJson.put("status", HttpStatus.OK.value());
         resultJson.put("message", "操作成功");
-        resultJson.put("data", backja);
         return resultJson;
     }
 }
diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java
index 45c0d30..d95efff 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java
+++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java
@@ -1,21 +1,14 @@
 package org.nl.system.service.quartz.task;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.nl.acs.common.base.CommonFinalParam;
-import org.nl.acs.device.domain.Device;
-import org.nl.acs.instruction.domain.InstructionMybatis;
+import org.nl.acs.instruction.domain.Instruction;
 import org.nl.acs.instruction.enums.InstructionStatusEnum;
 import org.nl.acs.instruction.service.InstructionService;
-import org.nl.acs.instruction.domain.Instruction;
-import org.nl.acs.limit_regional.server.LimitRegionalService;
-import org.nl.acs.limit_regional.server.dto.LimitRegionalDto;
 import org.nl.acs.opc.DeviceAppService;
 import org.nl.acs.opc.DeviceAppServiceImpl;
 import org.nl.acs.route.service.RouteLineService;
@@ -86,6 +79,7 @@ public class AutoCreateInst {
             String route_plan_code = acsTask.getRoute_plan_code();
             String vehicleType = acsTask.getVehicle_type();
             String agv_system_type = acsTask.getAgv_system_type();
+            String car_no = acsTask.getCar_no();
 
             String start_height = acsTask.getStart_height();
             String next_height = acsTask.getNext_height();
@@ -163,6 +157,7 @@ public class AutoCreateInst {
             instdto.setStart_height(start_height);
             instdto.setNext_height(next_height);
             instdto.setAgv_action_type(agvActionType);
+            instdto.setCarno(car_no);
             //判断agv系统
             //1、1楼叉车系统
             //2、2楼1区域AGV系统
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
index 3a9def5..a87d08e 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
@@ -10,7 +10,7 @@ spring:
       driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
       #      url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
       #      url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
-      url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:xlm_acs}?serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
+      url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:jinbao}?serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
       username: ${DB_USER:root}
       password: ${DB_PWD:123456}
       #      password: ${DB_PWD:p@ssw0rd}
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml
index 6eb5a1c..709369d 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml
@@ -6,7 +6,7 @@ spring:
   freemarker:
     check-template-location: false
   profiles:
-    active: dev
+    active: prod
   jackson:
     time-zone: GMT+8
   data:
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal.properties b/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal.properties
index 28f6d19..795b59a 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal.properties
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal.properties
@@ -62,9 +62,9 @@ universal_notCreateInstMessage9=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmode!=2\uFF0C\u65E
 universal_notCreateInstMessage10=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmove!=0\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
 universal_notCreateInstMessage11=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
 universal_notCreateInstMessage12=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=1\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
-universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
-universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
-universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
+universal_actionMessage1=\u5F85\u673A
+universal_actionMessage2=\u653E\u8D27\u786E\u8BA4
+universal_actionMessage3=\u5378\u8D27\u786E\u8BA4
 universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
 universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
 universal_actionMessage6=\u5141\u8BB8\u53D6
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal_zh_CN.properties b/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal_zh_CN.properties
index e14f2c3..a72cb1a 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal_zh_CN.properties
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/language/monitor/universal/universal_zh_CN.properties
@@ -43,9 +43,9 @@ universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u7
 universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
 universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
 universal_feedMessage6=\u4EFB\u52A1\u5B8C\u6210
-universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
-universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
-universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
+universal_actionMessage1=\u5F85\u673A
+universal_actionMessage2=\u653E\u8D27\u786E\u8BA4
+universal_actionMessage3=\u5378\u8D27\u786E\u8BA4
 universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
 universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
 universal_actionMessage6=\u5141\u8BB8\u53D6
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/log/AgvNdcTwoDeviceDriver.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/log/AgvNdcTwoDeviceDriver.xml
new file mode 100644
index 0000000..a603cb5
--- /dev/null
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/log/AgvNdcTwoDeviceDriver.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<included>
+<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
+<property name="LOG_HOME" value="${logPath}"/>
+<!-- 按照每天生成日志文件 -->
+<appender name="AgvNdcTwoDeviceDriver" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+        <!--日志文件输出的文件名-->
+        <FileNamePattern>${LOG_HOME}/ndc-agv请求/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+        <!--日志文件保留天数-->
+        <maxHistory>15</maxHistory>
+        <!--单个日志最大容量 至少10MB才能看得出来-->
+        <maxFileSize>50MB</maxFileSize>
+        <!--所有日志最多占多大容量-->
+        <totalSizeCap>2GB</totalSizeCap>
+    </rollingPolicy>
+    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        <charset>${log.charset}</charset>
+    </encoder>
+
+</appender>
+
+<!-- 打印sql -->
+<logger name="org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver" level="info" additivity="true">
+    <appender-ref ref="AgvNdcTwoDeviceDriver"/>
+</logger>
+</included>
+
diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
index 229eeef..c644794 100644
--- a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
+++ b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
@@ -73,30 +73,6 @@ https://juejin.cn/post/6844903775631572999
 <!--            <appender-ref ref="asyncFileAppender"/>-->
             <appender-ref ref="CONSOLE"/>
         </root>
-     <!--   <logger name="jdbc" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.springframework" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.hibernate" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.quartz" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="com.google" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.redisson" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.springframework.data" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>
-        <logger name="org.jinterop" level="ERROR" additivity="true">
-            <appender-ref ref="asyncFileAppender"/>
-        </logger>-->
     </springProfile>
 
     <!--测试环境:打印控制台-->
@@ -115,6 +91,7 @@ https://juejin.cn/post/6844903775631572999
         <root level="info">
             <appender-ref ref="asyncLuceneAppender"/>
             <appender-ref ref="asyncFileAppender"/>
+            <appender-ref ref="CONSOLE"/>
         </root>
         <logger name="jdbc" level="ERROR" additivity="true">
             <appender-ref ref="asyncLuceneAppender"/>
diff --git a/acs2/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java b/acs2/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
index a2797c3..82555da 100644
--- a/acs2/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
+++ b/acs2/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
@@ -8,8 +8,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.scheduling.annotation.Scheduled;
 
-import java.util.Scanner;
-import java.util.concurrent.*;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.stream.Collectors;
 
 /**
  * @Author: lyd
@@ -25,23 +30,39 @@ public class ApplicationTest {
 
     @Test
     void contextLoads() {
-        Scanner scanner = new Scanner(System.in);
-        System.out.println("请输入第一个数:");
-        int a = scanner.nextInt();
-        System.out.println("请输入第一个数:");
-        int b = scanner.nextInt();
-        System.out.println("请输入第一个数:");
-        int c = scanner.nextInt();
-        //求最小值
-        int min = (((a < b) ? a : b) < c) ? ((a < b) ? a : b) : c;
-        //求最大值
-        int max = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
-        //求中间值
-        int mid = a + b + c - max - min;
-        //排序
-        System.out.println("最小值为:" + min + "中间值为:" + mid + "最大值为:" + max);
+        List<String> list = Arrays.asList("a", "b", "c");
+        long a = list.stream().filter(s -> s.contains("a")).count();
+        System.out.println(a);
+        list.stream().filter(s -> s.contains("a")).forEach(System.out::println);
+        List<String> list1 = list.stream().collect(Collectors.toList());
+        list1.forEach(System.out::println);
+    }
+    @Test
+    void test() {
+        Boolean b = true;
+        if (!b)
+        System.out.println(b);
+    }
+    @Test
+    void test1() {
+        int a = 1;
+        int b = 10;
+        b++;
+        int c = countSum(a,b);
+        System.out.println(c);
+    }
 
+    @Test
+    void test2() {
+        int sum = 0;
+        for (int i = 0; i < 50; i++) {
+            sum += i;
+            System.out.println(sum);
+        }
+    }
 
+    private int countSum(int a, int b) {
+        return a + b;
     }
 
     @Test
diff --git a/acs2/nladmin-ui/src/assets/images/1.png b/acs2/nladmin-ui/src/assets/images/1.png
new file mode 100644
index 0000000..266155f
Binary files /dev/null and b/acs2/nladmin-ui/src/assets/images/1.png differ
diff --git a/acs2/nladmin-ui/src/layout/components/Sidebar/Logo.vue b/acs2/nladmin-ui/src/layout/components/Sidebar/Logo.vue
index ef5074c..9a1a8ec 100644
--- a/acs2/nladmin-ui/src/layout/components/Sidebar/Logo.vue
+++ b/acs2/nladmin-ui/src/layout/components/Sidebar/Logo.vue
@@ -14,7 +14,7 @@
 </template>
 
 <script>
-import Logo from '@/assets/images/newloge.png'
+import Logo from '@/assets/images/1.png'
 import variables from '@/assets/styles/variables.scss'
 export default {
   name: 'SidebarLogo',
@@ -26,7 +26,7 @@ export default {
   },
   data() {
     return {
-      title: '山东金宝铜箔ACS系统',
+      title: '山东金宝ACS系统',
       logo: Logo,
       title_param: 'platform'
     }
@@ -65,8 +65,8 @@ export default {
     width: 100%;
 
     & .sidebar-logo {
-      width: 55px;
-      height: 15px;
+      width: 75px;
+      height: 50px;
       vertical-align: middle;
       margin-right: 6px;
     }
diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue b/acs2/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue
index a97ada6..63c8a0c 100644
--- a/acs2/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue
+++ b/acs2/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue
@@ -242,8 +242,7 @@ export default {
       rules: {},
       region: [
         { region_name: '区域一', region_number: '1' },
-        { region_name: '区域二', region_number: '2' },
-        { region_name: '区域三', region_number: '3' }
+        { region_name: '区域二', region_number: '2' }
       ]
     }
   },
diff --git a/acs2/nladmin-ui/src/views/acs/history/taskRecord/index.vue b/acs2/nladmin-ui/src/views/acs/history/taskRecord/index.vue
index fb2964f..96fcc15 100644
--- a/acs2/nladmin-ui/src/views/acs/history/taskRecord/index.vue
+++ b/acs2/nladmin-ui/src/views/acs/history/taskRecord/index.vue
@@ -43,7 +43,7 @@
               style="width: 190px"
               @change="crud.toQuery"
             >
-              <el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
+              <el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value"/>
             </el-select>
           </el-form-item>
           <el-form-item :label="$t('task.txt_box.Task_status')">
@@ -57,7 +57,7 @@
               style="width: 190px"
               @change="crud.toQuery"
             >
-              <el-option v-for="item in dict.task_status" :key="item.id" :label="item.label" :value="item.value" />
+              <el-option v-for="item in dict.task_status" :key="item.id" :label="item.label" :value="item.value"/>
             </el-select>
           </el-form-item>
           <el-form-item :label="$t('task.txt_box.Task_type')">
@@ -71,7 +71,7 @@
               style="width: 190px"
               @change="crud.toQuery"
             >
-              <el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value" />
+              <el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value"/>
             </el-select>
           </el-form-item>
           <el-form-item :label="$t('task.txt_box.Origin_or_destination')">
@@ -86,7 +86,7 @@
             />
           </el-form-item>
           <el-form-item :label="$t('task.txt_box.time')">
-            <Search />
+            <Search/>
           </el-form-item>
         </el-form>
         <!--        <el-input-->
@@ -125,7 +125,7 @@
       >
         <el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
           <el-form-item v-if="false" label="任务标识" prop="task_id">
-            <el-input v-model="form.task_id" style="width: 370px;" />
+            <el-input v-model="form.task_id" style="width: 370px;"/>
           </el-form-item>
           <el-form-item :label="$t('task.txt_box.Material_type')">
             <el-select
@@ -251,18 +251,21 @@
             </el-select>
           </el-form-item>
           <el-form-item :label="$t('task.select.Priority')">
-            <el-input v-model="form.priority" style="width: 370px;" />
+            <el-input v-model="form.priority" style="width: 370px;"/>
           </el-form-item>
           <el-form-item :label="$t('task.select.Vehicle_number')">
-            <el-input v-model="form.vehicle_code" style="width: 370px;" />
+            <el-input v-model="form.vehicle_code" style="width: 370px;"/>
           </el-form-item>
           <el-form-item :label="$t('task.select.Description')" prop="description">
-            <el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea" />
+            <el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea"/>
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
           <el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
-          <el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
+          <el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{
+              $t('task.select.Confirm')
+            }}
+          </el-button>
         </div>
       </el-dialog>
       <!--表格渲染-->
@@ -274,13 +277,16 @@
         style="width: 100%;"
         @selection-change="crud.selectionChangeHandler"
       >
-        <el-table-column v-if="false" prop="task_id" label="任务标识" />
-        <el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" :min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))" />
-        <el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" />
+        <el-table-column v-if="false" prop="task_id" label="任务标识"/>
+        <el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')"
+                         :min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))"/>
+        <el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')"/>
         <el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" width="100px">
           debugger
           <template slot-scope="scope">
-            <span v-if="scope.row.class_type!=null && scope.row.class_type.length===2 ">{{ dict.label.task_type[scope.row.class_type] }}</span>
+            <span v-if="scope.row.class_type!=null && scope.row.class_type.length===2 ">{{
+                dict.label.task_type[scope.row.class_type]
+              }}</span>
             <span v-else>{{ dict.label.task_type[scope.row.task_type] }}</span>
           </template>
         </el-table-column>
@@ -292,22 +298,30 @@
             <span v-if="scope.row.task_status=='3' ">{{ $t('task.select.Cancel') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="priority" :label="$t('TaskRecord.table.Priority')" :min-width="flexWidth('priority',crud.data,$t('TaskRecord.table.Priority'))" />
-        <el-table-column prop="start_point_code" :label="$t('task.select.Start_point')" :min-width="flexWidth('start_point_code',crud.data,$t('task.select.Start_point'))" />
-        <el-table-column prop="next_point_code" :label="$t('task.select.Destination')" :min-width="flexWidth('next_point_code',crud.data,$t('task.select.Destination'))" />
-        <el-table-column prop="start_point_code2" :label="$t('TaskRecord.table.Starting_point_two')" :min-width="flexWidth('start_point_code2',crud.data,$t('TaskRecord.table.Starting_point_two'))" />
-        <el-table-column prop="next_point_code2" :label="$t('TaskRecord.table.Endpoint_two')" :min-width="flexWidth('next_point_code2',crud.data,$t('TaskRecord.table.Endpoint_two'))" />
-        <el-table-column prop="interaction_json" :label="$t('task.select.Interaction_json')" :show-overflow-tooltip="true" width="150px" />
-        <el-table-column prop="matarial" :label="$t('TaskRecord.table.Material')" />
-        <el-table-column prop="quantity" :label="$t('TaskRecord.table.Quantity')" />
-        <el-table-column prop="remark" :label="$t('task.select.Remark')" />
-        <el-table-column prop="create_by" :label="$t('task.select.Creator')" />
-        <el-table-column prop="create_time" :label="$t('task.select.Create_time')" width="135" />
-        <el-table-column prop="update_by" :label="$t('TaskRecord.table.Update_by')" :min-width="flexWidth('update_by',crud.data,$t('TaskRecord.table.Update_by'))" />
-        <el-table-column prop="update_time" :label="$t('TaskRecord.table.Update_time')" :min-width="flexWidth('update_time',crud.data,$t('task.select.Update_time'))" />
+        <el-table-column prop="priority" :label="$t('TaskRecord.table.Priority')"
+                         :min-width="flexWidth('priority',crud.data,$t('TaskRecord.table.Priority'))"/>
+        <el-table-column prop="start_point_code" :label="$t('task.select.Start_point')"
+                         :min-width="flexWidth('start_point_code',crud.data,$t('task.select.Start_point'))"/>
+        <el-table-column prop="next_point_code" :label="$t('task.select.Destination')"
+                         :min-width="flexWidth('next_point_code',crud.data,$t('task.select.Destination'))"/>
+        <el-table-column prop="start_point_code2" :label="$t('TaskRecord.table.Starting_point_two')"
+                         :min-width="flexWidth('start_point_code2',crud.data,$t('TaskRecord.table.Starting_point_two'))"/>
+        <el-table-column prop="next_point_code2" :label="$t('TaskRecord.table.Endpoint_two')"
+                         :min-width="flexWidth('next_point_code2',crud.data,$t('TaskRecord.table.Endpoint_two'))"/>
+        <el-table-column prop="interaction_json" :label="$t('task.select.Interaction_json')"
+                         :show-overflow-tooltip="true" width="150px"/>
+        <el-table-column prop="matarial" :label="$t('TaskRecord.table.Material')"/>
+        <el-table-column prop="quantity" :label="$t('TaskRecord.table.Quantity')"/>
+        <el-table-column prop="remark" :label="$t('task.select.Remark')"/>
+        <el-table-column prop="create_by" :label="$t('task.select.Creator')"/>
+        <el-table-column prop="create_time" :label="$t('task.select.Create_time')" width="135"/>
+        <el-table-column prop="update_by" :label="$t('TaskRecord.table.Update_by')"
+                         :min-width="flexWidth('update_by',crud.data,$t('TaskRecord.table.Update_by'))"/>
+        <el-table-column prop="update_time" :label="$t('TaskRecord.table.Update_time')"
+                         :min-width="flexWidth('update_time',crud.data,$t('task.select.Update_time'))"/>
       </el-table>
       <!--分页组件-->
-      <pagination />
+      <pagination/>
     </div>
   </div>
 </template>
@@ -315,14 +329,14 @@
 <script>
 import Search from '@/views/lucene/time'
 import crudTask from '@/api/acs/task/task'
-import CRUD, { crud, form, header, presenter } from '@crud/crud'
+import CRUD, {crud, form, header, presenter} from '@crud/crud'
 import crudOperation from '@crud/CRUD.operation'
 import pagination from '@crud/Pagination'
 import deviceCrud from '@/api/acs/device/device'
 import routeCurd from '@/api/acs/route/routePlan'
-import { getDicts } from '@/views/system/dict/dict'
-import { download } from '@/api/data'
-import { downloadFile } from '@/utils'
+import {getDicts} from '@/views/system/dict/dict'
+import {download} from '@/api/data'
+import {downloadFile} from '@/utils'
 
 const defaultForm = {
   task_id: null,
@@ -347,7 +361,7 @@ const defaultForm = {
 }
 export default {
   name: 'Task',
-  components: { pagination, crudOperation, Search },
+  components: {pagination, crudOperation, Search},
   dicts: ['task_status', 'task_type'],
   mixins: [presenter(), header(), form(defaultForm), crud()],
   cruds() {
@@ -356,8 +370,8 @@ export default {
       url: 'api/task/getAll',
       idField: 'task_id',
       sort: 'task_id,desc',
-      query: { is_over: '1' },
-      crudMethod: { ...crudTask },
+      query: {is_over: '1'},
+      crudMethod: {...crudTask},
       optShow: {}
     })
   },
@@ -424,28 +438,28 @@ export default {
       },
       rules: {
         start_point_code: [
-          { required: true, message: '起点不能为空', trigger: 'change' }
+          {required: true, message: '起点不能为空', trigger: 'change'}
         ],
         next_point_code: [
-          { required: true, message: '终点不能为空', trigger: 'change' }
+          {required: true, message: '终点不能为空', trigger: 'change'}
         ],
         from_y: [
-          { validator: checkFromY, trigger: 'change' }
+          {validator: checkFromY, trigger: 'change'}
         ],
         from_z: [
-          { validator: checkFromZ, trigger: 'change' }
+          {validator: checkFromZ, trigger: 'change'}
         ],
         to_y: [
-          { validator: checkToY, trigger: 'change' }
+          {validator: checkToY, trigger: 'change'}
         ],
         to_z: [
-          { validator: checkToZ, trigger: 'change' }
+          {validator: checkToZ, trigger: 'change'}
         ]
       }
     }
   },
   watch: {
-    rangeDate: function(newVal, oldVal) {
+    rangeDate: function (newVal, oldVal) {
       if (newVal !== null) {
         this.tableParams.beginDate = newVal[0]
         this.tableParams.endDate = newVal[1]
@@ -495,9 +509,11 @@ export default {
         vehicle_code: this.query.vehicle_code,
         material_type: this.query.material_type,
         status: this.query.status,
-        point_code: this.crud.pointCode,
-        createTime: this.crud.createTime,
-        end_time: this.crud.endTime // 假设 this.crud.endTime 是你的结束时间
+        point_code: this.query.point_code,
+      }
+      if (this.crud.query.createTime !== undefined) {
+        params.createTime = this.crud.query.createTime[0]
+        params.end_time = this.crud.query.createTime[1]
       }
       const url = 'api/task/downloadTaskLogging'
       download(url, params).then(result => {
diff --git a/acs2/nladmin-ui/src/views/acs/task/index.vue b/acs2/nladmin-ui/src/views/acs/task/index.vue
index ea7501d..341ec39 100644
--- a/acs2/nladmin-ui/src/views/acs/task/index.vue
+++ b/acs2/nladmin-ui/src/views/acs/task/index.vue
@@ -114,30 +114,12 @@
         </el-button>
       </crudOperation>
       <!--表单组件-->
-      <el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="1100px">
+      <el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="600px">
         <el-form ref="form" :model="form" :rules="rules" size="small" label-width="135px">
           <el-row>
-            <el-col :span="12">
-              <div class="grid-content bg-purple"/>
               <el-form-item v-if="false" label="任务标识" prop="task_id">
                 <el-input v-model="form.task_id" style="width: 240px;"/>
               </el-form-item>
-              <el-form-item :label="$t('task.txt_box.Material_type')">
-                <el-select
-                  v-model="form.material"
-                  style="width: 370px;"
-                  filterable
-                  :placeholder="$t('task.select.Placeholder')"
-                  @change="isDisabled=false"
-                >
-                  <el-option
-                    v-for="item in dict.material_type"
-                    :key="item.id"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
-              </el-form-item>
               <el-form-item :label="$t('task.txt_box.Task_type')">
                 <el-select
                   v-model="form.task_type"
@@ -188,23 +170,23 @@
                 </el-select>
               </el-form-item>
 
-              <el-form-item :label="$t('task.txt_box.agv_action_type')">
-                <el-select
-                  v-model="form.agv_action_type"
-                  style="width: 370px;"
-                  filterable
-                  :placeholder="$t('task.select.Placeholder')"
-                  default-first-option
-                  @change="isDisabled=false"
-                >
-                  <el-option
-                    v-for="item in agvActionList"
-                    :key="item.key"
-                    :label="item.key"
-                    :value="item.value"
-                  />
-                </el-select>
-              </el-form-item>
+              <el-form-item label="路由方案">
+            <el-select
+              v-model="form.route_plan_code"
+              style="width: 370px;"
+              filterable
+              placeholder="请选择"
+              default-first-option
+              @change="isDisabled=false"
+            >
+              <el-option
+                v-for="item in routeList"
+                :key="item.plan_code"
+                :label="item.plan_name"
+                :value="item.plan_code"
+              />
+            </el-select>
+          </el-form-item>
               <el-form-item :label="$t('task.select.Start_point')" prop="start_point_code">
                 <el-select
                   v-model="form.start_point_code"
@@ -304,11 +286,6 @@
                   />
                 </el-select>
               </el-form-item>
-
-            </el-col>
-            <el-col :span="12">
-              <div class="grid-content bg-purple-light"/>
-
               <el-form-item v-show="start_flag" :label="$t('task.select.Starting_column')" prop="from_y2">
                 <el-select
                   v-model="form.from_y2"
@@ -381,9 +358,6 @@
               <el-form-item :label="$t('task.txt_box.Vehicle_number')">
                 <el-input v-model="form.vehicle_code" style="width: 370px;" @change="isDisabled=false"/>
               </el-form-item>
-
-
-            </el-col>
           </el-row>
         </el-form>
         <div slot="footer" class="dialog-footer">
diff --git a/acs2/nladmin-ui/src/views/lucene/time.vue b/acs2/nladmin-ui/src/views/lucene/time.vue
index 7d3a98c..210a764 100644
--- a/acs2/nladmin-ui/src/views/lucene/time.vue
+++ b/acs2/nladmin-ui/src/views/lucene/time.vue
@@ -10,6 +10,7 @@
       :range-separator="$t('monitor.lucence.until')"
       :start-placeholder="$t('auto.common.startDate')"
       :end-placeholder="$t('auto.common.endDate')"
+      value-format="yyyy-MM-dd HH:mm:ss"
       align="right"
     />
     <rrOperation />