DevCmdRepository.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. using Ropin.Inspection.Model.Entities;
  2. using Ropin.Inspection.Model.SearchModel.DEV;
  3. using Ropin.Inspection.Model.ViewModel.DEV;
  4. using Ropin.Inspection.Repository.DEV.Interface;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Ropin.Inspection.Repository.DEV
  11. {
  12. //命令
  13. public class DevCmdRepository : RepositoryBase<TDEV_Cmd, string>, IDevCmdRepository
  14. {
  15. public DevCmdRepository(InspectionDbContext DbContext) : base(DbContext)
  16. {
  17. }
  18. public Task<IEnumerable<DevCmdViewModel>> GetConditionAsync(DevCmdSearchModel searchModel)
  19. {
  20. MySqlConnector.MySqlParameter[] parameters = new[] {
  21. new MySqlConnector.MySqlParameter("name", "%"+searchModel?.C_Name+"%"),
  22. new MySqlConnector.MySqlParameter("type", searchModel.C_Type),
  23. new MySqlConnector.MySqlParameter("orgCode", searchModel.C_OrgCode),
  24. new MySqlConnector.MySqlParameter("status", searchModel.C_Status),
  25. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID)
  26. };
  27. StringBuilder sql = new StringBuilder();
  28. sql.Append(@"select * from(
  29. select c.*,d.C_Name as C_TypeName,o.C_Name as C_OrgName from TDEV_Cmd c
  30. LEFT JOIN TBDM_CodeDetail d on (c.C_Type=d.C_Code)
  31. LEFT JOIN TSYS_Org o on (c.C_OrgCode=o.C_Code)
  32. ) tab where 1=1");
  33. if (!string.IsNullOrEmpty(searchModel.C_Status))
  34. {
  35. sql.Append(" and C_Status=@status ");
  36. }
  37. if (!string.IsNullOrEmpty(searchModel.C_Name))
  38. {
  39. sql.Append(" and C_Name like @name");
  40. }
  41. if (!string.IsNullOrEmpty(searchModel.C_Type))
  42. {
  43. sql.Append(" and C_Type=@type ");
  44. }
  45. if (!string.IsNullOrEmpty(searchModel.C_OrgCode))
  46. {
  47. sql.Append(" and C_OrgCode=@orgCode ");
  48. }
  49. if (!string.IsNullOrEmpty(searchModel.C_ID))
  50. {
  51. sql.Append(" and C_ID=@Id ");
  52. }
  53. sql.Append(" order by D_CreateOn desc ");
  54. IEnumerable<DevCmdViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<DevCmdViewModel>(DbContext.Database, sql.ToString(), parameters);
  55. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  56. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  57. {
  58. recordItemlist = null;
  59. }
  60. return Task.FromResult(searchModel.IsPagination ? recordItemlist?.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  61. }
  62. }
  63. //指令
  64. public class DevInstructionRepository : RepositoryBase<TDEV_Instruction, string>, IDevInstructionRepository
  65. {
  66. public DevInstructionRepository(InspectionDbContext DbContext) : base(DbContext)
  67. {
  68. }
  69. public Task<IEnumerable<DevInstructionViewModel>> GetConditionAsync(DevInstructionSearchModel searchModel)
  70. {
  71. MySqlConnector.MySqlParameter[] parameters = new[] {
  72. new MySqlConnector.MySqlParameter("name", "%"+searchModel?.C_Name+"%"),
  73. new MySqlConnector.MySqlParameter("protocol", searchModel.C_Protocol),
  74. new MySqlConnector.MySqlParameter("boxCode", searchModel.C_BoxCode),
  75. new MySqlConnector.MySqlParameter("status", searchModel.C_Status),
  76. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID),
  77. new MySqlConnector.MySqlParameter("cmdCode", searchModel.CmdCode)
  78. };
  79. StringBuilder sql = new StringBuilder();
  80. sql.Append(@"select * from(
  81. select t.*,d.C_Name as C_ProtocolName,b.C_Name as C_BoxName,cI.C_CmdCode,cI.I_ExeOrder from TDEV_Instruction t
  82. LEFT JOIN TBDM_CodeDetail d on (t.C_Protocol=d.C_Code)
  83. LEFT JOIN TDEV_Box b on (t.C_BoxCode=b.C_ID)
  84. LEFT JOIN TDEV_CmdInstruction cI on (cI.C_Instruction=t.C_ID)
  85. )tab where 1=1");
  86. if (!string.IsNullOrEmpty(searchModel.C_Status))
  87. {
  88. sql.Append(" and C_Status=@status ");
  89. }
  90. if (!string.IsNullOrEmpty(searchModel.C_Name))
  91. {
  92. sql.Append(" and C_Name like @name");
  93. }
  94. if (!string.IsNullOrEmpty(searchModel.C_Protocol))
  95. {
  96. sql.Append(" and C_Protocol=@protocol ");
  97. }
  98. if (!string.IsNullOrEmpty(searchModel.C_BoxCode))
  99. {
  100. sql.Append(" and C_BoxCode=@boxCode ");
  101. }
  102. if (!string.IsNullOrEmpty(searchModel.C_ID))
  103. {
  104. sql.Append(" and C_ID=@Id ");
  105. }
  106. if (!string.IsNullOrEmpty(searchModel.CmdCode))
  107. {
  108. sql.Append(" and C_CmdCode=@cmdCode ");
  109. }
  110. sql.Append(" order by D_CreateOn desc ");
  111. IEnumerable<DevInstructionViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<DevInstructionViewModel>(DbContext.Database, sql.ToString(), parameters);
  112. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  113. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  114. {
  115. recordItemlist = null;
  116. }
  117. return Task.FromResult(searchModel.IsPagination ? recordItemlist?.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  118. }
  119. /// <summary>
  120. /// 根据命令获取指令信息
  121. /// </summary>
  122. /// <param name="searchModel"></param>
  123. /// <returns></returns>
  124. public Task<List<DevInstructionInfo>> GetInstructionByCmdCode(DevInstructionSearchModel searchModel)
  125. {
  126. MySqlConnector.MySqlParameter[] parameters = new[] {
  127. new MySqlConnector.MySqlParameter("cmdCode", searchModel.CmdCode)
  128. };
  129. StringBuilder sql = new StringBuilder();
  130. sql.Append(@"select * from (
  131. select cI.C_CmdCode,cI.I_ExeOrder,I.*
  132. from TDEV_CmdInstruction cI
  133. LEFT JOIN TDEV_Instruction I on (cI.C_Instruction=I.C_ID)
  134. ) tab
  135. where C_Status='1'
  136. and C_CmdCode=@cmdCode
  137. order by I_ExeOrder asc");
  138. IEnumerable<DevInstructionInfo> recordItemlist = EntityFrameworkCoreExtensions.GetList<DevInstructionInfo>(DbContext.Database, sql.ToString(), parameters);
  139. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  140. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  141. {
  142. recordItemlist = null;
  143. }
  144. return Task.FromResult(recordItemlist?.ToList());
  145. }
  146. }
  147. //命令-指令
  148. public class DevCmdInstructionRepository : RepositoryBase<TDEV_CmdInstruction, string>, IDevCmdInstructionRepository
  149. {
  150. public DevCmdInstructionRepository(InspectionDbContext DbContext) : base(DbContext)
  151. {
  152. }
  153. public Task<IEnumerable<DevCmdInstructionViewModel>> GetConditionAsync(DevCmdInstructionSearchModel searchModel)
  154. {
  155. MySqlConnector.MySqlParameter[] parameters = new[] {
  156. new MySqlConnector.MySqlParameter("cmdCode", searchModel.C_CmdCode),
  157. new MySqlConnector.MySqlParameter("cmdName", "%"+searchModel?.C_CmdName+"%"),
  158. new MySqlConnector.MySqlParameter("instruction", searchModel.C_Instruction),
  159. new MySqlConnector.MySqlParameter("InstructionName", "%"+searchModel?.C_InstructionName+"%"),
  160. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID)
  161. };
  162. StringBuilder sql = new StringBuilder();
  163. sql.Append(@"select * from (
  164. select t.*,c.C_Name as C_CmdName,i.C_Name as C_InstructionName from TDEV_CmdInstruction t
  165. LEFT JOIN TDEV_Cmd c on (t.C_CmdCode=c.C_ID)
  166. LEFT JOIN TDEV_Instruction i on (t.C_Instruction=i.C_ID)
  167. ) tab where 1=1");
  168. if (!string.IsNullOrEmpty(searchModel.C_CmdCode))
  169. {
  170. sql.Append(" and C_CmdCode=@cmdCode ");
  171. }
  172. if (!string.IsNullOrEmpty(searchModel.C_CmdName))
  173. {
  174. sql.Append(" and C_CmdName like @cmdName ");
  175. }
  176. if (!string.IsNullOrEmpty(searchModel.C_Instruction))
  177. {
  178. sql.Append(" and C_Instruction=@instruction ");
  179. }
  180. if (!string.IsNullOrEmpty(searchModel.C_InstructionName))
  181. {
  182. sql.Append(" and C_InstructionName like @InstructionName ");
  183. }
  184. if (!string.IsNullOrEmpty(searchModel.C_ID))
  185. {
  186. sql.Append(" and C_ID=@Id ");
  187. }
  188. sql.Append(" order by D_CreateOn desc ");
  189. IEnumerable<DevCmdInstructionViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<DevCmdInstructionViewModel>(DbContext.Database, sql.ToString(), parameters);
  190. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  191. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  192. {
  193. recordItemlist = null;
  194. }
  195. return Task.FromResult(searchModel.IsPagination ? recordItemlist?.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  196. }
  197. public Task<bool> DeleteBYCmdCode(string cmdCode)
  198. {
  199. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("cmdCode", cmdCode) };
  200. string sql = "DELETE FROM TDEV_CmdInstruction where C_CmdCode=@cmdCode ";
  201. int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  202. return Task.FromResult(true);
  203. }
  204. public Task<bool> DeleteBYInstruction(string Instruction)
  205. {
  206. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Instruction", Instruction) };
  207. string sql = "DELETE FROM TDEV_CmdInstruction where C_Instruction=@Instruction ";
  208. int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  209. return Task.FromResult(true);
  210. }
  211. }
  212. }