PowerMettersBaseProvider.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Winsoft.GOV.Framework.Model;
  7. using Dapper;
  8. using System.Data;
  9. namespace Winsoft.GOV.Framework.Provider
  10. {
  11. public class PowerMettersBaseProvider : BaseProvider<PowerMattersBase>
  12. {
  13. private static string cols = "QL_NAME, QL_INNER_CODE, OUGUID, QL_DEP, QL_STATE, QL_KIND";
  14. private static string sets = "QL_NAME=@QL_NAME, QL_DEP=@QL_DEP, OUGUID=@OUGUID, QL_STATE=@QL_STATE, QL_KIND=@QL_KIND";
  15. private static string vals = "@QL_NAME, @QL_INNER_CODE, @OUGUID, @QL_DEP, @QL_STATE, @QL_KIND";
  16. public void CreateTable()
  17. {
  18. string sql = "create table if not exists powermattersbase("
  19. + "QL_NAME varchar(200),"
  20. + "QL_INNER_CODE varchar(50),"
  21. + "QL_DEP varchar(50),"
  22. + "OUGUID varchar(50),"
  23. + "QL_KIND varchar(2),"
  24. + "QL_STATE varchar(1) DEFAULT '1'"
  25. + "); "
  26. + "call add_index('powermattersbase', 'index1', 'index1(QL_INNER_CODE, OUGUID)'); "
  27. + "call add_index('powermattersbase', 'index2', 'index2(QL_INNER_CODE)'); "
  28. + "call add_index('powermattersbase', 'index3', 'index3(OUGUID)'); "
  29. + "call add_index('powermattersbase', 'index4', 'index4(QL_STATE, OUGUID); "
  30. + "call add_index('powermattersbase', 'index5', 'index5(QL_STATE, QL_KIND); ";
  31. using (var con = GetDbConnection())
  32. {
  33. con.Execute(sql);
  34. }
  35. }
  36. public PowerMettersBaseProvider(County county) : base(county)
  37. {
  38. }
  39. public void DeleteAll()
  40. {
  41. using (IDbConnection connection = GetDbConnection())
  42. {
  43. connection.Execute("delete from powermattersbase");
  44. }
  45. }
  46. public IEnumerable<PowerMattersBase> FindByBranchGUID(string guid)
  47. {
  48. //string sql = "select " + cols + " from powerMettersDetail where QL_INNER_CODE in (select QL_INNER_CODE PowerMattersBase where ouguid=@guid) and QL_STATE = '1'";
  49. string sql = "select " + cols + " from powermattersbase where ouguid=@guid and QL_STATE = '1'";
  50. using (IDbConnection connection = GetDbConnection())
  51. {
  52. return connection.Query<PowerMattersBase>(sql, new { guid = guid });
  53. }
  54. }
  55. public IEnumerable<PowerMattersBase> Find(string guid, string ql_kind)
  56. {
  57. string sql = "select " + cols + " from powermettersdetail where OUGUID=@guid and ql_kind = @ql_kind and QL_INNER_CODE in (SELECT QL_INNER_CODE FROM powermattersbase WHERE ouguid=@guid and ql_state='1')";
  58. using (IDbConnection connection = GetDbConnection())
  59. {
  60. return connection.Query<PowerMattersBase>(sql, new { guid = guid, ql_kind = ql_kind });
  61. }
  62. }
  63. public PagedResult<PowerMattersBase> FindByPage(int itemIndex, int size)
  64. {
  65. string sql = "select " + cols + " from powermattersbase where ql_state='1'";
  66. return GetPagedList(sql, itemIndex, size);
  67. }
  68. public PagedResult<PowerMattersBase> FindByPage(int itemIndex, int size, string[] ql_kinds)
  69. {
  70. string sql = "select " + cols + " from powermattersbase where ql_state='1'";
  71. if (ql_kinds.Length > 0)
  72. {
  73. sql = sql + " and ql_kind in ('" + string.Join("','", ql_kinds) + "')";
  74. }
  75. return GetPagedList(sql, itemIndex, size);
  76. }
  77. public void UpdateOrInsert(PowerMattersBase p)
  78. {
  79. using (var con = GetDbConnection())
  80. {
  81. string sql = "insert into powermattersbase(" + cols + ") values(" + vals + ") on duplicate key update " + sets;
  82. con.Execute(sql, p);
  83. }
  84. }
  85. public PagedResult<PowerMattersBase> FindByPage(string key, int itemIndex, int size, string[] ql_kinds)
  86. {
  87. string sql = "select " + cols + " from powermattersbase where ql_state='1'";
  88. if (ql_kinds.Length > 0)
  89. {
  90. sql = sql + " and ql_kind in ('" + string.Join("','", ql_kinds) + "')";
  91. }
  92. if (!String.IsNullOrWhiteSpace(key))
  93. sql = sql + " and (ql_name like '%" + key + "%' or ql_dep like '%" + key + "%')";
  94. return GetPagedList(sql, itemIndex, size);
  95. }
  96. public PagedResult<PowerMattersBase> FindByPage(string key, int itemIndex, int size)
  97. {
  98. if (String.IsNullOrWhiteSpace(key))
  99. return FindByPage(itemIndex, size);
  100. string sql = "select " + cols + " from powermattersbase where ql_state='1' and (ql_name like '%" + key + "%' or ql_dep like '%" + key + "%')";
  101. return GetPagedList(sql, itemIndex, size);
  102. }
  103. public IEnumerable<PowerMattersBase> Search(string ql_name, int itemIndex, int size)
  104. {
  105. string sql = "select " + cols + " from powermattersbase where ql_name like @ql_name and ql_state='1'";
  106. return GetItemList(sql, itemIndex, size, new { ql_name = "%" + ql_name + "%" });
  107. }
  108. public bool IsExistByQL_INNER_CODE(string ql_inner_code)
  109. {
  110. string sql = "select ouguid from powermattersbase where ql_inner_code=@ql_inner_code";
  111. using (IDbConnection connection = GetDbConnection())
  112. {
  113. IEnumerable<string> tmp = connection.Query<string>(sql, new { ql_inner_code = ql_inner_code });
  114. return tmp != null && tmp.Count() > 0;
  115. }
  116. }
  117. public void Insert(IList<PowerMattersBase> list)
  118. {
  119. string select = "select count(*) from powermattersbase where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
  120. string update = "update powermattersbase set " + sets + " where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
  121. string insert = "insert powermattersbase("+cols+") values("+vals+");";
  122. using (var conn = GetDbConnection())
  123. {
  124. foreach(PowerMattersBase p in list)
  125. {
  126. try
  127. {
  128. //int count = conn.QueryFirstOrDefault<int>(select, p);
  129. //if (count <= 0)
  130. conn.Execute(insert, p);
  131. //else
  132. // conn.Execute(update, p);
  133. }
  134. catch (Exception e)
  135. {
  136. }
  137. }
  138. }
  139. }
  140. public void Update(PowerMattersBase p)
  141. {
  142. string update = "update powermattersbase set " + sets + " where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
  143. using (IDbConnection connection = GetDbConnection())
  144. {
  145. connection.Execute(update, p);
  146. }
  147. }
  148. public void Insert(PowerMattersBase p)
  149. {
  150. string insert = "insert powermattersbase(" + cols + ") values(" + vals + ");";
  151. using (IDbConnection connection = GetDbConnection())
  152. {
  153. connection.Execute(insert, p);
  154. }
  155. }
  156. public bool IsOnceRun(string ql_inner_code)
  157. {
  158. string sql = "select ql_inner_code from oncerunpowermatters where ql_inner_code=@ql_inner_code";
  159. using (IDbConnection connection = GetDbConnection())
  160. {
  161. IEnumerable<string> tmp = connection.Query<string>(sql, new { ql_inner_code = ql_inner_code });
  162. return tmp != null && tmp.Count() > 0;
  163. }
  164. }
  165. }
  166. }