From 44c6df2e7b14b2126b0157b07803ac83047d7829 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 26 十二月 2025 16:20:20 +0800
Subject: [PATCH] #agv任务

---
 src/main/java/com/zy/asrs/mapper/TaskMapper.java            |    2 
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |    6 
 src/main/webapp/static/js/taskLog/taskLog.js                |   40 +-
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java       |    2 
 src/main/webapp/static/js/locCache/locCache.js              |   94 +++++--
 src/main/resources/mapper/TaskMapper.xml                    |   38 +++
 src/main/webapp/views/locCache/locCache.html                |  104 ++++++++
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java  |  100 ++++++++
 src/main/java/com/zy/asrs/enums/TaskStatusType.java         |   31 ++
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java |    7 
 src/main/webapp/views/taskLog/taskLog_detail.html           |  244 +++++--------------
 src/main/java/com/zy/asrs/task/WorkLogScheduler.java        |   22 +
 src/main/java/com/zy/asrs/controller/TaskLogController.java |    1 
 src/main/java/com/zy/asrs/service/TaskService.java          |    2 
 14 files changed, 454 insertions(+), 239 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TaskLogController.java b/src/main/java/com/zy/asrs/controller/TaskLogController.java
index a66de9f..d4910b7 100644
--- a/src/main/java/com/zy/asrs/controller/TaskLogController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskLogController.java
@@ -47,6 +47,7 @@
         if (!Cools.isEmpty(orderByField)) {
             wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
         }
+        wrapper.orderBy("appe_time",false);
         return R.ok(taskLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
diff --git a/src/main/java/com/zy/asrs/enums/TaskStatusType.java b/src/main/java/com/zy/asrs/enums/TaskStatusType.java
new file mode 100644
index 0000000..f77153f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/enums/TaskStatusType.java
@@ -0,0 +1,31 @@
+package com.zy.asrs.enums;
+
+/**
+ * 宸ヤ綔鐘舵�佹灇涓�
+ * 鏍规嵁WrkStaus琛ㄧ敓鎴愬搴旀灇涓句俊鎭�
+ */
+public enum TaskStatusType {
+
+    IN_START("1", "1.鐢熸垚鍏ュ簱ID"),
+    DEVICE_MOVE("2", "2.璁惧涓婅蛋"),
+    CRANE_IN_PROGRESS("3", "3.鍚婅溅鍏ュ簱涓�"),
+    INBOUND_COMPLETED("4", "4.鍏ュ簱瀹屾垚"),
+    INBOUND_ARCHIVED("5", "5.搴撳瓨鏇存柊瀹屾垚"),
+    DEVICE_EXIT("6", "6.璁惧涓婇��鍑�"),
+    OUT_START("11", "11.鐢熸垚鍑哄簱ID"),
+    CRANE_OUT_PROGRESS("12", "12.鍚婅溅鍑哄簱涓�"),
+    CRANE_EMPTY_OUT_ERROR("13", "13.鍚婅溅绌哄嚭搴撻敊璇�"),
+    OUTBOUND_COMPLETED("14", "14.宸插嚭搴撴湭纭"),
+    OUTBOUND_ARCHIVED("15", "15.鍑哄簱鏇存柊瀹屾垚"),
+
+    ;
+
+    public Long type;
+    public String desc;
+
+    TaskStatusType(String type, String desc) {
+        this.type = Long.valueOf(type);
+        this.desc = desc;
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/TaskMapper.java b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
index 4fd8345..06a5c97 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
@@ -12,4 +12,6 @@
 public interface TaskMapper extends BaseMapper<Task> {
 
     List<Task> selectToBeCompleteData();
+
+    List<Task> selectToBeHistoryData();
 }
diff --git a/src/main/java/com/zy/asrs/service/TaskService.java b/src/main/java/com/zy/asrs/service/TaskService.java
index 3caf9c7..c66067d 100644
--- a/src/main/java/com/zy/asrs/service/TaskService.java
+++ b/src/main/java/com/zy/asrs/service/TaskService.java
@@ -14,4 +14,6 @@
     void pickWrkMast(String workNo, Long userId);
 
     List<Task> selectToBeCompleteData();
+
+    List<Task> selectToBeHistoryData();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 2e3f2f7..cefed58 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -48,7 +48,7 @@
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
         // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
+        if (wrkMast.getIoType() < 100){
             wrkMast.setWrkSts(4L);
             // 鍑哄簱
         } else if (wrkMast.getWrkSts() > 10) {
@@ -231,4 +231,9 @@
         }
     }
 
+    @Override
+    public List<Task> selectToBeHistoryData() {
+        return this.baseMapper.selectToBeHistoryData();
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index 01a611d..09d8ce2 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,6 +1,8 @@
 package com.zy.asrs.task;
 
+import com.zy.asrs.entity.Task;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.TaskService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WorkLogHandler;
@@ -23,6 +25,11 @@
     @Autowired
     private WrkMastService wrkMastService;
 
+
+    @Autowired
+    private TaskService taskService;
+
+
     @Scheduled(cron = "0/3 * * * * ? ")
     private void execute() {
         List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
@@ -37,4 +44,19 @@
         }
     }
 
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void executeTask(){
+        List<Task> taskList = taskService.selectToBeHistoryData();
+        if (taskList.isEmpty()) {
+            return;
+        }
+        for (Task task : taskList) {
+            ReturnT<String> result = workLogHandler.AgvStart(task);
+            if (!result.isSuccess()) {
+                log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", task.getWrkNo());
+            }
+        }
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index abaaf89..42f11d2 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -49,7 +49,7 @@
         }
     }
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     private void executeTask() {
         List<Task> wrkMasts = taskService.selectToBeCompleteData();
         if (wrkMasts.isEmpty()) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 173d232..5c245e6 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,13 +2,13 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.enums.TaskStatusType;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -40,6 +40,15 @@
     private OrderPakinService orderPakinService;
     @Autowired
     private OrderPakoutService orderPakoutService;
+
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskLogService taskLogService;
+    @Autowired
+    private TaskDetlService taskDetlService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
 
     @Transactional
     public ReturnT<String> start(WrkMast wrkMast) {
@@ -125,4 +134,89 @@
         return SUCCESS;
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public ReturnT<String> AgvStart(Task task) {
+        try {
+            List<TaskDetl> taskDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
+            // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+            if (!Cools.isEmpty(taskDetls)) {
+                Iterator<TaskDetl> iterator = taskDetls.iterator();
+
+            }
+
+            // 鍏ュ簱 --------------------------------------------------------------------------------
+            if (task.getWrkSts().equals(TaskStatusType.INBOUND_ARCHIVED.type)) {
+                // 鍏ㄦ澘鍏ュ簱
+                if (task.getIoType() == 1) {
+                    // 鍏ュ簱閫氱煡鍗�
+                    if (!Cools.isEmpty(task.getBarcode())) {
+                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
+//                        if (!waitPakinLogService.save(task.getBarcode())) {
+////                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
+//                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", task.getBarcode()))) {
+////                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+                    }
+//                    // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
+//                    if (!Cools.isEmpty(wrkDetls)) {
+//                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
+//                            exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                    }
+                    // 鎷f枡鍐嶅叆搴�
+                } else if (task.getIoType() == 53) {
+//                    if (!Cools.isEmpty(wrkDetls)) {
+//                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+//                            exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                    }
+                }
+
+                // 鍑哄簱 --------------------------------------------------------------------------------
+            } else if (task.getWrkSts().equals(TaskStatusType.OUTBOUND_ARCHIVED.type)) {
+//                if (!Cools.isEmpty(wrkDetls)) {
+//                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+//                        exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                    }
+//                }
+            }
+
+            TaskLog taskLog = new TaskLog();
+            BeanUtils.copyProperties(task, taskLog);
+            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+            if (!taskLogService.insert(taskLog)) {
+                exceptionHandle("淇濆瓨AGV宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+            }
+
+            // 鍒犻櫎宸ヤ綔涓绘。
+            if (!taskService.deleteById(task)) {
+                exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", task.getWrkNo());
+            }
+            List<TaskDetl> taskDetls2 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
+            for (TaskDetl taskDetl :taskDetls2){
+                TaskDetlLog taskDetlLog = new TaskDetlLog();
+                BeanUtils.copyProperties(taskDetl, taskDetlLog);
+                taskDetlLog.setTaskID(taskLog.getId());
+                taskDetlLog.setId(null);
+                // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+                if (!taskDetlLogService.insert(taskDetlLog)) {
+                    exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+                }
+                // 鍒犻櫎宸ヤ綔鏄庣粏妗�
+                if (!taskDetlService.deleteById(taskDetl)) {
+                    exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", task.getWrkNo());
+                }
+            }
+
+
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 5fccc17..2cb75ba 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -651,11 +651,11 @@
         if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
             throw new CoolException("褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
         }
-        List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-        if (Objects.isNull(apallet)) {
+        List<TaskDetl> taskDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("task_id", wrkMast.getId()));
+        if (Objects.isNull(taskDetls)) {
             throw new CoolException("鏁版嵁閿欒锛氱粍鎵樻暟鎹笉瀛樺湪锛侊紒");
         }
-        apallet.forEach(pakin -> {
+        taskDetls.forEach(pakin -> {
             LocCacheDetl detl = new LocCacheDetl();
             BeanUtils.copyProperties(pakin, detl);
             detl.setBarcode(pakin.getBarcode())
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 2de7f8d..387e901 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -2,9 +2,45 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.asrs.mapper.TaskMapper">
 
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Task">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="wrk_no" property="wrkNo" jdbcType="INTEGER"/>
+        <result column="io_time" property="ioTime" jdbcType="TIMESTAMP"/>
+        <result column="wrk_sts" property="wrkSts" jdbcType="BIGINT"/>
+        <result column="io_type" property="ioType" jdbcType="INTEGER"/>
+        <result column="task_type" property="taskType" jdbcType="VARCHAR"/>
+        <result column="io_pri" property="ioPri" jdbcType="DOUBLE"/>
+        <result column="crn_no" property="crnNo" jdbcType="INTEGER"/>
+        <result column="source_sta_no" property="sourceStaNo" jdbcType="VARCHAR"/>
+        <result column="sta_no" property="staNo" jdbcType="VARCHAR"/>
+        <result column="source_loc_no" property="sourceLocNo" jdbcType="VARCHAR"/>
+        <result column="loc_no" property="locNo" jdbcType="VARCHAR"/>
+        <result column="full_plt" property="fullPlt" jdbcType="VARCHAR"/>
+        <result column="picking" property="picking" jdbcType="VARCHAR"/>
+        <result column="exit_mk" property="exitMk" jdbcType="VARCHAR"/>
+        <result column="empty_mk" property="emptyMk" jdbcType="VARCHAR"/>
+        <result column="link_mis" property="linkMis" jdbcType="VARCHAR"/>
+        <result column="barcode" property="barcode" jdbcType="VARCHAR"/>
+        <result column="appe_user" property="appeUser" jdbcType="BIGINT"/>
+        <result column="appe_time" property="appeTime" jdbcType="TIMESTAMP"/>
+        <result column="modi_user" property="modiUser" jdbcType="BIGINT"/>
+        <result column="modi_time" property="modiTime" jdbcType="TIMESTAMP"/>
+        <result column="error_time" property="errorTime" jdbcType="TIMESTAMP"/>
+        <result column="upd_mk" property="updMk" jdbcType="VARCHAR"/>
 
-    <select id="selectToBeCompleteData" resultType="com.zy.asrs.entity.Task">
+
+
+    </resultMap>
+
+
+    <select id="selectToBeCompleteData" resultMap="BaseResultMap">
         select * from agv_task where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
     </select>
 
+
+    <select id="selectToBeHistoryData" resultMap="BaseResultMap">
+        select * from agv_task
+        where wrk_sts=5 or wrk_sts=15
+        order by io_time,wrk_no asc
+    </select>
 </mapper>
diff --git a/src/main/webapp/static/js/locCache/locCache.js b/src/main/webapp/static/js/locCache/locCache.js
index 938cf5c..e9f2228 100644
--- a/src/main/webapp/static/js/locCache/locCache.js
+++ b/src/main/webapp/static/js/locCache/locCache.js
@@ -12,7 +12,7 @@
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#locCache',
-        headers: {token: localStorage.getItem('token')},
+        headers: { token: localStorage.getItem('token') },
         url: baseUrl + '/locCache/list/auth',
         page: true,
         limit: 15,
@@ -20,23 +20,23 @@
         toolbar: '#toolbar',
         cellMinWidth: 80,
         height: 'full-120',
-        cols: [[{type: 'checkbox'}, {field: 'locNo', align: 'center', title: '搴撲綅鍙�', width: 120}
-            , {field: 'barcode', align: 'center', title: '鎵樼洏鐮�'}
-            , {field: 'areaName', align: 'center', title: '搴撳尯鍚嶇О'}
+        cols: [[{ type: 'checkbox' }, { field: 'locNo', align: 'center', title: '搴撲綅鍙�', width: 120 }
+            , { field: 'barcode', align: 'center', title: '鎵樼洏鐮�' }
+            , { field: 'areaName', align: 'center', title: '搴撳尯鍚嶇О' }
             // , {field: 'whsType$', align: 'center', title: '搴撲綅绫诲瀷'}
-            , {field: 'locSts', align: 'center', title: '搴撲綅鐘舵��'}
-            , {field: 'row1', align: 'center', title: '鎺�'}
-            , {field: 'bay1', align: 'center', title: '鍒�'}
-            , {field: 'lev1', align: 'center', title: '灞�'}
+            , { field: 'locSts', align: 'center', title: '搴撲綅鐘舵��' }
+            , { field: 'row1', align: 'center', title: '鎺�' }
+            , { field: 'bay1', align: 'center', title: '鍒�' }
+            , { field: 'lev1', align: 'center', title: '灞�' }
             // , {field: 'locType', align: 'center', title: '搴撲綅绫诲瀷'}
-            , {field: 'sort', align: 'center', title: '浼樺厛绾�'}
-            , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳'}
-            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿'}
-            , {field: 'appeUser$', align: 'center', title: '鍒涘缓鑰�'}
-            , {field: 'appeTime$', align: 'center', title: '娣诲姞鏃堕棿'}
-            , {field: 'frozen', align: 'center', title: '鏄惁鍐荤粨,0.鏈喕缁擄紝1.宸插喕缁�', hide: true}
-            , {field: 'frozenMemo', align: 'center', title: '鍐荤粨澶囨敞', hide: true}
-            , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}]
+            , { field: 'sort', align: 'center', title: '浼樺厛绾�' }
+            , { field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true }
+            , { field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿' }
+            , { field: 'appeUser$', align: 'center', title: '鍒涘缓鑰�', hide: true }
+            , { field: 'appeTime$', align: 'center', title: '娣诲姞鏃堕棿', hide: true }
+            , { field: 'frozen', align: 'center', title: '鏄惁鍐荤粨', hide: true }
+            , { field: 'frozenMemo', align: 'center', title: '鍐荤粨澶囨敞', hide: true }
+            , { fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 200 }]
         ],
         request: {
             pageName: 'curr', pageSize: 'limit'
@@ -67,7 +67,7 @@
         searchData['orderByField'] = obj.field;
         searchData['orderByType'] = obj.type;
         tableIns.reload({
-            where: searchData, page: {curr: 1}
+            where: searchData, page: { curr: 1 }
         });
     });
 
@@ -80,14 +80,14 @@
                 break;
             case 'batchModifties':
                 if (checkStatus.length === 0) {
-                    layer.msg('璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁淇℃伅', {icon: 2});
+                    layer.msg('璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁淇℃伅', { icon: 2 });
                     return;
                 }
                 batchModifies();
                 break;
             case 'deleteData':
                 if (checkStatus.length === 0) {
-                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', { icon: 2 });
                     return;
                 }
                 del(checkStatus.map(function (d) {
@@ -95,8 +95,8 @@
                 }));
                 break;
             case 'init':
-                layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞堕噸缃簱浣�', formType: 1, shadeClose: true}, function (pass, idx) {
-                    http.get(baseUrl + "/locMast/init/pwd", {pwd: pass}, function (res) {
+                layer.prompt({ title: '璇疯緭鍏ュ彛浠わ紝骞堕噸缃簱浣�', formType: 1, shadeClose: true }, function (pass, idx) {
+                    http.get(baseUrl + "/locMast/init/pwd", { pwd: pass }, function (res) {
                         if (res.data) {
                             layer.open({
                                 type: 1,
@@ -153,7 +153,7 @@
         console.log(data.field)
         $.ajax({
             url: baseUrl + "/locCache/init/auth",
-            headers: {'token': localStorage.getItem('token')},
+            headers: { 'token': localStorage.getItem('token') },
             data: data.field,
             method: 'POST',
             async: false,
@@ -190,28 +190,58 @@
         admin.open({
             type: 1,
             area: '600px',
-            title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+            title: (mData ? '淇敼' : '娣诲姞') + '搴撲綅缂撳瓨',
             content: $('#editDialog').html(),
             success: function (layero, dIndex) {
                 layDateRender(mData);
-                form.val('detail', mData);
+                // 鍔犺浇搴撳尯鍒楄〃
+                $.ajax({
+                    url: baseUrl + "/basAreasQuery/auth",
+                    headers: { 'token': localStorage.getItem('token') },
+                    data: { condition: '' },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            var areaSelect = $(layero).find('select[name="areaName"]');
+                            areaSelect.empty();
+                            areaSelect.append('<option value="">璇烽�夋嫨搴撳尯</option>');
+                            var list = res.data;
+                            for (var i = 0; i < list.length; i++) {
+                                areaSelect.append('<option value="' + list[i].value + '" data-id="' + list[i].id + '">' + list[i].value + '</option>');
+                            }
+                            // 璁剧疆琛ㄥ崟鍊�
+                            form.val('detail', mData);
+                            // 濡傛灉鏈夋暟鎹紝璁剧疆閫変腑鐨勫簱鍖�
+                            if (mData && mData.areaName) {
+                                areaSelect.val(mData.areaName);
+                            }
+                            form.render('select');
+                        }
+                    }
+                });
+                // 鐩戝惉搴撳尯閫夋嫨鍙樺寲锛屽悓姝reaId
+                form.on('select(editAreaName)', function (data) {
+                    var selectedOption = $(data.elem).find('option:selected');
+                    var areaId = selectedOption.attr('data-id') || '';
+                    $(layero).find('input[name="areaId"]').val(areaId);
+                });
                 form.on('submit(editSubmit)', function (data) {
                     var loadIndex = layer.load(2);
                     $.ajax({
                         url: baseUrl + "/locCache/" + (mData ? 'update' : 'add') + "/auth",
-                        headers: {'token': localStorage.getItem('token')},
+                        headers: { 'token': localStorage.getItem('token') },
                         data: data.field,
                         method: 'POST',
                         success: function (res) {
                             layer.close(loadIndex);
                             if (res.code === 200) {
                                 layer.close(dIndex);
-                                layer.msg(res.msg, {icon: 1});
+                                layer.msg(res.msg, { icon: 1 });
                                 tableReload();
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
-                                layer.msg(res.msg, {icon: 2});
+                                layer.msg(res.msg, { icon: 2 });
                             }
                         }
                     })
@@ -232,18 +262,18 @@
             var loadIndex = layer.load(2);
             $.ajax({
                 url: baseUrl + "/locCache/delete/auth",
-                headers: {'token': localStorage.getItem('token')},
-                data: {ids: ids},
+                headers: { 'token': localStorage.getItem('token') },
+                data: { ids: ids },
                 method: 'POST',
                 success: function (res) {
                     layer.close(loadIndex);
                     if (res.code === 200) {
-                        layer.msg(res.msg, {icon: 1});
+                        layer.msg(res.msg, { icon: 1 });
                         tableReload();
                     } else if (res.code === 403) {
                         top.location.href = baseUrl + "/";
                     } else {
-                        layer.msg(res.msg, {icon: 2});
+                        layer.msg(res.msg, { icon: 2 });
                     }
                 }
             })
@@ -303,6 +333,6 @@
         searchData[this.name] = this.value;
     });
     tableIns.reload({
-        where: searchData, page: {curr: pageCurr}
+        where: searchData, page: { curr: pageCurr }
     });
 }
diff --git a/src/main/webapp/static/js/taskLog/taskLog.js b/src/main/webapp/static/js/taskLog/taskLog.js
index d7f562b..231f2bb 100644
--- a/src/main/webapp/static/js/taskLog/taskLog.js
+++ b/src/main/webapp/static/js/taskLog/taskLog.js
@@ -11,7 +11,7 @@
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#taskLog',
-        headers: {token: localStorage.getItem('token')},
+        headers: { token: localStorage.getItem('token') },
         url: baseUrl + '/taskLog/list/auth',
         page: true,
         limit: 16,
@@ -20,19 +20,24 @@
         toolbar: '#toolbar',
         cellMinWidth: 50,
         cols: [[
-            {field: 'id', align: 'center', title: 'id'}
-            , {field: 'wrkNo', align: 'center', title: '浠诲姟鍙�'}
-            , {field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�',}
-            , {field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��'}
-            , {field: 'ioPri', align: 'center', title: '浼樺厛绾�',hide: true}
-            , {field: 'sourceStaNo', align: 'center', title: '婧愮珯'}
-            , {field: 'staNo', align: 'center', title: '鐩爣绔�'}
-            , {field: 'invWh', align: 'center', title: 'agv'}
-            , {field: 'barcode', align: 'center', title: '鏉$爜'}
-            , {field: 'appeUser$', align: 'center', title: '鍒涘缓浜�'}
-            , {field: 'appeTime$', align: 'center', title: '鍒涘缓鏃堕棿',width: 170}
-            , {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
-            , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true,width: 170}
+            // {field: 'id', align: 'center', title: 'id'}
+            { field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', sort: true, width: 105 }
+            , { field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', }
+            , { field: 'wrkSts$', align: 'center', title: '宸ヤ綔鐘舵��', }
+            , { field: 'ioType$', align: 'center', title: '鍏ュ嚭搴撶被鍨�', width: 150 }
+            , { field: 'ioPri', align: 'center', title: '浼樺厛绾�', width: 80 }
+            , { field: 'taskType$', align: 'center', title: '浠诲姟绫诲瀷', width: 120 }
+            , { field: 'crnNo$', align: 'center', title: '鍫嗗灈鏈�', hide: true }
+            , { field: 'sourceStaNo$', align: 'center', title: '婧愮珯', width: 120 }
+            , { field: 'sourceLocNo', align: 'center', title: '婧愬簱浣�', width: 120 }
+            , { field: 'staNo$', 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: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true }
+            , { field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true, width: 160 }
+            , { fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 200 }
         ]],
         request: {
             pageName: 'curr',
@@ -95,6 +100,7 @@
         switch (obj.event) {
             // 鏄庣粏灞曠ず
             case 'detlShow':
+                id = data.id;
                 wrkNo = data.wrkNo;
                 ioTime = data.ioTime;
                 // 琛ㄦ牸涓嬫柟鏄剧ず
@@ -133,7 +139,7 @@
             shade: [0.5, '#000'] //0.1閫忔槑搴︾殑鑳屾櫙
         });
         var data = {
-//            id: $('#id').val(),
+            //            id: $('#id').val(),
             id: $('#id').val(),
             wrkNo: $('#wrkNo').val(),
             invWh: $('#invWh').val(),
@@ -194,7 +200,7 @@
         };
         $.ajax({
             url: baseUrl + "/taskLog/" + name + "/auth",
-            headers: {'token': localStorage.getItem('token')},
+            headers: { 'token': localStorage.getItem('token') },
             data: top.reObject(data),
             method: 'POST',
             success: function (res) {
@@ -372,7 +378,7 @@
         height = ($(window).height() * 0.8);
     }
     layer.style(index, {
-//        top: (($(window).height()-height)/3)+"px",
+        //        top: (($(window).height()-height)/3)+"px",
         height: height + 'px'
     });
 }
diff --git a/src/main/webapp/views/locCache/locCache.html b/src/main/webapp/views/locCache/locCache.html
index 356469c..406e3f7 100644
--- a/src/main/webapp/views/locCache/locCache.html
+++ b/src/main/webapp/views/locCache/locCache.html
@@ -53,9 +53,7 @@
     </div>
 
     <script type="text/html" id="toolbar">
-    <div class="layui-btn-container">
-        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
-        <button class="layui-btn layui-btn-sm" id="btn-print-batch" lay-event="batchModifties">鎵归噺淇敼</button>
+    <div class="layui-btn-container">        
         <button class="layui-btn layui-btn-danger  layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
         <button class="layui-btn layui-btn-primary" id="btn-init" lay-event="init">鍒濆鍖�</button>
     </div>
@@ -264,10 +262,108 @@
 
     <script type="text/html" id="operate">
     <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="showDetl">鏄庣粏</a>
-<!--    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>-->
+   <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
     <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
 </script>
 
+    <!-- 琛ㄥ崟寮圭獥 -->
+    <script type="text/html" id="editDialog">
+    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+        <input name="id" type="hidden">
+        <div class="layui-row">
+            <div class="layui-col-md12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">搴撲綅鍙�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="locNo" placeholder="搴撲綅鍙�" readonly style="background-color:#f0f0f0">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鎵樼洏鐮�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ユ墭鐩樼爜">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">搴撳尯鍚嶇О: </label>
+                    <div class="layui-input-block">
+                        <input name="areaId" type="hidden">
+                        <select name="areaName" id="editAreaName" lay-filter="editAreaName">
+                            <option value="">璇烽�夋嫨搴撳尯</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">搴撲綅鐘舵��: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="locSts" placeholder="璇疯緭鍏ュ簱浣嶇姸鎬�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">浼樺厛绾�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="sort" placeholder="璇疯緭鍏ヤ紭鍏堢骇" type="number">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">楂樹綆绫诲瀷: </label>
+                    <div class="layui-input-block">
+                        <select name="locType1">
+                            <option value="">璇烽�夋嫨</option>
+                            <option value="0">鏈煡</option>
+                            <option value="1">浣庡簱浣�</option>
+                            <option value="2">楂樺簱浣�</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">瀹界獎绫诲瀷: </label>
+                    <div class="layui-input-block">
+                        <select name="locType2">
+                            <option value="">璇烽�夋嫨</option>
+                            <option value="0">鏈煡</option>
+                            <option value="1">绐勫簱浣�</option>
+                            <option value="2">瀹藉簱浣�</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">杞婚噸绫诲瀷: </label>
+                    <div class="layui-input-block">
+                        <select name="locType3">
+                            <option value="">璇烽�夋嫨</option>
+                            <option value="0">鏈煡</option>
+                            <option value="1">杞诲簱浣�</option>
+                            <option value="2">閲嶅簱浣�</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鏄惁鍐荤粨: </label>
+                    <div class="layui-input-block">
+                        <select name="frozen">
+                            <option value="">璇烽�夋嫨</option>
+                            <option value="0">鏈喕缁�</option>
+                            <option value="1">宸插喕缁�</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍐荤粨澶囨敞: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="frozenMemo" placeholder="璇疯緭鍏ュ喕缁撳娉�">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <hr class="layui-bg-gray">
+        <div class="layui-form-item text-right">
+            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+        </div>
+    </form>
+</script>
+
     <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
     <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
     <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
diff --git a/src/main/webapp/views/taskLog/taskLog_detail.html b/src/main/webapp/views/taskLog/taskLog_detail.html
index c6807ff..db69dd2 100644
--- a/src/main/webapp/views/taskLog/taskLog_detail.html
+++ b/src/main/webapp/views/taskLog/taskLog_detail.html
@@ -1,8 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
     <meta charset="utf-8">
-    <title></title>
+    <title>浠诲姟鏄庣粏鏃ュ織</title>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -10,187 +11,76 @@
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
     <link rel="stylesheet" href="../../static/css/common.css" media="all">
 </head>
+
 <body>
-
-<!-- 璇︽儏 -->
-<div id="data-detail" class="layer_self_wrap">
-    <form id="detail" class="layui-form">
-        <div class="layui-inline"  style="width:31%;display: none">
-            <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
-            <div class="layui-input-inline">
-                <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'wrkMastLog')" lay-verify="number" >
-            </div>
+    <div class="layui-inline" style="width:31%;margin-top: 20px">
+        <label class="layui-form-label">宸� 浣� 鍙凤細</label>
+        <div class="layui-input-inline">
+            <input id="wrkNo" class="layui-input" type="text" disabled="disabled">
         </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label"><span class="not-null">*</span>宸� 浣� 鍙凤細</label>
-            <div class="layui-input-inline">
-                <input id="wrkNo" class="layui-input" type="text" onkeyup="check(this.id, 'wrkMastLog')" lay-verify="required|number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">宸ヤ綔鐘舵�侊細</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="wrkSts" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍏ュ嚭搴撶被鍨嬶細</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="ioType" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍫嗗灈鏈哄彿锛�</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="crnNo" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">浼� 鍏� 绾э細</label>
-            <div class="layui-input-inline">
-                <input id="ioPri" class="layui-input" type="text" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鐩爣搴撲綅锛�</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="locNo" class="layui-input" type="text" style="display: none">
-                <input id="locNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="locMastQueryBylocNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="locMastQueryBylocNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鐩� 鏍� 绔欙細</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="staNo" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="staNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="basDevpQueryBystaNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="basDevpQueryBystaNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">婧愩��銆�绔欙細</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="sourceStaNo" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="sourceStaNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="basDevpQueryBysourceStaNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="basDevpQueryBysourceStaNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">婧� 搴� 浣嶏細</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="sourceLocNo" class="layui-input" type="text" style="display: none">
-                <input id="sourceLocNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="locMastQueryBysourceLocNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="locMastQueryBysourceLocNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鎷c��銆�鏂欙細</label>
-            <div class="layui-input-inline">
-                <input id="picking" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">閫�銆�銆�鍑猴細</label>
-            <div class="layui-input-inline">
-                <input id="exitMk" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">绌恒��銆�鏉匡細</label>
-            <div class="layui-input-inline">
-                <input id="emptyMk" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">宸ヤ綔鏃堕棿锛�</label>
-            <div class="layui-input-inline">
-                <input id="ioTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label" style="font-size: x-small">鍫嗗灈鏈哄惎鍔ㄦ椂闂达細</label>
-            <div class="layui-input-inline">
-                <input id="crnStrTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label" style="font-size: x-small">鍫嗗灈鏈哄仠姝㈡椂闂达細</label>
-            <div class="layui-input-inline">
-                <input id="crnEndTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鎷f枡鏃堕棿锛�</label>
-            <div class="layui-input-inline">
-                <input id="plcStrTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鏉°��銆�鐮侊細</label>
-            <div class="layui-input-inline">
-                <input id="barcode" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">婊°��銆�鏉匡細</label>
-            <div class="layui-input-inline">
-                <input id="fullPlt" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
-            </div>
-        </div>
-
-
-        <hr class="layui-bg-gray">
-
-        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
-            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
-            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
-            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
-        </div>
-
-        <div id="prompt">
-            娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
-        </div>
-    </form>
-</div>
+    </div>
+    <table class="layui-hide" id="taskDetlLog" lay-filter="taskDetlLog"></table>
 </body>
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/wrkMastLog/wrkMastLog.js" charset="utf-8"></script>
-</html>
+<script type="text/javascript">
+    var pageCur;
 
+    layui.use(['table', 'laydate', 'form'], function () {
+        var table = layui.table;
+        var $ = layui.jquery;
+        var form = layui.form;
+
+        $('#wrkNo').val(parent.wrkNo);
+        // 鏁版嵁娓叉煋
+        table.render({
+            elem: '#taskDetlLog',
+            headers: { token: localStorage.getItem('token') },
+            url: baseUrl + '/taskDetlLog/list/auth',
+            where: { task_id: parent.id },
+            page: true,
+            limit: 16,
+            limits: [16, 30, 50, 100, 200, 500],
+            even: true,
+            cellMinWidth: 50,
+            cols: [[
+                { field: 'wrkNo', align: 'center', title: '宸ヤ綔鍙�', width: 100 }
+                , { field: 'ioTime$', align: 'center', title: '宸ヤ綔鏃堕棿', width: 160 }
+                , { field: 'matnr', align: 'center', title: '鐗╂枡缂栫爜', width: 120 }
+                , { field: 'maktx', align: 'center', title: '鐗╂枡鍚嶇О' }
+                , { field: 'anfme', align: 'center', title: '鏁伴噺', width: 80 }
+                , { field: 'batch', align: 'center', title: '鎵规', width: 100 }
+                , { field: 'orderNo', align: 'center', title: '鍗曟嵁缂栧彿', width: 120 }
+                , { field: 'zpallet', align: 'center', title: '鎵樼洏鏉$爜', width: 120 }
+                , { field: 'specs', align: 'center', title: '瑙勬牸' }
+                , { field: 'unit', align: 'center', title: '鍗曚綅', width: 60 }
+                , { field: 'supp', align: 'center', title: '渚涘簲鍟�' }
+            ]],
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+            parseData: function (res) {
+                return {
+                    'code': res.code,
+                    'msg': res.msg,
+                    'count': res.data.total,
+                    'data': res.data.records
+                }
+            },
+            response: {
+                statusCode: 200
+            },
+            done: function (res, curr, count) {
+                if (res.code === 403) {
+                    top.location.href = baseUrl + "/";
+                }
+                pageCur = curr;
+            }
+        });
+    });
+</script>
+
+</html>
\ No newline at end of file

--
Gitblit v1.9.1