From 71d838e032d13a46a07917f5606862496220ea74 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 08 一月 2024 08:35:35 +0800
Subject: [PATCH] # 入库拣货功能添加

---
 src/main/webapp/static/js/locOwner/locOwner.js                 |    4 
 src/main/webapp/views/locOwner/locOwner.html                   |   12 
 src/main/java/com/zy/asrs/service/PlaQtyService.java           |    8 
 src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java  |   54 +
 src/main/java/com/zy/asrs/entity/ConfigType.java               |    1 
 src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java             |    6 
 src/main/java/com/zy/asrs/utils/Utils.java                     |    8 
 src/main/webapp/static/js/pla/plaDetl.js                       |  327 ++++++++++
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java  |   26 
 src/main/webapp/static/js/common.js                            |    1 
 src/main/webapp/views/pla/pickup.html                          |  211 ++++++
 src/main/java/com/zy/asrs/controller/OutController.java        |    3 
 src/main/java/com/zy/asrs/controller/ConfigTypeController.java |   24 
 src/main/webapp/static/js/pla/productionInfo.js                |   44 +
 src/main/webapp/views/configType/configTypeAdd.html            |   12 
 src/main/webapp/views/pla/productionInfo.html                  |    9 
 src/main/java/com/zy/asrs/controller/PlaController.java        |   89 ++
 src/main/webapp/views/pla/update.html                          |  147 ++++
 src/main/java/com/zy/asrs/entity/LocOwner.java                 |    4 
 src/main/java/com/zy/asrs/controller/MobileController.java     |   19 
 src/main/webapp/static/js/cool.js                              |   88 ++
 src/main/java/com/zy/asrs/entity/Pla.java                      |   60 +
 src/main/java/com/zy/asrs/controller/LocOwnerController.java   |   14 
 src/main/webapp/views/pla/returned.html                        |  198 ++++++
 src/main/java/com/zy/asrs/entity/PlaQty.java                   |   28 
 src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java     |   30 
 src/main/webapp/static/js/locDetl/locDetl.js                   |    1 
 src/main/webapp/views/pla/sellout.html                         |  247 +++++++
 src/main/java/com/zy/asrs/service/PlaService.java              |    3 
 src/main/webapp/views/pla/plaDetl.html                         |   45 +
 src/main/java/com/zy/asrs/controller/PlaQtyController.java     |  107 +++
 src/main/webapp/static/js/order/order.js                       |    2 
 src/main/webapp/static/js/configType/configType.js             |    5 
 33 files changed, 1,798 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConfigTypeController.java b/src/main/java/com/zy/asrs/controller/ConfigTypeController.java
index 7b1a9eb..543c7b2 100644
--- a/src/main/java/com/zy/asrs/controller/ConfigTypeController.java
+++ b/src/main/java/com/zy/asrs/controller/ConfigTypeController.java
@@ -15,8 +15,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 public class ConfigTypeController extends BaseController {
@@ -57,6 +56,27 @@
 
     }
 
+    @RequestMapping(value = "/configTypeQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+
+        String type = condition.split(",")[1];
+        condition = condition.split(",")[0];
+
+        EntityWrapper<ConfigType> wrapper = new EntityWrapper<>();
+        wrapper.eq("type",type);
+        wrapper.like("value", condition);
+        Page<ConfigType> page = configTypeService.selectPage(new Page<>(0, 32), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (ConfigType configType : page.getRecords()){
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", configType.getId());
+            map.put("value", configType.getValue());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/controller/LocOwnerController.java b/src/main/java/com/zy/asrs/controller/LocOwnerController.java
index d584267..27aad1e 100644
--- a/src/main/java/com/zy/asrs/controller/LocOwnerController.java
+++ b/src/main/java/com/zy/asrs/controller/LocOwnerController.java
@@ -1,22 +1,24 @@
 package com.zy.asrs.controller;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
-import com.core.common.DateUtils;
-import com.zy.asrs.entity.LocOwner;
-import com.zy.asrs.service.LocOwnerService;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
+import com.core.common.DateUtils;
 import com.core.common.R;
+import com.zy.asrs.entity.LocOwner;
+import com.zy.asrs.service.LocOwnerService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @RestController
 public class LocOwnerController extends BaseController {
@@ -119,6 +121,8 @@
             Map<String, Object> map = new HashMap<>();
             map.put("id", locOwner.getId());
             map.put("value", locOwner.getOwner());
+            map.put("phone", locOwner.getPhone());
+            map.put("addr", locOwner.getAddr());
             result.add(map);
         }
         return R.ok(result);
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 6329b95..0ec5bf0 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -431,6 +431,25 @@
         return R.ok();
     }
 
+    @RequestMapping("/plaDetl/packout1/v1")
+//    @ManagerAuth(memo="pla鍑哄簱")
+    public R plaPackOut1(@RequestBody JSONObject json){
+        String locNo = json.get("locNo").toString();
+        String batch = json.get("batch").toString();
+        String packageNo = json.get("packageNo").toString();
+        String orderNo = json.get("orderNo").toString();
+        String orderDetlId = json.get("orderDetlId").toString();
+        String wrkNo = json.get("wrkNo").toString();
+        Double anfme = Double.parseDouble(json.get("anfme").toString());
+
+        if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){
+            return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱");
+        }
+
+        mobileService.plaPakout(locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme);
+        return R.ok();
+    }
+
     @RequestMapping("/plaDetl/packout/v1")
 //    @ManagerAuth(memo="pla鍑哄簱")
     public R plaPackOut(@RequestBody JSONObject json){
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index c8b4695..02b14bc 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -191,10 +191,12 @@
             if(Cools.isEmpty(plaQty.getLocNo())){
                 continue;
             }
+            //鎻掑叆涓�鏉la鐨勬嫞璐т俊鎭�
             plaQtyService.insert(plaQty);
             addPakOUT(plaQty);
 
             Pla pla = plaService.selectByBatchAndPackageNo(plaQty.getBatch(), plaQty.getPackageNo());
+            //pla鏄庣粏涓慨鏀归攣瀹氬嚭搴撶殑閲嶉噺
             pla.setQtyAnfme(pla.getQtyAnfme() + plaQty.getQtyAnfme());
             plaService.updateById(pla);
 
@@ -315,6 +317,7 @@
         manPakOut.setCount(0.0);
         manPakOut.setDocNum(plaQty.getOrderNo());
         manPakOut.setNodeId(plaQty.getOrderDetlId());
+        manPakOut.setStatus(0);
         manPakOutService.insert(manPakOut);
         return R.ok();
     }
diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java
index 6cbdfc6..f8978f1 100644
--- a/src/main/java/com/zy/asrs/controller/PlaController.java
+++ b/src/main/java/com/zy/asrs/controller/PlaController.java
@@ -5,15 +5,23 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.ManPakOut;
 import com.zy.asrs.entity.Pla;
+import com.zy.asrs.entity.PlaQty;
+import com.zy.asrs.service.ManPakOutService;
+import com.zy.asrs.service.PlaQtyService;
 import com.zy.asrs.service.PlaService;
+import com.zy.asrs.utils.SaasUtils;
 import com.zy.common.web.BaseController;
+import org.springframework.beans.BeanUtils;
 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -22,6 +30,10 @@
 
     @Autowired
     private PlaService plaService;
+    @Autowired
+    private PlaQtyService plaQtyService;
+    @Autowired
+    private ManPakOutService manPakOutService;
 
     @RequestMapping(value = "/pla/list/auth")
     @ManagerAuth
@@ -56,6 +68,63 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/pla/delivery/auth")
+    @ManagerAuth
+    public R delivery() {
+        return R.ok(plaQtyService.getDeliveryDate());
+    }
+
+    @RequestMapping(value = "/pla/sellout/auth")
+    @ManagerAuth
+    public R sellout(@RequestBody List<Pla> plas) {
+
+        plas.forEach(pla -> {
+
+            if(pla.getWeightAnfme() - pla.getQtyAnfme() - pla.getOrderWeight() < 0){
+                throw new CoolException("璇ュ簱瀛樺墿浣欓噸閲忎笉瓒筹紝璇疯皟鏁村嚭搴撻噸閲�");
+            }
+            pla.setQtyAnfme(pla.getQtyAnfme() + pla.getOrderWeight());
+            pla.setHandlerBy(getUser().getUsername());
+            pla.setStatus("寰呭嚭搴�");
+            pla.setPakoutTime(pla.getPakoutTime().split("\\(")[0]);
+            PlaQty plaQty = new PlaQty();
+            BeanUtils.copyProperties(pla,plaQty);
+            plaQty.setCreateTime(new Date());
+            plaQty.setId(null);
+
+            plaService.updateById(pla);
+            plaQtyService.insert(plaQty);
+
+            //鐢熸垚鎷h揣鍗�
+            addPakOUT(plaQty);
+
+        });
+
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/pla/returned/auth")
+    @ManagerAuth
+    public R returned(@RequestBody List<PlaQty> plaQties) {
+        plaService.returned(plaQties,getUser());
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/pla/rework/auth")
+    @ManagerAuth
+    public R rework(@RequestBody List<Pla> plas) {
+        plas.forEach(pla -> {
+            Double anfme = pla.getWeightAnfme();
+            pla.setStatus("鍏ㄩ儴鍑哄簱");
+            pla.setModifyTime(new Date());
+            pla.setWeightAnfme(0.0);
+            plaService.updateById(pla);
+            SaasUtils.insertLog(1,pla.getLocNo(),pla.getBatch()+","+pla.getPackageNo(),anfme,getUser().getUsername());
+        });
+
+        return R.ok();
+    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
@@ -69,4 +138,24 @@
         }
     }
 
+    private R addPakOUT(PlaQty plaQty){
+        ManPakOut manPakOut=new ManPakOut();
+        manPakOut.setWrkNo(plaQty.getOrderNo()+"-"+System.currentTimeMillis());
+        manPakOut.setWrkSts((long)1);
+        manPakOut.setAnfme(plaQty.getOrderWeight());
+        manPakOut.setLocNo(plaQty.getLocNo());
+        manPakOut.setBatch(plaQty.getBatch());
+        manPakOut.setBarcode(plaQty.getPackageNo());
+        manPakOut.setUuid(String.valueOf(System.currentTimeMillis()));
+        manPakOut.setCreateTime(new Date());
+        manPakOut.setUpdateTime(new Date());
+        manPakOut.setCount(0.0);
+        manPakOut.setDocNum(plaQty.getOrderNo());
+        manPakOut.setStatus(0);
+        manPakOut.setNodeId(plaQty.getId());
+        //manPakOut.setNodeId(plaQty.getOrderDetlId());
+        manPakOutService.insert(manPakOut);
+        return R.ok();
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/controller/PlaQtyController.java b/src/main/java/com/zy/asrs/controller/PlaQtyController.java
new file mode 100644
index 0000000..3e2ef0b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/PlaQtyController.java
@@ -0,0 +1,107 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.ManPakOut;
+import com.zy.asrs.entity.PlaQty;
+import com.zy.asrs.service.ManPakOutService;
+import com.zy.asrs.service.PlaQtyService;
+import com.zy.asrs.service.PlaService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RestController
+public class PlaQtyController extends BaseController {
+
+    @Autowired
+    private PlaService plaService;
+    @Autowired
+    private PlaQtyService plaQtyService;
+    @Autowired
+    private ManPakOutService manPakOutService;
+
+    @RequestMapping(value = "/plaQty/list/auth")
+    @ManagerAuth
+    public R list(@RequestParam(defaultValue = "1")Integer curr,
+                  @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false)String condition,
+                  @RequestParam Map<String, Object> param){
+        excludeTrash(param);
+        EntityWrapper<PlaQty> wrapper = new EntityWrapper<>();
+        convert(param, wrapper);
+        allLike(PlaQty.class, param.keySet(), wrapper, condition);
+        return R.ok(plaQtyService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    @RequestMapping(value = "/plaQty/orderDetail/auth")
+    @ManagerAuth
+    public R getOrderDetail(String orderNo) {
+
+        List<PlaQty> plaQties = plaQtyService.selectList(new EntityWrapper<PlaQty>().eq("order_no", orderNo).eq(false,"returned",1));
+
+        plaQties = plaQties.stream().filter(plaQty -> {
+            ManPakOut manPakOut = manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("node_id", plaQty.getId()));
+            if (Cools.isEmpty(manPakOut)) {
+                return false;
+            }
+            if (Cools.isEmpty(manPakOut.getStatus()) || manPakOut.getStatus() != 1) {
+                return false;
+            }
+
+            return true;
+        }).collect(Collectors.toList());
+
+
+        return R.ok(plaQties);
+    }
+
+    @RequestMapping(value = "/plaQty/delivery/auth")
+    @ManagerAuth
+    public R delivery() {
+        return R.ok(plaQtyService.getDeliveryDate());
+    }
+
+    @RequestMapping(value = "/orderNoQuery/auth")
+    @ManagerAuth
+    public R query(String condition) {
+        EntityWrapper<PlaQty> wrapper = new EntityWrapper<>();
+        wrapper.setSqlSelect("order_no");
+        wrapper.like("id", condition);
+        wrapper.groupBy("order_no");
+        List<String> list = plaQtyService.selectOrderNo();
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (String orderNo : list){
+            Map<String, Object> map = new HashMap<>();
+            PlaQty plaQty = plaQtyService.selectOne(new EntityWrapper<PlaQty>().eq("order_no", orderNo));
+            map.put("id", plaQty.getId());
+            map.put("value", orderNo);
+            map.put("customer", plaQty.getCustomer());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            String val = String.valueOf(entry.getValue());
+            if (val.contains(RANGE_TIME_LINK)){
+                String[] dates = val.split(RANGE_TIME_LINK);
+                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else {
+                wrapper.like(entry.getKey(), val);
+            }
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/ConfigType.java b/src/main/java/com/zy/asrs/entity/ConfigType.java
index dfa0734..bf1e9cc 100644
--- a/src/main/java/com/zy/asrs/entity/ConfigType.java
+++ b/src/main/java/com/zy/asrs/entity/ConfigType.java
@@ -15,4 +15,5 @@
     private String type;
     private String value;
     private Date createTime;
+    private String name;
 }
diff --git a/src/main/java/com/zy/asrs/entity/LocOwner.java b/src/main/java/com/zy/asrs/entity/LocOwner.java
index a1573a0..35fc8ce 100644
--- a/src/main/java/com/zy/asrs/entity/LocOwner.java
+++ b/src/main/java/com/zy/asrs/entity/LocOwner.java
@@ -21,6 +21,10 @@
     @ApiModelProperty(value= "")
     private String owner;
 
+    private String phone;
+
+    private String addr;
+
     public LocOwner() {}
 
     public LocOwner(String owner) {
diff --git a/src/main/java/com/zy/asrs/entity/Pla.java b/src/main/java/com/zy/asrs/entity/Pla.java
index 17e4a38..e55fe3e 100644
--- a/src/main/java/com/zy/asrs/entity/Pla.java
+++ b/src/main/java/com/zy/asrs/entity/Pla.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.entity;
 
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
@@ -18,96 +19,153 @@
 
     //鍏ュ簱鏃堕棿
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField("pakin_time")
     private String pakinTime;
 
     //鎵瑰彿
+    @TableField("batch")
     private String batch;
 
     //鍖呰鍙�
+    @TableField("package_no")
     private String packageNo;
 
     //鐗屽彿
+    @TableField("brand")
     private String brand;
 
     //閲嶉噺
+    @TableField("weight")
     private Double weight;
 
     //杞﹂棿
+    @TableField("workshop")
     private String workshop;
 
     //鐢熶骇绾�
+    @TableField("line")
     private String line;
 
     //鍖呰绫诲瀷
+    @TableField("package_type")
     private String packageType;
 
     //鎵樼洏绫诲瀷
+    @TableField("zpallet_type")
     private String zpalletType;
 
     //缂犺啘
+    @TableField("film_wrap")
     private String filmWrap;
 
     //鐔旀寚
+    @TableField("finger_melting")
     private Double fingerMelting;
 
     //鐔旂偣
+    @TableField("fusing_point")
     private Double fusingPoint;
 
     //鎸ュ彂浠�1
+    @TableField("vadf1")
     private Double vadf1;
 
     //鎸ュ彂浠�2
+    @TableField("vadf2")
     private Double vadf2;
 
     //榛勫害
+    @TableField("yellowness")
     private Double yellowness;
 
     //涓嶉�忔槑搴�
+    @TableField("opacity")
     private Double opacity;
 
     //姘村垎
+    @TableField("water")
     private Double water;
 
     //L鍊�
+    @TableField("l")
     private Double l;
 
     //a鍊�
+    @TableField("a")
     private Double a;
 
     //b鍊�
+    @TableField("b")
     private Double b;
 
     //濉厖
+    @TableField("fill_in")
     private Double fillIn;
 
     //璐ㄩ噺鐘舵��
+    @TableField("mass_state")
     private String massState;
 
     //璐ㄩ噺闂
+    @TableField("problem")
     private String problem;
 
     //浠撳簱
+    @TableField("stash")
     private String stash;
 
     //搴撲綅
+    @TableField("loc_no")
     private String locNo;
 
     //鍓╀綑閲嶉噺
+    @TableField("weight_anfme")
     private Double weightAnfme = 0.0;
-    //鍓╀綑閲嶉噺
+    //寰呭嚭搴撴暟閲�
+    @TableField("qty_anfme")
     private Double qtyAnfme = 0.0;
 
     //鐘舵��
+    @TableField("status")
     private String status;
 
     //姝ラ
+    @TableField("step")
     private int step;
 
+    @TableField("create_time")
     private Date createTime;
 
+    @TableField("modify_time")
     private Date modifyTime;
 
+    @TableField("create_user")
     private String createUser;
 
+    @TableField("modify_user")
     private String modifyUser;
+
+    @TableField("order_no")
+    private String orderNo;
+
+    @TableField("pakout_time")
+    private String pakoutTime;
+
+    @TableField("order_weight")
+    private Double orderWeight;
+
+    @TableField("handler_by")
+    private String handlerBy;
+
+    @TableField("transfer")
+    private String transfer;
+
+    @TableField("customer")
+    private String customer;
+
+    @TableField("allocate")
+    private String allocate;
+
+    @TableField("memo")
+    private String memo;
 }
diff --git a/src/main/java/com/zy/asrs/entity/PlaQty.java b/src/main/java/com/zy/asrs/entity/PlaQty.java
index 80c0f73..59e06cb 100644
--- a/src/main/java/com/zy/asrs/entity/PlaQty.java
+++ b/src/main/java/com/zy/asrs/entity/PlaQty.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.entity;
 
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
@@ -39,6 +40,29 @@
     //鍒涘缓鏃堕棿
     private Date createTime;
 
+    @TableField("pakout_time")
+    private String pakoutTime;
+
+    @TableField("order_weight")
+    private Double orderWeight;
+
+    @TableField("handler_by")
+    private String handlerBy;
+
+    @TableField("transfer")
+    private String transfer;
+
+    @TableField("customer")
+    private String customer;
+
+    @TableField("allocate")
+    private String allocate;
+
+    @TableField("memo")
+    private String memo;
+
+    private int returned;
+
     public PlaQty(String batch, String packageNo, Long orderDetlId, Long orderId, String orderNo, Double qtyAnfme, String locNo, Date createTime) {
         this.batch = batch;
         this.packageNo = packageNo;
@@ -49,4 +73,8 @@
         this.createTime = createTime;
         this.orderId = orderId;
     }
+
+    public PlaQty(){
+
+    }
 }
diff --git a/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java b/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java
index 176e549..e82e930 100644
--- a/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java
@@ -3,10 +3,16 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.PlaQty;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 @Mapper
 @Repository
 public interface PlaQtyMapper extends BaseMapper<PlaQty> {
 
+    @Select("select top(10) order_no from asr_pla_qty group by order_no")
+    List<String> selectOrderNo();
+
 }
diff --git a/src/main/java/com/zy/asrs/service/PlaQtyService.java b/src/main/java/com/zy/asrs/service/PlaQtyService.java
index 92116fc..7f1a516 100644
--- a/src/main/java/com/zy/asrs/service/PlaQtyService.java
+++ b/src/main/java/com/zy/asrs/service/PlaQtyService.java
@@ -1,8 +1,16 @@
 package com.zy.asrs.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.PlaQty;
 
+import java.util.List;
+
 public interface PlaQtyService extends IService<PlaQty> {
 
+    JSONArray getDeliveryDate();
+
+    List<String> selectOrderNo();
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/PlaService.java b/src/main/java/com/zy/asrs/service/PlaService.java
index f73490f..b0dd42e 100644
--- a/src/main/java/com/zy/asrs/service/PlaService.java
+++ b/src/main/java/com/zy/asrs/service/PlaService.java
@@ -4,6 +4,7 @@
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.entity.Pla;
 import com.zy.asrs.entity.PlaQty;
+import com.zy.system.entity.User;
 
 import java.util.List;
 
@@ -13,4 +14,6 @@
 
     void queryStock(OrderDetl orderDetl, List<PlaQty> plaQties);
 
+    void returned(List<PlaQty> plaQties, User user);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 9bf7fa4..56ac370 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -21,6 +21,7 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.Synchro;
 import com.zy.system.entity.User;
+import com.zy.system.service.SaasLogService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -100,6 +101,10 @@
     private LocOwnerService locOwnerService;
     @Autowired
     private PlaService plaService;
+    @Autowired
+    private PlaQtyService plaQtyService;
+    @Autowired
+    private SaasLogService saasLogService;
 
 
 
@@ -1204,25 +1209,33 @@
     @Override
     public void plaPakin(String locNo, String batch, String packageNo) {
         Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo);
+        if(!pla.getLocNo().equals(locNo)){
+            throw new CoolException("璇ョ墿鏂欏叆搴撶殑搴撲綅閿欒");
+        }
         if("宸插叆搴�".equals(pla.getStatus())){
             throw new CoolException("璇ョ墿鏂欏凡鍏ュ簱");
         }
         pla.setStatus("宸插叆搴�");
         pla.setModifyTime(new Date());
         plaService.updateById(pla);
+        SaasUtils.insertLog(0,locNo,batch+","+packageNo,pla.getWeightAnfme(),null);
     }
 
     @Override
     @Transactional
     public void plaPakout(String locNo, String batch, String packageNo, String orderNo, String orderDetlId, String wrkNo, Double anfme) {
         Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo);
-        //Order order = orderService.selectByNo(orderNo);
-        OrderDetl orderDetl = orderDetlService.selectById(orderDetlId);
+
         ManPakOut manPakOut = manPakOutService.selectById(wrkNo);
+
+        PlaQty plaQty = plaQtyService.selectById(orderDetlId);
 
         //鏇存柊鎷h揣鍗曚俊鎭�
         if(manPakOut.getCount() + anfme > manPakOut.getAnfme()){
             throw new CoolException("鎷h揣閲嶉噺澶т簬鎷h揣鍗曟墍闇�鎷h揣閲嶉噺锛岃閲嶆柊鍒嗛厤鎷h揣閲嶉噺");
+        }
+        if(manPakOut.getStatus() == 1){
+            throw new CoolException("璇ユ嫞鏂欏崟宸插嚭搴�");
         }
         manPakOut.setCount(manPakOut.getCount() + anfme);
         if (manPakOut.getAnfme().equals(manPakOut.getCount())){
@@ -1230,21 +1243,16 @@
             manPakOutService.updateById(manPakOut);
         }
 
-        //鏇存柊鍗曟嵁鏄庣粏
-        orderDetl.setQty(orderDetl.getQty() + anfme);
-        orderDetlService.updateById(orderDetl);
-
-        //鏇存柊鍗曟嵁淇℃伅
-        orderService.checkComplete(orderNo);
-
         //鏇存柊pla鏄庣粏
         pla.setWeightAnfme(pla.getWeightAnfme() - anfme);
+        pla.setQtyAnfme(pla.getQtyAnfme() - anfme);
         if(pla.getWeightAnfme() <= 0){
             pla.setStatus("鍏ㄩ儴鍑哄簱");
         }else {
             pla.setStatus("閮ㄥ垎鍑哄簱");
         }
         plaService.updateById(pla);
+        SaasUtils.insertLog(1,locNo,batch+","+packageNo,anfme,null);
 
     }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java
index 2d7faca..06d2930 100644
--- a/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java
@@ -1,12 +1,66 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.asrs.entity.PlaQty;
 import com.zy.asrs.mapper.PlaQtyMapper;
 import com.zy.asrs.service.PlaQtyService;
 import org.springframework.stereotype.Service;
 
+import java.util.Calendar;
+import java.util.List;
+
 @Service("plaQtyService")
 public class PlaQtyServiceImpl extends ServiceImpl<PlaQtyMapper, PlaQty> implements PlaQtyService {
 
+    @Override
+    public JSONArray getDeliveryDate() {
+
+        JSONArray jsonArray = new JSONArray();
+
+        for (int i=0; i<8; i++){
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_YEAR, i/2);
+            int month = calendar.get(Calendar.MONTH) + 1;
+            int day = calendar.get(Calendar.DAY_OF_MONTH);
+
+            String isAm = i % 2 == 0 ? "涓婂崍" : "涓嬪崍";
+
+            String pakoutTimeQuery = month + "鏈�" + day + "鏃�" + isAm;
+            List<PlaQty> plaQties = this.selectList(new EntityWrapper<PlaQty>().eq("pakout_time", pakoutTimeQuery));
+
+            Double daysOutWeight = 0.0;
+            String handlerBy = "";
+            for (PlaQty plaQty : plaQties){
+                daysOutWeight += plaQty.getOrderWeight();
+                if(!handlerBy.contains(plaQty.getHandlerBy())){{
+                    handlerBy += "銆�" + plaQty.getHandlerBy();
+                }}
+            }
+
+            JSONObject object = new JSONObject();
+            String text = daysOutWeight > 0 ? pakoutTimeQuery + "(" + daysOutWeight/1000 + "鍚�)" : pakoutTimeQuery;
+
+            object.put("text",text);
+            object.put("user",handlerBy);
+
+            jsonArray.add(object);
+        }
+
+        return jsonArray;
+    }
+
+    @Override
+    public List<String> selectOrderNo() {
+        return this.baseMapper.selectOrderNo();
+    }
+
+    public static void main(String[] args) {
+        String str = "aaaa";
+
+
+        System.out.println(str.split("\\(" )[0]);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java
index 81a1491..5843839 100644
--- a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java
@@ -10,6 +10,8 @@
 import com.zy.asrs.mapper.PlaMapper;
 import com.zy.asrs.service.PlaQtyService;
 import com.zy.asrs.service.PlaService;
+import com.zy.asrs.utils.Utils;
+import com.zy.system.entity.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,4 +86,32 @@
         }
 
     }
+
+    //閫�鍥�
+    public void returned(List<PlaQty> plaQties, User user) {
+        plaQties.forEach(plaQty -> {
+            PlaQty plaQtyOut = plaQtyService.selectById(plaQty.getId());
+            plaQtyOut.setReturned(1);
+            plaQtyService.updateById(plaQtyOut);
+
+            PlaQty plaQtyReturned = new PlaQty();
+            plaQtyReturned.setBatch(plaQtyOut.getBatch());
+            plaQtyReturned.setPackageNo(plaQtyOut.getPackageNo());
+            plaQtyReturned.setCreateTime(new Date());
+            plaQtyReturned.setLocNo(plaQtyOut.getLocNo());
+            plaQtyReturned.setOrderNo(plaQtyOut.getOrderNo());
+            plaQtyReturned.setPakoutTime(Utils.getDateStr(new Date()));
+            plaQtyReturned.setOrderWeight(0 - plaQtyOut.getOrderWeight());
+            plaQtyReturned.setHandlerBy(user.getUsername());
+            plaQtyReturned.setCustomer(plaQtyOut.getCustomer());
+            plaQtyReturned.setMemo(plaQty.getMemo());
+            plaQtyService.insert(plaQtyReturned);
+
+            Pla pla = this.selectByBatchAndPackageNo(plaQty.getBatch(), plaQty.getPackageNo());
+            pla.setStatus("寰呭叆搴�");
+
+            this.updateById(pla);
+
+        });
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 890436b..74b1c52 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -5,7 +5,9 @@
 import com.zy.common.properties.SlaveProperties;
 
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -205,6 +207,11 @@
 
     }
 
+    public static String getDateStr(Date date){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return simpleDateFormat.format(date);
+    }
+
     public static void main(String[] args) {
         SlaveProperties slaveProperties = new SlaveProperties();
         slaveProperties.setDoubleDeep(true);
@@ -216,4 +223,5 @@
         System.out.println(deepRow);
 
     }
+
 }
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 7ecbb63..125cb65 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -115,7 +115,6 @@
     }
 }
 
-
 // http璇锋眰
 !function (n) {
     "use strict";
diff --git a/src/main/webapp/static/js/configType/configType.js b/src/main/webapp/static/js/configType/configType.js
index f6afb15..234ddc0 100644
--- a/src/main/webapp/static/js/configType/configType.js
+++ b/src/main/webapp/static/js/configType/configType.js
@@ -23,6 +23,7 @@
             {type: 'checkbox', fixed: 'left'}
             ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
             ,{field: 'type', align: 'center',title: '绫诲瀷'}
+            ,{field: 'name', align: 'center',title: '鍚嶇О'}
             ,{field: 'value', align: 'center',title: '鍊�'}
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
         ]],
@@ -86,8 +87,9 @@
                     shadeClose: false,
                     content: 'configTypeAdd.html',
                     success: function(layero, index){
-                    	clearFormVal(layer.getChildFrame('#detail', index));
+                    	// clearFormVal(layer.getChildFrame('#detail', index));
                         layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+
                     }
                 });
                 break;
@@ -266,6 +268,7 @@
             shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
         });
         var data = {
+            name: $('#type option:selected').text(),
             type: $('#type').val(),
             value: $('#value').val(),
         };
diff --git a/src/main/webapp/static/js/cool.js b/src/main/webapp/static/js/cool.js
index d817c09..511bbd9 100644
--- a/src/main/webapp/static/js/cool.js
+++ b/src/main/webapp/static/js/cool.js
@@ -26,12 +26,21 @@
     }
 }
 
+function test() {
+
+}
+
 /**
  * 鎼滅储鑷姩琛ュ叏 -- input
  */
 function autoLoad(val) {
     var inputDomVal = document.querySelector("input[data-key="+val+"]").value;
     var selectDom = document.querySelector("select[data-key="+val+"Select]");
+    var type = document.querySelector("input[data-key="+val+"]").getAttribute('data-value');
+    if(type){
+        inputDomVal = inputDomVal + "," + type;
+    }
+    //debugger;
     selectDom.length = 0;
     var defaultOption = new Option("鍙栨秷閫夋嫨", "");
     defaultOption.title = "";
@@ -49,6 +58,9 @@
                 for (var i=0;i<list.length;i++){
                     var option = new Option(list[i].value, i);
                     option.title = list[i].id;
+                    option.addr = list[i].addr;
+                    option.phone = list[i].phone;
+                    option.customer = list[i].customer;
                     selectDom.options[i+1] = option;
                 }
                 selectDom.style.display='block';
@@ -87,10 +99,86 @@
     } else {
         cacd.val(selectOptionDom.html());
         realDom.val(selectOptionDom.attr("title"));
+        if(selectOptionDom[0].phone){
+            $('#phone').val(selectOptionDom[0].phone);
+        }
+        if(selectOptionDom[0].addr){
+            $('#addr').val(selectOptionDom[0].addr);
+        }
+        if(selectOptionDom[0].customer){
+            $('#customerR').val(selectOptionDom[0].customer);
+            tableReload();
+
+        }else {
+            $('#customerR').val("");
+        }
     }
     inputDom.val("");
 }
 
+function tableReload(){
+    layui.use(['table','laydate', 'form'], function(){
+        var form = layui.form;
+        var layer = layui.layer;
+        var table = layui.table;
+        var orderNo = $('#orderNoV').val();
+        table.render({
+            elem: '#formSSXMTable',
+            height: 312,
+            headers: {token: localStorage.getItem('token')},
+            url: baseUrl+'/plaQty/orderDetail/auth',
+            where: {
+                orderNo: orderNo
+            },
+            page: true,
+            limit: 16,
+            limits: [16, 30, 50, 100, 200, 500],
+            cols: [[
+                {type: 'checkbox'},
+                {field: 'id', title: 'id', hide:true},
+                {field: 'batch', title: '鎵瑰彿'},
+                {field: 'packageNo', title: '鍖呭彿'},
+                {field: 'orderWeight', title: '閲嶉噺'}
+
+            ]],
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+            parseData: function (res) {
+                console.log(res)
+                return {
+                    'code': res.code,
+                    'msg': res.msg,
+                    'count': res.data.total,
+                    'data': res.data
+                }
+            },
+            response: {
+                statusCode: 200
+            },
+            done: function(res, curr, count) {
+                if (res.code === 403) {
+                    top.location.href = baseUrl+"/";
+                }
+                tableData = table.cache.locDetl;
+                console.log(tableData);
+                pageCurr=curr;
+                limit();
+                form.on('checkbox(tableCheckbox)', function (data) {
+                    var _index = $(data.elem).attr('table-index')||0;
+                    if(data.elem.checked){
+                        res.data[_index][data.value] = 'Y';
+                    }else{
+                        res.data[_index][data.value] = 'N';
+                    }
+                });
+            }
+        });
+    })
+
+}
+
 function reviewImg(src) {
     window.open().document.write("<img src="+src+" />");
 }
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 973cc32..0d5e4da 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -443,6 +443,7 @@
 
     // 鎼滅储鏍忔悳绱簨浠�
     form.on('submit(search)', function (data) {
+        debugger;
         pageCurr = 1;
         tableReload(false);
     });
diff --git a/src/main/webapp/static/js/locOwner/locOwner.js b/src/main/webapp/static/js/locOwner/locOwner.js
index 66e7283..517129f 100644
--- a/src/main/webapp/static/js/locOwner/locOwner.js
+++ b/src/main/webapp/static/js/locOwner/locOwner.js
@@ -23,7 +23,9 @@
         cols: [[
             // {type: 'checkbox'}
             {field: 'owner', align: 'center',title: '瀹㈡埛鍚嶇О'}
-            ,{field: 'id', align: 'center',title: '瀹㈡埛缂栫爜'}
+            ,{field: 'phone', align: 'center',title: '鐢佃瘽'}
+            ,{field: 'addr', align: 'center',title: '鍦板潃'}
+            ,{field: 'id', align: 'center',title: '瀹㈡埛缂栫爜',hide:true}
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
         ]],
         request: {
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 0d267c2..f6a94a8 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -152,8 +152,6 @@
         var data = obj.data;
         var layEvent = obj.event;
 
-
-
         if (layEvent === 'edit') {
             showEditModel(data);
         } else if (layEvent === 'del') {
diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js
index 6569d16..1962af6 100644
--- a/src/main/webapp/static/js/pla/plaDetl.js
+++ b/src/main/webapp/static/js/pla/plaDetl.js
@@ -5,6 +5,7 @@
 var matCodeLayerIdx;
 var data = [];
 var checkStatus = [];
+var dataCheck = [];
 function getCol() {
     var cols = [
         {field: 'id', title: 'id', align: 'center',hide:true}
@@ -16,8 +17,9 @@
         ,{field: 'weight', align: 'center',title: '閲嶉噺锛圞G锛�', hide:true}
         ,{field: 'workshop', align: 'center',title: '鐢熶骇杞﹂棿', hide:true}
         ,{field: 'line', align: 'center',title: '鐢熶骇绾�', hide:true}
-        ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷', hide:true}
-        ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷', hide:true}
+        ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷'}
+        ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷'}
+        ,{field: 'filmWrap', align: 'center',title: '缂犺啘', edit: true}
         ,{field: 'fingerMelting', align: 'center',title: '鐔旀寚锛坓/10min锛�'}
         ,{field: 'fusingPoint', align: 'center',title: '鐔旂偣锛堚剝锛�'}
         ,{field: 'vadf1', align: 'center',title: '鎸ュ彂浠�1锛�%锛�', hide:true}
@@ -25,9 +27,9 @@
         ,{field: 'yellowness', align: 'center',title: '榛勫害',  hide:true}
         ,{field: 'opacity', align: 'center',title: '涓嶉�忔槑搴︼紙0-100%锛�', hide:true}
         ,{field: 'water', align: 'center',title: '姘村垎锛坧pm锛�', hide:true}
-        ,{field: 'l', align: 'center',title: 'l鍊�', edit: true}
-        ,{field: 'a', align: 'center',title: 'a鍊�', edit: true}
-        ,{field: 'b', align: 'center',title: 'b鍊�', edit: true}
+        ,{field: 'l', align: 'center',title: 'l鍊�', edit: true, hide:true}
+        ,{field: 'a', align: 'center',title: 'a鍊�', edit: true, hide:true}
+        ,{field: 'b', align: 'center',title: 'b鍊�', edit: true, hide:true}
         ,{field: 'fillIn', align: 'center',title: '濉厖(%)', edit: true}
         ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��', hide:true}
         ,{field: 'problem', align: 'center',title: '璐ㄩ噺闂', hide:true}
@@ -35,14 +37,15 @@
         ,{field: 'locNo', align: 'center',title: '搴撲綅', edit:true}
         ,{field: 'weightAnfme', align: 'center',title: '鍓╀綑閲嶉噺锛圞G锛�', edit:true}
         ,{field: 'status', align: 'center',title: '鐘舵��', edit:true}
-        ,{field: 'createUser', align: 'center',title: '鍗曞彿', edit:true}
-        ,{field: 'createUser', align: 'center',title: '鍑哄簱鏃堕棿', edit:true}
-        ,{field: 'createUser', align: 'center',title: '閲嶉噺', edit:true}
-        ,{field: 'createUser', align: 'center',title: '缁忓姙浜�', edit:true}
-        ,{field: 'createUser', align: 'center',title: '娴佽浆褰㈠紡', edit:true}
-        ,{field: 'createUser', align: 'center',title: '瀹㈡埛鍚嶇О', edit:true}
-        ,{field: 'createUser', align: 'center',title: '璋冩嫧鍒�', edit:true}
-        ,{field: 'createUser', align: 'center',title: '澶囨敞', edit:true}
+        ,{align: 'center', title: '鏄庣粏', toolbar: '#tbLook'}
+        ,{field: 'orderNo', align: 'center',title: '鍗曞彿', edit:true}
+        ,{field: 'pakoutTime', align: 'center',title: '鍑哄簱鏃堕棿', edit:true}
+        ,{field: 'orderWeight', align: 'center',title: '閲嶉噺', edit:true}
+        ,{field: 'handlerBy', align: 'center',title: '缁忓姙浜�', edit:true}
+        ,{field: 'transfer', align: 'center',title: '娴佽浆褰㈠紡', edit:true}
+        ,{field: 'customer', align: 'center',title: '瀹㈡埛鍚嶇О', edit:true}
+        ,{field: 'allocate', align: 'center',title: '璋冩嫧鍒�', edit:true}
+        ,{field: 'memo', align: 'center',title: '澶囨敞', edit:true}
     ];
     return cols;
 }
@@ -104,6 +107,76 @@
         }
     });
 
+    table.on('tool(plaDetl)', function (obj) {
+        var data = obj.data;
+        var layEvent = obj.event;
+        if (layEvent === 'look') {
+            var $a = $(obj.tr).find('a[lay-event="look"]');
+            var offset = $a.offset();
+            var top = offset.top;
+            var left = offset.left;
+            layer.open({
+                type: 1,
+                title: false,
+                area: '1200px',
+                offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
+                shade: .01,
+                shadeClose: true,
+                fixed: false,
+                content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
+                success: function (layero) {
+                    table.render({
+                        elem: '#lookSSXMTable',
+                        headers: {token: localStorage.getItem('token')},
+                        url: baseUrl+'/plaQty/list/auth',
+                        where: {
+                            batch: data.batch,
+                            package_no: data.packageNo
+                        },
+                        page: true,
+                        cellMinWidth: 100,
+                        cols: [[
+                            {type: 'numbers'},
+                            {field: 'orderNo', title: '鍗曞彿'},
+                            {field: 'pakoutTime', title: '鍑哄簱鏃堕棿'},
+                            {field: 'orderWeight', title: '閲嶉噺'},
+                            {field: 'handlerBy', title: '缁忓姙浜�'},
+                            {field: 'transfer', title: '娴佽浆褰㈠紡'},
+                            {field: 'customer', title: '瀹㈡埛鍚嶇О'},
+                            {field: 'allocate', title: '璋冩嫧鍒�'},
+                            {field: 'memo', title: '澶囨敞'},
+                        ]],
+                        request: {
+                            pageName: 'curr',
+                            pageSize: 'limit'
+                        },
+                        parseData: function (res) {
+                            return {
+                                'code': res.code,
+                                'msg': res.msg,
+                                'count': res.data.total,
+                                'data': res.data.records
+                            }
+                        },
+                        response: {
+                            statusCode: 200
+                        },
+                        done: function () {
+                            $(layero).find('.layui-table-view').css('margin', '0');
+                        },
+                        size: ''
+                    });
+                }
+            });
+
+        }
+    })
+
+    // 鎼滅储鏍忔悳绱簨浠�
+    form.on('submit(search)', function (data) {
+        pageCurr = 1;
+        tableReload(false);
+    });
 
     // 閲嶇疆浜嬩欢
     form.on('submit(reset)', function (data) {
@@ -118,8 +191,37 @@
     }
 
     // 閲嶈浇琛ㄦ牸
-    function tableReload() {
-        tableIns.reload({data: matCodeData});
+    // function tableReload() {
+    //     tableIns.reload({data: matCodeData});
+    // }
+    function tableReload(child) {
+        var searchData = {
+        };
+        $.each($('#search-box [name]').serializeArray(), function() {
+            searchData[this.name] = this.value;
+        });
+        (child ? parent.tableIns : tableIns).reload({
+            where: searchData,
+            page: {
+                curr: pageCurr
+            },
+            done: function (res, curr, count) {
+                if (res.code === 403) {
+                    top.location.href = baseUrl+"/";
+                }
+                pageCurr=curr;
+                if (res.data.length === 0 && count !== 0) {
+                    tableIns.reload({
+                        where: searchData,
+                        page: {
+                            curr: pageCurr-1
+                        }
+                    });
+                    pageCurr -= 1;
+                }
+                limit(child);
+            }
+        });
     }
 
 
@@ -185,5 +287,200 @@
         })
     })
 
+    $(document).on('click','#rework', function () {
+        let data = table.cache.plaDetl;
+        let dataSave = [];
+        let dataOld = [];
+        for(var i=0; i<data.length; i++){
+            if(data[i].LAY_CHECKED){
+                dataSave.push(data[i]);
+            }else {
+                dataOld.push(data[i]);
+            }
+        }
+
+        if(!dataSave || dataSave.length < 1){
+            layer.msg("鏈嬀閫夛紝璇峰厛鍕鹃�夐渶瑕侀噸鍋氱殑搴撳瓨");
+            return;
+        }
+
+        layer.confirm('纭畾閲嶅仛閫変腑鐨勫簱瀛樺悧锛�', {
+            shade: .1,
+            skin: 'layui-layer-admin'
+        }, function (i) {
+            layer.close(i);
+            $.ajax({
+                url: baseUrl+"/pla/rework/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(dataSave),
+                contentType:'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.msg("鎻愪氦鎴愬姛");
+                        table.reload('productionInfoTable',{
+                            data: dataOld
+                        })
+                    } else if (res.code === 403){
+
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                    }
+                }
+            })
+        })
+    })
+
+    $(document).on('click','#updateZpallet', function () {
+        let data = table.cache.plaDetl;
+        let dataSave = [];
+        let dataOld = [];
+        for(var i=0; i<data.length; i++){
+            if(data[i].LAY_CHECKED){
+                data[i].step = 1;
+                dataSave.push(data[i]);
+            }else {
+                dataOld.push(data[i]);
+            }
+        }
+        dataCheck = dataSave;
+
+        if(!dataSave || dataSave.length < 1){
+            layer.msg("鏈嬀閫夛紝璇峰厛鍕鹃�夐渶瑕佹洿鏀圭殑搴撳瓨");
+            return;
+        }
+
+        layer.open({
+            type: 2,
+            title: '鎹㈠寘瑁�/鎵樼洏/缂犺啘',
+            maxmin: true,
+            area: ['500px', top.detailHeight],
+            shadeClose: false,
+            content: 'update.html',
+            success: function(layero, index){
+                layer.getChildFrame('#data-detail-submit-edit', index).hide();
+                top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+                layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+
+                var iframe = window['layui-layer-iframe' + index];
+                iframe.child(dataSave)
+            }
+        });
+    })
+
+    $(document).on('click','#sellout', function () {
+
+        let data = table.cache.plaDetl;
+        let dataSave = [];
+        let dataOld = [];
+        for(var i=0; i<data.length; i++){
+            if(data[i].LAY_CHECKED){
+                if(data[i].status === "寰呭叆搴�" || data[i].status === "鍏ㄩ儴鍑哄簱"){
+                    layer.msg("閫変腑鐨勬槑缁嗚繕鏈叆搴撴垨鑰呭凡鍏ㄩ儴鍑哄簱锛岃閲嶆柊閫夋嫨");
+                    return;
+                }
+                dataSave.push(data[i]);
+            }else {
+                dataOld.push(data[i]);
+            }
+        }
+        dataCheck = dataSave;
+
+        if(!dataSave || dataSave.length < 1){
+            layer.msg("鏈嬀閫夛紝璇峰厛鍕鹃�夐渶瑕佹洿鏀圭殑搴撳瓨");
+            return;
+        }
+        if(dataSave.length > 1){
+            layer.msg("璇峰嬀閫変竴鏉″簱瀛樻槑缁�");
+            return;
+        }
+
+        layer.open({
+            type: 2,
+            title: '鍗栧嚭',
+            maxmin: true,
+            area: ['800px', top.detailHeight],
+            shadeClose: false,
+            content: 'sellout.html',
+            success: function(layero, index){
+                layer.getChildFrame('#data-detail-submit-edit', index).hide();
+                top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+                layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+
+                var iframe = window['layui-layer-iframe' + index];
+                iframe.child(dataSave)
+            }
+        });
+    })
+
+    $(document).on('click','#pickup', function () {
+
+        let data = table.cache.plaDetl;
+        let dataSave = [];
+        let dataOld = [];
+        for(var i=0; i<data.length; i++){
+            if(data[i].LAY_CHECKED){
+                if(data[i].status === "寰呭叆搴�" || data[i].status === "鍏ㄩ儴鍑哄簱"){
+                    layer.msg("閫変腑鐨勬槑缁嗚繕鏈叆搴撴垨鑰呭凡鍏ㄩ儴鍑哄簱锛岃閲嶆柊閫夋嫨");
+                    return;
+                }
+                dataSave.push(data[i]);
+            }else {
+                dataOld.push(data[i]);
+            }
+        }
+        dataCheck = dataSave;
+
+        if(!dataSave || dataSave.length < 1){
+            layer.msg("鏈嬀閫夛紝璇峰厛鍕鹃�夐渶瑕佹洿鏀圭殑搴撳瓨");
+            return;
+        }
+        if(dataSave.length > 1){
+            layer.msg("璇峰嬀閫変竴鏉″簱瀛樻槑缁�");
+            return;
+        }
+
+        layer.open({
+            type: 2,
+            title: '鍗栧嚭',
+            maxmin: true,
+            area: ['800px', top.detailHeight],
+            shadeClose: false,
+            content: 'pickup.html',
+            success: function(layero, index){
+                layer.getChildFrame('#data-detail-submit-edit', index).hide();
+                top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+                layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+
+                var iframe = window['layui-layer-iframe' + index];
+                iframe.child(dataSave)
+            }
+        });
+    })
+
+    $(document).on('click','#returned', function () {
+
+        layer.open({
+            type: 2,
+            title: '閫�鍥�',
+            maxmin: true,
+            area: ['800px', '800px'],
+            shadeClose: false,
+            content: 'returned.html',
+            success: function(layero, index){
+                layer.getChildFrame('#data-detail-submit-edit', index).hide();
+                top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+
+            }
+        });
+    })
+
 })
 
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+    parent.layer.closeAll();
+});
+
+
diff --git a/src/main/webapp/static/js/pla/productionInfo.js b/src/main/webapp/static/js/pla/productionInfo.js
index db2fd0a..960585d 100644
--- a/src/main/webapp/static/js/pla/productionInfo.js
+++ b/src/main/webapp/static/js/pla/productionInfo.js
@@ -18,6 +18,7 @@
         ,{field: 'line', align: 'center',title: '鐢熶骇绾�', edit: true}
         ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷', edit: true}
         ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷', edit: true}
+        ,{field: 'filmWrap', align: 'center',title: '缂犺啘', edit: true}
     ];
     return cols;
 }
@@ -32,6 +33,8 @@
     var form = layui.form;
     var admin = layui.admin;
 
+    initSelector();
+
     tableIns = table.render({
         elem: '#productionInfoTable',
         data: [],
@@ -45,6 +48,46 @@
         }
     });
 
+
+    function initSelector(){
+        $('#package').append('<option value="value">Text</option>');
+
+        var selectDom = $('#package');
+        $.ajax({
+            url: baseUrl+"/configTypeQuery/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {condition: ',packageType'},
+            method: 'POST',
+            traditional:true,
+            success: function (res) {
+                if (res.code === 200){
+                    var list = res.data;
+                    for (var i=0;i<list.length;i++){
+                        var option = new Option(list[i].value, i);
+                        selectDom.append($("<option></option>").attr("value",option["value"]));
+                    }
+
+                } else if (res.code === 403){
+
+                }else {
+                    layer.msg(res.msg, {icon: 2})
+                }
+            }
+        })
+        $('#packageCheck').val();
+    }
+
+    form.on('select(selectDemo1)', function (data) {
+        debugger
+        console.log(data.elem);
+        var elem = $(data.elem);
+        var trElem = elem.parents('tr');
+        console.log(trElem);
+        var tableData = table.cache.productionInfoTable; // 涓簍able id
+        console.log(tableData);
+        // 鏇存柊鍒拌〃鏍肩殑缂撳瓨鏁版嵁涓紝鎵嶈兘鍦ㄨ幏寰楅�変腑琛岀瓑绛夊叾浠栫殑鏂规硶涓緱鍒版洿鏂颁箣鍚庣殑鍊�
+        tableData[trElem.data('index')][elem.attr('name')] = data.value;
+    });
 
     // 閲嶇疆浜嬩欢
     form.on('submit(reset)', function (data) {
@@ -62,7 +105,6 @@
     function tableReload() {
         tableIns.reload({data: matCodeData});
     }
-
 
 
     $(document).on('click','#add', function () {
diff --git a/src/main/webapp/views/configType/configTypeAdd.html b/src/main/webapp/views/configType/configTypeAdd.html
index d7ee719..208fc83 100644
--- a/src/main/webapp/views/configType/configTypeAdd.html
+++ b/src/main/webapp/views/configType/configTypeAdd.html
@@ -18,7 +18,17 @@
         <div class="layui-inline"  style="width:45%;">
             <label class="layui-form-label"><span class="not-null">*</span>绫汇��銆�鍨嬶細</label>
             <div class="layui-input-inline">
-                <input id="type" class="layui-input" type="text" lay-verify="required" >
+                <select id="type" lay-verify="required">
+                    <option value="packageType" selected = "selected">鍖呰绫诲瀷</option>
+                    <option value="zpalletType">鎵樼洏绫诲瀷</option>
+                    <option value="filmWrap">缂犺啘</option>
+                    <option value="allocate">璋冩嫧鍒�</option>
+                </select>
+<!--                <input id="type" class="layui-input" type="select" list="typelist" lay-verify="required" >-->
+<!--                <datalist id="typelist">-->
+<!--                    <option value="packageType">鍖呰绫诲瀷</option>-->
+<!--                    <option value="zpalletType">鎵樼洏绫诲瀷</option>-->
+<!--                </datalist>-->
             </div>
         </div>
         <div class="layui-inline"  style="width:45%;">
diff --git a/src/main/webapp/views/locOwner/locOwner.html b/src/main/webapp/views/locOwner/locOwner.html
index 1ef1ead..3efea7b 100644
--- a/src/main/webapp/views/locOwner/locOwner.html
+++ b/src/main/webapp/views/locOwner/locOwner.html
@@ -71,6 +71,18 @@
                         <input class="layui-input" name="owner" placeholder="瀹㈡埛鍚嶇О" 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="phone" placeholder="瀹㈡埛鐢佃瘽" 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="addr" placeholder="瀹㈡埛鍦板潃" lay-vertype="tips" lay-verify="required">
+                    </div>
+                </div>
 
              </div>
         </div>
diff --git a/src/main/webapp/views/pla/pickup.html b/src/main/webapp/views/pla/pickup.html
new file mode 100644
index 0000000..90a3b19
--- /dev/null
+++ b/src/main/webapp/views/pla/pickup.html
@@ -0,0 +1,211 @@
+<!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/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+    <form id="detail" class="layui-form" style="text-align: center">
+        <div class="layui-inline"  style="width:83%;margin-top: 0px;margin-bottom: 5px;">
+            <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟鍙枫��锛�</label>
+            <div class="layui-input-inline">
+                <input id="orderNo" class="layui-input" type="text" lay-verify="required" >
+            </div>
+        </div>
+        <div class="layui-form layui-card-header">
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>鍙栬揣閲嶉噺锛�</label>
+                <div class="layui-input-inline">
+                    <input id="weight" class="layui-input" type="text" lay-verify="required" placeholder="KG">
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-form layui-card-header">
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"></span>澶囥��銆�娉細</label>
+                <div class="layui-input-inline">
+                    <input id="memo" class="layui-input" type="text">
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-form layui-card-header" >
+            <label class="layui-form-label"><span class="not-null">*</span>閫夋嫨鍙戣揣鏃堕棿锛�</label> </br>
+            <i class="layui-icon layui-icon-date" style="font-size: 30px; color: #3F3F3F;"></i>
+            <div class="layui-form-item">
+                <button id="btn-day1-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">浠婂ぉ涓嬪崍 80 鉁�</button>
+                <button id="btn-day2-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鏄庡ぉ涓嬪崍</button>
+                <button id="btn-day3-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+                <button id="btn-day4-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+            </div>
+            <div class="layui-form-item ">
+                <button id="btn-day1-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">浠婂ぉ涓嬪崍</button>
+                <button id="btn-day2-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鏄庡ぉ涓嬪崍</button>
+                <button id="btn-day3-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+                <button id="btn-day4-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+            </div>
+        </div>
+
+        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+        </div>
+
+    </form>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
+</html>
+<script>
+    var checkData = [];
+    var deliveryTime;
+    function child(data){
+        checkData = data;
+        delivery();
+
+    }
+
+    function delivery(){
+        $.ajax({
+            url: baseUrl+"/plaQty/delivery/auth",
+            headers: {'token': localStorage.getItem('token')},
+            contentType:'application/json;charset=UTF-8',
+            method: 'POST',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    $('#btn-day1-am').text(res.data[0].text);
+                    $('#btn-day1-pm').text(res.data[1].text);
+                    $('#btn-day2-am').text(res.data[2].text);
+                    $('#btn-day2-pm').text(res.data[3].text);
+                    $('#btn-day3-am').text(res.data[4].text);
+                    $('#btn-day3-pm').text(res.data[5].text);
+                    $('#btn-day4-am').text(res.data[6].text);
+                    $('#btn-day4-pm').text(res.data[7].text);
+                    $("#btn-day1-am").hover(function(){
+                        $(this).attr("title", res.data[0].user);
+                    }, function(){
+                        $(this).removeAttr("title");
+                    });
+
+                } else if (res.code === 403){
+                    layer.msg(res.msg, {icon: 2})
+                    return;
+                }else {
+                    layer.msg(res.msg, {icon: 2})
+                    return;
+                }
+            }
+        })
+    }
+
+    $('.delivery').click(function (){
+        delivery();
+        deliveryTime = this.textContent;
+        this.append(' 鉁�');
+        $('.delivery').addClass('layui-btn-primary');
+        this.classList.remove('layui-btn-primary');
+
+    })
+
+    layui.use(['table','laydate', 'form'], function(){
+        var form = layui.form;
+        var layer = layui.layer;
+        var table = layui.table;
+
+        // 鏁版嵁淇敼鍔ㄤ綔
+        form.on('submit(save)', function () {
+
+            for(var i in checkData){
+                checkData[i].packageType = $('#packageTypeV').val();
+                checkData[i].zpalletType = $('#zpalletTypeV').val();
+                checkData[i].filmWrap = $('#filmWrapV').val();
+                checkData[i].step = 3;
+            }
+
+            checkData[0].type = "pickup";
+
+            checkData[0].orderNo = $('#orderNo').val();
+            checkData[0].customer = $('#customerV').val() ? $('#customerV').val() : "";
+            checkData[0].phone = $('#phone').val() ? $('#phone').val() : " ";
+            checkData[0].addr = $('#addr').val() ? $('#addr').val() : " ";
+            checkData[0].orderWeight = $('#weight').val();
+            checkData[0].allocate = $('#allocateV').val() ? $('#allocateV').val() : "";
+            checkData[0].memo = $('#memo').val() ? $('#memo').val() : "";
+            if(!deliveryTime){
+                layer.msg("璇烽�夋嫨鍙戣揣鏃堕棿");
+                return;
+            }
+            checkData[0].pakoutTime = deliveryTime;
+
+            $.ajax({
+                url: baseUrl+"/pla/sellout/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(checkData),
+                contentType:'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.msg("淇敼鎴愬姛");
+                        tableReload(true);
+                    } else if (res.code === 403){
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }
+                    parent.layer.closeAll();
+                }
+            })
+        });
+
+        function tableReload(child) {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            (child ? parent.tableIns : tableIns).reload({
+                where: searchData,
+                page: {
+                    curr: 1
+                },
+                done: function (res, curr, count) {
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    pageCurr=curr;
+                    if (res.data.length === 0 && count !== 0) {
+                        tableIns.reload({
+                            where: searchData,
+                            page: {
+                                curr: pageCurr-1
+                            }
+                        });
+                        pageCurr -= 1;
+                    }
+                    limit(child);
+                }
+            });
+        }
+
+    })
+
+</script>
+
diff --git a/src/main/webapp/views/pla/plaDetl.html b/src/main/webapp/views/pla/plaDetl.html
index 1c0db59..98b7af6 100644
--- a/src/main/webapp/views/pla/plaDetl.html
+++ b/src/main/webapp/views/pla/plaDetl.html
@@ -116,6 +116,43 @@
     <button id="returned" style="alignment: right" class="function-btn">閫�鍥�</button>
 </div>
 
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="package_no" placeholder="鍖呭彿" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="brand" placeholder="鐗屽彿" autocomplete="off">
+        </div>
+    </div>
+    <!--    <div class="layui-inline">-->
+    <!--        <div class="layui-input-inline">-->
+    <!--            <input class="layui-input" type="text" name="row" placeholder="鎺掓暟" autocomplete="off">-->
+    <!--        </div>-->
+    <!--    </div>-->
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+        </div>
+    </div>
+
+    <!-- 寰呮坊鍔� -->
+    <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+        <!--        <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">鏌ョ湅寮傚父鏁版嵁</button>-->
+    </div>
+
+</div>
+
 <!-- 琛� -->
 <script type="text/html" id="operate">
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
@@ -124,6 +161,14 @@
 <!-- 琛ㄦ牸 -->
 <table class="layui-table" id="plaDetl" lay-filter="plaDetl"></table>
 
+<script type="text/html" id="tbLook">
+    <span class="layui-text">
+        <a href="javascript:;" lay-event="look">
+            <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 鏇村
+        </a>
+    </span>
+</script>
+
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
diff --git a/src/main/webapp/views/pla/productionInfo.html b/src/main/webapp/views/pla/productionInfo.html
index 7368b02..df9b0bf 100644
--- a/src/main/webapp/views/pla/productionInfo.html
+++ b/src/main/webapp/views/pla/productionInfo.html
@@ -104,6 +104,15 @@
 <!-- 琛ㄦ牸 -->
 <table class="layui-table" id="productionInfoTable" lay-filter="productionInfoTable"></table>
 
+
+<script type="text/html" id="packageCheck">
+    <select name="packageType" lay-filter="selectDemo1" data-key="packageType">
+        <option value="">璇烽�夋嫨</option>
+        <option value="1">1</option>
+    </select>
+</script>
+
+
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
diff --git a/src/main/webapp/views/pla/returned.html b/src/main/webapp/views/pla/returned.html
new file mode 100644
index 0000000..3868a55
--- /dev/null
+++ b/src/main/webapp/views/pla/returned.html
@@ -0,0 +1,198 @@
+<!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/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+    <form id="detail" class="layui-form" style="text-align: center">
+        <div class="layui-inline"  style="width:83%;margin-top: 0px;margin-bottom: 5px;">
+            <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟鍙枫��锛�</label>
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="orderNo" class="layui-input" type="text" style="display: none" lay-verify="required">
+                <input id="orderNoV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" onchange="tableReload()" type="text" onfocus=this.blur()>
+                <div class="cool-auto-complete-window">
+                    <input class="cool-auto-complete-window-input" data-key="orderNoQueryByorderNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="orderNoQueryByorderNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                    </select>
+                </div>
+            </div>
+        </div>
+        <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+            <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍚嶇О锛�</label>
+            <div class="layui-input-inline">
+                <input id="customerR" class="layui-input" type="text" lay-verify="required" readonly="readonly">
+            </div>
+        </div>
+        <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+            <label class="layui-form-label"><span class="not-null">*</span>閫�鍥炰骇鍝侊細</label>
+            <div class="layui-input-block">
+                <table id="formSSXMTable" lay-filter="formSSXMTable"></table>
+            </div>
+        </div>
+
+        <div class="layui-form layui-card-header">
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"></span>澶囥��銆�娉細</label>
+                <div class="layui-input-inline">
+                    <input id="memo" class="layui-input" type="text">
+                </div>
+            </div>
+        </div>
+
+
+
+        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+        </div>
+
+    </form>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
+</html>
+<script>
+    var checkData = [];
+
+    layui.use(['table','laydate', 'form'], function(){
+        var form = layui.form;
+        var layer = layui.layer;
+        var table = layui.table;
+
+        table.render({
+            elem: '#formSSXMTable',
+            height: 312,
+            headers: {token: localStorage.getItem('token')},
+            url: baseUrl+'/plaQty/orderDetail/auth',
+            page: true,
+            limit: 16,
+            limits: [16, 30, 50, 100, 200, 500],
+            cols: [[
+                {type: 'checkbox'},
+                {field: 'batch', title: '鎵瑰彿'},
+                {field: 'packageNo', title: '鍖呭彿'},
+                {field: 'orderWeight', title: '閲嶉噺'}
+
+            ]],
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+            parseData: function (res) {
+                console.log(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+"/";
+                }
+                tableData = table.cache.locDetl;
+                console.log(tableData);
+                pageCurr=curr;
+                limit();
+                form.on('checkbox(tableCheckbox)', function (data) {
+                    var _index = $(data.elem).attr('table-index')||0;
+                    if(data.elem.checked){
+                        res.data[_index][data.value] = 'Y';
+                    }else{
+                        res.data[_index][data.value] = 'N';
+                    }
+                });
+            }
+        });
+
+        // 鏁版嵁淇敼鍔ㄤ綔
+        form.on('submit(save)', function () {
+            debugger
+            let data = table.cache.formSSXMTable;
+            let dataSave = [];
+            for(var i in data){
+                if(data[i].LAY_CHECKED){
+                    data[i].memo = $('#memo').val();
+                    dataSave.push(data[i]);
+                }
+            }
+            if(!dataSave || dataSave.length < 1){
+                layer.msg("鏈嬀閫夋彁浜ら」锛屾棤娉曟彁浜�");
+                return;
+            }
+            $.ajax({
+                url: baseUrl+"/pla/returned/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(dataSave),
+                contentType:'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.msg("鎻愪氦鎴愬姛");
+                        table.reload('productionInfoTable',{
+                            data: dataOld
+                        })
+                    } else if (res.code === 403){
+
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                    }
+                }
+            })
+        });
+
+        function tableReload(child) {
+            debugger
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            (child ? parent.tableIns : tableIns).reload({
+                where: searchData,
+                page: {
+                    curr: 1
+                },
+                done: function (res, curr, count) {
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    pageCurr=curr;
+                    if (res.data.length === 0 && count !== 0) {
+                        tableIns.reload({
+                            where: searchData,
+                            page: {
+                                curr: pageCurr-1
+                            }
+                        });
+                        pageCurr -= 1;
+                    }
+                    limit(child);
+                }
+            });
+        }
+
+    })
+
+
+</script>
+
diff --git a/src/main/webapp/views/pla/sellout.html b/src/main/webapp/views/pla/sellout.html
new file mode 100644
index 0000000..0341eea
--- /dev/null
+++ b/src/main/webapp/views/pla/sellout.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/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+    <form id="detail" class="layui-form" style="text-align: center">
+        <div class="layui-form layui-card-header">
+            <div class="layui-inline"  style="width:83%;margin-top: 0px;margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟鍙枫��锛�</label>
+                <div class="layui-input-inline">
+                    <input id="orderNo" class="layui-input" type="text" lay-verify="required" >
+                </div>
+            </div>
+            <div class="layui-inline"  style="width:40%;margin-top: 0px;margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍚嶇О锛�</label>
+                <div class="layui-input-inline cool-auto-complete">
+                    <input id="customer" class="layui-input" type="text" style="display: none" lay-verify="required">
+                    <input id="customerV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+                    <div class="cool-auto-complete-window">
+                        <input class="cool-auto-complete-window-input" data-key="locOwnerQueryBylocOwner" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                        <select class="cool-auto-complete-window-select" data-key="locOwnerQueryBylocOwnerSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-inline"  style="width:40%;margin-top: 0px;margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鐢佃瘽锛�</label>
+                <div class="layui-input-inline">
+                    <input id="phone" class="layui-input" type="text" lay-verify="required" readonly="readonly">
+                </div>
+            </div>
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍦板潃锛�</label>
+                <div class="layui-input-inline">
+                    <input id="addr" class="layui-input" type="text" lay-verify="required" readonly="readonly">
+                </div>
+            </div>
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>鍙戣揣閲嶉噺锛�</label>
+                <div class="layui-input-inline">
+                    <input id="weight" class="layui-input" type="text" lay-verify="required" placeholder="KG">
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-form layui-card-header">
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"><span class="not-null">*</span>璋冩嫧鍒般��锛�</label>
+                <div class="layui-input-inline cool-auto-complete">
+                    <input id="allocate" class="layui-input" type="text" style="display: none" lay-verify="required">
+                    <input id="allocateV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+                    <div class="cool-auto-complete-window">
+                        <input class="cool-auto-complete-window-input" data-key="configTypeQueryByAllocate" data-value="allocate" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                        <select class="cool-auto-complete-window-select" data-key="configTypeQueryByAllocateSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-inline"  style="width:83%; margin-bottom: 5px;">
+                <label class="layui-form-label"></span>澶囥��銆�娉細</label>
+                <div class="layui-input-inline">
+                    <input id="memo" class="layui-input" type="text">
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-form layui-card-header" >
+            <label class="layui-form-label"><span class="not-null">*</span>閫夋嫨鍙戣揣鏃堕棿锛�</label> </br>
+            <i class="layui-icon layui-icon-date" style="font-size: 30px; color: #3F3F3F;"></i>
+            <div class="layui-form-item">
+                <button id="btn-day1-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">浠婂ぉ涓嬪崍 80 鉁�</button>
+                <button id="btn-day2-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鏄庡ぉ涓嬪崍</button>
+                <button id="btn-day3-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+                <button id="btn-day4-am" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+            </div>
+            <div class="layui-form-item ">
+                <button id="btn-day1-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">浠婂ぉ涓嬪崍</button>
+                <button id="btn-day2-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鏄庡ぉ涓嬪崍</button>
+                <button id="btn-day3-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+                <button id="btn-day4-pm" type="button" class="delivery layui-btn layui-btn-radius layui-btn-primary">鍚庡ぉ涓嬪崍</button>
+            </div>
+        </div>
+
+        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+        </div>
+
+    </form>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
+</html>
+<script>
+    var checkData = [];
+    var deliveryTime;
+    function child(data){
+        checkData = data;
+        delivery();
+
+    }
+
+    function delivery(){
+        $.ajax({
+            url: baseUrl+"/plaQty/delivery/auth",
+            headers: {'token': localStorage.getItem('token')},
+            contentType:'application/json;charset=UTF-8',
+            method: 'POST',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    $('#btn-day1-am').text(res.data[0].text);
+                    $('#btn-day1-pm').text(res.data[1].text);
+                    $('#btn-day2-am').text(res.data[2].text);
+                    $('#btn-day2-pm').text(res.data[3].text);
+                    $('#btn-day3-am').text(res.data[4].text);
+                    $('#btn-day3-pm').text(res.data[5].text);
+                    $('#btn-day4-am').text(res.data[6].text);
+                    $('#btn-day4-pm').text(res.data[7].text);
+                    $("#btn-day1-am").hover(function(){
+                        $(this).attr("title", res.data[0].user);
+                    }, function(){
+                        $(this).removeAttr("title");
+                    });
+
+                } else if (res.code === 403){
+                    layer.msg(res.msg, {icon: 2})
+                    return;
+                }else {
+                    layer.msg(res.msg, {icon: 2})
+                    return;
+                }
+            }
+        })
+    }
+
+    $('.delivery').click(function (){
+        delivery();
+        deliveryTime = this.textContent;
+        this.append(' 鉁�');
+        $('.delivery').addClass('layui-btn-primary');
+        this.classList.remove('layui-btn-primary');
+
+    })
+
+    layui.use(['table','laydate', 'form'], function(){
+        var form = layui.form;
+        var layer = layui.layer;
+        var table = layui.table;
+
+        // 鏁版嵁淇敼鍔ㄤ綔
+        form.on('submit(save)', function () {
+
+            for(var i in checkData){
+                checkData[i].packageType = $('#packageTypeV').val();
+                checkData[i].zpalletType = $('#zpalletTypeV').val();
+                checkData[i].filmWrap = $('#filmWrapV').val();
+                checkData[i].step = 3;
+            }
+
+            checkData[0].type = 'sellOut';
+
+            checkData[0].orderNo = $('#orderNo').val();
+            checkData[0].customer = $('#customerV').val();
+            checkData[0].phone = $('#phone').val();
+            checkData[0].addr = $('#addr').val();
+            checkData[0].orderWeight = $('#weight').val();
+            checkData[0].allocate = $('#allocateV').val();
+            checkData[0].memo = $('#memo').val();
+            if(!deliveryTime){
+                layer.msg("璇烽�夋嫨鍙戣揣鏃堕棿");
+                return;
+            }
+            checkData[0].pakoutTime = deliveryTime;
+
+            $.ajax({
+                url: baseUrl+"/pla/sellout/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(checkData),
+                contentType:'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.msg("淇敼鎴愬姛");
+                        tableReload(true);
+                    } else if (res.code === 403){
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }
+                    parent.layer.closeAll();
+                }
+            })
+        });
+
+        function tableReload(child) {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            (child ? parent.tableIns : tableIns).reload({
+                where: searchData,
+                page: {
+                    curr: 1
+                },
+                done: function (res, curr, count) {
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    pageCurr=curr;
+                    if (res.data.length === 0 && count !== 0) {
+                        tableIns.reload({
+                            where: searchData,
+                            page: {
+                                curr: pageCurr-1
+                            }
+                        });
+                        pageCurr -= 1;
+                    }
+                    limit(child);
+                }
+            });
+        }
+
+    })
+
+</script>
+
diff --git a/src/main/webapp/views/pla/update.html b/src/main/webapp/views/pla/update.html
new file mode 100644
index 0000000..7a5fc67
--- /dev/null
+++ b/src/main/webapp/views/pla/update.html
@@ -0,0 +1,147 @@
+<!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/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+    <form id="detail" class="layui-form" style="text-align: center">
+
+        <div class="layui-inline"  style="width:80%;">
+            <label class="layui-form-label"><span class="not-null">*</span>鎹㈠寘瑁咃細</label>
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="packageType" class="layui-input" type="text" style="display: none" lay-verify="required">
+                <input id="packageTypeV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+                <div class="cool-auto-complete-window">
+                    <input class="cool-auto-complete-window-input" data-key="configTypeQueryByPackageType" data-value="packageType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="configTypeQueryByPackageTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                    </select>
+                </div>
+            </div>
+        </div>
+        <div class="layui-inline"  style="width:80%;">
+            <label class="layui-form-label"><span class="not-null">*</span>鎹㈡墭鐩橈細</label>
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="zpalletType" class="layui-input" type="text" style="display: none" lay-verify="required">
+                <input id="zpalletTypeV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+                <div class="cool-auto-complete-window">
+                    <input class="cool-auto-complete-window-input" data-key="configTypeQueryByzpalletType" data-value="zpalletType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="configTypeQueryByzpalletTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                    </select>
+                </div>
+            </div>
+        </div>
+        <div class="layui-inline"  style="width:80%;">
+            <label class="layui-form-label"><span class="not-null">*</span>缂犺啘锛�</label>
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="filmWrap" class="layui-input" type="text" style="display: none" lay-verify="required">
+                <input id="filmWrapV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+                <div class="cool-auto-complete-window">
+                    <input class="cool-auto-complete-window-input" data-key="configTypeQueryByfilmWrap" data-value="filmWrap" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="configTypeQueryByfilmWrapSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                    </select>
+                </div>
+            </div>
+        </div>
+
+        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+        </div>
+
+    </form>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
+</html>
+<script>
+    var checkData = [];
+    function child(data){
+        checkData = data;
+    }
+
+    layui.use(['table','laydate', 'form'], function(){
+        var form = layui.form;
+        var layer = layui.layer;
+        var table = layui.table;
+
+        // 鏁版嵁淇敼鍔ㄤ綔
+        form.on('submit(save)', function () {
+
+            for(var i in checkData){
+                checkData[i].packageType = $('#packageTypeV').val();
+                checkData[i].zpalletType = $('#zpalletTypeV').val();
+                checkData[i].filmWrap = $('#filmWrapV').val();
+                checkData[i].step = 3;
+            }
+
+            $.ajax({
+                url: baseUrl+"/pla/update/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(checkData),
+                contentType:'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.msg("淇敼鎴愬姛");
+                        tableReload(true);
+                    } else if (res.code === 403){
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                        return;
+                    }
+                    parent.layer.closeAll();
+                }
+            })
+        });
+
+        function tableReload(child) {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            (child ? parent.tableIns : tableIns).reload({
+                where: searchData,
+                page: {
+                    curr: 1
+                },
+                done: function (res, curr, count) {
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    pageCurr=curr;
+                    if (res.data.length === 0 && count !== 0) {
+                        tableIns.reload({
+                            where: searchData,
+                            page: {
+                                curr: pageCurr-1
+                            }
+                        });
+                        pageCurr -= 1;
+                    }
+                    limit(child);
+                }
+            });
+        }
+
+    })
+
+</script>
+

--
Gitblit v1.9.1