| | |
| | | |
| | | <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" |
| | |
| | | { 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 }, |
| | |
| | | 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: ['关闭'], |
| | |
| | | |
| | | <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" |
| | |
| | | </style> |
| | | <script> |
| | | // 这里是需要在页面渲染之前执行的代码 |
| | | document.addEventListener("DOMContentLoaded", function() { |
| | | document.addEventListener("DOMContentLoaded", function () { |
| | | //获取table默认显示数 |
| | | pageCntFirst(); |
| | | //判断是否开启table列表列宽调整功能。 |
| | | GetIsSetColW(); |
| | | }); |
| | | </script> |
| | | </script> |
| | | |
| | | </head> |
| | | |
| | |
| | | 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;"> |
| | |
| | | <option value="0">待质检</option><!-- 待检验 --> |
| | | <option value="1">检验合格</option><!-- 合格品 --> |
| | | <option value="2">不合格</option><!-- 不合格 --> |
| | | <option value="3">放置期</option><!-- 不合格 --> |
| | | <!-- <option value="3">放置期</option>不合格 --> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | |
| | | // 表单需要的变量 |
| | | 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)))//将表头数据进行url编码 |
| | | { 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)))//将表头数据进行url编码 |
| | | //#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, |
| | |
| | | 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) |
| | |
| | | }); |
| | | }); |
| | | //#endregion |
| | | } |
| | | |
| | | } |
| | | |
| | | //监听搜索 |
| | | form.on('submit(LAY-app-contlist-search)', function (data) { |
| | | var SelectType = $("#SelectType").val(); |
| | |
| | | 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); |
| | | |
| | | }); |
| | | |
| | |
| | | //#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) : ''; |
| | | }); |
| | |
| | | <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> |
| | |
| | | <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> |
| | | |
| | |
| | | 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; |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 托盘绑定 |
| | | #region 组托收货 |
| | | public List<PalletBindDto> GetPalletBindList(PalletBindVm model, out int count) |
| | | { |
| | | try |
| | |
| | | |
| | | 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) |
| | | { |
| | | // 物料编码、名称检索失败直接返回null |
| | | count = 0; |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | Expression<Func<BllPalletBind, bool>> item = Expressionable.Create<BllPalletBind>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo.Contains(model.ASNNo.Trim())) |
| | |
| | | .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();//注意 这一句 不能少 |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | #region 库存明细 |
| | | |
| | | /// <summary> |
| | | /// 查询库存总量 |
| | | /// 查询库存统计 |
| | | /// </summary> |
| | | /// <param name="selectType">查询类型 0:物料信息 1:批次信息 2:质检信息 3:货主信息</param> |
| | | /// <param name="skuNo">物料编码</param> |
| | |
| | | /// <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> |
| | |
| | | { |
| | | 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)) |
| | |
| | | /// <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> |
| | | /// 获取库存明细 |
| | |
| | | /// <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 |
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 托盘绑定 |
| | | #region 组托收货 |
| | | [HttpPost] |
| | | public IActionResult GetPalletBindList(PalletBindVm model) |
| | | { |