From 529c963c32dd81947a573d8ebe3524278aa2cbcf Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 20 四月 2024 14:16:06 +0800
Subject: [PATCH] 新增补料功能

---
 src/main/java/com/zy/asrs/service/WorkService.java             |   10 
 src/main/java/com/zy/asrs/controller/LocDetlController.java    |   14 +
 src/main/webapp/views/pakStore/pakComb.html                    |   59 ++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |   86 +++++++++
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |   32 +++
 src/main/java/com/zy/asrs/entity/param/ReplenishmentParam.java |   38 ++++
 src/main/java/com/zy/asrs/controller/WorkController.java       |   17 +
 src/main/webapp/static/js/pakStore/pakComb.js                  |  250 +++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    2 
 9 files changed, 493 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index ad11d86..4a7c5f2 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -13,11 +13,9 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.ManLocDetl;
 import com.zy.asrs.entity.Mat;
 import com.zy.asrs.mapper.LocDetlMapper;
 import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.ManLocDetlService;
 import com.zy.asrs.service.MatService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,6 +67,18 @@
         return R.parse(BaseRes.EMPTY);
     }
 
+    @GetMapping (value = "/locDetl/pageList/auth")
+    @ManagerAuth(memo = "鍒嗛〉鏌ヨ搴撳瓨鏄庣粏")
+    public R pageList(@RequestParam Map<String,Object> param){
+        if (Cools.isEmpty(param.get("locNo"))){
+            return new R(201,"");
+        }
+        Page<LocDetl> locDetlPage = locDetlService.selectPage(new Page<>(Integer.parseInt((String) param.get("curr"))
+                , Integer.parseInt((String) param.get("limit"))), new EntityWrapper<LocDetl>().eq("loc_no", param.get("locNo")));
+
+        return R.ok(locDetlPage);
+    }
+
     @RequestMapping(value = "/stock/out/list/auth")
     @ManagerAuth
     public R stockOutList(@RequestParam(defaultValue = "1")Integer curr,
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index eae764b..09acbae 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -3,10 +3,7 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.R;
 import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WorkService;
 import com.zy.common.model.StartupDto;
@@ -119,7 +116,17 @@
         workService.locMove(sourceLocNo, targetLocNo, getUserId());
         return R.ok("绉诲簱鍚姩鎴愬姛");
     }
-
+    @RequestMapping("/locCombOutStartCheckSite/site")
+    @ManagerAuth(memo = "骞舵澘鍑哄簱绔欑偣鏌ヨ")
+    public R locCombOutStartCheckSite(){
+        return R.ok().add(basDevpService.getAvailableOutSite(104));
+    }
+    @RequestMapping("/locComb/out/start")
+    @ManagerAuth(memo = "骞舵澘鍑哄簱")
+    public R locCombOutStart(@RequestBody ReplenishmentParam param) {
+        workService.locCombOut(param,getUserId());
+        return R.ok("琛ユ枡鍑哄簱鍚姩鎴愬姛");
+    }
     @RequestMapping("/locDdetl/adjust/start")
     @ManagerAuth(memo = "搴撳瓨璋冩暣")
     public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) {
diff --git a/src/main/java/com/zy/asrs/entity/param/ReplenishmentParam.java b/src/main/java/com/zy/asrs/entity/param/ReplenishmentParam.java
new file mode 100644
index 0000000..204ac58
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ReplenishmentParam.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.entity.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 琛ユ枡鍏ュ簱dto
+ * @createDate 2024/4/19 17:06
+ */
+@Data
+public class ReplenishmentParam {
+    // 绔欑偣缂栧彿
+    private Integer devpNo;
+
+    // 搴撲綅鍙�
+    private String locNo;
+
+    // 浜у搧鍒楄〃鏁版嵁
+    private List<MatCodeStore> list;
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class MatCodeStore {
+        // 浜у搧缂栧彿
+        private String matnr;
+        // 浜у搧鍚嶇О
+        private String  maktx;
+        // 浜у搧鎵规
+        private String batch;
+        // 浜у搧鏁伴噺
+        private Double count;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index e0cce87..d35dd1f 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -3,10 +3,7 @@
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.TaskDto;
@@ -66,6 +63,11 @@
     void locMove(String sourceLocNo, String locNo, Long userId);
 
     /**
+     * 琛ユ枡鍑哄簱
+     */
+    void locCombOut(ReplenishmentParam param, Long userId);
+
+    /**
      * 鎵嬪姩瀹屾垚宸ヤ綔妗�
      */
     void completeWrkMast(String workNo, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index ede2552..5d7d283 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.MatCodeCountDto;
 import com.zy.asrs.entity.WrkDetl;
 import com.zy.common.model.DetlDto;
 
@@ -10,6 +11,7 @@
 public interface WrkDetlService extends IService<WrkDetl> {
 
     void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId, Date now);
+    void createWorkDetail2(Integer workNo, List<MatCodeCountDto> detlDtos, String barcode, Long userId);
 
     List<WrkDetl> selectByWrkNo(Integer wrkNo);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 9123f37..4ca831b 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
@@ -643,6 +640,87 @@
 
     @Override
     @Transactional
+    public void locCombOut(ReplenishmentParam param, Long userId) {
+        // 鍙傛暟闈炵┖鍒ゆ柇
+        if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        //鍒ゆ柇搴撲綅鍙枫�佸簱浣嶇姸鎬�
+        LocMast locMast;
+        if (Cools.isEmpty(param.getLocNo())){
+            throw new CoolException("骞舵澘鍑哄簱搴撲綅鍙傛暟閿欒");
+        }else {
+            locMast = locMastService.selectById(param.getLocNo());
+            if(!Cools.isEmpty(locMast)){
+                if (!locMast.getLocSts().equals("F")){
+                    throw new CoolException("骞舵澘搴撲綅闈炲湪搴撶姸鎬�");
+                }
+            }else{
+                throw new CoolException("搴撳瓨涓簱浣嶅彿涓嶅瓨鍦�");
+            }
+        }
+        // 婧愮珯鐐圭姸鎬佹娴�
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+        // 鑾峰彇璺緞
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", 104)
+                .eq("stn_no", param.getDevpNo())
+                .eq("crn_no", locMast.getCrnNo());
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)) {
+            throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+        }
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+        wrkMast.setCrnNo(locMast.getCrnNo());
+        wrkMast.setSourceStaNo(staDesc.getCrnStn());
+        wrkMast.setStaNo(param.getDevpNo());
+        wrkMast.setSourceLocNo(param.getLocNo());
+        wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+        wrkMast.setCtnType(locMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(new Date());
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(new Date());
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        List<MatCodeCountDto> matDtos = new ArrayList<>();
+        param.getList().forEach(elem -> {
+            matDtos.add(new MatCodeCountDto(elem.getMatnr(), elem.getBatch(), elem.getCount()));
+        });
+        wrkDetlService.createWorkDetail2(workNo, matDtos, locMast.getBarcode(), userId);
+        // 鏇存柊搴撲綅鐘舵��
+//        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("F")){
+            locMast.setLocSts("P"); // P.骞舵澘鍑哄簱棰勭害
+            locMast.setModiUser(userId);
+            locMast.setModiTime(new Date());
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(locMast.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+    }
+
+    @Override
+    @Transactional
     public void completeWrkMast(String workNo, Long userId) {
         WrkMast wrkMast = wrkMastService.selectById(workNo);
         if (Cools.isEmpty(wrkMast)){
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 196874a..2f8b862 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -4,6 +4,7 @@
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.MatCodeCountDto;
 import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.mapper.WrkDetlMapper;
 import com.zy.asrs.service.MatService;
@@ -52,6 +53,37 @@
     }
 
     @Override
+    public void createWorkDetail2(Integer workNo, List<MatCodeCountDto> matCodeCountDtos, String barcode, Long userId) {
+        if (matCodeCountDtos.isEmpty()){
+            return;
+        }
+        for (MatCodeCountDto dto : matCodeCountDtos) {
+            Mat mat = matService.selectByMatnr(dto.getMatNo());
+            if (Cools.isEmpty(mat)){
+                throw new CoolException(dto.getMatNo() + "鍟嗗搧缁存姢澶辫触");
+            }
+            // 淇濇寔宸ヤ綔妗f槑缁�
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(new Date());
+            wrkDetl.setAnfme(dto.getCount()); // 鏁伴噺
+            wrkDetl.setMemo("");
+            wrkDetl.setBatch(dto.getBatch());
+//            VersionUtils.setWrkDetl(wrkDetl, matCode); // 鐗堟湰鎺у埗
+//            wrkDetl.setBname(dto.getStr4());
+            wrkDetl.setZpallet(barcode); // 鎵樼洏鏉$爜
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setAppeTime(new Date());
+            wrkDetl.setModiUser(userId);
+            wrkDetl.setModiTime(new Date());
+            if (!this.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        }
+    }
+
+    @Override
     public List<WrkDetl> selectByWrkNo(Integer wrkNo) {
         return this.baseMapper.selectByWrkNo(wrkNo);
     }
diff --git a/src/main/webapp/static/js/pakStore/pakComb.js b/src/main/webapp/static/js/pakStore/pakComb.js
new file mode 100644
index 0000000..8520192
--- /dev/null
+++ b/src/main/webapp/static/js/pakStore/pakComb.js
@@ -0,0 +1,250 @@
+var matCodeData = []
+var tableIns, tableInsLoc;
+// 鎼滅储鏉′欢-搴撲綅鍙�
+var locNo = ''
+// 搴撳瓨鏄庣粏
+var locData = []
+var form = null
+layui.use(['table', 'form'], function () {
+    var table = layui.table
+    var $ = layui.jquery
+    form = layui.form;
+
+    // 鑾峰彇鍑哄簱鍙�
+    function fetchSelect() {
+        $.ajax({
+            url: baseUrl + "/locCombOutStartCheckSite/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    var html = res.data.map((item) => {
+                        return `<option value="${item}">${item}</option>`
+                    })
+                    $('#putSiteSelect').append(html);
+                    form.render('select');
+                } else if (res.code === 403) {
+                    top.location.href = baseUrl + "/";
+                } else {
+                    layer.msg(res.msg)
+                }
+            }
+        })
+    }
+    // 鍔犺浇鍑哄簱鍙d俊鎭�
+    fetchSelect()
+
+    // 搴撲綅鐗╂枡
+    tableInsLoc = table.render({
+        elem: '#locDetail'
+        , headers: {token: localStorage.getItem('token')}
+        , url: baseUrl + '/locDetl/pageList/auth'
+        , cols: [[ //鏍囬鏍�
+            {field: 'locNo', title: '搴撲綅', width: 120}
+            , {field: 'maktx', title: '鍟嗗搧鍚�', width: 300}
+            , {field: 'matnr', title: '鍟嗗搧鍙�', width: 200}
+            , {field: 'specs', title: '瑙勬牸', width: 300}
+            , {field: 'anfme', title: '鏁伴噺', width: 100}
+        ]]
+        , page: true //鏄惁鏄剧ず鍒嗛〉
+        , request: {
+            pageName: 'curr',
+            pageSize: 'limit',
+        },
+        where: {'locNo': locNo}
+        , limits: [5]
+        , limit: 5, //姣忛〉榛樿鏄剧ず鐨勬暟閲�
+        parseData: function (res) {
+            if (res.code === 201) {
+                return ''
+            }
+            locData = res.data.records
+            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 + "/";
+            }
+        }
+    })
+
+    // 鏂板鐗╂枡
+    tableIns = table.render({
+        elem: '#chooseData',
+        id: 'chooseData',
+        data: [],
+        limit: 500,
+        cellMinWidth: 50,
+        cols: [[
+            {
+                fixed: 'left',
+                align: 'center',
+                field: 'count',
+                title: '鏁伴噺',
+                style: 'color: blue',
+                width: 100,
+                edit: 'text',
+                width: 120,
+                style: 'color: blue;font-weight: bold'
+            },
+            {field: 'matnr', align: 'center', title: '鍟嗗搧缂栧彿'},
+            {field: 'maktx', align: 'center', title: '鍟嗗搧鍚嶇О'},
+            {field: 'specs', align: 'center', title: '瑙勬牸'},
+            {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 200}
+        ]]
+    });
+
+    // 鐩戝惉table鐨勭Щ闄や簨浠�
+    table.on('tool(chooseData)', function (obj) {
+        var data = obj.data;
+        switch (obj.event) {
+            case 'remove':
+                const findIndex = matCodeData.findIndex(item => item.id === data.id)
+                matCodeData.splice(findIndex, 1)
+                tableIns.reload({data: matCodeData, limit: matCodeData.length});
+                break;
+        }
+    });
+
+    table.on('edit(chooseData)', function (obj) {
+        matCodeData = matCodeData.map(item => {
+            if (item.id === obj.data.id) {
+                return {
+                    ...item,
+                    count: obj.value
+                }
+            }
+            return item
+        })
+    });
+
+    // 鎼滅储鎸夐挳
+    $("#searchFor").click(function () {
+        table.reload('locDetail', {
+            where: {'locNo': locNo},
+            page: { // 鍒嗛〉鍙傛暟
+                curr: 1 // 閲嶆柊浠庣涓�椤靛紑濮�
+            },
+            // 鍏朵粬鍙傛暟
+        })
+    })
+})
+// 鑾峰彇杈撳叆妗嗗��
+$("#locNo").on("input", function (e) {
+    //鑾峰彇input杈撳叆鐨勫��
+    locNo = e.delegateTarget.value;
+});
+
+// 琛ユ枡鍑哄簱
+$("#outbound").click(function () {
+    if (locNo === "" || locNo.length != 7) {
+        layer.msg("搴撲綅鍙烽敊璇�");
+        return;
+    }
+    //鍒ゆ柇搴撲綅鏁版嵁
+    if (locData == null || locData.length === 0) {
+        layer.msg("骞舵澘搴撲綅娌℃湁搴撳瓨鏁版嵁");
+        return;
+    }
+    // 鍒ゆ柇鏄惁瀛樺湪浜у搧
+    if (matCodeData.length === 0) {
+        layer.msg("璇峰厛娣诲姞浜у搧");
+        return;
+    }
+    // 鍒ゆ柇浜у搧鏁伴噺鏄惁瀛樺湪寮傚父
+    for (var i = 0; i < matCodeData.length; i++) {
+        if (isNaN(matCodeData[i].count)) {
+            layer.msg("璇疯緭鍏ユ暟瀛�");
+            return;
+        }
+        if (matCodeData[i].count === 0) {
+            layer.msg("鏁伴噺涓嶈兘涓洪浂");
+            return;
+        }
+    }
+    // 鍒ゆ柇鍑虹珯鍙�
+    var outNo = $('#putSiteSelect').val()
+    if (outNo.length === 0) {
+        layer.msg("璇烽�夋嫨鍑哄簱鍙�");
+        return;
+    }
+
+    $.ajax({
+        url: baseUrl + "/locComb/out/start",
+        headers: {'token': localStorage.getItem('token')},
+        data: JSON.stringify({
+            locNo: locNo,
+            devpNo: Number(outNo),
+            list: matCodeData
+        }),
+        contentType: 'application/json;charset=UTF-8',
+        method: 'POST',
+        async: false,
+        success: function (res) {
+            if (res.code === 200) {
+                layer.msg(res.msg);
+                // 娓呯┖鍑哄簱鍙i�夋嫨
+                $("#putSiteSelect").val('');
+                form.render();
+                // 娓呯┖杈撳叆鐨勫簱浣�
+                $("#locNo").val("");
+                locNo = ''
+                // 娓呯┖澧炲姞鐨勬槑缁嗘暟鎹�
+                matCodeData = [];
+                tableIns.reload({data: []});
+                // 娓呯┖搴撲綅鏄庣粏鏁版嵁
+                tableInsLoc.reload({data: [], where: {'locNo': ''}});
+                locData = []
+            } else if (res.code === 403) {
+                top.location.href = baseUrl + "/";
+            } else {
+                layer.msg(res.msg)
+            }
+        }
+    })
+})
+
+// 鎻愬彇鐗╂枡
+var matCodeLayerIdx;
+
+// 鎵撳紑鍟嗗搧寮圭獥
+function getMat() {
+    matCodeLayerIdx = layer.open({
+        type: 2,
+        title: '鐗╂枡',
+        shade: [0.3, '#000'],
+        area: ['90%', '80%'],
+        content: 'matQuery.html',
+        success: function (layero, index) {
+            $('.layui-layer-title').css('font-size', '16px');
+        },
+        end: function () {
+            $('#addmatnr').focus();
+        }
+    });
+}
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+var matData = [];
+
+// 鑾峰彇寮圭獥杩斿洖鐨勫��
+function addTableData(data) {
+    for (var i = 0; i < data.length; i++) {
+        data[i]["count"] = 0
+    }
+    matCodeData = data
+    // 瀵逛簬options鐨勫悇椤瑰弬鏁版湁鐐硅糠鎯戯紝浣嗘槸璇曚簡濂藉鏂规硶锛屽彂鐜板姞涓�鏉imit灞炴�э紝鍙栨暟鎹簮闀垮害鍗冲彲
+    tableIns.reload({data: matCodeData, limit: matCodeData.length});
+    layer.close(matCodeLayerIdx);
+}
+
+
+
diff --git a/src/main/webapp/views/pakStore/pakComb.html b/src/main/webapp/views/pakStore/pakComb.html
new file mode 100644
index 0000000..2da04ce
--- /dev/null
+++ b/src/main/webapp/views/pakStore/pakComb.html
@@ -0,0 +1,59 @@
+<!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">
+    <style>
+    </style>
+</head>
+<body>
+<div style="padding: 15px">
+    <div class="layui-row">
+        <div class="layui-col-md1">
+            <input type="text" id="locNo" placeholder="搴撲綅鍙�" class="layui-input">
+        </div>
+        <div class="layui-col-md1">
+            <button class="layui-btn layui-btn-normal" id="searchFor" style="margin-left: 25px">鎼滅储</button>
+        </div>
+    </div>
+    <div class="layui-row">
+        <table class="layui-hide" id="locDetail" lay-filter="locDetail"></table>
+    </div>
+    <div class="layui-form layui-row layui-col-space16">
+        <div class="layui-col-md2">
+            <select id="putSiteSelect">
+                <option value="">璇烽�夋嫨琛ユ枡鍑哄簱绔欑偣</option>
+            </select>
+        </div>
+        <div class="layui-col-md1">
+            <button class="layui-btn layui-btn-normal" id="outbound">琛ユ枡鍑哄簱</button>
+        </div>
+        <div class="layui-col-md1">
+            <button class="layui-btn layui-btn-primary layui-border" id="addmatnr" onclick="getMat()">鏂板鐗╂枡</button>
+        </div>
+    </div>
+
+    <div class="layui-row">
+        <script type="text/html" id="operate">
+            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+        </script>
+        <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+    </div>
+</div>
+<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/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/pakComb.js" charset="utf-8"></script>
+
+</body>
+
+</html>
+

--
Gitblit v1.9.1