123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using DllEapDal.OFILM;
- using DllEapEntity.Dtos;
- using DllEapEntity.OFILM;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Text;
- using System.Linq;
- using Cksoft.Unity;
- using DllEapDal;
- using DllEapCommon.NPOI;
- using System.IO;
- using Microsoft.AspNetCore.Authorization;
- namespace DllEapBll.OFILM
- {
- [Route("eap/api/[controller]/[action]")]
- [Authorize]
- public class ForecastController : ControllerBase
- {
- /// <summary>
- /// 设备需求预测
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="pageIndex"></param>
- /// <param name="pageSize"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "equipmentmodel", string sortOrder = "ascend")
- {
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- var res = new EapResponse() { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- db.BeginTrans();
- var dal = new ForecastDal(db);
- string errorinfo = string.Empty;
- var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo);
- var total = dal.GetCount(filter);
- AntdComplexTableDto data = new AntdComplexTableDto();
- var headers = new List<AntdColumn>();
- DataTable dt = new DataTable();
- dt = dal.Getfor(roles);
- if (dt != null && dt.Columns.Count > 0)
- {
- foreach (DataColumn item in dt.Columns)
- {
- if (item.ColumnName != "ParkRowSpan" && item.ColumnName != "ModelRowSpan")
- headers.Add(new AntdColumn { ColName = item.ColumnName });
- }
- }
- data.Columns = headers;
- data.Datas = dt;
- data.TotalData = dt;
- res.Data = data;
- res.Total = total;
- return res;
- }
- }
- /// <summary>
- /// 预测详情
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="pageIndex"></param>
- /// <param name="pageSize"></param>
- /// <param name="sort"></param>
- /// <param name="order"></param>
- /// <returns></returns>
- public EapResponse GetMacMtbaList(string filter, int pageIndex = 1, int pageSize = 20, string sort = "equipmentmodel", string order = "descend")
- {
- if (string.IsNullOrEmpty(sort))
- {
- sort = "equipmentmodel";
- }
- if (string.IsNullOrEmpty(order))
- {
- order = "descend";
- }
- if (order == "descend")
- {
- order = "desc";
- }
- else
- {
- order = "asc";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- string errorinfo = string.Empty;
- int total = 0;
- var res = new EapResponse() { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- total = dal.GetEmCount(filter);
- var en = new EquipmentnumberDal(db);
- var Equipmentmodels = en.getEquipmentmodel(start, pageSize, order, sort, filter);//获取机型,园区,楼层
- if(Equipmentmodels!=null && Equipmentmodels.Count() > 0)
- {
- filter += $" and tt.id in ( {string.Join(",", Equipmentmodels.Select(l => l.ID).ToArray())})";
- }
- var macList = dal.getDetail(filter).ToList();//获取当月预测数据
- AntdComplexTableDto data = new AntdComplexTableDto();
- DataTable dt = new DataTable();
- dt = dal.GetForDetail(macList, Equipmentmodels);
- DataTable dtTotal = new DataTable();
- var header = new List<AntdColumn>();
- if (dt != null && dt.Columns.Count > 0)
- {
- foreach (DataColumn item in dt.Columns)
- {
- if (item.ColumnName != "ParkRowSpan" && item.ColumnName != "ModelRowSpan")
- header.Add(new AntdColumn { ColName = item.ColumnName });
- }
- }
- data.Columns = header;
- data.Datas = dt;
- data.TotalData = dtTotal;
- res.Data = data;
- res.Total = total;
- return res;
- }
- }
- /// <summary>
- /// 获取园区多选
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- public IEnumerable<SelectDto<string>> GetMultipalMacSelects(string filter)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- return dal.GetMultipleSelects(filter).OrderBy(c => c.Label);
- }
- }
- /// <summary>
- /// 获取机种下拉框
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- public IEnumerable<SelectDto<string>> GetMultipalMacTypeSelects(string filter)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- return dal.GetMultipleMacTypeSelects(filter).OrderBy(c => c.Label);
- }
- }
- /// <summary>
- /// 获取机型多选
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- public IEnumerable<SelectDto<string>> GetMultipleSelectsFloor(string filter)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- return dal.GetMultipleSelectsFloor(filter).OrderBy(c => c.Label);
- }
- }
- /// <summary>
- /// 设备需求预测导出
- /// </summary>
- /// <param name="queryData"></param>
- /// <returns></returns>
- [HttpPost]
- public IActionResult Export([FromBody] dynamic queryData)
- {
- var filter = Convert.ToString(queryData.filter);
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- var data = dal.GetComplexData(filter, 1, 1000000);
- if (data == null)
- {
- return null;
- }
- var buffer = DataExportHelper.ExportForecastToExcel(data, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- /// <summary>
- /// 预测详情导出
- /// </summary>
- /// <param name="queryData"></param>
- /// <returns></returns>
- [HttpPost]
- public IActionResult ExportDetail([FromBody] dynamic queryData)
- {
- var filter = Convert.ToString(queryData.filter);
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new ForecastDal(db);
- var data = dal.GetComplexDataDetail(filter, 1, 1000000);
- if (data == null)
- {
- return null;
- }
- var buffer = DataExportHelper.ExportForecastToExcel(data, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- }
- }
|