using IWareDataAccess.Entity.Summary; using IWareDataAccess.ReturnEntity; using IWareDataAccess.ReturnEntity.Summary; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; namespace WebApi_QQJF.Controllers { public class SummaryStatisticsController : ApiController { #region 1.首页统计数据 [HttpPost, Route("SummaryStatistics/GetHomeNumData")] public IHttpActionResult GetHomeNumData() { string msg = ""; //调用查询方法 var result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetHomeNumData(out msg); ReturnResultSummaryNum returnData = new ReturnResultSummaryNum(); returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } [HttpPost, Route("SummaryStatistics/GetHomeNumDataByDate")] public IHttpActionResult GetHomeNumDataByDate() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 DateTime stday = new DateTime(); DateTime edday = new DateTime(); DateTime.TryParse(request.Form["stDate"], out stday); DateTime.TryParse(request.Form["edDate"], out edday); //调用查询方法 var result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetHomeNumDataByDate(stday, edday, out msg); ReturnResultSummaryNumVsTime returnData = new ReturnResultSummaryNumVsTime(); returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } [HttpPost, Route("SummaryStatistics/GetHomePieData")] public IHttpActionResult GetHomePieData() { string msg = ""; //调用查询方法 var result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetHomePieData(out msg); ReturnResultSummaryPie returnData = new ReturnResultSummaryPie(); returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } [HttpPost, Route("SummaryStatistics/GetHomeBarItemData")] public IHttpActionResult GetHomeBarItemData() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 HomeBarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetHomeBarItemData(startTime, endTime, out msg); ReturnResultSummary returnData = new ReturnResultSummary(); returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } [HttpPost, Route("SummaryStatistics/GetHomeBarContainerData")] public IHttpActionResult GetHomeBarContainerData() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 HomeBarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetHomeBarContainerData(startTime, endTime, out msg); ReturnResultSummary returnData = new ReturnResultSummary(); returnData.code = string.IsNullOrEmpty(msg) ? 0: 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } #endregion #region 3.库存分类统计 [HttpPost, Route("SummaryStatistics/GetStockClassificationData")] public IHttpActionResult GetStockClassificationData() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 int type = string.IsNullOrEmpty(request.Form["type"]) ? 1 : int.Parse(request.Form["type"].ToString()); //调用查询方法 PieEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetStockClassificationData(type, out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion #region 4.出入库任务平均时长 [HttpPost, Route("SummaryStatistics/GetInOutAverageTime")] public IHttpActionResult GetInOutAverageTime() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetInOutAverageTime(startTime, endTime, out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion #region 5.任务节拍分析 [HttpPost, Route("SummaryStatistics/GetTaskBeatAnalysis")] public IHttpActionResult GetTaskBeatAnalysis() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { startTime = DateTime.Now.ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetTaskBeatAnalysis(startTime,out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion #region 13.货格利用率 [HttpPost, Route("SummaryStatistics/GetStorageVailability")] public IHttpActionResult GetStorageVailability() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetStorageVailability(startTime,endTime, out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion #region 18.在制品资金分析 [HttpPost, Route("SummaryStatistics/GetStorageCapitalAnalysis")] public IHttpActionResult GetStorageCapitalAnalysis() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetStorageCapitalAnalysis(startTime, endTime, out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion #region 19.立库总览和制件总览 [HttpPost, Route("SummaryStatistics/GetStorageOverviewData")] public IHttpActionResult GetStorageOverviewData() { string msg = ""; //调用查询方法 var result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetStorageOverviewData(out msg); ReturnResultSummaryNum returnData = new ReturnResultSummaryNum(); returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; returnData.msg = msg; returnData.data = result; //返回JSON结果 return Json(returnData); } #endregion #region 12.设备可动率 [HttpPost, Route("SummaryStatistics/GetDevMovable")] public IHttpActionResult GetDevMovable() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); int type = string.IsNullOrEmpty(request.Form["type"]) ? 1 : int.Parse(request.Form["type"].ToString()); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetDevMovable(startTime, endTime,type, out msg); return Json(result); } #endregion #region 11.设备利用率 [HttpPost, Route("SummaryStatistics/GetDevAvailability")] public IHttpActionResult GetDevAvailability() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); int type = string.IsNullOrEmpty(request.Form["type"]) ? 1 : int.Parse(request.Form["type"].ToString()); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetDevAvailability(startTime, endTime,type, out msg); return Json(result); } #endregion #region 8.制件周转时间 [HttpPost, Route("SummaryStatistics/GetPartTurnover")] public IHttpActionResult GetPartTurnover() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 int styear = string.IsNullOrEmpty(request.Form["year"]) ? DateTime.Now.Year : int.Parse(request.Form["year"].ToString()); int edyear = string.IsNullOrEmpty(request.Form["year"]) ? DateTime.Now.Year : int.Parse(request.Form["year"].ToString()); int stMonth = string.IsNullOrEmpty(request.Form["stMonth"]) ? DateTime.Now.Month : int.Parse(request.Form["stMonth"].ToString()); int edMonth = string.IsNullOrEmpty(request.Form["edMonth"]) ? DateTime.Now.Month : int.Parse(request.Form["edMonth"].ToString()); int stWeek = string.IsNullOrEmpty(request.Form["stWeek"]) ? 1 : int.Parse(request.Form["stWeek"].ToString()); int edWeek = string.IsNullOrEmpty(request.Form["edWeek"]) ? 4 : int.Parse(request.Form["edWeek"].ToString()); string st = request.Form["stWeek"].ToString(); DateTime std = new DateTime(styear, stMonth, (stWeek - 1) * 7 + 1);//开始年月周的第一日 DateTime etd = new DateTime(edyear, edMonth, (edWeek - 1) * 7 + 1);//结束年月周的第一日 if (std > etd)//不合规 { etd = std.AddDays(28);//加4周 } styear = std.Year; edyear = etd.Year; stMonth = std.Month; edMonth = etd.Month; stWeek = getWeek(std); edWeek = getWeek(etd); //if (edMonth < stMonth) //{ // if (stMonth == 12) // { // edMonth = stMonth -1; // } // else // { // edMonth = stMonth + 1; // } //} //if (stMonth == edMonth) //{ // if (edWeek <= stWeek) // { // if (stWeek == 4) // { // edWeek = stWeek - 1; // } // else // { // edWeek = stWeek + 1; // } // } //} //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetPartTurnover(styear,edyear, stMonth, edMonth, stWeek, edWeek, out msg); return Json(result); } int getWeek(DateTime dt) { int dayInMouth = dt.Day; DateTime FirstDay = dt.AddDays(1 - dayInMouth); int weekDay=(int)FirstDay.DayOfWeek==0?7:(int)FirstDay.DayOfWeek; int weekEndDay = 7 - (weekDay - 1); int diffDay = dayInMouth - weekEndDay; int weekNumInMouth = (((diffDay % 7) == 0 && diffDay!=0) ? (diffDay / 7 - 1) : (diffDay / 7)) + 1 + (dayInMouth > weekEndDay ? 1 : 0); return weekNumInMouth; } #endregion #region 13.出入库每小时统计 [HttpPost, Route("SummaryStatistics/GetInOutCountByHour")] public IHttpActionResult GetInOutCountByHour() { string msg = ""; HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string startTime = string.IsNullOrEmpty(request.Form["startTime"]) ? "" : request.Form["startTime"].ToString(); string endTime = string.IsNullOrEmpty(request.Form["endTime"]) ? "" : request.Form["endTime"].ToString(); if (string.IsNullOrEmpty(startTime)) { if (string.IsNullOrEmpty(endTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { startTime = DateTime.Parse(endTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (string.IsNullOrEmpty(endTime)) { if (string.IsNullOrEmpty(startTime)) { endTime = DateTime.Now.ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); } else { endTime = startTime = DateTime.Parse(startTime).AddDays(-7).ToString("yyyy-MM-dd"); } } if (startTime == endTime) { //startTime = DateTime.Parse(endTime).AddDays(-4).ToString("yyyy-MM-dd"); } //调用查询方法 BarEntity result = IWareDataAccess.Summary.SummaryStatisticsSqlFunc.GetInOutCountByHour(startTime, endTime, out msg); //ReturnResultSummary returnData = new ReturnResultSummary(); //returnData.code = string.IsNullOrEmpty(msg) ? 0 : 1; //returnData.msg = msg; //returnData.data = result; //返回JSON结果 return Json(result); } #endregion } }