From df2c0d9fb5332c16ded337ce61f756aff3981e30 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 28 十二月 2023 09:02:46 +0800
Subject: [PATCH] #

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/FullStoreParam.java              |   36 
 zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js                                    |  504 +++++++++
 zy-asrs-common/src/main/java/orderLog.sql                                                     |   18 
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/LocTypeDto.java                    |   40 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlLogServiceImpl.java |   12 
 zy-asrs-common/src/main/java/orderDetlLog.sql                                                 |   18 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java                   |    2 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java                      |    8 
 zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html                              |  247 ++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java                  |    8 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderLogController.java        |  106 +
 zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html                                      |  351 ++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderLogService.java              |    8 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderLogServiceImpl.java     |   12 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java         |  108 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlLogMapper.java            |   12 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java                |  444 ++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderLog.java                      |  465 ++++++++
 zy-asrs-common/src/main/resources/mapper/wms/OrderLogMapper.xml                               |    5 
 zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js                            |  397 +++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderDetlLogController.java    |  106 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderLogMapper.java                |   12 
 zy-asrs-common/src/main/resources/mapper/wms/OrderDetlLogMapper.xml                           |    5 
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/StartupDto.java                    |   21 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlLogService.java          |    8 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetlLog.java                  |  291 +++++
 26 files changed, 3,242 insertions(+), 2 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/LocTypeDto.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/LocTypeDto.java
new file mode 100644
index 0000000..615abc5
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/LocTypeDto.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.common.domain.dto;
+
+import com.alibaba.fastjson.JSON;
+import com.zy.asrs.common.wms.entity.BasDevp;
+import com.zy.asrs.framework.exception.CoolException;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by vincent on 2020/10/19
+ */
+@Slf4j
+@Data
+public class LocTypeDto {
+
+    // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
+    private Short locType1;
+
+    // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
+    private Short locType2;
+
+    // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
+    private Short locType3;
+
+    public LocTypeDto() {
+    }
+
+    public LocTypeDto(BasDevp basDevp) {
+        if (basDevp.getLocType1() == null || basDevp.getLocType1() == 0) {
+            throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
+        }
+        if (basDevp.getLocType1() == 1) {
+            this.locType1 = 1; // 浣庡簱浣�
+        } else {
+            this.locType1 = 2; // 楂樺簱浣�
+        }
+        log.info(JSON.toJSONString(this));
+    }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/StartupDto.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/StartupDto.java
new file mode 100644
index 0000000..d68a515
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/StartupDto.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.common.domain.dto;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020/6/11
+ */
+@Data
+public class StartupDto {
+
+    private Integer sourceStaNo;
+
+    private Integer staNo;
+
+    private Integer crnNo;
+
+    private String locNo;
+
+    private Integer workNo;
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/FullStoreParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/FullStoreParam.java
new file mode 100644
index 0000000..067ba73
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/FullStoreParam.java
@@ -0,0 +1,36 @@
+package com.zy.asrs.common.domain.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/11
+ */
+@Data
+public class FullStoreParam {
+
+    // 鎵樼洏鏉$爜
+    private String barcode;
+
+    // 绔欑偣缂栧彿
+    private Integer devpNo;
+
+    // 鐗╂枡鍒楄〃鏁版嵁
+    private List<MatCodeStore> list;
+
+    @Data
+    public static class MatCodeStore {
+
+        // 鐗╂枡缂栧彿
+        private String matnr;
+
+        // 搴忓垪鐮�
+        private String batch;
+
+        // 鐗╂枡鏁伴噺
+        private Double anfme;
+
+    }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderDetlLogController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderDetlLogController.java
new file mode 100644
index 0000000..bc95c5e
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderDetlLogController.java
@@ -0,0 +1,106 @@
+package com.zy.asrs.common.wms.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.asrs.common.wms.entity.OrderDetlLog;
+import com.zy.asrs.common.wms.service.OrderDetlLogService;
+import com.zy.asrs.framework.annotations.ManagerAuth;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.domain.KeyValueVo;
+import com.zy.asrs.framework.common.DateUtils;
+import com.zy.asrs.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class OrderDetlLogController extends BaseController {
+
+    @Autowired
+    private OrderDetlLogService orderDetlLogService;
+
+    @RequestMapping(value = "/orderDetlLog/{id}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("id") String id) {
+        return R.ok(orderDetlLogService.getById(String.valueOf(id)));
+    }
+
+    @RequestMapping(value = "/orderDetlLog/page/auth")
+    @ManagerAuth
+    public R page(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String condition,
+                  @RequestParam(required = false) String timeRange,
+                  @RequestParam Map<String, Object> param) {
+        LambdaQueryWrapper<OrderDetlLog> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(OrderDetlLog::getId, condition);
+        }
+        if (!Cools.isEmpty(timeRange)) {
+            String[] range = timeRange.split(RANGE_TIME_LINK);
+            wrapper.ge(OrderDetlLog::getCreateTime, DateUtils.convert(range[0]));
+            wrapper.le(OrderDetlLog::getCreateTime, DateUtils.convert(range[1]));
+        }
+        return R.ok(orderDetlLogService.page(new Page<>(curr, limit), wrapper));
+    }
+
+
+    @RequestMapping(value = "/orderDetlLog/add/auth")
+    @ManagerAuth
+    public R add(OrderDetlLog orderDetlLog) {
+        orderDetlLogService.save(orderDetlLog);
+        return R.ok();
+    }
+
+	@RequestMapping(value = "/orderDetlLog/update/auth")
+	@ManagerAuth
+    public R update(OrderDetlLog orderDetlLog){
+        if (Cools.isEmpty(orderDetlLog) || null==orderDetlLog.getId()){
+            return R.error();
+        }
+        orderDetlLogService.updateById(orderDetlLog);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/orderDetlLog/delete/auth")
+    @ManagerAuth
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+         for (Long id : ids){
+            orderDetlLogService.removeById(id);
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/orderDetlLogQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        LambdaQueryWrapper<OrderDetlLog> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(OrderDetlLog::getId, condition);
+        Page<OrderDetlLog> page = orderDetlLogService.page(new Page<>(0, 10), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (OrderDetlLog orderDetlLog : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", orderDetlLog.getId());
+            map.put("value", orderDetlLog.getId());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping("/orderDetlLog/all/get/kv")
+    @ManagerAuth
+    public R getDataKV(@RequestParam(required = false) String condition) {
+        List<KeyValueVo> vos = new ArrayList<>();
+        LambdaQueryWrapper<OrderDetlLog> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(OrderDetlLog::getId, condition);
+        }
+        orderDetlLogService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getId()), item.getId())));
+        return R.ok().add(vos);
+    }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderLogController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderLogController.java
new file mode 100644
index 0000000..df95a07
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderLogController.java
@@ -0,0 +1,106 @@
+package com.zy.asrs.common.wms.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.asrs.common.wms.entity.OrderLog;
+import com.zy.asrs.common.wms.service.OrderLogService;
+import com.zy.asrs.framework.annotations.ManagerAuth;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.domain.KeyValueVo;
+import com.zy.asrs.framework.common.DateUtils;
+import com.zy.asrs.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class OrderLogController extends BaseController {
+
+    @Autowired
+    private OrderLogService orderLogService;
+
+    @RequestMapping(value = "/orderLog/{id}/auth")
+    @ManagerAuth
+    public R get(@PathVariable("id") String id) {
+        return R.ok(orderLogService.getById(String.valueOf(id)));
+    }
+
+    @RequestMapping(value = "/orderLog/page/auth")
+    @ManagerAuth
+    public R page(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String condition,
+                  @RequestParam(required = false) String timeRange,
+                  @RequestParam Map<String, Object> param) {
+        LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(OrderLog::getId, condition);
+        }
+        if (!Cools.isEmpty(timeRange)) {
+            String[] range = timeRange.split(RANGE_TIME_LINK);
+            wrapper.ge(OrderLog::getCreateTime, DateUtils.convert(range[0]));
+            wrapper.le(OrderLog::getCreateTime, DateUtils.convert(range[1]));
+        }
+        return R.ok(orderLogService.page(new Page<>(curr, limit), wrapper));
+    }
+
+
+    @RequestMapping(value = "/orderLog/add/auth")
+    @ManagerAuth
+    public R add(OrderLog orderLog) {
+        orderLogService.save(orderLog);
+        return R.ok();
+    }
+
+	@RequestMapping(value = "/orderLog/update/auth")
+	@ManagerAuth
+    public R update(OrderLog orderLog){
+        if (Cools.isEmpty(orderLog) || null==orderLog.getId()){
+            return R.error();
+        }
+        orderLogService.updateById(orderLog);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/orderLog/delete/auth")
+    @ManagerAuth
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+         for (Long id : ids){
+            orderLogService.removeById(id);
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/orderLogQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(OrderLog::getId, condition);
+        Page<OrderLog> page = orderLogService.page(new Page<>(0, 10), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (OrderLog orderLog : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", orderLog.getId());
+            map.put("value", orderLog.getId());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping("/orderLog/all/get/kv")
+    @ManagerAuth
+    public R getDataKV(@RequestParam(required = false) String condition) {
+        List<KeyValueVo> vos = new ArrayList<>();
+        LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(OrderLog::getId, condition);
+        }
+        orderLogService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getId()), item.getId())));
+        return R.ok().add(vos);
+    }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetlLog.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetlLog.java
new file mode 100644
index 0000000..ca0af79
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetlLog.java
@@ -0,0 +1,291 @@
+package com.zy.asrs.common.wms.entity;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.zy.asrs.common.wms.service.OrderService;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.common.sys.entity.User;
+import com.zy.asrs.common.sys.entity.Host;
+import com.zy.asrs.common.sys.service.UserService;
+import com.zy.asrs.common.sys.service.HostService;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("wms_order_detl_log")
+public class OrderDetlLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    private Long id;
+
+    /**
+     * 璁㈠崟鍐呯爜
+     */
+    @ApiModelProperty(value= "璁㈠崟鍐呯爜")
+    private Long orderId;
+
+    /**
+     * 鏁伴噺
+     */
+    @ApiModelProperty(value= "鏁伴噺")
+    private Double anfme;
+
+    /**
+     * 鍟嗗搧缂栫爜
+     */
+    @ApiModelProperty(value= "鍟嗗搧缂栫爜")
+    private String matnr;
+
+    /**
+     * 鍟嗗搧鍚嶇О
+     */
+    @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
+    private String maktx;
+
+    /**
+     * 鍚嶇О
+     */
+    @ApiModelProperty(value= "鍚嶇О")
+    private String name;
+
+    /**
+     * 瑙勬牸
+     */
+    @ApiModelProperty(value= "瑙勬牸")
+    private String specs;
+
+    /**
+     * 鍨嬪彿
+     */
+    @ApiModelProperty(value= "鍨嬪彿")
+    private String model;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value= "鎵瑰彿")
+    private String batch;
+
+    /**
+     * 鍗曚綅
+     */
+    @ApiModelProperty(value= "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鍟嗗搧鏉$爜
+     */
+    @ApiModelProperty(value= "鍟嗗搧鏉$爜")
+    private String barcode;
+
+    /**
+     * 渚涘簲鍟�
+     */
+    @ApiModelProperty(value= "渚涘簲鍟�")
+    private String supplier;
+
+    /**
+     * 鍗曚环
+     */
+    @ApiModelProperty(value= "鍗曚环")
+    private Double unitPrice;
+
+    /**
+     * 鍝侀」鏁�
+     */
+    @ApiModelProperty(value= "鍝侀」鏁�")
+    private Integer itemNum;
+
+    /**
+     * 鏁伴噺
+     */
+    @ApiModelProperty(value= "鏁伴噺")
+    private Double count;
+
+    /**
+     * 閲嶉噺
+     */
+    @ApiModelProperty(value= "閲嶉噺")
+    private Double weight;
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 绂佺敤  
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 绂佺敤  ")
+    private Integer status;
+
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    private Long createBy;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value= "娣诲姞鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    private Long updateBy;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
+
+    /**
+     * 鎺堟潈鍟嗘埛
+     */
+    @ApiModelProperty(value= "鎺堟潈鍟嗘埛")
+    private Long hostId;
+
+    public OrderDetlLog() {}
+
+    public OrderDetlLog(Long id,Long orderId,Double anfme,String matnr,String maktx,String name,String specs,String model,String batch,String unit,String barcode,String supplier,Double unitPrice,Integer itemNum,Double count,Double weight,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,Long hostId) {
+        this.id = id;
+        this.orderId = orderId;
+        this.anfme = anfme;
+        this.matnr = matnr;
+        this.maktx = maktx;
+        this.name = name;
+        this.specs = specs;
+        this.model = model;
+        this.batch = batch;
+        this.unit = unit;
+        this.barcode = barcode;
+        this.supplier = supplier;
+        this.unitPrice = unitPrice;
+        this.itemNum = itemNum;
+        this.count = count;
+        this.weight = weight;
+        this.status = status;
+        this.createBy = createBy;
+        this.createTime = createTime;
+        this.updateBy = updateBy;
+        this.updateTime = updateTime;
+        this.memo = memo;
+        this.hostId = hostId;
+    }
+
+//    OrderDetlLog orderDetlLog = new OrderDetlLog(
+//            null,    // ID[闈炵┖]
+//            null,    // 璁㈠崟鍐呯爜
+//            null,    // 鏁伴噺
+//            null,    // 鍟嗗搧缂栫爜
+//            null,    // 鍟嗗搧鍚嶇О
+//            null,    // 鍚嶇О
+//            null,    // 瑙勬牸
+//            null,    // 鍨嬪彿
+//            null,    // 鎵瑰彿
+//            null,    // 鍗曚綅
+//            null,    // 鍟嗗搧鏉$爜
+//            null,    // 渚涘簲鍟�
+//            null,    // 鍗曚环
+//            null,    // 鍝侀」鏁�
+//            null,    // 鏁伴噺
+//            null,    // 閲嶉噺
+//            null,    // 鐘舵��
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 娣诲姞鏃堕棿
+//            null,    // 淇敼浜哄憳
+//            null,    // 淇敼鏃堕棿
+//            null,    // 澶囨敞
+//            null    // 鎺堟潈鍟嗘埛
+//    );
+
+    public String getOrderId$(){
+        OrderService service = SpringUtils.getBean(OrderService.class);
+        Order order = service.getById(this.orderId);
+        if (!Cools.isEmpty(order)){
+            return String.valueOf(order.getId());
+        }
+        return 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 getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+    public String getHostId$(){
+        HostService service = SpringUtils.getBean(HostService.class);
+        Host host = service.getById(this.hostId);
+        if (!Cools.isEmpty(host)){
+            return String.valueOf(host.getName());
+        }
+        return null;
+    }
+
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderLog.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderLog.java
new file mode 100644
index 0000000..5bacd3e
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderLog.java
@@ -0,0 +1,465 @@
+package com.zy.asrs.common.wms.entity;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.zy.asrs.common.wms.service.CstmrService;
+import com.zy.asrs.common.wms.service.DocTypeService;
+import com.zy.asrs.common.wms.service.ItemService;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.common.sys.entity.User;
+import com.zy.asrs.common.sys.entity.Host;
+import com.zy.asrs.common.sys.service.UserService;
+import com.zy.asrs.common.sys.service.HostService;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("wms_order_log")
+public class OrderLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    private Long id;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
+    private String uuid;
+
+    /**
+     * 璁㈠崟缂栧彿
+     */
+    @ApiModelProperty(value= "璁㈠崟缂栧彿")
+    private String orderNo;
+
+    /**
+     * 鍗曟嵁鏃ユ湡
+     */
+    @ApiModelProperty(value= "鍗曟嵁鏃ユ湡")
+    private String orderTime;
+
+    /**
+     * 鍗曟嵁绫诲瀷
+     */
+    @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
+    private Long docType;
+
+    /**
+     * 椤圭洰缂栧彿
+     */
+    @ApiModelProperty(value= "椤圭洰缂栧彿")
+    private Long itemId;
+
+    @ApiModelProperty(value= "")
+    private String itemName;
+
+    /**
+     * 璋冩嫧椤圭洰缂栧彿
+     */
+    @ApiModelProperty(value= "璋冩嫧椤圭洰缂栧彿")
+    private Long allotItemId;
+
+    /**
+     * 鍒濆绁ㄦ嵁鍙�
+     */
+    @ApiModelProperty(value= "鍒濆绁ㄦ嵁鍙�")
+    private String defNumber;
+
+    /**
+     * 绁ㄦ嵁鍙�
+     */
+    @ApiModelProperty(value= "绁ㄦ嵁鍙�")
+    private String number;
+
+    /**
+     * 瀹㈡埛缂栧彿
+     */
+    @ApiModelProperty(value= "瀹㈡埛缂栧彿")
+    private Long cstmr;
+
+    /**
+     * 瀹㈡埛
+     */
+    @ApiModelProperty(value= "瀹㈡埛")
+    private String cstmrName;
+
+    /**
+     * 鑱旂郴鏂瑰紡
+     */
+    @ApiModelProperty(value= "鑱旂郴鏂瑰紡")
+    private String tel;
+
+    /**
+     * 鎿嶄綔浜哄憳
+     */
+    @ApiModelProperty(value= "鎿嶄綔浜哄憳")
+    private String operMemb;
+
+    /**
+     * 鍚堣閲戦
+     */
+    @ApiModelProperty(value= "鍚堣閲戦")
+    private Double totalFee;
+
+    /**
+     * 浼樻儬鐜�
+     */
+    @ApiModelProperty(value= "浼樻儬鐜�")
+    private Double discount;
+
+    /**
+     * 浼樻儬閲戦
+     */
+    @ApiModelProperty(value= "浼樻儬閲戦")
+    private Double discountFee;
+
+    /**
+     * 閿�鍞垨閲囪喘璐圭敤鍚堣
+     */
+    @ApiModelProperty(value= "閿�鍞垨閲囪喘璐圭敤鍚堣")
+    private Double otherFee;
+
+    /**
+     * 瀹炰粯閲戦
+     */
+    @ApiModelProperty(value= "瀹炰粯閲戦")
+    private Double actFee;
+
+    /**
+     * 浠樻绫诲瀷 1: 鐜伴噾  2: 璁拌处  
+     */
+    @ApiModelProperty(value= "浠樻绫诲瀷 1: 鐜伴噾  2: 璁拌处  ")
+    private Integer payType;
+
+    /**
+     * 涓氬姟鍛�
+     */
+    @ApiModelProperty(value= "涓氬姟鍛�")
+    private String salesman;
+
+    /**
+     * 缁撶畻澶╂暟
+     */
+    @ApiModelProperty(value= "缁撶畻澶╂暟")
+    private Integer accountDay;
+
+    /**
+     * 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯  2: 璐у埌浠樻  
+     */
+    @ApiModelProperty(value= "閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯  2: 璐у埌浠樻  ")
+    private Integer postFeeType;
+
+    /**
+     * 閭垂
+     */
+    @ApiModelProperty(value= "閭垂")
+    private Double postFee;
+
+    /**
+     * 浠樻鏃堕棿
+     */
+    @ApiModelProperty(value= "浠樻鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+
+    /**
+     * 鍙戣揣鏃堕棿
+     */
+    @ApiModelProperty(value= "鍙戣揣鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date sendTime;
+
+    /**
+     * 鐗╂祦鍚嶇О
+     */
+    @ApiModelProperty(value= "鐗╂祦鍚嶇О")
+    private String shipName;
+
+    /**
+     * 鐗╂祦鍗曞彿
+     */
+    @ApiModelProperty(value= "鐗╂祦鍗曞彿")
+    private String shipCode;
+
+    /**
+     * 璁㈠崟鐘舵��
+     */
+    @ApiModelProperty(value= "璁㈠崟鐘舵��")
+    private Long settle;
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 绂佺敤  
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 绂佺敤  ")
+    private Integer status;
+
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    private Long createBy;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value= "娣诲姞鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    private Long updateBy;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
+
+    /**
+     * 鎺堟潈鍟嗘埛
+     */
+    @ApiModelProperty(value= "鎺堟潈鍟嗘埛")
+    private Long hostId;
+
+    public OrderLog() {}
+
+    public OrderLog(Long id,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,Long hostId) {
+        this.id = id;
+        this.uuid = uuid;
+        this.orderNo = orderNo;
+        this.orderTime = orderTime;
+        this.docType = docType;
+        this.itemId = itemId;
+        this.itemName = itemName;
+        this.allotItemId = allotItemId;
+        this.defNumber = defNumber;
+        this.number = number;
+        this.cstmr = cstmr;
+        this.cstmrName = cstmrName;
+        this.tel = tel;
+        this.operMemb = operMemb;
+        this.totalFee = totalFee;
+        this.discount = discount;
+        this.discountFee = discountFee;
+        this.otherFee = otherFee;
+        this.actFee = actFee;
+        this.payType = payType;
+        this.salesman = salesman;
+        this.accountDay = accountDay;
+        this.postFeeType = postFeeType;
+        this.postFee = postFee;
+        this.payTime = payTime;
+        this.sendTime = sendTime;
+        this.shipName = shipName;
+        this.shipCode = shipCode;
+        this.settle = settle;
+        this.status = status;
+        this.createBy = createBy;
+        this.createTime = createTime;
+        this.updateBy = updateBy;
+        this.updateTime = updateTime;
+        this.memo = memo;
+        this.hostId = hostId;
+    }
+
+//    OrderLog orderLog = new OrderLog(
+//            null,    // ID[闈炵┖]
+//            null,    // 缂栧彿[闈炵┖]
+//            null,    // 璁㈠崟缂栧彿
+//            null,    // 鍗曟嵁鏃ユ湡
+//            null,    // 鍗曟嵁绫诲瀷
+//            null,    // 椤圭洰缂栧彿
+//            null,    // 
+//            null,    // 璋冩嫧椤圭洰缂栧彿
+//            null,    // 鍒濆绁ㄦ嵁鍙�
+//            null,    // 绁ㄦ嵁鍙�
+//            null,    // 瀹㈡埛缂栧彿
+//            null,    // 瀹㈡埛
+//            null,    // 鑱旂郴鏂瑰紡
+//            null,    // 鎿嶄綔浜哄憳
+//            null,    // 鍚堣閲戦
+//            null,    // 浼樻儬鐜�
+//            null,    // 浼樻儬閲戦
+//            null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+//            null,    // 瀹炰粯閲戦
+//            null,    // 浠樻绫诲瀷
+//            null,    // 涓氬姟鍛�
+//            null,    // 缁撶畻澶╂暟
+//            null,    // 閭垂鏀粯绫诲瀷
+//            null,    // 閭垂
+//            null,    // 浠樻鏃堕棿
+//            null,    // 鍙戣揣鏃堕棿
+//            null,    // 鐗╂祦鍚嶇О
+//            null,    // 鐗╂祦鍗曞彿
+//            null,    // 璁㈠崟鐘舵��
+//            null,    // 鐘舵��
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 娣诲姞鏃堕棿
+//            null,    // 淇敼浜哄憳
+//            null,    // 淇敼鏃堕棿
+//            null,    // 澶囨敞
+//            null    // 鎺堟潈鍟嗘埛
+//    );
+
+    public String getDocType$(){
+        DocTypeService service = SpringUtils.getBean(DocTypeService.class);
+        DocType docType = service.getById(this.docType);
+        if (!Cools.isEmpty(docType)){
+            return String.valueOf(docType.getDocName());
+        }
+        return null;
+    }
+
+    public String getItemId$(){
+        ItemService service = SpringUtils.getBean(ItemService.class);
+        Item item = service.getById(this.itemId);
+        if (!Cools.isEmpty(item)){
+            return String.valueOf(item.getId());
+        }
+        return null;
+    }
+
+    public String getAllotItemId$(){
+        ItemService service = SpringUtils.getBean(ItemService.class);
+        Item item = service.getById(this.allotItemId);
+        if (!Cools.isEmpty(item)){
+            return String.valueOf(item.getId());
+        }
+        return null;
+    }
+
+    public String getCstmr$(){
+        CstmrService service = SpringUtils.getBean(CstmrService.class);
+        Cstmr cstmr = service.getById(this.cstmr);
+        if (!Cools.isEmpty(cstmr)){
+            return String.valueOf(cstmr.getId());
+        }
+        return null;
+    }
+
+    public String getPayType$(){
+        if (null == this.payType){ return null; }
+        switch (this.payType){
+            case 1:
+                return "鐜伴噾";
+            case 2:
+                return "璁拌处";
+            default:
+                return String.valueOf(this.payType);
+        }
+    }
+
+    public String getPostFeeType$(){
+        if (null == this.postFeeType){ return null; }
+        switch (this.postFeeType){
+            case 1:
+                return "鍦ㄧ嚎鏀粯";
+            case 2:
+                return "璐у埌浠樻";
+            default:
+                return String.valueOf(this.postFeeType);
+        }
+    }
+
+    public String getPayTime$(){
+        if (Cools.isEmpty(this.payTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.payTime);
+    }
+
+    public String getSendTime$(){
+        if (Cools.isEmpty(this.sendTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
+    }
+
+    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 getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+    public String getHostId$(){
+        HostService service = SpringUtils.getBean(HostService.class);
+        Host host = service.getById(this.hostId);
+        if (!Cools.isEmpty(host)){
+            return String.valueOf(host.getName());
+        }
+        return null;
+    }
+
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlLogMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlLogMapper.java
new file mode 100644
index 0000000..ca0118a
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlLogMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.common.wms.mapper;
+
+import com.zy.asrs.common.wms.entity.OrderDetlLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface OrderDetlLogMapper extends BaseMapper<OrderDetlLog> {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderLogMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderLogMapper.java
new file mode 100644
index 0000000..11b6e7a
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderLogMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.common.wms.mapper;
+
+import com.zy.asrs.common.wms.entity.OrderLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface OrderLogMapper extends BaseMapper<OrderLog> {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
new file mode 100644
index 0000000..b549167
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
@@ -0,0 +1,444 @@
+package com.zy.asrs.common.wms.service;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.dto.LocTypeDto;
+import com.zy.asrs.common.domain.dto.StartupDto;
+import com.zy.asrs.common.wms.entity.LocMast;
+import com.zy.asrs.common.wms.entity.WrkLastno;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.exception.CoolException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 璐ф灦鏍稿績鍔熻兘
+ * Created by vincent on 2020/6/11
+ */
+@Slf4j
+@Service
+public class CommonService {
+
+    public static final List<Integer> FIRST_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(1);
+    }};
+    public static final List<Integer> SECOND_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(3);add(4);
+    }};
+    public static final List<Integer> THIRD_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(6);add(7);
+    }};
+    public static final List<Integer> FOURTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(8);
+    }};
+    public static final List<Integer> FIFTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(10);add(11);
+    }};
+    public static final List<Integer> SIXTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(13);add(14);add(15);add(16);
+    }};
+    public static final List<Integer> SEVENTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(13);add(14);
+    }};
+    public static final List<Integer> EIGHTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(16);
+    }};
+
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkLastnoService wrkLastnoService;
+    @Autowired
+    private RowLastnoService rowLastnoService;
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private BasDevpService basDevpService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private LocDetlService locDetlService;
+
+    /**
+     * 鐢熸垚宸ヤ綔鍙�
+     * @param wrkMk 0:鍏ュ嚭搴� ; 1:鍏朵粬
+     * @return workNo(宸ヤ綔鍙�)
+     */
+    public int getWorkNo(Integer wrkMk) {
+        WrkLastno wrkLastno = wrkLastnoService.getById(wrkMk);
+        if (Cools.isEmpty(wrkLastno)) {
+            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
+        int workNo = 0;
+        // 鍏ュ嚭搴撶被鍨�
+        workNo = wrkLastno.getWrkNo();
+        int sNo = wrkLastno.getStartNo();
+        int eNo = wrkLastno.getTargetNo();
+
+        workNo = workNo>=eNo ? sNo : workNo+1;
+
+        while (true) {
+            WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, workNo));
+            if (null != wrkMast) {
+                workNo = workNo>=eNo ? sNo : workNo+1;
+            } else {
+                break;
+            }
+        }
+        if (workNo > 0){
+            wrkLastno.setWrkNo(workNo);
+            wrkLastnoService.updateById(wrkLastno);
+        }
+        if (workNo == 0) {
+            throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
+        } else {
+            if (wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, workNo)) != null) {
+                throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
+            }
+        }
+        return workNo;
+    }
+
+    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
+        return getLocNo(staDescId, sourceStaNo, matNos, locTypeDto, times);
+    }
+
+    /**
+     * 妫�绱㈠簱浣嶅彿
+     *
+     * @param staDescId   璺緞ID
+     * @param sourceStaNo 婧愮珯
+     * @param matNos      鐗╂枡鍙烽泦鍚�
+     * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
+     */
+    public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
+        // 鐩爣搴撲綅
+        LocMast locMast = null;
+
+//        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+//        locMast = getLocNoStep4(staDescId, locTypeDto);
+//        if (locMast != null) {
+//            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+//        }
+
+//        //搴撲綅瑙勫垯
+//        locMast = getLocNoStepRule(matNos, locTypeDto);
+//        if (locMast != null) {
+//            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+//        }
+
+//        // 闈犺繎鎽嗘斁瑙勫垯 --- 鐩稿悓璁㈠崟鍙�, 鍚屽ぉ鍚岃鏍肩墿鏂�
+//        locMast = getLocNoStep3(staDescId, matNos, locTypeDto);
+//        if (locMast != null) {
+//            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+//        }
+//
+//        //鎼滅储鍗曞搧
+//        locMast = getLocNoStepSingle(matNos, locTypeDto);
+//        if (locMast != null) {
+//            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+//        }
+//
+//        //鎼滅储娣锋斁
+//        locMast = getLocNoStepMixed(matNos, locTypeDto, times);
+//        if (locMast != null) {
+//            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+//            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+//        }
+
+        //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
+        throw new CoolException("娌℃湁绌哄簱浣�");
+    }
+
+//    /**
+//     * 搴撲綅瑙勫垯
+//     */
+//    private LocMast getLocNoStepRule(List<String> matNos, LocTypeDto locTypeDto) {
+//        LocMast locMast = null;
+//
+//        //搴撲綅瑙勫垯鍙兘鍦ㄥ崟鍝佽揣鐗╀腑鐢熸晥
+//        if (matNos.size() == 1) {
+//            // 搴撳尯閿佸畾
+//            List<LocRule> locRules = locRuleService.find(Cools.isEmpty(matNos) ? null : matNos.get(0));
+//            if (locRules == null || locRules.isEmpty()) {
+//                return null;//娌℃湁搴撲綅瑙勫垯锛岃烦鍑哄綋鍓嶄换鍔�
+//            }
+//
+//            for (LocRule locRule : locRules) {
+//                if (locRule == null) {
+//                    continue;
+//                }
+//
+//                List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
+//                locMast = locFilter(locMasts, matNos,locTypeDto);
+//
+//            }
+//
+//            if (locRules.get(0).getKeepGo() == 0) {
+//                //鎵句笉鍒扮┖搴撲綅锛屼笖绂佹缁х画瀵绘壘鍏朵粬闈炴贩杞藉尯鍩熷簱浣�
+//                //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
+//                throw new CoolException("瑙勫垯鍖哄煙娌℃湁绌哄簱浣�");
+//            }
+//        }
+//
+//        return locMast;
+//    }
+
+//    // 闈犺繎鎽嗘斁瑙勫垯 --- 鐩稿悓璁㈠崟鍙�, 鍚屽ぉ鍚岃鏍肩墿鏂�
+//    private LocMast getLocNoStep3(Integer staDescId, List<String> matNos, LocTypeDto locTypeDto) {
+//        LocMast locMast = null;
+//        if (!Cools.isEmpty(matNos) && matNos.size() == 1 && staDescId == 1) {
+//            //鍏堝垽鏂伐浣滄。锛屾煡鎵句富妗OType=1锛� wrkSts < 10鐨勫伐浣滄槑缁嗭紝鏂欏彿鐩稿悓鐨勬槑缁嗗簱浣�
+//            List<WrkMast> wrkMasts = wrkMastService.selectSameMatnrs(matNos.get(0));
+//            for (WrkMast wrkMast : wrkMasts) {
+//                LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo());
+//                if (null != locMast0) {
+//                    // 娴呭簱浣嶇鍚堝昂瀵告娴�
+//                    if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
+//                        locMast = locMast0;
+//                    }
+//                }
+//            }
+//            if (Cools.isEmpty(locMast)) {
+//                //鍐嶅垽鏂簱瀛樻槑缁嗘。锛屾枡鍙风浉鍚岀殑鏄庣粏搴撲綅
+//                List<String> locNos = locDetlService.getSameDetl(matNos.get(0));
+//                for (String locNo : locNos) {
+//                    LocMast locMast0 = locMastService.findInnerLoc(locNo);
+//                    if (null != locMast0) {
+//                        // 娴呭簱浣嶇鍚堝昂瀵告娴�
+//                        if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
+//                            locMast = locMast0;
+//                            break;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return locMast;
+//    }
+//
+//    // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+//    private LocMast getLocNoStep4(Integer staDescId, LocTypeDto locTypeDto) {
+//        LocMast locMast = null;
+//        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+//        if (staDescId == 10) {
+//            //鍏堝垽鏂伐浣滄。锛屾煡鎵句富妗OType=1锛� wrkSts < 10鐨勫伐浣滄槑缁嗭紝鏂欏彿鐩稿悓鐨勬槑缁嗗簱浣�
+//            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type",10));
+//            for (WrkMast wrkMast : wrkMasts) {
+//                LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo());
+//                if (null != locMast0) {
+//                    // 娴呭簱浣嶇鍚堝昂瀵告娴�
+//                    if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
+//                        locMast = locMast0;
+//                        break;
+//                    }
+//                }
+//            }
+//            if (Cools.isEmpty(locMast)){
+//                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+//                        .eq("loc_sts", "O"));
+//                if (locMasts.size() > 0) {
+//                    for (LocMast loc : locMasts) {
+//                        LocMast locMast0 = locMastService.findNearloc(loc.getLocNo());
+//                        if (null != locMast0) {
+//                            // 娴呭簱浣嶇鍚堝昂瀵告娴�
+//                            if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
+//                                locMast = locMast0;
+//                                break;
+//                            }
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return locMast;
+//    }
+//
+//    // 鎼滅储娣锋斁
+//    private LocMast getLocNoStepMixed(List<String> matNos, LocTypeDto locTypeDto, int times) {
+//        LocMast locMast = null;
+//
+//        if (matNos.size() > 1) {
+//            List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 1);//鎼滅储娣锋斁搴撲綅
+//            //娣锋斁鍖哄煙鐩存帴鍙栫涓�涓嵆鍙�
+//            for (LocMast mast : locMasts) {
+//                //棰勭暀绌哄簱浣�
+//                if (locMastService.checkEmptyCount(mast, 10)) {
+//                    locMast = mast;
+//                    break;
+//                }
+//            }
+//        }
+//
+//        // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
+//        if (Cools.isEmpty(locMast)) {
+//            log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
+//        }
+//
+//        return locMast;
+//    }
+//
+//    // 鎼滅储鍗曞搧
+//    private LocMast getLocNoStepSingle(List<String> matNos, LocTypeDto locTypeDto) {
+//        LocMast locMast = null;
+//        // 1.鍏堟悳绱㈠崟鍝�
+//        if (matNos.size() == 1) {
+//            //鍗曞搧
+//            List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 2);//鎼滅储鍗曞搧搴撲綅
+//
+//            for (LocMast mast : locMasts) {
+//                List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo());
+//                if (!locMastService.checkAllLocEmpty(groupLoc)) {
+//                    continue;
+//                }
+//
+//                LocMast tmp = null;
+//                for (String loc : groupLoc) {
+//                    LocMast locMast1 = locMastService.selectByLoc(loc);
+//                    if (locMast1 == null) {
+//                        continue;
+//                    }
+//
+//                    if (!locMast1.getLocSts().equals("O")) {
+//                        continue;
+//                    }
+//
+//                    tmp = locMast1;
+//                    break;
+//                }
+//
+//                //棰勭暀绌哄簱浣�
+//                if (tmp != null && locMastService.checkEmptyCount(mast, 10)) {
+//                    locMast = tmp;
+//                    break;
+//                }
+//            }
+//
+//            if (locMast == null) {
+//                //鍗曞搧鎵句笉鍒板簱浣嶏紝鍏佽灏濊瘯浠庢贩鏀惧尯鍩熶腑杩涜鎼滅储
+//                List<LocMast> locMasts2 = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 1);//鎼滅储鍗曞搧搴撲綅
+//                //娣锋斁鍖哄煙鐩存帴鍙栫涓�涓嵆鍙�
+//                for (LocMast mast : locMasts2) {
+//                    //棰勭暀绌哄簱浣�
+//                    if (locMastService.checkEmptyCount(mast, 10)) {
+//                        locMast = mast;
+//                        break;
+//                    }
+//                }
+//            }
+//        }
+//
+//        return locMast;
+//    }
+//
+//    /*
+//    搴撳瓨瑙勫垯鎼滅储鍒扮殑搴撲綅纭
+//     */
+//    private LocMast locFilter(List<LocMast> locMasts,List<String> matNos,LocTypeDto locTypeDto){
+//        for (LocMast locMast0 : locMasts) {
+//            if(!VersionUtils.checkLocType(locMast0,locTypeDto)){
+//                continue;
+//            }
+//            //鍗曞搧鐗╂枡
+//            if (matNos.size() == 1) {
+//                //濡傛灉涓嶆槸娣辨祬锛屽垯鐩存帴杩斿洖褰撳墠搴撲綅
+//                if(Cools.isEmpty(Utils.getGroupDeepLoc(locMast0.getLocNo()))){
+//                    return locMast0;
+//                }else{
+//                    List<String> groupInnerLoc = Utils.getGroupInnerLoc(locMast0.getLocNo());
+//                    //濡傛灉鏄繁娴呭簱浣嶏紝浣嗘槸鍐呮祴鏃犲簱浣嶇殑鎯呭喌涓嬶紝鍒欑洿鎺ヨ繑鍥炲綋鍓嶅簱浣�
+//                    if (Cools.isEmpty(groupInnerLoc)) {
+//                        return locMast0;
+//                    }else {
+//                        //鑾峰彇鏈�娣辩殑搴撲綅
+//                        String loc = groupInnerLoc.get(groupInnerLoc.size() - 1);
+//                        LocMast locMast1 = locMastService.selectByLoc(loc);
+//                        //濡傛灉鏈�娣辨祴搴撲綅涓虹┖搴撲綅锛屽垯鐩存帴杩斿洖鏈�娣卞簱浣�
+//                        if("O".equals(locMast1.getLocSts())){
+//                            return locMast1;
+//                        }else {
+//                            //濡傛灉鏈�娣卞簱浣嶇姸鎬佷笉涓篎鎴栬�匫锛屽垯璺冲嚭褰撳墠鐨勬繁娴呭簱浣嶆煡鎵�
+//                            if(!"F".equals(locMast1.getLocSts())){
+//                                continue;
+//                            }
+//                            List<LocDetl> locDetls = locDetlService.selectByLocNo(loc);
+//                            //濡傛灉褰撳墠娣卞簱浣嶇墿鏂欎笌鍏ュ簱鐗╂枡涓嶇浉绗︼紝鍒欒烦鍑哄綋鍓嶆繁娴呭簱浣嶆煡鎵�
+//                            if(!Cools.eq(locDetls.get(0).getMatnr(),matNos.get(0))){
+//                                continue;
+//                            }
+//                            //浠庨噷寰�澶栦緷娆¢亶鍘嗚缁勬繁娴呭簱浣�
+//                            for (int i=groupInnerLoc.size()-1; i>=0 ;i--){
+//                                LocMast locMast2 = locMastService.selectByLoc(groupInnerLoc.get(i));
+//                                if("O".equals(locMast2.getLocSts())){
+//                                    //濡傛灉娣卞簱浣嶄腑鍚湁0鐘舵�佺殑搴撲綅锛屽垯鐩存帴杩斿洖璇ュ簱浣�
+//                                    return locMast2;
+//                                }else if("F".equals(locMast2.getLocSts())){
+//                                    //濡傛灉瀵逛簬locaMast0鏈�杩戠殑涓�涓簱浣嶄篃涓篎鐘舵�侊紝鍒欒繑鍥瀕ocaMastO
+//                                    if(i==0){
+//                                        return locMast0;
+//                                    }else {
+//                                        //濡傛灉璇ョ粍娣辨祬搴撲綅涓惈鏈夋棦涓嶄负F涔熶笉涓篛鐨勫簱浣嶏紝鍒欒烦鍑哄綋鍓嶆繁娴呭簱浣嶆煡鎵�
+//                                        continue;
+//                                    }
+//                                }else {
+//                                    break;
+//                                }
+//                            }
+//                        }
+//
+//                    }
+//                }
+//            }else {
+//                if(Cools.isEmpty(Utils.getGroupDeepLoc(locMast0.getLocNo()))){
+//                    return locMast0;
+//                }
+//            }
+//
+//        }
+//        return null;
+//    }
+//
+//    //杩斿洖dto
+//    private StartupDto getLocNoStep6(Integer staDescId, Integer sourceStaNo, LocMast locMast) {
+//        StartupDto startupDto = new StartupDto();
+//        String locNo = locMast.getLocNo();
+//        // 鑾峰彇鐩爣绔�
+//        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//                .eq("type_no", staDescId)
+//                .eq("stn_no", sourceStaNo)
+//                .eq("crn_no",Utils.stnNoToLiftNo(sourceStaNo));//鍊熺敤鍫嗗灈鏈哄彿瀛楁鍏呭綋鎻愬崌鏈哄彿
+//        StaDesc staDesc = staDescService.selectOne(wrapper);
+//        if (Cools.isEmpty(staDesc)) {
+//            log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}", staDescId, sourceStaNo);
+//            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+//        }
+//
+//        // 妫�娴嬬洰鏍囩珯
+//        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+//        if (!staNo.getAutoing().equals("Y")) {
+//            throw new CoolException("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
+//        }
+//
+//        // 鐢熸垚宸ヤ綔鍙�
+//        int workNo = getWorkNo(0);
+//        // 杩斿洖dto
+//        startupDto.setWorkNo(workNo);
+//        startupDto.setSourceStaNo(sourceStaNo);
+//        startupDto.setStaNo(staNo.getDevNo());
+//        startupDto.setLocNo(locMast.getLocNo());
+//        return startupDto;
+//    }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlLogService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlLogService.java
new file mode 100644
index 0000000..7936485
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlLogService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.common.wms.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.common.wms.entity.OrderDetlLog;
+
+public interface OrderDetlLogService extends IService<OrderDetlLog> {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderLogService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderLogService.java
new file mode 100644
index 0000000..12f962a
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderLogService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.common.wms.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.common.wms.entity.OrderLog;
+
+public interface OrderLogService extends IService<OrderLog> {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
index ab23442..124b4a2 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
@@ -1,5 +1,13 @@
 package com.zy.asrs.common.wms.service;
 
+import com.zy.asrs.common.domain.param.FullStoreParam;
+
 public interface WorkService {
 
+    /**
+     * 鍏ㄦ澘鍏ュ簱
+     * @return 搴撲綅鍙�
+     */
+    String startupFullPutStore(FullStoreParam param, Long userId);
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlLogServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlLogServiceImpl.java
new file mode 100644
index 0000000..ddcfe4e
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlLogServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.common.wms.service.impl;
+
+import com.zy.asrs.common.wms.mapper.OrderDetlLogMapper;
+import com.zy.asrs.common.wms.entity.OrderDetlLog;
+import com.zy.asrs.common.wms.service.OrderDetlLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("orderDetlLogService")
+public class OrderDetlLogServiceImpl extends ServiceImpl<OrderDetlLogMapper, OrderDetlLog> implements OrderDetlLogService {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderLogServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderLogServiceImpl.java
new file mode 100644
index 0000000..d799033
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderLogServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.common.wms.service.impl;
+
+import com.zy.asrs.common.wms.mapper.OrderLogMapper;
+import com.zy.asrs.common.wms.entity.OrderLog;
+import com.zy.asrs.common.wms.service.OrderLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("orderLogService")
+public class OrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog> implements OrderLogService {
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index dffe8f5..2872342 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -1,8 +1,25 @@
 package com.zy.asrs.common.wms.service.impl;
 
-import com.zy.asrs.common.wms.service.WorkService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.dto.DetlDto;
+import com.zy.asrs.common.domain.dto.LocTypeDto;
+import com.zy.asrs.common.domain.dto.StartupDto;
+import com.zy.asrs.common.domain.param.FullStoreParam;
+import com.zy.asrs.common.wms.entity.BasDevp;
+import com.zy.asrs.common.wms.entity.LocMast;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.BaseRes;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.exception.CoolException;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * Created by vincent on 2020/6/11
@@ -11,4 +28,93 @@
 @Service
 public class WorkServiceImpl implements WorkService {
 
+    // 搴撲綅鎺掑彿鍒嗛厤榛樿绫诲埆
+    private static final int DEFAULT_ROW_NO_TYPE = 1;
+
+    @Autowired
+    private BasDevpService basDevpService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private LocMastService locMastService;
+
+    @Override
+    @Transactional
+    public String startupFullPutStore(FullStoreParam param, Long userId) {
+        // 鍙傛暟闈炵┖鍒ゆ柇
+        if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        Date now = new Date();
+//        // 婧愮珯鐐圭姸鎬佹娴�
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
+//        // 妫�绱㈠簱浣�
+//        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto();
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), null, locTypeDto, 0);
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = dto.getWorkNo();
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+//        wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+//        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+//        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+//        wrkMast.setCrnNo(dto.getCrnNo());
+//        wrkMast.setSourceStaNo(dto.getSourceStaNo());
+//        wrkMast.setStaNo(dto.getStaNo());
+//        wrkMast.setLocNo(dto.getLocNo());
+//        wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+//        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+//        wrkMast.setPicking("N"); // 鎷f枡
+//        wrkMast.setExitMk("N"); // 閫�鍑�
+//        wrkMast.setEmptyMk("N"); // 绌烘澘
+//        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+//        wrkMast.setAppeUser(String.valueOf(userId));
+//        wrkMast.setAppeTime(now);
+//        wrkMast.setModiUser(String.valueOf(userId));
+//        wrkMast.setModiTime(now);
+        if (!wrkMastService.save(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        List<DetlDto> detlDtos = new ArrayList<>();
+        param.getList().forEach(elem -> {
+            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+            if (DetlDto.has(detlDtos, detlDto)) {
+                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+                assert detlDto1 != null;
+                detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
+            } else {
+                detlDtos.add(detlDto);
+            }
+        });
+//        wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId);
+//        // 鏇存柊婧愮珯鐐逛俊鎭�
+//        sourceStaNo.setWrkNo(workNo);
+//        sourceStaNo.setModiUser(userId);
+//        sourceStaNo.setModiTime(now);
+//        if (!basDevpService.updateById(sourceStaNo)){
+//            throw new CoolException("鏇存柊婧愮珯澶辫触");
+//        }
+//        // 鏇存柊鐩爣搴撲綅鐘舵��
+//        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, dto.getLocNo()));
+//        if (locMast.getLocSts().equals("O")){
+//            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+//            locMast.setModiUser(userId);
+//            locMast.setModiTime(now);
+//            if (!locMastService.updateById(locMast)){
+//                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+//            }
+//        } else {
+//            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+//        }
+        return dto.getLocNo();
+    }
+
 }
diff --git a/zy-asrs-common/src/main/java/orderDetlLog.sql b/zy-asrs-common/src/main/java/orderDetlLog.sql
new file mode 100644
index 0000000..35bf25d
--- /dev/null
+++ b/zy-asrs-common/src/main/java/orderDetlLog.sql
@@ -0,0 +1,18 @@
+-- save orderDetlLog record
+-- mysql
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog/orderDetlLog.html', 'orderDetlLog绠$悊', null , '2', null , '1');
+
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog#view', '鏌ヨ', '', '3', '0', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog#btn-add', '鏂板', '', '3', '1', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog#btn-edit', '缂栬緫', '', '3', '2', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog#btn-delete', '鍒犻櫎', '', '3', '3', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderDetlLog#btn-export', '瀵煎嚭', '', '3', '4', '1');
+
+-- sqlserver
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog/orderDetlLog.html', N'orderDetlLog绠$悊', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog#view', N'鏌ヨ', '', '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog#btn-add', N'鏂板', '', '3', '1', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog#btn-edit', N'缂栬緫', '', '3', '2', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderDetlLog#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/zy-asrs-common/src/main/java/orderLog.sql b/zy-asrs-common/src/main/java/orderLog.sql
new file mode 100644
index 0000000..1eb94b5
--- /dev/null
+++ b/zy-asrs-common/src/main/java/orderLog.sql
@@ -0,0 +1,18 @@
+-- save orderLog record
+-- mysql
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog/orderLog.html', 'orderLog绠$悊', null , '2', null , '1');
+
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog#view', '鏌ヨ', '', '3', '0', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog#btn-add', '鏂板', '', '3', '1', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog#btn-edit', '缂栬緫', '', '3', '2', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog#btn-delete', '鍒犻櫎', '', '3', '3', '1');
+insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'orderLog#btn-export', '瀵煎嚭', '', '3', '4', '1');
+
+-- sqlserver
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog/orderLog.html', N'orderLog绠$悊', null, '2', null, '1');
+
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog#view', N'鏌ヨ', '', '3', '0', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog#btn-add', N'鏂板', '', '3', '1', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog#btn-edit', N'缂栬緫', '', '3', '2', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
+insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'orderLog#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlLogMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlLogMapper.xml
new file mode 100644
index 0000000..7848bd7
--- /dev/null
+++ b/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlLogMapper.xml
@@ -0,0 +1,5 @@
+<?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.common.wms.mapper.OrderDetlLogMapper">
+
+</mapper>
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/OrderLogMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/OrderLogMapper.xml
new file mode 100644
index 0000000..4fd146a
--- /dev/null
+++ b/zy-asrs-common/src/main/resources/mapper/wms/OrderLogMapper.xml
@@ -0,0 +1,5 @@
+<?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.common.wms.mapper.OrderLogMapper">
+
+</mapper>
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/StaDescController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java
similarity index 98%
rename from zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/StaDescController.java
rename to zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java
index 5794b9b..80076b9 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/StaDescController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/StaDescController.java
@@ -1,4 +1,4 @@
-package com.zy.asrs.common.wms.controller;
+package com.zy.asrs.wms.controller;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
index e4750ef..b3c042f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.wms.controller;
 
+import com.zy.asrs.common.domain.param.FullStoreParam;
 import com.zy.asrs.common.web.BaseController;
 import com.zy.asrs.common.wms.service.BasDevpService;
 import com.zy.asrs.common.wms.service.WorkService;
@@ -7,6 +8,7 @@
 import com.zy.asrs.framework.annotations.ManagerAuth;
 import com.zy.asrs.framework.common.R;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -69,4 +71,10 @@
         return R.ok().add(basDevpService.getAvailableOutSite(107, getHostId()));
     }
 
+    @RequestMapping("/full/store/put/start")
+    @ManagerAuth(memo = "鍏ㄦ澘鍏ュ簱")
+    public R fullStorePutStart(@RequestBody FullStoreParam fullStoreParam) {
+        return R.ok("鍏ュ簱鍚姩鎴愬姛").add(workService.startupFullPutStore(fullStoreParam,getUserId()));
+    }
+
 }
diff --git a/zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js b/zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js
new file mode 100644
index 0000000..3afdfe5
--- /dev/null
+++ b/zy-asrs-wms/src/main/webapp/static/js/orderDetlLog/orderDetlLog.js
@@ -0,0 +1,397 @@
+var pageCurr;
+var pageCount = 0;
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin', 'xmSelect'], function(){
+    var table = layui.table;
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var layDate = layui.laydate;
+    var form = layui.form;
+    var admin = layui.admin;
+    var xmSelect = layui.xmSelect;
+
+    // 鏁版嵁娓叉煋
+    tableIns = table.render({
+        elem: '#orderDetlLog',
+        headers: {token: localStorage.getItem('token')},
+        url: baseUrl+'/orderDetlLog/page/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: 'ID'}
+            ,{field: 'orderId$', align: 'center',title: '璁㈠崟鍐呯爜'}
+            ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+            ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜'}
+            ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'}
+            ,{field: 'name', align: 'center',title: '鍚嶇О'}
+            ,{field: 'specs', align: 'center',title: '瑙勬牸'}
+            ,{field: 'model', align: 'center',title: '鍨嬪彿'}
+            ,{field: 'batch', align: 'center',title: '鎵瑰彿'}
+            ,{field: 'unit', align: 'center',title: '鍗曚綅'}
+            ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜'}
+            ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+            ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+            ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+            ,{field: 'count', align: 'center',title: '鏁伴噺'}
+            ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+            ,{field: 'status$', align: 'center',title: '鐘舵��'}
+            ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+            ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+            ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+            ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+            ,{field: 'memo', align: 'center',title: '澶囨敞'}
+            ,{field: 'hostId$', 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;pageCount=count;
+            limit();
+        }
+    });
+
+    // 鐩戝惉鎺掑簭浜嬩欢
+    table.on('sort(orderDetlLog)', 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(orderDetlLog)', 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 = {
+                        'orderDetlLog': exportData,
+                        'fields': fields
+                    };
+                    $.ajax({
+                        url: baseUrl+"/orderDetlLog/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(orderDetlLog)', 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) {
+                form.val('detail', mData);
+                layDateRender(mData);
+                form.on('submit(editSubmit)', function (data) {
+                    var loadIndex = layer.load(2);
+                    $.ajax({
+                        url: baseUrl+"/orderDetlLog/"+(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+"/orderDetlLog/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(true);
+    });
+
+    // 閲嶇疆
+    form.on('submit(reset)', function (data) {
+        pageCurr = 1;
+        clearFormVal($('#search-box'));
+        tableReload(true);
+    });
+
+    // 鏃堕棿閫夋嫨鍣�
+    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
+            });
+
+        }, 100);
+    }
+    layDateRender();
+
+    window.loadOrderSel = function () {
+        return xmSelect.render({
+            el: '#orderXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/order/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadUserSel = function () {
+        return xmSelect.render({
+            el: '#userXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/user/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadUserSel = function () {
+        return xmSelect.render({
+            el: '#userXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/user/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadHostSel = function () {
+        return xmSelect.render({
+            el: '#hostXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/host/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+    parent.layer.closeAll();
+});
+
+function tableReload(search) {
+    if (pageCount === 0 || search) {
+        let searchData = {};
+        $.each($('#search-box [name]').serializeArray(), function() {
+            searchData[this.name] = this.value;
+        });
+        tableIns.reload({
+            where: searchData,
+            page: {curr: pageCurr}
+        });
+    } else {
+        $(".layui-laypage-btn")[0].click();
+    }
+}
diff --git a/zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js b/zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js
new file mode 100644
index 0000000..f92f4fd
--- /dev/null
+++ b/zy-asrs-wms/src/main/webapp/static/js/orderLog/orderLog.js
@@ -0,0 +1,504 @@
+var pageCurr;
+var pageCount = 0;
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin', 'xmSelect'], function(){
+    var table = layui.table;
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var layDate = layui.laydate;
+    var form = layui.form;
+    var admin = layui.admin;
+    var xmSelect = layui.xmSelect;
+
+    // 鏁版嵁娓叉煋
+    tableIns = table.render({
+        elem: '#orderLog',
+        headers: {token: localStorage.getItem('token')},
+        url: baseUrl+'/orderLog/page/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: 'ID'}
+            ,{field: 'uuid', align: 'center',title: '缂栧彿'}
+            ,{field: 'orderNo', align: 'center',title: '璁㈠崟缂栧彿'}
+            ,{field: 'orderTime', align: 'center',title: '鍗曟嵁鏃ユ湡'}
+            ,{field: 'docType$', align: 'center',title: '鍗曟嵁绫诲瀷'}
+            ,{field: 'itemId$', align: 'center',title: '椤圭洰缂栧彿'}
+            ,{field: 'itemName', align: 'center',title: ''}
+            ,{field: 'allotItemId$', align: 'center',title: '璋冩嫧椤圭洰缂栧彿'}
+            ,{field: 'defNumber', align: 'center',title: '鍒濆绁ㄦ嵁鍙�'}
+            ,{field: 'number', align: 'center',title: '绁ㄦ嵁鍙�'}
+            ,{field: 'cstmr$', align: 'center',title: '瀹㈡埛缂栧彿'}
+            ,{field: 'cstmrName', align: 'center',title: '瀹㈡埛'}
+            ,{field: 'tel', align: 'center',title: '鑱旂郴鏂瑰紡'}
+            ,{field: 'operMemb', align: 'center',title: '鎿嶄綔浜哄憳'}
+            ,{field: 'totalFee', align: 'center',title: '鍚堣閲戦'}
+            ,{field: 'discount', align: 'center',title: '浼樻儬鐜�'}
+            ,{field: 'discountFee', align: 'center',title: '浼樻儬閲戦'}
+            ,{field: 'otherFee', align: 'center',title: '閿�鍞垨閲囪喘璐圭敤鍚堣'}
+            ,{field: 'actFee', align: 'center',title: '瀹炰粯閲戦'}
+            ,{field: 'payType$', align: 'center',title: '浠樻绫诲瀷'}
+            ,{field: 'salesman', align: 'center',title: '涓氬姟鍛�'}
+            ,{field: 'accountDay', align: 'center',title: '缁撶畻澶╂暟'}
+            ,{field: 'postFeeType$', align: 'center',title: '閭垂鏀粯绫诲瀷'}
+            ,{field: 'postFee', align: 'center',title: '閭垂'}
+            ,{field: 'payTime$', align: 'center',title: '浠樻鏃堕棿'}
+            ,{field: 'sendTime$', align: 'center',title: '鍙戣揣鏃堕棿'}
+            ,{field: 'shipName', align: 'center',title: '鐗╂祦鍚嶇О'}
+            ,{field: 'shipCode', align: 'center',title: '鐗╂祦鍗曞彿'}
+            ,{field: 'settle', align: 'center',title: '璁㈠崟鐘舵��'}
+            ,{field: 'status$', align: 'center',title: '鐘舵��'}
+            ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+            ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+            ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+            ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+            ,{field: 'memo', align: 'center',title: '澶囨敞'}
+            ,{field: 'hostId$', 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;pageCount=count;
+            limit();
+        }
+    });
+
+    // 鐩戝惉鎺掑簭浜嬩欢
+    table.on('sort(orderLog)', 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(orderLog)', 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 = {
+                        'orderLog': exportData,
+                        'fields': fields
+                    };
+                    $.ajax({
+                        url: baseUrl+"/orderLog/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(orderLog)', 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) {
+                form.val('detail', mData);
+                layDateRender(mData);
+                form.on('submit(editSubmit)', function (data) {
+                    var loadIndex = layer.load(2);
+                    $.ajax({
+                        url: baseUrl+"/orderLog/"+(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+"/orderLog/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(true);
+    });
+
+    // 閲嶇疆
+    form.on('submit(reset)', function (data) {
+        pageCurr = 1;
+        clearFormVal($('#search-box'));
+        tableReload(true);
+    });
+
+    // 鏃堕棿閫夋嫨鍣�
+    function layDateRender(data) {
+        setTimeout(function () {
+            layDate.render({
+                elem: '.layui-laydate-range'
+                ,type: 'datetime'
+                ,range: true
+            });
+            layDate.render({
+                elem: '#payTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['payTime$']:null
+            });
+            layDate.render({
+                elem: '#sendTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['sendTime$']:null
+            });
+            layDate.render({
+                elem: '#createTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['createTime$']:null
+            });
+            layDate.render({
+                elem: '#updateTime\\$',
+                type: 'datetime',
+                value: data!==undefined?data['updateTime$']:null
+            });
+
+        }, 100);
+    }
+    layDateRender();
+
+    window.loadDocTypeSel = function () {
+        return xmSelect.render({
+            el: '#docTypeXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/docType/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadItemSel = function () {
+        return xmSelect.render({
+            el: '#itemXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/item/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadItemSel = function () {
+        return xmSelect.render({
+            el: '#itemXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/item/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadCstmrSel = function () {
+        return xmSelect.render({
+            el: '#cstmrXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/cstmr/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadUserSel = function () {
+        return xmSelect.render({
+            el: '#userXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/user/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadUserSel = function () {
+        return xmSelect.render({
+            el: '#userXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/user/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    window.loadHostSel = function () {
+        return xmSelect.render({
+            el: '#hostXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/host/all/get/kv",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {
+                        condition: val
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            cb(res.data)
+                        } else {
+                            cb([]);
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+    parent.layer.closeAll();
+});
+
+function tableReload(search) {
+    if (pageCount === 0 || search) {
+        let searchData = {};
+        $.each($('#search-box [name]').serializeArray(), function() {
+            searchData[this.name] = this.value;
+        });
+        tableIns.reload({
+            where: searchData,
+            page: {curr: pageCurr}
+        });
+    } else {
+        $(".layui-laypage-btn")[0].click();
+    }
+}
diff --git a/zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html b/zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html
new file mode 100644
index 0000000..ca8b002
--- /dev/null
+++ b/zy-asrs-wms/src/main/webapp/views/orderDetlLog/orderDetlLog.html
@@ -0,0 +1,247 @@
+<!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="condition" 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="timeRange" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+                        </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="orderDetlLog" lay-filter="orderDetlLog"></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/orderDetlLog/orderDetlLog.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+    <div 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 layui-form-required">ID: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="id" placeholder="璇疯緭鍏D" lay-vertype="tips" lay-verify="required">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">璁㈠崟鍐呯爜: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" style="display: none">
+                        <input id="orderId$" name="orderId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鏁伴噺: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="anfme" placeholder="璇疯緭鍏ユ暟閲�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍟嗗搧缂栫爜: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鐮�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍟嗗搧鍚嶇О: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍚嶇О: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="name" placeholder="璇疯緭鍏ュ悕绉�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">瑙勬牸: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍨嬪彿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鎵瑰彿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="batch" placeholder="璇疯緭鍏ユ壒鍙�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍗曚綅: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="unit" placeholder="璇疯緭鍏ュ崟浣�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍟嗗搧鏉$爜: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">渚涘簲鍟�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍗曚环: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="unitPrice" placeholder="璇疯緭鍏ュ崟浠�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍝侀」鏁�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鏁伴噺: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="count" placeholder="璇疯緭鍏ユ暟閲�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">閲嶉噺: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�">
+                    </div>
+                </div>
+                <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 cool-auto-complete">
+                        <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">
+                        <input id="createBy$" name="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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 cool-auto-complete">
+                        <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
+                        <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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="memo" placeholder="璇疯緭鍏ュ娉�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鎺堟潈鍟嗘埛: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="hostId" placeholder="璇疯緭鍏ユ巿鏉冨晢鎴�" style="display: none">
+                        <input id="hostId$" name="hostId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ巿鏉冨晢鎴�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="hostQueryByhostId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="hostQueryByhostIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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>
+    </div>
+</script>
+</html>
+
diff --git a/zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html b/zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html
new file mode 100644
index 0000000..2495ae9
--- /dev/null
+++ b/zy-asrs-wms/src/main/webapp/views/orderLog/orderLog.html
@@ -0,0 +1,351 @@
+<!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="condition" 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="timeRange" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+                        </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="orderLog" lay-filter="orderLog"></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/orderLog/orderLog.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+    <div 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 layui-form-required">ID: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="id" placeholder="璇疯緭鍏D" lay-vertype="tips" lay-verify="required">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label layui-form-required">缂栧彿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="uuid" placeholder="璇疯緭鍏ョ紪鍙�" lay-vertype="tips" lay-verify="required">
+                    </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="orderTime" placeholder="璇疯緭鍏ュ崟鎹棩鏈�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍗曟嵁绫诲瀷: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="docType" placeholder="璇疯緭鍏ュ崟鎹被鍨�" style="display: none">
+                        <input id="docType$" name="docType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="docTypeQueryBydocType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="docTypeQueryBydocTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">椤圭洰缂栧彿: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="itemId" placeholder="璇疯緭鍏ラ」鐩紪鍙�" style="display: none">
+                        <input id="itemId$" name="itemId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ラ」鐩紪鍙�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="itemQueryByitemId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="itemQueryByitemIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="itemName" placeholder="璇疯緭鍏�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">璋冩嫧椤圭洰缂栧彿: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="allotItemId" placeholder="璇疯緭鍏ヨ皟鎷ㄩ」鐩紪鍙�" style="display: none">
+                        <input id="allotItemId$" name="allotItemId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ皟鎷ㄩ」鐩紪鍙�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="itemQueryByallotItemId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="itemQueryByallotItemIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍒濆绁ㄦ嵁鍙�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="defNumber" placeholder="璇疯緭鍏ュ垵濮嬬エ鎹彿">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">绁ㄦ嵁鍙�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="number" placeholder="璇疯緭鍏ョエ鎹彿">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">瀹㈡埛缂栧彿: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="cstmr" placeholder="璇疯緭鍏ュ鎴风紪鍙�" style="display: none">
+                        <input id="cstmr$" name="cstmr$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ鎴风紪鍙�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="cstmrQueryBycstmr" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="cstmrQueryBycstmrSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">瀹㈡埛: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="cstmrName" placeholder="璇疯緭鍏ュ鎴�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鑱旂郴鏂瑰紡: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="tel" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鎿嶄綔浜哄憳: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="operMemb" placeholder="璇疯緭鍏ユ搷浣滀汉鍛�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍚堣閲戦: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="totalFee" placeholder="璇疯緭鍏ュ悎璁¢噾棰�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">浼樻儬鐜�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="discount" placeholder="璇疯緭鍏ヤ紭鎯犵巼">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">浼樻儬閲戦: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="discountFee" placeholder="璇疯緭鍏ヤ紭鎯犻噾棰�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">閿�鍞垨閲囪喘璐圭敤鍚堣: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="otherFee" placeholder="璇疯緭鍏ラ攢鍞垨閲囪喘璐圭敤鍚堣">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">瀹炰粯閲戦: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="actFee" placeholder="璇疯緭鍏ュ疄浠橀噾棰�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">浠樻绫诲瀷: </label>
+                    <div class="layui-input-block">
+                        <select name="payType">
+                            <option value="">璇烽�夋嫨浠樻绫诲瀷</option>
+                            <option value="1">鐜伴噾</option>
+                            <option value="2">璁拌处</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">涓氬姟鍛�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="salesman" placeholder="璇疯緭鍏ヤ笟鍔″憳">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">缁撶畻澶╂暟: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="accountDay" placeholder="璇疯緭鍏ョ粨绠楀ぉ鏁�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">閭垂鏀粯绫诲瀷: </label>
+                    <div class="layui-input-block">
+                        <select name="postFeeType">
+                            <option value="">璇烽�夋嫨閭垂鏀粯绫诲瀷</option>
+                            <option value="1">鍦ㄧ嚎鏀粯</option>
+                            <option value="2">璐у埌浠樻</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">閭垂: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="postFee" placeholder="璇疯緭鍏ラ偖璐�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">浠樻鏃堕棿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="payTime" id="payTime$" placeholder="璇疯緭鍏ヤ粯娆炬椂闂�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍙戣揣鏃堕棿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="sendTime" id="sendTime$" placeholder="璇疯緭鍏ュ彂璐ф椂闂�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鐗╂祦鍚嶇О: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="shipName" placeholder="璇疯緭鍏ョ墿娴佸悕绉�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鐗╂祦鍗曞彿: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="shipCode" placeholder="璇疯緭鍏ョ墿娴佸崟鍙�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">璁㈠崟鐘舵��: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="settle" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�">
+                    </div>
+                </div>
+                <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 cool-auto-complete">
+                        <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">
+                        <input id="createBy$" name="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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 cool-auto-complete">
+                        <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
+                        <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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="memo" placeholder="璇疯緭鍏ュ娉�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鎺堟潈鍟嗘埛: </label>
+                    <div class="layui-input-block cool-auto-complete">
+                        <input class="layui-input" name="hostId" placeholder="璇疯緭鍏ユ巿鏉冨晢鎴�" style="display: none">
+                        <input id="hostId$" name="hostId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ巿鏉冨晢鎴�" onfocus=this.blur()>
+                        <div class="cool-auto-complete-window">
+                            <input class="cool-auto-complete-window-input" data-key="hostQueryByhostId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                            <select class="cool-auto-complete-window-select" data-key="hostQueryByhostIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                            </select>
+                        </div>
+                    </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>
+    </div>
+</script>
+</html>
+

--
Gitblit v1.9.1