From e57b2edbffff5a653ba9eda65eae100ceb2e7822 Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期一, 01 九月 2025 16:16:41 +0800
Subject: [PATCH] 乔一:客户物料即时库存报表、客户手工抄包报表

---
 WebTM/views/生产管理/日计划报表/MaterialShorAnalysisReport.html |  318 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 297 insertions(+), 21 deletions(-)

diff --git "a/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\346\227\245\350\256\241\345\210\222\346\212\245\350\241\250/MaterialShorAnalysisReport.html" "b/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\346\227\245\350\256\241\345\210\222\346\212\245\350\241\250/MaterialShorAnalysisReport.html"
index 37c6c56..979a3a6 100644
--- "a/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\346\227\245\350\256\241\345\210\222\346\212\245\350\241\250/MaterialShorAnalysisReport.html"
+++ "b/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\346\227\245\350\256\241\345\210\222\346\212\245\350\241\250/MaterialShorAnalysisReport.html"
@@ -5,13 +5,15 @@
     <title>缂烘枡鍒嗘瀽鎶ヨ〃</title>
     <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
     <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
+    <link rel="stylesheet" href="../../../layuiadmin/ext/soulTable.css" media="all">
     <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
     <script src="../../../layuiadmin/layui/layui.js"></script>
     <script src="../../../layuiadmin/Scripts/json2.js"></script>
     <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
     <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
     <script src="../../../layuiadmin/PubCustom.js"></script>
-
+    <!--<script src="../../../layuiadmin/soulTable.slim.js"></script>-->
+    <script src="../../../layuiadmin/SetColumn.js"></script>
 </head>
 <body>
     <div class="layui-fluid">
@@ -48,10 +50,93 @@
                                 </div>
                                 <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">鏌ヨ</button>
                                 <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch">閲嶇疆</button>
+                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnExport" id="btnExport">瀵煎嚭</button>
                                 <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
-                                    <div class="layui-row" style="margin-top:10px;">
-                                       
-                                    </div>
+                                    <!--<div class="layui-row" style="margin-top:10px;">
+                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
+                                            <div class="layui-inline">
+                                                <label class="layui-form-label">杩囨护</label>
+                                                <div class="layui-input-block">
+                                                    <select name="ColName" id="ColName" class="ForFilteringSchemes" lay-filter="ColName" style="width:190px;">
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <select name="Comparator" id="Comparator" class="ForFilteringSchemes" lay-filter="Comparator" style="width:190px;">
+                                                    <option value="0" selected="selected"></option>
+                                                    <option value="=">=</option>
+                                                    <option value=">=">>=</option>
+                                                    <option value=">">></option>
+                                                    <option value="<="><=</option>
+                                                    <option value="<"><</option>
+                                                    <option value="<>"><></option>
+                                                    <option value="7">鍖呭惈</option>
+                                                    <option value="8">宸﹀寘鍚�</option>
+                                                    <option value="9">鍙冲寘鍚�</option>
+                                                    <option value="10">涓嶅寘鍚�</option>
+                                                </select>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent">
+                                            </div>
+                                        </div>
+
+                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
+                                            <div class="layui-inline">
+                                                <label class="layui-form-label">杩囨护</label>
+                                                <div class="layui-input-block">
+                                                    <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" lay-filter="Comparator1" style="width:190px;">
+                                                    <option value="0" selected="selected"></option>
+                                                    <option value="=">=</option>
+                                                    <option value=">=">>=</option>
+                                                    <option value=">">></option>
+                                                    <option value="<="><=</option>
+                                                    <option value="<"><</option>
+                                                    <option value="<>"><></option>
+                                                    <option value="7">鍖呭惈</option>
+                                                    <option value="8">宸﹀寘鍚�</option>
+                                                    <option value="9">鍙冲寘鍚�</option>
+                                                    <option value="10">涓嶅寘鍚�</option>
+                                                </select>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
+                                            </div>
+                                        </div>
+
+                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
+                                            <div class="layui-inline">
+                                                <label class="layui-form-label">杩囨护</label>
+                                                <div class="layui-input-block">
+                                                    <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" lay-filter="Comparator2" style="width:190px;">
+                                                    <option value="0" selected="selected"></option>
+                                                    <option value="=">=</option>
+                                                    <option value=">=">>=</option>
+                                                    <option value=">">></option>
+                                                    <option value="<="><=</option>
+                                                    <option value="<"><</option>
+                                                    <option value="<>"><></option>
+                                                    <option value="7">鍖呭惈</option>
+                                                    <option value="8">宸﹀寘鍚�</option>
+                                                    <option value="9">鍙冲寘鍚�</option>
+                                                    <option value="10">涓嶅寘鍚�</option>
+                                                </select>
+                                            </div>
+                                            <div class="layui-inline">
+                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
+                                            </div>
+                                        </div>
+                                    </div>-->
                                 </div>
                             </div>
                         </div>
@@ -76,7 +161,8 @@
         base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
     }).extend({
         index: 'lib/index', //涓诲叆鍙fā鍧�
-    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util'], function () {
+        soulTable: '../ext/soulTable'
+    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util','soulTable'], function () {
         //#region 鍏敤鍙橀噺
         var $ = layui.$
             , admin = layui.admin
@@ -89,9 +175,11 @@
             , util = layui.util
             , tree = layui.tree
             , util = layui.util
+            , soulTable = layui.soulTable
         var sWhere = "";
         var option = [];
         var HModName = "MaterialShorAnalysisReport";
+        var ins;                        //鐢ㄤ簬瀵煎嚭excel
         //#endregion
 
         //#region 杩涘叆椤甸潰鍗冲姞杞�
@@ -108,7 +196,7 @@
             switch (obj.event) {
                 //闅愯棌鍒楄缃�
                 case 'HideColumn':
-                    get_HideColumn();
+                    get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
                     break;
             };
         });
@@ -123,6 +211,12 @@
         //#region 鏌ヨ鎸夐挳
         form.on('submit(btnSearch)', function (data) {
             get_FastQuery(2);
+        });
+        //#endregion
+
+        //#region 瀵煎嚭鎸夐挳
+        form.on('submit(btnExport)', function (data) {
+            getExportData();
         });
         //#endregion
 
@@ -142,11 +236,13 @@
             $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), 'yyyy-MM-dd'));
             //鐢熶骇缁勭粐鍔犺浇
             Organ();
+            //鍒濆鍖栬〃鏍�
+            set_InitGrid();
             ////鍒濆鍖栬〃鏍�
             //set_InitGrid();
             //蹇�熻繃婊�
             get_FastQuery(1);
-            DisPlay_HideColumn();
+            //ColFilter();
         }
         //#endregion
 
@@ -154,13 +250,13 @@
         function set_InitGrid() {
             var columns = [];
 
-            columns.push({ type: 'checkbox', fixed: 'left' });
-            columns.push({ field: 'HOrgName', title: '閲囪喘缁勭粐' });
-            columns.push({ field: 'FNUMBER', title: '鐗╂枡缂栫爜' });
-            columns.push({ field: 'HMaterName', title: '鐗╂枡鍚嶇О' });
-            columns.push({ field: 'HMaterModel', title: '鐗╂枡瑙勬牸' });
-            columns.push({ field: 'CountHQty', title: '鍚堣' });
-            columns.push({ field: 'FBASEQTY', title: '鍗虫椂搴撳瓨鏁伴噺' });
+            columns.push({ field: 'HOrgName', title: '閲囪喘缁勭粐', sort: false, filter: true });
+            columns.push({ field: 'FNUMBER', title: '鐗╂枡缂栫爜', sort: false, filter: true });
+            columns.push({ field: 'HMaterName', title: '鐗╂枡鍚嶇О', sort: false, filter: true });
+            columns.push({ field: 'HMaterModel', title: '鐗╂枡瑙勬牸', sort: false, filter: true });
+            columns.push({ field: '鍦ㄩ�旀暟閲�', title: '鍦ㄩ�旀暟閲�', totalRow: true, filter: true });
+            columns.push({ field: 'CountHQty', title: '鍚堣', sort: false, filter: true });
+            columns.push({ field: 'FBASEQTY', title: '鍗虫椂搴撳瓨鏁伴噺', sort: false, totalRow: true, filter: true});
             //鑾峰彇涓や釜鏈堟湡涔嬮棿鐨勭浉宸�
             var time1 = Date.parse(new Date($("#HBEGINDATE").val()));//寮�濮嬫椂闂�
             var time2 = Date.parse(new Date($("#HENDDATE").val()));//缁撴潫鏃堕棿
@@ -176,7 +272,7 @@
 
             var k = 0;//鏀堕泦寰幆娆℃暟
             for (var j = 0; j <= (Days - k); j++) {
-                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70 })
+                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70, totalRow: true })
                 //璺ㄥ勾鐨勮瘽 浼氫粠涓�鏈堜竴鍙峰紑濮�
                 if (MM == 12 && (HBEGINDATE + j) == 31) {
                     yyyy += 1;
@@ -199,11 +295,13 @@
                 , height: 'full-50'
                 , page: true
                 , cellMinWidth: 90
-                , limit: 50
-                , limits: [50, 500, 5000, 20000]
+                , totalRow: true
+                , limit: 1000
+                , limits: [50, 500,1000, 5000, 20000]
                 , loading: false
                 , cols: [columns]
                 , done: function (res, page, count) {
+                    soulTable.render(this);
                     var that = this.elem.next();
                     res.data.forEach(function (item, index) {
                         var NumCount = item.FBASEQTY;//鑾峰彇鎬诲簱瀛樻暟閲�
@@ -211,11 +309,16 @@
                             var dateNowTime = Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + i), 'yyyy-MM-dd');
                             if (item[dateNowTime] != null) {
                                 if (NumCount > parseFloat(item[dateNowTime])) {
+                                    //搴撳瓨鏁伴噺>闇�姹傛暟閲忥細鍓╀綑鍙敤搴撳瓨鏁伴噺=搴撳瓨鏁伴噺-闇�姹傛暟閲�
                                     NumCount -= parseFloat(item[dateNowTime]);
                                 } else {
-                                    var num = 6;//鍗虫椂搴撳瓨涓庢棩鏈熸尐鐫�  浠庡嵆鏃跺簱瀛樺紑濮嬬畻
+                                    //搴撳瓨鏁伴噺<闇�姹傛暟閲忥細鍓╀綑鍙敤搴撳瓨鏁伴噺=0
+                                    NumCount = 0;
+
+                                    var num = 7;//鍗虫椂搴撳瓨涓庢棩鏈熸尐鐫�  浠庡嵆鏃跺簱瀛樺紑濮嬬畻
                                     tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
-                                    rq = tr.children()[num + 1 + i];
+                                    //rq = tr.children()[num + 1 + i];
+                                    rq = tr.children()[num + i];
                                     rq.style.color = '#f66161';//鐒跺悗鍙樿壊
                                     rq = tr.children()[num];
                                     rq.style.color = '#f66161';//鐒跺悗鍙樿壊
@@ -277,6 +380,8 @@
                 success: function (result) {
                     if (result.count == 1) {
                         option.data = result.data;
+                        //鍒楄缃�
+                        DisPlay_HideColumnForPlan(HModName, sessionStorage["HUserName"], option);
                         table.render(option);
                         layer.close(ajaxLoad);
                         //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
@@ -291,6 +396,79 @@
             });
         }
 
+        //#endregion
+
+        //#region 鑾峰彇瀵煎嚭鏁版嵁
+        function getExportData() {
+            var data;//瀵煎嚭鐨勬暟鎹�
+            var ajaxLoad = layer.load();
+            var HORGID = $("#HORGID").val();//缁勭粐           
+            var HBEGINDATE = $("#HBEGINDATE").val();//鎻愭枡鏃ユ湡
+            var HENDDATE = $("#HENDDATE").val();//鑷�
+            //var HMATERIALID = $("#HMATERIALID").val();//鐗╂枡/浜у搧
+            //var HSUPPLIERID = $("#HSUPPLIERID").val();//渚涘簲鍟�
+            //var HXQD = $("#HXQD").val();//闇�姹傚崟鍙�
+            //var HPURORDERNO = $("#HPURORDERNO").val();//閲囪喘璁㈠崟鍙�
+            var ColName = $("#ColName").val();//澶嶉�夋
+            var Comparator = $("#Comparator").val()
+            var ColContent = $("#ColContent").val();
+            var ColName1 = $("#ColName1").val();//澶嶉�夋
+            var Comparator1 = $("#Comparator1").val()
+            var ColContent1 = $("#ColContent1").val();
+            var ColName2 = $("#ColName2").val();//澶嶉�夋
+            var Comparator2 = $("#Comparator2").val()
+            var ColContent2 = $("#ColContent2").val();
+            if (HBEGINDATE > HENDDATE) {
+                return layer.msg("寮�濮嬫棩鏈熶笉鑳藉皬浜庣粨鏉熸棩鏈�!");
+            }
+
+            sWhere = {
+                HORGID: HORGID
+                , HBEGINDATE: HBEGINDATE
+                , HENDDATE: HENDDATE
+                //, HMATERIALID: HMATERIALID
+                //, HSUPPLIERID: HSUPPLIERID
+                //, HXQD: HXQD
+                //, HPURORDERNO: HPURORDERNO
+            }
+
+            $.ajax({
+                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/MaterialShorAnalysisReport',
+                type: "GET",
+                data: { "sWhere": JSON.stringify(sWhere) },//, "user": sessionStorage["HUserName"]
+                success: function (result) {
+                    if (result.count == 1) {
+                        data = result.data;
+
+                        option.data = data;
+                        ins = table.render(option);
+
+                        data.forEach((item) => {
+                            for (let itemobj in item) {
+                                if (item[itemobj] == null) {
+                                    item[itemobj] = "";
+                                }
+                                if (item[itemobj].length > 0) {  // 鍋囪瀛楁鍚嶄负field
+                                    item[itemobj] = item[itemobj].toString().replace(/[\r\n]+/g, '');  // 灏嗘崲琛岀鏇挎崲涓虹┖瀛楃涓�
+                                }
+                            }
+                        });
+
+                        table.exportFile(ins.config.id, data, "xls");
+
+                        layer.close(ajaxLoad);
+                    } else {
+                        layer.close(ajaxLoad);
+                        layer.alert(result.code + result.Message, { icon: 5 });
+                    }
+                }, error: function () {
+                    layer.close(ajaxLoad);
+                    layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+                }
+            });
+
+            sWhere = "";
+        }
         //#endregion
 
         //#region 蹇�熻繃婊�
@@ -308,7 +486,80 @@
             //var HSUPPLIERID = $("#HSUPPLIERID").val();//渚涘簲鍟�
             //var HXQD = $("#HXQD").val();//闇�姹傚崟鍙�
             //var HPURORDERNO = $("#HPURORDERNO").val();//閲囪喘璁㈠崟鍙�
+            var ColName = $("#ColName").val();//澶嶉�夋
+            var Comparator = $("#Comparator").val()
+            var ColContent = $("#ColContent").val();
+            var ColName1 = $("#ColName1").val();//澶嶉�夋
+            var Comparator1 = $("#Comparator1").val()
+            var ColContent1 = $("#ColContent1").val();
+            var ColName2 = $("#ColName2").val();//澶嶉�夋
+            var Comparator2 = $("#Comparator2").val()
+            var ColContent2 = $("#ColContent2").val();
 
+            if (ColName != 0 && Comparator != 0) {
+                var com = "";
+                switch (Comparator) {
+                    case "7":
+                        com = "like'%" + ColContent + "%'";
+                        break;
+                    case "8":
+                        com = "like'%" + ColContent + "'";
+                        break;
+                    case "9":
+                        com = "like'" + ColContent + "%'";
+                        break;
+                    case "10":
+                        com = "not like'%" + ColContent + "%'";
+                        break;
+                    default:
+                        com = "" + Comparator + "'" + ColContent + "'";
+                        break;
+                }
+                sWhere += " and " + ColName + " " + com;
+            }
+
+            if (ColName1 != 0 && Comparator1 != 0) {
+                var com1 = "";
+                switch (Comparator1) {
+                    case "7":
+                        com1 = "like'%" + ColContent1 + "%'";
+                        break;
+                    case "8":
+                        com1 = "like'%" + ColContent1 + "'";
+                        break;
+                    case "9":
+                        com1 = "like'" + ColContent1 + "%'";
+                        break;
+                    case "10":
+                        com1 = "not like'%" + ColContent1 + "%'";
+                        break;
+                    default:
+                        com1 = "" + Comparator1 + "'" + ColContent1 + "'";
+                        break;
+                }
+                sWhere += " and " + ColName1 + " " + com1;
+            }
+            if (ColName2 != 0 && Comparator2 != 0) {
+                var com2 = "";
+                switch (Comparator2) {
+                    case "7":
+                        com2 = "like'%" + ColContent2 + "%'";
+                        break;
+                    case "8":
+                        com2 = "like'%" + ColContent2 + "'";
+                        break;
+                    case "9":
+                        com2 = "like'" + ColContent2 + "%'";
+                        break;
+                    case "10":
+                        com2 = "not like'%" + ColContent2 + "%'";
+                        break;
+                    default:
+                        com2 = "" + Comparator + "'" + ColContent + "'";
+                        break;
+                }
+                sWhere += " and " + ColName2 + " " + com2;
+            }
             if (HBEGINDATE > HENDDATE) {
                 return layer.msg("寮�濮嬫棩鏈熶笉鑳藉皬浜庣粨鏉熸棩鏈�!");
             }
@@ -322,8 +573,7 @@
                 //, HXQD: HXQD
                 //, HPURORDERNO: HPURORDERNO
             }
-            //鍒濆鍖栬〃鏍�
-            set_InitGrid();
+            
             get_Display(JSON.stringify(sWhere));
             sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
         }
@@ -340,6 +590,15 @@
             //$("#HSUPPLIERNAME").val("");
             //$("#HXQD").val("");//闇�姹傚崟鍙�
             //$("#HPURORDERNO").val("");//閲囪喘璁㈠崟鍙�
+            $("#ColContent").val("");
+            $("#ColName").val("0");
+            $("#Comparator").val("0");
+            $("#ColContent1").val("");
+            $("#ColName1").val("0");
+            $("#Comparator1").val("0");
+            $("#ColContent2").val("");
+            $("#ColName2").val("0");
+            $("#Comparator2").val("0");
             form.render('select');
             sWhere = "";
         }
@@ -499,6 +758,23 @@
                 }
             })
         }
+        //鍒楁槑鏄剧ず涓嬫媺妗�
+        function ColFilter() {
+            var Organization = '<option  value="0" selected="selected" ></option>';
+            for (var i = 1; i < option.cols[0].length; i++) {
+                if (option.cols[0][i].hide != true) {
+                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
+                }
+            }
+            $("#ColName").empty();
+            $("#ColName").append(Organization);
+            $("#ColName1").empty();
+            $("#ColName1").append(Organization);
+            $("#ColName2").empty();
+            $("#ColName2").append(Organization);
+
+            form.render('select');
+        }
 
         //#endregion
         //浠ヤ笂鏄痩ayui妯″潡

--
Gitblit v1.9.1