using Dapper;
using Estsh.Core.Controllers;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using System.Collections;
using System.Data;
using System.Text.RegularExpressions;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:安灯信息查询
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class AndonInfoQueryController : BaseController
{
private IAndonInfoQueryService service;
private IWebHostEnvironment hostingEnvironment;
public AndonInfoQueryController(IAndonInfoQueryService _service,IWebHostEnvironment _hostingEnvironment)
{
service = _service;
hostingEnvironment = _hostingEnvironment;
}
//
// GET: /Menu/
public ActionResult Index()
{
return View();
}
///
/// 获取安灯信息查询列表数据
///
///
///
///
///
///
public ActionResult getListByPage(String txtStartTime, String txtEndTime,string type, Pager pager, String direction, String sort, String enabled = "Y")
{
Hashtable result = new Hashtable();
result.Add("pager.pageNo", pager.pageNo);
Hashtable dataHt = this.service.getListByPage(txtStartTime, txtEndTime,type, pager, direction, sort, enabled);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
result.Add("sort", sort);
result.Add("direction", direction);
return Json(result);
}
///
/// 获取 类型 信息
/// BY NOAH
///
///
public ActionResult getTypeData()
{
Hashtable result = new Hashtable();
List menuList = this.service.getTypeData();
result.Add("list", menuList);
return Json(result);
}
///
/// 导出数据到Excel
/// BY NOAH
///
///
///
///
///
///
///
public ActionResult exportData(String txtStartTime, String txtEndTime,string type, Pager pager, String sort, String direction, String isPage)
{
Boolean paging = false;
if (isPage == null || "".Equals(isPage))
{
paging = false;
}
else
{
if ("1".Equals(isPage.Trim()))
{
paging = true;
}
else
{
paging = false;
}
}
Hashtable dataHt = this.service.getTableListByPage(txtStartTime, txtEndTime,type, pager, direction, sort, paging);//txtOrderNo, pager, direction, sort, paging
List listHt = (List)dataHt["dataList"];
var memoryStream = ExcelHelper.ToExcel(listHt);
return File(memoryStream.ToArray(), "application/ms-excel", "安灯信息查询.xls");
}
public ActionResult getAndonCount(String txtStartTime, String txtEndTime, string type)
{
Hashtable result = new Hashtable();
String strWhere = " AND 1=1 ";
if (!String.IsNullOrEmpty(txtStartTime) && !String.IsNullOrEmpty(txtEndTime))
{
strWhere += " AND ( g.startTime > '" + txtStartTime + "' AND g.endTime < '" + txtEndTime + "') ";
}
else
{
return null;
}
if (!String.IsNullOrEmpty(type))
{
strWhere += " AND g.andon_type = '" + type.Trim() + "'";
}
DataTable dtList = new DataTable();
List AndonCount = service.getAndonCount(strWhere);
dtList.Columns.Add("item");
dtList.Columns.Add("lyl");
DataRow dr = null;
for (int i = 0; i < AndonCount.Count; i++)
{
string item = AndonCount[i].StationName.ToString();
string value = AndonCount[i].Qty.ToString();
dr = dtList.NewRow();
dr["item"] = item;
dr["lyl"] = value;
dtList.Rows.Add(dr);
}
DataTable dataHt = dtList;
result.Add("rows", DataTypeConvert.NewObject.DataTableToArrayList(dataHt));
result.Add("pager.totalRows", dtList.Rows.Count);
return Json(result);
}
public ActionResult getAndonTime(String txtStartTime, String txtEndTime, string type)
{
Hashtable result = new Hashtable();
String strWhere = " AND 1=1 ";
if (!String.IsNullOrEmpty(txtStartTime) && !String.IsNullOrEmpty(txtEndTime))
{
strWhere += " AND ( g.startTime > '" + txtStartTime + "' AND g.endTime < '" + txtEndTime + "') ";
}
else
{
return null;
}
if (!String.IsNullOrEmpty(type))
{
strWhere += " AND g.andon_type = '" + type.Trim() + "'";
}
DataTable dtList = new DataTable();
List AndonCount = service.getAndonTime(strWhere);
dtList.Columns.Add("item");
dtList.Columns.Add("lyl");
DataRow dr = null;
for (int i = 0; i < AndonCount.Count; i++)
{
string item = AndonCount[i].StationName.ToString();
string value = AndonCount[i].Sj.ToString();
dr = dtList.NewRow();
dr["item"] = item;
dr["lyl"] = value;
dtList.Rows.Add(dr);
}
DataTable dataHt = dtList;
result.Add("rows", DataTypeConvert.NewObject.DataTableToArrayList(dataHt));
result.Add("pager.totalRows", dtList.Rows.Count);
return Json(result);
}
}
}