yyk
2024-07-18 ac85d00b1c88e0088c9f6f23c09a4ed87415ad38
HTML/views/StatisticalReport/InventoryStatistics.html
@@ -36,6 +36,18 @@
         <div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top">
            <div class="layui-form-item" style="margin-bottom: 0px;">
               <div class="layui-inline ">
                  <label class="layui-form-label" style="width: 60px;">查询类型</label>
                  <div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
                     <select name="SelectType" id="SelectType" lay-filter="SelectType" lay-search>
                        <option value="">正常</option>
                        <option value="0">物料信息</option>
                        <option value="1">批次信息</option>
                        <option value="2">质检信息</option>
                        <option value="3">货主信息</option>
                     </select>
                  </div>
               </div>
               <div class="layui-inline zongdan">
                  <label class="layui-form-label" style="width: 60px;">物料编码</label>
                  <div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
@@ -71,7 +83,7 @@
                        class="layui-input">
                  </div>
               </div>
               <div class="layui-inline mingxi">
               <!-- <div class="layui-inline mingxi">
                  <label class="layui-form-label" style="width: 60px;">储位地址</label>
                  <div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
                     <input type="text" id="LocatNo" name="LocatNo" placeholder="储位地址" autocomplete="off"
@@ -84,7 +96,7 @@
                     <input type="text" id="PalletNo" name="PalletNo" placeholder="托盘号" autocomplete="off"
                        class="layui-input">
                  </div>
               </div>
               </div> -->
               
               <div class="layui-inline ">
                  <label class="layui-form-label" style="width: 60px;">库存状态</label>
@@ -123,7 +135,7 @@
                     </select>
                  </div>
               </div>
               <div class="layui-inline zhijian">
               <!-- <div class="layui-inline zhijian">
                  <label class="layui-form-label" style="width: 60px;">开始时间</label>
                  <div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
                     <input type="text" autocomplete="off" id="StartTime" class="layui-input"
@@ -136,7 +148,7 @@
                     <input type="text" autocomplete="off" id="EndTime" class="layui-input"
                        placeholder="结束时间">
                  </div>
               </div>
               </div> -->
               <div class="layui-inline sousuo">
                  <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
                     lay-filter="LAY-app-contlist-search">
@@ -151,19 +163,15 @@
            </div>
         </div>
         <div id="center"></div>
         <div class="layui-card-body">
            <div style="position: relative;">
               <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
                  <ul class="layui-tab-title" id="tab">
                     <li class="layui-this">库存总量</li>
                     <li>库存明细</li>
                  </ul>
                  <div id="center"></div>
                  <!-- <div id="center">
                  </div> -->
                  <div class="layui-tab-content">
                     <div class="layui-tab-item layui-show">
                     <!-- <div class="layui-tab-item layui-show"> -->
                        <div class="position-relative"><!-- class="position-relative" --><!-- 自定义表头加上 -->
                           <table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
                           <!-- #region 自定义表头 -->
@@ -173,29 +181,6 @@
                              </button>
                           </div>
                           <!-- #endregion -->
                        </div>
                     </div>
                     <div class="layui-tab-item">
                        <div class="position-relative"><!-- class="position-relative" --><!-- 自定义表头加上 -->
                           <table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table>
                           <!-- #region 自定义表头 -->
                           <div class="headerSetIcon">
                              <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols2">
                                 <i class="layui-icon">&#xe610;</i>
                              </button>
                           </div>
                           <!-- #endregion -->
                           <!-- #region 自定义表头 -->
                           <script type="text/html" id="templetCompleteTime">
                              {{# function GetBtn(d){
                                    return formatDate(d.CompleteTime);
                                 }
                              }}
                              {{ GetBtn(d) }}
                           </script>
                           <!-- #endregion -->
                        </div>
                     </div>
                  </div>
               </div>
@@ -258,7 +243,7 @@
         element = layui.element;
         laydate = layui.laydate;
         var h1 = GetTableTabHeight();
         var h1 = GetTableHeight();
         laydate.render({
            elem: '#StartTime',
@@ -296,7 +281,7 @@
         var $ = layui.$;
         var yemianid = 0;
         refreshTable("", "","","","");
         refreshTable("", "", "", "", "", "", "", "");
         // 表单需要的变量
         var infoOptions;
@@ -361,14 +346,17 @@
                  {field: 'LotText',title: '批次描述',align: 'center'},
                  {field: 'OwnerNo',title: '货主编码',align: 'center'},
                  {field: 'OwnerName',title: '货主名称',align: 'center'}, 
                  {field: 'Status',title: '库存状态',align: 'center',templet: '#buttonTpl'},
                  {field: 'InspectStatus',title: '质检状态',align: 'center',templet: '#buttonTp2'},
                  {field: 'Qty',title: '库存数量',align: 'center',totalRow: true}, 
                  {field: 'LockQty',title: '锁定数量',align: 'center',totalRow: true}, 
                  {field: 'FrozenQty',title: '冻结数量',align: 'center',totalRow: true}
                  {field: 'FrozenQty',title: '冻结数量',align: 'center',totalRow: true},
                  {field: 'InspectQty',title: '可抽检数量',align: 'center',totalRow: true},
               ]];
         var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码
         //#endregion
         //获取总量信息
         function refreshTable(SkuNo,SkuName,OwnerNo,OwnerName,LotNo) {
         function refreshTable(SelectType,SkuNo,SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus) {
            //#region 自定义表头
            var colsJson
            var param1={
@@ -401,11 +389,14 @@
                  cols:colsJson
               };
               var param = {
                  SelectType:SelectType, //查询类型
                  SkuNo:SkuNo, //物料号
                  SkuName:SkuName, //物料名称
                  OwnerNo:OwnerNo, //货主编码
                  OwnerName:OwnerName, //货主名称
                  LotNo:LotNo, //批次号
                  Status:Status, //库存状态 = $("#Status").val();
                  InspectStatus:InspectStatus, //质检状态 = $("#InspectStatus").val();
               };
               sendData(IP + "/Statistical/GetInventoryList", param, 'get', function (res) {
                  console.log(res)
@@ -430,256 +421,22 @@
            //#endregion
         }         
         // 表单需要的变量
         var infoOptions2;
         //#region 原始非自定义列
         //infoOptions2 = {
         //   elem: '#LAY-app-content-list2',
         //   height: 'full-206',
         //   id: 'LAY-app-content-list2',
         //   page: true,
         //   limit: pageCnt,
         //   limits: pageLimits,
         //   even: true,
         //   cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
         //   cols:
         //      [[
         //         {
         //            field: 'PalletNo',
         //            title: '托盘号',
         //            align: 'center',
         //            width: 110,
         //         }, {
         //            field: 'LocatNo',
         //            title: '储位地址',
         //            align: 'center',
         //            width: 100,
         //         }, {
         //            field: 'RoadwayName',
         //            title: '所属巷道',
         //            width: 90,
         //            align: 'center',
         //         }, {
         //            field: 'WareHouseName',
         //            title: '所属仓库',
         //            width: 90,
         //            align: 'center',
         //         }, {
         //            field: 'SkuNo',
         //            title: '物料编码',
         //            width: 100,
         //            align: 'center',
         //         }, {
         //            field: 'SkuName',
         //            title: '物料名称',
         //            align: 'center',
         //         }, {
         //            field: 'Standard',
         //            title: '物料规格',
         //            width: 130,
         //            align: 'center',
         //         }, {
         //            field: 'LotNo',
         //            title: '批次号',
         //            align: 'center',
         //         }, {
         //            field: 'Qty',
         //            title: '库存数量',
         //            width: 110,
         //            align: 'center',
         //         }, {
         //            field: 'LockQty',
         //            title: '锁定数量',
         //            width: 110,
         //            align: 'center',
         //         },
         //         {
         //            field: 'Status',
         //            templet: '#buttonTpl',
         //            title: '库存状态',
         //            width: 90,
         //            align: 'center',
         //         }, {
         //            field: 'InspectStatus',
         //            templet: '#buttonTp2',
         //            title: '质检状态',
         //            width: 90,
         //            align: 'center',
         //         },
         //         {
         //            field: 'CompleteTime',
         //            title: '入库时间',
         //            align: 'center',
         //            width: 150,
         //            templet: function (d) {
         //               return formatDate(d.CompleteTime);
         //            },
         //         },
         //      ]]
         //};
         //#endregion
         //获取明细信息
         //#region 自定义表头
         var DetailColsArr = [[
                  {field: 'PalletNo',title: '托盘号',align: 'center',width: 110,},
                  {field: 'LocatNo',title: '储位地址',align: 'center',width: 100,},
                  {field: 'WareHouseName',title: '所属仓库',width: 90,align: 'center'},
                  {field: 'RoadwayName',title: '所属巷道',width: 90,align: 'center'},
                  {field: 'AreaName',title: '所属区域',width: 90,align: 'center'},
                  {field: 'SkuNo',title: '物料编码',width: 100,align: 'center'},
                  {field: 'SkuName',title: '物料名称',align: 'center'},
                  {field: 'Standard',title: '物料规格',width: 130,align: 'center'},
                  {field: 'LotNo',title: '批次号',align: 'center'},
                  {field: 'OwnerNo',title: '货主编码',align: 'center'},
                  {field: 'OwnerName',title: '货主名称',align: 'center'},
                  {field: 'SupplierNo',title: '供应商编码',align: 'center'},
                  {field: 'SupplierName',title: '供应商名称',align: 'center'},
                  {field: 'Qty',title: '库存数量',width: 110,align: 'center'},
                  {field: 'LockQty',title: '锁定数量',width: 110,align: 'center'},
                  {field: 'Status',templet: '#buttonTpl',title: '库存状态',width: 90,align: 'center'},
                  {field: 'InspectStatus',templet: '#buttonTp2',title: '质检状态',width: 90,align: 'center'},
                  {field: 'CompleteTime',title: '入库时间',align: 'center',width: 150,templet: '#templetCompleteTime'},
               ]];
         var DetailColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码
         //#endregion
         function refreshTable2(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime) {
            //#region 自定义表头
            var colsJson2
            var param1={
               Href:'Statistical/GetInventoryList1'
            };
            sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) {
               if (res.code == 0){
                  if(res.data=='' || res.data==undefined || res.data==null){
                     colsJson2=DetailColsArr
                  }else{
                     colsJson2= eval(res.data);
                  }
               }else{
                     colsJson2=DetailColsArr
               }
               infoOptions2 = {
                  elem: '#LAY-app-content-list2',
                  height: h1,
                  id: 'LAY-app-content-list2',
                  page: true,
                  limit: pageCnt,
                  limits: pageLimits,
                  even: true,
                  cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
                  done: function(){
                     //自定义列宽
                     SetTableColW('LAY-app-content-list2','Statistical/GetInventoryList1',DetailColsSysArr);
                  },
                  cols:colsJson2
               };
               var param = {
                  SkuNo:SkuNo, //物料号
                  SkuName:SkuName, //物料名称
                  OwnerNo:OwnerNo, //货主编码
                  OwnerName:OwnerName, //货主名称
                  LotNo:LotNo, //批次号
                  LocatNo:LocatNo,//储位地址
                  PalletNo:PalletNo, //托盘号
                  Status:Status,//库存状态
                  InspectStatus:InspectStatus, //质检状态
                  StartTime:StartTime,//开始时间
                  EndTime:EndTime, //结束时间
               };
               sendData(IP + "/Statistical/GetInventoryList1", param, 'get', function (res) {
                  if (res.code == 0) //成功
                  {
                     var list = res.data;
                     $.extend(infoOptions2, {
                        data: list
                     });
                     infoOptions2.page = {
                        curr: 1
                     }
                     tableIns2 = table.render(infoOptions2);
                  }
                  else //不成功
                  {
                     layer.msg('获取明细列表信息失败!', {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                     }, function () { });
                  }
               })
            });
            //#endregion
         }
         //var url = IP + "/Statistical/GetInventoryList1";
         //接受全局变量
         let quanSkuNo = '';
         let quanLotNo='';
         //监听搜索
         form.on('submit(LAY-app-contlist-search)', function (data) {
            var SelectType = $("#SelectType").val();
            var SkuNo = $("#SkuNo").val();
            var SkuName = $("#SkuName").val();
            var LotNo = $("#LotNo").val();
            var LocatNo = $("#LocatNo").val();
            var PalletNo = $("#PalletNo").val();
            var OwnerNo = $("#OwnerNo").val();
            var OwnerName = $("#OwnerName").val();
            var Status = $("#Status").val();
            var InspectStatus = $("#InspectStatus").val();
            var StartTime = $("#StartTime").val();
            var EndTime = $("#EndTime").val();
            if (yemianid == 0) {
               console.log("总单");
               refreshTable(SkuNo, SkuName,OwnerNo,OwnerName,LotNo);
            } else if (yemianid == 1) {
               //quanSkuNo = quanSkuNo;
               //quanLotNo='';
               console.log("明细");
               console.log(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime)
               refreshTable2(quanSkuNo,SkuName,OwnerNo,OwnerName,quanLotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime);
            }
            refreshTable(SelectType,SkuNo, SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus);
         });
         //触发行双击事件
         table.on('rowDouble(LAY-app-content-list)', function (obj) {
            $(".layui-tab-title>li").attr("class", "");
            $('.layui-tab-title>li').eq(1).attr('class', 'layui-this');
            $('.layui-tab-content .layui-tab-item').attr('class', 'layui-tab-item')
            $('.layui-tab-content .layui-tab-item').eq(1).attr('class', 'layui-tab-item layui-show')
            console.log(obj);
            quanSkuNo = obj.data.SkuNo;
            quanLotNo=obj.data.lotNo;
            refreshTable2(obj.data.SkuNo,obj.data.SkuName,obj.data.OwnerNo,obj.data.OwnerName,obj.data.LotNo,obj.data.LocatNo,obj.data.PalletNo,obj.data.Status,obj.data.InspectStatus,obj.data.StartTime,obj.data.EndTime);
            yemianid = 1;
         });
         //监听Tab切换,以改变地址hash值
         element.on('tab(docDemoTabBrief)', function (data) {
            var SkuNo = $("#SkuNo").val();
            var SkuName = $("#SkuName").val();
            var LotNo = $("#LotNo").val();
            var LocatNo = $("#LocatNo").val();
            var PalletNo = $("#PalletNo").val();
            var OwnerNo = $("#OwnerNo").val();
            var OwnerName = $("#OwnerName").val();
            var Status = $("#Status").val();
            var InspectStatus = $("#InspectStatus").val();
            console.log(data.index);
            yemianid = data.index
            if (yemianid == 0) {
               console.log("总单");
               refreshTable(SkuNo, SkuName,OwnerNo,OwnerName,LotNo);
            } else if (yemianid == 1) {
               console.log("明细");
               refreshTable2(SkuNo,SkuName,OwnerNo,OwnerName,LotNo,LocatNo,PalletNo,Status,InspectStatus,StartTime,EndTime);
            }
         });
         form.on('submit(daochu)', function () {
            layer.confirm('确定导出当前数据吗?', function (index) {
               if (yemianid == 0) {
                  console.log("总单");
                  var param = {
                     SkuNo: $("#SkuNo").val(),
                     SkuName: $("#SkuName").val(),
@@ -703,44 +460,6 @@
                        }, function () { });
                     }
                  });
               } else if (yemianid == 1) {
                  console.log("明细");
                  var SkuNo = $("#SkuNo").val();
                  if (SkuNo == '') {
                     SkuNo = quanSkuNo;
                  }
                  var param = {
                     SkuNo: SkuNo,
                     SkuName: $("#SkuName").val(),
                     LotNo: $("#LotNo").val(),
                     LocatNo: $("#LocatNo").val(),
                     PalletNo: $("#PalletNo").val(),
                     Status: $("#Status").val(),
                     InspectStatus: $("#InspectStatus").val(),
                     IsSamolingTray: $("#IsSamolingTray").val(),
                     StartTime: $("#StartTime").val(),
                     EndTime: $("#EndTime").val(),
                  };
                  sendData(IP + "/Statistical/GetInventoryList1DaoChu", param, 'get', function (res) {
                     console.log(res);
                     if (res.code == 0) { //成功
                        var list = res.data;
                        table.exportFile(tableIns2.config.id, list, 'xls', "库存明细信息" + getNowTime(),); //data 为该实例中的任意数量的数据
                        layer.msg('导出成功!', {
                           icon: 1,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                        });
                     } else { //不成功
                        layer.msg('获取信息失败!', {
                           icon: 2,
                           time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () { });
                     }
                  });
               }
            });
@@ -757,18 +476,7 @@
                  resize: false,
                  area: ['970px', '650px']
               });
            },
            customCols2: function(){
               layer.open({
                  type: 2,
                  title: '自定义列',
                  content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetInventoryList1&ColsSysArr='+DetailColsSysArr,
                  maxmin: false,
                  resize: false,
                  area: ['970px', '650px']
               });
            }
         };
         $('.layui-btn').on('click', function() {
            var type = $(this).data('type');