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