From b51e3b3d5bb721cec65952498d1c2c882d1a01d6 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 15 十二月 2025 17:14:22 +0800
Subject: [PATCH] wms功能完善

---
 src/main/java/com/zy/asrs/task/handler/JlerHandler.java              |   70 ++
 src/main/java/com/zy/system/entity/license/CustomLicenseManager.java |   36 
 src/main/webapp/static/js/taskLog/taskLog.js                         |   33 
 src/main/java/com/zy/asrs/task/JlerScheduler.java                    |   40 +
 src/main/java/com/zy/common/web/WcsController.java                   |   48 +
 src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java           |  198 +++----
 src/main/java/com/zy/common/config/LogAspect.java                    |    2 
 src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java       |    2 
 src/main/webapp/static/js/task/task.js                               |   28 
 src/main/java/com/zy/asrs/entity/WrkDetl.java                        |    3 
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java           |  240 ++++++--
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java        |   91 +++
 src/main/resources/application-dev.yml                               |    2 
 src/main/java/com/zy/asrs/service/RcsService.java                    |    2 
 src/main/java/com/zy/asrs/controller/MesController.java              |   80 +++
 src/main/java/com/zy/asrs/entity/TaskLog.java                        |  255 ++-------
 src/main/java/com/zy/asrs/service/MobileService.java                 |    6 
 src/main/webapp/static/css/main.min.css                              |    2 
 src/main/java/com/zy/system/entity/license/LicenseCheckListener.java |   36 
 src/main/webapp/static/js/basStation/basStation.js                   |    7 
 src/main/resources/mapper/WrkMastMapper.xml                          |    2 
 src/main/java/com/zy/asrs/controller/MobileController.java           |   22 
 src/main/java/com/zy/common/model/LocTypeDto.java                    |    2 
 src/main/java/com/zy/asrs/entity/mes/MesInApply.java                 |   10 
 /dev/null                                                            |  255 ----------
 25 files changed, 739 insertions(+), 733 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MesController.java b/src/main/java/com/zy/asrs/controller/MesController.java
index 6a0cde5..6a7ba4a 100644
--- a/src/main/java/com/zy/asrs/controller/MesController.java
+++ b/src/main/java/com/zy/asrs/controller/MesController.java
@@ -1,13 +1,19 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
+import com.zy.asrs.entity.BasStation;
 import com.zy.asrs.entity.mes.*;
+import com.zy.asrs.service.BasStationService;
 import com.zy.asrs.service.MesService;
 import com.zy.common.web.BaseController;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
 
 @RestController
 public class MesController extends BaseController {
@@ -28,9 +34,39 @@
     // 鍑哄簱鐢宠
     @PostMapping("/api/mes/outBoundOrder")
     public MesReturn outBoundOrder(@RequestBody MesInApply param){
-
         MesReturn mesReturn = new MesReturn();
-        mesReturn.setSuccess(mesService.outBoundOrder(param) == 1 ? "1" : "2");
+        // 缁堢偣涓虹┖锛岃绠楁帴椹充綅
+        BasStation basStation = null;
+        if (Cools.isEmpty(param.getNextStationId())) {
+            List<BasStation> basStations = basStationService.selectList(new EntityWrapper<BasStation>().eq("loc_sts", "O"));
+            if(basStations.isEmpty()) {
+                mesReturn.setSuccess("2");
+                mesReturn.setMessage("鏃犵┖鎺ラ┏浣嶏紝璇风◢鍚庡啀璇�!");
+                return mesReturn;
+            }
+            // 鎺ラ┏鐐�
+            basStation = basStations.get(0);
+            param.setNextStationId(basStation.getDevNo());
+
+            // 鍏堟洿鏂版帴椹崇偣鐘舵��
+            basStation.setModiTime(new Date());
+            basStation.setLocSts("S");
+            basStation.setBarcode(param.getDjNo());
+            basStationService.updateById(basStation);
+        }
+        int i = mesService.outBoundOrder(param);
+        if(i == 1) {
+            mesReturn.setSuccess("1");
+        } else {
+            // 閲婃斁鎺ラ┏鐐�
+            if(basStation != null) {
+                basStation.setModiTime(new Date());
+                basStation.setLocSts("O");
+                basStation.setBarcode("");
+                basStationService.updateById(basStation);
+            }
+            mesReturn.setSuccess("2");
+        }
         return mesReturn;
     }
 
@@ -66,11 +102,47 @@
         return mesService.allowOutStation(param);
     }
 
-    // 涓嬪彂杩愯緭浠诲姟
+    @Resource
+    private BasStationService basStationService;
+
+    // 涓嬪彂杩愯緭浠诲姟锛宮es璋冪敤涓嬪垁06(鍛煎彨agv鎼繍)
     @PostMapping("/api/mes/submitTask")
     public JSONObject submitTask(@RequestBody TransTask param){
+        // 缁堢偣涓虹┖锛岃绠楁帴椹充綅
+        BasStation basStation = null;
+        if (Cools.isEmpty(param.getNextStationId())) {
+            List<BasStation> basStations = basStationService.selectList(new EntityWrapper<BasStation>().eq("loc_sts", "O"));
+            if(basStations.isEmpty()) {
+                JSONObject result = new JSONObject();
+                result.put("taskno", param.getTaskno());
+                result.put("Success", "2");
+                result.put("Message", "鏃犵┖鎺ラ┏浣嶏紝璇风◢鍚庡啀璇�!");
+                return result;
+            }
+            // 鎺ラ┏鐐�
+            basStation = basStations.get(0);
+            param.setNextStationId(basStation.getDevNo());
 
-        return mesService.submitTask(param);
+            // 鍏堟洿鏂版帴椹崇偣鐘舵��
+            basStation.setModiTime(new Date());
+            basStation.setLocSts("S");
+            basStation.setBarcode(param.getDjNo());
+            basStationService.updateById(basStation);
+        }
+
+        param.setAgvFactory(1); // 娴峰悍
+        param.setNextStationId("A1");
+        JSONObject sendAgvTask = mesService.submitTask(param);
+        if (!"1".equals(sendAgvTask.getString("Success"))) {
+            // 閲婃斁鎺ラ┏鐐�
+            if(basStation != null) {
+                basStation.setModiTime(new Date());
+                basStation.setLocSts("O");
+                basStation.setBarcode("");
+                basStationService.updateById(basStation);
+            }
+        }
+        return sendAgvTask;
     }
 
     // 鎺ュ彈鎴愬搧鍒�鍙互鍏ュ簱浜岀淮鐮�
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 95e7cda..6b3224b 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -60,6 +60,21 @@
     @Resource
     private StaDescService staDescService;
 
+    // 閫�绌烘墭鐩樿繑鍥炰骇绾� pda涓婃搷浣滅┖鎵樿繑鍥炰骇绾�(鍒�鏋惰繑鍥�)
+    @GetMapping("/djReturn/auth")
+    public R tkt(@RequestParam String djNo){
+        return mobileService.djReturn(djNo);
+    }
+
+    @RequestMapping("/comb/auth")
+    @ManagerAuth(memo = "缁勬墭")
+    public R comb(@RequestBody CombParam combParam){
+        mobileService.comb(combParam, getUserId());
+        return R.ok("缁勬墭鎴愬姛");
+    }
+
+    // 杈撻�佺嚎娴佸姩
+
     @RequestMapping("/pda/WarehouseOut/v1")
     @ManagerAuth(memo = "骞舵澘閫斾腑鎷f枡-鍙傝�冨康鍒�")
     public R WarehouseOutV1(@RequestBody CombParam combParam) {
@@ -251,12 +266,7 @@
         return R.ok().add(combParams);
     }
 
-    @RequestMapping("/comb/auth")
-    @ManagerAuth(memo = "缁勬墭")
-    public R comb(@RequestBody CombParam combParam){
-        mobileService.comb(combParam, getUserId());
-        return R.ok("缁勬墭鎴愬姛");
-    }
+
 
     @RequestMapping("/pack/get/auth")
     @ManagerAuth
diff --git a/src/main/java/com/zy/asrs/entity/TaskLog.java b/src/main/java/com/zy/asrs/entity/TaskLog.java
index 47d9f5c..9d423b3 100644
--- a/src/main/java/com/zy/asrs/entity/TaskLog.java
+++ b/src/main/java/com/zy/asrs/entity/TaskLog.java
@@ -1,28 +1,24 @@
 package com.zy.asrs.entity;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;import com.core.common.SpringUtils;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
 import com.zy.asrs.entity.WrkMast;
 import com.baomidou.mybatisplus.annotations.TableField;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import org.springframework.format.annotation.DateTimeFormat;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.BasWrkStatusService;
 import com.zy.asrs.entity.BasWrkStatus;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.BasWrkIotypeService;
 import com.zy.asrs.entity.BasWrkIotype;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.entity.BasCrnp;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.entity.LocMast;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.entity.BasDevp;
 import com.core.common.SpringUtils;
 import com.zy.asrs.service.BasDevpService;
@@ -69,7 +65,15 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value= "")
+//    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
+
+    /**
+     * 浠诲姟绫诲瀷锛� agv  , crn
+     */
+    @ApiModelProperty(value= "浠诲姟绫诲瀷锛� agv  , crn")
+    @TableField("task_type")
+    private String taskType;
 
     /**
      * 宸ヤ綔鍙�
@@ -79,15 +83,10 @@
     private Integer wrkNo;
 
     @ApiModelProperty(value= "")
-    @TableField("log_id")
-    private Long logId;
-
-    @ApiModelProperty(value= "")
     @TableField("inv_wh")
     private String invWh;
 
     @ApiModelProperty(value= "")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date ymd;
 
     @ApiModelProperty(value= "")
@@ -102,7 +101,7 @@
      */
     @ApiModelProperty(value= "宸ヤ綔鐘舵��")
     @TableField("wrk_sts")
-    private Integer wrkSts;
+    private Long wrkSts;
 
     /**
      * 鍏ュ嚭搴撶被鍨�
@@ -112,9 +111,9 @@
     private Integer ioType;
 
     /**
-     * 鍫嗗灈鏈哄彿
+     * 鍫嗗灈鏈�
      */
-    @ApiModelProperty(value= "鍫嗗灈鏈哄彿")
+    @ApiModelProperty(value= "鍫嗗灈鏈�")
     @TableField("crn_no")
     private Integer crnNo;
 
@@ -131,7 +130,6 @@
 
     @ApiModelProperty(value= "")
     @TableField("wrk_date")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date wrkDate;
 
     /**
@@ -146,14 +144,14 @@
      */
     @ApiModelProperty(value= "鐩爣绔�")
     @TableField("sta_no")
-    private Integer staNo;
+    private String staNo;
 
     /**
      * 婧愮珯
      */
     @ApiModelProperty(value= "婧愮珯")
     @TableField("source_sta_no")
-    private Integer sourceStaNo;
+    private String sourceStaNo;
 
     /**
      * 婧愬簱浣�
@@ -167,9 +165,9 @@
     private String locSts;
 
     /**
-     * 鎷f枡(checkBox)
+     * 鎷f枡
      */
-    @ApiModelProperty(value= "鎷f枡(checkBox)")
+    @ApiModelProperty(value= "鎷f枡")
     private String picking;
 
     @ApiModelProperty(value= "")
@@ -185,9 +183,9 @@
     private String updMk;
 
     /**
-     * 閫�鍑�(checkBox)
+     * 閫�鍑�
      */
-    @ApiModelProperty(value= "閫�鍑�(checkBox)")
+    @ApiModelProperty(value= "閫�鍑�")
     @TableField("exit_mk")
     private String exitMk;
 
@@ -196,9 +194,9 @@
     private Integer pltType;
 
     /**
-     * 绌烘澘(checkBox)
+     * 绌烘澘
      */
-    @ApiModelProperty(value= "绌烘澘(checkBox)")
+    @ApiModelProperty(value= "绌烘澘")
     @TableField("empty_mk")
     private String emptyMk;
 
@@ -207,7 +205,6 @@
      */
     @ApiModelProperty(value= "宸ヤ綔鏃堕棿")
     @TableField("io_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date ioTime;
 
     @ApiModelProperty(value= "")
@@ -234,7 +231,6 @@
      */
     @ApiModelProperty(value= "鍫嗗灈鏈哄惎鍔ㄦ椂闂�")
     @TableField("crn_str_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date crnStrTime;
 
     /**
@@ -242,20 +238,14 @@
      */
     @ApiModelProperty(value= "鍫嗗灈鏈哄仠姝㈡椂闂�")
     @TableField("crn_end_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date crnEndTime;
 
-    /**
-     * 鎷f枡鏃堕棿
-     */
-    @ApiModelProperty(value= "鎷f枡鏃堕棿")
+    @ApiModelProperty(value= "")
     @TableField("plc_str_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date plcStrTime;
 
     @ApiModelProperty(value= "")
     @TableField("crn_pos_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date crnPosTime;
 
     @ApiModelProperty(value= "")
@@ -270,9 +260,11 @@
     @TableField("ref_wrkno")
     private Double refWrkno;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鎷f枡鏃堕棿
+     */
+    @ApiModelProperty(value= "鎷f枡鏃堕棿")
     @TableField("ref_iotime")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date refIotime;
 
     /**
@@ -287,7 +279,6 @@
      */
     @ApiModelProperty(value= "淇敼鏃堕棿")
     @TableField("modi_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date modiTime;
 
     /**
@@ -302,7 +293,6 @@
      */
     @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @TableField("appe_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date appeTime;
 
     @ApiModelProperty(value= "")
@@ -311,7 +301,6 @@
 
     @ApiModelProperty(value= "")
     @TableField("error_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date errorTime;
 
     @ApiModelProperty(value= "")
@@ -326,9 +315,11 @@
     @TableField("manu_type")
     private String manuType;
 
-    @ApiModelProperty(value= "")
-    @TableField("memo_m")
-    private String memoM;
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
 
     @ApiModelProperty(value= "")
     @TableField("sc_weight")
@@ -340,7 +331,6 @@
 
     @ApiModelProperty(value= "")
     @TableField("log_err_time")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date logErrTime;
 
     @ApiModelProperty(value= "")
@@ -353,6 +343,7 @@
     @ApiModelProperty(value= "鏉$爜")
     private String barcode;
 
+    // Y:閿�鍞鍗曞嚭搴撲换鍔�
     @ApiModelProperty(value= "")
     @TableField("Pdc_type")
     private String PdcType;
@@ -362,160 +353,34 @@
     private String ctnNo;
 
     /**
-     * 婊℃澘(checkBox)
+     * 婊℃澘
      */
-    @ApiModelProperty(value= "婊℃澘(checkBox)")
+    @ApiModelProperty(value= "婊℃澘")
     @TableField("full_plt")
     private String fullPlt;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鍏堝叆鍝� / 鍙岄噸鍏ュ簱
+     */
+    @ApiModelProperty(value= "鍏堝叆鍝�")
     @TableField("pre_have")
     private String preHave;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 绌烘搷浣� / 鍙栬揣鏃犵
+     */
+    @ApiModelProperty(value= "绌烘搷浣�")
     @TableField("take_none")
     private String takeNone;
 
-    @ApiModelProperty(value= "")
-    @TableField("line_number")
-    private Long lineNumber;
+    /**
+     * 澶栭儴浠诲姟缂栧彿
+     */
+    @ApiModelProperty(value= "澶栭儴浠诲姟缂栧彿")
+    @TableField("task_no")
+    private String taskNo;
 
     public TaskLog() {}
-
-    public TaskLog(Long id,Integer wrkNo,Long logId,String invWh,Date ymd,String mk,Integer whsType,Integer wrkSts,Integer ioType,Integer crnNo,String sheetNo,Double ioPri,Date wrkDate,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo,String locSts,String picking,String linkMis,String onlineYn,String updMk,String exitMk,Integer pltType,String emptyMk,Date ioTime,Integer ctnType,String packed,String oveMk,Double mtnType,String userNo,Date crnStrTime,Date crnEndTime,Date plcStrTime,Date crnPosTime,Double loadTime,Double expTime,Double refWrkno,Date refIotime,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String pauseMk,Date errorTime,String errorMemo,Integer ctnKind,String manuType,String memoM,Double scWeight,String logMk,Date logErrTime,String logErrMemo,String barcode,String PdcType,String ctnNo,String fullPlt,String preHave,String takeNone,Long lineNumber) {
-        this.id = id;
-        this.wrkNo = wrkNo;
-        this.logId = logId;
-        this.invWh = invWh;
-        this.ymd = ymd;
-        this.mk = mk;
-        this.whsType = whsType;
-        this.wrkSts = wrkSts;
-        this.ioType = ioType;
-        this.crnNo = crnNo;
-        this.sheetNo = sheetNo;
-        this.ioPri = ioPri;
-        this.wrkDate = wrkDate;
-        this.locNo = locNo;
-        this.staNo = staNo;
-        this.sourceStaNo = sourceStaNo;
-        this.sourceLocNo = sourceLocNo;
-        this.locSts = locSts;
-        this.picking = picking;
-        this.linkMis = linkMis;
-        this.onlineYn = onlineYn;
-        this.updMk = updMk;
-        this.exitMk = exitMk;
-        this.pltType = pltType;
-        this.emptyMk = emptyMk;
-        this.ioTime = ioTime;
-        this.ctnType = ctnType;
-        this.packed = packed;
-        this.oveMk = oveMk;
-        this.mtnType = mtnType;
-        this.userNo = userNo;
-        this.crnStrTime = crnStrTime;
-        this.crnEndTime = crnEndTime;
-        this.plcStrTime = plcStrTime;
-        this.crnPosTime = crnPosTime;
-        this.loadTime = loadTime;
-        this.expTime = expTime;
-        this.refWrkno = refWrkno;
-        this.refIotime = refIotime;
-        this.modiUser = modiUser;
-        this.modiTime = modiTime;
-        this.appeUser = appeUser;
-        this.appeTime = appeTime;
-        this.pauseMk = pauseMk;
-        this.errorTime = errorTime;
-        this.errorMemo = errorMemo;
-        this.ctnKind = ctnKind;
-        this.manuType = manuType;
-        this.memoM = memoM;
-        this.scWeight = scWeight;
-        this.logMk = logMk;
-        this.logErrTime = logErrTime;
-        this.logErrMemo = logErrMemo;
-        this.barcode = barcode;
-        this.PdcType = PdcType;
-        this.ctnNo = ctnNo;
-        this.fullPlt = fullPlt;
-        this.preHave = preHave;
-        this.takeNone = takeNone;
-        this.lineNumber = lineNumber;
-    }
-
-//    TaskLog taskLog = new TaskLog(
-//            null,    // 
-//            null,    // 宸ヤ綔鍙穂闈炵┖]
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 宸ヤ綔鐘舵��
-//            null,    // 鍏ュ嚭搴撶被鍨�
-//            null,    // 鍫嗗灈鏈哄彿
-//            null,    // 
-//            null,    // 浼樺厛绾�
-//            null,    // 
-//            null,    // 鐩爣搴撲綅
-//            null,    // 鐩爣绔�
-//            null,    // 婧愮珯
-//            null,    // 婧愬簱浣�
-//            null,    // 
-//            null,    // 鎷f枡(checkBox)
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 閫�鍑�(checkBox)
-//            null,    // 
-//            null,    // 绌烘澘(checkBox)
-//            null,    // 宸ヤ綔鏃堕棿
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 鍫嗗灈鏈哄惎鍔ㄦ椂闂�
-//            null,    // 鍫嗗灈鏈哄仠姝㈡椂闂�
-//            null,    // 鎷f枡鏃堕棿
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 淇敼浜哄憳
-//            null,    // 淇敼鏃堕棿
-//            null,    // 鍒涘缓鑰�
-//            null,    // 娣诲姞鏃堕棿
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 鏉$爜
-//            null,    // 
-//            null,    // 
-//            null,    // 婊℃澘(checkBox)
-//            null,    // 
-//            null,    // 
-//            null    // 
-//    );
-
-    public String getWrkNo$(){
-        WrkMastService service = SpringUtils.getBean(WrkMastService.class);
-        WrkMast wrkMast = service.selectById(this.wrkNo);
-        if (!Cools.isEmpty(wrkMast)){
-            return String.valueOf(wrkMast.getId());
-        }
-        return null;
-    }
 
     public String getYmd$(){
         if (Cools.isEmpty(this.ymd)){
@@ -567,9 +432,19 @@
         return null;
     }
 
+    public String getTaskType$(){
+        if (Cools.isEmpty(this.taskType)){return  null;}
+        if (taskType.equals("AGV")) {
+            return "AGV浠诲姟";
+        } else {
+            return "鍫嗗灈鏈轰换鍔�";
+        }
+    }
+
+
     public String getStaNo$(){
-        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
-        BasDevp basDevp = service.selectById(this.staNo);
+        BasStationService service = SpringUtils.getBean(BasStationService.class);
+        BasStation basDevp = service.selectOne(new EntityWrapper<BasStation>().eq("dev_no", this.staNo));
         if (!Cools.isEmpty(basDevp)){
             return String.valueOf(basDevp.getDevNo());
         }
@@ -577,8 +452,8 @@
     }
 
     public String getSourceStaNo$(){
-        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
-        BasDevp basDevp = service.selectById(this.sourceStaNo);
+        BasStationService service = SpringUtils.getBean(BasStationService.class);
+        BasStation basDevp = service.selectOne(new EntityWrapper<BasStation>().eq("dev_no", this.sourceStaNo));
         if (!Cools.isEmpty(basDevp)){
             return String.valueOf(basDevp.getDevNo());
         }
@@ -640,7 +515,7 @@
         UserService service = SpringUtils.getBean(UserService.class);
         User user = service.selectById(this.modiUser);
         if (!Cools.isEmpty(user)){
-            return String.valueOf(user.getNickname());
+            return String.valueOf(user.getUsername());
         }
         return null;
     }
@@ -656,7 +531,7 @@
         UserService service = SpringUtils.getBean(UserService.class);
         User user = service.selectById(this.appeUser);
         if (!Cools.isEmpty(user)){
-            return String.valueOf(user.getNickname());
+            return String.valueOf(user.getUsername());
         }
         return null;
     }
@@ -675,12 +550,12 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
     }
 
+
     public String getLogErrTime$(){
         if (Cools.isEmpty(this.logErrTime)){
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
     }
-
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 4d10ea7..f6876a1 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -10,6 +10,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.springframework.beans.BeanUtils;
 
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
@@ -401,7 +402,7 @@
     }
 
     public void sync(Object source) {
-        Synchro.Copy(source, this);
+        BeanUtils.copyProperties(source,this);
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/mes/MesInApply.java b/src/main/java/com/zy/asrs/entity/mes/MesInApply.java
index a32f03a..a7f3f16 100644
--- a/src/main/java/com/zy/asrs/entity/mes/MesInApply.java
+++ b/src/main/java/com/zy/asrs/entity/mes/MesInApply.java
@@ -30,6 +30,10 @@
     @JsonProperty("stationId")
     private String stationId;
 
+    @JsonProperty("NextStationId")
+    @JSONField(name = "NextStationId")
+    private String NextStationId;
+
     // 鐢熶骇璁㈠崟鍙�
     @JsonProperty("orderNo")
     @JSONField(name = "orderNo")
@@ -40,6 +44,8 @@
     @JSONField(name = "taskNo")
     private String taskNo;
 
+    private String taskname;
+
     // agv杩愯緭绫诲瀷
     @JsonProperty("transType")
     @JSONField(name = "transType")
@@ -50,6 +56,10 @@
     @JSONField(name = "createTime")
     private String createTime;
 
+    // 鍒�鏋剁紪鍙�
+    @JsonProperty("DJNo")
+    private String djNo;
+
     // 鍏ュ簱璇︽儏
     @JsonProperty("details")
     @JSONField(name = "details")
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 2455c90..30ffc29 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -99,4 +99,10 @@
      * @version 1.0
      */
     R OutCallAgv(AgvCallParams params, Long userId);
+
+    /**
+     * 鍒�鏋惰繑鍥�
+     * @param djNo 鍒�鏋跺彿
+     */
+    R djReturn(String djNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/RcsService.java b/src/main/java/com/zy/asrs/service/RcsService.java
index 8fddd1c..fdaebe2 100644
--- a/src/main/java/com/zy/asrs/service/RcsService.java
+++ b/src/main/java/com/zy/asrs/service/RcsService.java
@@ -20,7 +20,7 @@
      * @param rcsFactory 1 娴峰悍锛�2 鍗庢檽锛�
      * @return
      */
-    int submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory);
+    RcsReturn submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory);
 
     /**
      * 2.1.3浠诲姟缁х画鎵ц鎺ュ彛
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index 2b93d99..e6b7a13 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.excel.util.StringUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
@@ -272,6 +273,7 @@
      * @param mesOutApply
      * @return 1 鎴愬姛锛�-1 璁㈠崟閲嶅锛�
      */
+    @Transactional
     public int outBoundOrder(MesInApply mesOutApply){
 
         // docType鏍规嵁搴撶被鍨嬬‘瀹�
@@ -300,7 +302,7 @@
         orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
         orderPakout.setPakinPakoutStatus(2);
         if (!orderPakoutService.insert(orderPakout)) {
-            log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+            log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触:{}",orderPakout);
             throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
         }
 
@@ -310,7 +312,7 @@
             OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
             orderDetlPakout.setOrderId(orderPakout.getId());
             orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
-            orderDetlPakout.setAnfme(Double.valueOf(item.getAnfme()));
+            orderDetlPakout.setAnfme(item.getAnfme());
             orderDetlPakout.setQty(0.0);
             orderDetlPakout.setMatnr(mat.getMatnr());
             orderDetlPakout.setMaktx(mat.getMaktx());
@@ -323,61 +325,37 @@
             orderDetlPakout.setStatus(1);
             orderDetlPakout.setPakinPakoutStatus(2);
             if (!orderDetlPakoutService.insert(orderDetlPakout)) {
-                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�:{}",orderDetlPakout);
                 throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
             }
         }
 
         // TODO锛欳TU鍑哄簱鍔ㄤ綔
 
-        // todo 鍛煎彨agv浜х嚎鍙栫┖鏂欐灦
-        // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
         // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV浠庝骇绾胯繍杈撶┖鍒�鏋惰嚦绔嬪簱缂撳瓨鍖恒��
-        try {
             if (!StringUtils.isEmpty(mesOutApply.getTaskNo()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
                 TransTask transTask = new TransTask();
                 transTask.setTaskno(mesOutApply.getTaskNo());
-//                        transTask.setTaskname(mesOutApply.getTaskname());
+                transTask.setTaskname(mesOutApply.getTaskname());
                 transTask.setOrderNo(mesOutApply.getOrderNo());
                 transTask.setTransType("02");    //杩愬洖鍒�鏋舵椂榛樿02锛堜笅绌烘墭锛� mesOutApply.getTransType()
                 transTask.setCurProcess(mesOutApply.getProductLineId());
                 transTask.setCurStationId(mesOutApply.getStationId());
-//                        transTask.setNextProcess();
-                transTask.setNextStationId(WMS_TRANS_START_STATION_1);
+                transTask.setNextProcess(mesOutApply.getProductLineId());
+                transTask.setNextStationId(mesOutApply.getNextStationId());
 //                transTask.setItemno(mesOutApply.getItemNo());
-                transTask.setQty(0);
+                transTask.setQty(1);
                 transTask.setProductLineId(mesOutApply.getProductLineId());
 //                        transTask.setItemBarcode(codes);
 //                        transTask.setTuoPanId(entry.getKey());
+                transTask.setDjNo(mesOutApply.getDjNo());
                 transTask.setOperateType(1);
                 transTask.setAgvFactory(1);
                 JSONObject sendAgvTask = submitTask(transTask);
                 if (!"1".equals(sendAgvTask.getString("Success"))) {
-                    log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
+                    log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
                 }
-
-
-//                // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
-////                String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
-//                EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
-//                matItemBarcodeEntityWrapper.in("item_barcode", barCode);
-//                List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
-//                if (barcodes != null) {
-//                    Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
-//                    for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
-//                        List<MatItemBarcode> list = entry.getValue();
-//                        List<String> codes = new ArrayList<>();
-//                        for (MatItemBarcode zapllet : list) {
-//                            codes.add(zapllet.getItemBarcode());
-//                        }
-//
-//
-//                    }
-//                }
             }
-        } catch (Exception e) {
-            log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
-        }
         return 1;
     }
 
@@ -423,6 +401,7 @@
      * @param mesInApply
      * @return 1 鎴愬姛锛�-1 鍏ュ簱璁㈠崟閲嶅锛�0 閮ㄥ垎澶辫触锛�
      */
+    @Transactional
     public int inBoundOrder(MesInApply mesInApply, int check){
 
         // docType鏍规嵁搴撶被鍨嬬‘瀹�
@@ -461,7 +440,7 @@
             OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
             orderDetlPakin.setOrderId(orderPakin.getId());
             orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
-            orderDetlPakin.setAnfme(Double.valueOf(item.getAnfme()));
+            orderDetlPakin.setAnfme(item.getAnfme());
             orderDetlPakin.setQty(0.0);
             orderDetlPakin.setMatnr(mat.getMatnr());
             orderDetlPakin.setMaktx(mat.getMaktx());
@@ -483,6 +462,28 @@
             }
         }
 
+        // 鍛煎彨agv鎼繍
+        if (!StringUtils.isEmpty(mesInApply.getTaskNo())) {
+            TransTask transTask = new TransTask();
+            transTask.setTaskno(mesInApply.getTaskNo());
+            transTask.setTaskname(mesInApply.getTaskNo());
+            transTask.setOrderNo(mesInApply.getOrderNo());
+            transTask.setTransType(mesInApply.getTransType());
+            transTask.setCurProcess(mesInApply.getProductLineId());
+            transTask.setCurStationId(mesInApply.getStationId());
+            transTask.setNextStationId(WMS_TRANS_START_STATION_1);
+//            transTask.setItemno(mesInApply.get());
+//            transTask.setQty(mesInApply.getQty());
+            transTask.setProductLineId(mesInApply.getProductLineId());
+//            transTask.setItemBarcode(itemBarcode);
+            transTask.setDjNo(mesInApply.getDjNo());
+            transTask.setOperateType(1);
+            transTask.setAgvFactory(1);
+            JSONObject sendAgvTask = submitTask(transTask);
+            if (!"1".equals(sendAgvTask.getString("Success"))) {
+                log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触:{}", JSONObject.toJSONString(transTask));
+            }
+        }
 
 
 //        // TODO:鏄惁缁戝畾璐х墿鍜屾墭鐩�?
@@ -726,11 +727,32 @@
         List<Task> tasks = taskService.selectList(wrapper);
         if (tasks != null && !tasks.isEmpty()) {
             result.put("Success", "2");
-            result.put("Message", "浠诲姟閲嶅鍙戦��");
+            result.put("Message", "浠诲姟鍙烽噸澶嶅彂閫侊細" + transTask.getTaskno());
             return result;
         }
 
-        try {
+        // 涓嬪彂缁橰CS
+        RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
+        // 妯℃澘鍚�
+        rcsTaskSubmit.setTaskType("CS");
+        rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
+        rcsTaskSubmit.setInitPriority(10);  //榛樿10
+        List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
+        RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
+        startRoute.setSeq(0);
+        startRoute.setCode(transTask.getCurStationId());
+        startRoute.setOperation("COLLECT");
+        targetRouteList.add(startRoute);
+        RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
+        endRoute.setSeq(1);
+        endRoute.setCode(transTask.getNextStationId());
+        endRoute.setOperation("DELIVERY");
+        targetRouteList.add(endRoute);
+        rcsTaskSubmit.setTargetRoute(targetRouteList);
+
+        // 杞彂缁欐捣搴锋垨鍗庢檽RCS
+        RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
+        if (rcsReturn.getCode().equals("SUCCESS")) {
             int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
             Date now = new Date();
             Task task = new Task();
@@ -747,87 +769,30 @@
             task.setAppeUser(defaultUserId);
             task.setAppeTime(now);
             task.setTaskNo(transTask.getTaskno());
+            task.setBarcode(transTask.getDjNo()); // 鍒�鏋跺彿
             task.setMemo(JSONObject.toJSONString(transTask));
+            taskService.insert(task);
 
-            if (taskService.insert(task)) {
-                Mat mat = matService.selectByMatnr("emptyDj");
-                TaskDetl taskDetl = new TaskDetl();
-                taskDetl.setWrkNo(task.getWrkNo());
-                taskDetl.setIoTime(task.getIoTime());
-                taskDetl.setMatnr(mat.getMatnr());
-                taskDetl.setAnfme(0.0);
-                taskDetl.setStandby1(String.valueOf(transTask.getQty()));
-                taskDetl.setMaktx(mat.getMaktx());
-                taskDetl.setSpecs(mat.getSpecs());
-                taskDetl.setOrderNo(transTask.getOrderNo());
-                taskDetl.setModiUser(defaultUserId);
-                taskDetl.setModiTime(now);
-                taskDetl.setAppeUser(defaultUserId);
-                taskDetl.setAppeTime(now);
-                taskDetlService.insert(taskDetl);
+            Mat mat = matService.selectByMatnr("emptyDj");
+            TaskDetl taskDetl = new TaskDetl();
+            taskDetl.setWrkNo(task.getWrkNo());
+            taskDetl.setIoTime(task.getIoTime());
+            taskDetl.setMatnr(mat.getMatnr());
+            taskDetl.setAnfme(1.0);
+            taskDetl.setMaktx(mat.getMaktx());
+            taskDetl.setSpecs(mat.getSpecs());
+            taskDetl.setOrderNo(transTask.getOrderNo());
+            taskDetl.setModiUser(defaultUserId);
+            taskDetl.setModiTime(now);
+            taskDetl.setAppeUser(defaultUserId);
+            taskDetl.setAppeTime(now);
+            taskDetlService.insert(taskDetl);
+            result.put("Success", "1");
+            result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
 
-//                EntityWrapper<WaitPakin> wrapper1 = new EntityWrapper<>();
-//                wrapper1.eq("order_no", transTask.getTaskno())
-//                        .eq("matnr", mat.getMatnr())
-//                        .eq("anfme", transTask.getQty());
-//                WaitPakin waitPakin = waitPakinService.selectOne(wrapper1);
-//                if (waitPakin != null)
-//                {
-//                    TaskDetl taskDetl = new TaskDetl();
-//                    taskDetl.setWrkNo(task.getWrkNo());
-//                    taskDetl.setIoTime(task.getIoTime());
-//                    taskDetl.setMatnr(transTask.getItemno());
-//                taskDetl.setAnfme(Double.valueOf(transTask.getQty()));
-//                    taskDetl.setAnfme(0.0);
-//                    taskDetl.setStandby1(String.valueOf(transTask.getQty()));
-//                    taskDetl.setZpallet(waitPakin.getZpallet());
-//                    taskDetl.setMaktx(mat.getMaktx());
-//                    taskDetl.setSpecs(mat.getSpecs());
-//                    taskDetl.setOrderNo(transTask.getOrderNo());
-//                    taskDetl.setModiUser(defaultUserId);
-//                    taskDetl.setModiTime(now);
-//                    taskDetl.setAppeUser(defaultUserId);
-//                    taskDetl.setAppeTime(now);
-//                    taskDetlService.insert(taskDetl);
-//                }
-//                else {
-//                    result.put("Success", "2");
-//                    result.put("Message", "鎺ユ敹浠诲姟澶辫触");
-//                    // Throw
-//                }
-
-                // 涓嬪彂缁橰CS
-                RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
-                rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
-                rcsTaskSubmit.setInitPriority(10);  //榛樿10
-                List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
-                RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
-                startRoute.setSeq(0);
-                startRoute.setCode(transTask.getCurStationId());
-                startRoute.setOperation("COLLECT");
-                targetRouteList.add(startRoute);
-                RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
-                endRoute.setSeq(1);
-                endRoute.setCode(transTask.getNextStationId());
-                endRoute.setOperation("DELIVERY");
-                targetRouteList.add(endRoute);
-                rcsTaskSubmit.setTargetRoute(targetRouteList);
-
-                // 杞彂缁欐捣搴锋垨鍗庢檽RCS
-                int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
-                if (success == 1) {
-                    result.put("Success", "1");
-                    result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
-                } else {
-                    result.put("Success", "2");
-                    result.put("Message", "浠诲姟涓嬪彂缁橰CS澶辫触");
-                }
-            } else {
-                result.put("Success", "2");
-                result.put("Message", "鎺ユ敹浠诲姟澶辫触");
-            }
-        } catch (Exception e) {
-            log.error("涓嬪彂杩愯緭浠诲姟閿欎綅 - {}", transTask, e);
+        } else {
+            result.put("Success", "2");
+            result.put("Message", "浠诲姟涓嬪彂缁橰CS澶辫触");
         }
 
         return result;
@@ -1061,9 +1026,8 @@
             task.setMemo(JSONObject.toJSONString(transTask));
             taskService.updateById(task);
             // 杞彂缁欐捣搴锋垨鍗庢檽RCS
-            int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
-
-            if (success == 1) {
+            RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
+            if (rcsReturn.getCode().equals("SUCCESS")) {
                 flag = true;
             }
         } catch (Exception e) {
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 2c9a489..61a8b77 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -7,7 +7,11 @@
 import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.TransTask;
 import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.rcs.RcsReturn;
+import com.zy.asrs.entity.rcs.RcsTaskSubmit;
+import com.zy.asrs.entity.rcs.RcsTaskTargetRoute;
 import com.zy.asrs.enums.CommonEnum;
 import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.mapper.LocMastMapper;
@@ -19,6 +23,7 @@
 import com.zy.common.entity.Parameter;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.MesCombParam;
+import com.zy.common.model.StartupDto;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
@@ -114,6 +119,85 @@
     private BasStationService basStationService;
     @Autowired
     private BasContainerService basContainerService;
+
+    @Resource
+    private RcsService rcsService;
+
+    @Override
+    @Transactional
+    public R djReturn(String djNo) {
+        Task task = taskService.selectOne(new EntityWrapper<Task>().eq("barcode", djNo));
+        if(task == null) {
+            log.error("鍒�鏋跺彿锛歿}锛屼笉瀛樺湪浠诲姟锛�",djNo);
+            return R.parse("鍒�鏋跺彿锛�"+djNo+"涓嶅瓨鍦ㄤ换鍔�");
+        } else if(task.getWrkSts() == 305) {
+            task.setWrkSts(301L);
+            task.setModiTime(new Date());
+            task.setTaskNo(task.getTaskNo()+"-1"); // 鏇存柊浠诲姟鍙�
+            String sourceStaNo = task.getSourceStaNo();
+            task.setSourceStaNo(task.getStaNo());
+            task.setStaNo(sourceStaNo);
+
+            TransTask transTask = JSONObject.parseObject(task.getMemo(), TransTask.class);
+            transTask.setTaskno(task.getTaskNo());
+            transTask.setCurStationId(sourceStaNo);
+            transTask.setNextStationId(task.getStaNo());
+            if(transTask.getTransType().equals("06")) {
+                transTask.setTransType("01");
+            } else if(transTask.getTransType().equals("02")) {
+                transTask.setTransType("05");
+            } else{
+                log.error("鍒�鏋跺彿锛歿}锛岃繍杈撶被鍨嬫湁璇細{}",djNo,transTask.getTransType());
+                return R.parse("鍒�鏋跺彿锛�"+djNo+",杩愯緭绫诲瀷鏈夎锛�" + transTask.getTransType());
+            }
+            // 鏇存柊澶囨敞
+            task.setMemo(JSONObject.toJSONString(transTask));
+
+            // 涓嬪彂缁橰CS
+            RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
+            // 妯℃澘鍚�
+            rcsTaskSubmit.setTaskType("CS");
+            rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
+            rcsTaskSubmit.setInitPriority(10);  //榛樿10
+            List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
+            RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
+            startRoute.setSeq(0);
+            startRoute.setCode(transTask.getCurStationId());
+            startRoute.setOperation("COLLECT");
+            targetRouteList.add(startRoute);
+            RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
+            endRoute.setSeq(1);
+            endRoute.setCode(transTask.getNextStationId());
+            endRoute.setOperation("DELIVERY");
+            targetRouteList.add(endRoute);
+            rcsTaskSubmit.setTargetRoute(targetRouteList);
+
+            // 杞彂缁欐捣搴锋垨鍗庢檽RCS
+            RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
+            if (rcsReturn.getCode().equals("SUCCESS")) {
+                // 鏇存柊agv浠诲姟璁板綍
+                taskService.updateById(task);
+
+                // 鏇存柊鎺ラ┏浣嶇姸鎬�
+                BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getSourceStaNo()));
+                if(station.getLocSts().equals("F")) {
+                    station.setLocSts("R");
+                    station.setModiTime(new Date());
+                    basStationService.updateById(station);
+                } else {
+                    log.error("agv鍥炶皟end,鎺ラ┏鐐圭姸鎬佷笉涓篎,agv浠诲姟鍙凤細{},鐘舵�侊細{}",task.getTaskNo(),task.getWrkSts());
+                }
+            } else {
+                log.error("涓嬪彂rcs鎼繍鍛戒护澶辫触锛歿}",rcsReturn);
+                return R.parse("涓嬪彂rcs澶辫触锛�" + rcsReturn.getMessage());
+            }
+
+            return R.ok("RCS鍛戒护涓嬪彂鎴愬姛!");
+        }else {
+            log.error("鍒�鏋跺彿锛歿}锛屼换鍔$姸鎬佷笉瀵�:{}",djNo,task.getWrkSts());
+            return R.parse("鍒�鏋跺彿锛�"+djNo+",浠诲姟鐘舵�佷笉瀵癸細" + task.getWrkSts());
+        }
+    }
 
     @Override
     @Transactional
@@ -606,11 +690,12 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
-                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
-                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
-                }
+//                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
+//                }
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
+                waitPakin.setMemo("");
                 waitPakin.setBatch(detlDto.getBatch());
                 waitPakin.setZpallet(param.getBarcode());
                 waitPakin.setIoStatus("N");
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index baffd2c..66ed864 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.*;
@@ -39,6 +40,8 @@
     @Value("${mes.defaultUserId}")
     public long defaultUserId;
 
+    @Resource
+    private BasStationService basStationService;
 
     @Resource
     private MesService mesService;
@@ -155,6 +158,9 @@
 
     // region 娴峰悍RCS锛孉GV
 
+    @Resource
+    private ApiLogService apiLogService;
+
     /**
      * 2.1.2浠诲姟涓嬪彂鎺ュ彛
      * 鍘傚锛氭捣閲忋�佸崕鏅�
@@ -163,23 +169,47 @@
      * @param rcsFactory 1 娴峰悍锛�2 鍗庢檽锛�
      * @return
      */
-    public int submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
-        return 1;
+    public RcsReturn submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
+        RcsReturn rcsReturn = new RcsReturn();
+        boolean success = false;
+        String url = rcsFactory == 2 ? HX_URL : HIK_URL + "api/robot/controller/task/submit";
+        String response = "";
+        try {
+            response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
+            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
+                if ("SUCCESS".equals(rcsReturn.getCode())) {
+                    // 妯℃嫙杩斿洖
+//            rcsReturn.setCode("SUCCESS");
+//            JSONObject jsonObject = new JSONObject();
+//            jsonObject.put("robotTaskCode","2025121301");
+//            rcsReturn.setData(jsonObject);
+                    success = true;
 
-//        String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/robot/controller/task/submit";
-//        String response = sendPost(url, rcsTaskSubmit.toString());
-//        if (!StringUtils.isEmpty(response) && response.contains("code")){
-//            RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
-//            if("SUCCESS".equals(rcsReturn.getCode())) {
-//                JSONObject data = rcsReturn.getData();
-//                String robotTaskCode = data.getString("robotTaskCode");
-//                if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
-//                    return 1;
-//                }
-//            }
-//        }
-//
-//        return 0;
+                    log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
+                } else {
+                    log.error("鍛煎彨agv鎼繍澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
+                }
+            }
+        } catch (Exception e) {
+            log.error("鍛煎彨agv鎼繍寮傚父", e);
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "鍛煎彨agv鎼繍",
+                        url,
+                        null,
+                        "127.0.0.1",
+                        JSON.toJSONString(rcsTaskSubmit),
+                        response,
+                        success
+                );
+            } catch (Exception e) {
+                log.error("鍛煎彨agv鎼繍淇濆瓨鎺ュ彛鏃ュ織寮傚父", e);
+            }
+        }
+        return rcsReturn;
     }
 
     /**
@@ -192,7 +222,7 @@
     public int continueTask(RcsTaskContinue rcsTaskContinue, int rcsFactory){
 
         String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/robot/controller/task/extend/continue";
-        String response = sendPost(url, rcsTaskContinue.toString());
+        String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
         if (!StringUtils.isEmpty(response) && response.contains("code")){
             RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
             if("SUCCESS".equals(rcsReturn.getCode())) {
@@ -217,7 +247,7 @@
     public int cancelTask(RcsTaskCancel rcsTaskCancel, int rcsFactory){
 
         String url = rcsFactory == 2 ? HX_URL :HIK_URL  + "api/robot/controller/task/cancel";
-        String response = sendPost(url, rcsTaskCancel.toString());
+        String response = sendPost(url, JSONObject.toJSONString(rcsTaskCancel));
         if (!StringUtils.isEmpty(response) && response.contains("code")){
             RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
             if("SUCCESS".equals(rcsReturn.getCode())) {
@@ -242,7 +272,7 @@
     private int notifyEqpt(RcsEqptNotify rcsEqptNotify, int rcsFactory){
 
         String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/wcs/robot/eqpt/notify";
-        String response = sendPost(url, rcsEqptNotify.toString());
+        String response = sendPost(url, JSONObject.toJSONString(rcsEqptNotify));
         if (!StringUtils.isEmpty(response) && response.contains("code")){
             RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
             if("SUCCESS".equals(rcsReturn.getCode())) {
@@ -274,9 +304,43 @@
         // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
         String method = values.getString("method");
         String carrierType = values.getString("carrierType");
+        Date now = new Date();
 
         try {
-            if ("Q3".equals(carrierType) || "Q8".equals(carrierType)) {    //AGV
+            if (singleRobotCode.equals("14") || singleRobotCode.equals("15")) { // 涓ゅ彴CTU搴撴満鍣ㄤ汉缂栧彿
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("task_no", robotTaskCode));
+                if(wrkMast != null) {
+                    Integer ioType = wrkMast.getIoType();
+                    switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+                        case TASK_START: {
+                            if (ioType == 1 || ioType == 10 || ioType == 53) {
+                                wrkMast.setCrnStrTime(now);
+                                wrkMast.setModiTime(now);
+                                wrkMastService.updateById(wrkMast);
+                            } else if (ioType == 101 || ioType == 110 || ioType == 103) {
+
+                            } else {
+                                log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
+                            }
+                        }
+                        break;
+                        case TASK_END: {
+                            if (ioType == 1 || ioType == 10 || ioType == 53) {
+                                wrkMast.setWrkSts(4L);
+                                wrkMast.setCrnEndTime(now);
+                                wrkMast.setModiTime(now);
+                                wrkMastService.updateById(wrkMast);
+                            } else if (ioType == 101 || ioType == 110 || ioType == 103) {
+
+                            } else {
+                                log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
+                            }
+                        }
+                        break;
+                        default:
+                    }
+                }
+            } else { //AGV
                 EntityWrapper<Task> wrapper = new EntityWrapper<>();
                 wrapper.eq("task_no", robotTaskCode);
                 Task task = taskService.selectOne(wrapper);
@@ -292,6 +356,17 @@
 
                 switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
                     case TASK_START: {
+                        if(memo.getString("TransType").equals("05") || memo.getString("TransType").equals("01")) {
+                            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getSourceStaNo()));
+                            if(station.getLocSts().equals("R")) {
+                                station.setLocSts("O");
+                                station.setBarcode("");
+                                station.setModiTime(new Date());
+                                basStationService.updateById(station);
+                            } else {
+                                log.error("agv鍥炶皟start,鎺ラ┏鐐圭姸鎬佷笉涓篟,agv浠诲姟鍙凤細{},鐘舵�侊細{}",task.getTaskNo(),task.getWrkSts());
+                            }
+                        }
                         task.setWrkSts(302L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
                         task.setModiTime(new Date());
                         task.setModiUser(defaultUserId);
@@ -300,12 +375,28 @@
 //                    case TASK_OUT_BIN: {} break;
                     case TASK_END: {
                         // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                        task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                        if(memo.getString("TransType").equals("06") || memo.getString("TransType").equals("02")) {
+                            // 06涓嬪垁鏉ョ殑绌哄垁鏋堕渶瑕佸洖鍘伙紝02鏉ョ殑瑕佷笂鍒�05鐨勭┖鍒�鏋朵笂婊″悗闇�瑕佸洖鍘伙紝pda涓婂仛浠诲姟杞崲
+                            task.setWrkSts(305L); // 305.浠诲姟杞崲
+                            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getStaNo()));
+                            if(station.getLocSts().equals("S")) {
+                                station.setLocSts("F");
+                                station.setModiTime(new Date());
+                                basStationService.updateById(station);
+                            } else {
+                                log.error("agv鍥炶皟end,鎺ラ┏鐐圭姸鎬佷笉涓篠,agv浠诲姟鍙凤細{},鐘舵�侊細{}",task.getTaskNo(),task.getWrkSts());
+                            }
+                        } else {
+                            task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                        }
                         task.setModiTime(new Date());
                         task.setModiUser(defaultUserId);
                         taskService.updateById(task);
                         // 浠诲姟瀹屾垚
                         mesService.reporterTask(rcsReporterTask);
+
+                        // 鏇存柊鎺ラ┏浣嶇疆鐘舵��
+
 
 //                    EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
 //                    wapper2.eq("wrk_no", task.getWrkNo())
@@ -353,7 +444,7 @@
                         TransArrivalStation arrivalStation = new TransArrivalStation();
                         arrivalStation.setTaskno(robotTaskCode);
                         arrivalStation.setTaskname(memo.getString("taskName"));
-                        arrivalStation.setTuoPanId(taskDetl == null || taskDetl.getZpallet() == null ? "" : taskDetl.getZpallet());
+//                        arrivalStation.setTuoPanId(taskDetl == null || taskDetl.getZpallet() == null ? "" : taskDetl.getZpallet());
                         arrivalStation.setDaotype(memo.getString("TransType"));
                         arrivalStation.setProductLineId(memo.getString("ProductLineId"));
 //                        arrivalStation.setStationId(task.getStaNo());
@@ -379,53 +470,54 @@
                     } break;
                     default: {} break;
                 }
-            } else if ("CTU".equals(carrierType)) { //CTU
-                EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
-                wrapper.eq("task_no", robotTaskCode);
-                WrkMast task = wrkMastService.selectOne(wrapper);
-                if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
-                    rcsReturn.setCode("Err_RobotCodeNotMatch");
-                    rcsReturn.setMessage("");
-                    JSONObject data = new JSONObject();
-                    data.put("robotTaskCode", robotTaskCode);
-                    rcsReturn.setData(data);
-                    return rcsReturn;
-                }
-//                JSONObject memo = JSONObject.parseObject(task.getMemo());
-
-                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
-                    case TASK_START: {
-//                        task.setWrkSts(302L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+            }
+//            else if ("CTU".equals(carrierType)) { //CTU
+//                EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
+//                wrapper.eq("task_no", robotTaskCode);
+//                WrkMast task = wrkMastService.selectOne(wrapper);
+//                if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
+//                    rcsReturn.setCode("Err_RobotCodeNotMatch");
+//                    rcsReturn.setMessage("");
+//                    JSONObject data = new JSONObject();
+//                    data.put("robotTaskCode", robotTaskCode);
+//                    rcsReturn.setData(data);
+//                    return rcsReturn;
+//                }
+////                JSONObject memo = JSONObject.parseObject(task.getMemo());
+//
+//                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+//                    case TASK_START: {
+////                        task.setWrkSts(302L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+////                        task.setModiTime(new Date());
+////                        task.setModiUser(defaultUserId);
+////                        taskService.updateById(task);
+//                    } break;
+////                    case TASK_OUT_BIN: {} break;
+//                    case TASK_END: {
+//                        // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+//                        long wrkSts = task.getWrkSts(); // 1.鍏ュ簱锛�101.鍑哄簱锛�
+//                        if (task.getIoType() == 1) {
+//                            wrkSts = 4L;
+//                        } else if (task.getIoType() == 101) {
+//                            wrkSts = 14L;
+//                        }
+//
+//                        task.setWrkSts(wrkSts); // 4.鍏ュ簱瀹屾垚锛�14.宸插嚭搴撴湭纭锛�
 //                        task.setModiTime(new Date());
 //                        task.setModiUser(defaultUserId);
-//                        taskService.updateById(task);
-                    } break;
-//                    case TASK_OUT_BIN: {} break;
-                    case TASK_END: {
-                        // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                        long wrkSts = task.getWrkSts(); // 1.鍏ュ簱锛�101.鍑哄簱锛�
-                        if (task.getIoType() == 1) {
-                            wrkSts = 4L;
-                        } else if (task.getIoType() == 101) {
-                            wrkSts = 14L;
-                        }
-
-                        task.setWrkSts(wrkSts); // 4.鍏ュ簱瀹屾垚锛�14.宸插嚭搴撴湭纭锛�
-                        task.setModiTime(new Date());
-                        task.setModiUser(defaultUserId);
-                        wrkMastService.updateById(task);
-
-                        // TODO锛氫换鍔″畬鎴愯Е鍙戝嚭鍏ュ簱鍙樻洿鎿嶄綔
-
-
-//                        // 鍏ュ簱瀹屾垚
-//                        mesService.inFeedback(memo.getString("OrderNo"));
-//                        // 鍑哄簱瀹屾垚
-//                        mesService.outFeedback(memo.getString("OrderNo"));
-                    } break;
-                    default: {} break;
-                }
-            }
+//                        wrkMastService.updateById(task);
+//
+//                        // TODO锛氫换鍔″畬鎴愯Е鍙戝嚭鍏ュ簱鍙樻洿鎿嶄綔
+//
+//
+////                        // 鍏ュ簱瀹屾垚
+////                        mesService.inFeedback(memo.getString("OrderNo"));
+////                        // 鍑哄簱瀹屾垚
+////                        mesService.outFeedback(memo.getString("OrderNo"));
+//                    } break;
+//                    default: {} break;
+//                }
+//            }
 
             // 杩斿洖RCS
             rcsReturn.setCode("SUCCESS");
@@ -553,11 +645,15 @@
             log.info("sendPost - {} - {}", url, param);
             URL realUrl = new URL(url);
             URLConnection conn = realUrl.openConnection();
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");
-            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            conn.setRequestProperty("Accept-Charset", "utf-8");
-            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setRequestProperty("Content-Length", "<calculated when request is sent>");
+            conn.setRequestProperty("Host", "<calculated when request is sent>");
+            conn.setRequestProperty("Accept", "*/*");
+            conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
+            conn.setRequestProperty("Connection", "keep-alive");
+
+            conn.setRequestProperty("X-lr-request-id", String.valueOf(new Date().getTime()));
+            conn.setRequestProperty("X-lr-version", "4.3");
             conn.setConnectTimeout(5000);
             conn.setReadTimeout(5000);
             conn.setDoOutput(true);
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java
index 2c49ee8..191cb4e 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java
@@ -38,7 +38,7 @@
         }
         TaskLog taskLog = new TaskLog();
         BeanUtils.copyProperties(task, taskLog);
-        taskLog.setLogId(task.getId());
+//        taskLog.setLogId(task.getId());
 
         if (!this.insert(taskLog)) {
             throw new CoolException("浠诲姟鏃ュ織淇濆瓨澶辫触锛侊紒");
diff --git a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
deleted file mode 100644
index 698e864..0000000
--- a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.zy.asrs.task;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.service.*;
-import com.zy.asrs.task.handler.AutoLocMoveHandler;
-import com.zy.asrs.utils.OrderInAndOutUtil;
-import com.zy.common.properties.SlaveWmsParameterProperties;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-public class AutoLocMoveScheduler {
-
-
-    @Autowired
-    private WrkMastService wrkMastService;
-    @Autowired
-    private WorkService workService;
-    @Autowired
-    private AutoLocMoveHandler autoLocMoveHandler;
-    @Autowired
-    private BasCrnpService basCrnpService;
-    @Autowired
-    private ConfigService configService;
-    @Autowired
-    private SlaveWmsParameterProperties slaveWmsParameterProperties;
-    @Autowired
-    private OrderService orderService;
-    @Autowired
-    private OrderPakoutService orderPakoutService;
-    @Autowired
-    private OrderDetlService orderDetlService;
-    @Autowired
-    private AutoMoveService autoMoveService;
-
-    //瀹氭椂鍑哄簱   缁忓吀鍙屼几
-    @Scheduled(cron = "0/3 * * * * ? ")
-    public void locToLocAutoLocMove(){
-        if (slaveWmsParameterProperties.isAutoLocMoveBoolean()){
-            Config config = configService.selectConfigByCode("AutoLocMove");
-            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
-                return;
-            }
-            OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus();
-            if (!Cools.isEmpty(orderPakout)){
-//                autoMoveService.selectList()
-            }else {
-                orderPakout = orderPakoutService.selectOrderMoveStatusInitial();
-                if (Cools.isEmpty(orderPakout)){
-                    return;
-                }
-                orderPakout.setMoveStatus(2);
-                orderPakoutService.updateById(orderPakout);
-            }
-        }
-    }
-
-    //瀹氭椂鍑哄簱
-    @Scheduled(cron = "0/3 * * * * ? ")
-    public void locToLoc11(){
-        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
-            Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
-            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
-                return;
-            }
-            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
-            for (int crnNo = 1;crnNo < crnCount;crnNo++){
-                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
-                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
-                if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
-                    autoLocMoveHandler.start(crnNo,11);
-                }
-            }
-        }
-    }
-
-    //瀹氭椂鍏ュ簱
-    @Scheduled(cron = "0/3 * * * * ? ")
-    public void locToLoc111() {
-        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
-            Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
-            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
-                return;
-            }
-            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
-            for (int crnNo = 1;crnNo < crnCount;crnNo++){
-                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
-                if (basCrnp == null) {
-                    continue;
-                }
-                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
-                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
-                if (Cools.isEmpty(wrkMast)  && Cools.isEmpty(wrkMast1)){
-                    autoLocMoveHandler.start(crnNo,111);
-                }
-            }
-        }
-    }
-}
diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
deleted file mode 100644
index 498483b..0000000
--- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.zy.asrs.task;
-
-import com.core.common.Cools;
-import com.zy.asrs.task.handler.BareBoardHandler;
-import com.zy.common.properties.SlaveWmsParameterProperties;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.25
- * 骞垮痉瀹滅..............浠ヤ笅.............骞垮痉瀹滅.............鑷姩琛ョ┖鏉垮啀浼樺寲
- */
-@Component
-public class BareBoardScheduler {
-
-    @Autowired
-    private BareBoardHandler bareBoardHandler;
-    @Autowired
-    private ConfigService configService;
-    @Autowired
-    private SlaveWmsParameterProperties slaveWmsParameterProperties;
-
-    /*
-    * 鑷姩璋冪┖鏉垮嚭搴�
-    * */
-    @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
-        if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
-            Config config = configService.selectConfigByCode("AutomaticFillingBoard");
-            if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("true")){
-                for (Integer staNo : slaveWmsParameterProperties.getAutomaticFillingBoardStaNos()){
-                    bareBoardHandler.start(110,staNo,"D");
-                }
-            }
-        }
-    }
-}
diff --git a/src/main/java/com/zy/asrs/task/BlockScheduler.java b/src/main/java/com/zy/asrs/task/BlockScheduler.java
deleted file mode 100644
index 3c2ca15..0000000
--- a/src/main/java/com/zy/asrs/task/BlockScheduler.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.zy.asrs.task;
-
-import com.zy.asrs.service.RcsService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-@Slf4j
-@Component
-public class BlockScheduler {
-
-    @Resource
-    private RcsService rcsService;
-
-    /**
-     * 绠$悊灏侀攣鍖鸿姹�
-     *
-     */
-    @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
-//        rcsService.managerBlock();
-    }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
deleted file mode 100644
index d5c566b..0000000
--- a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.zy.asrs.task;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WorkService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.handler.CheckDeepHandler;
-import com.zy.asrs.utils.Utils;
-import com.zy.common.properties.SlaveProperties;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
-@Component
-@Slf4j
-public class CheckDeepScheduler {
-
-    @Value("${wcs-slave.doubleDeep}")
-    private boolean confirmDeep;
-    @Autowired
-    private LocDetlService locDetlService;
-    @Autowired
-    private LocMastService locMastService;
-    @Autowired
-    private WorkService workService;
-    @Autowired
-    private WrkMastService wrkMastService;
-    @Autowired
-    private SlaveProperties slaveProperties;
-
-    @Autowired
-    private CheckDeepHandler checkDeepHandler;
-
-    /**
-     * 灏嗕袱涓繁搴撲綅鍚堝苟涓烘繁娴呭簱浣�,鐗╂枡鍙风浉鍚岋紝婧愬簱浣嶅叆搴撴棩鏈熸棭浜庣洰鏍囧簱浣嶅搴旀繁搴撲綅鍏ュ簱鏃ユ湡锛屽簱浣嶇姸鎬侀兘涓篎
-     */
-//    @Scheduled(cron = "0/30 * * * * ?")
-    private void execute() throws ParseException {
-//        if (!confirmDeep) return;
-        if (true) return;
-
-        ReturnT<String> result = checkDeepHandler.start();
-        if (!result.isSuccess()) {
-            log.error("搴撲綅绉昏浆===>>娴呭簱浣嶇Щ杞埌娣卞簱浣嶅け璐�");
-        }
-    }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/JlerScheduler.java b/src/main/java/com/zy/asrs/task/JlerScheduler.java
new file mode 100644
index 0000000..2a32c88
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/JlerScheduler.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.handler.JlerHandler;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 娴庡崡浜屾満搴婂垁鍏峰簱鐩稿叧瀹氭椂浠诲姟
+ * @createDate 2025/11/18 14:18
+ */
+@Component
+public class JlerScheduler {
+
+    @Resource
+    private JlerHandler jlerHandler;
+
+    @Resource
+    private WrkMastService wrkMastService;
+
+    /**
+     * 璐х墿鍒拌揪鍏ュ簱鍙f帴椹充綅寮�濮嬪懠鍙枡绠辨満鍣ㄤ汉
+     */
+    @Scheduled(cron = "0/5 * * * * ? ")
+    private void callAgvToWarehouse() {
+
+        List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "Y").eq("wrk_sts", 2));
+        for (WrkMast wrkMast : wrkMastList) {
+            jlerHandler.callAgvToWarehouse(wrkMast);
+        }
+    }
+
+}
+
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
deleted file mode 100644
index d1f7212..0000000
--- a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.zy.asrs.task.handler;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.result.FindLocNoAttributeVo;
-import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WorkService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.model.StartupDto;
-import com.zy.common.service.CommonService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * Created by vincent on 2023/7/7
- */
-@Slf4j
-@Service
-public class AutoLocMoveHandler extends AbstractHandler<String> {
-    @Autowired
-    private CommonService commonService;
-    @Autowired
-    private LocMastService locMastService;
-    @Autowired
-    private LocDetlService locDetlService;
-    @Autowired
-    private WorkService workService;
-
-    @Transactional(isolation = Isolation.REPEATABLE_READ)
-    public ReturnT<String> start(Integer crnNo, Integer ioType) {
-        try {
-            //11  绌挎绉诲崟杈�
-            if (ioType==11){
-                for (int bay = 1;bay < 27;bay++){
-                    for (int lev = 1 ; lev <6 ; lev++){
-                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo);
-                        if (!Cools.isEmpty(locMasts) && locMasts.size()<4){
-                            for (LocMast locMast:locMasts){
-                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-//                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
-                                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
-
-                                StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 917 : 918, findLocNoAttributeVo, null);
-                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L);
-                            }
-                            return SUCCESS;
-                        }
-                    }
-                }
-            }else {//11  鍗曡竟绉荤┛姊�
-                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   鍗曡竟绉荤┛姊�
-                for (Map<String, Object> map : list) {
-                    String matnr = map.getOrDefault("matnr","").toString();//鐗╂枡鍙�
-                    String batch = map.getOrDefault("batch","").toString();//鎵瑰彿
-                    String grade = map.getOrDefault("brand","").toString();//绛夌骇
-                    int count = Integer.parseInt(map.get("count").toString());//鍗曡竟搴撴暟閲�
-                    if (count < 4) {
-                        continue;
-                    }
-
-                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
-                    for (LocDetl locDetl : locDetlList) {
-//                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
-                        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
-
-                        StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 901 : 932, findLocNoAttributeVo, null);
-                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
-                    }
-                }
-                return SUCCESS;
-            }
-        }catch (Exception e){
-            log.error("鑷姩绉诲簱鍑洪敊,鍫嗗灈鏈哄彿{}锛屽伐浣滅被鍨媨}",crnNo,ioType);
-        }
-        return SUCCESS;
-    }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
deleted file mode 100644
index f3dbcfd..0000000
--- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package com.zy.asrs.task.handler;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Cools;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.StaDesc;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.StaDescService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.model.enums.WorkNoType;
-import com.zy.common.service.CommonService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * Created by Monkey D. Luffy on 2023.10.25
- * 骞垮痉瀹滅..............浠ヤ笅.............骞垮痉瀹滅.............鑷姩琛ョ┖鏉垮啀浼樺寲
- */
-@Slf4j
-@Service
-@Transactional
-public class BareBoardHandler extends AbstractHandler<String> {
-
-    @Autowired
-    private WrkMastService wrkMastService;
-    @Autowired
-    private LocMastService locMastService;
-    @Autowired
-    private CommonService commonService;
-    @Autowired
-    private StaDescService staDescService;
-    @Autowired
-    private BasCrnpService basCrnpService;
-
-    public ReturnT<String> start(Integer ioType,Integer staNo,String locStsTarget) {
-        try {
-            if (wrkMastService.selectWrkMastBareBoardStaNo(ioType,staNo)!=0){
-                return null;
-            }
-            // 鑾峰彇宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
-            ArrayList<Integer> crns =new ArrayList<>();
-            List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("out_enable", "Y").eq("wrk_no", 0));
-            for (BasCrnp basCrnp : basCrnps){
-                crns.add(basCrnp.getCrnNo());
-            }
-            for (BasCrnp basCrnp : basCrnpService.selectList(new EntityWrapper<>())){
-                crns.add(basCrnp.getCrnNo());
-            }
-            if (Cools.isEmpty(crns) || crns.size()==0){
-                return null;
-            }
-
-            boolean sign = true;
-            for (Integer crnNo : crns){
-                sign = true;
-
-                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts",locStsTarget).eq("crn_no",crnNo));
-
-                if (Cools.isEmpty(locMast)) {
-//                    throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒");
-                    sign=false;
-                }
-                if (sign && !locMast.getLocSts().equals(locStsTarget)){
-//                    throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
-                    sign=false;
-                }
-                if (sign){
-                    // 鑾峰彇婧愮珯
-                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                            .eq("type_no", ioType)
-                            .eq("stn_no", staNo)
-                            .eq("crn_no", crnNo);
-                    StaDesc staDesc = staDescService.selectOne(wrapper);
-                    if (Cools.isEmpty(staDesc)){
-                        sign = false;
-                        continue;
-                    }
-                    Integer sourceStaNo = staDesc.getCrnStn();
-                    if (Cools.isEmpty(sourceStaNo)) {
-//                    throw new CoolException("妫�绱㈡簮绔欏け璐�");
-                        sign = false;
-                    }
-                    if (sign){
-                        Date now = new Date();
-                        // 淇濆瓨宸ヤ綔妗�
-                        WrkMast wrkMast = new WrkMast();
-                        wrkMast.setWrkNo(workNo);
-                        wrkMast.setIoTime(now);
-                        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵��
-                        wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
-                        wrkMast.setIoPri(10D);
-                        wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
-                        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
-                        wrkMast.setCrnNo(locMast.getCrnNo());
-                        wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
-                        wrkMast.setFullPlt(ioType.equals(110)? "N" : "Y"); // 婊℃澘锛歒
-                        wrkMast.setPicking("N"); // 鎷f枡
-                        wrkMast.setExitMk("N"); // 閫�鍑�
-                        wrkMast.setEmptyMk(ioType.equals(110)? "Y" : "N"); // 绌烘澘
-                        wrkMast.setLinkMis("N");
-                        wrkMast.setAppeUser(9999L);
-                        wrkMast.setAppeTime(now);
-                        wrkMast.setModiUser(9999L);
-                        wrkMast.setModiTime(now);
-                        boolean res = wrkMastService.insert(wrkMast);
-                        if (!res) {
-                            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-                        }
-                        // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
-                        if (locMast.getLocSts().equals(locStsTarget)){
-                            locMast.setLocSts("R");
-                            locMast.setModiUser(9999L);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
-                                throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
-                            }else {
-                                return SUCCESS;
-                            }
-                        }
-                    }
-                }
-            }
-            if (!sign){
-                log.error("鏈煡鍒板彲鍑哄簱鐨勭┖鏉匡紒锛侊紒");
-                return null;
-            }
-        }catch (Exception e){
-            log.error("寮傚父锛侊紒锛�"+e);
-            return null;
-        }
-        return SUCCESS;
-    }
-}
diff --git a/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java b/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java
deleted file mode 100644
index 9eb6b97..0000000
--- a/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java
+++ /dev/null
@@ -1,255 +0,0 @@
-package com.zy.asrs.task.handler;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.*;
-import com.zy.asrs.task.AbstractHandler;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.utils.Utils;
-import com.zy.common.properties.SlaveProperties;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-
-import java.util.List;
-
-/**
- * Created by vincent on 2020/7/6
- */
-@Service
-@Slf4j
-public class CheckDeepHandler extends AbstractHandler<String> {
-
-    @Value("${wcs-slave.doubleDeep}")
-    private boolean confirmDeep;
-    @Autowired
-    private LocDetlService locDetlService;
-    @Autowired
-    private LocMastService locMastService;
-    @Autowired
-    private WorkService workService;
-    @Autowired
-    private WrkMastService wrkMastService;
-    @Autowired
-    private BasCrnpService basCrnpService;
-    @Autowired
-    private SlaveProperties slaveProperties;
-
-    @Transactional
-    public synchronized ReturnT<String> start() {
-        try {
-            for (int crnNo = 1; crnNo < 3; crnNo++){
-                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-                        .eq("crn_no",crnNo)
-                        .last(" and wrk_sts in (2,3,4,11,12)")
-                );
-                if (wrkMasts.size() > 0) continue;
-
-                //鏆傚仠绉诲簱
-                BasCrnp crnp = basCrnpService.selectById(crnNo);
-                if(!Cools.isEmpty(crnp) && !Cools.isEmpty(crnp.getTankQty()) && crnp.getTankQty()==0){
-                    continue;
-                }
-
-                List<LocMast> locMasts = locMastService.queryShallowLocFMast(crnNo);
-                if (null == locMasts) continue;
-
-                for (LocMast sourceLoc : locMasts){
-                    String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
-                    LocMast destLoc = locMastService.selectById(deep);
-
-                    if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
-                        //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
-                        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
-                                .eq("source_loc_no", sourceLoc.getLocNo()));
-                        if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
-                                (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
-                            workService.locMove(sourceLoc.getLocNo(), deep, 1L);
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return FAIL.setMsg(e.getMessage());
-        }
-        return SUCCESS;
-    }
-
-    /**
-     * 閬嶅巻搴撳瓨涓紝娴呭簱浣嶇姸鎬丗锛屾繁搴撲綅鐘舵�丱鐨勬暟鎹紝鐢熸垚搴撲綅绉昏浆宸ヤ綔妗e皢娴呭簱浣嶇Щ杞埌瀵瑰簲娣卞簱浣嶄腑鍘�
-     */
-//    private void locMoveToDeep(int crnNo){
-//        if (!confirmDeep) return;
-//        List<LocMast> locMasts = locMastService.queryShallowLocFMast();
-//
-//
-//        if (null == locMasts) return;
-//
-//        for (LocMast sourceLoc : locMasts){
-//            String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
-//            LocMast destLoc = locMastService.selectById(deep);
-//
-//            if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
-//                //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
-//                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
-//                        .eq("source_loc_no", sourceLoc.getLocNo()));
-//                if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
-//                        (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
-//                    workService.locMove(sourceLoc.getLocNo(), deep, 1L);
-//                }
-//            }
-//        }
-//
-//    }
-
-//    @Transactional
-//    public synchronized ReturnT<String> start1() {
-//        try {
-//            for (int crnNo = 1; crnNo < 6; crnNo++){
-//                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-//                        .eq("crn_no",crnNo)
-//                        .last(" and wrk_sts in (2,3,4,11,12)")
-//                );
-//                if (wrkMasts.size() > 0) continue;
-//
-//                //鏆傚仠绉诲簱
-//                BasCrnp crnp = basCrnpService.selectById(crnNo);
-//                if(!Cools.isEmpty(crnp) && crnp.getOrigin()!=0){
-//                    continue;
-//                }
-//
-//                //閬嶅巻搴撳瓨涓紝娣辨祬搴撲綅鐘舵�侀兘涓篎锛岀墿鏂欎笉鐩稿悓锛屾垨鑰呮祬搴撲綅鍏ュ簱鏃ユ湡姣旀繁搴撲綅鏃╃殑搴撲綅锛屽仛搴撲綅绉昏浆绉诲埌鏂扮殑娣卞簱浣嶄腑鍘�
-//                boolean flag0 = false;
-//                List<LocMast> locMasts = locMastService.queryNeedMoveShallLoc(crnNo);
-//                for (LocMast locMast : locMasts) {
-//                    //澶氱瑪鏄庣粏鐨勪笉鍋氱Щ杞皟鏁�
-//                    List<LocDetl> shallowLocDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-//                            .eq("loc_no", locMast.getLocNo()));
-//                    String deepLoc = Utils.getDeepLoc(slaveProperties, locMast.getLocNo());
-//                    List<LocDetl> deepLocDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-//                            .eq("loc_no", deepLoc));
-//
-//                    if ((!Cools.isEmpty(shallowLocDetls) && shallowLocDetls.size()>1)
-//                        || (!Cools.isEmpty(deepLocDetls) && deepLocDetls.size()>1)) {
-//                        continue;
-//                    }
-//
-//                    LocMast targetLoc = locMastService.queryEmptyDeepLoc(crnNo);
-//                    if(!Cools.isEmpty(targetLoc)) {
-//                        workService.locMove(locMast.getLocNo(), targetLoc.getLocNo(), 1L);
-//                        log.info("娴呭簱浣嶇Щ杞埌娣卞簱浣�:鐢熸垚搴撲綅绉昏浆浠诲姟鎴愬姛[娴呭埌娣盷===>>" + locMast.getLocNo() + "---" + targetLoc.getLocNo());
-//                        flag0 = true;
-//                    }
-//                    break;
-//                }
-//                if(flag0) continue;
-//
-////                List<LocMast> ignoreLocs = new ArrayList<>();
-//                List<LocMast> allDeeps = locMastService.selectAllDeepLoc(crnNo);
-//                for (LocMast sourceDeep : allDeeps) {
-//
-//                    LocDetl sourceLoc = locDetlService.selectOne(new EntityWrapper<LocDetl>()
-//                            .eq("loc_no", sourceDeep.getLocNo()).orderBy("mat_no"));
-//                    if(Cools.isEmpty(sourceLoc)){
-//                        continue;
-//                    }
-//
-//                    boolean moveFlag = false;//姣忔鎵ц涓�绗�
-////                    //濡傛灉杩欎釜搴撲綅宸茬粡琚搷浣滆繃浜�,鐩存帴璺宠繃
-////                    Boolean flag = false;
-////                    for (LocMast ignoreLoc : ignoreLocs) {
-////                        if (ignoreLoc.getLocNo() == sourceDeep.getLocNo()) {
-////                            flag = true;
-////                            break;
-////                        }
-////                    }
-////                    if (flag) {
-////                        continue;
-////                    }
-//
-//                    List<LocMast> allDeepsWithCrnNo = locMastService.selectAllDeepLocWithCrnNo(sourceDeep.getCrnNo(),
-//                            sourceLoc.getMatNo(), sourceLoc.getItemBatch(), sourceLoc.getSpecs());
-//                    for (LocMast targetDeep : allDeepsWithCrnNo) {
-//                        if(targetDeep.getLocNo().equals(sourceDeep.getLocNo())){
-//                            continue;
-//                        }
-////                        LocDetl sourceLoc = locDetlService.selectOne(new EntityWrapper<LocDetl>()
-////                                .eq("loc_no", sourceDeep.getLocNo()));
-//
-//                        LocDetl targetLoc = locDetlService.selectOne(new EntityWrapper<LocDetl>()
-//                                .eq("loc_no", targetDeep.getLocNo()));
-//                        //澶氱瑪鏄庣粏鐨勪笉鍋氱Щ杞皟鏁�
-//                        List<LocDetl> sourceLocDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-//                                .eq("loc_no", sourceDeep.getLocNo()));
-//                        List<LocDetl> targetLocDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-//                                .eq("loc_no", targetDeep.getLocNo()));
-//
-//                        if (Cools.isEmpty(targetLoc)
-//                                || (!Cools.isEmpty(sourceLocDetls) && sourceLocDetls.size()>1)
-//                                || (!Cools.isEmpty(targetLocDetls) && targetLocDetls.size()>1)) {
-//                            continue;
-//                        }
-//
-//                        //鐗╂枡鍙风浉鍚岋紝婧愬簱浣嶅叆搴撴棩鏈熸棭浜庣洰鏍囧簱浣嶅搴旀繁搴撲綅鍏ュ簱鏃ユ湡锛屽簱浣嶇姸鎬侀兘涓篎
-//                        if (sourceLoc.getMatNo().equals(targetLoc.getMatNo())
-//                                && sourceLoc.getItemBatch().equals(targetLoc.getItemBatch())
-//                                && sourceLoc.getSpecs().equals(targetLoc.getSpecs())
-//                                && sourceLoc.getAppeTime().getTime() < targetLoc.getAppeTime().getTime()
-//                                && sourceDeep.getLocSts().equals("F") && targetDeep.getLocSts().equals("F")) {
-//
-////                    System.out.println("鎴愬姛: "+sourceDeep +"-----" +targetDeep);
-//                            String shallow = convertShallow(targetDeep.getLocNo());
-//                            LocMast shallowLoc = locMastService.selectById(shallow);
-//                            if(!Cools.isEmpty(shallowLoc) && shallowLoc.getLocSts().equals("O")) {
-//                                workService.locMove(sourceDeep.getLocNo(), shallow, 1L);
-//                                log.info("娣卞簱浣嶅悎骞跺畾鏃朵换鍔�:鐢熸垚搴撲綅绉昏浆浠诲姟鎴愬姛[娣卞埌娴匽===>>" + sourceDeep.getLocNo() + "---" + shallow);
-//                                moveFlag=true;
-////                                ignoreLocs.add(sourceDeep);
-////                                ignoreLocs.add(targetDeep);
-//                                break;
-//                            }
-//                        }
-//                    }
-//                    if(moveFlag) break;
-//                }
-//
-//            }
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//            return FAIL.setMsg(e.getMessage());
-//        }
-//        return SUCCESS;
-//    }
-
-    /**
-     * 灏嗘繁搴撲綅杞负瀵瑰簲娴呭簱浣�
-     * @param deep
-     * @return
-     */
-    private String convertShallow(String deep){
-        String shallLoc = "";
-        Integer mastInt = Integer.parseInt(deep.substring(0, 2));
-        if (mastInt % 2 == 0){
-            mastInt -= 1;
-        }else if (mastInt % 2 == 1){
-            mastInt += 1;
-        }
-        if (mastInt <10){
-            shallLoc = "0" + mastInt+ deep.substring(2,7);
-        }else {
-            shallLoc = mastInt+ deep.substring(2,7);
-        }
-        return shallLoc;
-    }
-
-}
diff --git a/src/main/java/com/zy/asrs/task/handler/JlerHandler.java b/src/main/java/com/zy/asrs/task/handler/JlerHandler.java
new file mode 100644
index 0000000..3c09955
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/JlerHandler.java
@@ -0,0 +1,70 @@
+package com.zy.asrs.task.handler;
+
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.rcs.RcsReturn;
+import com.zy.asrs.entity.rcs.RcsTaskSubmit;
+import com.zy.asrs.entity.rcs.RcsTaskTargetRoute;
+import com.zy.asrs.service.RcsService;
+import com.zy.asrs.service.WrkMastService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 娴庡崡浜屾満搴婂垁鍏峰簱鐩稿叧瀹氭椂浠诲姟
+ * @createDate 2025/12/10 14:25
+ */
+@Slf4j
+@Service
+public class JlerHandler {
+
+    @Resource
+    private WrkMastService wrkMastService;
+
+    @Resource
+    private RcsService rcsService;
+
+    @Transactional
+    public void callAgvToWarehouse(WrkMast wrkMast) {
+
+        // 涓嬪彂缁橰CS
+        RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
+        // 妯℃澘鍚�
+        rcsTaskSubmit.setTaskType("CTU1");
+        rcsTaskSubmit.setRobotTaskCode(String.valueOf(new Date().getTime()));
+        rcsTaskSubmit.setInitPriority(10);  //榛樿10
+        List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
+        RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
+        startRoute.setSeq(0);
+        startRoute.setCode("106");
+        startRoute.setOperation("COLLECT");
+        startRoute.setType("SITE");
+        targetRouteList.add(startRoute);
+        RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
+        endRoute.setSeq(1);
+        endRoute.setCode(wrkMast.getLocNo());
+        endRoute.setOperation("DELIVERY");
+        endRoute.setType("STORAGE");
+        targetRouteList.add(endRoute);
+        rcsTaskSubmit.setTargetRoute(targetRouteList);
+
+        // 杞彂缁欐捣搴锋垨鍗庢檽RCS
+        RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, 1);
+        if (rcsReturn.getCode().equals("SUCCESS")) {
+            wrkMast.setWrkSts(3L);
+            wrkMast.setModiTime(new Date());
+            wrkMast.setTaskNo(rcsTaskSubmit.getRobotTaskCode());
+            wrkMastService.updateById(wrkMast);
+            log.info("鍏ュ簱缁欐枡绠辨満鍣ㄤ汉鍙戦�佸懡浠ゆ垚鍔燂紝宸ヤ綔鍙凤細{}锛屼换鍔″彿锛歿}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
+        } else {
+            log.error("鍏ュ簱缁欐枡绠辨満鍣ㄤ汉鍙戦�佸懡浠ゅけ璐ワ紝宸ヤ綔鍙凤細{}锛屼换鍔″彿锛歿}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/common/config/LogAspect.java b/src/main/java/com/zy/common/config/LogAspect.java
index 533e920..2bb409f 100644
--- a/src/main/java/com/zy/common/config/LogAspect.java
+++ b/src/main/java/com/zy/common/config/LogAspect.java
@@ -22,7 +22,7 @@
 /**
  * Created by Administrator on 2019-07-09.
  */
-@Component
+//@Component
 @Aspect
 @Slf4j
 @Order(2)
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index c6630aa..415aa41 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -34,7 +34,7 @@
         } else {
             this.locType1 = 2; // 楂樺簱浣�
         }
-        log.info(JSON.toJSONString(this));
+//        log.info(JSON.toJSONString(this));
     }
 
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 405d9ba..563d1b5 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -168,21 +168,26 @@
 //        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
-        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
-        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
-        int workNo = dto.getWorkNo();
+//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
+//        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
+        // 鑾峰彇绌哄簱浣�
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").orderBy("lev1").orderBy("bay1").orderBy("row1"));
+        if (locMast == null) {
+            throw new CoolException("鏃犵┖搴撲綅锛�");
+        }
+        int workNo =commonService.getWorkNo(0);
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
-        wrkMast.setIoTime(new Date());
+        wrkMast.setIoTime(now);
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
         wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         wrkMast.setIoPri(13D); // 浼樺厛绾�
-        wrkMast.setCrnNo(dto.getCrnNo());
-        wrkMast.setSourceStaNo(dto.getSourceStaNo() + "");
-        wrkMast.setStaNo(dto.getStaNo() + "");
-        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setCrnNo(1);
+        wrkMast.setSourceStaNo("104");
+        wrkMast.setStaNo("106");
+        wrkMast.setLocNo(locMast.getLocNo());
         wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -213,7 +218,7 @@
         Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                 .eq("zpallet", barcode);
         WaitPakin setParam = new WaitPakin();
-        setParam.setLocNo(dto.getLocNo());
+        setParam.setLocNo(locMast.getLocNo());
         setParam.setIoStatus("Y");
         setParam.setModiTime(now);
         if (!waitPakinService.update(setParam, wrapper)) {
@@ -226,7 +231,6 @@
             throw new CoolException("鏇存柊婧愮珯澶辫触");
         }
         // 鏇存柊鐩爣搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){
             locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
             locMast.setModiTime(now);
@@ -234,8 +238,14 @@
                 throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
             }
         } else {
-            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+            throw new CoolException(locMast.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
+        StartupDto dto = new StartupDto();
+        dto.setWorkNo(workNo);
+        dto.setLocNo(locMast.getLocNo());
+        dto.setSourceStaNo(104);
+        dto.setStaNo(106);
+        dto.setCrnNo(1);
         return dto;
     }
 
@@ -244,9 +254,20 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+//
+//        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
 
-        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").orderBy("lev1").orderBy("bay1").orderBy("row1"));
+        if (locMast == null) {
+            throw new CoolException("鏃犵┖搴撲綅锛�");
+        }
+        StartupDto dto = new StartupDto();
+        dto.setWorkNo(commonService.getWorkNo(0));
+        dto.setCrnNo(1);
+        dto.setSourceStaNo(104);
+        dto.setStaNo(106);
+        dto.setLocNo(locMast.getLocNo());
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -280,7 +301,6 @@
             throw new CoolException("鏇存柊婧愮珯澶辫触");
         }
         // 鏇存柊鐩爣搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){
             locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
             locMast.setModiTime(new Date());
diff --git a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
index 1ad2cc1..27d83af 100644
--- a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
+++ b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -128,24 +128,24 @@
 
         if(expectedCheckModel != null && serverCheckModel != null){
             //鏍¢獙IP鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑IP娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙Mac鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑Mac鍦板潃娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙涓绘澘搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑涓绘澘搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
-
-            //鏍¢獙CPU搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑CPU搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
+//            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
+//                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑IP娌″湪鎺堟潈鑼冨洿鍐�");
+//            }
+//
+//            //鏍¢獙Mac鍦板潃
+//            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
+//                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑Mac鍦板潃娌″湪鎺堟潈鑼冨洿鍐�");
+//            }
+//
+//            //鏍¢獙涓绘澘搴忓垪鍙�
+//            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
+//                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑涓绘澘搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
+//            }
+//
+//            //鏍¢獙CPU搴忓垪鍙�
+//            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
+//                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑CPU搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
+//            }
         }else{
             throw new LicenseContentException("涓嶈兘鑾峰彇鏈嶅姟鍣ㄧ‖浠朵俊鎭�");
         }
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 99d99cc..89c0e53 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -84,29 +84,29 @@
 
                 LicenseVerify licenseVerify = new LicenseVerify();
                 //瀹夎璇佷功
-//                LicenseContent install = licenseVerify.install(param);
+                LicenseContent install = licenseVerify.install(param);
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞芥爣璁帮紝鎼滅储淇敼 ++++++++");
-                licenseTimer.setSystemSupport(true);
-                licenseTimer.setLicenseDays(9999);
-                return true;
+//                licenseTimer.setSystemSupport(true);
+//                licenseTimer.setLicenseDays(9999);
+//                return true;
 
-//                licenseTimer.setSystemSupport(install!=null);
-//
-//                if (install != null) {
-//                    Date start = new Date();
-//                    Date end = install.getNotAfter();
-//                    Long starTime = start.getTime();
-//                    Long endTime = end.getTime();
-//                    Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
-//                    int day = (int) (num / 24 / 60 / 60 / 1000);
-//                    licenseTimer.setLicenseDays(day);
-//                }
-//
-//
-//                return install != null;
+                licenseTimer.setSystemSupport(install!=null);
+
+                if (install != null) {
+                    Date start = new Date();
+                    Date end = install.getNotAfter();
+                    Long starTime = start.getTime();
+                    Long endTime = end.getTime();
+                    long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
+                    int day = (int) (num / 24 / 60 / 60 / 1000);
+                    licenseTimer.setLicenseDays(day);
+                }
+
+
+                return install != null;
             } catch (Exception e) {
                 return false;
             }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index d10f336..26c6780 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -131,7 +131,7 @@
 
 #娴峰悍瀵规帴
 hik:
-  url: http://127.0.0.1:8089/hik/
+  url: http://172.26.11.98:80/rcs/rtas/
 
 #鍗庢檽瀵规帴
 hx:
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 83c4cce..44c6d36 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -70,7 +70,7 @@
         select * from asr_wrk_mast
         where wrk_sts=5
         or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
-        or (wrk_sts=15 and dateadd(mi,3,crn_end_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
+        or (wrk_sts=15 and dateadd(mi,1,crn_end_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
         or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
         order by io_time,wrk_no asc
     </select>
diff --git a/src/main/webapp/static/css/main.min.css b/src/main/webapp/static/css/main.min.css
index 333fd54..6944d08 100644
--- a/src/main/webapp/static/css/main.min.css
+++ b/src/main/webapp/static/css/main.min.css
@@ -1 +1 @@
-@import url(https://fonts.googleapis.com/css?family=Homenaje);@import url(https://fonts.googleapis.com/css?family=Noto+Serif+JP);@-webkit-keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{height:100%}body{min-height:100%;font-family:Homenaje,sans-serif;letter-spacing:.15em;background-color:#111}@media all and (min-width:569px) and (max-width:1366px){body{font-size:14px;font-size:.875rem}}@media all and (max-width:568px){body{font-size:12px;font-size:.75rem}}body.is-opened-index{overflow:auto}body.is-picked{cursor:pointer}a{text-decoration:none}::-moz-selection{color:#fff;background:rgba(0,0,0,.5)}::selection{color:#fff;background:rgba(0,0,0,.5)}.l-contents{position:relative;z-index:10}.l-contents.is-fixed{position:fixed;top:0;right:0;left:0}.l-page--white{color:#fff}.l-page--white a{color:#fff}.l-page--white svg{fill:#fff}.l-page--black{color:#222}.l-page--black a{color:#222}.l-page--black svg{fill:#222}.c-btn-circle{width:60px;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin-top:5px;border-radius:50%}.c-btn-circle svg{width:30px;height:30px}.c-btn-circle--white{background-color:#fff}.c-btn-circle--white .path-fill{fill:#222}.c-btn-circle--black{background-color:#222}.c-btn-circle--black .path-fill{fill:#fff}.c-button{height:2em;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:1.25em;padding-left:1.25em;border-radius:1em;border-width:2px;border-style:solid}.c-button--white{border-color:#fff}.c-button--black{border-color:#222}.c-button__icon{display:block;margin-right:.7em}.c-button__icon--back{width:.3em;height:.3em;border-top:2px solid #fff;border-left:2px solid #fff;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.c-button__icon--white{border-color:#fff}.c-button__icon--black{border-color:#222}.c-button__label{font-weight:700}.c-button__label .js-split-str{display:inline-block}.c-button__icon{-webkit-transition-duration:.4s;transition-duration:.4s}.c-button:hover .c-button__icon{-webkit-transform:translateX(-5px) rotate(-45deg);transform:translateX(-5px) rotate(-45deg)}.c-button:hover .c-button__label .js-split-str{-webkit-animation-name:animateSsplashStr;animation-name:animateSsplashStr;-webkit-animation-duration:.6s;animation-duration:.6s}.c-button:hover .c-button__label .js-split-str:nth-of-type(1){-webkit-animation-delay:0s;animation-delay:0s}.c-button:hover .c-button__label .js-split-str:nth-of-type(2){-webkit-animation-delay:20ms;animation-delay:20ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(3){-webkit-animation-delay:40ms;animation-delay:40ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(4){-webkit-animation-delay:60ms;animation-delay:60ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(5){-webkit-animation-delay:80ms;animation-delay:80ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(6){-webkit-animation-delay:.1s;animation-delay:.1s}.c-button:hover .c-button__label .js-split-str:nth-of-type(7){-webkit-animation-delay:.12s;animation-delay:.12s}.c-button:hover .c-button__label .js-split-str:nth-of-type(8){-webkit-animation-delay:.14s;animation-delay:.14s}.c-button:hover .c-button__label .js-split-str:nth-of-type(9){-webkit-animation-delay:.16s;animation-delay:.16s}.c-button:hover .c-button__label .js-split-str:nth-of-type(10){-webkit-animation-delay:.18s;animation-delay:.18s}.c-button:hover .c-button__label .js-split-str:nth-of-type(11){-webkit-animation-delay:.2s;animation-delay:.2s}.c-button:hover .c-button__label .js-split-str:nth-of-type(12){-webkit-animation-delay:.22s;animation-delay:.22s}.c-button:hover .c-button__label .js-split-str:nth-of-type(13){-webkit-animation-delay:.24s;animation-delay:.24s}.c-button:hover .c-button__label .js-split-str:nth-of-type(14){-webkit-animation-delay:.26s;animation-delay:.26s}.c-button:hover .c-button__label .js-split-str:nth-of-type(15){-webkit-animation-delay:.28s;animation-delay:.28s}.c-button:hover .c-button__label .js-split-str:nth-of-type(16){-webkit-animation-delay:.3s;animation-delay:.3s}.c-button:hover .c-button__label .js-split-str:nth-of-type(17){-webkit-animation-delay:.32s;animation-delay:.32s}.c-button:hover .c-button__label .js-split-str:nth-of-type(18){-webkit-animation-delay:.34s;animation-delay:.34s}.c-button:hover .c-button__label .js-split-str:nth-of-type(19){-webkit-animation-delay:.36s;animation-delay:.36s}.c-button:hover .c-button__label .js-split-str:nth-of-type(20){-webkit-animation-delay:.38s;animation-delay:.38s}.c-button:hover .c-button__label .js-split-str:nth-of-type(21){-webkit-animation-delay:.4s;animation-delay:.4s}.c-button:hover .c-button__label .js-split-str:nth-of-type(22){-webkit-animation-delay:.42s;animation-delay:.42s}.c-button:hover .c-button__label .js-split-str:nth-of-type(23){-webkit-animation-delay:.44s;animation-delay:.44s}.c-button:hover .c-button__label .js-split-str:nth-of-type(24){-webkit-animation-delay:.46s;animation-delay:.46s}.c-button:hover .c-button__label .js-split-str:nth-of-type(25){-webkit-animation-delay:.48s;animation-delay:.48s}.c-button:hover .c-button__label .js-split-str:nth-of-type(26){-webkit-animation-delay:.5s;animation-delay:.5s}.c-button:hover .c-button__label .js-split-str:nth-of-type(27){-webkit-animation-delay:.52s;animation-delay:.52s}.c-button:hover .c-button__label .js-split-str:nth-of-type(28){-webkit-animation-delay:.54s;animation-delay:.54s}.c-button:hover .c-button__label .js-split-str:nth-of-type(29){-webkit-animation-delay:.56s;animation-delay:.56s}.c-button:hover .c-button__label .js-split-str:nth-of-type(30){-webkit-animation-delay:.58s;animation-delay:.58s}.c-text-link{display:inline-block;position:relative}.c-text-link__label{display:inline-block;position:relative;z-index:2}.c-text-link__bg{height:2px;display:block;position:absolute;top:50%;right:0;left:0}.c-text-link__bg--white{background-color:#fff}.c-text-link__bg--black{background-color:#222}@-webkit-keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@-webkit-keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}@keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}.c-text-link__label{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.c-text-link__bg{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-animation-name:closeTextLinkBar;animation-name:closeTextLinkBar;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.075,.82,.165,1);animation-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.c-text-link:hover .c-text-link__bg{-webkit-animation-name:openTextLinkBar;animation-name:openTextLinkBar}.p-badges{position:fixed;z-index:100;bottom:20px;right:20px}@media all and (max-width:568px){.p-badges{width:90px}}.p-badges img{width:100%}.p-canvas-webgl{position:fixed;z-index:1;top:0;left:0}.p-dummy-scroll{position:relative;z-index:1}.p-hold-button{width:60px;height:60px;opacity:0;position:fixed;z-index:10;pointer-events:none}.p-hold-button.is-pc{opacity:1;top:0;left:0}.p-hold-button.is-smartphone{cursor:pointer;bottom:35px;right:0;left:0;opacity:1;margin-right:auto;margin-left:auto}.p-hold-button__border{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute}.p-hold-button__border--out{width:60px;height:60px;top:0;left:0;border:1px solid #fff}.p-hold-button__border--in{width:54px;height:54px;top:3px;left:3px;border:1px solid #fff}.p-hold-button__label{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:2;mix-blend-mode:difference;padding-left:.15em}.p-hold-button__progress{width:54px;height:54px;overflow:hidden;position:absolute;top:3px;left:3px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.p-hold-button__progress-in{width:108px;height:54px;background-color:#fff;-webkit-transform:skewX(-45deg) translateX(50%);transform:skewX(-45deg) translateX(50%);-webkit-transform-origin:right bottom;transform-origin:right bottom}.p-hold-button__label{opacity:0;font-size:14px;font-size:.875rem}.p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.6);transform:rotate(45deg) scale(.6)}.p-hold-button.is-enabled{pointer-events:auto}.p-hold-button.is-shown .p-hold-button__label{opacity:1;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-shown .p-hold-button__border{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-shown .p-hold-button__border--out{-webkit-transition-delay:.1s;transition-delay:.1s}.p-hold-button.is-shown .p-hold-button__border--in{-webkit-transition-delay:.2s;transition-delay:.2s}.p-hold-button.is-shown .p-hold-button__progress{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__label{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-hidden .p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.8);transform:rotate(45deg) scale(.8);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__progress{opacity:0;-webkit-transform:rotate(45deg) scale(.5);transform:rotate(45deg) scale(.5);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-pressed .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1.12);transform:rotate(45deg) scale(1.12);-webkit-transition-delay:0s;transition-delay:0s}.p-hold-button.is-released .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-delay:0s;transition-delay:0s}@-webkit-keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}@keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}.p-introduction{width:100%;height:100vh;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.5;position:relative;z-index:10;color:#fff;text-align:center;letter-spacing:.2em}.p-introduction__wrap{position:absolute;right:0;bottom:0;left:0}.p-introduction__row{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__row.is-shown{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__row.is-shown:nth-of-type(1){-webkit-transition-delay:5s;transition-delay:5s}.p-introduction__row.is-shown:nth-of-type(2){-webkit-transition-delay:5.25s;transition-delay:5.25s}.p-introduction__row.is-shown:nth-of-type(3){-webkit-transition-delay:5.5s;transition-delay:5.5s}.p-introduction__row.is-shown:nth-of-type(4){-webkit-transition-delay:5.75s;transition-delay:5.75s}.p-introduction__row.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__links{margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.p-introduction__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8);margin:0 12px;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__link svg{width:18px}.p-introduction__link.is-shown{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__link.is-shown:nth-of-type(1){-webkit-transition-delay:5.6s;transition-delay:5.6s}.p-introduction__link.is-shown:nth-of-type(2){-webkit-transition-delay:5.7s;transition-delay:5.7s}.p-introduction__link.is-shown:nth-of-type(3){-webkit-transition-delay:5.8s;transition-delay:5.8s}.p-introduction__link.is-shown:nth-of-type(4){-webkit-transition-delay:5.9s;transition-delay:5.9s}.p-introduction__link.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__follow{width:15px;height:10vh;overflow:hidden;position:relative;margin:6vh auto 0;opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.p-introduction__follow.is-shown{opacity:1;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:3s;transition-delay:3s}.p-introduction__follow-in{width:1px;height:100%;position:absolute;top:0;background-color:#fff;-webkit-animation-name:loopFollow;animation-name:loopFollow;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.p-introduction__follow-in--1{left:0}.p-introduction__follow-in--2{left:50%;margin-left:-1px;-webkit-animation-delay:.3s;animation-delay:.3s}.p-introduction__follow-in--3{right:0;-webkit-animation-delay:.15s;animation-delay:.15s}.p-preloader{position:fixed;top:50%;left:50%;z-index:100;pointer-events:none}@media all and (min-width:569px){.p-preloader{width:60px;height:60px;margin-top:-30px;margin-left:-30px}}@media all and (max-width:568px){.p-preloader{width:30px;height:30px;margin-top:-15px;margin-left:-15px}}.p-preloader.is-hidden{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-preloader__box{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0;border-style:solid;-webkit-animation-name:rotatePreloaderBox;animation-name:rotatePreloaderBox;-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media all and (min-width:569px){.p-preloader__box{border-width:3px}}@media all and (max-width:568px){.p-preloader__box{border-width:2px}}.p-preloader__box--blank{border-color:#111}.p-preloader__box--white{border-color:#fff}.p-preloader__box--02{-webkit-animation-delay:1s;animation-delay:1s}.p-preloader__box--03{-webkit-animation-delay:2s;animation-delay:2s}@-webkit-keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}@keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}.p-config-menu{position:fixed;bottom:20px;right:20px;z-index:100}.p-sketch-index{max-width:1366px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;top:0;right:0;left:0;z-index:100000;margin-right:auto;margin-left:auto}@media all and (min-width:1025px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (max-width:568px){.p-sketch-index{padding-top:70px;padding-bottom:40px;padding-right:10px;padding-left:10px}}.p-sketch-index__item{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@media all and (min-width:1025px){.p-sketch-index__item{width:33.3%;margin-bottom:60px;padding-right:15px;padding-left:15px}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item{width:50%;margin-bottom:40px;padding-right:10px;padding-left:10px}}@media all and (max-width:568px){.p-sketch-index__item{width:100%;margin-bottom:30px;padding-right:10px;padding-left:10px}}.p-sketch-index__item-wrap{display:block}.p-sketch-index__item-thumb{width:100%;position:relative;margin-bottom:10px;padding-top:52.5%;background-color:#fff;background-size:cover}.p-sketch-index__item-thumb:after,.p-sketch-index__item-thumb:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0}.p-sketch-index__item-thumb:before{background-color:#fff}.p-sketch-index__item-thumb:after{background-color:rgba(0,0,0,.7)}.p-sketch-index__item-thumb-label{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:10;letter-spacing:.2em}@media all and (min-width:1025px){.p-sketch-index__item-thumb-label{font-size:24px;font-size:1.5rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-thumb-label{font-size:21px;font-size:1.3125rem}}@media all and (max-width:568px){.p-sketch-index__item-thumb-label{font-size:18px;font-size:1.125rem}}.p-sketch-index__item-title{letter-spacing:.1em}@media all and (min-width:1025px){.p-sketch-index__item-title{font-size:32px;font-size:2rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-title{font-size:28px;font-size:1.75rem}}@media all and (max-width:568px){.p-sketch-index__item-title{font-size:24px;font-size:1.5rem}}.p-sketch-index__item-title .js-split-str{display:inline-block}.p-sketch-index__item-date{margin-top:5px;font-size:12px;font-size:.75rem}.p-sketch-index__item-thumb{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-delay:.4s;transition-delay:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.p-sketch-index__item-thumb:before{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-thumb:after{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s}.p-sketch-index__item-thumb-label .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(1){-webkit-transition-delay:0s;transition-delay:0s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(2){-webkit-transition-delay:20ms;transition-delay:20ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(3){-webkit-transition-delay:40ms;transition-delay:40ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(4){-webkit-transition-delay:60ms;transition-delay:60ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(5){-webkit-transition-delay:80ms;transition-delay:80ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(6){-webkit-transition-delay:.1s;transition-delay:.1s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(7){-webkit-transition-delay:.12s;transition-delay:.12s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(8){-webkit-transition-delay:.14s;transition-delay:.14s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(9){-webkit-transition-delay:.16s;transition-delay:.16s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(10){-webkit-transition-delay:.18s;transition-delay:.18s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(11){-webkit-transition-delay:.2s;transition-delay:.2s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(12){-webkit-transition-delay:.22s;transition-delay:.22s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(13){-webkit-transition-delay:.24s;transition-delay:.24s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(14){-webkit-transition-delay:.26s;transition-delay:.26s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(15){-webkit-transition-delay:.28s;transition-delay:.28s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(16){-webkit-transition-delay:.3s;transition-delay:.3s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(17){-webkit-transition-delay:.32s;transition-delay:.32s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(18){-webkit-transition-delay:.34s;transition-delay:.34s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(19){-webkit-transition-delay:.36s;transition-delay:.36s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(20){-webkit-transition-delay:.38s;transition-delay:.38s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(21){-webkit-transition-delay:.4s;transition-delay:.4s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(22){-webkit-transition-delay:.42s;transition-delay:.42s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(23){-webkit-transition-delay:.44s;transition-delay:.44s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(24){-webkit-transition-delay:.46s;transition-delay:.46s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(25){-webkit-transition-delay:.48s;transition-delay:.48s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(26){-webkit-transition-delay:.5s;transition-delay:.5s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(27){-webkit-transition-delay:.52s;transition-delay:.52s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(28){-webkit-transition-delay:.54s;transition-delay:.54s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(29){-webkit-transition-delay:.56s;transition-delay:.56s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(30){-webkit-transition-delay:.58s;transition-delay:.58s}.p-sketch-index__item-title .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(1){-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(2){-webkit-transition-delay:.62s;transition-delay:.62s}.p-sketch-index__item-title .js-split-str:nth-of-type(3){-webkit-transition-delay:.64s;transition-delay:.64s}.p-sketch-index__item-title .js-split-str:nth-of-type(4){-webkit-transition-delay:.66s;transition-delay:.66s}.p-sketch-index__item-title .js-split-str:nth-of-type(5){-webkit-transition-delay:.68s;transition-delay:.68s}.p-sketch-index__item-title .js-split-str:nth-of-type(6){-webkit-transition-delay:.7s;transition-delay:.7s}.p-sketch-index__item-title .js-split-str:nth-of-type(7){-webkit-transition-delay:.72s;transition-delay:.72s}.p-sketch-index__item-title .js-split-str:nth-of-type(8){-webkit-transition-delay:.74s;transition-delay:.74s}.p-sketch-index__item-title .js-split-str:nth-of-type(9){-webkit-transition-delay:.76s;transition-delay:.76s}.p-sketch-index__item-title .js-split-str:nth-of-type(10){-webkit-transition-delay:.78s;transition-delay:.78s}.p-sketch-index__item-title .js-split-str:nth-of-type(11){-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item-title .js-split-str:nth-of-type(12){-webkit-transition-delay:.82s;transition-delay:.82s}.p-sketch-index__item-title .js-split-str:nth-of-type(13){-webkit-transition-delay:.84s;transition-delay:.84s}.p-sketch-index__item-title .js-split-str:nth-of-type(14){-webkit-transition-delay:.86s;transition-delay:.86s}.p-sketch-index__item-title .js-split-str:nth-of-type(15){-webkit-transition-delay:.88s;transition-delay:.88s}.p-sketch-index__item-title .js-split-str:nth-of-type(16){-webkit-transition-delay:.9s;transition-delay:.9s}.p-sketch-index__item-title .js-split-str:nth-of-type(17){-webkit-transition-delay:.92s;transition-delay:.92s}.p-sketch-index__item-title .js-split-str:nth-of-type(18){-webkit-transition-delay:.94s;transition-delay:.94s}.p-sketch-index__item-title .js-split-str:nth-of-type(19){-webkit-transition-delay:.96s;transition-delay:.96s}.p-sketch-index__item-title .js-split-str:nth-of-type(20){-webkit-transition-delay:.98s;transition-delay:.98s}.p-sketch-index__item-title .js-split-str:nth-of-type(21){-webkit-transition-delay:1s;transition-delay:1s}.p-sketch-index__item-title .js-split-str:nth-of-type(22){-webkit-transition-delay:1.02s;transition-delay:1.02s}.p-sketch-index__item-title .js-split-str:nth-of-type(23){-webkit-transition-delay:1.04s;transition-delay:1.04s}.p-sketch-index__item-title .js-split-str:nth-of-type(24){-webkit-transition-delay:1.06s;transition-delay:1.06s}.p-sketch-index__item-title .js-split-str:nth-of-type(25){-webkit-transition-delay:1.08s;transition-delay:1.08s}.p-sketch-index__item-title .js-split-str:nth-of-type(26){-webkit-transition-delay:1.1s;transition-delay:1.1s}.p-sketch-index__item-title .js-split-str:nth-of-type(27){-webkit-transition-delay:1.12s;transition-delay:1.12s}.p-sketch-index__item-title .js-split-str:nth-of-type(28){-webkit-transition-delay:1.14s;transition-delay:1.14s}.p-sketch-index__item-title .js-split-str:nth-of-type(29){-webkit-transition-delay:1.16s;transition-delay:1.16s}.p-sketch-index__item-title .js-split-str:nth-of-type(30){-webkit-transition-delay:1.18s;transition-delay:1.18s}.p-sketch-index__item-date{opacity:0;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb{-webkit-transform:scaleY(1);transform:scaleY(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb:before{opacity:0}.p-sketch-index__item.is-shown .p-sketch-index__item-title .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-date{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb:after{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb-label .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-outline{position:fixed;z-index:100;bottom:22px;left:20px}@media all and (max-width:568px){.p-sketch-outline{right:20px}}.p-sketch-outline__title{line-height:1;margin-top:0;margin-bottom:.075em;margin-left:-.05em;font-weight:100;letter-spacing:.05em}@media all and (min-width:1367px){.p-sketch-outline__title{font-size:80px}}@media all and (min-width:569px) and (max-width:1366px){.p-sketch-outline__title{font-size:6vw}}@media all and (max-width:568px){.p-sketch-outline__title{font-size:62.48px}}.p-sketch-outline__date{line-height:1;margin:0}.p-sketch-outline__description{line-height:1.5;margin:10px 0 0}.p-sketch-outline__assets{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:8px;margin-bottom:0}.p-sketch-outline__assets dd{margin:0}.p-sketch-outline__assets ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style-type:none;margin:0;padding:0}.p-sketch-outline__assets li{margin-left:12px}.p-utility-menu{position:fixed;z-index:100;top:25px;right:20px}.p-website-outline{position:fixed;z-index:100;top:20px;left:20px}.p-website-outline__title{margin:0 0 5px;font-size:18px;font-size:1.125rem}.p-website-outline__description{line-height:1.25;margin:0}.p-website-outline__links{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:15px}.p-website-outline__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:20px}.p-website-outline__link svg{width:18px}
+@-webkit-keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{height:100%}body{min-height:100%;font-family:Homenaje,sans-serif;letter-spacing:.15em;background-color:#111}@media all and (min-width:569px) and (max-width:1366px){body{font-size:14px;font-size:.875rem}}@media all and (max-width:568px){body{font-size:12px;font-size:.75rem}}body.is-opened-index{overflow:auto}body.is-picked{cursor:pointer}a{text-decoration:none}::-moz-selection{color:#fff;background:rgba(0,0,0,.5)}::selection{color:#fff;background:rgba(0,0,0,.5)}.l-contents{position:relative;z-index:10}.l-contents.is-fixed{position:fixed;top:0;right:0;left:0}.l-page--white{color:#fff}.l-page--white a{color:#fff}.l-page--white svg{fill:#fff}.l-page--black{color:#222}.l-page--black a{color:#222}.l-page--black svg{fill:#222}.c-btn-circle{width:60px;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin-top:5px;border-radius:50%}.c-btn-circle svg{width:30px;height:30px}.c-btn-circle--white{background-color:#fff}.c-btn-circle--white .path-fill{fill:#222}.c-btn-circle--black{background-color:#222}.c-btn-circle--black .path-fill{fill:#fff}.c-button{height:2em;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:1.25em;padding-left:1.25em;border-radius:1em;border-width:2px;border-style:solid}.c-button--white{border-color:#fff}.c-button--black{border-color:#222}.c-button__icon{display:block;margin-right:.7em}.c-button__icon--back{width:.3em;height:.3em;border-top:2px solid #fff;border-left:2px solid #fff;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.c-button__icon--white{border-color:#fff}.c-button__icon--black{border-color:#222}.c-button__label{font-weight:700}.c-button__label .js-split-str{display:inline-block}.c-button__icon{-webkit-transition-duration:.4s;transition-duration:.4s}.c-button:hover .c-button__icon{-webkit-transform:translateX(-5px) rotate(-45deg);transform:translateX(-5px) rotate(-45deg)}.c-button:hover .c-button__label .js-split-str{-webkit-animation-name:animateSsplashStr;animation-name:animateSsplashStr;-webkit-animation-duration:.6s;animation-duration:.6s}.c-button:hover .c-button__label .js-split-str:nth-of-type(1){-webkit-animation-delay:0s;animation-delay:0s}.c-button:hover .c-button__label .js-split-str:nth-of-type(2){-webkit-animation-delay:20ms;animation-delay:20ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(3){-webkit-animation-delay:40ms;animation-delay:40ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(4){-webkit-animation-delay:60ms;animation-delay:60ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(5){-webkit-animation-delay:80ms;animation-delay:80ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(6){-webkit-animation-delay:.1s;animation-delay:.1s}.c-button:hover .c-button__label .js-split-str:nth-of-type(7){-webkit-animation-delay:.12s;animation-delay:.12s}.c-button:hover .c-button__label .js-split-str:nth-of-type(8){-webkit-animation-delay:.14s;animation-delay:.14s}.c-button:hover .c-button__label .js-split-str:nth-of-type(9){-webkit-animation-delay:.16s;animation-delay:.16s}.c-button:hover .c-button__label .js-split-str:nth-of-type(10){-webkit-animation-delay:.18s;animation-delay:.18s}.c-button:hover .c-button__label .js-split-str:nth-of-type(11){-webkit-animation-delay:.2s;animation-delay:.2s}.c-button:hover .c-button__label .js-split-str:nth-of-type(12){-webkit-animation-delay:.22s;animation-delay:.22s}.c-button:hover .c-button__label .js-split-str:nth-of-type(13){-webkit-animation-delay:.24s;animation-delay:.24s}.c-button:hover .c-button__label .js-split-str:nth-of-type(14){-webkit-animation-delay:.26s;animation-delay:.26s}.c-button:hover .c-button__label .js-split-str:nth-of-type(15){-webkit-animation-delay:.28s;animation-delay:.28s}.c-button:hover .c-button__label .js-split-str:nth-of-type(16){-webkit-animation-delay:.3s;animation-delay:.3s}.c-button:hover .c-button__label .js-split-str:nth-of-type(17){-webkit-animation-delay:.32s;animation-delay:.32s}.c-button:hover .c-button__label .js-split-str:nth-of-type(18){-webkit-animation-delay:.34s;animation-delay:.34s}.c-button:hover .c-button__label .js-split-str:nth-of-type(19){-webkit-animation-delay:.36s;animation-delay:.36s}.c-button:hover .c-button__label .js-split-str:nth-of-type(20){-webkit-animation-delay:.38s;animation-delay:.38s}.c-button:hover .c-button__label .js-split-str:nth-of-type(21){-webkit-animation-delay:.4s;animation-delay:.4s}.c-button:hover .c-button__label .js-split-str:nth-of-type(22){-webkit-animation-delay:.42s;animation-delay:.42s}.c-button:hover .c-button__label .js-split-str:nth-of-type(23){-webkit-animation-delay:.44s;animation-delay:.44s}.c-button:hover .c-button__label .js-split-str:nth-of-type(24){-webkit-animation-delay:.46s;animation-delay:.46s}.c-button:hover .c-button__label .js-split-str:nth-of-type(25){-webkit-animation-delay:.48s;animation-delay:.48s}.c-button:hover .c-button__label .js-split-str:nth-of-type(26){-webkit-animation-delay:.5s;animation-delay:.5s}.c-button:hover .c-button__label .js-split-str:nth-of-type(27){-webkit-animation-delay:.52s;animation-delay:.52s}.c-button:hover .c-button__label .js-split-str:nth-of-type(28){-webkit-animation-delay:.54s;animation-delay:.54s}.c-button:hover .c-button__label .js-split-str:nth-of-type(29){-webkit-animation-delay:.56s;animation-delay:.56s}.c-button:hover .c-button__label .js-split-str:nth-of-type(30){-webkit-animation-delay:.58s;animation-delay:.58s}.c-text-link{display:inline-block;position:relative}.c-text-link__label{display:inline-block;position:relative;z-index:2}.c-text-link__bg{height:2px;display:block;position:absolute;top:50%;right:0;left:0}.c-text-link__bg--white{background-color:#fff}.c-text-link__bg--black{background-color:#222}@-webkit-keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@-webkit-keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}@keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}.c-text-link__label{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.c-text-link__bg{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-animation-name:closeTextLinkBar;animation-name:closeTextLinkBar;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.075,.82,.165,1);animation-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.c-text-link:hover .c-text-link__bg{-webkit-animation-name:openTextLinkBar;animation-name:openTextLinkBar}.p-badges{position:fixed;z-index:100;bottom:20px;right:20px}@media all and (max-width:568px){.p-badges{width:90px}}.p-badges img{width:100%}.p-canvas-webgl{position:fixed;z-index:1;top:0;left:0}.p-dummy-scroll{position:relative;z-index:1}.p-hold-button{width:60px;height:60px;opacity:0;position:fixed;z-index:10;pointer-events:none}.p-hold-button.is-pc{opacity:1;top:0;left:0}.p-hold-button.is-smartphone{cursor:pointer;bottom:35px;right:0;left:0;opacity:1;margin-right:auto;margin-left:auto}.p-hold-button__border{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute}.p-hold-button__border--out{width:60px;height:60px;top:0;left:0;border:1px solid #fff}.p-hold-button__border--in{width:54px;height:54px;top:3px;left:3px;border:1px solid #fff}.p-hold-button__label{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:2;mix-blend-mode:difference;padding-left:.15em}.p-hold-button__progress{width:54px;height:54px;overflow:hidden;position:absolute;top:3px;left:3px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.p-hold-button__progress-in{width:108px;height:54px;background-color:#fff;-webkit-transform:skewX(-45deg) translateX(50%);transform:skewX(-45deg) translateX(50%);-webkit-transform-origin:right bottom;transform-origin:right bottom}.p-hold-button__label{opacity:0;font-size:14px;font-size:.875rem}.p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.6);transform:rotate(45deg) scale(.6)}.p-hold-button.is-enabled{pointer-events:auto}.p-hold-button.is-shown .p-hold-button__label{opacity:1;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-shown .p-hold-button__border{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-shown .p-hold-button__border--out{-webkit-transition-delay:.1s;transition-delay:.1s}.p-hold-button.is-shown .p-hold-button__border--in{-webkit-transition-delay:.2s;transition-delay:.2s}.p-hold-button.is-shown .p-hold-button__progress{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__label{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-hidden .p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.8);transform:rotate(45deg) scale(.8);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__progress{opacity:0;-webkit-transform:rotate(45deg) scale(.5);transform:rotate(45deg) scale(.5);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-pressed .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1.12);transform:rotate(45deg) scale(1.12);-webkit-transition-delay:0s;transition-delay:0s}.p-hold-button.is-released .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-delay:0s;transition-delay:0s}@-webkit-keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}@keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}.p-introduction{width:100%;height:100vh;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.5;position:relative;z-index:10;color:#fff;text-align:center;letter-spacing:.2em}.p-introduction__wrap{position:absolute;right:0;bottom:0;left:0}.p-introduction__row{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__row.is-shown{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__row.is-shown:nth-of-type(1){-webkit-transition-delay:5s;transition-delay:5s}.p-introduction__row.is-shown:nth-of-type(2){-webkit-transition-delay:5.25s;transition-delay:5.25s}.p-introduction__row.is-shown:nth-of-type(3){-webkit-transition-delay:5.5s;transition-delay:5.5s}.p-introduction__row.is-shown:nth-of-type(4){-webkit-transition-delay:5.75s;transition-delay:5.75s}.p-introduction__row.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__links{margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.p-introduction__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8);margin:0 12px;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__link svg{width:18px}.p-introduction__link.is-shown{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__link.is-shown:nth-of-type(1){-webkit-transition-delay:5.6s;transition-delay:5.6s}.p-introduction__link.is-shown:nth-of-type(2){-webkit-transition-delay:5.7s;transition-delay:5.7s}.p-introduction__link.is-shown:nth-of-type(3){-webkit-transition-delay:5.8s;transition-delay:5.8s}.p-introduction__link.is-shown:nth-of-type(4){-webkit-transition-delay:5.9s;transition-delay:5.9s}.p-introduction__link.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__follow{width:15px;height:10vh;overflow:hidden;position:relative;margin:6vh auto 0;opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.p-introduction__follow.is-shown{opacity:1;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:3s;transition-delay:3s}.p-introduction__follow-in{width:1px;height:100%;position:absolute;top:0;background-color:#fff;-webkit-animation-name:loopFollow;animation-name:loopFollow;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.p-introduction__follow-in--1{left:0}.p-introduction__follow-in--2{left:50%;margin-left:-1px;-webkit-animation-delay:.3s;animation-delay:.3s}.p-introduction__follow-in--3{right:0;-webkit-animation-delay:.15s;animation-delay:.15s}.p-preloader{position:fixed;top:50%;left:50%;z-index:100;pointer-events:none}@media all and (min-width:569px){.p-preloader{width:60px;height:60px;margin-top:-30px;margin-left:-30px}}@media all and (max-width:568px){.p-preloader{width:30px;height:30px;margin-top:-15px;margin-left:-15px}}.p-preloader.is-hidden{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-preloader__box{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0;border-style:solid;-webkit-animation-name:rotatePreloaderBox;animation-name:rotatePreloaderBox;-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media all and (min-width:569px){.p-preloader__box{border-width:3px}}@media all and (max-width:568px){.p-preloader__box{border-width:2px}}.p-preloader__box--blank{border-color:#111}.p-preloader__box--white{border-color:#fff}.p-preloader__box--02{-webkit-animation-delay:1s;animation-delay:1s}.p-preloader__box--03{-webkit-animation-delay:2s;animation-delay:2s}@-webkit-keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}@keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}.p-config-menu{position:fixed;bottom:20px;right:20px;z-index:100}.p-sketch-index{max-width:1366px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;top:0;right:0;left:0;z-index:100000;margin-right:auto;margin-left:auto}@media all and (min-width:1025px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (max-width:568px){.p-sketch-index{padding-top:70px;padding-bottom:40px;padding-right:10px;padding-left:10px}}.p-sketch-index__item{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@media all and (min-width:1025px){.p-sketch-index__item{width:33.3%;margin-bottom:60px;padding-right:15px;padding-left:15px}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item{width:50%;margin-bottom:40px;padding-right:10px;padding-left:10px}}@media all and (max-width:568px){.p-sketch-index__item{width:100%;margin-bottom:30px;padding-right:10px;padding-left:10px}}.p-sketch-index__item-wrap{display:block}.p-sketch-index__item-thumb{width:100%;position:relative;margin-bottom:10px;padding-top:52.5%;background-color:#fff;background-size:cover}.p-sketch-index__item-thumb:after,.p-sketch-index__item-thumb:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0}.p-sketch-index__item-thumb:before{background-color:#fff}.p-sketch-index__item-thumb:after{background-color:rgba(0,0,0,.7)}.p-sketch-index__item-thumb-label{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:10;letter-spacing:.2em}@media all and (min-width:1025px){.p-sketch-index__item-thumb-label{font-size:24px;font-size:1.5rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-thumb-label{font-size:21px;font-size:1.3125rem}}@media all and (max-width:568px){.p-sketch-index__item-thumb-label{font-size:18px;font-size:1.125rem}}.p-sketch-index__item-title{letter-spacing:.1em}@media all and (min-width:1025px){.p-sketch-index__item-title{font-size:32px;font-size:2rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-title{font-size:28px;font-size:1.75rem}}@media all and (max-width:568px){.p-sketch-index__item-title{font-size:24px;font-size:1.5rem}}.p-sketch-index__item-title .js-split-str{display:inline-block}.p-sketch-index__item-date{margin-top:5px;font-size:12px;font-size:.75rem}.p-sketch-index__item-thumb{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-delay:.4s;transition-delay:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.p-sketch-index__item-thumb:before{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-thumb:after{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s}.p-sketch-index__item-thumb-label .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(1){-webkit-transition-delay:0s;transition-delay:0s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(2){-webkit-transition-delay:20ms;transition-delay:20ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(3){-webkit-transition-delay:40ms;transition-delay:40ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(4){-webkit-transition-delay:60ms;transition-delay:60ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(5){-webkit-transition-delay:80ms;transition-delay:80ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(6){-webkit-transition-delay:.1s;transition-delay:.1s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(7){-webkit-transition-delay:.12s;transition-delay:.12s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(8){-webkit-transition-delay:.14s;transition-delay:.14s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(9){-webkit-transition-delay:.16s;transition-delay:.16s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(10){-webkit-transition-delay:.18s;transition-delay:.18s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(11){-webkit-transition-delay:.2s;transition-delay:.2s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(12){-webkit-transition-delay:.22s;transition-delay:.22s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(13){-webkit-transition-delay:.24s;transition-delay:.24s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(14){-webkit-transition-delay:.26s;transition-delay:.26s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(15){-webkit-transition-delay:.28s;transition-delay:.28s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(16){-webkit-transition-delay:.3s;transition-delay:.3s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(17){-webkit-transition-delay:.32s;transition-delay:.32s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(18){-webkit-transition-delay:.34s;transition-delay:.34s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(19){-webkit-transition-delay:.36s;transition-delay:.36s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(20){-webkit-transition-delay:.38s;transition-delay:.38s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(21){-webkit-transition-delay:.4s;transition-delay:.4s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(22){-webkit-transition-delay:.42s;transition-delay:.42s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(23){-webkit-transition-delay:.44s;transition-delay:.44s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(24){-webkit-transition-delay:.46s;transition-delay:.46s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(25){-webkit-transition-delay:.48s;transition-delay:.48s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(26){-webkit-transition-delay:.5s;transition-delay:.5s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(27){-webkit-transition-delay:.52s;transition-delay:.52s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(28){-webkit-transition-delay:.54s;transition-delay:.54s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(29){-webkit-transition-delay:.56s;transition-delay:.56s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(30){-webkit-transition-delay:.58s;transition-delay:.58s}.p-sketch-index__item-title .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(1){-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(2){-webkit-transition-delay:.62s;transition-delay:.62s}.p-sketch-index__item-title .js-split-str:nth-of-type(3){-webkit-transition-delay:.64s;transition-delay:.64s}.p-sketch-index__item-title .js-split-str:nth-of-type(4){-webkit-transition-delay:.66s;transition-delay:.66s}.p-sketch-index__item-title .js-split-str:nth-of-type(5){-webkit-transition-delay:.68s;transition-delay:.68s}.p-sketch-index__item-title .js-split-str:nth-of-type(6){-webkit-transition-delay:.7s;transition-delay:.7s}.p-sketch-index__item-title .js-split-str:nth-of-type(7){-webkit-transition-delay:.72s;transition-delay:.72s}.p-sketch-index__item-title .js-split-str:nth-of-type(8){-webkit-transition-delay:.74s;transition-delay:.74s}.p-sketch-index__item-title .js-split-str:nth-of-type(9){-webkit-transition-delay:.76s;transition-delay:.76s}.p-sketch-index__item-title .js-split-str:nth-of-type(10){-webkit-transition-delay:.78s;transition-delay:.78s}.p-sketch-index__item-title .js-split-str:nth-of-type(11){-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item-title .js-split-str:nth-of-type(12){-webkit-transition-delay:.82s;transition-delay:.82s}.p-sketch-index__item-title .js-split-str:nth-of-type(13){-webkit-transition-delay:.84s;transition-delay:.84s}.p-sketch-index__item-title .js-split-str:nth-of-type(14){-webkit-transition-delay:.86s;transition-delay:.86s}.p-sketch-index__item-title .js-split-str:nth-of-type(15){-webkit-transition-delay:.88s;transition-delay:.88s}.p-sketch-index__item-title .js-split-str:nth-of-type(16){-webkit-transition-delay:.9s;transition-delay:.9s}.p-sketch-index__item-title .js-split-str:nth-of-type(17){-webkit-transition-delay:.92s;transition-delay:.92s}.p-sketch-index__item-title .js-split-str:nth-of-type(18){-webkit-transition-delay:.94s;transition-delay:.94s}.p-sketch-index__item-title .js-split-str:nth-of-type(19){-webkit-transition-delay:.96s;transition-delay:.96s}.p-sketch-index__item-title .js-split-str:nth-of-type(20){-webkit-transition-delay:.98s;transition-delay:.98s}.p-sketch-index__item-title .js-split-str:nth-of-type(21){-webkit-transition-delay:1s;transition-delay:1s}.p-sketch-index__item-title .js-split-str:nth-of-type(22){-webkit-transition-delay:1.02s;transition-delay:1.02s}.p-sketch-index__item-title .js-split-str:nth-of-type(23){-webkit-transition-delay:1.04s;transition-delay:1.04s}.p-sketch-index__item-title .js-split-str:nth-of-type(24){-webkit-transition-delay:1.06s;transition-delay:1.06s}.p-sketch-index__item-title .js-split-str:nth-of-type(25){-webkit-transition-delay:1.08s;transition-delay:1.08s}.p-sketch-index__item-title .js-split-str:nth-of-type(26){-webkit-transition-delay:1.1s;transition-delay:1.1s}.p-sketch-index__item-title .js-split-str:nth-of-type(27){-webkit-transition-delay:1.12s;transition-delay:1.12s}.p-sketch-index__item-title .js-split-str:nth-of-type(28){-webkit-transition-delay:1.14s;transition-delay:1.14s}.p-sketch-index__item-title .js-split-str:nth-of-type(29){-webkit-transition-delay:1.16s;transition-delay:1.16s}.p-sketch-index__item-title .js-split-str:nth-of-type(30){-webkit-transition-delay:1.18s;transition-delay:1.18s}.p-sketch-index__item-date{opacity:0;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb{-webkit-transform:scaleY(1);transform:scaleY(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb:before{opacity:0}.p-sketch-index__item.is-shown .p-sketch-index__item-title .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-date{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb:after{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb-label .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-outline{position:fixed;z-index:100;bottom:22px;left:20px}@media all and (max-width:568px){.p-sketch-outline{right:20px}}.p-sketch-outline__title{line-height:1;margin-top:0;margin-bottom:.075em;margin-left:-.05em;font-weight:100;letter-spacing:.05em}@media all and (min-width:1367px){.p-sketch-outline__title{font-size:80px}}@media all and (min-width:569px) and (max-width:1366px){.p-sketch-outline__title{font-size:6vw}}@media all and (max-width:568px){.p-sketch-outline__title{font-size:62.48px}}.p-sketch-outline__date{line-height:1;margin:0}.p-sketch-outline__description{line-height:1.5;margin:10px 0 0}.p-sketch-outline__assets{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:8px;margin-bottom:0}.p-sketch-outline__assets dd{margin:0}.p-sketch-outline__assets ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style-type:none;margin:0;padding:0}.p-sketch-outline__assets li{margin-left:12px}.p-utility-menu{position:fixed;z-index:100;top:25px;right:20px}.p-website-outline{position:fixed;z-index:100;top:20px;left:20px}.p-website-outline__title{margin:0 0 5px;font-size:18px;font-size:1.125rem}.p-website-outline__description{line-height:1.25;margin:0}.p-website-outline__links{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:15px}.p-website-outline__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:20px}.p-website-outline__link svg{width:18px}
diff --git a/src/main/webapp/static/js/basStation/basStation.js b/src/main/webapp/static/js/basStation/basStation.js
index 8a05d33..1eaa6be 100644
--- a/src/main/webapp/static/js/basStation/basStation.js
+++ b/src/main/webapp/static/js/basStation/basStation.js
@@ -23,14 +23,15 @@
         cols: [[
             {type: 'checkbox'}
             , {field: 'devNo', align: 'center', title: '绔欑偣鍙板彿'}
-            , {field: 'decDesc', align: 'center', title: '璁惧鎻忚堪'}
+            , {field: 'decDesc', align: 'center', title: '璁惧鎻忚堪',hide:true}
             , {field: 'area', align: 'center', title: '鍖哄煙'}
             , {field: 'locSts$', align: 'center', title: '鐘舵��'}
+            , {field: 'barcode', align: 'center', title: '鍒�鏋跺彿'}
             , {field: 'ioTime', align: 'center', title: '鍏ュ嚭搴撴椂闂�'}
             , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳'}
             , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿'}
-            , {field: 'appeUser$', align: 'center', title: '鍒涘缓鑰�'}
-            , {field: 'appeTime$', align: 'center', title: '娣诲姞鏃堕棿'}
+            , {field: 'appeUser$', align: 'center', title: '鍒涘缓鑰�',hide: true}
+            , {field: 'appeTime$', align: 'center', title: '娣诲姞鏃堕棿',hide: true}
             , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 120}
         ]],
         request: {
diff --git a/src/main/webapp/static/js/task/task.js b/src/main/webapp/static/js/task/task.js
index 3b86c71..a421a3b 100644
--- a/src/main/webapp/static/js/task/task.js
+++ b/src/main/webapp/static/js/task/task.js
@@ -22,20 +22,24 @@
         height: 'full-120',
         cols: [[
             {type: 'checkbox'}
-            , {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true, width: 105}
-            , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160}
+            , {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true}
+            , {field: 'taskNo', align: 'center', title: 'AGV浠诲姟鍙�', sort: true}
+            // , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160}
             , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', width: 150}
-            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150}
-            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80}
-            , {field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷'}
+            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150, hide: true}
+            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80, hide: true}
+            , {field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷', hide: true}
             , {field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈�', hide: true}
-            , {field: 'sourceStaNo$', align: 'center', title: '婧愮珯'}
-            , {field: 'staNo$', align: 'center', title: '鐩爣绔�', width: 120}
-            , {field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120}
-            , {field: 'locNo', align: 'center', title: '鐩爣搴撲綅', width: 120}
-            , {field: 'barcode', align: 'center', title: '鏉$爜', width: 110}
-            , {field: 'preHave', align: 'center', title: '鍏堝叆鍝�', hide: true}
-            , {field: 'takeNone', align: 'center', title: '绌烘搷浣�', hide: true}
+            , {field: 'sourceStaNo', align: 'center', title: '婧愮珯'}
+            , {field: 'staNo', align: 'center', title: '鐩爣绔�', width: 120}
+            // , {field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120}
+            // , {field: 'locNo', align: 'center', title: '鐩爣搴撲綅', width: 120}
+            , {field: 'barcode', align: 'center', title: '鍒�鏋跺彿', width: 110}
+            , {field: 'memo', align: 'center', title: '澶囨敞'}
+            // , {field: 'preHave', align: 'center', title: '鍏堝叆鍝�', hide: true}
+            // , {field: 'takeNone', align: 'center', title: '绌烘搷浣�', hide: true}
+            , {field: 'modiUser$', align: 'center', title: '鍒涘缓浜哄憳'}
+            , {field: 'appeTime$', align: 'center', title: '鍒涘缓鏃堕棿'}
             , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
             , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true, width: 160}
             , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 200}
diff --git a/src/main/webapp/static/js/taskLog/taskLog.js b/src/main/webapp/static/js/taskLog/taskLog.js
index 031c554..67c7dce 100644
--- a/src/main/webapp/static/js/taskLog/taskLog.js
+++ b/src/main/webapp/static/js/taskLog/taskLog.js
@@ -20,20 +20,27 @@
         toolbar: '#toolbar',
         cellMinWidth: 50,
         cols: [[
-            {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', event: 'wrkNo', sort: true}
-            , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160, sort: true}
-            , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', width: 160}
-            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 160}
-            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�'}
-            , {field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈哄彿'}
-            , {field: 'sourceStaNo$', align: 'center', title: '婧愮珯'}
-            , {field: 'staNo$', align: 'center', title: '鐩爣绔�'}
-            , {field: 'sourceLocNo$', align: 'center', title: '婧愬簱浣�'}
-            , {field: 'locNo$', align: 'center', title: '鐩爣搴撲綅'}
+            {field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true}
+            , {field: 'taskNo', align: 'center', title: 'AGV浠诲姟鍙�', sort: true}
+            // , {field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160}
+            , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', width: 150}
+            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150, hide: true}
+            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80, hide: true}
+            , {field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷', hide: true}
+            , {field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈�', hide: true}
+            , {field: 'sourceStaNo', align: 'center', title: '婧愮珯'}
+            , {field: 'staNo', align: 'center', title: '鐩爣绔�', width: 120}
+            // , {field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120}
+            // , {field: 'locNo', align: 'center', title: '鐩爣搴撲綅', width: 120}
+            , {field: 'barcode', align: 'center', title: '鍒�鏋跺彿', width: 110}
+            , {field: 'memo', align: 'center', title: '澶囨敞'}
+            // , {field: 'preHave', align: 'center', title: '鍏堝叆鍝�', hide: true}
+            // , {field: 'takeNone', align: 'center', title: '绌烘搷浣�', hide: true}
+            , {field: 'modiUser$', align: 'center', title: '鍒涘缓浜哄憳'}
+            , {field: 'appeTime$', align: 'center', title: '鍒涘缓鏃堕棿'}
             , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
-            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true}
-            , {field: 'barcode', align: 'center', title: '鏉$爜'}
-            , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true, width: 160}
+            , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 200}
         ]],
         request: {
             pageName: 'curr',

--
Gitblit v1.9.1