using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using QMFrameWork.WebUI.Attribute; using QMAPP.FJC.Web.Models.WIPManage; using QMAPP.Common.Web.Controllers; using QMFrameWork.Data; using QMAPP.ServicesAgent; using QMAPP.FJC.Entity.WIPManage; using QMFrameWork.WebUI.DataSource; using QMFrameWork.Common.Serialization; using System.Data; using QMAPP.Entity; using QMAPP.FJC.Entity.Basic; namespace QMAPP.FJC.Web.Controllers { /// /// 模块编号:M7-4 /// 作 用:低储报警信息控制层 /// 作 者:王丹丹 /// 编写日期:2015年06月19日 /// public class StorageAlarmController : QController { #region 获取列表 /// /// 加载列表 /// /// 结果 [HandleException] public ActionResult List(bool? callBack) { StorageAlarmModel seachModel = new StorageAlarmModel(); seachModel.CREATEDATESTART = DateTime.Now.Date.AddDays(-10).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.CREATEDATEEND = DateTime.Now.Date.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.ImmediateSearch = false; if (callBack == true) TryGetSelectBuffer(out seachModel); seachModel.rownumbers = false; seachModel.url = "/StorageAlarm/GetList"; return View("StorageAlarmList", seachModel); } /// /// 获取列表 /// /// 是否回调 /// 列表 [HandleException] public ActionResult GetList(bool? callBack) { StorageAlarmModel seachModel = null; DataResult pageResult = new DataResult(); DataPage page = new DataPage(); ServiceAgent wcfAgent = this.GetServiceAgent(); StorageAlarm condition = null; try { //获取查询对象 seachModel = GetModel(); #region 获取缓存值 if (callBack != null) { TryGetSelectBuffer(out seachModel); } else { //保存搜索条件 SetSelectBuffer(seachModel); } #endregion //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); #region wcf服务统一接口 pageResult = wcfAgent.InvokeServiceFunction>(QMAPP.ServicesAgent.WIPManage.StorageAlarmBLL_GetList.ToString(), condition, page); if (pageResult.IsSuccess == false) { SetMessage(pageResult.Msg); return List(true); } DateGridResult result = new DateGridResult(); result.Total = pageResult.Result.RecordCount; result.Rows = JsonConvertHelper.GetDeserialize>(pageResult.Result.Result.ToString()); #endregion return Content(result.GetJsonSource()); } catch (Exception ex) { throw ex; } } #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HttpPost] public ActionResult ExportExcel() { StorageAlarmModel seachModel = null; StorageAlarm condition = null; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); string selectKey = Request.Form["selectKey"]; try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); //获取数据 result = wcfAgent.InvokeServiceFunction>(QMAPP.ServicesAgent.WIPManage.StorageAlarmBLL_GetExportData.ToString(), condition); //根据所选信息进行导出 if (!String.IsNullOrEmpty(selectKey)) { DataView dv = new DataView(result.Result); string strWhere = ""; string[] list = selectKey.Split(":".ToCharArray()); foreach (string ID in list) { strWhere += " PID='" + ID + "' or"; } if (strWhere != "") { strWhere = strWhere.Remove((strWhere.Length - 2), 2); } dv.RowFilter = strWhere; result.Result = dv.ToTable(); } //导出 QMFrameWork.WebUI.Util.IEFileTool efTool = new QMFrameWork.WebUI.Util.IEFileTool(); return efTool.GetExcelFileResult("StorageAlarmExp", "低储报警信息.xlsx", result.Result); } catch (Exception ex) { throw ex; } } #endregion #region 获取工序类别下拉列表 /// /// 获取工序类别下拉列表 /// /// public ContentResult GetComboxSource() { List listProcessInfo = new List(); ComboboxResult model = new ComboboxResult(); ServiceAgent wcfAgent = this.GetServiceAgent(); ProcessSet entity = new ProcessSet(); DataResult> result = new DataResult>(); try { //获取工序信息 result = wcfAgent.InvokeServiceFunction>>(QMAPP.ServicesAgent.B9BasicService.ProcessSetBLL_GetProcessInfoList.ToString(), entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return Content(model.ToString()); } foreach (var item in result.Result) { if (model.Items.Count == 0) { model.Add(new ComboboxItem { ID = "", Text = new DictController().EmptyItemTitle }); model.Add(new ComboboxItem { ID = item.PROCESSTYPE, Text = item.PROCESSNAME }); } else { model.Add(new ComboboxItem { ID = item.PROCESSTYPE, Text = item.PROCESSNAME }); } } return Content(model.ToString()); } catch (Exception ex) { throw ex; } } #endregion } }