From 083286e37c2e586b6e25cc4f5e959d8eb681521e Mon Sep 17 00:00:00 2001
From: psh <psh>
Date: Fri, 5 Apr 2024 14:20:24 +0800
Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../run/OneNDCSocketConnectionAutoRun.java    |  46 +++--
 .../basedriver/ssx_site/ItemProtocol.java     |  21 ++-
 .../ssx_site/SsxSiteDeviceDriver.java         |   4 +-
 .../standard_autodoor/ItemProtocol.java       |  68 ++++---
 .../StandardAutodoorDeviceDriver.java         | 173 ++++++------------
 .../wms/service/impl/WmsToAcsServiceImpl.java |  22 +--
 .../nl/wms/mes/domain/QPMES062Request.java    |   3 +
 .../wms/mes/domain/QPMES062RequestBody.java   |  11 +-
 .../nl/wms/mes/domain/QPMES065Request.java    |   3 +
 .../wms/mes/domain/QPMES065RequestBody.java   |  15 ++
 .../nl/wms/mes/domain/QPMES118Response.java   |   3 +
 .../wms/mes/domain/QPMES118ResponseBody.java  |   9 +
 .../sch/task_manage/task/tasks/POINTTask.java |  17 +-
 .../sch/task_manage/task/tasks/YCLCKTask.java |  19 +-
 .../sch/task_manage/task/tasks/YCLRKTask.java |  24 +--
 .../resources/config/application-prod.yml     |   2 +-
 .../src/main/resources/logback-spring.xml     |  26 +--
 17 files changed, 249 insertions(+), 217 deletions(-)

diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java
index 962dba0..c2c2722 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java
@@ -192,28 +192,48 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
                     //(需要WCS反馈)
                     else if (phase == 0x30) {
                         data = NDCAgvService.sendAgvOneModeInst(0x8F, index, 0, 0, 0, 0, 0);
-                    }                            //进入区域
+                    }
+                    //进入区域
                     else if (phase == 0x50) {
                         //开门
-                        if (device!=null&&device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
+                        if (ObjectUtil.isEmpty(device_code)) {
+                            log.info(agvaddr + "对应设备号为空!");
+                            return;
+                        }
+                        if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
                             standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                            standardAutodoorDeviceDriver.OpenOrClose("1");
-                            if (standardAutodoorDeviceDriver.getAction() == 1) {
-                                standardAutodoorDeviceDriver.OpenOrClose("1");
+
+                            try {
+                                standardAutodoorDeviceDriver.writing("to_open", "1");
+                                standardAutodoorDeviceDriver.writing("to_close", "0");
+                            } catch (Exception e) {
+                                log.info("下发电气信号失败:" + e.getMessage());
+                                e.printStackTrace();
+                            }
+                            if (standardAutodoorDeviceDriver.getOpen() == 1) {
+                                log.info("下发开门信号值为:{},下发关门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getToClose());
                                 data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
                             }
                         }
-                    }
-                    //离开区域
-                    else if (phase == 0x51) {
+                        //离开区域
+                    }else if (phase == 0x51) {
                         //关门
-                        if (device!=null&&device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
-                            standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                            standardAutodoorDeviceDriver.OpenOrClose("2");
-                            if (standardAutodoorDeviceDriver.getAction() == 2) {
+                            if (ObjectUtil.isEmpty(device_code)) {
+                                log.info(agvaddr + "对应设备号为空!");
+                                return;
+                            }
+                            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();
+                                }
                                 data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
+
                             }
-                        }
                     //任务删除确认
                     //(需要WCS反馈)
                     }else if (phase == 0xFF) {
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/ItemProtocol.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/ItemProtocol.java
index 11c8c44..40ac160 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/ItemProtocol.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/ItemProtocol.java
@@ -11,7 +11,6 @@ import java.util.List;
 @Data
 public class ItemProtocol {
 
-    public static String item_heartbeat = "heartbeat";
     public static String item_mode = "mode";
     public static String item_move = "move";
     public static String item_action = "action";
@@ -30,9 +29,6 @@ public class ItemProtocol {
         this.driver = driver;
     }
 
-    public int getHeartbeat() {
-        return this.getOpcIntegerValue(item_heartbeat);
-    }
 
     public int getMode() {
         return this.getOpcIntegerValue(item_mode);
@@ -53,8 +49,8 @@ public class ItemProtocol {
     public int getTask() {
         return this.getOpcIntegerValue(item_task);
     }
-    public int getWeight() {
-        return this.getOpcIntegerValue(item_weight);
+    public double getWeight() {
+        return this.getOpcFloatValue(item_weight);
     }
     public String getSubTray() {
         return this.getOpcStringValue(item_sub_tray);
@@ -105,9 +101,20 @@ public class ItemProtocol {
         return "";
     }
 
+    public float getOpcFloatValue(String protocol) {
+        Float value = this.driver.getDoubleValue(protocol);
+        if (value == null) {
+            setIsonline(false);
+        } else {
+            setIsonline(true);
+            return value;
+        }
+        return 0L;
+
+    }
+
     public static List<ItemDto> getReadableItemDtos() {
         ArrayList list = new ArrayList();
-        list.add(new ItemDto(item_heartbeat, "心跳", "DB600.B0"));
         list.add(new ItemDto(item_mode, "工作状态", "DB600.B1", Boolean.valueOf(true)));
         list.add(new ItemDto(item_move, "光电开关信号", "DB600.B2"));
         list.add(new ItemDto(item_action, "取放信号", "DB600.B3"));
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/SsxSiteDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/SsxSiteDeviceDriver.java
index 5dbe641..71cf944 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/SsxSiteDeviceDriver.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/ssx_site/SsxSiteDeviceDriver.java
@@ -77,8 +77,8 @@ public class SsxSiteDeviceDriver extends AbstractOpcDeviceDriver implements Devi
 
     int io_action = 0;
     int last_io_action = 0;
-    double weight = 0;
-    double last_weight = 0;
+    double weight = 0.0;
+    double last_weight = 0.0;
     String sub_tray = null;
     String last_sub_tray = null;
     String mother_tray = null;
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/ItemProtocol.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/ItemProtocol.java
index 1881c36..6eddab0 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/ItemProtocol.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/ItemProtocol.java
@@ -1,5 +1,6 @@
 package org.nl.acs.device_driver.basedriver.standard_autodoor;
 
+import cn.hutool.core.util.StrUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
 
@@ -8,13 +9,10 @@ import java.util.List;
 
 @Slf4j
 public class ItemProtocol {
-    public static String item_heartbeat = "heartbeat";
-    public static String item_mode = "mode";
-    public static String item_state = "state";
-    public static String item_action = "action";
-    public static String item_error = "error";
-    public static String item_to_command = "to_command";
-    public static String item_to_state ="to_state";
+    public static String item_open = "open";
+    public static String item_close = "close";
+    public static String item_to_open = "to_open";
+    public static String item_to_close = "to_close";
 
 
     private StandardAutodoorDeviceDriver driver;
@@ -23,39 +21,27 @@ public class ItemProtocol {
         this.driver = driver;
     }
 
-    public int getHeartbeat() {
-        return this.getOpcIntegerValue(item_heartbeat);
+    public int getOpen() {
+        return this.getOpcIntegerValue(item_open);
     }
 
-    public int getMode() {
-        return this.getOpcIntegerValue(item_mode);
+    public int getClose() {
+        return this.getOpcIntegerValue(item_close);
     }
 
-    public int getAction() {
-        return this.getOpcIntegerValue(item_action);
-    }
-
-    public int getError() {
-        return this.getOpcIntegerValue(item_error);
-    }
 
-    public int getState() {
-        return this.getOpcIntegerValue(item_state);
+    public int getToOpen() {
+        return this.getOpcIntegerValue(item_to_open);
     }
 
-    public int getToCommand() {
-        return this.getOpcIntegerValue(item_to_command);
+    public int getToClose() {
+        return this.getOpcIntegerValue(item_to_close);
     }
 
-    public int getToState() {
-        return this.getOpcIntegerValue(item_to_state);
-    }
-
-
     public int getOpcIntegerValue(String protocol) {
         Integer value = this.driver.getIntegeregerValue(protocol);
         if (value == null) {
-//            log.error("读取错误!");
+            // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
         } else {
             return value;
         }
@@ -63,22 +49,34 @@ public class ItemProtocol {
 
     }
 
+    public String getOpcStringValue(String protocol) {
+        String value = this.driver.getStringValue(protocol);
+        if (StrUtil.isEmpty(value)) {
+
+        } else {
+            return value;
+        }
+        return "0";
+    }
+
     public static List<ItemDto> getReadableItemDtos() {
         ArrayList list = new ArrayList();
-        list.add(new ItemDto(item_heartbeat, "心跳", "DB600.B0"));
-        list.add(new ItemDto(item_mode, "工作模式", "DB600.B1", Boolean.valueOf(true)));
-        list.add(new ItemDto(item_state, "工作状态", "DB600.B2"));
-        list.add(new ItemDto(item_action, "动作信号", "DB600.B3"));
-        list.add(new ItemDto(item_error, "报警信号", "DB600.B4"));
+        list.add(new ItemDto(item_open, "开到位", "10001"));
+        list.add(new ItemDto(item_close, "关到位", "10002"));
         return list;
     }
 
     public static List<ItemDto> getWriteableItemDtos() {
         ArrayList list = new ArrayList();
-        list.add(new ItemDto(item_to_command, "作业命令", "DB601.W2", Boolean.valueOf(true)));
-        list.add(new ItemDto(item_to_state, "下发状态", "DB601.W3", Boolean.valueOf(true)));
+        list.add(new ItemDto(item_to_open, "下发开门", "00001"  ));
+        list.add(new ItemDto(item_to_close, "下发关门", "00002"));
         return list;
     }
 
+
+    @Override
+    public String toString() {
+        return "";
+    }
 }
 
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java
index bcda436..750d85d 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java
@@ -8,6 +8,7 @@ import org.nl.acs.device.domain.Device;
 import org.nl.acs.device_driver.RequestMethodEnum;
 import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest;
 import org.nl.acs.ext.wms.service.AcsToWmsService;
+import org.nl.acs.log.service.DeviceExecuteLogService;
 import org.nl.acs.utils.ReadUtil;
 import org.nl.acs.device.service.DeviceService;
 import org.nl.acs.device_driver.DeviceDriver;
@@ -33,65 +34,19 @@ import java.util.Map;
 public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver {
     protected ItemProtocol itemProtocol = new ItemProtocol(this);
 
-    InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");
-
-    DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl");
-
-    RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl");
-
-    TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl");
-
-    AcsToWmsService acsToWmsService=SpringContextHolder.getBean("acsToWmsServiceImpl");
-    String container;
-    String container_type_desc;
-    String last_container_type_desc;
-    String last_container;
-    //放货准备锁
-    String putReadyLock = null;
-    //有货标记
-    protected boolean has_goods_tag = false;
-    String devicecode;
-    int mode = 0;
-    int action = 0;
-    int error = 0;
-    Boolean iserror = false;
-
-    int move = 0;
-    int task = 0;
-    int state = 0;
-    int last_state = 0;
-    int last_action = 0;
-    int last_mode = 0;
-    int last_error = 0;
-    int last_move = 0;
-    int last_task = 0;
-
-    boolean hasVehicle = false;
-    boolean isReady = false;
-    protected int instruction_num = 0;
-    protected int instruction_num_truth = 0;
-    protected boolean hasGoods = false;
-    boolean isFold = false;
-    private String assemble_check_tag;
-    private Boolean sampleMode0;
-    private Boolean sampleMode3;
-    private Integer sampleError;
-    private Boolean sampleOnline;
-    protected String displayMessage = null;
-    public int display_message_time_out = 30000;
-    public Date display_message_time;
-    protected String current_stage_instruction_message;
-    protected String last_stage_instruction_message;
-    Integer heartbeat_tag;
-    private Date instruction_require_time = new Date();
-    private Date instruction_finished_time = new Date();
-
-    private int instruction_require_time_out;
-    boolean requireSucess = false;
-
-    private int instruction_finished_time_out;
-
-    int branchProtocol = 0;
+    DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl");
+
+    int open = 0;
+    int close = 0;
+
+    int last_open = 0;
+    int last_close = 0;
+
+    int toOpen = 0;
+    int last_toOpen = 0;
+    int toClose = 0;
+    int last_toClose = 0;
+    String device_code = null;
 
     @Override
     public Device getDevice() {
@@ -103,76 +58,66 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem
     public void execute() {
         String message = null;
 
-        String device_code = this.getDevice().getDevice_code();
-        mode = this.itemProtocol.getMode();
-        action = this.itemProtocol.getAction();
-        error = this.itemProtocol.getError();
-        state = this.itemProtocol.getState();
-        if (mode != last_mode) {
+        device_code = this.getDevice().getDevice_code();
+        open = this.itemProtocol.getOpen();
+        close = this.itemProtocol.getClose();
+        toOpen = this.itemProtocol.getToOpen();
+        toClose = this.itemProtocol.getToClose();
+        if (open != last_open) {
+            logServer.deviceExecuteLog(this.device_code, "", "", "信号open:" + last_open + "->" + open);
         }
-        if (action != last_action) {
+        if (close != last_close) {
+            logServer.deviceExecuteLog(this.device_code, "", "", "信号close:" + last_close + "->" + close);
+
         }
-        if (error != last_error) {
+        if (toClose != last_toClose) {
+            logServer.deviceExecuteLog(this.device_code, "", "", "信号toClose:" + last_toClose + "->" + toClose);
+
         }
-        if (state != last_state) {
-            //固化室状态变更后通知lms更新固化室状态
-            FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
-            request.setState(String.valueOf(state));
-            request.setDevice_code(this.getDeviceCode());
-            request.setType("1");
-            acsToWmsService.notify(request);
+        if (toOpen != last_toOpen) {
+            logServer.deviceExecuteLog(this.device_code, "", "", "信号toOpen:" + last_toOpen + "->" + toOpen);
         }
-        last_action = action;
-        last_mode = mode;
-        last_error = error;
-        last_state = state;
-        //message = StringFormatUtl.format("设备报警:{}", new Object[]{});
-
-//        String manual_create_task = this.getDevice().getExtraValue().get("manual_create_task").toString();
-
+        last_open = open;
+        last_close = close;
+        last_toClose = toClose;
+        last_toOpen = toOpen;
     }
 
     public synchronized String getStatus() {
-        JSONObject jo = new JSONObject();
-
-        if (action == 1) {
-            jo.put("name", this.getDevice().getDevice_code());
-            jo.put("status", "OPEN");
-
-        } else if (action == 2) {
-            jo.put("name", this.getDevice().getDevice_code());
-            jo.put("status", "CLOSE");
-
-        } else {
-            jo.put("name", this.getDevice().getDevice_code());
-            jo.put("status", "ERROR");
+        {
+            JSONObject jo = new JSONObject();
+            String open = "";
+            String close = "";
+            if (this.getOpen() == 0) {
+                open = "未知";
+            } else if (this.getOpen() == 1) {
+                open = "开到位";
+            }
+            if (this.getClose() == 0) {
+                open = "未知";
+            } else if (this.getClose() == 1) {
+                open = "关到位";
+            }
+            jo.put("device_name", this.getDevice().getDevice_name());
+            jo.put("open", open);
+            jo.put("close", close);
+            jo.put("isOnline", true);
+
+            return jo.toString();
         }
-        return jo.toString();
     }
 
 
-    public void writing(String param,int command) {
-        String to_command = String.format("%s.%s.%s.%s", this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.getDevice().getDevice_code(), param);
-
-        String opcservcerid = this.getDevice().getOpc_server_id();
-        Server server = ReadUtil.getServer(opcservcerid);
+    public void writing(String param, String value) {
+        String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
+                + "." + param;
         Map<String, Object> itemMap = new HashMap<String, Object>();
-        itemMap.put(to_command, command);
-        ReadUtil.write(itemMap, server);
-        log.info("下发PLC信号:{},{}", to_command, command);
-        System.out.println("设备:" + devicecode + ",下发PLC信号:" + to_command + ",value:" + command);
+        itemMap.put(to_param, Integer.parseInt(value));
 
+        this.control(itemMap);
+        logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value);
     }
 
-    public synchronized void OpenOrClose(String type) {
 
-        //开门
-        if ("1".equals(type)) {
-            writing(ItemProtocol.item_to_command,1);
-        } else {
-            writing(ItemProtocol.item_to_command,2);
-        }
-
-    }
 
 }
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java
index b59ab8e..42149db 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java
@@ -635,19 +635,19 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
         switch(type){
             case 1:
                 //wms通知固化室满料,开始固化
-                device = deviceAppService.findDeviceByCode(device_code);
-                if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
-                    StandardAutodoorDeviceDriver standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                    standardAutodoorDeviceDriver.writing("to_state",1);
-                }
+//                device = deviceAppService.findDeviceByCode(device_code);
+//                if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
+//                    StandardAutodoorDeviceDriver standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
+//                    standardAutodoorDeviceDriver.writing("to_state",1);
+//                }
                 break;
             case 2:
-                //wms通知固化室取料完毕,重新开放可使用
-                device = deviceAppService.findDeviceByCode(device_code);
-                if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
-                    StandardAutodoorDeviceDriver standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
-                    standardAutodoorDeviceDriver.writing("to_state",2);
-                }
+//                //wms通知固化室取料完毕,重新开放可使用
+//                device = deviceAppService.findDeviceByCode(device_code);
+//                if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
+//                    StandardAutodoorDeviceDriver standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
+//                    standardAutodoorDeviceDriver.writing("to_state",2);
+//                }
                 break;
             default:
                 break;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062Request.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062Request.java
index 439f482..8fb06c4 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062Request.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062Request.java
@@ -1,5 +1,6 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -18,7 +19,9 @@ import java.util.List;
 @XmlRootElement
 @Accessors(chain = true)
 public class QPMES062Request{
+    @JSONField(name = "HEAD")
     private Head HEAD;
+    @JSONField(name = "BODY")
     private List<QPMES062RequestBody> BODY;
 
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062RequestBody.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062RequestBody.java
index a6f1df0..c41f6e0 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062RequestBody.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES062RequestBody.java
@@ -1,27 +1,36 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.*;
 import lombok.experimental.Accessors;
 
 import javax.xml.bind.annotation.XmlRootElement;
 
 @Data
-public class QPMES062RequestBody extends Head {
+public class QPMES062RequestBody {
     //入库单号
+    @JSONField(name = "SimtOrderNo")
     private String SimtOrderNo;
     //场地
+    @JSONField(name = "locationCode")
     private String locationCode;
     //入库类型
+    @JSONField(name = "simtType")
     private String simtType;
     //到货单号
+    @JSONField(name = "deliveryNo")
     private String deliveryNo;
     //扫描库位
+    @JSONField(name = "whlCode")
     private String whlCode;
     //物料条码号(托号)
+    @JSONField(name = "PalletSn")
     private String PalletSn;
     //用户编码
+    @JSONField(name = "userCode")
     private String userCode;
     //用户名称
+    @JSONField(name = "userName")
     private String userName;
 
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065Request.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065Request.java
index abe8ddd..f80c193 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065Request.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065Request.java
@@ -1,5 +1,6 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -18,6 +19,8 @@ import java.util.List;
 @XmlRootElement
 @Accessors(chain = true)
 public class QPMES065Request {
+    @JSONField(name = "HEAD")
     private Head HEAD;
+    @JSONField(name = "BODY")
     private List<QPMES065RequestBody> BODY;
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065RequestBody.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065RequestBody.java
index 8445d68..fb006bc 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065RequestBody.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES065RequestBody.java
@@ -1,5 +1,6 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.*;
 import lombok.experimental.Accessors;
 
@@ -9,32 +10,46 @@ import javax.xml.bind.annotation.XmlRootElement;
 public class QPMES065RequestBody {
 
     //工单号
+    @JSONField(name = "moname")
     private String moname;
     //物料条码(托号)
+    @JSONField(name = "lotSN")
     private String lotSN;
     //领料数量
+    @JSONField(name = "qty")
     private String qty;
     //场地
+    @JSONField(name = "siteName")
     private String siteName;
     //预留字段1
+    @JSONField(name = "ZXXV01")
     private String ZXXV01;
     //预留字段2
+    @JSONField(name = "ZXXV02")
     private String ZXXV02;
     //预留字段3
+    @JSONField(name = "ZXXV03")
     private String ZXXV03;
     //预留字段4
+    @JSONField(name = "ZXXV04")
     private String ZXXV04;
     //预留字段5
+    @JSONField(name = "ZXXV05")
     private String ZXXV05;
     //预留字段6
+    @JSONField(name = "ZXXV06")
     private String ZXXV06;
     //预留字段7
+    @JSONField(name = "ZXXV07")
     private String ZXXV07;
     //预留字段8
+    @JSONField(name = "ZXXV08")
     private String ZXXV08;
     //预留字段9
+    @JSONField(name = "ZXXV09")
     private String ZXXV09;
     //预留字段10
+    @JSONField(name = "ZXXV10")
     private String ZXXV10;
 
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118Response.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118Response.java
index 203f7d0..6262d09 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118Response.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118Response.java
@@ -1,5 +1,6 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 import lombok.ToString;
 
@@ -8,7 +9,9 @@ import java.util.List;
 @Data
 @ToString
 public class QPMES118Response{
+    @JSONField(name = "HEAD")
     private Head HEAD;
+    @JSONField(name = "BODY")
     private List<QPMES118ResponseBody> BODY;
 
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118ResponseBody.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118ResponseBody.java
index 173d782..27f379b 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118ResponseBody.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/domain/QPMES118ResponseBody.java
@@ -1,5 +1,6 @@
 package org.nl.wms.mes.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 import lombok.ToString;
 
@@ -7,20 +8,28 @@ import lombok.ToString;
 @ToString
 public class QPMES118ResponseBody{
     //库区
+    @JSONField(name = "WhaCode")
     private String WhaCode;
     //库位
+    @JSONField(name = "WhlCode")
     private String WhlCode;
     //客户
+    @JSONField(name = "CustomerName")
     private String CustomerName;
     //母托号
+    @JSONField(name = "ParentPalletSN")
     private String ParentPalletSN;
     //子托号
+    @JSONField(name = "PalletSN")
     private String PalletSN;
     //物料编码
+    @JSONField(name = "ProductName")
     private String ProductName;
     //入库日期
+    @JSONField(name = "WorkDate")
     private String WorkDate;
     //重量
+    @JSONField(name = "Qty")
     private String Qty;
 
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java
index db245b8..7d5185f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java
@@ -75,6 +75,14 @@ public class POINTTask extends AbstractTask {
             task.setRemark("");
             SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
                     .eq(SchBasePoint::getPoint_code, task.getPoint_code1()));
+            if(task.getPoint_code2().startsWith("DKT")){
+                SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
+                        .eq(SchBasePoint::getPoint_code, task.getPoint_code2()));
+                //如果是叠盘位,根据当前数量+1为目标地址
+                int qty=nextSchBasePoint.getVehicle_qty()+1;
+                log.info("当前叠盘位完成任务次数为");
+                task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty);
+            }
             task.setVehicle_code(schBasePoint.getVehicle_code());
             task.setVehicle_code2(schBasePoint.getVehicle_code2());
             taskService.update(task);
@@ -115,6 +123,9 @@ public class POINTTask extends AbstractTask {
         }
         String startPoint = taskObj.getPoint_code1(); // 获取起点
         String endPoint = taskObj.getPoint_code2(); // 获取终点
+        if(endPoint.startsWith("DKT")){
+            endPoint=endPoint.substring(0,endPoint.length()-1)+1;
+        }
         SchBasePoint startPointObj = pointService.getById(startPoint);
         SchBasePoint endPointObj = pointService.getById(endPoint);
         // 根据传来的类型去对任务进行操作
@@ -163,7 +174,11 @@ public class POINTTask extends AbstractTask {
             endPointObj.setIng_task_code("");
             endPointObj.setVehicle_code(taskObj.getVehicle_code());
             endPointObj.setVehicle_code2(taskObj.getVehicle_code2());
-            endPointObj.setVehicle_qty(1);
+            if(endPointObj.getPoint_code().startsWith("DKT")){
+                endPointObj.setVehicle_qty(endPointObj.getVehicle_qty()+1);
+            }else {
+                endPointObj.setVehicle_qty(1);
+            }
             pointService.update(endPointObj);
             // 起点清空
             startPointObj.setVehicle_code("");
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java
index 4805461..b4a59e9 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java
@@ -233,24 +233,27 @@ public class YCLCKTask extends AbstractTask {
                     String url = "http://192.168.9.5/sitAppWebApi/PDSToWMS/Api/QPMES065";
                     QPMES065Request qpmes065Request = new QPMES065Request();
                     List<QPMES065RequestBody> qpmes065RequestBodyList=new ArrayList<>();
-                    QPMES065RequestBody qpmes065RequestBody=new QPMES065RequestBody();
                     Head head=new Head();
                     head.setDEST_SYSTEM("WMS");
                     head.setINTF_ID("QPMES065");
                     head.setSRC_MSGID(IdUtil.simpleUUID());
                     head.setSRC_SYSTEM("AGV");
                     qpmes065Request.setHEAD(head);
-                    qpmes065RequestBody.setMoname(pdmBdWorkorder.getWorkorder_code());
-                    qpmes065RequestBody.setLotSN(materialList.get(0).getPalletSN());
-                    qpmes065RequestBody.setQty(String.valueOf(one.getMaterial_qty()));
-                    qpmes065RequestBody.setSiteName(materialList.get(0).getLocationCode());
-                    qpmes065RequestBodyList.add(qpmes065RequestBody);
+                    for(Material material:materialList) {
+                        QPMES065RequestBody qpmes065RequestBody=new QPMES065RequestBody();
+                        qpmes065RequestBody.setMoname(pdmBdWorkorder!=null?pdmBdWorkorder.getWorkorder_code():null);
+                        qpmes065RequestBody.setLotSN(material.getPalletSN());
+                        qpmes065RequestBody.setQty(String.valueOf(one.getMaterial_qty()));
+                        qpmes065RequestBody.setSiteName(material.getLocationCode());
+                        qpmes065RequestBody.setZXXV01(pdmBdWorkorder!=null?"1":"0");
+                        qpmes065RequestBodyList.add(qpmes065RequestBody);
+                    }
                     qpmes065Request.setBODY(qpmes065RequestBodyList);
-                    log.info("开始调用QPMES065服务,入参{}",qpmes065Request.toString());
+                    log.info("开始调用QPMES065服务,入参{}",JSON.toJSONString(qpmes065Request));
                     String resultMsg = HttpRequest.post(url)
                             .body(JSON.toJSONString(qpmes065Request))
                             .execute().body();
-                    log.info("QPMES062服务调用成功,反馈{}",resultMsg);
+                    log.info("QPMES065服务调用成功,反馈{}",resultMsg);
                 } else {
                     log.error("当前子托盘:" + taskObj.getVehicle_code2() + "不存在未解绑的物料信息,请确认!");
                 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java
index f4eb730..bec192f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java
@@ -215,18 +215,20 @@ public class YCLRKTask extends AbstractTask {
                     head.setSRC_SYSTEM("AGV");
                     qpmes062Request.setHEAD(head);
                     List<QPMES062RequestBody> qpmes062RequestBodyList=new ArrayList<>();
-                    QPMES062RequestBody qpmes062RequestBody=new QPMES062RequestBody();
-                    qpmes062RequestBody.setSimtOrderNo(materialList.get(0).getSimtOrderNo());
-                    qpmes062RequestBody.setLocationCode(materialList.get(0).getLocationCode());
-                    qpmes062RequestBody.setSimtType(materialList.get(0).getSimtType());
-                    qpmes062RequestBody.setDeliveryNo(materialList.get(0).getDeliveryNo());
-                    qpmes062RequestBody.setWhlCode(materialList.get(0).getWhlCode());
-                    qpmes062RequestBody.setPalletSn(materialList.get(0).getPalletSN());
-                    qpmes062RequestBody.setUserCode(materialList.get(0).getSupplierCode());
-                    qpmes062RequestBody.setUserName(materialList.get(0).getSupplierName());
-                    qpmes062RequestBodyList.add(qpmes062RequestBody);
+                    for(Material material:materialList) {
+                        QPMES062RequestBody qpmes062RequestBody = new QPMES062RequestBody();
+                        qpmes062RequestBody.setSimtOrderNo(material.getSimtOrderNo());
+                        qpmes062RequestBody.setLocationCode(material.getLocationCode());
+                        qpmes062RequestBody.setSimtType(material.getSimtType());
+                        qpmes062RequestBody.setDeliveryNo(material.getDeliveryNo());
+                        qpmes062RequestBody.setWhlCode(material.getWhlCode());
+                        qpmes062RequestBody.setPalletSn(material.getLotSN());
+                        qpmes062RequestBody.setUserCode(material.getSupplierCode());
+                        qpmes062RequestBody.setUserName(material.getSupplierName());
+                        qpmes062RequestBodyList.add(qpmes062RequestBody);
+                    }
                     qpmes062Request.setBODY(qpmes062RequestBodyList);
-                    log.info("开始调用QPMES062服务,入参{}",qpmes062Request.toString());
+                    log.info("开始调用QPMES062服务,入参{}",JSON.toJSONString(qpmes062Request));
                     String resultMsg = HttpRequest.post(url)
                             .body(JSON.toJSONString(qpmes062Request))
                             .execute().body();
diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
index 82f7ddd..6c6798c 100644
--- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
+++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
@@ -6,7 +6,7 @@ spring:
     druid:
       db-type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-      url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:cw_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
+      url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:gc_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
       #      url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
       username: ${DB_USER:root}
       password: ${DB_PWD:123456}
diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
index be73e83..e1ccc79 100644
--- a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
+++ b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
@@ -57,43 +57,43 @@ https://juejin.cn/post/6844903775631572999
     <!--开发环境:打印控制台-->
     <springProfile name="dev">
         <root level="debug">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </root>
         <logger name="org.springframework" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="org.apache" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="org.hibernate" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="io.netty" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="jdbc" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="io.lettuce" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="com.fasterxml" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="org.quartz" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="com.google" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="springfox" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="log4jdbc" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
         <logger name="nl.basjes" level="ERROR" additivity="false">
-            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="asyncFileAppender"/>
         </logger>
     </springProfile>