DeviceSetController.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using Central.Control.Domain;
  7. using System.Collections;
  8. using MES.Production.Service.IService;
  9. using Ant.Service.Common;
  10. using System.Linq.Expressions;
  11. using Ant.Service.Common.Enums;
  12. using ChangFa.Machinery.WebPage.Controllers;
  13. using MES.Production.Entity.Entity;
  14. using MES.Production.Entity.Extensions;
  15. using Ant.Service.Utility;
  16. namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
  17. {
  18. /// <summary>
  19. /// 控制器描述:对岗位信息的CURD管理
  20. /// 创建标识:add by 季健国 2013-8-2 10:20
  21. /// </summary>
  22. public class DeviceSetController : BaseController
  23. {
  24. #region 基本视图
  25. /// <summary>
  26. /// 加载列表
  27. /// </summary>
  28. /// <returns></returns>
  29. [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "View")]
  30. public ActionResult Index()
  31. {
  32. try
  33. {
  34. #region 处理查询参数
  35. #endregion
  36. #region 加载列表
  37. var result = BindList();
  38. ViewBag.Search = base.keywords;
  39. #endregion
  40. return View(result);
  41. }
  42. catch (Exception e)
  43. {
  44. WriteLog(enumOperator.Select, "加载设备列表:", e);
  45. throw e.InnerException;
  46. }
  47. }
  48. /// <summary>
  49. /// 绑定页面需要的属性
  50. /// </summary>
  51. public PageInfo BindList()
  52. {
  53. using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
  54. {
  55. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  56. Ant.ORM.RequestModel request = new Ant.ORM.RequestModel();
  57. request.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-BindList" };
  58. var query = orm.Queryable<SYS_Device>().Where(p => p.IsDelete == 0);
  59. // 检索条件
  60. query = query.WhereIf(!string.IsNullOrEmpty(keywords), p => p.Name.Contains(keywords));
  61. // 分页查询
  62. var skipLimit = PageCollection.GetSkipLimit(base.page, base.pagesize);
  63. // 具体查询
  64. var list = query.OrderByDesc(o => o.ModifyDT).Skip(skipLimit.Item1).Top(skipLimit.Item2).ToList(request);
  65. // 查出总数
  66. var total = query.Count();
  67. return new PageInfo(base.page, base.pagesize, total, list.ResultModel);
  68. }
  69. }
  70. /// <summary>
  71. /// 加载详情
  72. /// </summary>
  73. /// <returns></returns>
  74. [HttpGet]
  75. [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Detail")]
  76. public ActionResult Detail(string id)
  77. {
  78. using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
  79. {
  80. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  81. var result = orm.Queryable<SYS_Device>().Where(p => p.Id == id).FirstOrDefault();
  82. var _entity = result.ResultModel as SYS_Device ?? new SYS_Device();
  83. return View(_entity);
  84. }
  85. }
  86. /// <summary>
  87. /// 保存岗位
  88. /// </summary>
  89. [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Add,Edit")]
  90. public ActionResult Save(SYS_Device entity)
  91. {
  92. Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel();
  93. sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Save" };
  94. bool isEdit = false;
  95. JsonHelper json = new JsonHelper() { Msg = "保存设备成功", Status = "n", ReUrl = "/DeviceSet/Index" };
  96. try
  97. {
  98. if (entity != null)
  99. {
  100. Ant.ORM.AntORM orm = new Ant.ORM.AntORM();
  101. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  102. var _entity = new SYS_Device();
  103. //添加
  104. if (string.IsNullOrEmpty(entity.Id))
  105. {
  106. string id = IdGenerator.NewId();
  107. _entity = entity;
  108. _entity.Id = id;
  109. _entity.Password = id;
  110. _entity.CreateDT = DateTime.Now;
  111. _entity.CreateBY = CurrentUser.Id.ToString();
  112. _entity.ModifyDT = DateTime.Now;
  113. }
  114. else //修改
  115. {
  116. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  117. var result = orm.GetEntity(entity, sqlQueryReq);
  118. _entity = entity;
  119. _entity.Name = entity.Name;
  120. _entity.Code = entity.Code;
  121. _entity.Address = entity.Address;
  122. _entity.ModifyDT = DateTime.Now;
  123. _entity.ModifyBY = CurrentUser.Id.ToString();
  124. isEdit = true;
  125. }
  126. //判断岗位是否重名
  127. var sqlQuery = orm.Queryable<SYS_Device>().Where(p => p.Code == entity.Code && p.Id != entity.Id).ToList();
  128. List<SYS_Device> sames = sqlQuery.ResultModel;
  129. if (sames?.Count > 0)
  130. {
  131. json.Msg = $"设备编码{entity.Code}已存在,不能重复添加";
  132. }
  133. else
  134. {
  135. Ant.ORM.ResponseModel saveResult = new Ant.ORM.ResponseModel();
  136. if (isEdit)
  137. {
  138. saveResult = orm.UpdateByLambda(_entity, p => p.Id == _entity.Id, sqlQueryReq);
  139. }
  140. else
  141. {
  142. saveResult = orm.Save(_entity, sqlQueryReq);
  143. }
  144. if (saveResult.IsSuccess)
  145. {
  146. json.Status = "y";
  147. }
  148. else
  149. {
  150. json.Msg = "保存失败";
  151. }
  152. }
  153. orm.Dispose();
  154. }
  155. else
  156. {
  157. json.Msg = "未找到需要保存的设备";
  158. }
  159. if (isEdit)
  160. {
  161. WriteLog(enumOperator.Edit, "修改设备,结果:" + json.Msg, enumLog4net.INFO);
  162. }
  163. else
  164. {
  165. WriteLog(enumOperator.Add, "添加设备,结果:" + json.Msg, enumLog4net.INFO);
  166. }
  167. }
  168. catch (Exception e)
  169. {
  170. json.Msg = "设备岗位发生内部错误!";
  171. WriteLog(enumOperator.None, "保存设备:", e);
  172. }
  173. return Json(json);
  174. }
  175. /// <summary>
  176. /// 删除岗位
  177. /// </summary>
  178. [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Remove")]
  179. public ActionResult Delete(string idList)
  180. {
  181. JsonHelper json = new JsonHelper() { Msg = "删除设备完毕", Status = "n" };
  182. try
  183. {
  184. if (!string.IsNullOrEmpty(idList))
  185. {
  186. var ids = idList.Trim(',').Split(',').ToArray();
  187. using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
  188. {
  189. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  190. Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel();
  191. sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Delete" };
  192. var queryResult = orm.Queryable<SYS_Device>().Where(p => ids.Contains(p.Id)).ToList(sqlQueryReq);
  193. List<SYS_Device> olds = queryResult?.ResultModel;
  194. olds?.ForEach(item => {
  195. item.IsDelete = 1;
  196. orm.UpdateByLambda(item, p => p.Id == item.Id, sqlQueryReq);
  197. });
  198. json.Status = "y";
  199. }
  200. }
  201. else
  202. {
  203. json.Msg = "未找到要删除的设备记录";
  204. }
  205. WriteLog(enumOperator.Remove, "删除设备,结果:" + json.Msg, enumLog4net.WARN);
  206. }
  207. catch(Exception e)
  208. {
  209. json.Msg = "删除设备发生内部错误!";
  210. WriteLog(enumOperator.Remove, "删除设备:", e);
  211. }
  212. return Json(json);
  213. }
  214. /// <summary>
  215. /// 加载详情
  216. /// </summary>
  217. /// <returns></returns>
  218. [HttpGet]
  219. [UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "ShowPassword")]
  220. public ActionResult ShowPassword(string id)
  221. {
  222. using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
  223. {
  224. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  225. var result = orm.Queryable<SYS_Device>().Where(p => p.Id == id).FirstOrDefault();
  226. SYS_Device _entity = result.ResultModel;
  227. return View(_entity);
  228. }
  229. }
  230. #endregion
  231. }
  232. }