From 34acfaaef92fd79771ae5c9c3c2f1a9d8204525b Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 18 一月 2024 00:26:23 +0800
Subject: [PATCH] # 增加调拨、库存冻结、删除单个拣货信息功能

---
 src/main/webapp/static/js/picking/picking.js                  |   38 +++++
 src/main/webapp/views/configType/configTypeAdd.html           |    1 
 src/main/java/com/zy/asrs/controller/PlaController.java       |   48 ++++++
 src/main/java/com/zy/asrs/service/PakoutService.java          |    2 
 src/main/webapp/views/pla/plaDetl.html                        |    7 
 src/main/webapp/static/js/pla/plaDetl.js                      |  112 +++++++++++++++
 src/main/webapp/views/picking/picking.html                    |    5 
 src/main/webapp/views/pla/updateOwner.html                    |  121 +++++++++++++++++
 src/main/java/com/zy/asrs/controller/PakoutController.java    |   21 ++
 src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java |   46 ++++++
 src/main/webapp/static/js/configType/configType.js            |    2 
 src/main/java/com/zy/asrs/entity/Pla.java                     |   16 ++
 12 files changed, 404 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/PakoutController.java b/src/main/java/com/zy/asrs/controller/PakoutController.java
index c529c01..548eab0 100644
--- a/src/main/java/com/zy/asrs/controller/PakoutController.java
+++ b/src/main/java/com/zy/asrs/controller/PakoutController.java
@@ -1,11 +1,14 @@
 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.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.ManLocDetl;
 import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
@@ -15,13 +18,8 @@
 import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.service.PakoutService;
-import com.core.annotations.ManagerAuth;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.R;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
@@ -297,6 +295,17 @@
         return R.ok("鎷h揣鍗曞垹闄ゆ垚鍔�");
     }
 
+    @RequestMapping(value = "/pakout/deleteDetl/auth")
+    @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
+    public R deleteDetl(@RequestParam String wrkNo){
+        try{
+            pakoutService.deletePakoutByWrkNo(wrkNo);
+        }catch (Exception e){
+            return R.error(e+"");
+        }
+        return R.ok("鎷h揣鍗曞垹闄ゆ垚鍔�");
+    }
+
     @RequestMapping(value = "/pakout/export/auth")
     @ManagerAuth
     public R export(@RequestBody JSONObject param){
diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java
index 4b7c317..de93414 100644
--- a/src/main/java/com/zy/asrs/controller/PlaController.java
+++ b/src/main/java/com/zy/asrs/controller/PlaController.java
@@ -5,6 +5,7 @@
 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.core.exception.CoolException;
@@ -131,6 +132,10 @@
 
         for (Pla pla : plas){
 
+            if(pla.getStockFreeze() == 0){
+                throw new CoolException("搴撳瓨宸茶鍐荤粨锛岃閲嶆柊閫夋嫨搴撳瓨");
+            }
+
             allOrderWeight += pla.getOrderWeight();
 
             if(pla.getWeightAnfme() - pla.getQtyAnfme() - pla.getOrderWeight() < 0){
@@ -199,6 +204,49 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/pla/updateStockFreeze")
+    @Transactional
+    @ManagerAuth(memo = "搴撲綅鍐荤粨")
+    public R updateStockFreeze(@RequestBody List<Pla> plas){
+        if (Cools.isEmpty(plas)){
+            return R.error("鏃犳暟鎹�");
+        }
+        for (Pla pla : plas){
+            if (pla.getStockFreeze() == 0){
+                throw new CoolException("搴撳瓨宸茶鍐荤粨锛�");
+            }
+            pla.setStockFreeze(0);
+            pla.setStockFreezeBy(getUser().getUsername());
+            pla.setStockFreezeDate(new Date());
+            pla.setModifyTime(new Date());
+            plaService.updateById(pla);
+        }
+        return R.ok("鍐荤粨鎴愬姛");
+    }
+
+    @RequestMapping(value = "/pla/updateStockDisFreeze")
+    @ManagerAuth(memo = "搴撲綅瑙e喕")
+    public R updateStockDisFreeze(@RequestBody List<Pla> plas){
+        if (Cools.isEmpty(plas)){
+            return R.error("鏃犳暟鎹�");
+        }
+        for (Pla pla : plas){
+            if (pla.getStockFreeze() == 1){
+                throw new CoolException("搴撲綅鏈喕缁擄紝鏃犻渶瑙e喕");
+            }
+            if(!Cools.eq(pla.getStockFreezeBy(),getUser().getUsername())){
+                throw new CoolException("鏃犳硶瑙e喕鍏朵粬鐢ㄦ埛鍐荤粨鐨勫簱浣�");
+            }
+            pla.setStockFreeze(1);
+            pla.setStockFreezeBy(getUser().getUsername());
+            pla.setStockFreezeDate(new Date());
+            pla.setModifyTime(new Date());
+            plaService.updateById(pla);
+
+        }
+        return R.ok("瑙i櫎鍐荤粨鎴愬姛");
+    }
+
     /**
      * excel瀵煎叆妯℃澘涓嬭浇
      */
diff --git a/src/main/java/com/zy/asrs/entity/Pla.java b/src/main/java/com/zy/asrs/entity/Pla.java
index 209dd5e..a8a0fa2 100644
--- a/src/main/java/com/zy/asrs/entity/Pla.java
+++ b/src/main/java/com/zy/asrs/entity/Pla.java
@@ -261,10 +261,26 @@
     @TableField("memo")
     private String memo;
 
+    @TableField("stock_freeze")
+    private int stockFreeze;
+
+    @TableField("stock_freeze_by")
+    private String stockFreezeBy;
+
+    @TableField("stock_freeze_date")
+    private Date stockFreezeDate;
+
     public String getPakinTime$() {
         if (Cools.isEmpty(this.pakinTime)){
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pakinTime);
     }
+
+    public String getStockFreezeDate$() {
+        if (Cools.isEmpty(this.stockFreezeDate)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd").format(this.stockFreezeDate);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/PakoutService.java b/src/main/java/com/zy/asrs/service/PakoutService.java
index 7240a23..68ff859 100644
--- a/src/main/java/com/zy/asrs/service/PakoutService.java
+++ b/src/main/java/com/zy/asrs/service/PakoutService.java
@@ -6,4 +6,6 @@
 public interface PakoutService extends IService<Pakout> {
 
     void deletePakout(String docNum);
+
+    void deletePakoutByWrkNo(String wrkNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
index 895493e..5e56251 100644
--- a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
@@ -3,12 +3,14 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.GlobleParameter;
 import com.zy.asrs.mapper.PakoutMapper;
 import com.zy.asrs.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.util.List;
@@ -83,4 +85,48 @@
           throw new RuntimeException("鎷h揣鍗曞垹闄ゅけ璐�");
       }
     }
+
+    @Override
+    @Transactional
+    public void deletePakoutByWrkNo(String wrkNo) {
+        Pakout pakout = this.selectById(wrkNo);
+        //鏇存柊鍗曟嵁淇℃伅
+        if(pakout.getCount() > 0){
+            throw new CoolException("璇ユ潯鎷h揣淇℃伅宸插畬鎴愶紝鏃犳硶鍒犻櫎");
+        }
+        OrderDetl orderDetl = orderDetlService.selectById(pakout.getDocId());
+        orderDetl.setWorkQty(orderDetl.getWorkQty() - pakout.getAnfme());
+        orderDetl.setUpdateTime(new Date());
+        orderDetlService.updateById(orderDetl);
+
+        Order order = orderService.selectByNo(pakout.getDocNum());
+        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+        //鍒ゆ柇鍗曟嵁鏄惁鏈夋鍦ㄤ綔涓氱殑浠诲姟锛宼rue涓烘病鏈�
+        boolean flag = true;
+        for (OrderDetl od : orderDetlList){
+            if(od.getWorkQty() + od.getQty() > 0){
+                flag = false;
+            }
+        }
+
+        if(flag){
+            order.setSettle(1L);
+            order.setUpdateTime(new Date());
+            orderService.updateById(order);
+        }
+
+        //鏇存柊pla淇℃伅
+        Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), pakout.getBarcode());
+        pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme());
+        pla.setStatus(GlobleParameter.PLA_STATUS_1);
+        pla.setModifyTime(new Date());
+        plaService.updateById(pla);
+
+        //鏇存柊plaQty淇℃伅
+        plaQtyService.deleteById(pakout.getNodeId());
+
+        //鍒犻櫎鎷h揣鍗�
+        this.deleteById(wrkNo);
+
+    }
 }
diff --git a/src/main/webapp/static/js/configType/configType.js b/src/main/webapp/static/js/configType/configType.js
index fc3a2d6..3ae58db 100644
--- a/src/main/webapp/static/js/configType/configType.js
+++ b/src/main/webapp/static/js/configType/configType.js
@@ -22,7 +22,7 @@
         cols: [[
             {type: 'checkbox', fixed: 'left'}
             ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
-            ,{field: 'type', align: 'center',title: '绫诲瀷'}
+            ,{field: 'type', align: 'center',title: '绫诲瀷',hide:true}
             ,{field: 'name', align: 'center',title: '鍚嶇О'}
             ,{field: 'value', align: 'center',title: '鍊�'}
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
diff --git a/src/main/webapp/static/js/picking/picking.js b/src/main/webapp/static/js/picking/picking.js
index 2f1f451..76a4937 100644
--- a/src/main/webapp/static/js/picking/picking.js
+++ b/src/main/webapp/static/js/picking/picking.js
@@ -127,7 +127,7 @@
                             cellMinWidth: 100,
                             cols: [[
                                 {type: 'numbers'}
-                                ,{field: 'id', align: 'center',title: 'id', hide:true}
+                                ,{field: 'wrkNo', align: 'center',title: 'id', hide:true}
                                 ,{field: 'docNum', align: 'center',title: '鎷h揣鍗曞彿'}
                                 ,{field: 'uuid', align: 'center',title: 'uuid'}
                                 ,{field: 'locNo', align: 'center',title: '搴撲綅'}
@@ -141,6 +141,7 @@
                                 ,{field: 'status$', align: 'center',title: '鐘舵��'}
                                 ,{field: 'memo', align: 'center',title: '澶囨敞'}
                                 ,{field: 'createBy', align: 'center',title: '', hide:true}
+                                ,{align: 'center', title: '鎿嶄綔', toolbar: '#operateDetl'}
                             ]],
                             request: {
                                 pageName: 'curr',
@@ -177,6 +178,41 @@
         }
     });
 
+    table.on('tool(lookSSXMTable)', function(obj) {
+        var data = obj.data;
+        console.log(data);
+        switch (obj.event) {
+            case "delDetl":
+                layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
+                    shade: .1,
+                    skin: 'layui-layer-admin'
+                }, function (i) {
+                    layer.close(i);
+                    layer.load(2);
+                    $.ajax({
+                        url: baseUrl+"/pakout/deleteDetl/auth",
+                        headers: {'token': localStorage.getItem('token')},
+                        data:{
+                            wrkNo:data.wrkNo
+                        },
+                        method: 'GET',
+                        success: function (res) {
+                            layer.closeAll('loading');
+                            if (res.code === 200){
+                                tableIns.reload({page: {curr: 1}});
+                                layer.msg(res.msg, {icon: 1});
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            }else {
+                                layer.msg(res.msg, {icon: 2});
+                            }
+                        }
+                    })
+                })
+                break;
+        }
+    })
+
     // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js
index 92a6405..284a720 100644
--- a/src/main/webapp/static/js/pla/plaDetl.js
+++ b/src/main/webapp/static/js/pla/plaDetl.js
@@ -25,7 +25,7 @@
         ,{field: 'weight', align: 'center',title: '閲嶉噺KG',edit:true}
         ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷',edit:true}
         ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷',edit:true}
-        ,{field: 'filmWrap', align: 'center',title: '缂犺啘',edit:true}
+        ,{field: 'filmWrap', align: 'center',title: '缂犺啘',edit:true,hide:true}
         ,{field: 'fingerMelting', align: 'center',title: '鐔旀寚,g/10min',edit:true}
         ,{field: 'water', align: 'center',title: '姘村垎,ppm', hide:true,edit:true}
         ,{field: 'fusingPoint', align: 'center',title: '鐔旂偣,鈩�',edit:true}
@@ -44,14 +44,17 @@
         ,{field: 'str5', align: 'center',title: '鍗婄粨鏅舵椂闂�,min',hide:true,edit:true}
         ,{field: 'str6', align: 'center',title: '缁撴櫠搴�.%',hide:true,edit:true}
         ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��',edit:true}
-        ,{field: 'problem', align: 'center',title: '澶囨敞',edit:true}
-        ,{field: 'direction', align: 'center',title: '搴旂敤鏂瑰悜',edit:true}
-        ,{field: 'position', align: 'center',title: '瀛樻斁浣嶇疆',edit:true}
-        ,{field: 'stash', align: 'center',title: '浠撳簱',edit:true}
+        ,{field: 'problem', align: 'center',title: '澶囨敞',edit:true,hide:true}
+        ,{field: 'direction', align: 'center',title: '搴旂敤鏂瑰悜',edit:true,hide:true}
+        ,{field: 'position', align: 'center',title: '瀛樻斁浣嶇疆',edit:true,hide:true}
+        ,{field: 'stash', align: 'center',title: '浠撳簱',edit:true,hide:true}
         ,{field: 'locNo', align: 'center',title: '搴撲綅',edit:true}
         ,{field: 'weightAnfme', align: 'center',title: '鍓╀綑閲嶉噺锛圞G锛�',edit:true}
         ,{field: 'qtyAnfme', align: 'center',title: '寰呭嚭搴撻噸閲忥紙KG锛�',hide:true}
         ,{field: 'status', align: 'center',title: '鐘舵��', templet: setState ,edit:true}
+        ,{field: 'stockFreeze', align: 'center',title: '搴撳瓨鍐荤粨', templet: '#stockFreezeTpl'}
+        ,{field: 'stockFreezeBy', align: 'center',title: '鎿嶄綔浜哄憳',hide:true}
+        ,{field: 'stockFreezeDate$', align: 'center',title: '鎿嶄綔鏃ユ湡',hide:true}
         ,{align: 'center', title: '娴佽浆鏄庣粏', toolbar: '#tbLook'}
         // ,{field: 'orderNo', align: 'center',title: '鍗曞彿', hide:true}
         // ,{field: 'pakoutTime', align: 'center',title: '鍑哄簱鏃堕棿', hide:true}
@@ -289,6 +292,63 @@
                         })
                     });
                 }
+                break;
+            case 'freezeData':
+                var data = checkStatus.data;
+                if (data.length === 0){
+                    layer.msg('璇烽�夋嫨鏁版嵁');
+                } else {
+                    layer.confirm('纭畾鍐荤粨'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+                        $.ajax({
+                            url: baseUrl+"/pla/updateStockFreeze",
+                            headers: {'token': localStorage.getItem('token')},
+                            data: JSON.stringify(data),
+                            contentType:'application/json;charset=UTF-8',
+                            method: 'POST',
+                            traditional:true,
+                            success: function (res) {
+                                if (res.code === 200){
+                                    layer.closeAll();
+                                    tableReload(false);
+                                    layer.msg(res.msg,{icon:1})
+                                } else if (res.code === 403){
+                                    top.location.href = baseUrl+"/";
+                                } else {
+                                    layer.msg(res.msg,{icon:2})
+                                }
+                            }
+                        })
+                    });
+                }
+                break;
+            case 'disFreezeData':
+                var data = checkStatus.data;
+                if (data.length === 0){
+                    layer.msg('璇烽�夋嫨鏁版嵁');
+                } else {
+                    layer.confirm('纭畾瑙i櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹殑鍐荤粨鍚�', function(){
+                        $.ajax({
+                            url: baseUrl+"/pla/updateStockDisFreeze",
+                            headers: {'token': localStorage.getItem('token')},
+                            data: JSON.stringify(data),
+                            contentType:'application/json;charset=UTF-8',
+                            method: 'POST',
+                            traditional:true,
+                            success: function (res) {
+                                if (res.code === 200){
+                                    layer.closeAll();
+                                    tableReload(false);
+                                    layer.msg(res.msg,{icon:1})
+                                } else if (res.code === 403){
+                                    top.location.href = baseUrl+"/";
+                                } else {
+                                    layer.msg(res.msg,{icon:2})
+                                }
+                            }
+                        })
+                    });
+                }
+                break;
         }
     })
 
@@ -504,8 +564,12 @@
 
                 brand = brand ? brand : data[i].brand;
 
-                if( brand != data[i].brand){
+                if(brand != data[i].brand){
                     layer.msg("閫変腑鐨勬槑缁嗕腑鍚湁澶氱鐗屽彿锛岃閲嶆柊閫夋嫨");
+                    return;
+                }
+                if(data[i].stockFreeze === 0){
+                    layer.msg("閫変腑鐨勬槑缁嗕腑鍚湁鍐荤粨鐨勫簱瀛橈紝璇疯В鍐诲悗鎿嶄綔");
                     return;
                 }
                 dataSave.push(data[i]);
@@ -599,6 +663,42 @@
             }
         });
     })
+    $(document).on('click','#updateOwner', 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: 'updateOwner.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)
+            }
+        });
+    })
 
 })
 
diff --git a/src/main/webapp/views/configType/configTypeAdd.html b/src/main/webapp/views/configType/configTypeAdd.html
index 208fc83..6db8309 100644
--- a/src/main/webapp/views/configType/configTypeAdd.html
+++ b/src/main/webapp/views/configType/configTypeAdd.html
@@ -23,6 +23,7 @@
                     <option value="zpalletType">鎵樼洏绫诲瀷</option>
                     <option value="filmWrap">缂犺啘</option>
                     <option value="allocate">璋冩嫧鍒�</option>
+                    <option value="owner">涓讳綋</option>
                 </select>
 <!--                <input id="type" class="layui-input" type="select" list="typelist" lay-verify="required" >-->
 <!--                <datalist id="typelist">-->
diff --git a/src/main/webapp/views/picking/picking.html b/src/main/webapp/views/picking/picking.html
index c9a5cef..2009633 100644
--- a/src/main/webapp/views/picking/picking.html
+++ b/src/main/webapp/views/picking/picking.html
@@ -80,6 +80,11 @@
 -->
 </script>
 
+<!-- 鏄庣粏琛ㄦ牸鎿嶄綔鍒� -->
+<script type="text/html" id="operateDetl">
+    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="delDetl">鍒犻櫎</a>
+</script>
+
 <script type="text/html" id="orderNoTpl">
     {{d.docNum}}
 <!--    {{# if(d.settle > 1 && d.settle !== 3){ }}-->
diff --git a/src/main/webapp/views/pla/plaDetl.html b/src/main/webapp/views/pla/plaDetl.html
index d314f24..3734a5b 100644
--- a/src/main/webapp/views/pla/plaDetl.html
+++ b/src/main/webapp/views/pla/plaDetl.html
@@ -114,6 +114,7 @@
     <button id="sellout" style="alignment: right; display: none" class="function-btn">鍑哄簱</button>
 <!--    <button id="pickup" style="alignment: right" class="function-btn">鍙栬揣</button>  |-->
     <button id="returned" style="alignment: right; display: none" class="function-btn">閫�鍥�</button>
+    <button id="updateOwner" style="alignment: right; display: none" class="function-btn">鍙樻洿涓讳綋</button>
 </div>
 
 <!-- 鎼滅储鏍� -->
@@ -206,7 +207,8 @@
         <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData" style="display: none">鍒犻櫎</button>
         <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-update" lay-event="updateData" style="display: none">淇敼</button>
         <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-viladate" lay-event="viladate" style="display: none">鏍¢獙</button>
-
+        <button class="layui-btn layui-btn-sm layui-btn-danger " id="btn-freeze" lay-event="freezeData" style="display: none">鍐荤粨</button>
+        <button class="layui-btn layui-btn-sm layui-btn-checked " id="btn-disfreeze" lay-event="disFreezeData" style="display: none">瑙e喕</button>
         <!-- 鍟嗗搧/鐗╂枡 鏁版嵁涓績 -->
         <div class="dropdown-menu" style="float: right">
             <button id="syncData" style="display: none;" class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm">&nbsp;鏁版嵁鍚屾 <i class="layui-icon layui-icon-drop"></i></button>
@@ -225,6 +227,9 @@
     </div>
 </script>
 
+<script type="text/html" id="stockFreezeTpl">
+    <input type="checkbox" disabled name="stockFreeze" value="{{d.stockFreeze}}" lay-skin="switch" lay-text="姝e父|鍐荤粨" lay-filter="stockFreezeSwitch" {{ d.stockFreeze === 1 ? 'checked' : '' }}>
+</script>
 
 <!-- 琛� -->
 <script type="text/html" id="operate">
diff --git a/src/main/webapp/views/pla/updateOwner.html b/src/main/webapp/views/pla/updateOwner.html
new file mode 100644
index 0000000..247328b
--- /dev/null
+++ b/src/main/webapp/views/pla/updateOwner.html
@@ -0,0 +1,121 @@
+<!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">鍙樻洿涓讳綋锛�</label>
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="owner" class="layui-input" type="text" style="display: none">
+                <input id="ownerV" 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="configTypeQueryByOwner" data-value="owner" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="configTypeQueryByOwnerSelect" 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].owner = $('#ownerV').val() ? $('#ownerV').val() : checkData[i].packageType;
+                checkData[i].step = 2;
+            }
+
+            $.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