From b69791c7b86d65728a074bd79932bfa9a017f081 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 25 十月 2023 17:17:27 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderMapper.xml                               |   16 
 src/main/webapp/static/js/autoMove/autoMove.js                          |  263 ++++++++++++++
 src/main/java/com/zy/asrs/service/OrderService.java                     |    3 
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java                     |    7 
 src/main/resources/mapper/LocDetlMapper.xml                             |   46 ++
 src/main/resources/mapper/LocMastMapper.xml                             |    9 
 src/main/java/autoMove.sql                                              |   18 +
 src/main/java/com/zy/asrs/service/AutoMoveService.java                  |    8 
 src/main/java/com/zy/asrs/service/impl/AutoMoveServiceImpl.java         |   12 
 src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java          |   82 ++++
 src/main/java/com/zy/asrs/mapper/AutoMoveMapper.java                    |   12 
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java                     |    3 
 src/main/java/com/zy/asrs/controller/AutoMoveController.java            |  125 ++++++
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java          |    8 
 src/main/java/com/zy/asrs/service/LocDetlService.java                   |    4 
 src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java                |  103 +++++
 src/main/resources/mapper/AutoMoveMapper.xml                            |   19 +
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java          |   17 
 src/main/java/com/zy/asrs/entity/Order.java                             |   21 +
 src/main/java/com/zy/asrs/entity/AutoMove.java                          |  116 ++++++
 src/main/java/com/zy/common/CodeBuilder.java                            |    4 
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java            |    9 
 src/main/java/com/zy/asrs/mapper/OrderMapper.java                       |    3 
 src/main/webapp/views/autoMove/autoMove.html                            |  138 +++++++
 src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java |    4 
 src/main/java/com/zy/asrs/service/LocMastService.java                   |    3 
 src/main/resources/application.yml                                      |    4 
 27 files changed, 1,055 insertions(+), 2 deletions(-)

diff --git a/src/main/java/autoMove.sql b/src/main/java/autoMove.sql
new file mode 100644
index 0000000..86395f2
--- /dev/null
+++ b/src/main/java/autoMove.sql
@@ -0,0 +1,18 @@
+-- save autoMove record
+-- mysql
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove/autoMove.html', 'autoMove绠$悊', null , '2', null , '1');
+
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#view', '鏌ヨ', '', '3', '0', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-add', '鏂板', '', '3', '1', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-edit', '缂栬緫', '', '3', '2', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-delete', '鍒犻櫎', '', '3', '3', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-export', '瀵煎嚭', '', '3', '4', '1');
+
+-- sqlserver
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove/autoMove.html', N'autoMove绠$悊', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#view', N'鏌ヨ', '', '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-add', N'鏂板', '', '3', '1', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-edit', N'缂栬緫', '', '3', '2', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/src/main/java/com/zy/asrs/controller/AutoMoveController.java b/src/main/java/com/zy/asrs/controller/AutoMoveController.java
new file mode 100644
index 0000000..1a9b6f7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/AutoMoveController.java
@@ -0,0 +1,125 @@
+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.AutoMove;
+import com.zy.asrs.service.AutoMoveService;
+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 AutoMoveController extends BaseController {
+
+    @Autowired
+    private AutoMoveService autoMoveService;
+
+    @RequestMapping(value = "/autoMove/{id}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("id") String id) {
+        return R.ok(autoMoveService.selectById(String.valueOf(id)));
+    }
+
+    @RequestMapping(value = "/autoMove/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(required = false)String condition,
+                  @RequestParam Map<String, Object> param){
+        EntityWrapper<AutoMove> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convert(param, wrapper);
+        allLike(AutoMove.class, param.keySet(), wrapper, condition);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        return R.ok(autoMoveService.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 = "/autoMove/add/auth")
+    @ManagerAuth
+    public R add(AutoMove autoMove) {
+        autoMoveService.insert(autoMove);
+        return R.ok();
+    }
+
+	@RequestMapping(value = "/autoMove/update/auth")
+	@ManagerAuth
+    public R update(AutoMove autoMove){
+        if (Cools.isEmpty(autoMove) || null==autoMove.getId()){
+            return R.error();
+        }
+        autoMoveService.updateById(autoMove);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/autoMove/delete/auth")
+    @ManagerAuth
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+         for (Long id : ids){
+            autoMoveService.deleteById(id);
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/autoMove/export/auth")
+    @ManagerAuth
+    public R export(@RequestBody JSONObject param){
+        EntityWrapper<AutoMove> wrapper = new EntityWrapper<>();
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        Map<String, Object> map = excludeTrash(param.getJSONObject("autoMove"));
+        convert(map, wrapper);
+        List<AutoMove> list = autoMoveService.selectList(wrapper);
+        return R.ok(exportSupport(list, fields));
+    }
+
+    @RequestMapping(value = "/autoMoveQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        EntityWrapper<AutoMove> wrapper = new EntityWrapper<>();
+        wrapper.like("id", condition);
+        Page<AutoMove> page = autoMoveService.selectPage(new Page<>(0, 10), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (AutoMove autoMove : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", autoMove.getId());
+            map.put("value", autoMove.getId());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping(value = "/autoMove/check/column/auth")
+    @ManagerAuth
+    public R query(@RequestBody JSONObject param) {
+        Wrapper<AutoMove> wrapper = new EntityWrapper<AutoMove>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != autoMoveService.selectOne(wrapper)){
+            return R.parse(BaseRes.REPEAT).add(getComment(AutoMove.class, String.valueOf(param.get("key"))));
+        }
+        return R.ok();
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/AutoMove.java b/src/main/java/com/zy/asrs/entity/AutoMove.java
new file mode 100644
index 0000000..3b81f79
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AutoMove.java
@@ -0,0 +1,116 @@
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("man_auto_move")
+public class AutoMove implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 绂佺敤  
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 绂佺敤  ")
+    private Short status;
+
+    @ApiModelProperty(value= "")
+    @TableField("line_number")
+    private Integer lineNumber;
+
+    @ApiModelProperty(value= "")
+    @TableField("loc_no")
+    private String locNo;
+
+    @ApiModelProperty(value= "")
+    @TableField("row_priority")
+    private Integer rowPriority;
+
+    @ApiModelProperty(value= "")
+    @TableField("order_no")
+    private String orderNo;
+
+    @ApiModelProperty(value= "")
+    @TableField("create_time")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ApiModelProperty(value= "")
+    @TableField("update_time")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @ApiModelProperty(value= "")
+    private Integer uuid;
+
+    public AutoMove() {}
+
+    public AutoMove(Short status,Integer lineNumber,String locNo,Integer rowPriority,String orderNo,Date createTime,Date updateTime,Integer uuid) {
+        this.status = status;
+        this.lineNumber = lineNumber;
+        this.locNo = locNo;
+        this.rowPriority = rowPriority;
+        this.orderNo = orderNo;
+        this.createTime = createTime;
+        this.updateTime = updateTime;
+        this.uuid = uuid;
+    }
+
+//    AutoMove autoMove = new AutoMove(
+//            null,    // 鐘舵��
+//            null,    // 
+//            null,    // 
+//            null,    // 
+//            null,    // 
+//            null,    // 
+//            null,    // 
+//            null    // 
+//    );
+
+    public String getStatus$(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return "姝e父";
+            case 0:
+                return "绂佺敤";
+            default:
+                return String.valueOf(this.status);
+        }
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/Order.java b/src/main/java/com/zy/asrs/entity/Order.java
index 99abc64..5aebc90 100644
--- a/src/main/java/com/zy/asrs/entity/Order.java
+++ b/src/main/java/com/zy/asrs/entity/Order.java
@@ -261,6 +261,13 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    /**
+     * 鐘舵�� 1: 杩涜涓�  0: 鍒濆  2:宸插畬鎴�
+     */
+    @ApiModelProperty(value= "鐘舵��  2:宸插畬鎴� 1: 杩涜涓� 0: 鍒濆  ")
+    @TableField("move_status")
+    private Integer moveStatus;
+
     public Order() {}
 
     public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
@@ -405,6 +412,20 @@
         }
     }
 
+    public String getMoveStatus$(){
+        if (null == this.moveStatus){ return null; }
+        switch (this.moveStatus){
+            case 2:
+                return "宸插璐�";
+            case 1:
+                return "澶囪揣涓�";
+            case 0:
+                return "鏈垵濮�";
+            default:
+                return String.valueOf(this.moveStatus);
+        }
+    }
+
     public String getCreateBy$(){
         UserService service = SpringUtils.getBean(UserService.class);
         User user = service.selectById(this.createBy);
diff --git a/src/main/java/com/zy/asrs/mapper/AutoMoveMapper.java b/src/main/java/com/zy/asrs/mapper/AutoMoveMapper.java
new file mode 100644
index 0000000..5831cc7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/AutoMoveMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.AutoMove;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface AutoMoveMapper extends BaseMapper<AutoMove> {
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 15a646a..2b7255c 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -71,4 +71,11 @@
 
     void updateMatTurn(@Param("matnrOld")String matnrOld,@Param("matnr")String matnr);
 
+    List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapY(Integer crnNo);
+
+    List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapN(Integer crnNo);
+
+    List<LocDetl> selectLocDetlUnilateralMoveShuttleY(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
+    List<LocDetl> selectLocDetlUnilateralMoveShuttleN(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
+
 }
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 208fff4..d5db54d 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -22,4 +22,7 @@
     Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
 
     List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo);
+
+    List<LocMast> selectLocShuttleMoveUnilateralY(@Param("bay")Integer bay,@Param("lev")Integer lev);
+    List<LocMast> selectLocShuttleMoveUnilateralN(@Param("bay")Integer bay,@Param("lev")Integer lev);
 }
diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index e3770ad..5500ade 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -20,4 +20,7 @@
     int addToLogTable(Order order);
 
     List<Order> selectorderNoL(@Param("orderNo")String orderNo);
+
+    Order selectOrderMoveStatus();
+    Order selectOrderMoveStatusInitial();
 }
diff --git a/src/main/java/com/zy/asrs/service/AutoMoveService.java b/src/main/java/com/zy/asrs/service/AutoMoveService.java
new file mode 100644
index 0000000..2891d4f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/AutoMoveService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.AutoMove;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface AutoMoveService extends IService<AutoMove> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index cb68d9c..b08fe2a 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -65,4 +65,8 @@
     Double getLocDetlSumQty(String locNo);
 
     void updateMatTurn(String matnrOld,String matnr);
+
+    List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo);
+
+    List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 00b330b..168d694 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -37,4 +38,6 @@
      * @return
      */
     List<LocMast> queryShallowLocFMast(Integer crnNo);
+
+    List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderService.java b/src/main/java/com/zy/asrs/service/OrderService.java
index 44ab470..1711cc9 100644
--- a/src/main/java/com/zy/asrs/service/OrderService.java
+++ b/src/main/java/com/zy/asrs/service/OrderService.java
@@ -29,4 +29,7 @@
 
     List<Order> selectorderNoL(String orderNo);
 
+    Order selectOrderMoveStatus();
+    Order selectOrderMoveStatusInitial();
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AutoMoveServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AutoMoveServiceImpl.java
new file mode 100644
index 0000000..8df738a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AutoMoveServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.AutoMoveMapper;
+import com.zy.asrs.entity.AutoMove;
+import com.zy.asrs.service.AutoMoveService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("autoMoveService")
+public class AutoMoveServiceImpl extends ServiceImpl<AutoMoveMapper, AutoMove> implements AutoMoveService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 506b3cb..2a882be 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -9,6 +9,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 @Service("locDetlService")
@@ -126,4 +127,20 @@
     public void updateMatTurn(String matnrOld,String matnr){
         this.baseMapper.updateMatTurn(matnrOld,matnr);
     }
+
+    @Override
+    public List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo) {
+        if (crnNo==1){
+            return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapY(crnNo);
+        }
+        return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapN(crnNo);
+    }
+
+    @Override
+    public List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo) {
+        if (crnNo==1){
+            return this.baseMapper.selectLocDetlUnilateralMoveShuttleY(matnr,batch,grade);
+        }
+        return this.baseMapper.selectLocDetlUnilateralMoveShuttleN(matnr,batch,grade);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index e6ce450..0b56793 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -52,4 +52,12 @@
     public List<LocMast> queryShallowLocFMast(Integer crnNo) {
         return this.baseMapper.queryShallowLocFMast(crnNo);
     }
+
+    @Override
+    public List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo) {
+        if (crnNo==1){
+            return this.baseMapper.selectLocShuttleMoveUnilateralY(bay,lev);
+        }
+        return this.baseMapper.selectLocShuttleMoveUnilateralN(bay,lev);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 0d63296..ce2a799 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -180,4 +180,13 @@
         return this.baseMapper.selectorderNoL(orderNo);
     }
 
+    @Override
+    public Order selectOrderMoveStatus() {
+        return this.baseMapper.selectOrderMoveStatus();
+    }
+    @Override
+    public Order selectOrderMoveStatusInitial() {
+        return this.baseMapper.selectOrderMoveStatusInitial();
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
new file mode 100644
index 0000000..1f11b63
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
@@ -0,0 +1,103 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.handler.AutoLocMoveHandler;
+import com.zy.common.properties.SlaveWmsParameterProperties;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class AutoLocMoveScheduler {
+
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private AutoLocMoveHandler autoLocMoveHandler;
+    @Autowired
+    private BasCrnpService basCrnpService;
+    @Autowired
+    private ConfigService configService;
+    @Autowired
+    private SlaveWmsParameterProperties slaveWmsParameterProperties;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private AutoMoveService autoMoveService;
+
+    //瀹氭椂鍑哄簱   缁忓吀鍙屼几
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void locToLocAutoLocMove(){
+        if (slaveWmsParameterProperties.isAutoLocMoveBoolean()){
+            Config config = configService.selectById("AutoLocMove");
+            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+                return;
+            }
+            Order order = orderService.selectOrderMoveStatus();
+            if (!Cools.isEmpty(order)){
+//                autoMoveService.selectList()
+            }else {
+                order = orderService.selectOrderMoveStatusInitial();
+                if (Cools.isEmpty(order)){
+                    return;
+                }
+                order.setMoveStatus(2);
+                orderService.updateById(order);
+            }
+        }
+    }
+
+    //瀹氭椂鍑哄簱
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void locToLoc11(){
+        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
+            Config config = configService.selectById("AutoLocMoveUnilateral");
+            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+                return;
+            }
+            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
+            for (int crnNo = 1;crnNo < crnCount;crnNo++){
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
+                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
+                if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
+                    autoLocMoveHandler.start(crnNo,11);
+                }
+            }
+        }
+    }
+
+    //瀹氭椂鍏ュ簱
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void locToLoc111() {
+        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
+            Config config = configService.selectById("AutoLocMoveUnilateral");
+            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+                return;
+            }
+            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
+            for (int crnNo = 1;crnNo < crnCount;crnNo++){
+                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+                if (basCrnp == null) {
+                    continue;
+                }
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
+                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
+                if (Cools.isEmpty(wrkMast)  && Cools.isEmpty(wrkMast1)){
+                    autoLocMoveHandler.start(crnNo,111);
+                }
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
new file mode 100644
index 0000000..d8bc282
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
@@ -0,0 +1,82 @@
+package com.zy.asrs.task.handler;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.model.StartupDto;
+import com.zy.common.service.CommonService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Created by vincent on 2023/7/7
+ */
+@Slf4j
+@Service
+public class AutoLocMoveHandler extends AbstractHandler<String> {
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    private WorkService workService;
+
+    @Transactional(isolation = Isolation.REPEATABLE_READ)
+    public ReturnT<String> start(Integer crnNo, Integer ioType) {
+        try {
+            //11  绌挎绉诲崟杈�
+            if (ioType==11){
+                for (int bay = 1;bay < 27;bay++){
+                    for (int lev = 1 ; lev <6 ; lev++){
+                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo);
+                        if (!Cools.isEmpty(locMasts) && locMasts.size()<4){
+                            for (LocMast locMast:locMasts){
+                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(),0, null, 0);
+                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L);
+                            }
+                            return SUCCESS;
+                        }
+                    }
+                }
+            }else {//11  鍗曡竟绉荤┛姊�
+                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   鍗曡竟绉荤┛姊�
+                for (Map<String, Object> map : list) {
+                    String matnr = map.getOrDefault("matnr","").toString();//鐗╂枡鍙�
+                    String batch = map.getOrDefault("batch","").toString();//鎵瑰彿
+                    String grade = map.getOrDefault("brand","").toString();//绛夌骇
+                    int count = Integer.parseInt(map.get("count").toString());//鍗曡竟搴撴暟閲�
+                    if (count < 4) {
+                        continue;
+                    }
+
+                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
+                    for (LocDetl locDetl : locDetlList) {
+                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),0, null, 0);
+                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
+                    }
+                }
+                return SUCCESS;
+            }
+        }catch (Exception e){
+            log.error("鑷姩绉诲簱鍑洪敊,鍫嗗灈鏈哄彿{}锛屽伐浣滅被鍨媨}",crnNo,ioType);
+        }
+        return SUCCESS;
+    }
+
+}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 6a3ff20..99dada9 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -17,10 +17,10 @@
 //        generator.table="sys_host";
         // sqlserver
         generator.sqlOsType = SqlOsType.SQL_SERVER;
-        generator.url="192.168.4.15:1433;databasename=hylyasrs";
+        generator.url="192.168.4.15:1433;databasename=gdykasrs";
         generator.username="sa";
         generator.password="sa@123";
-        generator.table="man_loc_check";
+        generator.table="man_auto_move";
         generator.packagePath="com.zy.asrs";
         generator.build();
     }
diff --git a/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
index 7d7111e..01a8d60 100644
--- a/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
+++ b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
@@ -17,6 +17,10 @@
 
     // 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
     private boolean automaticFillingBoardStaNosBoolean;
+    // 鑷姩绉诲簱鍔熻兘寮�鍏�
+    private boolean autoLocMoveBoolean;
+    // 鑷姩绉诲簱鍔熻兘寮�鍏� 111
+    private boolean autoLocMoveUnilateralBoolean;
     // 鑷姩琛ョ┖鏉跨珯鐐�
     private List<Integer> automaticFillingBoardStaNos = new ArrayList<>();
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0cb061e..a20dace 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -63,6 +63,10 @@
   automaticFillingBoardStaNosBoolean: true
   # 鑷姩琛ョ┖鏉跨珯鐐�
   automaticFillingBoardStaNos: 112,101
+  # 鑷姩绉诲簱鍔熻兘寮�鍏�
+  autoLocMoveBoolean: true
+  # 鑷姩绉诲簱鍔熻兘寮�鍏� 绌挎
+  autoLocMoveUnilateralBoolean: false
 
 comb:
   limit: 5000
diff --git a/src/main/resources/mapper/AutoMoveMapper.xml b/src/main/resources/mapper/AutoMoveMapper.xml
new file mode 100644
index 0000000..dfd6bb1
--- /dev/null
+++ b/src/main/resources/mapper/AutoMoveMapper.xml
@@ -0,0 +1,19 @@
+<?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.AutoMoveMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AutoMove">
+        <id column="id" property="id" />
+        <result column="status" property="status" />
+        <result column="line_number" property="lineNumber" />
+        <result column="loc_no" property="locNo" />
+        <result column="row_priority" property="rowPriority" />
+        <result column="order_no" property="orderNo" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="uuid" property="uuid" />
+
+    </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 9e4513c..4b0009d 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -356,4 +356,50 @@
         ORDER BY ld.appe_time ASC
     </select>
 
+    <select id="selectLocDetlUnilateralMoveShuttleMapY" resultType="java.util.Map">
+        select ld.matnr,ld.batch,ld.brand,count(*) count from asr_loc_mast lm
+        left join asr_loc_detl ld
+        on lm.loc_no = ld.loc_no
+        where lm.row1 in (1)
+        and loc_sts = 'F'
+        and loc_type3 = 0
+        group by ld.matnr,ld.batch,ld.brand
+    </select>
+
+    <select id="selectLocDetlUnilateralMoveShuttleMapN" resultType="java.util.Map">
+        select ld.matnr,ld.batch,ld.brand,count(*) count from asr_loc_mast lm
+        left join asr_loc_detl ld
+        on lm.loc_no = ld.loc_no
+        where lm.row1 in (31,32)
+        and loc_sts = 'F'
+        and loc_type3 = 0
+        group by ld.matnr,ld.batch,ld.brand
+    </select>
+
+    <select id="selectLocDetlUnilateralMoveShuttleY" resultMap="BaseResultMap">
+        select ld.* from asr_loc_mast lm
+        left join asr_loc_detl ld
+        on lm.loc_no = ld.loc_no
+        where loc_sts = 'F'
+        and ld.matnr = #{matnr}
+        and ld.batch = #{batch}
+        and ld.brand = #{grade}
+        and lm.loc_type3 = 0
+        and lm.row1 in (1)
+        order by row1
+    </select>
+
+    <select id="selectLocDetlUnilateralMoveShuttleN" resultMap="BaseResultMap">
+        select ld.* from asr_loc_mast lm
+        left join asr_loc_detl ld
+        on lm.loc_no = ld.loc_no
+        where loc_sts = 'F'
+        and ld.matnr = #{matnr}
+        and ld.batch = #{batch}
+        and ld.brand = #{grade}
+        and lm.loc_type3 = 0
+        and lm.row1 in (31,32)
+        order by row1
+    </select>
+
 </mapper>
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 2244412..1a9ad24 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -75,4 +75,13 @@
         )
         and (loc_sts = 'F' or loc_sts = 'D') and crn_no = #{crnNo}
     </select>
+
+    <select id="selectLocShuttleMoveUnilateralY" resultMap="BaseResultMap">
+        select * from [dbo].[asr_loc_mast] where row1>1 and row1 &lt; 18 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1
+    </select>
+
+    <select id="selectLocShuttleMoveUnilateralN" resultMap="BaseResultMap">
+        select * from [dbo].[asr_loc_mast] where row1>17 and row1 &lt; 31 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1 desc
+    </select>
+
 </mapper>
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index c1b06a4..7e84fb4 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -39,6 +39,7 @@
         <result column="update_by" property="updateBy" />
         <result column="update_time" property="updateTime" />
         <result column="memo" property="memo" />
+        <result column="move_status" property="moveStatus" />
 
     </resultMap>
 
@@ -84,4 +85,19 @@
         </if>
     </select>
 
+    <select id="selectOrderMoveStatus" resultMap="BaseResultMap">
+        select top 1 *
+        from man_order
+        where 1=1
+        and move_status = 2
+    </select>
+
+    <select id="selectOrderMoveStatusInitial" resultMap="BaseResultMap">
+        select top 1 *
+        from man_order
+        where 1=1
+        and move_status = 1
+        order by update_time
+    </select>
+
 </mapper>
diff --git a/src/main/webapp/static/js/autoMove/autoMove.js b/src/main/webapp/static/js/autoMove/autoMove.js
new file mode 100644
index 0000000..221fc8c
--- /dev/null
+++ b/src/main/webapp/static/js/autoMove/autoMove.js
@@ -0,0 +1,263 @@
+var pageCurr;
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+    var table = layui.table;
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var layDate = layui.laydate;
+    var form = layui.form;
+    var admin = layui.admin;
+
+    // 鏁版嵁娓叉煋
+    tableIns = table.render({
+        elem: '#autoMove',
+        headers: {token: localStorage.getItem('token')},
+        url: baseUrl+'/autoMove/list/auth',
+        page: true,
+        limit: 15,
+        limits: [15, 30, 50, 100, 200, 500],
+        toolbar: '#toolbar',
+        cellMinWidth: 50,
+        height: 'full-120',
+        cols: [[
+            {type: 'checkbox'}
+            ,{field: 'id', align: 'center',title: '缂栧彿'}
+            ,{field: 'status$', align: 'center',title: '鐘舵��'}
+            ,{field: 'lineNumber', align: 'center',title: ''}
+            ,{field: 'locNo', align: 'center',title: ''}
+            ,{field: 'rowPriority', align: 'center',title: ''}
+            ,{field: 'orderNo', align: 'center',title: ''}
+            ,{field: 'createTime$', align: 'center',title: ''}
+            ,{field: 'updateTime$', align: 'center',title: ''}
+            ,{field: 'uuid', align: 'center',title: ''}
+
+            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+        ]],
+        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+"/";
+            }
+            pageCurr=curr;
+            limit();
+        }
+    });
+
+    // 鐩戝惉鎺掑簭浜嬩欢
+    table.on('sort(autoMove)', function (obj) {
+        var searchData = {};
+        $.each($('#search-box [name]').serializeArray(), function() {
+            searchData[this.name] = this.value;
+        });
+        searchData['orderByField'] = obj.field;
+        searchData['orderByType'] = obj.type;
+        tableIns.reload({
+            where: searchData,
+            page: {curr: 1}
+        });
+    });
+
+    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+    table.on('toolbar(autoMove)', function (obj) {
+        var checkStatus = table.checkStatus(obj.config.id).data;
+        switch(obj.event) {
+            case 'addData':
+                showEditModel();
+                break;
+            case 'deleteData':
+               if (checkStatus.length === 0) {
+                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                   return;
+               }
+               del(checkStatus.map(function (d) {
+                   return d.id;
+               }));
+               break;
+            case 'exportData':
+                admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+                    var titles=[];
+                    var fields=[];
+                    obj.config.cols[0].map(function (col) {
+                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+                            titles.push(col.title);
+                            fields.push(col.field);
+                        }
+                    });
+                    var exportData = {};
+                    $.each($('#search-box [name]').serializeArray(), function() {
+                        exportData[this.name] = this.value;
+                    });
+                    var param = {
+                        'autoMove': exportData,
+                        'fields': fields
+                    };
+                    $.ajax({
+                        url: baseUrl+"/autoMove/export/auth",
+                        headers: {'token': localStorage.getItem('token')},
+                        data: JSON.stringify(param),
+                        dataType:'json',
+                        contentType:'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            layer.closeAll();
+                            if (res.code === 200) {
+                                table.exportFile(titles,res.data,'xls');
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg, {icon: 2})
+                            }
+                        }
+                    });
+                });
+                break;
+        }
+    });
+
+    // 鐩戝惉琛屽伐鍏蜂簨浠�
+    table.on('tool(autoMove)', function(obj){
+        var data = obj.data;
+        switch (obj.event) {
+            case 'edit':
+                showEditModel(data);
+                break;
+            case "del":
+                del([data.id]);
+                break;
+        }
+    });
+
+    /* 寮圭獥 - 鏂板銆佷慨鏀� */
+    function showEditModel(mData) {
+        admin.open({
+            type: 1,
+            area: '600px',
+            title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+            content: $('#editDialog').html(),
+            success: function (layero, dIndex) {
+                layDateRender(mData);
+                form.val('detail', mData);
+                form.on('submit(editSubmit)', function (data) {
+                    var loadIndex = layer.load(2);
+                    $.ajax({
+                        url: baseUrl+"/autoMove/"+(mData?'update':'add')+"/auth",
+                        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});
+                                tableReload();
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            }else {
+                                layer.msg(res.msg, {icon: 2});
+                            }
+                        }
+                    })
+                    return false;
+                });
+                $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                layui.form.render('select');
+            }
+        });
+    }
+
+    /* 鍒犻櫎 */
+    function del(ids) {
+        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+            skin: 'layui-layer-admin',
+            shade: .1
+        }, function (i) {
+            layer.close(i);
+            var loadIndex = layer.load(2);
+            $.ajax({
+                url: baseUrl+"/autoMove/delete/auth",
+                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});
+                        tableReload();
+                    } else if (res.code === 403){
+                        top.location.href = baseUrl+"/";
+                    } else {
+                        layer.msg(res.msg, {icon: 2});
+                    }
+                }
+            })
+        });
+    }
+
+    // 鎼滅储
+    form.on('submit(search)', function (data) {
+        pageCurr = 1;
+        tableReload(false);
+    });
+
+    // 閲嶇疆
+    form.on('submit(reset)', function (data) {
+        pageCurr = 1;
+        clearFormVal($('#search-box'));
+        tableReload(false);
+    });
+
+    // 鏃堕棿閫夋嫨鍣�
+    function layDateRender(data) {
+        setTimeout(function () {
+            layDate.render({
+                elem: '.layui-laydate-range'
+                ,type: 'datetime'
+                ,range: true
+            });
+            layDate.render({
+                elem: '#createTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['createTime\\$']:null
+            });
+            layDate.render({
+                elem: '#updateTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['updateTime\\$']:null
+            });
+
+        }, 300);
+    }
+    layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+    parent.layer.closeAll();
+});
+
+function tableReload(child) {
+    var searchData = {};
+    $.each($('#search-box [name]').serializeArray(), function() {
+        searchData[this.name] = this.value;
+    });
+    tableIns.reload({
+        where: searchData,
+        page: {curr: pageCurr}
+     });
+}
diff --git a/src/main/webapp/views/autoMove/autoMove.html b/src/main/webapp/views/autoMove/autoMove.html
new file mode 100644
index 0000000..b4acdc5
--- /dev/null
+++ b/src/main/webapp/views/autoMove/autoMove.html
@@ -0,0 +1,138 @@
+<!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/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body">
+            <div class="layui-form toolbar" id="search-box">
+                <div class="layui-form-item">
+                    <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" style="width: 300px">
+                        <div class="layui-input-inline">
+                            <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">&emsp;
+                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+                            <i class="layui-icon">&#xe615;</i>鎼滅储
+                        </button>
+                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+                            <i class="layui-icon">&#xe666;</i>閲嶇疆
+                        </button>
+                    </div>
+                </div>
+            </div>
+            <table class="layui-hide" id="autoMove" lay-filter="autoMove"></table>
+        </div>
+    </div>
+</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 layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+    </div>
+</script>
+
+<script type="text/html" id="operate">
+    <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/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/autoMove/autoMove.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<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">
+                        <select name="status">
+                            <option value="">璇烽�夋嫨鐘舵��</option>
+                            <option value="1">姝e父</option>
+                            <option value="0">绂佺敤</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="lineNumber" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="locNo" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="rowPriority" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="orderNo" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="uuid" 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>
+</html>
+

--
Gitblit v1.9.1