From be4bb3387730ebe095283399c77a88b5534c09e3 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期六, 16 三月 2024 15:46:52 +0800 Subject: [PATCH] 增加年度报表页面,修改年度报表自适应代码,编写后台获取单据总表与明细方法。 --- Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs | 162 +++++++ Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs | 84 +++ HTML/views/StatisticalReport/PeriodicReportYear.html | 701 +++++++++++++++++++++++++++++++ Wms/Wms/Controllers/StatisticalController.cs | 50 ++ Wms/WMS.IBLL/IDataServer/IStockServer.cs | 21 HTML/views/StatisticalReport/PeriodicReport.html | 0 Wms/WMS.BLL/DataServer/StockServer.cs | 295 +++++++++++++ 7 files changed, 1,311 insertions(+), 2 deletions(-) diff --git a/HTML/views/StatisticalReport/PeriodicReport.html b/HTML/views/StatisticalReport/PeriodicReport.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/HTML/views/StatisticalReport/PeriodicReport.html diff --git a/HTML/views/StatisticalReport/PeriodicReportYear.html b/HTML/views/StatisticalReport/PeriodicReportYear.html new file mode 100644 index 0000000..98befab --- /dev/null +++ b/HTML/views/StatisticalReport/PeriodicReportYear.html @@ -0,0 +1,701 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>骞村害鎶ヨ〃</title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> + <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> + <link rel="stylesheet" href="../../css/public.css" media="all"> + <style type="text/css"> + .layui-form-item .layui-inline { + margin-bottom: 1px; + margin-right: 1px; + } + + </style> + <script> + // 杩欓噷鏄渶瑕佸湪椤甸潰娓叉煋涔嬪墠鎵ц鐨勪唬鐮� + document.addEventListener("DOMContentLoaded", function() { + //鑾峰彇table榛樿鏄剧ず鏁� + pageCntFirst(); + //鍒ゆ柇鏄惁寮�鍚痶able鍒楄〃鍒楀璋冩暣鍔熻兘銆� + GetIsSetColW(); + }); + </script> + + </head> + <body id="body"> + <div class="layui-fluid" style="padding-bottom: 0;"> + <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"> + <input type="text" autocomplete="off" name="StartTime" id="StartTime" class="layui-input" + placeholder="寮�濮嬫棩鏈�"> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">缁撴潫鏃ユ湡</label> + <div class="layui-input-inline"> + <input type="text" autocomplete="off" name="EndTime" id="EndTime" class="layui-input" + placeholder="缁撴潫鏃ユ湡"> + </div> + </div> + <div class="layui-inline sousuo"> + <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> + <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 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 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="InspectASNWeight"> + {{# function GetBtn(d){ + return (d.ASNQty * d.Weight).toFixed(4); + } + }} + {{ GetBtn(d) }} + </script> + + <!-- 鍑哄簱閲嶉噺 --> + <script type="text/html" id="InspectSOWeight"> + {{# function GetBtn1(d){ + return (d.SOQty * d.Weight).toFixed(4); + } + }} + {{ GetBtn1(d) }} + </script> + + <!-- 缁撳瓨閲嶉噺 --> + <script type="text/html" id="InspectASNSOWeight"> + {{# function GetBtn2(d){ + return (d.ASNSOQty * d.Weight).toFixed(4); + } + }} + {{ GetBtn2(d) }} + </script> + <!-- #endregion --> + </div> + </div> + </div> + </div> + + </div> + + <!-- 绫诲瀷 --> + <script type="text/html" id="buttonType"> + {{# if(d.Type=='0'){ }} + <p>鍘熸枡</p> + {{# } else if(d.Type=='1') { }} + <p>鍖呮潗</p> + {{# } else if(d.Type=='2') { }} + <p>鎴愬搧</p> + {{# } else if(d.Type=='3') { }} + <p>鑰楁潗</p> + {{# } else if(d.Type=='4') { }} + <p>涓棿鍝�</p> + {{# } }} + </script> + + </div> + </div> + </div> + + <script src="../../layuiadmin/layui/layui.js"></script> + <script src="../../js/public.js"></script> + <script src="../../js/jquery-3.5.1.min.js"></script> + <script src="../../js/jquery.cookie.js"></script> + <script> + var uid = $.cookie('userId'); + layui.config({ + base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰� + }).extend({ + index: 'lib/index' //涓诲叆鍙fā鍧� + }).use(['index', 'table', 'laypage', 'layer','element','laydate'], function() { + var table = layui.table, + form = layui.form, + laypage = layui.laypage, + layer = layui.layer; + element = layui.element; + laydate = layui.laydate; + + + laydate.render({ + elem: '#StartTime', + format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� + }); + laydate.render({ + elem: '#EndTime', + format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� + }); + //鑾峰彇褰撳墠鏃堕棿 + function getNowTime() { + var date = new Date(); + //骞� getFullYear()锛氬洓浣嶆暟瀛楄繑鍥炲勾浠� + var year = date.getFullYear(); //getFullYear()浠f浛getYear() + //鏈� getMonth()锛�0 ~ 11 + var month = date.getMonth() + 1; + //鏃� getDate()锛�(1 ~ 31) + var day = date.getDate(); + //鏃� getHours()锛�(0 ~ 23) + var hour = date.getHours(); + //鍒� getMinutes()锛� (0 ~ 59) + var minute = date.getMinutes(); + //绉� getSeconds()锛�(0 ~ 59) + var second = date.getSeconds(); + + var time = year + addZero(month) + addZero(day) + addZero(hour) + addZero(minute) + addZero(second); + return time; + + //灏忎簬10鐨勬嫾鎺ヤ笂0瀛楃涓� + + }; + function addZero(s) { + return s < 10 ? ('0' + s) : s; + }; + + // 琛ㄥ崟闇�瑕佺殑鍙橀噺 + var infoOptions; + var infoOptions2; + + var myDate = new Date(); + // console.log(myDate.getFullYear()+'-'+(myDate.getMonth() + 1)+'-'+myDate.getDate()+' 00:00:00') + myDate.getFullYear(); //鑾峰彇瀹屾暣鐨勫勾浠�(4浣�,1970-????) + myDate.getMonth(); //鑾峰彇褰撳墠鏈堜唤(0-11,0浠h〃1鏈�) + myDate.getDate(); //鑾峰彇褰撳墠鏃�(1-31) + // 姣忔棩鍒濆鏃堕棿 + var chudate = myDate.getFullYear()+'-'+(myDate.getMonth() + 1)+'-'+myDate.getDate()+' 00:00:00' + var jiedate = myDate.getFullYear()+'-'+(myDate.getMonth() + 1)+'-'+myDate.getDate()+' 23:59:59' + var $ = layui.$; + var yemianid =0; + + + var h1 = GetTableTabHeight(); + refreshTable("",""); + //鑾峰彇鍑哄叆搴撴�婚噺 + function refreshTable(StartTime,EndTime) { + //#region 鑷畾涔夎〃澶� + var colsJson + var param1={ + Href:'Statistical/GetAssSoInfo' + }; + 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 + } + infoOptions = { + elem: '#LAY-app-content-list', + height: h1, + id: 'LAY-app-content-list', + page: true, + limit: pageCnt, + limits: pageLimits, + even: true, + cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板 + done: function(){ + //鑷畾涔夊垪瀹� + SetTableColW('LAY-app-content-list','Statistical/GetAssSoInfo',TotalColsSysArr); + }, + cols:colsJson + }; + + var param = { + StartTime:$("#StartTime").val(), + EndTime:$("#EndTime").val(), + }; + sendData(IP + "/Statistical/GetAssSoInfo", param, 'get', function(res) { + //console.log(res) + if (res.code == 0) { //鎴愬姛 + var list = res.data; + $.extend(infoOptions, { + data: list + }); + infoOptions.page = { + curr: 1 + } + tableIns = table.render(infoOptions); + } + else { //涓嶆垚鍔� + layer.msg('鑾峰彇鎬婚噺鍒楄〃淇℃伅澶辫触锛�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() {}); + } + }); + }); + //#endregion + + } + //#region 鑷畾涔夎〃澶� + var TotalColsArr = [[ + {field: '',title: '搴忓彿',type:'numbers',align: 'center',fixed: 'left', "disabled": true}, + {field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center'}, + {field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center',}, + {field: 'Standard', title: '瑙勬牸', align: 'center',}, + {field: 'Type', title: '绫诲瀷', align: 'center',templet: '#buttonType',}, + {field: 'Demo',title: '澶囨敞',align: 'center',width: 200}, + ]]; + var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 + //#endregion + // 琛ㄥ崟闇�瑕佺殑鍙橀噺 + /*var infoOptions = { + elem: '#LAY-app-content-list', + height: 'full-164', + id: 'LAY-app-content-list', + 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' + }, + { + field: 'SkuName', + title: '鐗╂枡鍚嶇О', + align: 'center', + }, + { + field: 'Standard', + title: '瑙勬牸', + align: 'center', + }, + { + field: 'Type', + title: '绫诲瀷', + align: 'center', + templet: '#buttonType', + }, + { + field: 'Demo', + title: '澶囨敞', + align: 'center', + width: 200 + }, + + ]] + };*/ + + + + //鑾峰彇鍗曟嵁鏄庣粏 + function refreshTable2(SkuNo,StartTime,EndTime) { + //#region 鑷畾涔夎〃澶� + var colsJson; + var param1={ + Href:'Statistical/GetAssSoInfoDetail' + }; + sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) { + if (res.code == 0){ + if(res.data=='' || res.data==undefined || res.data==null){ + colsJson=DetailColsArr + }else{ + colsJson= eval(res.data); + } + }else{ + colsJson=DetailColsArr + } + + infoOptions2 = { + elem: '#LAY-app-content-list2', + height: h1, + id: 'LAY-app-content-list2', + page: true, + limit: pageCnt, + limits: pageLimits, + cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板 + done: function(){ + //鑷畾涔夊垪瀹� + SetTableColW('LAY-app-content-list2','Statistical/GetAssSoInfoDetail',DetailColsSysArr); + }, + cols:colsJson + }; + + var param = { + skuNo:SkuNo, + StartTime:StartTime, + EndTime:EndTime, + } + //console.log(param) + sendData(IP + "/Statistical/GetAssSoInfoDetail", 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 + + } + + //#region 鑷畾涔夎〃澶� + var DetailColsArr = [[ + {field: '',title: '搴忓彿',type:'numbers',fixed: 'left',width:65, "disabled": true}, + {field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center', }, + {field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center',}, + {field: 'NoticeDateTime', title: '鍗曟嵁鏃ユ湡', align: 'center',}, + {field: 'ASNNo', title: '鍏ュ簱鍗曞彿', align: 'center',}, + {field: 'SONo', title: '鍑哄簱鍗曞彿', align: 'center',}, + {field: 'NoticeType', title: '缁熻绫诲埆', align: 'center',}, + {field: 'ASNQty', title: '鍏ュ簱鏁伴噺', align: 'center',}, + {field: 'ASNWeight',title: '鍏ュ簱閲嶉噺(鍚�)',align: 'center', templet: '#InspectASNWeight'}, + {field: 'SOQty',title: '鍑哄簱鏁伴噺', align: 'center',}, + {field: 'SOWeight',title: '鍑哄簱閲嶉噺(鍚�)',align: 'center', templet: '#InspectSOWeight' }, + {field: 'ASNSOQty',title: '缁撳瓨鏁伴噺', align: 'center',}, + {field: 'ASNSOWeight',title: '缁撳瓨閲嶉噺(鍚�)',align: 'center', emplet: '#InspectASNSOWeight'}, + {field: 'Weight',title: '鐞嗚閲嶉噺',align: 'center',}, + ]]; + var DetailColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 + //#endregion + + // 琛ㄥ崟闇�瑕佺殑鍙橀噺 + /*var infoOptions2 = { + elem: '#LAY-app-content-list2', + height: 'full-164', + id: 'LAY-app-content-list2', + 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', + }, + { + field: 'SkuName', + title: '鐗╂枡鍚嶇О', + align: 'center', + }, + { + field: 'NoticeDateTime', + title: '鍗曟嵁鏃ユ湡', + align: 'center', + }, + { + field: 'ASNNo', + title: '鍏ュ簱鍗曞彿', + align: 'center', + }, + { + field: 'SONo', + title: '鍑哄簱鍗曞彿', + align: 'center', + }, + { + field: 'NoticeType', + title: '缁熻绫诲埆', + align: 'center', + }, + { + field: 'ASNQty', + title: '鍏ュ簱鏁伴噺', + align: 'center', + }, + { + field: 'ASNWeight', + title: '鍏ュ簱閲嶉噺(鍚�)', + align: 'center', + templet: function (d) { + return (d.ASNQty * d.Weight).toFixed(4); + } + }, + { + field: 'SOQty', + title: '鍑哄簱鏁伴噺', + align: 'center', + }, + { + field: 'SOWeight', + title: '鍑哄簱閲嶉噺(鍚�)', + align: 'center', + templet: function (d) { + return (d.SOQty * d.Weight).toFixed(4); + } + }, + { + field: 'ASNSOQty', + title: '缁撳瓨鏁伴噺', + align: 'center', + }, + { + field: 'ASNSOWeight', + title: '缁撳瓨閲嶉噺(鍚�)', + align: 'center', + templet: function (d) { + return (d.ASNSOQty * d.Weight).toFixed(4); + } + }, + { + field: 'Weight', + title: '鐞嗚閲嶉噺', + align: 'center', + }, + ]] + };*/ + //var url = IP + "/Statistical/GetInventoryList1"; + + + + //鎺ュ彈鍏ㄥ眬鍙橀噺 + let quanjuskuNo = ''; + //鐩戝惉鎼滅储 + form.on('submit(LAY-app-contlist-search)', function(data) { + var EndTime = $("#EndTime").val(); + var StartTime = $("#StartTime").val(); + + + if(yemianid == 0){ + quanjuskuNo = ''; + refreshTable(StartTime,EndTime); + }else if(yemianid == 1){ + refreshTable2(quanjuskuNo,StartTime,EndTime); + } + + }); + //瑙﹀彂琛屽弻鍑讳簨浠� + 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') + //onsole.log(obj.data.SkuNo); + quanjuskuNo = obj.data.SkuNo; + refreshTable2(quanjuskuNo,$("#StartTime").val(),$("#EndTime").val()); + yemianid=1; + }); + + //鐩戝惉Tab鍒囨崲锛屼互鏀瑰彉鍦板潃hash鍊� + element.on('tab(docDemoTabBrief)', function(data){ + //console.log(data); + yemianid = data.index; + if(yemianid == 0){ + //console.log("鎬诲崟"); + refreshTable($("#StartTime").val(),$("#EndTime").val()); + }else if(yemianid == 1){ + //console.log("鏄庣粏"); + refreshTable2(quanjuskuNo,$("#StartTime").val(),$("#EndTime").val()); + } + }); + + form.on('submit(daochu)', function () { + layer.confirm('纭畾瀵煎嚭褰撳墠鏁版嵁鍚楋紵', function(index) { + if(yemianid == 0){ + //console.log("鎬诲崟"); + var param = { + // skuNo:SkuNo, + StartTime:$("#StartTime").val(), + EndTime:$("#EndTime").val(), + }; + sendData(IP + "/Statistical/GetAssSoInfo", param, 'get', function (res) { + //console.log(res); + if (res.code == 0) { //鎴愬姛 + var list = res.data; + list.forEach(item => { + if (item.SkuName.split(',')) + { + item.SkuName = '"'+item.SkuName+'"' + } + switch(item.Type) + { + case '0': + item.Type = "鍘熸枡" + break; + case '1': + item.Type = "鍖呮潗" + break; + case '2': + item.Type = "鎴愬搧" + break; + case '3': + item.Type = "鑰楁潗" + break; + case '4': + item.Type = "涓棿鍝�" + break; + default: + item.Type = "" + break; + } + }); + 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 = { + skuNo:quanjuskuNo, + StartTime:$("#StartTime").val(), + EndTime:$("#EndTime").val(), + }; + sendData(IP + "/Statistical/GetAssSoInfoDetail", param, 'get', function (res) { + //console.log(res); + if (res.code == 0) { //鎴愬姛 + var list = res.data; + list.forEach(item => { + if (item.SkuName.split(',')) + { + item.SkuName = '"'+item.SkuName+'"' + } + item.ASNWeight = (item.ASNQty * item.Weight).toFixed(4); // 鍏ュ簱閲嶉噺 + item.SOWeight = (item.SOQty * item.Weight).toFixed(4); // 鍑哄簱閲嶉噺 + item.ASNSOWeight = (item.ASNSOQty * item.Weight).toFixed(4); // 缁撳瓨閲嶉噺 + }); + 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 () { }); + } + }); + } + }); + }); + + //#region 鑷畾涔夎〃澶� + //鑷畾涔夎〃澶� + active = { + customCols: function(){ + layer.open({ + type: 2, + title: '鑷畾涔夊垪', + content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetAssSoInfo&ColsSysArr='+TotalColsSysArr, + maxmin: false, + resize: false, + area: ['970px', '650px'] + }); + }, + customCols2: function(){ + layer.open({ + type: 2, + title: '鑷畾涔夊垪', + content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetAssSoInfoDetail&ColsSysArr='+DetailColsSysArr, + maxmin: false, + resize: false, + area: ['970px', '650px'] + }); + } + + }; + $('.layui-btn').on('click', function() { + var type = $(this).data('type'); + active[type] ? active[type].call(this) : ''; + }); + //#endregion + + + }); + </script> + </body> +</html> diff --git a/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs b/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs new file mode 100644 index 0000000..1beb9aa --- /dev/null +++ b/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs @@ -0,0 +1,84 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Model.ModelDto.DataDto +{ + public class AssSoDateStockInfoDto + { + /// <summary> + /// Desc:鍏ュ簱鍗曞彿 + /// Default: + /// Nullable:False + /// </summary> + public string ASNNo { get; set; } + + /// <summary> + /// Desc:鍑哄簱鍗曞彿 + /// Default: + /// Nullable:False + /// </summary> + public string SONo { get; set; } + + /// <summary> + /// Desc:鐗╂枡缂栫爜 + /// Default: + /// Nullable:False + /// </summary> + public string SkuNo { get; set; } + + /// <summary> + /// Desc:鐗╂枡鍚嶇О + /// Default: + /// Nullable:False + /// </summary> + public string SkuName { get; set; } + + /// <summary> + /// Desc:鍏ュ簱鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int ASNQty { get; set; } + + /// <summary> + /// Desc:鍑哄簱鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int SOQty { get; set; } + + /// <summary> + /// Desc:缁撳瓨鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int ASNSOQty { get; set; } + + + /// <summary> + /// Desc:鍗曟嵁鏃堕棿 + /// Default: + /// Nullable:False + /// </summary> + public string NoticeDateTime { get; set; } + + /// <summary> + /// 鏈� + /// </summary> + public string month { get; set; } + + /// <summary> + /// 缁熻绫诲瀷 + /// </summary> + public string NoticeType { get; set; } + + /// <summary> + /// 鐞嗚閲嶉噺 + /// </summary> + public decimal Weight { get; set; } + + public DateTime CreateTime { get; set; } + + } +} diff --git a/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs b/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs new file mode 100644 index 0000000..ffd5bf4 --- /dev/null +++ b/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs @@ -0,0 +1,162 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Model.ModelVm.DataVm +{ + public class DataStockInfoVM + { + public int Id { get; set; } + + /// <summary> + /// 鍒涘缓鏃ユ湡 + /// </summary> + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// <summary> + /// 鏇存柊鏃ユ湡 + /// </summary> + public DateTime? UpdateTime { get; set; } + + /// <summary> + /// 鏄惁鍒犻櫎 + /// </summary> + public string IsDel { get; set; } = "0"; + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public int CreateUser { get; set; } + + /// <summary> + /// 鏇存柊浜� + /// </summary> + public int? UpdateUser { get; set; } + /// <summary> + /// Desc:鐗╂枡缂栫爜 + /// Default: + /// Nullable:True + /// </summary> + public string SkuNo { get; set; } + + /// <summary> + /// Desc:鐗╂枡鍚嶇О + /// Default: + /// Nullable:True + /// </summary> + public string SkuName { get; set; } + + /// <summary> + /// Desc:瑙勬牸 + /// Default: + /// Nullable:True + /// </summary> + public string Standard { get; set; } + + /// <summary> + /// Desc:绫诲瀷 + /// 0,4锛氬惃琚� 1锛氬叕鏂よ 2锛氱綈瑁呮弧妗� 3锛氱綈瑁呮《 5锛氭瘝鎵樼洏 6,7锛氬瓙鎵樼洏 + /// Default: + /// Nullable:True + /// </summary> + public string Type { get; set; } + + /// <summary> + /// Desc:鍏ュ簱鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int ArrivalQty { get; set; } + + /// <summary> + /// Desc:鍏ュ簱鏁伴噺锛堟湀锛� + /// Default: + /// Nullable:False + /// </summary> + public int YearArrivalQty { get; set; } + + /// <summary> + /// Desc:鍑哄簱鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int ExportQty { get; set; } + + /// <summary> + /// Desc:鍑哄簱鏁伴噺锛堟湀锛� + /// Default: + /// Nullable:False + /// </summary> + public int YearExportQty { get; set; } + + /// <summary> + /// Desc:缁撳瓨鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int BalanceQty { get; set; } + + /// <summary> + /// Desc:鏈熷嚭鏁伴噺 + /// Default: + /// Nullable:False + /// </summary> + public int ExpectedQty { get; set; } + + /// <summary> + /// Desc:缁撳瓨鏁伴噺(鏈�) + /// Default: + /// Nullable:False + /// </summary> + public int YearBalanceQty { get; set; } + + /// <summary> + /// Desc:鏈熷嚭鏁伴噺(鏈�) + /// Default: + /// Nullable:False + /// </summary> + public int YearExpectedQty { get; set; } + + /// <summary> + /// Desc:鎵规鍙� + /// Default: + /// Nullable:True + /// </summary> + public string LotNo { get; set; } + + /// <summary> + /// Desc:鎵规鎻忚堪 + /// Default: + /// Nullable:True + /// </summary> + public string LotText { get; set; } + + /// <summary> + /// Desc:渚涜揣鎵规 + /// Default: + /// Nullable:True + /// </summary> + public string SupplierLot { get; set; } + + + /// <summary> + /// Desc:鎵�灞炰粨搴� + /// Default: + /// Nullable:True + /// </summary> + public string WareHouseNo { get; set; } + + + /// <summary> + /// Desc:鎵�灞炲贩閬� + /// Default: + /// Nullable:True + /// </summary> + public string RoadwayNo { get; set; } + + /// <summary> + /// 閲嶉噺 + /// </summary> + public decimal Weight { get; set; } + } +} diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index 6c0ff69..00dd6d4 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -7,10 +7,12 @@ using System.Text; using Model.ModelDto; using Model.ModelDto.DataDto; +using Model.ModelVm.DataVm; using SqlSugar; using WMS.DAL; using WMS.Entity.Context; using WMS.Entity.DataEntity; +using WMS.Entity.SysEntity; using WMS.IBLL.IDataServer; namespace WMS.BLL.DataServer @@ -456,6 +458,299 @@ #endregion + #region 骞村害鎶ヨ〃 + + /// <summary> + /// 鑾峰彇骞存姤琛ㄦ�昏〃 + /// </summary> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + public List<SysMaterials> GetAssSoInfo(string StartTime, string EndTime) + { + try + { + 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)) + { + str += $" and a.CompleteTime >= '{StartTime}' and b.UpdateTime >= '{StartTime}'"; + } + //鍒ゆ柇缁撴潫鏃堕棿鏄惁涓虹┖ + if (!string.IsNullOrWhiteSpace(EndTime)) + { + EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString(); + str += $" and a.CompleteTime < '{EndTime}' and b.UpdateTime < '{EndTime}'"; + } + + str += " group by a.SkuNo,b.SkuNo)"; + + var sku = Db.Ado.SqlQuery<SysMaterials>(str); + return sku; + } + catch (Exception ex) + { + + throw new Exception(ex.Message); + } + } + + /// <summary> + /// 鑾峰彇骞存姤琛ㄦ槑缁� + /// </summary> + /// <param name="skuNo"></param> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + public List<AssSoDateStockInfoDto> GetAssSoInfoDetail(string skuNo, string StartTime, string EndTime) + { + try + { + //鐢ㄤ簬鍚堝苟鏁版嵁 + List<AssSoDateStockInfoDto> infolist = new List<AssSoDateStockInfoDto>(); + //鑾峰彇寮�濮嬫椂闂村綋澶╃殑缁撳瓨鏁伴噺 + //DataStockInfo stockInfo = new DataStockInfo(); + //鑾峰彇鐗╂枡鐞嗚閲嶉噺 + string weightstr = $"select Weight from SysMaterials where SkuNo = '{skuNo}'"; + var weight = Db.Ado.SqlQuerySingle<decimal>(weightstr); + + //鍒ゆ柇寮�濮嬫椂闂存槸鍚︿负绌� + if (!string.IsNullOrWhiteSpace(StartTime)) + { + //string str = $"select * from DataStockInfo where IsDel = '0' and CONVERT(date,CreateTime) = '{StartTime}'"; + //鑾峰彇褰撳ぉ搴撳瓨淇℃伅 + //stockInfo = Db.Ado.SqlQuerySingle<DataStockInfo>(str); + } + //鍒ゆ柇缁撴潫鏃堕棿鏄惁涓虹┖ + if (!string.IsNullOrWhiteSpace(EndTime)) + { + EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString(); + } + int countjie = 0; //缁熻缁撳瓨鏁伴噺 + ////鍒ゆ柇搴撳瓨淇℃伅鏄惁涓虹┖ + //if (stockInfo != null) + //{ + // countjie = stockInfo.BalanceQty; //缁熻缁撳瓨鏁伴噺 + //} + //else if (stockInfo == null) + //{ + //鍒ゆ柇寮�濮嬫椂闂存槸鍚︿负绌� + if (!string.IsNullOrWhiteSpace(StartTime)) + { + //string StartTimelin = (Convert.ToDateTime(StartTime).AddDays(1)).ToString(); + //鑾峰彇鍑哄簱鏁伴噺 + string str = $"select SUM(CompleteQty) as CompleteQtyc from BllExportNoticeDetail where IsDel = '0' and SkuNo = '{skuNo}' and Status != '0' and CreateTime < '{StartTime}'"; + string CompleteQtyc = Db.Ado.SqlQuerySingle<string>(str); + //鑾峰彇鍏ュ簱鏁伴噺 + str = $"select SUM(CompleteQty) as CompleteQtyr from BllArrivalNoticeDetail where IsDel = '0' and SkuNo = '{skuNo}' and Status != '0' and CreateTime < '{StartTime}'"; + string CompleteQtyr = Db.Ado.SqlQuerySingle<string>(str); + + //璁$畻缁撳瓨鏁伴噺 + countjie = int.Parse(CompleteQtyr) - int.Parse(CompleteQtyc); + + } + + //} + int yeara = 0; //骞村叆搴� + int years = 0; //骞村嚭搴� + int montha = 0; //鏈堝叆搴� + int months = 0; //鏈堝嚭搴� + DateTime createTime = DateTime.Now.AddYears(-1000); //鏃堕棿 + + //鑾峰彇鏈夊灏戝勾 + string yearstr = "select DATEPART(YEAR, CreateTime) SkuName from BllArrivalNoticeDetail where IsDel = '0' and Status = '2' "; + if (!string.IsNullOrWhiteSpace(StartTime)) + { + yearstr += $" and CreateTime >= '{StartTime}'"; + } + if (!string.IsNullOrWhiteSpace(EndTime)) + { + + yearstr += $" and CreateTime < '{EndTime}'"; + } + yearstr += "group by DATEPART(YEAR, CreateTime)"; + var yearlist = Db.Ado.SqlQuery<AssSoDateStockInfoDto>(yearstr); + if (!string.IsNullOrWhiteSpace(StartTime) && !string.IsNullOrWhiteSpace(EndTime)) + { + //鍒ゆ柇寮�濮嬫椂闂村勾涓庣粨鏉熸椂闂村勾鏄惁鐩哥瓑 + var startyear = StartTime.Split('-'); + var endyear = EndTime.Split("-"); + } + foreach (var yearcount in yearlist) + { + //鑾峰彇褰撳墠鐗╂枡姣忓勾鍏ュ簱鍗曟嵁鏄庣粏 + string ruyearstr = $"select ASNNo,SkuNo,SkuName,CompleteQty as ASNQty,0 as ASNSOQty,CONVERT(date,CreateTime) as NoticeDateTime,DATEPART(MONTH,CreateTime) as month,CreateTime from BllArrivalNoticeDetail where IsDel = '0' and Status != '0' and SkuNo = '{skuNo}' and DATEPART(YEAR, CreateTime) = '{yearcount.SkuName}'"; + //鑾峰彇褰撳墠鐗╂枡姣忓勾鍑哄簱鍗曟嵁鏄庣粏 + string chuyearstr = $"select SONo,SkuNo,SkuName,CompleteQty as SOQty,0 as ASNSOQty,CONVERT(date,CreateTime) as NoticeDateTime,DATEPART(MONTH,CreateTime) as month,CreateTime from BllExportNoticeDetail where IsDel = '0' and Status != '0' and SkuNo = '{skuNo}' and DATEPART(YEAR, CreateTime) = '{yearcount.SkuName}'"; + + if (!string.IsNullOrWhiteSpace(StartTime)) + { + ruyearstr += $" and CreateTime >= '{StartTime}'"; + chuyearstr += $" and CreateTime >= '{StartTime}'"; + } + if (!string.IsNullOrWhiteSpace(EndTime)) + { + //EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString(); + ruyearstr += $" and CreateTime < '{EndTime}'"; + chuyearstr += $" and CreateTime < '{EndTime}'"; + } + + ruyearstr += " order by CreateTime"; + chuyearstr += " order by CreateTime"; + //姣忓勾鍏ュ簱 + List<AssSoDateStockInfoDto> ruinfolist = Db.Ado.SqlQuery<AssSoDateStockInfoDto>(ruyearstr); + //姣忓勾鍑哄簱 + List<AssSoDateStockInfoDto> chuinfolist = Db.Ado.SqlQuery<AssSoDateStockInfoDto>(chuyearstr); + + //寰幆12涓湀 + for (int i = 1; i <= 12; i++) + { + //涓存椂鍏� + List<AssSoDateStockInfoDto> linshiru = new List<AssSoDateStockInfoDto>(); + //涓存椂鍑� + List<AssSoDateStockInfoDto> linshichu = new List<AssSoDateStockInfoDto>(); + + if (ruinfolist.Count > 0) + { + linshiru = ruinfolist.Where(a => a.month == i.ToString()).ToList(); //鑾峰彇褰撴湀鍏ュ簱淇℃伅 + } + if (chuinfolist.Count > 0) + { + linshichu = chuinfolist.Where(a => a.month == i.ToString()).ToList(); //鑾峰彇褰撴湀鍑哄簱淇℃伅 + } + if (linshichu.Count > 0) + { + foreach (var h in linshichu) + { + linshiru.Add(h); + } + } + var data = linshiru.OrderBy(a => a.CreateTime).ToList(); + + //鍒ゆ柇鏄惁瀛樺湪褰撴湀鍏ュ簱淇℃伅 + if (linshiru.Count > 0) + { + + foreach (var item in data) + { + item.NoticeDateTime = Convert.ToDateTime(item.NoticeDateTime).ToString("yyyy-MM-dd"); + //鎬昏缁撳瓨鏁伴噺 + if (item.ASNNo != null) + { + //鍏ュ簱 + countjie += item.ASNQty; + montha += item.ASNQty; //鏈堝叆搴� + yeara += item.ASNQty; //骞村叆搴� + } + else if (item.SONo != null) + { + //鍑哄簱 + countjie -= item.SOQty; + months += item.SOQty; //鏈堝嚭搴� + years += item.SOQty; //骞村嚭搴� + } + item.ASNSOQty = countjie; //缁撳瓨鏁伴噺 + item.Weight = weight; //閲嶉噺 + infolist.Add(item); + + if (createTime < item.CreateTime) + { + createTime = item.CreateTime; //鏃堕棿 + } + } + } + //鍒ゆ柇鏄惁瀛樺湪褰撴湀鍑哄簱淇℃伅 + //if (linshichu.Count > 0) + //{ + // //鍑哄簱 + // foreach (var item in linshichu) + // { + // item.NoticeDateTime = Convert.ToDateTime(item.NoticeDateTime).ToString("yyyy-MM-dd"); + // countjie -= item.SOQty; //鎬昏缁撳瓨鏁伴噺 + // item.ASNSOQty = countjie; //缁撳瓨鏁伴噺 + // item.Weight = weight; //閲嶉噺 + // infolist.Add(item); + // months += item.SOQty; //鏈堝嚭搴� + // years += item.SOQty; //骞村嚭搴� + // if (createTime < item.CreateTime) + // { + // createTime = item.CreateTime; //鏃堕棿 + // } + // } + //} + + //鍒ゆ柇鏄惁鏈夋湀鍑哄叆搴� + if (linshiru.Count > 0 || linshichu.Count > 0) + { + //鏈堜俊鎭� + var addmonthinfo = new AssSoDateStockInfoDto() + { + ASNNo = "", // 鍏ュ簱鍗曟嵁 + SONo = "", // 鍑哄簱鍗曟嵁 + + SkuNo = "", // 鐗╂枡缂栫爜 + SkuName = "", // 鐗╂枡鍚嶇О + + NoticeType = "鏈湀绱", //缁熻绫诲埆 + + ASNQty = montha, // 鍏ュ簱鏁伴噺 + SOQty = months, // 鍑哄簱鏁伴噺 + ASNSOQty = countjie, // 缁撳瓨鏁伴噺 + + Weight = weight, // 鐞嗚閲嶉噺 + + NoticeDateTime = yearcount.SkuName + "骞�" + i + "鏈�", // 鍗曟嵁鏃堕棿 + CreateTime = createTime, //鏃堕棿 + }; + infolist.Add(addmonthinfo); + } + montha = 0; //鏈堝叆搴� + months = 0; //鏈堝嚭搴� + } + //鍒ゆ柇鏄惁鏈夊勾鍑哄叆搴� + if (ruinfolist.Count > 0 || chuinfolist.Count > 0) + { + //骞翠俊鎭� + var addyearinfo = new AssSoDateStockInfoDto() + { + ASNNo = "", // 鍏ュ簱鍗曟嵁 + SONo = "", // 鍑哄簱鍗曟嵁 + + SkuNo = "", // 鐗╂枡缂栫爜 + SkuName = "", // 鐗╂枡鍚嶇О + + NoticeType = "鏈勾绱", //缁熻绫诲埆 + + ASNQty = yeara, // 鍏ュ簱鏁伴噺 + SOQty = years, // 鍑哄簱鏁伴噺 + ASNSOQty = countjie, // 缁撳瓨鏁伴噺 + + Weight = weight, // 鐞嗚閲嶉噺 + + NoticeDateTime = yearcount.SkuName + "骞�", // 鍗曟嵁鏃堕棿 + CreateTime = createTime, //鏃堕棿 + }; + infolist.Add(addyearinfo); + } + yeara = 0; //骞村叆搴� + years = 0; //骞村嚭搴� + } + + infolist = infolist.OrderBy(x => x.CreateTime).ToList(); + return infolist; + + } + catch (Exception ex) + { + + throw new Exception(ex.Message); + } + } + + + #endregion + #region 瀵煎嚭搴撳瓨 /// <summary> /// 瀵煎嚭搴撳瓨鎬婚噺 diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs index 3580bb1..b175bae 100644 --- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs +++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using WMS.Entity.DataEntity; +using WMS.Entity.SysEntity; namespace WMS.IBLL.IDataServer { @@ -74,6 +75,26 @@ #endregion + #region 骞村害鎶ヨ〃 + + /// <summary> + /// 鑾峰彇骞存姤琛� + /// </summary> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + List<SysMaterials> GetAssSoInfo(string StartTime, string EndTime); + + /// <summary> + /// 鑾峰彇骞存姤琛ㄦ槑缁� + /// </summary> + /// <param name="skuNo"></param> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + List<AssSoDateStockInfoDto> GetAssSoInfoDetail(string skuNo, string StartTime, string EndTime); + + #endregion #region 瀵煎嚭搴撳瓨 /// <summary> diff --git a/Wms/Wms/Controllers/StatisticalController.cs b/Wms/Wms/Controllers/StatisticalController.cs index c6e3391..f115099 100644 --- a/Wms/Wms/Controllers/StatisticalController.cs +++ b/Wms/Wms/Controllers/StatisticalController.cs @@ -17,13 +17,13 @@ /// </summary> private readonly IStockServer _stock; //缁熻鎶ヨ〃 private readonly IStockDetailServer _stockDetail; //缁熻鎶ヨ〃 - private readonly IDataBoxInfoServer _dataBoxInfo; //缁熻鎶ヨ〃 + private readonly IDataBoxInfoServer _dataBoxInfo; //瀵煎嚭 /// <summary> /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="stock">缁熻鎶ヨ〃</param> /// <param name="stockDetail">搴撳瓨绠辩爜鏄庣粏</param> - /// <param name="dataBoxInfo">搴撳瓨绠辩爜鏄庣粏</param> + /// <param name="dataBoxInfo">瀵煎嚭</param> public StatisticalController(IStockServer stock, IStockDetailServer stockDetail, IDataBoxInfoServer dataBoxInfo) { _stock = stock; //缁熻鎶ヨ〃 @@ -261,6 +261,52 @@ #endregion + #region 骞村害鎶ヨ〃 + + /// <summary> + /// 鑾峰彇骞存姤琛� + /// </summary> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + [HttpGet] + public IActionResult GetAssSoInfo(string StartTime, string EndTime) + { + try + { + var skulist = _stock.GetAssSoInfo(StartTime, EndTime); + return Ok(new { code = 0, count = 0, data = skulist, msg = "鑾峰彇鎬婚噺鎴愬姛" }); + } + catch (Exception ex) + { + + return Ok(new { code = 1, count = 0, msg = ex.Message }); + } + } + + /// <summary> + /// 鑾峰彇骞存姤琛ㄦ槑缁� + /// </summary> + /// <param name="skuNo"></param> + /// <param name="StartTime"></param> + /// <param name="EndTime"></param> + /// <returns></returns> + [HttpGet] + public IActionResult GetAssSoInfoDetail(string skuNo, string StartTime, string EndTime) + { + try + { + var infolist = _stock.GetAssSoInfoDetail(skuNo, StartTime, EndTime); + return Ok(new { code = 0, count = 0, data = infolist, msg = "鑾峰彇鏄庣粏鎴愬姛" }); + } + catch (Exception ex) + { + return Ok(new { code = 1, count = 0, msg = ex.Message }); + } + } + + #endregion + #region 瀵煎嚭 /// <summary> /// 瀵煎嚭搴撳瓨鎬婚噺 -- Gitblit v1.8.0