From 13b91828a0301ba53585662f5207ed45ff485638 Mon Sep 17 00:00:00 2001 From: bklLiudl <673013083@qq.com> Date: 星期二, 27 八月 2024 09:00:28 +0800 Subject: [PATCH] 库存统计重写 --- Pda/View/AsnSetting/productEnterQuantity.html | 7 HTML/views/ASNSetting/PalletBind.html | 6 HTML/views/StatisticalReport/InventoryStatistics.html | 170 ++++++----------- Wms/Wms/Controllers/BllAsnController.cs | 2 Wms/WMS.IBLL/IDataServer/IStockServer.cs | 6 Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 19 + Wms/WMS.BLL/DataServer/StockServer.cs | 364 ++++++++++++----------------------- 7 files changed, 214 insertions(+), 360 deletions(-) diff --git a/HTML/views/ASNSetting/PalletBind.html b/HTML/views/ASNSetting/PalletBind.html index c769367..51f9d81 100644 --- a/HTML/views/ASNSetting/PalletBind.html +++ b/HTML/views/ASNSetting/PalletBind.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> - <title>鎵樼洏缁戝畾</title> + <title>缁勬墭鏀惰揣</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" @@ -469,7 +469,7 @@ { field: 'WareHouseNo', title: '鎵�灞炰粨搴�', align: 'center', width: 90, templet: '#WareHouseButton' }, { field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center', width: 110 }, { field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center' }, - { field: 'LotNo', title: '鎵规鍙�', align: 'center',width: 120 }, + { field: 'LotNo', title: '鎵规鍙�', align: 'center', width: 120 }, { field: 'Qty', title: '鏁伴噺', align: 'center', width: 90 }, { field: 'FullQty', title: '鏁存墭鏁伴噺', align: 'center', width: 90 }, { field: 'SamplingQty', title: '鍙栨牱鏁伴噺', align: 'center', width: 90 }, @@ -816,7 +816,7 @@ layer.open({ type: 2, title: '绠辨敮璇︽儏淇℃伅', - content: 'BindBoxInfo.html?BoxNo=' + BoxNo+'&BindNo='+data.BindNo, + content: 'BindBoxInfo.html?BoxNo=' + BoxNo + '&BindNo=' + data.BindNo, maxmin: true, area: ['80%', '85%'], btn: ['鍏抽棴'], diff --git a/HTML/views/StatisticalReport/InventoryStatistics.html b/HTML/views/StatisticalReport/InventoryStatistics.html index 23cecbc..366acfa 100644 --- a/HTML/views/StatisticalReport/InventoryStatistics.html +++ b/HTML/views/StatisticalReport/InventoryStatistics.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> - <title>搴撳瓨淇℃伅鍒楄〃</title> + <title>搴撳瓨缁熻</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" @@ -19,13 +19,13 @@ </style> <script> // 杩欓噷鏄渶瑕佸湪椤甸潰娓叉煋涔嬪墠鎵ц鐨勪唬鐮� - document.addEventListener("DOMContentLoaded", function() { + document.addEventListener("DOMContentLoaded", function () { //鑾峰彇table榛樿鏄剧ず鏁� pageCntFirst(); //鍒ゆ柇鏄惁寮�鍚痶able鍒楄〃鍒楀璋冩暣鍔熻兘銆� GetIsSetColW(); }); - </script> + </script> </head> @@ -97,7 +97,7 @@ class="layui-input"> </div> </div> --> - + <div class="layui-inline "> <label class="layui-form-label" style="width: 60px;">搴撳瓨鐘舵��</label> <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> @@ -131,7 +131,7 @@ <option value="0">寰呰川妫�</option><!-- 寰呮楠� --> <option value="1">妫�楠屽悎鏍�</option><!-- 鍚堟牸鍝� --> <option value="2">涓嶅悎鏍�</option><!-- 涓嶅悎鏍� --> - <option value="3">鏀剧疆鏈�</option><!-- 涓嶅悎鏍� --> + <!-- <option value="3">鏀剧疆鏈�</option>涓嶅悎鏍� --> </select> </div> </div> @@ -172,16 +172,16 @@ <div class="layui-tab-content"> <!-- <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 鑷畾涔夎〃澶� --> - <div class="headerSetIcon"> - <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols"> - <i class="layui-icon"></i> - </button> - </div> - <!-- #endregion --> + <div class="position-relative"><!-- class="position-relative" --><!-- 鑷畾涔夎〃澶村姞涓� --> + <table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table> + <!-- #region 鑷畾涔夎〃澶� --> + <div class="headerSetIcon"> + <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols"> + <i class="layui-icon"></i> + </button> </div> + <!-- #endregion --> + </div> </div> </div> @@ -285,96 +285,46 @@ // 琛ㄥ崟闇�瑕佺殑鍙橀噺 var infoOptions; - //#region 鍘熷闈炶嚜瀹氫箟鍒� - //infoOptions = { - // elem: '#LAY-app-content-list', - // height: 'full-206', - // id: 'LAY-app-content-list', - // totalRow: true - // page: true, - // limit: pageCnt, - // limits: pageLimits, - // even: true, - // cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板 - // cols: - // [[ - // { - // title: '搴忓彿', - // type: 'numbers', - // fixed: 'left' - // }, - // { - // field: 'SkuNo', - // title: '鐗╂枡缂栫爜', - // align: 'center', - // totalRowText: "鍚堣:", - // }, { - // field: 'SkuName', - // title: '鐗╂枡鍚嶇О', - // align: 'center', - // }, { - // field: 'Standard', - // title: '鐗╂枡瑙勬牸', - // align: 'center', - // }, { - // field: 'Qty', - // title: '搴撳瓨鏁伴噺', - // align: 'center', - // totalRow: true, - // }, { - // field: 'LockQty', - // title: '閿佸畾鏁伴噺', - // align: 'center', - // totalRow: true, - // }, { - // field: 'FrozenQty', - // title: '鍐荤粨鏁伴噺', - // align: 'center', - // totalRow: true, - // } - // ]] - //}; - //#endregion //#region 鑷畾涔夎〃澶� var TotalColsArr = [[ - {field: '',title: '搴忓彿',type:'numbers',align: 'center',fixed: 'left', "disabled": true}, - {field: 'SkuNo',title: '鐗╂枡缂栫爜',align: 'center',totalRowText: "鍚堣:", "disabled": true}, - {field: 'SkuName',title: '鐗╂枡鍚嶇О',align: 'center', "disabled": true}, - {field: 'Standard',title: '鐗╂枡瑙勬牸',align: 'center', "disabled": true}, - {field: 'LotNo',title: '鎵规鍙�',align: 'center', "disabled": true}, - {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: 'InspectQty',title: '鍙娊妫�鏁伴噺',align: 'center',totalRow: true}, - ]]; - var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 + { field: '', title: '搴忓彿', type: 'numbers', align: 'center', fixed: 'left', "disabled": true }, + { field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center', totalRowText: "鍚堣:", "disabled": true }, + { field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center', "disabled": true }, + { field: 'Standard', title: '鐗╂枡瑙勬牸', align: 'center', "disabled": true }, + { field: 'LotNo', title: '鎵规鍙�', align: 'center', "disabled": true }, + { 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: 'InspectQty', title: '鍙娊妫�鏁伴噺', align: 'center', totalRow: true }, + ]]; + var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 //#endregion //鑾峰彇鎬婚噺淇℃伅 - function refreshTable(SelectType,SkuNo,SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus) { + function refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus) { //#region 鑷畾涔夎〃澶� var colsJson - var param1={ - Href:'Statistical/GetInventoryList' + var param1 = { + Href: 'Statistical/GetInventoryList' }; - sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) { - if (res.code == 0){ - if(res.data=='' || res.data==undefined || res.data==null){ - colsJson=TotalColsArr - }else{ - colsJson= eval(res.data); + sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) { + if (res.code == 0) { + if (res.data == '' || res.data == undefined || res.data == null) { + colsJson = TotalColsArr + } else { + colsJson = eval(res.data); } - }else{ - colsJson=TotalColsArr + } else { + colsJson = TotalColsArr } infoOptions = { elem: '#LAY-app-content-list', - height: h1, + height: 'full-163', id: 'LAY-app-content-list', totalRow: true, page: true, @@ -382,21 +332,21 @@ limits: pageLimits, even: true, cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板 - done: function(){ + done: function () { //鑷畾涔夊垪瀹� - SetTableColW('LAY-app-content-list','Statistical/GetInventoryList',TotalColsSysArr); - }, - cols:colsJson + SetTableColW('LAY-app-content-list', 'Statistical/GetInventoryList', TotalColsSysArr); + }, + cols: colsJson }; var param = { - SelectType:SelectType, //鏌ヨ绫诲瀷 - SkuNo:SkuNo, //鐗╂枡鍙� - SkuName:SkuName, //鐗╂枡鍚嶇О - OwnerNo:OwnerNo, //璐т富缂栫爜 - OwnerName:OwnerName, //璐т富鍚嶇О - LotNo:LotNo, //鎵规鍙� - Status:Status, //搴撳瓨鐘舵�� = $("#Status").val(); - InspectStatus:InspectStatus, //璐ㄦ鐘舵�� = $("#InspectStatus").val(); + 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) @@ -419,8 +369,8 @@ }); }); //#endregion - } - + } + //鐩戝惉鎼滅储 form.on('submit(LAY-app-contlist-search)', function (data) { var SelectType = $("#SelectType").val(); @@ -431,7 +381,7 @@ var OwnerName = $("#OwnerName").val(); var Status = $("#Status").val(); var InspectStatus = $("#InspectStatus").val(); - refreshTable(SelectType,SkuNo, SkuName,OwnerNo,OwnerName,LotNo,Status,InspectStatus); + refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus); }); @@ -467,18 +417,18 @@ //#region 鑷畾涔夎〃澶� //鑷畾涔夎〃澶� active = { - customCols: function(){ + customCols: function () { layer.open({ type: 2, title: '鑷畾涔夊垪', - content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetInventoryList&ColsSysArr='+TotalColsSysArr, + content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetInventoryList&ColsSysArr=' + TotalColsSysArr, maxmin: false, resize: false, area: ['970px', '650px'] }); } }; - $('.layui-btn').on('click', function() { + $('.layui-btn').on('click', function () { var type = $(this).data('type'); active[type] ? active[type].call(this) : ''; }); diff --git a/Pda/View/AsnSetting/productEnterQuantity.html b/Pda/View/AsnSetting/productEnterQuantity.html index 9b7e14c..4bf23a3 100644 --- a/Pda/View/AsnSetting/productEnterQuantity.html +++ b/Pda/View/AsnSetting/productEnterQuantity.html @@ -86,7 +86,7 @@ <table border="" cellspacing="" cellpadding=""> <tr> <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td> - <td class="title-text" lang>鎵樼洏缁戝畾</td> + <td class="title-text" lang>缁勬墭鏀惰揣</td> <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> </tr> </table> @@ -297,8 +297,9 @@ <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>鐗╂枡鏁伴噺锛�</label> <div class="layui-input-block"> - <input id="SkuQty" type="number" lay-verify="stock" lang langholder placeholder="璇疯緭鍏ョ墿鏂欐暟閲�" - autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + <input id="SkuQty" type="number" lay-verify="stock" lang langholder + placeholder="璇疯緭鍏ョ墿鏂欐暟閲�" autocomplete="off" class="layui-input" + oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> </div> </div> diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs index 4978a4e..ecefa7d 100644 --- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs @@ -227,7 +227,9 @@ BllQualityInspect quality = new BllQualityInspect(); if (model.Type == "0") { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); + quality = Db.Queryable<BllQualityInspect>() + .Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo) + .OrderByDescending(a => a.CreateTime).First(); } DataStockDetail sd1 = null; @@ -593,7 +595,7 @@ #endregion - #region 鎵樼洏缁戝畾 + #region 缁勬墭鏀惰揣 public List<PalletBindDto> GetPalletBindList(PalletBindVm model, out int count) { try @@ -602,8 +604,17 @@ if (!string.IsNullOrWhiteSpace(model.SkuNo) || !string.IsNullOrWhiteSpace(model.SkuName)) { - var detailList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.SkuNo.Contains(model.SkuNo.Trim()) && m.SkuName.Contains(model.SkuName.Trim())).Select(m => m.Id).Distinct().ToList(); + var detailList = Db.Queryable<BllArrivalNoticeDetail>() + .Where(m => m.IsDel == "0" && m.SkuNo.Contains(model.SkuNo.Trim()) && m.SkuName.Contains(model.SkuName.Trim())) + .Select(m => m.Id).Distinct().ToList(); strList = detailList; + if (strList.Count <= 0) + { + // 鐗╂枡缂栫爜銆佸悕绉版绱㈠け璐ョ洿鎺ヨ繑鍥瀗ull + count = 0; + return null; + } + } Expression<Func<BllPalletBind, bool>> item = Expressionable.Create<BllPalletBind>() .AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo.Contains(model.ASNNo.Trim())) @@ -615,7 +626,7 @@ .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(model.LotText), it => it.LotText.Contains(model.LotText.Trim())) .AndIF(!string.IsNullOrWhiteSpace(model.StartTime), it => it.CreateTime >= Convert.ToDateTime(model.StartTime)) - .AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime)) + .AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1)) .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status) .And(m => m.IsDel == "0") .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index ebf208d..6ee61f6 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; using System.Runtime.Intrinsics.X86; using System.Security.Claims; using System.Text; @@ -13,6 +14,7 @@ using Model.ModelVm.SysVm; using SqlSugar; using WMS.DAL; +using WMS.Entity.BllAsnEntity; using WMS.Entity.Context; using WMS.Entity.DataEntity; using WMS.Entity.SysEntity; @@ -32,7 +34,7 @@ #region 搴撳瓨鏄庣粏 /// <summary> - /// 鏌ヨ搴撳瓨鎬婚噺 + /// 鏌ヨ搴撳瓨缁熻 /// </summary> /// <param name="selectType">鏌ヨ绫诲瀷 0锛氱墿鏂欎俊鎭� 1锛氭壒娆′俊鎭� 2锛氳川妫�淇℃伅 3锛氳揣涓讳俊鎭�</param> /// <param name="skuNo">鐗╂枡缂栫爜</param> @@ -43,246 +45,133 @@ /// <param name="status">搴撳瓨鐘舵��</param> /// <param name="inspectStatus">璐ㄦ鐘舵��</param> /// <returns></returns> - public async Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus) + public async Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, + string ownerName, string lotNo, string status, string inspectStatus) { - List<MateDataStockDto> modUser = new List<MateDataStockDto>(); - if (string.IsNullOrEmpty(selectType)) + Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() + .AndIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo)) + .AndIF(!string.IsNullOrEmpty(skuName), a => a.SkuName.Contains(skuName)) + .AndIF(!string.IsNullOrEmpty(ownerNo), a => a.OwnerNo.Contains(ownerNo)) + .AndIF(!string.IsNullOrEmpty(ownerName), a => a.OwnerName.Contains(ownerName)) + .AndIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo.Contains(lotNo)) + .AndIF(!string.IsNullOrEmpty(status), a => a.Status == status) + .AndIF(!string.IsNullOrEmpty(inspectStatus), a => a.InspectStatus == inspectStatus) + .And(a => a.IsDel == "0") + .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� + + + var data = Db.Queryable<DataStockDetail>().Where(item); + + List<MateDataStockDto> data2; + switch (selectType) { - modUser = await Db.Queryable<DataStock>() - .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), a => a.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), a => a.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo == lotNo) - .Where(a => a.IsDel == "0") - .Select(a => new MateDataStockDto() - { - SkuNo = a.SkuNo, //鐗╂枡缂栫爜 - SkuName = a.SkuName, //鐗╂枡鍚嶇О - Standard = a.Standard, //瑙勬牸 - LotNo = a.LotNo, //鎵规 - LotText = a.LotText, //鎵规鎻忚堪 - OwnerNo = a.OwnerNo, //璐т富缂栫爜 - OwnerName = a.OwnerName, //璐т富鍚嶇О - Status = status, //搴撳瓨鐘舵�� - InspectStatus = inspectStatus, //璐ㄦ鐘舵�� - Qty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.Qty), //搴撳瓨鏁伴噺 - //Qty = SqlFunc.AggregateSum(b.Qty), //搴撳瓨鏁伴噺 - LockQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.LockQty), //閿佸畾鏁伴噺 - FrozenQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺 - InspectQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺 - }).ToListAsync(); + // 鎸夌墿鏂欑粺璁� + case "0": + data2 = await data.GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard }) + .Select(a => new MateDataStockDto() + { + SkuNo = a.SkuNo, //鐗╂枡缂栫爜 + SkuName = a.SkuName, //鐗╂枡鍚嶇О + Standard = a.Standard, //瑙勬牸 + //LotNo = a.LotNo, //鎵规 + //LotText = a.LotText, //鎵规鎻忚堪 + //OwnerNo = a.OwnerNo, //璐т富缂栫爜 + //OwnerName = a.OwnerName, //璐т富鍚嶇О + Status = status, //搴撳瓨鐘舵�� + InspectStatus = inspectStatus, //璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSumNoNull(a.Qty), //搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSumNoNull(a.LockQty), //閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSumNoNull(a.LockQty), + InspectQty = SqlFunc.AggregateSumNoNull(a.InspectQty) + }).ToListAsync(); + break; - return modUser; + // 鎸夋壒娆$粺璁� + case "1": + data2 = await data.GroupBy(a => new { a.LotNo, a.LotText, a.SkuNo, a.SkuName, a.Standard }) + .Select(a => new MateDataStockDto() + { + SkuNo = a.SkuNo, //鐗╂枡缂栫爜 + SkuName = a.SkuName, //鐗╂枡鍚嶇О + Standard = a.Standard, //瑙勬牸 + LotNo = a.LotNo, //鎵规 + LotText = a.LotText, //鎵规鎻忚堪 + //OwnerNo = a.OwnerNo, //璐т富缂栫爜 + //OwnerName = a.OwnerName, //璐т富鍚嶇О + Status = status, //搴撳瓨鐘舵�� + InspectStatus = inspectStatus, //璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSumNoNull(a.Qty), //搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSumNoNull(a.LockQty), //閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSumNoNull(a.LockQty), + InspectQty = SqlFunc.AggregateSumNoNull(a.InspectQty) + }).ToListAsync(); + break; + + // 鎸夎川妫�鐘舵�佺粺璁� + case "2": + data2 = await data.GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard,a.InspectStatus}) + .Select(a => new MateDataStockDto() + { + SkuNo = a.SkuNo, //鐗╂枡缂栫爜 + SkuName = a.SkuName, //鐗╂枡鍚嶇О + Standard = a.Standard, //瑙勬牸 + //LotNo = a.LotNo, //鎵规 + //LotText = a.LotText, //鎵规鎻忚堪 + //OwnerNo = a.OwnerNo, //璐т富缂栫爜 + //OwnerName = a.OwnerName, //璐т富鍚嶇О + Status = status, //搴撳瓨鐘舵�� + InspectStatus = a.InspectStatus, //璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSumNoNull(a.Qty), //搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSumNoNull(a.LockQty), //閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSumNoNull(a.LockQty), + InspectQty = SqlFunc.AggregateSumNoNull(a.InspectQty), + }).ToListAsync(); + break; + + // 鎸夎揣涓荤粺璁� + case "3": + data2 = await data.GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard, a.OwnerNo, a.OwnerName }) + .Select(a => new MateDataStockDto() + { + SkuNo = a.SkuNo, //鐗╂枡缂栫爜 + SkuName = a.SkuName, //鐗╂枡鍚嶇О + Standard = a.Standard, //瑙勬牸 + //LotNo = a.LotNo, //鎵规 + //LotText = a.LotText, //鎵规鎻忚堪 + OwnerNo = a.OwnerNo, //璐т富缂栫爜 + OwnerName = a.OwnerName, //璐т富鍚嶇О + Status = status, //搴撳瓨鐘舵�� + InspectStatus = inspectStatus, //璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSumNoNull(a.Qty), //搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSumNoNull(a.LockQty), //閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSumNoNull(a.LockQty), + InspectQty = SqlFunc.AggregateSumNoNull(a.InspectQty), + }).ToListAsync(); + break; + + // 榛樿缁熻锛堢墿鏂� 鎵规 璐ㄦ 搴撳瓨鐘舵�� 璐т富) + default: + data2 = await data.GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard ,a.LotNo, a.LotText, a.OwnerNo, a.OwnerName , a.InspectStatus }) + .Select(a => new MateDataStockDto() + { + SkuNo = a.SkuNo, //鐗╂枡缂栫爜 + SkuName = a.SkuName, //鐗╂枡鍚嶇О + Standard = a.Standard, //瑙勬牸 + LotNo = a.LotNo, //鎵规 + LotText = a.LotText, //鎵规鎻忚堪 + OwnerNo = a.OwnerNo, //璐т富缂栫爜 + OwnerName = a.OwnerName, //璐т富鍚嶇О + Status = status, //搴撳瓨鐘舵�� + InspectStatus = a.InspectStatus, //璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSumNoNull(a.Qty), //搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSumNoNull(a.LockQty), //閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSumNoNull(a.LockQty), + InspectQty = SqlFunc.AggregateSumNoNull(a.InspectQty), + }).ToListAsync(); + break; } - else - { - var selectList = new List<DataStockDetail>(); - switch (selectType) - { - case "0": // 鐗╂枡淇℃伅 - modUser = await Db.Queryable<DataStock>() - .Where(a => a.IsDel == "0") - .GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard }) - .Select(a => new MateDataStockDto() - { - SkuNo = a.SkuNo, //鐗╂枡缂栫爜 - SkuName = a.SkuName, //鐗╂枡鍚嶇О - Standard = a.Standard, //瑙勬牸 - Qty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo) - .Sum(s => s.Qty), //搴撳瓨鏁伴噺 - LockQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo) - .Sum(s => s.LockQty), //閿佸畾鏁伴噺 - FrozenQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo) - .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺 - InspectQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.SkuNo == a.SkuNo) - .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺 - }) - .ToListAsync(); - return modUser; - case "1": // 鎵规淇℃伅 - - modUser = await Db.Queryable<DataStock>() - .Where(a => a.IsDel == "0") - .GroupBy(a => new { a.LotNo, a.LotText }) - .Select(a => new MateDataStockDto() - { - LotNo = a.LotNo, //鎵规 - LotText = a.LotText, //鎵规鎻忚堪 - Qty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.Qty), //搴撳瓨鏁伴噺 - LockQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.LockQty), //閿佸畾鏁伴噺 - FrozenQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺 - InspectQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.LotNo == a.LotNo) - .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺 - }) - .ToListAsync(); - - return modUser; - case "2": // 璐ㄦ淇℃伅 - modUser = await Db.Queryable<DataStock>() - .LeftJoin<DataStockDetail>((a, b) => a.LotNo == b.LotNo) - .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), a => a.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), a => a.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), (a, b) => b.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), (a, b) => b.InspectStatus == inspectStatus) - .Where(a => a.IsDel == "0") - .GroupBy((a, b) => b.InspectStatus) - .Select((a, b) => new MateDataStockDto() - { - InspectStatus = b.InspectStatus, //璐ㄦ鐘舵�� - Qty = SqlFunc.AggregateSum(b.Qty), //搴撳瓨鏁伴噺 - LockQty = SqlFunc.AggregateSum(b.LockQty), //閿佸畾鏁伴噺 - FrozenQty = SqlFunc.AggregateSum(b.FrozenQty), //鍐荤粨鏁伴噺 - InspectQty = SqlFunc.AggregateSum(b.InspectQty), //鍙娊妫�鏁伴噺 - }) - .ToListAsync(); - - return modUser; - case "3": // 璐т富淇℃伅 - - modUser = await Db.Queryable<DataStock>() - .Where(a => a.IsDel == "0") - .GroupBy(a => new { a.OwnerNo, a.OwnerName }) - .Select(a => new MateDataStockDto() - { - OwnerNo = a.OwnerNo, //璐т富缂栫爜 - OwnerName = a.OwnerName, //璐т富鍚嶇О - Qty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo) - .Sum(s => s.Qty), //搴撳瓨鏁伴噺 - LockQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo) - .Sum(s => s.LockQty), //閿佸畾鏁伴噺 - FrozenQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo) - .Sum(s => s.FrozenQty), //鍐荤粨鏁伴噺 - InspectQty = SqlFunc.Subqueryable<DataStockDetail>() - .WhereIF(!string.IsNullOrEmpty(skuNo), s => s.SkuNo == skuNo) - .WhereIF(!string.IsNullOrEmpty(skuName), s => s.SkuName == skuName) - .WhereIF(!string.IsNullOrEmpty(ownerNo), s => s.OwnerNo == ownerNo) - .WhereIF(!string.IsNullOrEmpty(ownerName), s => s.OwnerName == ownerName) - .WhereIF(!string.IsNullOrEmpty(lotNo), s => s.LotNo == lotNo) - .WhereIF(!string.IsNullOrEmpty(status), s => s.Status == status) - .WhereIF(!string.IsNullOrEmpty(inspectStatus), s => s.InspectStatus == inspectStatus) - .Where(s => s.IsDel == "0" && s.OwnerNo == a.OwnerNo) - .Sum(s => s.InspectQty), //鍙娊妫�鏁伴噺 - }) - .ToListAsync(); - return modUser; - default: - break; - } - - return modUser; - } + return data2; } /// <summary> @@ -678,7 +567,8 @@ { try { - string str = "select* from SysMaterials where SkuNo in (select a.SkuNo from BllArrivalNoticeDetail a inner join BllExportNoticeDetail b on a.SkuNo = b.SkuNo"; + string str = "select* from SysMaterials where SkuNo in (select a.SkuNo from BllArrivalNoticeDetail a " + + "inner join BllExportNoticeDetail b on a.SkuNo = b.SkuNo"; //鍒ゆ柇寮�濮嬫椂闂存槸鍚︿负绌� if (!string.IsNullOrWhiteSpace(StartTime)) diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs index 6434ade..8d3d2e0 100644 --- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs +++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs @@ -24,7 +24,8 @@ /// <param name="status">搴撳瓨鐘舵��</param> /// <param name="inspectStatus">璐ㄦ鐘舵��</param> /// <returns></returns> - Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus); + Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, + string status, string inspectStatus); /// <summary> /// 鑾峰彇搴撳瓨鏄庣粏 @@ -37,7 +38,8 @@ /// <param name="status">搴撳瓨鐘舵��</param> /// <param name="inspectStatus">璐ㄦ鐘舵��</param> /// <returns></returns> - List<StockDetailDto> GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime); + List<StockDetailDto> GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, + string palletNo, string status, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime); #endregion diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs index c921231..c2960f3 100644 --- a/Wms/Wms/Controllers/BllAsnController.cs +++ b/Wms/Wms/Controllers/BllAsnController.cs @@ -335,7 +335,7 @@ } #endregion - #region 鎵樼洏缁戝畾 + #region 缁勬墭鏀惰揣 [HttpPost] public IActionResult GetPalletBindList(PalletBindVm model) { -- Gitblit v1.8.0