using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Central.Control.Domain; using System.Collections; using MES.Production.Service.IService; using Ant.Service.Common; using System.Linq.Expressions; using Ant.Service.Common.Enums; using ChangFa.Machinery.WebPage.Controllers; using MES.Production.Entity.Entity; using MES.Production.Entity.Extensions; using Ant.Service.Utility; namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers { /// /// 控制器描述:对岗位信息的CURD管理 /// 创建标识:add by 季健国 2013-8-2 10:20 /// public class DeviceSetController : BaseController { #region 基本视图 /// /// 加载列表 /// /// [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "View")] public ActionResult Index() { try { #region 处理查询参数 #endregion #region 加载列表 var result = BindList(); ViewBag.Search = base.keywords; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载设备列表:", e); throw e.InnerException; } } /// /// 绑定页面需要的属性 /// public PageInfo BindList() { using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM()) { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); Ant.ORM.RequestModel request = new Ant.ORM.RequestModel(); request.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-BindList" }; var query = orm.Queryable().Where(p => p.IsDelete == 0); // 检索条件 query = query.WhereIf(!string.IsNullOrEmpty(keywords), p => p.Name.Contains(keywords)); // 分页查询 var skipLimit = PageCollection.GetSkipLimit(base.page, base.pagesize); // 具体查询 var list = query.OrderByDesc(o => o.ModifyDT).Skip(skipLimit.Item1).Top(skipLimit.Item2).ToList(request); // 查出总数 var total = query.Count(); return new PageInfo(base.page, base.pagesize, total, list.ResultModel); } } /// /// 加载详情 /// /// [HttpGet] [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Detail")] public ActionResult Detail(string id) { using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM()) { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); var result = orm.Queryable().Where(p => p.Id == id).FirstOrDefault(); var _entity = result.ResultModel as SYS_Device ?? new SYS_Device(); return View(_entity); } } /// /// 保存岗位 /// [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Add,Edit")] public ActionResult Save(SYS_Device entity) { Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel(); sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Save" }; bool isEdit = false; JsonHelper json = new JsonHelper() { Msg = "保存设备成功", Status = "n", ReUrl = "/DeviceSet/Index" }; try { if (entity != null) { Ant.ORM.AntORM orm = new Ant.ORM.AntORM(); orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); var _entity = new SYS_Device(); //添加 if (string.IsNullOrEmpty(entity.Id)) { string id = IdGenerator.NewId(); _entity = entity; _entity.Id = id; _entity.Password = id; _entity.CreateDT = DateTime.Now; _entity.CreateBY = CurrentUser.Id.ToString(); _entity.ModifyDT = DateTime.Now; } else //修改 { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); var result = orm.GetEntity(entity, sqlQueryReq); _entity = entity; _entity.Name = entity.Name; _entity.Code = entity.Code; _entity.Address = entity.Address; _entity.ModifyDT = DateTime.Now; _entity.ModifyBY = CurrentUser.Id.ToString(); isEdit = true; } //判断岗位是否重名 var sqlQuery = orm.Queryable().Where(p => p.Code == entity.Code && p.Id != entity.Id).ToList(); List sames = sqlQuery.ResultModel; if (sames?.Count > 0) { json.Msg = $"设备编码{entity.Code}已存在,不能重复添加"; } else { Ant.ORM.ResponseModel saveResult = new Ant.ORM.ResponseModel(); if (isEdit) { saveResult = orm.UpdateByLambda(_entity, p => p.Id == _entity.Id, sqlQueryReq); } else { saveResult = orm.Save(_entity, sqlQueryReq); } if (saveResult.IsSuccess) { json.Status = "y"; } else { json.Msg = "保存失败"; } } orm.Dispose(); } else { json.Msg = "未找到需要保存的设备"; } if (isEdit) { WriteLog(enumOperator.Edit, "修改设备,结果:" + json.Msg, enumLog4net.INFO); } else { WriteLog(enumOperator.Add, "添加设备,结果:" + json.Msg, enumLog4net.INFO); } } catch (Exception e) { json.Msg = "设备岗位发生内部错误!"; WriteLog(enumOperator.None, "保存设备:", e); } return Json(json); } /// /// 删除岗位 /// [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Remove")] public ActionResult Delete(string idList) { JsonHelper json = new JsonHelper() { Msg = "删除设备完毕", Status = "n" }; try { if (!string.IsNullOrEmpty(idList)) { var ids = idList.Trim(',').Split(',').ToArray(); using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM()) { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel(); sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Delete" }; var queryResult = orm.Queryable().Where(p => ids.Contains(p.Id)).ToList(sqlQueryReq); List olds = queryResult?.ResultModel; olds?.ForEach(item => { item.IsDelete = 1; orm.UpdateByLambda(item, p => p.Id == item.Id, sqlQueryReq); }); json.Status = "y"; } } else { json.Msg = "未找到要删除的设备记录"; } WriteLog(enumOperator.Remove, "删除设备,结果:" + json.Msg, enumLog4net.WARN); } catch(Exception e) { json.Msg = "删除设备发生内部错误!"; WriteLog(enumOperator.Remove, "删除设备:", e); } return Json(json); } /// /// 加载详情 /// /// [HttpGet] [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "ShowPassword")] public ActionResult ShowPassword(string id) { using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM()) { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); var result = orm.Queryable().Where(p => p.Id == id).FirstOrDefault(); SYS_Device _entity = result.ResultModel; return View(_entity); } } #endregion } }