From ea327cdeca992d02acc2b2744e09ef449c0ee3cb Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 12 五月 2023 14:27:51 +0800
Subject: [PATCH] 库临、库存上下限

---
 src/main/webapp/views/home/console.html                |  115 +++++++++++++++++++++++++++-
 src/main/webapp/static/js/mat/mat.js                   |    3 
 src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java |    8 ++
 src/main/resources/mapper/MatMapper.xml                |    4 
 src/main/webapp/views/mat/mat.html                     |   47 +++--------
 src/main/java/com/zy/asrs/entity/Mat.java              |   23 +++++
 src/main/resources/mapper/ViewStayTimeMapper.xml       |    8 ++
 7 files changed, 168 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/Mat.java b/src/main/java/com/zy/asrs/entity/Mat.java
index f81ea9c..f0a716e 100644
--- a/src/main/java/com/zy/asrs/entity/Mat.java
+++ b/src/main/java/com/zy/asrs/entity/Mat.java
@@ -306,9 +306,27 @@
     @ExcelProperty(value = "澶囨敞")
     private String memo;
 
+    /**
+     * 搴撳瓨棰勮鏁伴噺涓婇檺
+     */
+    @TableField("store_max")
+    private Double storeMax;
+
+    /**
+     * 搴撳瓨棰勮鏁伴噺涓嬮檺
+     */
+    @TableField("store_min")
+    private Double storeMin;
+
+    /**
+     * 搴撻緞棰勮涓婇檺
+     */
+    @TableField("store_max_date")
+    private Integer storeMaxDate;
+
     public Mat() {}
 
-    public Mat(String uuid,Long tagId,String matnr,String maktx,String name,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double length,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+    public Mat(String uuid, Long tagId, String matnr, String maktx, String name, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo, Double storeMax, Double storeMin, Integer storeMaxDate) {
         this.uuid = uuid;
         this.tagId = tagId;
         this.matnr = matnr;
@@ -346,6 +364,9 @@
         this.updateBy = updateBy;
         this.updateTime = updateTime;
         this.memo = memo;
+        this.storeMax = storeMax;
+        this.storeMin = storeMin;
+        this.storeMaxDate = storeMaxDate;
     }
 
 //    Mat mat = new Mat(
diff --git a/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java b/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
index 0e9b6ab..a9f48ee 100644
--- a/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
+++ b/src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -29,6 +29,14 @@
 
 	private Integer row;
 
+	private Double store_max;
+
+	private Double store_min;
+
+	private Integer store_max_date;
+
+	private Integer sum_qty;
+
 	@ApiModelProperty(value= "搴撲綅鍙�")
 	private String loc_no;
 
diff --git a/src/main/resources/mapper/MatMapper.xml b/src/main/resources/mapper/MatMapper.xml
index 4a83e17..f199f1b 100644
--- a/src/main/resources/mapper/MatMapper.xml
+++ b/src/main/resources/mapper/MatMapper.xml
@@ -42,7 +42,9 @@
         <result column="update_by" property="updateBy" />
         <result column="update_time" property="updateTime" />
         <result column="memo" property="memo" />
-
+        <result column="store_max" property="storeMax" />
+        <result column="store_min" property="storeMin" />
+        <result column="store_max_date" property="storeMaxDate" />
         <result column="stock" property="stock" />
     </resultMap>
 
diff --git a/src/main/resources/mapper/ViewStayTimeMapper.xml b/src/main/resources/mapper/ViewStayTimeMapper.xml
index 2b01a4f..7c9b42d 100644
--- a/src/main/resources/mapper/ViewStayTimeMapper.xml
+++ b/src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -8,6 +8,9 @@
 		<if test="loc_no!=null and loc_no!='' ">
 			and asr_loc_mast.loc_no like '%' + #{loc_no} + '%'
 		</if>
+		<if test="specs!=null and specs!='' ">
+			and specs like '%' + #{specs} + '%'
+		</if>
 		<if test="matnr!=null and matnr!='' ">
 			and matnr like '%' + #{matnr} + '%'
 		</if>
@@ -58,6 +61,11 @@
 			where 1=1
 			<include refid="viewStayTimeConditionSql"></include>
 		) t
+		left join (select matnr as c ,store_max_date,store_max,store_min from man_mat) b
+		on t.matnr = b.c
+		left join (select matnr as f,sum(asr_loc_detl.anfme) as sum_qty from asr_loc_detl group by asr_loc_detl.matnr ) as z
+		on z.f= b.c
+
 	) a where a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
 </select>
 
diff --git a/src/main/webapp/static/js/mat/mat.js b/src/main/webapp/static/js/mat/mat.js
index ecf879f..6202067 100644
--- a/src/main/webapp/static/js/mat/mat.js
+++ b/src/main/webapp/static/js/mat/mat.js
@@ -5,6 +5,9 @@
     var cols = [
         {type: 'checkbox'}
         ,{field: 'tagId$', align: 'center',title: '褰掔被', templet: '#tagTpl'}
+        ,{field: 'storeMax', align: 'center',title: '搴撳瓨涓婇檺',width: 90}
+        ,{field: 'storeMin', align: 'center',title: '搴撳瓨涓嬮檺',width: 90}
+        ,{field: 'storeMaxDate', align: 'center',title: '搴撻緞涓婇檺(澶�)',width: 90}
     ];
     cols.push.apply(cols, matCols);
     cols.push(
diff --git a/src/main/webapp/views/home/console.html b/src/main/webapp/views/home/console.html
index ce1ed60..aff7c04 100644
--- a/src/main/webapp/views/home/console.html
+++ b/src/main/webapp/views/home/console.html
@@ -85,6 +85,12 @@
         .layui-form.layui-border-box.layui-table-view {
             border-top: 1px solid rgba(0,0,0,.1);
         }
+        #search-box {
+            margin-left: 10px;
+            z-index: 999;
+            position: relative;
+            padding: 0 30px 10px 30px;
+        }
     </style>
 </head>
 <body>
@@ -103,6 +109,29 @@
 <div class="home-elem loc-retention">
     <div class="layui-form">
         <div id="form-header">搴撳瓨婊炵暀鏃堕棿缁熻琛�</div>
+        <div class="layui-card" style="padding: 0 20px 1px 20px;">
+            <fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
+                <legend>鎼滅储鏍�</legend>
+                <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="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="specs" 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>
+                    </div>
+                </div>
+            </fieldset>
+
+        </div>
         <table class="layui-hide" id="stayTime" lay-filter="stayTime"></table>
     </div>
 </div>
@@ -235,17 +264,24 @@
     var pageCurr;
     function getCol() {
         var cols = [
-            {field: 'appeTime$', title: '鍏ュ簱鏃堕棿', align: 'center', width: 200}
-            ,{field: 'stay_time', align: 'center',title: '婊炵暀澶╂暟'}
-            ,{field: 'loc_no', align: 'center',title: '搴撲綅鍙�'}
+            //{field: 'appeTime$', title: '鍏ュ簱鏃堕棿', align: 'center', width: 165}
+            {field: 'stay_time', align: 'center',title: '婊炵暀澶╂暟',width: 90}
+            ,{field: 'store_max_date', align: 'center',title: '搴撻緞涓婇檺',width: 90}
+            ,{field: 'store_min', title: '搴撳瓨涓嬮檺', align: 'center'}
+            ,{field: 'sum_qty', title: '搴撳瓨鎬绘暟', align: 'center'}
+            ,{field: 'store_max', title: '搴撳瓨涓婇檺', align: 'center'}
+            ,{field: 'loc_no', align: 'center',title: '搴撲綅鍙�',width: 90}
+
         ];
         cols.push.apply(cols, detlCols);
+        //cols.push({field: 'sum_qty', title: '搴撳瓨鎬绘暟', align: 'center'})
         return cols;
     }
     layui.use(['table','laydate', 'form'], function() {
         var table = layui.table;
         var $ = layui.jquery;
         var layer = layui.layer;
+        var form = layui.form;
 
         // 鏁版嵁娓叉煋
         tableIns = table.render({
@@ -275,6 +311,37 @@
                 statusCode: 200
             },
             done: function(res, curr, count) {
+                var that = this.elem.next();
+                res.data.forEach(function (item, index) {
+                    var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
+                    if (item.store_max_date != null) {
+                        if (item.stay_time > item.store_max_date) {
+                            tr.css("background-color", "#ff6f00");
+                            tr.css("color", "white");
+                            tr.children()[1].style.backgroundColor="#ff0000"
+                        }
+                    }
+                    //浣庝簬涓嬮檺
+                    if (item.sum_qty < item.store_min) {
+                        tr.css("background-color", "#ff6f00");
+                        tr.css("color", "white");
+                        tr.children()[2].style.backgroundColor="rgb(255,0,0)"
+                        tr.children()[2].style.color="white"
+                        tr.children()[3].style.backgroundColor="#ff0000"
+                        tr.children()[3].style.color="white"
+                    }
+                    //楂樹簬涓婇檺
+                    if(item.store_max != null) {
+                        if (item.sum_qty > item.store_max) {
+                            tr.css("background-color", "#ff6f00");
+                            tr.css("color", "white");
+                            tr.children()[3].style.backgroundColor="#009c04"
+                            tr.children()[3].style.color="white"
+                            tr.children()[4].style.backgroundColor="#3da83f"
+                            tr.children()[4].style.color="white"
+                        }
+                    }
+                });
                 if (res.code === 403) {
                     top.location.href = baseUrl+"/";
                 }
@@ -296,6 +363,16 @@
                     curr: 1
                 },
                 done: function (res, curr, count) {
+                    var that = this.elem.next();
+                    res.data.forEach(function (item, index) {
+                        if (item.store_max_date != null) {
+                            if (item.stay_time > item.store_max_date) {
+                                var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
+                                tr.css("background-color", "#FF5722");
+                                tr.css("color", "white");
+                            }
+                        }
+                    });
                     if (res.code === 403) {
                         top.location.href = baseUrl+"/";
                     }
@@ -303,6 +380,36 @@
                 }
             });
         });
+
+        // 鎼滅储鏍忔悳绱簨浠�
+        form.on('submit(search)', function (data) {
+            tableReload();
+        });
+        // 鎼滅储鏍忔悳绱簨浠�
+        form.on('submit(reset)', function (data) {
+            $(':input', $('#search-box'))
+                .val('')
+                .removeAttr('checked')
+                .removeAttr('selected');
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            tableIns.reload({
+                where: searchData
+            });
+
+        });
+
+        function tableReload() {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            tableIns.reload({
+                where: searchData
+            });
+        }
     });
 
 
@@ -330,4 +437,4 @@
         return fmt;
     }
 </script>
-</html>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/mat/mat.html b/src/main/webapp/views/mat/mat.html
index f5b5767..ac62ac0 100644
--- a/src/main/webapp/views/mat/mat.html
+++ b/src/main/webapp/views/mat/mat.html
@@ -180,6 +180,7 @@
         <input name="updateBy" type="hidden">
         <div class="layui-row">
 
+
             <div class="layui-col-md6">
 
                 <div class="layui-form-item">
@@ -190,47 +191,31 @@
                 </div>
 
                 <div class="layui-form-item">
-                    <label class="layui-form-label">鐗╂枡鍙�</label>
+                    <label class="layui-form-label layui-form-required">鍟嗗搧鍚嶇О</label>
                     <div class="layui-input-block">
-                        <input name="maktx" placeholder="璇疯緭鍏ョ墿鏂欏彿" class="layui-input">
+                        <input name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
                     </div>
                 </div>
-
                 <div class="layui-form-item">
-                    <label class="layui-form-label">绉诲姩绫诲瀷</label>
+                    <label class="layui-form-label">搴撳瓨涓婇檺</label>
                     <div class="layui-input-block">
-                        <input name="name" placeholder="璇疯緭鍏ョЩ鍔ㄧ被鍨�" class="layui-input">
+                        <input name="storeMax" placeholder="搴撳瓨涓婇檺" type="number" class="layui-input">
                     </div>
                 </div>
-
                 <div class="layui-form-item">
-                    <label class="layui-form-label">閲嶉噺</label>
+                    <label class="layui-form-label">搴撻緞涓婇檺(澶�)</label>
                     <div class="layui-input-block">
-                        <input type="number" name="weight" placeholder="璇疯緭鍏ラ噸閲�" class="layui-input">
+                        <input name="storeMaxDate" placeholder="搴撻緞涓婇檺(澶�)" type="number" class="layui-input">
                     </div>
                 </div>
-
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐘舵��</label>
-                    <div class="layui-input-block">
-                        <input name="origin" placeholder="璇疯緭鍏ョ姸鎬�" class="layui-input">
-                    </div>
-                </div>
-
-<!--                <div class="layui-form-item">-->
-<!--                    <label class="layui-form-label">澶囨敞</label>-->
-<!--                    <div class="layui-input-block">-->
-<!--                        <input name="memo" placeholder="璇疯緭鍏ュ娉�" class="layui-input">-->
-<!--                    </div>-->
-<!--                </div>-->
 
             </div>
 
             <div class="layui-col-md6">
                 <div class="layui-form-item">
-                    <label class="layui-form-label layui-form-required">鐗╂枡鍙�</label>
+                    <label class="layui-form-label layui-form-required">鍟嗗搧缂栧彿</label>
                     <div class="layui-input-block">
-                        <input id="matnr" name="matnr" placeholder="璇疯緭鍏ュ崟鎹彿" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+                        <input id="matnr" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鍙�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
                     </div>
                 </div>
 
@@ -242,23 +227,17 @@
                 </div>
 
                 <div class="layui-form-item">
-                    <label class="layui-form-label">鎵规</label>
+                    <label class="layui-form-label">搴撳瓨涓嬮檺</label>
                     <div class="layui-input-block">
-                        <input name="model" placeholder="璇疯緭鍏ユ壒娆�" class="layui-input">
+                        <input name="storeMin" placeholder="搴撳瓨涓嬮檺" type="number" class="layui-input">
                     </div>
                 </div>
 
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍗曟嵁鏃堕棿</label>
-                    <div class="layui-input-block">
-                        <input name="manuDate" placeholder="璇疯緭鍏ュ崟鎹椂闂�" class="layui-input">
-                    </div>
-                </div>
 
                 <div class="layui-form-item">
-                    <label class="layui-form-label">鍖呮暟</label>
+                    <label class="layui-form-label">澶囨敞</label>
                     <div class="layui-input-block">
-                        <input type="number" name="units" placeholder="璇疯緭鍏ュ寘鏁�" class="layui-input">
+                        <input name="memo" placeholder="璇疯緭鍏ュ娉�" class="layui-input">
                     </div>
                 </div>
 

--
Gitblit v1.9.1