using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using QMAPP.Common.Web.Controllers; using QMFrameWork.WebUI.Attribute; using QMAPP.FJC.Web.Models.EnergyManage; using QMFrameWork.Data; using QMAPP.ServicesAgent; using QMAPP.FJC.Entity.EnergyManage; using QMAPP.Entity; using QMFrameWork.WebUI.DataSource; using QMFrameWork.Common.Serialization; using System.Data; using QMAPP.FJC.Entity.Basic; using QMFrameWork.Common.ExcelOperation; using QMFrameWork.Log; namespace QMAPP.FJC.Web.Controllers { public class MeterController : QController { #region 获取信息 /// /// 加载列表 /// /// 结果 [HandleException] public ActionResult List(bool? callback) { MeterModel seachModel = new MeterModel(); seachModel.ImmediateSearch = false; if (callback == true) TryGetSelectBuffer(out seachModel); seachModel.url = "/Meter/GetList"; return View("List", seachModel); } #endregion #region 获取列表 /// /// 获取列表 /// /// 是否回调 /// 列表 [HandleException] public ActionResult GetList(bool? callBack) { MeterModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); Meter condition = null; DataResult pageResult = new DataResult(); 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>("MeterBLL_GetLists", 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 编辑 /// /// 编辑载入 /// /// 处理结果 [HandleException] public ActionResult Edit() { MeterModel model = new MeterModel(); string ID = Request.Params["PID"]; Meter Entity = new Meter(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { if (string.IsNullOrEmpty(ID) == false) { //修改获取原数据 Entity.PID = ID; result = wcfAgent.InvokeServiceFunction>("MeterBLL_Get", Entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return View("MeterEdit", model); } model = CopyToModel(result.Result); } return View("MeterEdit", model); } catch (Exception ex) { throw ex; } } #endregion #region 保存 /// /// 保存 /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult Save(MeterModel saveModel) { Meter Entity = null; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { Entity = CopyToModel(saveModel); //if (string.IsNullOrEmpty(Entity.EQPT_CODE)) //{ // Entity.EQPT_CODE = Entity.METER_CODE; //} if (string.IsNullOrEmpty(Entity.PID) == true) { var isExistsEqptCode = wcfAgent.InvokeServiceFunction("MeterBLL_ExistsEqptCode", Entity); if (isExistsEqptCode) { SetMessage("编码重复。"); return View("MeterEdit", saveModel); } //新增 result = wcfAgent.InvokeServiceFunction>("MeterBLL_Insert", Entity); } else { //修改 result = wcfAgent.InvokeServiceFunction>("MeterBLL_Update", Entity); } if (result.IsSuccess == false) { SetMessage(result.Msg); return View("MeterEdit", saveModel); } return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } catch (Exception ex) { throw ex; } } #endregion #region 删除 /// /// 删除 /// /// 结果 [HttpPost] [HandleException] public ActionResult Delete(MeterModel saveMode) { string selectKey = Request.Form["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { result = wcfAgent.InvokeServiceFunction>("MeterBLL_DeleteArray", selectKey); if (result.IsSuccess == false) { SetMessage(result.Msg); return List(true); } SetMessage(AppResource.DeleteMessage); return List(true); } catch (Exception ex) { throw ex; } } #endregion #region 明细 /// /// 加载列表 /// /// /// public ActionResult MeterReadingsConfig(bool? callBack) { MeterReadingsModel meterReadingsModel = new MeterReadingsModel(); meterReadingsModel.START_DATE = DateTime.Now.Date.AddMonths(-1).ToString("yyyy-MM-dd 00:00:00"); meterReadingsModel.END_DATE = DateTime.Now.Date.AddDays(1).ToString("yyyy-MM-dd 00:00:00"); string METER_PID = Request.Params["PID"]; string STATE = Request.Params["STATE"]; if (callBack == true) TryGetSelectBuffer(out meterReadingsModel); meterReadingsModel.rownumbers = false; meterReadingsModel.url = "/Meter/MeterReadingsList?METER_PID=" + METER_PID + "&STATE=" + STATE; meterReadingsModel.METER_PID = Request.Params["PID"]; meterReadingsModel.STATE = Request.Params["STATE"]; return View("MeterReadingsList", meterReadingsModel); } /// /// 获取列表 /// /// /// public ActionResult MeterReadingsList(bool? callBack) { MeterReadingsModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); MeterReadings condition = null; DataResult pageResult = new DataResult(); string METER_PID = Request.Params["METER_PID"]; string STATE = Request.Params["STATE"]; try { //获取查询对象 seachModel = GetModel(); #region 获取缓存值 if (callBack != null) { TryGetSelectBuffer(out seachModel); } else { //保存搜索条件 SetSelectBuffer(seachModel); } #endregion //获取前台分页设置信息 page = this.GetDataPage(seachModel); //if (string.IsNullOrEmpty(seachModel.METER_PID)) //{ // seachModel.METER_PID = METER_PID; //} //seachModel.STATE = STATE; condition = CopyToModel(seachModel); #region wcf服务统一接口 pageResult = wcfAgent.InvokeServiceFunction>("MeterBLL_MeterReadingsConfigList", condition, page); if (pageResult.IsSuccess == false) { SetMessage(pageResult.Msg); return MeterReadingsConfig(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; } } #region 编辑 /// /// 编辑载入 /// /// 处理结果 [HandleException] public ActionResult MeterReadingsEdit() { MeterReadingsModel model = new MeterReadingsModel(); string ID = Request.Params["PID"]; model.METER_PID = Request.Params["METER_PID"]; model.STATE = Request.Params["STATE"]; MeterReadings Entity = new MeterReadings(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { if (string.IsNullOrEmpty(ID) == false) { //修改获取原数据 Entity.PID = ID; result = wcfAgent.InvokeServiceFunction>("MeterBLL_GetMeterReadings", Entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return View("MeterReadingsEdit", model); } model = CopyToModel(result.Result); } return View("MeterReadingsEdit", model); } catch (Exception ex) { throw ex; } } #endregion #region 保存 /// /// 保存 /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult MeterReadingsSave(MeterReadingsModel saveModel) { MeterReadings Entity = null; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { Entity = CopyToModel(saveModel); if (string.IsNullOrEmpty(Entity.PID) == true) { //新增 result = wcfAgent.InvokeServiceFunction>("MeterBLL_InsertMeterReadings", Entity); } else { //修改 result = wcfAgent.InvokeServiceFunction>("MeterBLL_UpdateMeterReadings", Entity); } if (result.IsSuccess == false) { SetMessage(result.Msg); return View("MeterReadingsEdit", saveModel); } return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } catch (Exception ex) { throw ex; } } #endregion #region 删除 /// /// 删除 /// /// 结果 [HttpPost] [HandleException] public ActionResult MeterReadingsDelete(MeterReadingsModel saveMode) { MeterReadingsModel model = new MeterReadingsModel(); string selectKey = Request.Form["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { var mrdOne = wcfAgent.InvokeServiceFunction>("MeterBLL_GetMeterReadings", new MeterReadings { PID = selectKey }); model.METER_PID = mrdOne.Result.METER_PID; model.STATE = mrdOne.Result.READ_RESULT; model.rownumbers = false; model.url = "/Meter/MeterReadingsList?METER_PID=" + model.METER_PID + "&STATE=" + model.STATE; result = wcfAgent.InvokeServiceFunction>("MeterBLL_DeleteMeterReadings", selectKey); if (result.IsSuccess == false) { SetMessage(result.Msg); //return MeterReadingsConfig(true); //return View("MeterReadingsList", MeterReadingsModel); return View("MeterReadingsList", model); } SetMessage(AppResource.DeleteMessage); //return MeterReadingsConfig(true); return View("MeterReadingsList", model); } catch (Exception ex) { throw ex; } } #endregion #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HandleException] public ActionResult ExportExcel() { MeterModel seachModel = null; Meter condition = null; DataTable exportDt = new DataTable(); string selectKey = Request["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); //获取数据 var dataResult = wcfAgent.InvokeServiceFunction>("MeterReadingsBLL_GetExportData", condition); //通过返回dataResult判断 if (dataResult.Ex != null) { throw dataResult.Ex; } else if (dataResult.IsSuccess) { exportDt = dataResult.Result; } else { SetMessage(dataResult.Msg); return List(true); } //根据所选信息进行导出 if (!String.IsNullOrEmpty(selectKey)) { DataView dv = new DataView(exportDt); 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; exportDt = dv.ToTable(); } //导出 IEExcelHelper ieExcelHelper = new IEExcelHelper(); var sheetInfo = ieExcelHelper.GetMainInfo("EqptConsumeExp"); var fileName = System.Guid.NewGuid().ToString() + ".xlsx"; ieExcelHelper.ExportExcel(sheetInfo, exportDt, QMAPP.Web.Common.ExcelOperationHelper.GetTempPath() + fileName, true); return Content(fileName); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo { ErrorInfo = ex, Info = "导出excel", Tag = "设备耗能统计" }); SetMessage("导出excel失败"); return List(true); } } /// /// 导出文件 /// /// public ActionResult ExportFile() { String filePath = QMAPP.Web.Common.ExcelOperationHelper.GetTempPath(); String fileName = Request["FileName"]; QMAPP.Web.Common.ExcelOperationHelper.FileDownload(Response, filePath + fileName, "设备耗能统计.xlsx"); return Content(""); } #endregion #region 获取维护状态下拉列表 /// /// 获取统计标识下拉列表 /// /// public ContentResult GetStateComboxSource() { ComboboxResult model = new ComboboxResult(); model.Add(new ComboboxItem { ID = "", Text = new DictController().EmptyItemTitle }); //model.Add(new ComboboxItem { ID = "0", Text = "作废" }); model.Add(new ComboboxItem { ID = "1", Text = "自动" }); model.Add(new ComboboxItem { ID = "2", Text = "手动" }); return Content(model.ToString()); } #endregion #region 获取维护状态下拉列表 /// /// 获取统计标识下拉列表 /// /// public ContentResult GetTypeComboxSource() { ComboboxResult model = new ComboboxResult(); model.Add(new ComboboxItem { ID = "", Text = new DictController().EmptyItemTitle }); model.Add(new ComboboxItem { ID = "0", Text = "电" }); model.Add(new ComboboxItem { ID = "1", Text = "水" }); model.Add(new ComboboxItem { ID = "2", Text = "气" }); return Content(model.ToString()); } #endregion #region 获取全部设备下拉列表 /// /// 获取全部工序下拉列表 /// /// 数据源 [HandleException] public ActionResult GetMachineListComboxSource() { ServiceAgent wcfAgent = this.GetServiceAgent(); try { var machineList = wcfAgent.InvokeServiceFunction> ("MachineInfoBLL_GetMachineList"); ComboboxResult model = new ComboboxResult(); string EmptyItemTitle = " "; model.Add(new ComboboxItem { ID = "", Text = EmptyItemTitle }); foreach (MachineInfo item in machineList) { model.Add(new ComboboxItem { ID = item.MACHINECODDE, Text = item.MACHINENAME }); } return Content(model.ToString()); } catch (Exception ex) { throw ex; } } #endregion } }