| | |
| | | <div class="layui-card"> |
| | | <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">类型</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Type" id="Type" lay-filter="Type" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">入库</option> |
| | | <option value="1">出库</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;"> |
| | |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="daochu"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>导出 |
| | | </button> |
| | | </div> |
| | | </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 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> |
| | | <!-- #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"></i> |
| | | </button> |
| | | </div> |
| | | <!-- #endregion --> |
| | | |
| | | <!-- #region 自定义表头 --> |
| | | <script type="text/html" id="templetProductionTime"> |
| | | {{# function GetBtn(d){ |
| | | return formatDate2(d.ProductionTime); |
| | | } |
| | | }} |
| | | {{ GetBtn(d) }} |
| | | </script> |
| | | <script type="text/html" id="templetExpirationTime"> |
| | | {{# function GetBtn(d){ |
| | | return formatDate2(d.ExpirationTime); |
| | | } |
| | | }} |
| | | {{ GetBtn(d) }} |
| | | </script> |
| | | |
| | | <script type="text/html" id="templetInspectTime"> |
| | | {{# function GetBtn1(d){ |
| | | return formatDate(d.InspectTime); |
| | | } |
| | | }} |
| | | {{ GetBtn1(d) }} |
| | | </script> |
| | | <!-- #endregion --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <script type="text/html" id="TypeTpl"> |
| | | {{# if(d.Type=='0'){ }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">入库</button> |
| | | <button class="layui-btn layui-btn-radius layui-btn-xs">入库</button> |
| | | |
| | | {{# } else if(d.Type == '1') { }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-xs">出库</button> |
| | | <button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">出库</button> |
| | | {{# } }} |
| | | </script> |
| | | |
| | |
| | | element = layui.element; |
| | | laydate = layui.laydate; |
| | | |
| | | var h1 = GetTableTabHeight(); |
| | | var h1 = GetTableHeight(); |
| | | // var h1 = GetTkableTopHeight(); |
| | | // console.log(h1) |
| | | |
| | |
| | | }; |
| | | |
| | | var $ = layui.$; |
| | | var yemianid = 0; |
| | | refreshTable("", "", "", "", "", "", "", "", "", "", "", "", "", ""); |
| | | refreshTable("", "", "", "", "", ""); |
| | | |
| | | // 表单需要的变量 |
| | | var infoOptions; |
| | | //#region 自定义表头 |
| | | var TotalColsArr = [[ |
| | | { field: '', title: '序号', type: 'numbers', align: 'center', fixed: 'left', "disabled": true }, |
| | | { field: 'Type', title: '入库/出库', align: 'center', templet: '#TypeTpl', width: 90, }, |
| | | { field: 'PalletNo', title: '托盘号', align: 'center', width: 100, }, |
| | | { field: 'SkuNo', title: '物料编码', align: 'center', width: 120, }, |
| | | { field: 'SkuName', title: '物料名称', align: 'center', width: 120, }, |
| | | { field: 'LotNo', title: '批次号', align: 'center', width: 100, }, |
| | | { field: 'Qty', title: '数量', align: 'center', width: 90, }, |
| | | { field: 'CreateUserName', title: '操作人', align: 'center', width: 100, }, |
| | | { field: 'CreateTime', title: '操作时间', align: 'center', width: 100, }, |
| | | { field: 'Type', title: '类型', align: 'center', templet: '#TypeTpl'}, |
| | | { field: 'PalletNo', title: '托盘号', align: 'center'}, |
| | | { field: 'SkuNo', title: '物料编码', align: 'center' }, |
| | | { field: 'SkuName', title: '物料名称', align: 'center'}, |
| | | { field: 'LotNo', title: '批次号', align: 'center'}, |
| | | { field: 'BoxNo', title: '箱码', align: 'center'}, |
| | | { field: 'Qty', title: '数量', align: 'center'}, |
| | | { field: 'CreateUserName', title: '操作人', align: 'center' }, |
| | | { field: 'CreateTime', title: '操作时间', align: 'center' }, |
| | | ]]; |
| | | var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | |
| | | SkuName: SkuName, //物料名称 |
| | | palletNo: PalletNo, //托盘号 |
| | | LotNo: LotNo, //批次号 |
| | | BoxNo:BoxNo,//箱码 |
| | | Type: Type, //类型 |
| | | }; |
| | | sendData(IP + "/BllCheck/GetLogWorkShopList", param, 'post', function (res) { |
| | |
| | | //#endregion |
| | | } |
| | | |
| | | // 表单需要的变量 |
| | | var infoOptions2; |
| | | |
| | | //获取明细信息 |
| | | //#region 自定义表头 |
| | | var DetailColsArr = [[ |
| | | { field: '', title: '序号', type: 'numbers', fixed: 'left', "disabled": true }, |
| | | { field: 'SkuNo', title: '物料编码', align: 'center' }, |
| | | { field: 'SkuName', title: '物料名称', align: 'center' }, |
| | | { field: 'PalletNo', title: '托盘号', align: 'center', width: 110 }, |
| | | { field: 'BoxNo', title: '箱码', align: 'center', width: 100 }, |
| | | { field: 'Status', title: '箱支状态', align: 'center', templet: '#BoxStatus' }, |
| | | { field: 'LotNo', title: '批次号', align: 'center' }, |
| | | { field: 'LotText', title: '批次描述', align: 'center' }, |
| | | { field: 'Qty', title: '数量', width: 90, align: 'center' }, |
| | | { field: 'FullQty', title: '整箱数量', width: 100, align: 'center' }, |
| | | { field: 'ProductionTime', title: '生产日期', align: 'center', templet: '#templetProductionTime' }, |
| | | { field: 'ExpirationTime', title: '有效期', align: 'center', templet: '#templetExpirationTime' }, |
| | | { field: 'InspectMark', title: '抽检标记', align: 'center', templet: '#InspectMarkStatus' }, |
| | | { field: 'BitBoxMark', templet: '#BitPalletMarkStatus1', title: '零箱标记', align: 'center' }, |
| | | { field: 'InspectStatus', templet: '#InspectStatus1', title: '质检状态', align: 'center' }, |
| | | { field: 'InspectTime', title: '复检时间', align: 'center', templet: '#templetInspectTime' }, |
| | | { field: 'caozuo', title: '操作', fixed: 'right', align: 'center', toolbar: '#table-content-list', "disabled": true } |
| | | ]]; |
| | | var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | | function refreshTable2(Id, SkuNo, SkuName, LotNo, PalletNo, BoxNo, Status, InspectMark, BitBoxMark, InspectStatus, |
| | | StartTime, EndTime, WareHouseNo, AreaNo) { |
| | | //#region 自定义表头 |
| | | var colsJson2 |
| | | var param1 = { |
| | | Href: 'Statistical/GetBoxInfo' |
| | | }; |
| | | 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/GetBoxInfo', DetailColsSysArr); |
| | | }, |
| | | cols: colsJson2 |
| | | }; |
| | | |
| | | var param = { |
| | | Id: Id, |
| | | SkuNo: SkuNo, |
| | | SkuName: SkuName, |
| | | LotNo: LotNo, |
| | | PalletNo: PalletNo, |
| | | BoxNo: BoxNo, |
| | | Status: Status, |
| | | InspectMark: InspectMark, |
| | | BitBoxMark: BitBoxMark, |
| | | InspectStatu: InspectStatus, |
| | | StartTime: StartTime, |
| | | EndTime: EndTime, |
| | | WareHouseNo: WareHouseNo, |
| | | AreaNo: AreaNo, |
| | | } |
| | | sendData(IP + "/Statistical/GetBoxInfo", 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 quanid = ''; |
| | | //监听搜索 |
| | | form.on('submit(LAY-app-contlist-search)', function (data) { |
| | | var SkuNo = $("#SkuNo").val(); |
| | |
| | | var PalletNo = $("#PalletNo").val(); |
| | | |
| | | var BoxNo = $("#BoxNo").val(); |
| | | var Status = $("#Status").val(); |
| | | var InspectMark = $("#InspectMark").val(); |
| | | var BitPalletMark = $("#BitPalletMark").val(); |
| | | var BitBoxMark = $("#BitBoxMark").val(); |
| | | var InspectStatus = $("#InspectStatus").val(); |
| | | var Type = $("#Type").val(); |
| | | |
| | | var OwnerNo = $("#OwnerNo").val(); |
| | | var OwnerName = $("#OwnerName").val(); |
| | | |
| | | var StartTime = $("#StartTime").val(); |
| | | var EndTime = $("#EndTime").val(); |
| | | var WareHouseNo = $("#WareHouseNo").val(); |
| | | var AreaNo = $("#AreaNo").val(); |
| | | |
| | | if (yemianid == 0) { |
| | | console.log("总单"); |
| | | refreshTable(SkuNo, SkuName, PalletNo, LotNo, BoxNo, Status, InspectMark, BitPalletMark, BitBoxMark, |
| | | InspectStatus, OwnerNo, OwnerName, StartTime, EndTime, WareHouseNo, AreaNo); |
| | | } else if (yemianid == 1) { |
| | | quanid = ''; |
| | | console.log("明细"); |
| | | refreshTable2(quanid, SkuNo, SkuName, LotNo, PalletNo, BoxNo, Status, InspectMark, BitBoxMark, |
| | | InspectStatus, StartTime, EndTime, WareHouseNo, AreaNo); |
| | | } |
| | | |
| | | }); |
| | | //触发行双击事件 |
| | | 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.data.Id); |
| | | quanid = obj.data.Id; |
| | | refreshTable2(obj.data.Id); |
| | | yemianid = 1; |
| | | refreshTable(SkuNo, SkuName, PalletNo, LotNo, BoxNo, Type); |
| | | }); |
| | | |
| | | //监听Tab切换,以改变地址hash值 |
| | | element.on('tab(docDemoTabBrief)', function (data) { |
| | | var SkuNo = $("#SkuNo").val(); |
| | | var SkuName = $("#SkuName").val(); |
| | | var LotNo = $("#LotNo").val(); |
| | | var PalletNo = $("#PalletNo").val(); |
| | | |
| | | var BoxNo = $("#BoxNo").val(); |
| | | var Status = $("#Status").val(); |
| | | var InspectMark = $("#InspectMark").val(); |
| | | var BitPalletMark = $("#BitPalletMark").val(); |
| | | var BitBoxMark = $("#BitBoxMark").val(); |
| | | var InspectStatus = $("#InspectStatus").val(); |
| | | |
| | | var OwnerNo = $("#OwnerNo").val(); |
| | | var OwnerName = $("#OwnerName").val(); |
| | | |
| | | var StartTime = $("#StartTime").val(); |
| | | var EndTime = $("#EndTime").val(); |
| | | |
| | | console.log(data.index); |
| | | yemianid = data.index |
| | | if (yemianid == 0) { |
| | | console.log("总单"); |
| | | refreshTable(SkuNo, SkuName, PalletNo, LotNo, BoxNo, Status, InspectMark, BitPalletMark, BitBoxMark, InspectStatus, OwnerNo, OwnerName, StartTime, EndTime); |
| | | } else if (yemianid == 1) { |
| | | console.log("明细"); |
| | | refreshTable2(quanid, SkuNo, SkuName, LotNo, PalletNo, BoxNo, Status, InspectMark, BitBoxMark, InspectStatus, StartTime, EndTime); |
| | | } |
| | | }); |
| | | var doing = true; |
| | | // ------------------------------------详情--------------------------------------------------- |
| | | table.on('tool(LAY-app-content-list2)', function (obj) { |
| | | console.log(obj) |
| | | var data = obj.data; |
| | | //详情 |
| | | if (obj.event === 'edit') { |
| | | BoxNo = data.BoxNo; |
| | | console.log(data) |
| | | layer.open({ |
| | | type: 2, |
| | | title: '箱支详情信息', |
| | | content: 'BoxSupportInfor.html?BoxNo=' + BoxNo, |
| | | maxmin: true, |
| | | area: ['80%', '85%'], |
| | | btn: ['关闭'], |
| | | yes: function (index, layero) { |
| | | var iframeWindow = window['layui-layer-iframe' + index], |
| | | submitID = 'layuiadmin-app-form-edit', |
| | | submit = layero.find('iframe').contents().find('#' + submitID); |
| | | if (doing) { |
| | | doing = false; |
| | | |
| | | layer.close(index); //关闭弹层 |
| | | refreshTable(); |
| | | doing = true; |
| | | |
| | | |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | form.on('submit(daochu)', function () { |
| | | layer.confirm('确定导出当前数据吗?', function (index) { |
| | | if (yemianid == 0) { |
| | | console.log("托盘明细"); |
| | | var param = { |
| | | SkuNo: $("#SkuNo").val(), |
| | | SkuName: $("#SkuName").val(), |
| | | LotNo: $("#LotNo").val(), |
| | | PalletNo: $("#PalletNo").val(), |
| | | |
| | | BoxNo: $("#BoxNo").val(), |
| | | Status: $("#Status").val(), |
| | | InspectMark: $("#InspectMark").val(), |
| | | BitPalletMark: $("#BitPalletMark").val(), |
| | | BitBoxMark: $("#BitBoxMark").val(), |
| | | InspectStatus: $("#InspectStatus").val(), |
| | | |
| | | StartTime: $("#StartTime").val(), |
| | | EndTime: $("#EndTime").val(), |
| | | }; |
| | | |
| | | sendData(IP + "/Statistical/GetBindListDaoChu", param, 'get', function (res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | var list = res.data; |
| | | table.exportFile(tableIns.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 () { }); |
| | | } |
| | | }); |
| | | } else if (yemianid == 1) { |
| | | console.log("箱码明细"); |
| | | var param = { |
| | | Id: quanid, |
| | | SkuNo: $("#SkuNo").val(), |
| | | 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/GetBoxInfoDaoChu", 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 () { }); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | //获取仓库下拉框信息 |
| | | sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#WareHouseNo").append('<option value =' + res.data[i].WareHouseNo + '>' + res.data[i].WareHouseNo + '-' + |
| | | res.data[i].WareHouseName + '</option>'); |
| | | } |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { }); |
| | | } |
| | | }); |
| | | |
| | | getAR(""); |
| | | form.on('select(getWareHouseNo)', function (data) { |
| | | console.log(data); |
| | | getAR(data.value); |
| | | }); |
| | | function getAR(val) { |
| | | //获取 区域下拉框 |
| | | sendData(IP + "/Sys/GetStorageAreaByHouseNo?wareHouseNo=" + val, {}, 'get', function (res) { |
| | | $("#AreaNo").empty(); |
| | | $("#AreaNo").append('<option value =""></option>'); |
| | | if (res.code == 0) { //成功 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#AreaNo").append('<option value =' + res.data[i].AreaNo + '>' + res.data[i].AreaNo + '-' + |
| | | res.data[i].AreaName + '</option>'); |
| | | } |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg('获取区域信息失败', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | //回调 |
| | | form.render('select'); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | }; |
| | | |
| | | //#region 自定义表头 |
| | | //自定义表头 |
| | |
| | | public string PalletNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Desc:箱码 |
| | | /// Default: |
| | | /// Nullable:True |
| | | /// </summary> |
| | | public string BoxNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Desc:批次号 |
| | | /// Default: |
| | | /// Nullable:True |
| | |
| | | /// Nullable:True |
| | | /// </summary> |
| | | public string SkuName { get; set; } |
| | | /// <summary> |
| | | /// Desc:箱码 |
| | | /// Default: |
| | | /// Nullable:True |
| | | /// </summary> |
| | | public string BoxNo { get; set; } |
| | | } |
| | | } |
| | |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WMS.DAL; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.LogEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.IBllCheckServer; |
| | | using WMS.IBLL.ILogServer; |
| | | |
| | |
| | | { |
| | | } |
| | | |
| | | public List<LogWorkShopDto> GetLogWorkShopList(string type, string palletNo,string lotNo,string skuNo,string skuName,int page, int limit, out int count) |
| | | public List<LogWorkShopDto> GetLogWorkShopList(string type, string palletNo,string lotNo,string skuNo,string skuName,string boxNo,int page, int limit, out int count) |
| | | { |
| | | try |
| | | { |
| | | string sqlString = string.Empty; |
| | | string sqlCount = string.Empty; |
| | | string sqlPub = string.Empty; |
| | | sqlCount += "SELECT COUNT(tb1.ID) FROM LogWorkShop AS tb1 "; |
| | | sqlString += $@"select |
| | | tb1.Type,tb1.PalletNo,tb1.LotNo,tb1.SkuNo,tb1.SkuName,tb1.CreateUser,tb1.CreateTime,SUM(tb1.Qty) as Qty,tb2.RealName as CreateUserName |
| | | from LogWorkShop as tb1 |
| | | left join SysUserInfor as tb2 on tb1.CreateUser=tb2.Id "; |
| | | sqlPub += $"where 1=1 "; |
| | | Expression<Func<LogWorkShop, bool>> item = Expressionable.Create<LogWorkShop>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(lotNo), it => it.LotNo.Contains(lotNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(skuNo), it => it.SkuNo.Contains(skuNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(skuName), it => it.SkuName.Contains(skuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo.Contains(boxNo.Trim())) |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | if (!string.IsNullOrEmpty(type)) |
| | | var total = 0; |
| | | var data = GetAllWhereAsync(item) |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .Select((a, b) => new LogWorkShopDto() |
| | | { |
| | | sqlPub += $"AND tb1.Type = '{type}' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(palletNo)) |
| | | { |
| | | sqlPub += $"AND tb1.PalletNo like '%{palletNo.Trim()}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(lotNo)) |
| | | { |
| | | sqlPub += $"AND tb1.LotNo like '%{lotNo.Trim()}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(skuNo)) |
| | | { |
| | | sqlPub += $"AND tb1.SkuNo like '%{skuNo.Trim()}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(skuName)) |
| | | { |
| | | sqlPub += $"AND tb1.SkuName like '%{skuName.Trim()}%' "; |
| | | } |
| | | sqlPub += " group by tb1.Type,tb1.PalletNo,tb1.LotNo,tb1.SkuNo,tb1.SkuName,tb1.CreateUser,tb1.CreateTime "; |
| | | sqlCount += sqlPub; |
| | | if (page == 0) |
| | | { |
| | | page = 1; |
| | | } |
| | | sqlString += sqlPub + $" offset {((page - 1) * limit)} rows fetch next {limit} rows only;"; |
| | | PalletNo = a.PalletNo, |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | LotNo = a.LotNo, |
| | | Qty = a.Qty, |
| | | Type = a.Type, |
| | | BoxNo = a.BoxNo, |
| | | CreateUserName = b.RealName, |
| | | CreateTime = a.CreateTime.ToString("yyyy-MM-dd HH:mm:ss") |
| | | }) |
| | | .OrderByDescending(a => a.CreateTime) |
| | | .ToOffsetPage(page, limit, ref total); |
| | | count = total; |
| | | |
| | | var com = new Common(); |
| | | count = com.GetRowCount(sqlCount); |
| | | |
| | | var modelList = Db.Ado.SqlQuery<LogWorkShopDto>(sqlString); |
| | | |
| | | return modelList; |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | using Model.ModelDto.LogDto; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WMS.IBLL.ILogServer |
| | | { |
| | | public interface ILogWorkShopServer |
| | | { |
| | | List<LogWorkShopDto> GetLogWorkShopList(string type, string palletNo, string lotNo, string skuNo, string skuName, int page, int limit, out int count); |
| | | List<LogWorkShopDto> GetLogWorkShopList(string type, string palletNo, string lotNo, string skuNo, string skuName, string boxNo, int page, int limit, out int count); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var _list = _logWorkShop.GetLogWorkShopList(model.Type, model.PalletNo, model.LotNo, model.SkuNo, model.SkuName, model.Page, model.Limit, out int count); |
| | | var _list = _logWorkShop.GetLogWorkShopList(model.Type, model.PalletNo, model.LotNo, model.SkuNo, model.SkuName,model.BoxNo, model.Page, model.Limit, out int count); |
| | | |
| | | return Ok(new { code = 0, count = count, msg = "获取车间出入库记录", data = _list }); |
| | | } |