PartitionSettingService.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. using LeaRun.Application.Entity.DMAManage;
  2. using LeaRun.Data;
  3. using LeaRun.Util;
  4. using LeaRun.Util.WebControl;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace LeaRun.Application.Service.DMAManage
  12. {
  13. /// <summary>
  14. /// 分区设置
  15. /// </summary>
  16. public class PartitionSettingService
  17. {
  18. SqlHelper sqlHelper = new SqlHelper("DMADb");
  19. #region 获取关系表数据
  20. /// <summary>
  21. /// 获取关系表数据
  22. /// </summary>
  23. /// <param name="pagination"></param>
  24. /// <param name="keyType"></param>
  25. /// <param name="keyWord"></param>
  26. /// <param name="DMAID"></param>
  27. /// <param name="FlowType"></param>
  28. /// <returns></returns>
  29. public string GetDMAMeterRelations(Pagination pagination, string keyType, string keyWord, string DMAID, string FlowType)
  30. {
  31. var watch = CommonHelper.TimerStart();
  32. var where = " where D.MeterAssessmentId = M.MeterAssessmentId and FlowType = " + FlowType + " and D.DMAID = " + DMAID;
  33. if (!String.IsNullOrEmpty(keyWord) && !String.IsNullOrEmpty(keyType))
  34. {
  35. where = " Where " + keyType + " Like '%" + keyWord + "%' and D.MeterAssessmentId = M.MeterAssessmentId and DMAID = " + DMAID + "and FlowType = " + FlowType;
  36. }
  37. List<DMAMeterRelationEntity> list = GetDMAMeterRelationData(pagination, where);
  38. var JsonData = new
  39. {
  40. rows = list,
  41. total = pagination.total,
  42. page = pagination.page,
  43. records = pagination.records,
  44. costtime = CommonHelper.TimerEnd(watch)
  45. };
  46. return JsonData.ToJson();
  47. }
  48. #endregion
  49. #region 查询关系表数据分页
  50. /// <summary>
  51. /// 查询关系表数据分页
  52. /// </summary>
  53. /// <param name="pagination"></param>
  54. /// <param name="where"></param>
  55. /// <returns></returns>
  56. private List<DMAMeterRelationEntity> GetDMAMeterRelationData(Pagination pagination, string where)
  57. {
  58. try
  59. {
  60. string sql = " select count(1) from DMAMeterRelation D, MeterAssessmentBase M " + where;
  61. pagination.records = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, null));
  62. int start = (pagination.page - 1) * pagination.rows + 1;
  63. int end = pagination.page * pagination.rows;
  64. sql = "SELECT RelationID, DMAID, MeterAssessmentId, MeterAssessmentName, MeterAssessmentCode FROM " +
  65. "( " +
  66. "SELECT " +
  67. " ROW_NUMBER() OVER(ORDER BY RelationID) AS RowIndex," +
  68. " * " +
  69. "FROM " +
  70. " (select D.DMAID, D.RelationID, M.MeterAssessmentId, M.MeterAssessmentName, M.MeterAssessmentCode " +
  71. " From DMAMeterRelation D, MeterAssessmentBase M " + where + ") as mytable " +
  72. " )" +
  73. " AS PageTable " +
  74. " WHERE RowIndex BETWEEN " + start + " AND " + end;
  75. DataTable dt = sqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
  76. if (dt.Rows.Count == 0)
  77. {
  78. return null;
  79. }
  80. List<DMAMeterRelationEntity> list = DataHelper.DataTableToT<DMAMeterRelationEntity>(dt);
  81. return list;
  82. }
  83. catch (Exception e)
  84. {
  85. throw e;
  86. }
  87. }
  88. #endregion
  89. #region 获取考核表数据
  90. /// <summary>
  91. /// 获取考核表数据
  92. /// </summary>
  93. /// <param name="pagination"></param>
  94. /// <param name="keyType"></param>
  95. /// <param name="keyWord"></param>
  96. /// <param name="DMAID"></param>
  97. /// <returns></returns>
  98. public string GetMeterAssessments(Pagination pagination, string keyType, string keyWord, string DMAID)
  99. {
  100. var watch = CommonHelper.TimerStart();
  101. var where = " where not exists (select MeterAssessmentId from DMAMeterRelation where MeterAssessmentBase.MeterAssessmentId = DMAMeterRelation.MeterAssessmentId and DMAID = " + DMAID + ") and DeleteMark = 0 ";
  102. if (!String.IsNullOrEmpty(keyWord) && !String.IsNullOrEmpty(keyType))
  103. {
  104. where += " and " + keyType + " Like '%" + keyWord + "%'";
  105. }
  106. List<MeterAssessmentEntity> list = GetMetersData(pagination, where);
  107. var JsonData = new
  108. {
  109. rows = list,
  110. total = pagination.total,
  111. page = pagination.page,
  112. records = pagination.records,
  113. costtime = CommonHelper.TimerEnd(watch)
  114. };
  115. return JsonData.ToJson();
  116. }
  117. #endregion
  118. #region 查询数据分页
  119. /// <summary>
  120. /// 查询数据分页
  121. /// </summary>
  122. /// <param name="pagination"></param>
  123. /// <param name="where"></param>
  124. /// <returns></returns>
  125. private List<MeterAssessmentEntity> GetMetersData(Pagination pagination, string where)
  126. {
  127. try
  128. {
  129. string sql = " select count(1) from MeterAssessmentBase " + where;
  130. pagination.records = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, null));
  131. int start = (pagination.page - 1) * pagination.rows + 1;
  132. int end = pagination.page * pagination.rows;
  133. sql = "SELECT * FROM " +
  134. "( " +
  135. "SELECT " +
  136. " ROW_NUMBER() OVER(ORDER BY MeterAssessmentId) AS RowIndex," +
  137. " * " +
  138. "FROM " +
  139. " (select MeterAssessmentId, MeterAssessmentName, MeterAssessmentCode " +
  140. " From MeterAssessmentBase " + where + ") as mytable " +
  141. " )" +
  142. " AS PageTable " +
  143. " WHERE RowIndex BETWEEN " + start + " AND " + end;
  144. DataTable dt = sqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
  145. if (dt.Rows.Count == 0)
  146. {
  147. return null;
  148. }
  149. List<MeterAssessmentEntity> list = DataHelper.DataTableToT<MeterAssessmentEntity>(dt);
  150. return list;
  151. }
  152. catch (Exception e)
  153. {
  154. throw e;
  155. }
  156. }
  157. #endregion
  158. #region 考核表ID插入到关系表中 考核表 -> 关系表
  159. /// <summary>
  160. /// 考核表ID插入到关系表中 考核表 -> 关系表
  161. /// </summary>
  162. /// <param name="meterIds"></param>
  163. /// <param name="DMAID"></param>
  164. /// <param name="OperatorID"></param>
  165. /// <param name="OrganizeId"></param>
  166. /// <param name="FlowType"></param>
  167. /// <returns></returns>
  168. public string SettingInMeterToRelation(string[] meterIds, string DMAID, string OperatorID, string OrganizeId, string FlowType)
  169. {
  170. string result = "";
  171. foreach (var meterId in meterIds)
  172. {
  173. // 是否开启验证
  174. //string sql = "Select Count(1) from DMAMeterRelation where MeterAssessmentId = " + meterId + " and DMAID = " + DMAID + " and FlowType = 1";
  175. StringBuilder sb = new StringBuilder("Insert into DMAMeterRelation (DMAID, MeterAssessmentId, FlowType, OperatorID, OrganizeId, DeleteMark, EnabledMark) Values ( ");
  176. sb.Append(DMAID + ", ");
  177. sb.Append(meterId + ", ");
  178. sb.Append(FlowType + ", ");
  179. sb.Append("'" + OperatorID + "', ");
  180. sb.Append("'" + OrganizeId + "', ");
  181. sb.Append("0, ");
  182. sb.Append("1)");
  183. try
  184. {
  185. if (sqlHelper.ExecuteNoParams(sb.ToString(), CommandType.Text) < 1)
  186. {
  187. result += "数据插入失败,失败考核表ID=" + meterId + ",";
  188. }
  189. }
  190. catch (Exception)
  191. {
  192. result += "数据插入失败,失败考核表ID=" + meterId + ",";
  193. }
  194. }
  195. return result;
  196. }
  197. #endregion
  198. #region 关系表插入到考核表中 关系表 -> 考核表
  199. /// <summary>
  200. /// 入口水表挂接关系表插入到考核表中 关系表 -> 考核表
  201. /// </summary>
  202. /// <param name="meterIds"></param>
  203. /// <param name="DMAID"></param>
  204. /// <returns></returns>
  205. public string SettingInRelationToMeter(string[] meterIds, string DMAID)
  206. {
  207. string result = "";
  208. foreach (var meterId in meterIds)
  209. {
  210. // 是否开启验证
  211. StringBuilder sb = new StringBuilder("delete from DMAMeterRelation where ");
  212. sb.Append(" MeterAssessmentId = " + meterId);
  213. sb.Append(" and DMAID = " + DMAID);
  214. try
  215. {
  216. if (sqlHelper.ExecuteNoParams(sb.ToString(), CommandType.Text) < 1)
  217. {
  218. result += "数据删除失败,失败考核表ID=" + meterId + ",";
  219. }
  220. }
  221. catch (Exception)
  222. {
  223. result += "数据删除失败,失败考核表ID=" + meterId + ",";
  224. }
  225. }
  226. return result;
  227. }
  228. #endregion
  229. #region 获取户表挂接数据
  230. /// <summary>
  231. /// 获取户表挂接数据
  232. /// </summary>
  233. /// <param name="pagination"></param>
  234. /// <param name="keyType"></param>
  235. /// <param name="keyWord"></param>
  236. /// <param name="DMAID"></param>
  237. /// <returns></returns>
  238. public string GetDMAMeterUsers(Pagination pagination, string keyType, string keyWord, string DMAID)
  239. {
  240. var watch = CommonHelper.TimerStart();
  241. var where = " where DMAID = " + DMAID;
  242. if (!String.IsNullOrEmpty(keyWord) && !String.IsNullOrEmpty(keyType))
  243. {
  244. where = " Where " + keyType + " Like '%" + keyWord + "%' and DMAID = " + DMAID;
  245. }
  246. List<MeterUserEntity> list = GetDMAMeterUsersData(pagination, where);
  247. var JsonData = new
  248. {
  249. rows = list,
  250. total = pagination.total,
  251. page = pagination.page,
  252. records = pagination.records,
  253. costtime = CommonHelper.TimerEnd(watch)
  254. };
  255. return JsonData.ToJson();
  256. }
  257. #endregion
  258. #region 获取户表挂接数据分页
  259. /// <summary>
  260. /// 获取户表挂接数据分页
  261. /// </summary>
  262. /// <param name="pagination"></param>
  263. /// <param name="where"></param>
  264. /// <returns></returns>
  265. private List<MeterUserEntity> GetDMAMeterUsersData(Pagination pagination, string where)
  266. {
  267. try
  268. {
  269. string sql = " select count(1) from MeterUserBase " + where;
  270. pagination.records = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, null));
  271. int start = (pagination.page - 1) * pagination.rows + 1;
  272. int end = pagination.page * pagination.rows;
  273. sql = "SELECT * FROM " +
  274. "( " +
  275. "SELECT " +
  276. " ROW_NUMBER() OVER(ORDER BY MeterUserId) AS RowIndex," +
  277. " * " +
  278. "FROM " +
  279. " (select MeterUserId, ClientNo, ClientName, MeterCode, MeterAddress " +
  280. " From MeterUserBase " + where + ") as mytable " +
  281. " )" +
  282. " AS PageTable " +
  283. " WHERE RowIndex BETWEEN " + start + " AND " + end;
  284. DataTable dt = sqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
  285. if (dt.Rows.Count == 0)
  286. {
  287. return null;
  288. }
  289. List<MeterUserEntity> list = DataHelper.DataTableToT<MeterUserEntity>(dt);
  290. return list;
  291. }
  292. catch (Exception )
  293. {
  294. throw;
  295. }
  296. }
  297. #endregion
  298. #region 获取可以挂接用户的数据
  299. /// <summary>
  300. /// 获取可以挂接用户的数据
  301. /// </summary>
  302. /// <param name="pagination"></param>
  303. /// <param name="keyType"></param>
  304. /// <param name="keyWord"></param>
  305. /// <returns></returns>
  306. public string GetMeterUsers(Pagination pagination, string keyType, string keyWord)
  307. {
  308. var watch = CommonHelper.TimerStart();
  309. var where = " where DMAID IS NULL ";
  310. if (!String.IsNullOrEmpty(keyWord) && !String.IsNullOrEmpty(keyType))
  311. {
  312. where = " Where " + keyType + " Like '%" + keyWord + "%' and DMAID IS NULL ";
  313. }
  314. List<MeterUserEntity> list = GetDMAMeterUsersData(pagination, where);
  315. var JsonData = new
  316. {
  317. rows = list,
  318. total = pagination.total,
  319. page = pagination.page,
  320. records = pagination.records,
  321. costtime = CommonHelper.TimerEnd(watch)
  322. };
  323. return JsonData.ToJson();
  324. }
  325. #endregion
  326. #region 获取可以挂接用户的数据分页
  327. /// <summary>
  328. /// 获取可以挂接用户的数据分页
  329. /// </summary>
  330. /// <param name="pagination"></param>
  331. /// <param name="where"></param>
  332. /// <returns></returns>
  333. private List<MeterUserEntity> GetMeterUsersData(Pagination pagination, string where)
  334. {
  335. try
  336. {
  337. string sql = " select count(1) from MeterUserBase " + where;
  338. pagination.records = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, null));
  339. int start = (pagination.page - 1) * pagination.rows + 1;
  340. int end = pagination.page * pagination.rows;
  341. sql = "SELECT * FROM " +
  342. "( " +
  343. "SELECT " +
  344. " ROW_NUMBER() OVER(ORDER BY MeterUserId) AS RowIndex," +
  345. " * " +
  346. "FROM " +
  347. " (select MeterUserId, ClientNo, ClientName, MeterCode, MeterAddress " +
  348. " From MeterUserBase " + where + ") as mytable " +
  349. " )" +
  350. " AS PageTable " +
  351. " WHERE RowIndex BETWEEN " + start + " AND " + end;
  352. DataTable dt = sqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
  353. if (dt.Rows.Count == 0)
  354. {
  355. return null;
  356. }
  357. List<MeterUserEntity> list = DataHelper.DataTableToT<MeterUserEntity>(dt);
  358. return list;
  359. }
  360. catch (Exception)
  361. {
  362. throw;
  363. }
  364. }
  365. #endregion
  366. #region 户表插入
  367. /// <summary>
  368. /// 户表插入
  369. /// </summary>
  370. /// <param name="meterIds"></param>
  371. /// <param name="DMAID"></param>
  372. /// <returns></returns>
  373. public string SettingMeterUserIn(string[] meterIds, string DMAID)
  374. {
  375. string result = "";
  376. foreach (var meterId in meterIds)
  377. {
  378. // 是否开启验证
  379. string sql = "update MeterUserBase set DMAID = " + DMAID + " where MeterUserId = " + meterId;
  380. try
  381. {
  382. if (sqlHelper.ExecuteNoParams(sql, CommandType.Text) < 1)
  383. {
  384. result += "数据更新失败,失败户表ID=" + meterId + ",";
  385. }
  386. }
  387. catch (Exception)
  388. {
  389. result += "数据更新失败,失败户表ID=" + meterId + ",";
  390. }
  391. }
  392. return result;
  393. }
  394. #endregion
  395. #region 户表删除
  396. /// <summary>
  397. /// 户表删除
  398. /// </summary>
  399. /// <param name="meterIds"></param>
  400. /// <returns></returns>
  401. public string SettingMeterUserOut(string[] meterIds)
  402. {
  403. string result = "";
  404. foreach (var meterId in meterIds)
  405. {
  406. // 是否开启验证
  407. string sql = "update MeterUserBase set DMAID = NULL where MeterUserId = " + meterId;
  408. try
  409. {
  410. if (sqlHelper.ExecuteNoParams(sql, CommandType.Text) < 1)
  411. {
  412. result += "数据更新失败,失败户表ID=" + meterId + ",";
  413. }
  414. }
  415. catch (Exception)
  416. {
  417. result += "数据更新失败,失败户表ID=" + meterId + ",";
  418. }
  419. }
  420. return result;
  421. }
  422. #endregion
  423. }
  424. }