From 1035e4729e03c10138adfcf4b6788b24778e9469 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 八月 2023 16:39:21 +0800
Subject: [PATCH] 日志

---
 src/main/java/com/zy/asrs/entity/CommandInfoLog.java                  |  191 ++++++++++
 src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java |   12 
 src/main/resources/mapper/CommandInfoLogMapper.xml                    |   24 +
 src/main/java/com/zy/asrs/service/CommandInfoLogService.java          |    8 
 src/main/webapp/views/commandManageLog/commandManageLog.html          |  295 +++++++++++++--
 src/main/webapp/views/commandManage/commandManage.html                |   90 ----
 src/main/webapp/views/taskWrkLog/commandManageLog.html                |  315 +++++++++++++++++
 src/main/webapp/views/taskWrkLog/taskWrkLog.html                      |    2 
 src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java            |   12 
 src/main/java/com/zy/asrs/controller/CommandInfoLogController.java    |  123 ++++++
 10 files changed, 936 insertions(+), 136 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CommandInfoLogController.java b/src/main/java/com/zy/asrs/controller/CommandInfoLogController.java
new file mode 100644
index 0000000..ece9e75
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/CommandInfoLogController.java
@@ -0,0 +1,123 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.DateUtils;
+import com.zy.asrs.entity.CommandInfoLog;
+import com.zy.asrs.service.CommandInfoLogService;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class CommandInfoLogController extends BaseController {
+
+    @Autowired
+    private CommandInfoLogService commandInfoLogService;
+
+    @RequestMapping(value = "/commandInfoLog/{id}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("id") String id) {
+        return R.ok(commandInfoLogService.selectById(String.valueOf(id)));
+    }
+
+    @RequestMapping(value = "/commandInfoLog/list/auth")
+    @ManagerAuth
+    public R list(@RequestParam(defaultValue = "1")Integer curr,
+                  @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false)String orderByField,
+                  @RequestParam(required = false)String orderByType,
+                  @RequestParam Map<String, Object> param){
+        EntityWrapper<CommandInfoLog> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convert(param, wrapper);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        return R.ok(commandInfoLogService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            String val = String.valueOf(entry.getValue());
+            if (val.contains(RANGE_TIME_LINK)){
+                String[] dates = val.split(RANGE_TIME_LINK);
+                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else {
+                wrapper.like(entry.getKey(), val);
+            }
+        }
+    }
+
+    @RequestMapping(value = "/commandInfoLog/add/auth")
+    @ManagerAuth
+    public R add(CommandInfoLog commandInfoLog) {
+        commandInfoLogService.insert(commandInfoLog);
+        return R.ok();
+    }
+
+	@RequestMapping(value = "/commandInfoLog/update/auth")
+	@ManagerAuth
+    public R update(CommandInfoLog commandInfoLog){
+        if (Cools.isEmpty(commandInfoLog) || null==commandInfoLog.getId()){
+            return R.error();
+        }
+        commandInfoLogService.updateById(commandInfoLog);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/commandInfoLog/delete/auth")
+    @ManagerAuth
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+         for (Long id : ids){
+            commandInfoLogService.deleteById(id);
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/commandInfoLog/export/auth")
+    @ManagerAuth
+    public R export(@RequestBody JSONObject param){
+        EntityWrapper<CommandInfoLog> wrapper = new EntityWrapper<>();
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        Map<String, Object> map = excludeTrash(param.getJSONObject("commandInfoLog"));
+        convert(map, wrapper);
+        List<CommandInfoLog> list = commandInfoLogService.selectList(wrapper);
+        return R.ok(exportSupport(list, fields));
+    }
+
+    @RequestMapping(value = "/commandInfoLogQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        EntityWrapper<CommandInfoLog> wrapper = new EntityWrapper<>();
+        wrapper.like("id", condition);
+        Page<CommandInfoLog> page = commandInfoLogService.selectPage(new Page<>(0, 10), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (CommandInfoLog commandInfoLog : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", commandInfoLog.getId());
+            map.put("value", commandInfoLog.getId());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping(value = "/commandInfoLog/check/column/auth")
+    @ManagerAuth
+    public R query(@RequestBody JSONObject param) {
+        Wrapper<CommandInfoLog> wrapper = new EntityWrapper<CommandInfoLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != commandInfoLogService.selectOne(wrapper)){
+            return R.parse(BaseRes.REPEAT).add(getComment(CommandInfoLog.class, String.valueOf(param.get("key"))));
+        }
+        return R.ok();
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/CommandInfoLog.java b/src/main/java/com/zy/asrs/entity/CommandInfoLog.java
new file mode 100644
index 0000000..142f7da
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/CommandInfoLog.java
@@ -0,0 +1,191 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("wcs_command_info_log")
+public class CommandInfoLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value= "")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value= "宸ヤ綔鍙�")
+    @TableField("wrk_no")
+    private Integer wrkNo;
+
+    /**
+     * 璧风偣浣嶇疆
+     */
+    @ApiModelProperty(value= "璧风偣浣嶇疆")
+    @TableField("start_pos")
+    private String startPos;
+
+    /**
+     * 缁堢偣浣嶇疆
+     */
+    @ApiModelProperty(value= "缁堢偣浣嶇疆")
+    @TableField("end_pos")
+    private String endPos;
+
+    /**
+     * 鎸囦护鐘舵�� 1: 鍒涘缓  2: 鎵ц  3: 瀹屾垚  
+     */
+    @ApiModelProperty(value= "鎸囦护鐘舵�� 1: 鍒涘缓  2: 鎵ц  3: 瀹屾垚  ")
+    @TableField("command_status")
+    private Integer commandStatus;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty(value= "鍒涘缓鏃堕棿")
+    @TableField("start_time")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    /**
+     * 鎸囦护绫诲瀷
+     */
+    @ApiModelProperty(value= "鎸囦护绫诲瀷")
+    @TableField("command_type")
+    private Integer commandType;
+
+    /**
+     * 璁惧
+     */
+    @ApiModelProperty(value= "璁惧")
+    private String device;
+
+    /**
+     * 璁惧鎵ц淇℃伅
+     */
+    @ApiModelProperty(value= "璁惧鎵ц淇℃伅")
+    @TableField("device_log")
+    private String deviceLog;
+
+    /**
+     * 鍛戒护鎻忚堪
+     */
+    @ApiModelProperty(value= "鍛戒护鎻忚堪")
+    @TableField("command_desc")
+    private String commandDesc;
+
+    /**
+     * 鍛戒护JSON
+     */
+    @ApiModelProperty(value= "鍛戒护JSON")
+    private String command;
+
+    /**
+     * 浠诲姟鍙�
+     */
+    @ApiModelProperty(value= "浠诲姟鍙�")
+    @TableField("task_no")
+    private String taskNo;
+
+    /**
+     * 鎵ц鏃堕棿
+     */
+    @ApiModelProperty(value= "鎵ц鏃堕棿")
+    @TableField("execute_time")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date executeTime;
+
+    /**
+     * 瀹屾垚鏃堕棿
+     */
+    @ApiModelProperty(value= "瀹屾垚鏃堕棿")
+    @TableField("complete_time")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date completeTime;
+
+    public CommandInfoLog() {}
+
+    public CommandInfoLog(Integer wrkNo,String startPos,String endPos,Integer commandStatus,Date startTime,Integer commandType,String device,String deviceLog,String commandDesc,String command,String taskNo,Date executeTime,Date completeTime) {
+        this.wrkNo = wrkNo;
+        this.startPos = startPos;
+        this.endPos = endPos;
+        this.commandStatus = commandStatus;
+        this.startTime = startTime;
+        this.commandType = commandType;
+        this.device = device;
+        this.deviceLog = deviceLog;
+        this.commandDesc = commandDesc;
+        this.command = command;
+        this.taskNo = taskNo;
+        this.executeTime = executeTime;
+        this.completeTime = completeTime;
+    }
+
+//    CommandInfoLog commandInfoLog = new CommandInfoLog(
+//            null,    // 宸ヤ綔鍙�
+//            null,    // 璧风偣浣嶇疆
+//            null,    // 缁堢偣浣嶇疆
+//            null,    // 鎸囦护鐘舵��
+//            null,    // 鍒涘缓鏃堕棿
+//            null,    // 鎸囦护绫诲瀷
+//            null,    // 璁惧
+//            null,    // 璁惧鎵ц淇℃伅
+//            null,    // 鍛戒护鎻忚堪
+//            null,    // 鍛戒护JSON
+//            null,    // 浠诲姟鍙�
+//            null,    // 鎵ц鏃堕棿
+//            null    // 瀹屾垚鏃堕棿
+//    );
+
+    public String getCommandStatus$(){
+        if (null == this.commandStatus){ return null; }
+        switch (this.commandStatus){
+            case 1:
+                return "鍒涘缓";
+            case 2:
+                return "鎵ц";
+            case 3:
+                return "瀹屾垚";
+            default:
+                return String.valueOf(this.commandStatus);
+        }
+    }
+
+    public String getStartTime$(){
+        if (Cools.isEmpty(this.startTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
+    }
+
+    public String getExecuteTime$(){
+        if (Cools.isEmpty(this.executeTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime);
+    }
+
+    public String getCompleteTime$(){
+        if (Cools.isEmpty(this.completeTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime);
+    }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java b/src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java
new file mode 100644
index 0000000..74a7704
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.CommandInfoLog;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface CommandInfoLogMapper extends BaseMapper<CommandInfoLog> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/CommandInfoLogService.java b/src/main/java/com/zy/asrs/service/CommandInfoLogService.java
new file mode 100644
index 0000000..d7a85ad
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/CommandInfoLogService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.CommandInfoLog;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface CommandInfoLogService extends IService<CommandInfoLog> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java
new file mode 100644
index 0000000..dd8b439
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.CommandInfoLogMapper;
+import com.zy.asrs.entity.CommandInfoLog;
+import com.zy.asrs.service.CommandInfoLogService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("commandInfoLogService")
+public class CommandInfoLogServiceImpl extends ServiceImpl<CommandInfoLogMapper, CommandInfoLog> implements CommandInfoLogService {
+
+}
diff --git a/src/main/resources/mapper/CommandInfoLogMapper.xml b/src/main/resources/mapper/CommandInfoLogMapper.xml
new file mode 100644
index 0000000..932cb5f
--- /dev/null
+++ b/src/main/resources/mapper/CommandInfoLogMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.CommandInfoLogMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.CommandInfoLog">
+        <id column="id" property="id" />
+        <result column="wrk_no" property="wrkNo" />
+        <result column="start_pos" property="startPos" />
+        <result column="end_pos" property="endPos" />
+        <result column="command_status" property="commandStatus" />
+        <result column="start_time" property="startTime" />
+        <result column="command_type" property="commandType" />
+        <result column="device" property="device" />
+        <result column="device_log" property="deviceLog" />
+        <result column="command_desc" property="commandDesc" />
+        <result column="command" property="command" />
+        <result column="task_no" property="taskNo" />
+        <result column="execute_time" property="executeTime" />
+        <result column="complete_time" property="completeTime" />
+
+    </resultMap>
+
+</mapper>
diff --git a/src/main/webapp/views/commandManage/commandManage.html b/src/main/webapp/views/commandManage/commandManage.html
index fe8ee81..81e2487 100644
--- a/src/main/webapp/views/commandManage/commandManage.html
+++ b/src/main/webapp/views/commandManage/commandManage.html
@@ -53,7 +53,7 @@
 								</el-dropdown>
 							</template>
 						</el-table-column>
-						<el-table-column property="id" label="鎸囦护缂栧彿">
+						<el-table-column property="id" label="#ID">
 						</el-table-column>
 						<el-table-column property="wrkNo" label="宸ヤ綔鍙�">
 						</el-table-column>
@@ -178,100 +178,12 @@
 						}
 						this.getTableData()
 					},
-					handleCommand(command, row) {
-						switch (command) {
-							case "showTask":
-								//鏌ョ湅浠诲姟
-								this.showTask(row)
-								break;
-							case "executeCommand":
-								//鎵ц鎸囦护
-								this.executeCommand(row)
-								break;
-							case "completeCommand":
-								//瀹屾垚鎸囦护
-								this.completeCommand(row)
-								break;
-						}
-					},
-					showTask(row) {
-						//鏌ョ湅浠诲姟
-						$layui.layer.open({
-							type: 2,
-							title: '浠诲姟绠$悊',
-							maxmin: true,
-							area: [top.detailWidth, top.detailHeight],
-							shadeClose: true,
-							content: '../taskWrk/taskWrk.html?taskNo=' + row.taskNo + "&wrkNo=" + row.wrkNo,
-							success: function(layero, index) {}
-						});
-					},
 					tableRowClassName({row, rowIndex}) {
 						if (rowIndex === this.commandStep) {
 							return 'success-row';
 						}
 						return '';
 					},
-					executeCommand(row) {
-						//鎵ц鎸囦护
-						let that = this
-						$.ajax({
-							url: baseUrl + "/commandInfo/executeCommand",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							data: {
-								id: row.id
-							},
-							method: 'POST',
-							success: function(res) {
-								if (res.code == 200) {
-									that.$message({
-										message: "鎵ц鎴愬姛",
-										type: 'success'
-									});
-									that.getTableData()
-								} else if (res.code === 403) {
-									top.location.href = baseUrl + "/";
-								} else {
-									that.$message({
-										message: res.msg,
-										type: 'error'
-									});
-								}
-							}
-						});
-					},
-					completeCommand(row) {
-						//瀹屾垚鎸囦护
-						let that = this
-						$.ajax({
-							url: baseUrl + "/commandInfo/completeCommand",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							data: {
-								id: row.id
-							},
-							method: 'POST',
-							success: function(res) {
-								if (res.code == 200) {
-									that.$message({
-										message: "瀹屾垚鎴愬姛",
-										type: 'success'
-									});
-									that.getTableData()
-								} else if (res.code === 403) {
-									top.location.href = baseUrl + "/";
-								} else {
-									that.$message({
-										message: res.msg,
-										type: 'error'
-									});
-								}
-							}
-						});
-					}
 				}
 			})
 		</script>
diff --git a/src/main/webapp/views/commandManageLog/commandManageLog.html b/src/main/webapp/views/commandManageLog/commandManageLog.html
index c85667f..5c0f551 100644
--- a/src/main/webapp/views/commandManageLog/commandManageLog.html
+++ b/src/main/webapp/views/commandManageLog/commandManageLog.html
@@ -1,58 +1,261 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
-    <meta charset="utf-8">
-    <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">
-    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
-    <link rel="stylesheet" href="../../static/wms/css/common.css" media="all">
+    <meta charset="UTF-8">
+    <title>鎸囦护绠$悊</title>
+    <link rel="stylesheet" href="../../static/wcs/css/element.css">
+    <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../../static/wms/layui/layui.js"></script>
+    <script type="text/javascript" src="../../static/wcs/js/common.js"></script>
+    <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
+    <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+    <style>
+        .el-table .success-row {
+            background: #d5ffc0;
+        }
+    </style>
 </head>
+
 <body>
-<!-- 鎼滅储鏍� -->
-<div id="search-box" class="layui-form layui-card-header">
-    <div class="layui-inline">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="id" placeholder="鎸囦护缂栧彿" autocomplete="off">
-        </div>
-    </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="wrk_no" id="wrkNo" placeholder="浠诲姟鍙�" autocomplete="off">
-        </div>
-    </div>
+<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+    <div style="width: 100%;">
+        <el-card class="box-card">
+            <el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
+                <el-form-item label="">
+                    <el-input v-model="tableSearchParam.task_no" placeholder="浠诲姟鍙�"></el-input>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-input v-model="tableSearchParam.wrk_no" placeholder="宸ヤ綔鍙�"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" @click="getTableData">鏌ヨ</el-button>
+                    <el-button type="primary" @click="resetParam">閲嶇疆</el-button>
+                </el-form-item>
+            </el-form>
+            <el-table ref="singleTable" :data="tableData" style="width: 100%;" :row-class-name="tableRowClassName">
+                <el-table-column property="id" label="#ID">
+                </el-table-column>
+                <el-table-column property="wrkNo" label="宸ヤ綔鍙�">
+                </el-table-column>
+                <el-table-column property="taskNo" label="浠诲姟鍙�">
+                </el-table-column>
+                <el-table-column property="commandStatus$" label="鎸囦护鐘舵��">
+                </el-table-column>
+                <el-table-column show-overflow-tooltip property="durationTime" label="鎸佺画鏃堕暱">
+                </el-table-column>
+                <el-table-column property="commandType" label="鎸囦护绫诲瀷">
+                </el-table-column>
+                <el-table-column property="device" label="璁惧">
+                </el-table-column>
+                <el-table-column property="deviceLog" label="璁惧鎵ц淇℃伅">
+                </el-table-column>
+                <el-table-column property="commandDesc" label="鍛戒护鎻忚堪">
+                </el-table-column>
+                <el-table-column show-overflow-tooltip property="startTime$" label="寮�濮嬫椂闂�">
+                </el-table-column>
+                <el-table-column show-overflow-tooltip property="executeTime$" label="鎵ц鏃堕棿">
+                </el-table-column>
+                <el-table-column show-overflow-tooltip property="completeTime$" label="瀹屾垚鏃堕棿">
+                </el-table-column>
+                <el-table-column show-overflow-tooltip property="command" label="鍛戒护鎶ユ枃" width="250">
+                </el-table-column>
+            </el-table>
 
-    <!-- 寰呮坊鍔� -->
-    <div id="data-search-btn" class="layui-btn-container layui-form-item">
-        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
-        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+            <div style="margin-top: 10px;">
+                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                               :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+                               layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+                </el-pagination>
+            </div>
+        </el-card>
     </div>
 </div>
+<script>
+    var $layui = layui.config({
+        base: baseUrl + "/static/wms/layui/lay/modules/"
+    }).use(['layer', 'form'], function() {})
 
-<!-- 琛ㄦ牸 -->
-<div class="layui-form">
-    <table class="layui-hide" id="commandManage" lay-filter="commandManage"></table>
-</div>
-<script type="text/html" id="toolbar">
-    <div class="layui-btn-container">
-        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
-    </div>
+    var app = new Vue({
+        el: '#app',
+        data: {
+            tableData: [],
+            currentPage: 1,
+            pageSizes: [16, 30, 50, 100, 150, 200],
+            pageSize: 16,
+            pageTotal: 0,
+            tableSearchParam: {
+                task_no: null,
+                status: null,
+                wrk_no: null
+            },
+            commandStep: -1
+        },
+        created() {
+            this.init()
+        },
+        watch: {
+
+        },
+        methods: {
+            init() {
+                let taskNo = getQueryVariable('taskNo')
+                let wrkNo = getQueryVariable('wrkNo')
+                let commandStep = getQueryVariable('commandStep')
+                if (taskNo != false) {
+                    this.tableSearchParam.task_no = taskNo
+                }
+                if (wrkNo != false) {
+                    this.tableSearchParam.wrk_no = wrkNo
+                }
+                this.commandStep = parseInt(commandStep)
+
+                this.getTableData()
+            },
+            getTableData() {
+                let that = this;
+                let data = this.tableSearchParam
+                data.curr = this.currentPage
+                data.limit = this.pageSize
+                $.ajax({
+                    url: baseUrl + "/commandInfo/list/auth",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: data,
+                    dataType: 'json',
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            that.tableData = res.data.records
+                            that.pageTotal = res.data.total
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            that.$message({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            },
+            handleSizeChange(val) {
+                console.log(`姣忛〉 ${val} 鏉);
+                this.pageSize = val
+                this.getTableData()
+            },
+            handleCurrentChange(val) {
+                console.log(`褰撳墠椤�: ${val}`);
+                this.currentPage = val
+                this.getTableData()
+            },
+            resetParam() {
+                this.tableSearchParam = {
+                    task_no: null,
+                    status: null,
+                    wrk_no: null
+                }
+                this.getTableData()
+            },
+            handleCommand(command, row) {
+                switch (command) {
+                    case "showTask":
+                        //鏌ョ湅浠诲姟
+                        this.showTask(row)
+                        break;
+                    case "executeCommand":
+                        //鎵ц鎸囦护
+                        this.executeCommand(row)
+                        break;
+                    case "completeCommand":
+                        //瀹屾垚鎸囦护
+                        this.completeCommand(row)
+                        break;
+                }
+            },
+            showTask(row) {
+                //鏌ョ湅浠诲姟
+                $layui.layer.open({
+                    type: 2,
+                    title: '浠诲姟绠$悊',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: true,
+                    content: '../taskWrk/taskWrk.html?taskNo=' + row.taskNo + "&wrkNo=" + row.wrkNo,
+                    success: function(layero, index) {}
+                });
+            },
+            tableRowClassName({row, rowIndex}) {
+                if (rowIndex === this.commandStep) {
+                    return 'success-row';
+                }
+                return '';
+            },
+            executeCommand(row) {
+                //鎵ц鎸囦护
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/commandInfo/executeCommand",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: {
+                        id: row.id
+                    },
+                    method: 'POST',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            that.$message({
+                                message: "鎵ц鎴愬姛",
+                                type: 'success'
+                            });
+                            that.getTableData()
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            that.$message({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            },
+            completeCommand(row) {
+                //瀹屾垚鎸囦护
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/commandInfo/completeCommand",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: {
+                        id: row.id
+                    },
+                    method: 'POST',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            that.$message({
+                                message: "瀹屾垚鎴愬姛",
+                                type: 'success'
+                            });
+                            that.getTableData()
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            that.$message({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            }
+        }
+    })
 </script>
-
-<script type="text/html" id="operate">
-    <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="wrkMastShow">浠诲姟</a>
-</script>
-
-<script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
-<script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/wms/js/commandManageLog/commandManageLog.js" charset="utf-8"></script>
-
-<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
-
 </body>
-</html>
 
+</html>
diff --git a/src/main/webapp/views/taskWrkLog/commandManageLog.html b/src/main/webapp/views/taskWrkLog/commandManageLog.html
new file mode 100644
index 0000000..d5cfe9a
--- /dev/null
+++ b/src/main/webapp/views/taskWrkLog/commandManageLog.html
@@ -0,0 +1,315 @@
+<!DOCTYPE html>
+<html lang="en">
+
+	<head>
+		<meta charset="UTF-8">
+		<title>鎸囦护绠$悊</title>
+		<link rel="stylesheet" href="../../static/wcs/css/element.css">
+		<script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
+		<script type="text/javascript" src="../../static/wms/layui/layui.js"></script>
+		<script type="text/javascript" src="../../static/wcs/js/common.js"></script>
+		<script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
+		<script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+		<style>
+			.el-table .success-row {
+				background: #d5ffc0;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+			<div style="width: 100%;">
+				<el-card class="box-card">
+					<el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
+						<el-form-item label="浠诲姟鍙�">
+							<el-input v-model="tableSearchParam.task_no" placeholder="浠诲姟鍙�" readonly></el-input>
+						</el-form-item>
+						<el-form-item label="宸ヤ綔鍙�">
+							<el-input v-model="tableSearchParam.wrk_no" placeholder="宸ヤ綔鍙�" readonly></el-input>
+						</el-form-item>
+						<el-form-item label="鎸囦护姝ュ簭">
+							<el-input-number v-model="commandStep" placeholder="鎸囦护姝ュ簭" :min="0"></el-input-number>
+						</el-form-item>
+					</el-form>
+					<el-table ref="singleTable" :data="tableData" style="width: 100%;" :row-class-name="tableRowClassName">
+						<el-table-column property="index" label="鎸囦护缂栧彿">
+							<template slot-scope="scope">
+								{{ scope.$index }}
+							</template>
+						</el-table-column>
+						<el-table-column property="wrkNo" label="宸ヤ綔鍙�">
+						</el-table-column>
+						<el-table-column property="taskNo" label="浠诲姟鍙�">
+						</el-table-column>
+						<el-table-column property="commandStatus$" label="鎸囦护鐘舵��">
+						</el-table-column>
+						<el-table-column show-overflow-tooltip property="durationTime" label="鎸佺画鏃堕暱">
+						</el-table-column>
+						<el-table-column property="commandType" label="鎸囦护绫诲瀷">
+						</el-table-column>
+						<el-table-column property="device" label="璁惧">
+						</el-table-column>
+						<el-table-column property="deviceLog" label="璁惧鎵ц淇℃伅">
+						</el-table-column>
+						<el-table-column property="commandDesc" label="鍛戒护鎻忚堪">
+						</el-table-column>
+						<el-table-column show-overflow-tooltip property="startTime$" label="寮�濮嬫椂闂�">
+						</el-table-column>
+						<el-table-column show-overflow-tooltip property="executeTime$" label="鎵ц鏃堕棿">
+						</el-table-column>
+						<el-table-column show-overflow-tooltip property="completeTime$" label="瀹屾垚鏃堕棿">
+						</el-table-column>
+						<el-table-column show-overflow-tooltip property="command" label="鍛戒护鎶ユ枃" width="250">
+						</el-table-column>
+					</el-table>
+
+					<div style="margin-top: 10px;">
+						<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+							:current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+							layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+						</el-pagination>
+					</div>
+				</el-card>
+			</div>
+		</div>
+		<script>
+			var $layui = layui.config({
+				base: baseUrl + "/static/wms/layui/lay/modules/"
+			}).use(['layer', 'form'], function() {})
+
+			var app = new Vue({
+				el: '#app',
+				data: {
+					tableData: [],
+					currentPage: 1,
+					pageSizes: [16, 30, 50, 100, 150, 200],
+					pageSize: 16,
+					pageTotal: 0,
+					tableSearchParam: {
+						task_no: null,
+						status: null,
+						wrk_no: null
+					},
+					commandStep: -1
+				},
+				created() {
+					this.init()
+				},
+				watch: {
+
+				},
+				methods: {
+					init() {
+						let taskNo = getQueryVariable('taskNo')
+						let wrkNo = getQueryVariable('wrkNo')
+						if (taskNo != false) {
+							this.tableSearchParam.task_no = taskNo
+						}
+						if (wrkNo != false) {
+							this.tableSearchParam.wrk_no = wrkNo
+						}
+
+						this.getTableData()
+					},
+					getTableData() {
+						let that = this;
+						let data = this.tableSearchParam
+						data.curr = this.currentPage
+						data.limit = this.pageSize
+						$.ajax({
+							url: baseUrl + "/commandInfo/list/auth",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: data,
+							dataType: 'json',
+							contentType: 'application/json;charset=UTF-8',
+							method: 'GET',
+							success: function(res) {
+								if (res.code == 200) {
+									that.tableData = res.data.records
+									that.pageTotal = res.data.total
+								} else if (res.code === 403) {
+									top.location.href = baseUrl + "/";
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+
+						$.ajax({
+							url: baseUrl + "/taskWrk/" + this.tableSearchParam.wrk_no + "/auth",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: data,
+							dataType: 'json',
+							contentType: 'application/json;charset=UTF-8',
+							method: 'GET',
+							success: function(res) {
+								if (res.code == 200) {
+									that.commandStep = parseInt(res.data.commandStep)
+								} else if (res.code === 403) {
+									top.location.href = baseUrl + "/";
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					},
+					handleSizeChange(val) {
+						console.log(`姣忛〉 ${val} 鏉);
+						this.pageSize = val
+						this.getTableData()
+					},
+					handleCurrentChange(val) {
+						console.log(`褰撳墠椤�: ${val}`);
+						this.currentPage = val
+						this.getTableData()
+					},
+					resetParam() {
+						this.tableSearchParam = {
+							task_no: null,
+							status: null,
+							wrk_no: null
+						}
+						this.getTableData()
+					},
+					handleCommand(command, row) {
+						switch (command) {
+							case "showTask":
+								//鏌ョ湅浠诲姟
+								this.showTask(row)
+								break;
+							case "executeCommand":
+								//鎵ц鎸囦护
+								this.executeCommand(row)
+								break;
+							case "completeCommand":
+								//瀹屾垚鎸囦护
+								this.completeCommand(row)
+								break;
+						}
+					},
+					showTask(row) {
+						//鏌ョ湅浠诲姟
+						$layui.layer.open({
+							type: 2,
+							title: '浠诲姟绠$悊',
+							maxmin: true,
+							area: [top.detailWidth, top.detailHeight],
+							shadeClose: true,
+							content: '../taskWrk/taskWrk.html?taskNo=' + row.taskNo + "&wrkNo=" + row.wrkNo,
+							success: function(layero, index) {}
+						});
+					},
+					tableRowClassName({row, rowIndex}) {
+						if (rowIndex === parseInt(this.commandStep)) {
+							return 'success-row';
+						}
+						return '';
+					},
+					executeCommand(row) {
+						//鎵ц鎸囦护
+						let that = this
+						$.ajax({
+							url: baseUrl + "/commandInfo/executeCommand",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: {
+								id: row.id
+							},
+							method: 'POST',
+							success: function(res) {
+								if (res.code == 200) {
+									that.$message({
+										message: "鎵ц鎴愬姛",
+										type: 'success'
+									});
+									that.getTableData()
+								} else if (res.code === 403) {
+									top.location.href = baseUrl + "/";
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					},
+					completeCommand(row) {
+						//瀹屾垚鎸囦护
+						let that = this
+						$.ajax({
+							url: baseUrl + "/commandInfo/completeCommand",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: {
+								id: row.id
+							},
+							method: 'POST',
+							success: function(res) {
+								if (res.code == 200) {
+									that.$message({
+										message: "瀹屾垚鎴愬姛",
+										type: 'success'
+									});
+									that.getTableData()
+								} else if (res.code === 403) {
+									top.location.href = baseUrl + "/";
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					},
+					updateCommandStep() {
+						//鏇存柊姝ュ簭
+						let that = this
+						$.ajax({
+							url: baseUrl + "/taskWrk/updateCommandStep",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: {
+								wrkNo: this.tableSearchParam.wrk_no,
+								commandStep: this.commandStep
+							},
+							method: 'POST',
+							success: function(res) {
+								if (res.code == 200) {
+									that.$message({
+										message: "鏇存柊鎴愬姛",
+										type: 'success'
+									});
+									that.getTableData()
+								} else if (res.code === 403) {
+									top.location.href = baseUrl + "/";
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					},
+				}
+			})
+		</script>
+	</body>
+
+</html>
diff --git a/src/main/webapp/views/taskWrkLog/taskWrkLog.html b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
index a8831d4..4075728 100644
--- a/src/main/webapp/views/taskWrkLog/taskWrkLog.html
+++ b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -169,7 +169,7 @@
 							maxmin: true,
 							area: [top.detailWidth, top.detailHeight],
 							shadeClose: true,
-							content: 'commandManage.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
+							content: 'commandManageLog.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
 							success: function(layero, index) {}
 						});
 					},

--
Gitblit v1.9.1