WD_DeviceInfoDataAccess.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. using HNWD.Pregrant.Model;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace HNWD.Pregrant.DataAccess
  5. {
  6. public class WD_DeviceInfoDataAccess : GenericDataAccess<WD_DeviceInfo>
  7. {
  8. private WD_DeviceInfo wd_DeviceInfo = null;
  9. public WD_DeviceInfoExt ext = new WD_DeviceInfoExt();
  10. private string webPath = string.Empty;
  11. private readonly static WD_DeviceInfoDataAccess wd_DeviceInfoDataAccess = new WD_DeviceInfoDataAccess();
  12. private readonly static object lockobj = new object();
  13. private WD_DeviceInfoDataAccess()
  14. {
  15. }
  16. public WD_DeviceInfoDataAccess(WD_DeviceInfo wd_DeviceInfo)
  17. {
  18. this.wd_DeviceInfo = wd_DeviceInfo;
  19. }
  20. public static WD_DeviceInfoDataAccess GetInstance()
  21. {
  22. lock (lockobj)
  23. {
  24. return wd_DeviceInfoDataAccess;
  25. }
  26. }
  27. public WD_DeviceInfoDataAccess(string webPath, string p2)
  28. {
  29. this.webPath = webPath;
  30. }
  31. public List<WD_DeviceInfo> QueryAll()
  32. {
  33. string strSql = " select {0} from [WD_DeviceInfo] ";
  34. ext.messageDataList = this.Query(strSql, new WD_DeviceInfo());
  35. ext.messageDataList.ForEach(f => f.bSuccess = this.bSuccess);
  36. ext.messageDataList.ForEach(f => f.Code = this.Code);
  37. ext.messageDataList.ForEach(f => f.Message = this.Message);
  38. ext.messageDataList.ForEach(f => f.Rows = this.Rows);
  39. ext.BedInfoArray = ext.messageDataList;
  40. ext.DeviceInfoArray = ext.messageDataList;
  41. ext.Code = this.Code;
  42. ext.Message = this.Message;
  43. ext.Rows = this.Rows;
  44. return ext.messageDataList;
  45. }
  46. public List<WD_DeviceInfo> QueryPartIDs()
  47. {
  48. string strSql = " select PARTID from [WD_DeviceInfo] WHERE DEVICE_TYPE = 6 AND DEVICE_STATUS = 1 GROUP BY PARTID";
  49. ext.messageDataList = this.Query(strSql, new WD_DeviceInfo());
  50. ext.messageDataList.ForEach(f => f.bSuccess = this.bSuccess);
  51. ext.messageDataList.ForEach(f => f.Code = this.Code);
  52. ext.messageDataList.ForEach(f => f.Message = this.Message);
  53. ext.messageDataList.ForEach(f => f.Rows = this.Rows);
  54. ext.BedInfoArray = ext.messageDataList;
  55. ext.DeviceInfoArray = ext.messageDataList;
  56. ext.Code = this.Code;
  57. ext.Message = this.Message;
  58. ext.Rows = this.Rows;
  59. return ext.messageDataList;
  60. }
  61. public void UpdateDEVICE_SIP_HOSTING_ID_Begin(string HostId, string paHostId)
  62. {
  63. StringBuilder strSql = new StringBuilder(" update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='#" + HostId + "," + paHostId + "' where [DEVICE_SIP_HOSTING_ID]='" + paHostId + "' and [DEVICE_TYPE] in (3 , 4) ;");
  64. strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + HostId + "," + paHostId + "' where [ID]=" + HostId + ";");
  65. strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='#" + HostId + "' where [ID]=" + paHostId + ";");
  66. strSql.Append("update [WD_RunProfile] SET [TrustResetFlag]='" + HostId + "," + paHostId + "';");
  67. this.Execute(strSql.ToString(), new WD_DeviceInfo());
  68. }
  69. public void UpdateDEVICE_SIP_HOSTING_ID_Stop(string HostId, string paHostId)
  70. {
  71. StringBuilder strSql = new StringBuilder(" update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + paHostId + "' where [DEVICE_SIP_HOSTING_ID]='#" + HostId + "," + paHostId + "' and [DEVICE_TYPE] in (3 , 4) ;");
  72. strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + HostId + "' where [ID]=" + HostId + ";");
  73. strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + paHostId + "' where [ID]=" + paHostId + ";");
  74. strSql.Append("update [WD_RunProfile] SET [TrustResetFlag]='" + HostId + "," + paHostId + "';");
  75. this.Execute(strSql.ToString(), new WD_DeviceInfo());
  76. }
  77. public void DeleteAll()
  78. {
  79. StringBuilder strSql = new StringBuilder(" delete from [WD_DeviceInfo] ");
  80. this.Execute(strSql.ToString(), new WD_DeviceInfo());
  81. }
  82. public void Business(List<WD_DeviceInfo> il, List<WD_DeviceInfo> ul, List<WD_DeviceInfo> dl)
  83. {
  84. StringBuilder sb_itemp = new StringBuilder();
  85. sb_itemp.Append(" INSERT INTO [WD_DeviceInfo] ( ");
  86. sb_itemp.Append(" [DEVICE_TYPE],[DEVICE_ID],[DEVICE_MODEL],[DEVICE_SOFT_VER],[DEVICE_HARD_VER], ");
  87. sb_itemp.Append(" [DEVICE_NAME],[DEVICE_ETH_MAC],[DEVICE_ETH_IP],[DEVICE_WIFI_MAC],[DEVICE_WIFI_IP], ");
  88. sb_itemp.Append(" [DEVICE_WIFI_HOSTNAME],[DEVICE_STATUS],[DEVICE_ROOM_NUM],[DEVICE_ROOM_ID],[DEVICE_BED_NUM], ");
  89. sb_itemp.Append(" [DEVICE_BED_NAME],[DEVICE_HUMAN_TYPE],[DEVICE_HUMAN_ID],[DEVICE_SIP_IP],[DEVICE_SIP_ID], ");
  90. sb_itemp.Append(" [DEVICE_SIP_PASSWORD],[DEVICE_SIP_STATUS],[DEVICE_SIP_CALLLIST],[DEVICE_SIP_HOSTING_ID],[DEVICE_IR_CFG], ");
  91. sb_itemp.Append(" [DEVICE_ZONE0],[DEVICE_ZONE1],[DEVICE_ZONE2],[DEVICE_ZONE3],[DEVICE_ZONE4], ");
  92. sb_itemp.Append(" [DEVICE_ZONE5],[DEVICE_DATETIME] ");
  93. sb_itemp.Append(" ) values (");
  94. sb_itemp.Append(" '{0}','{1}','{2}','{3}','{4}', ");
  95. sb_itemp.Append(" '{5}','{6}','{7}','{8}','{9}', ");
  96. sb_itemp.Append(" '{10}','{11}','{12}','{13}','{14}', ");
  97. sb_itemp.Append(" '{15}','{16}','{17}','{18}','{19}', ");
  98. sb_itemp.Append(" '{20}','{21}','{22}','{23}','{24}', ");
  99. sb_itemp.Append(" '{25}','{26}','{27}','{28}','{29}', ");
  100. sb_itemp.Append(" '{30}','{31}' ");
  101. StringBuilder sb_utemp = new StringBuilder();
  102. sb_utemp.Append(" UPDATE [WD_DeviceInfo] SET ");
  103. sb_utemp.Append(" [DEVICE_TYPE] = '{0}',[DEVICE_ID] = '{1}',[DEVICE_MODEL] = '{2}',[DEVICE_SOFT_VER] = '{3}',[DEVICE_HARD_VER] = '{4}', ");
  104. sb_utemp.Append(" [DEVICE_NAME]= '{5}',[DEVICE_ETH_MAC]= '{6}',[DEVICE_ETH_IP]= '{7}',[DEVICE_WIFI_MAC]= '{8}',[DEVICE_WIFI_IP]= '{9}', ");
  105. sb_utemp.Append(" [DEVICE_WIFI_HOSTNAME]= '{10}',[DEVICE_STATUS]= '{11}',[DEVICE_ROOM_NUM]= '{12}',[DEVICE_ROOM_ID]= '{13}',[DEVICE_BED_NUM]= '{14}', ");
  106. sb_utemp.Append(" [DEVICE_BED_NAME]= '{15}',[DEVICE_HUMAN_TYPE]= '{16}',[DEVICE_HUMAN_ID]= '{17}',[DEVICE_SIP_IP]= '{18}',[DEVICE_SIP_ID]= '{19}', ");
  107. sb_utemp.Append(" [DEVICE_SIP_PASSWORD]= '{20}',[DEVICE_SIP_STATUS]= '{21}',[DEVICE_SIP_CALLLIST]= '{22}',[DEVICE_SIP_HOSTING_ID]= '{23}',[DEVICE_IR_CFG]= '{24}', ");
  108. sb_utemp.Append(" [DEVICE_ZONE0]= '{25}',[DEVICE_ZONE1] = '{26}',[DEVICE_ZONE2]= '{27}',[DEVICE_ZONE3]= '{28}',[DEVICE_ZONE4]= '{29}', ");
  109. sb_utemp.Append(" [DEVICE_ZONE5]= '{30}',[DEVICE_DATETIME]= '{31}' ");
  110. sb_utemp.Append(" WHERE ID = '{32}' ");
  111. StringBuilder sb_dtemp = new StringBuilder();
  112. sb_dtemp.Append(" DELETE [WD_DeviceInfo] WHERE ID = '{0}' ");
  113. StringBuilder sb_i = new StringBuilder();
  114. foreach (WD_DeviceInfo wd in il)
  115. {
  116. sb_i.AppendFormat(sb_itemp.ToString(),
  117. wd.DEVICE_TYPE,
  118. wd.DEVICE_SN,
  119. wd.DEVICE_MODEL,
  120. wd.DEVICE_SOFT_VER,
  121. wd.DEVICE_HARD_VER,
  122. wd.DEVICE_NAME,
  123. wd.DEVICE_ETH_MAC,
  124. wd.DEVICE_ETH_IP,
  125. wd.DEVICE_WIFI_MAC,
  126. wd.DEVICE_WIFI_IP,
  127. wd.DEVICE_WIFI_HOSTNAME,
  128. wd.DEVICE_STATUS,
  129. wd.DEVICE_ROOM_NUM,
  130. wd.DEVICE_ROOM_ID,
  131. wd.DEVICE_BED_NUM,
  132. wd.DEVICE_BED_NAME,
  133. wd.DEVICE_HUMAN_TYPE,
  134. wd.DEVICE_HUMAN_ID,
  135. wd.DEVICE_SIP_IP,
  136. wd.DEVICE_SIP_ID,
  137. wd.DEVICE_SIP_PASSWORD,
  138. wd.DEVICE_IR_CFG,
  139. wd.DEVICE_ZONE0,
  140. wd.DEVICE_ZONE1,
  141. wd.DEVICE_ZONE2,
  142. wd.DEVICE_ZONE3,
  143. wd.DEVICE_ZONE4,
  144. wd.DEVICE_ZONE5,
  145. wd.DEVICE_DATETIME
  146. );
  147. clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath);
  148. clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath);
  149. //写MAC地址到DHCP服务器
  150. if (wd.DEVICE_ETH_MAC.Trim() != "")
  151. {
  152. clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP);
  153. }
  154. if (wd.DEVICE_TYPE == "1" || wd.DEVICE_TYPE == "2" || wd.DEVICE_TYPE == "3")
  155. {
  156. wd.DEVICE_SIP_ID = clsOpenSIPSAccount2.GetSipAccount(wd.DEVICE_TYPE, wd.ID);
  157. wd.DEVICE_SIP_PASSWORD = wd.DEVICE_SIP_ID;
  158. string StrSql = "update [WD_DeviceInfo] SET " +
  159. "[DEVICE_SIP_ID]='" + wd.DEVICE_SIP_ID + "'," +
  160. "[DEVICE_SIP_PASSWORD]='" + wd.DEVICE_SIP_PASSWORD + "',";
  161. // '若为护士主机,需要把ID号写到[DEVICE_SIP_HOSTING_ID]
  162. if (wd_DeviceInfo.DEVICE_TYPE == "1")
  163. {
  164. StrSql += " [DEVICE_SIP_HOSTING_ID] = '" + wd.ID + "',";
  165. }
  166. StrSql += "[DEVICE_DATETIME]='" + wd.DEVICE_DATETIME + "' where [ID]=" + wd.ID;
  167. }
  168. if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault())
  169. {
  170. if (clsOpenSIPSAccount2.OpenSIPs_AccountAdd(wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD))
  171. {
  172. }
  173. }
  174. clsOpenSIPSAccount2.OpenSIPs_Close();
  175. }
  176. StringBuilder sb_u = new StringBuilder();
  177. foreach (WD_DeviceInfo wd in ul)
  178. {
  179. sb_u.AppendFormat(sb_utemp.ToString(),
  180. wd.DEVICE_TYPE,
  181. wd.DEVICE_SN,
  182. wd.DEVICE_MODEL,
  183. wd.DEVICE_SOFT_VER,
  184. wd.DEVICE_HARD_VER,
  185. wd.DEVICE_NAME,
  186. wd.DEVICE_ETH_MAC,
  187. wd.DEVICE_ETH_IP,
  188. wd.DEVICE_WIFI_MAC,
  189. wd.DEVICE_WIFI_IP,
  190. wd.DEVICE_WIFI_HOSTNAME,
  191. wd.DEVICE_STATUS,
  192. wd.DEVICE_ROOM_NUM,
  193. wd.DEVICE_ROOM_ID,
  194. wd.DEVICE_BED_NUM,
  195. wd.DEVICE_BED_NAME,
  196. wd.DEVICE_HUMAN_TYPE,
  197. wd.DEVICE_HUMAN_ID,
  198. wd.DEVICE_SIP_IP,
  199. wd.DEVICE_SIP_ID,
  200. wd.DEVICE_SIP_PASSWORD,
  201. wd.DEVICE_IR_CFG,
  202. wd.DEVICE_ZONE0,
  203. wd.DEVICE_ZONE1,
  204. wd.DEVICE_ZONE2,
  205. wd.DEVICE_ZONE3,
  206. wd.DEVICE_ZONE4,
  207. wd.DEVICE_ZONE5,
  208. wd.DEVICE_DATETIME,
  209. wd.ID
  210. );
  211. clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath);
  212. clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath);
  213. if (wd.DEVICE_ETH_MAC.Trim() != "")
  214. {
  215. clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP);
  216. }
  217. if (wd.DEVICE_TYPE == "1" || wd.deviceType == "2" || wd.deviceType == "3")
  218. {
  219. if (wd.DEVICE_SIP_ID != clsOpenSIPSAccount2.GetSipAccount(wd.DEVICE_TYPE, wd.ID))
  220. {
  221. if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault())
  222. {
  223. clsOpenSIPSAccount2.OpenSIPs_AccountDel(wd.DEVICE_SIP_ID);
  224. if (clsOpenSIPSAccount2.OpenSIPs_AccountAdd(wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD))
  225. {
  226. }
  227. }
  228. }
  229. }
  230. clsOpenSIPSAccount2.OpenSIPs_Close();
  231. }
  232. StringBuilder sb_d = new StringBuilder();
  233. foreach (WD_DeviceInfo wd in dl)
  234. {
  235. sb_d.AppendFormat(sb_dtemp.ToString(), wd.ID);
  236. clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath);
  237. clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath);
  238. if (wd.DEVICE_ETH_MAC.Trim() != "")
  239. {
  240. clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, "");
  241. }
  242. if (wd.DEVICE_TYPE == "1" || wd.DEVICE_TYPE == "2" || wd.DEVICE_TYPE == "3")
  243. {
  244. if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault())
  245. {
  246. clsOpenSIPSAccount2.OpenSIPs_AccountDel(wd.DEVICE_SIP_ID);
  247. clsOpenSIPSAccount2.OpenSIPs_Close();
  248. }
  249. }
  250. }
  251. this.Execute(sb_i.ToString(), sb_u.ToString(), sb_d.ToString());
  252. }
  253. }
  254. }