using HNWD.Pregrant.Model; using System.Collections.Generic; using System.Text; namespace HNWD.Pregrant.DataAccess { public class WD_DeviceInfoDataAccess : GenericDataAccess { private WD_DeviceInfo wd_DeviceInfo = null; public WD_DeviceInfoExt ext = new WD_DeviceInfoExt(); private string webPath = string.Empty; private readonly static WD_DeviceInfoDataAccess wd_DeviceInfoDataAccess = new WD_DeviceInfoDataAccess(); private readonly static object lockobj = new object(); private WD_DeviceInfoDataAccess() { } public WD_DeviceInfoDataAccess(WD_DeviceInfo wd_DeviceInfo) { this.wd_DeviceInfo = wd_DeviceInfo; } public static WD_DeviceInfoDataAccess GetInstance() { lock (lockobj) { return wd_DeviceInfoDataAccess; } } public WD_DeviceInfoDataAccess(string webPath, string p2) { this.webPath = webPath; } public List QueryAll() { string strSql = " select {0} from [WD_DeviceInfo] "; ext.messageDataList = this.Query(strSql, new WD_DeviceInfo()); ext.messageDataList.ForEach(f => f.bSuccess = this.bSuccess); ext.messageDataList.ForEach(f => f.Code = this.Code); ext.messageDataList.ForEach(f => f.Message = this.Message); ext.messageDataList.ForEach(f => f.Rows = this.Rows); ext.BedInfoArray = ext.messageDataList; ext.DeviceInfoArray = ext.messageDataList; ext.Code = this.Code; ext.Message = this.Message; ext.Rows = this.Rows; return ext.messageDataList; } public List QueryPartIDs() { string strSql = " select PARTID from [WD_DeviceInfo] WHERE DEVICE_TYPE = 6 AND DEVICE_STATUS = 1 GROUP BY PARTID"; ext.messageDataList = this.Query(strSql, new WD_DeviceInfo()); ext.messageDataList.ForEach(f => f.bSuccess = this.bSuccess); ext.messageDataList.ForEach(f => f.Code = this.Code); ext.messageDataList.ForEach(f => f.Message = this.Message); ext.messageDataList.ForEach(f => f.Rows = this.Rows); ext.BedInfoArray = ext.messageDataList; ext.DeviceInfoArray = ext.messageDataList; ext.Code = this.Code; ext.Message = this.Message; ext.Rows = this.Rows; return ext.messageDataList; } public void UpdateDEVICE_SIP_HOSTING_ID_Begin(string HostId, string paHostId) { 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) ;"); strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + HostId + "," + paHostId + "' where [ID]=" + HostId + ";"); strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='#" + HostId + "' where [ID]=" + paHostId + ";"); strSql.Append("update [WD_RunProfile] SET [TrustResetFlag]='" + HostId + "," + paHostId + "';"); this.Execute(strSql.ToString(), new WD_DeviceInfo()); } public void UpdateDEVICE_SIP_HOSTING_ID_Stop(string HostId, string paHostId) { 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) ;"); strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + HostId + "' where [ID]=" + HostId + ";"); strSql.Append("update [WD_DeviceInfo] SET [DEVICE_SIP_HOSTING_ID]='" + paHostId + "' where [ID]=" + paHostId + ";"); strSql.Append("update [WD_RunProfile] SET [TrustResetFlag]='" + HostId + "," + paHostId + "';"); this.Execute(strSql.ToString(), new WD_DeviceInfo()); } public void DeleteAll() { StringBuilder strSql = new StringBuilder(" delete from [WD_DeviceInfo] "); this.Execute(strSql.ToString(), new WD_DeviceInfo()); } public void Business(List il, List ul, List dl) { StringBuilder sb_itemp = new StringBuilder(); sb_itemp.Append(" INSERT INTO [WD_DeviceInfo] ( "); sb_itemp.Append(" [DEVICE_TYPE],[DEVICE_ID],[DEVICE_MODEL],[DEVICE_SOFT_VER],[DEVICE_HARD_VER], "); sb_itemp.Append(" [DEVICE_NAME],[DEVICE_ETH_MAC],[DEVICE_ETH_IP],[DEVICE_WIFI_MAC],[DEVICE_WIFI_IP], "); sb_itemp.Append(" [DEVICE_WIFI_HOSTNAME],[DEVICE_STATUS],[DEVICE_ROOM_NUM],[DEVICE_ROOM_ID],[DEVICE_BED_NUM], "); sb_itemp.Append(" [DEVICE_BED_NAME],[DEVICE_HUMAN_TYPE],[DEVICE_HUMAN_ID],[DEVICE_SIP_IP],[DEVICE_SIP_ID], "); sb_itemp.Append(" [DEVICE_SIP_PASSWORD],[DEVICE_SIP_STATUS],[DEVICE_SIP_CALLLIST],[DEVICE_SIP_HOSTING_ID],[DEVICE_IR_CFG], "); sb_itemp.Append(" [DEVICE_ZONE0],[DEVICE_ZONE1],[DEVICE_ZONE2],[DEVICE_ZONE3],[DEVICE_ZONE4], "); sb_itemp.Append(" [DEVICE_ZONE5],[DEVICE_DATETIME] "); sb_itemp.Append(" ) values ("); sb_itemp.Append(" '{0}','{1}','{2}','{3}','{4}', "); sb_itemp.Append(" '{5}','{6}','{7}','{8}','{9}', "); sb_itemp.Append(" '{10}','{11}','{12}','{13}','{14}', "); sb_itemp.Append(" '{15}','{16}','{17}','{18}','{19}', "); sb_itemp.Append(" '{20}','{21}','{22}','{23}','{24}', "); sb_itemp.Append(" '{25}','{26}','{27}','{28}','{29}', "); sb_itemp.Append(" '{30}','{31}' "); StringBuilder sb_utemp = new StringBuilder(); sb_utemp.Append(" UPDATE [WD_DeviceInfo] SET "); sb_utemp.Append(" [DEVICE_TYPE] = '{0}',[DEVICE_ID] = '{1}',[DEVICE_MODEL] = '{2}',[DEVICE_SOFT_VER] = '{3}',[DEVICE_HARD_VER] = '{4}', "); sb_utemp.Append(" [DEVICE_NAME]= '{5}',[DEVICE_ETH_MAC]= '{6}',[DEVICE_ETH_IP]= '{7}',[DEVICE_WIFI_MAC]= '{8}',[DEVICE_WIFI_IP]= '{9}', "); sb_utemp.Append(" [DEVICE_WIFI_HOSTNAME]= '{10}',[DEVICE_STATUS]= '{11}',[DEVICE_ROOM_NUM]= '{12}',[DEVICE_ROOM_ID]= '{13}',[DEVICE_BED_NUM]= '{14}', "); sb_utemp.Append(" [DEVICE_BED_NAME]= '{15}',[DEVICE_HUMAN_TYPE]= '{16}',[DEVICE_HUMAN_ID]= '{17}',[DEVICE_SIP_IP]= '{18}',[DEVICE_SIP_ID]= '{19}', "); sb_utemp.Append(" [DEVICE_SIP_PASSWORD]= '{20}',[DEVICE_SIP_STATUS]= '{21}',[DEVICE_SIP_CALLLIST]= '{22}',[DEVICE_SIP_HOSTING_ID]= '{23}',[DEVICE_IR_CFG]= '{24}', "); sb_utemp.Append(" [DEVICE_ZONE0]= '{25}',[DEVICE_ZONE1] = '{26}',[DEVICE_ZONE2]= '{27}',[DEVICE_ZONE3]= '{28}',[DEVICE_ZONE4]= '{29}', "); sb_utemp.Append(" [DEVICE_ZONE5]= '{30}',[DEVICE_DATETIME]= '{31}' "); sb_utemp.Append(" WHERE ID = '{32}' "); StringBuilder sb_dtemp = new StringBuilder(); sb_dtemp.Append(" DELETE [WD_DeviceInfo] WHERE ID = '{0}' "); StringBuilder sb_i = new StringBuilder(); foreach (WD_DeviceInfo wd in il) { sb_i.AppendFormat(sb_itemp.ToString(), wd.DEVICE_TYPE, wd.DEVICE_SN, wd.DEVICE_MODEL, wd.DEVICE_SOFT_VER, wd.DEVICE_HARD_VER, wd.DEVICE_NAME, wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP, wd.DEVICE_WIFI_MAC, wd.DEVICE_WIFI_IP, wd.DEVICE_WIFI_HOSTNAME, wd.DEVICE_STATUS, wd.DEVICE_ROOM_NUM, wd.DEVICE_ROOM_ID, wd.DEVICE_BED_NUM, wd.DEVICE_BED_NAME, wd.DEVICE_HUMAN_TYPE, wd.DEVICE_HUMAN_ID, wd.DEVICE_SIP_IP, wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD, wd.DEVICE_IR_CFG, wd.DEVICE_ZONE0, wd.DEVICE_ZONE1, wd.DEVICE_ZONE2, wd.DEVICE_ZONE3, wd.DEVICE_ZONE4, wd.DEVICE_ZONE5, wd.DEVICE_DATETIME ); clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath); clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath); //写MAC地址到DHCP服务器 if (wd.DEVICE_ETH_MAC.Trim() != "") { clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP); } if (wd.DEVICE_TYPE == "1" || wd.DEVICE_TYPE == "2" || wd.DEVICE_TYPE == "3") { wd.DEVICE_SIP_ID = clsOpenSIPSAccount2.GetSipAccount(wd.DEVICE_TYPE, wd.ID); wd.DEVICE_SIP_PASSWORD = wd.DEVICE_SIP_ID; string StrSql = "update [WD_DeviceInfo] SET " + "[DEVICE_SIP_ID]='" + wd.DEVICE_SIP_ID + "'," + "[DEVICE_SIP_PASSWORD]='" + wd.DEVICE_SIP_PASSWORD + "',"; // '若为护士主机,需要把ID号写到[DEVICE_SIP_HOSTING_ID] if (wd_DeviceInfo.DEVICE_TYPE == "1") { StrSql += " [DEVICE_SIP_HOSTING_ID] = '" + wd.ID + "',"; } StrSql += "[DEVICE_DATETIME]='" + wd.DEVICE_DATETIME + "' where [ID]=" + wd.ID; } if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault()) { if (clsOpenSIPSAccount2.OpenSIPs_AccountAdd(wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD)) { } } clsOpenSIPSAccount2.OpenSIPs_Close(); } StringBuilder sb_u = new StringBuilder(); foreach (WD_DeviceInfo wd in ul) { sb_u.AppendFormat(sb_utemp.ToString(), wd.DEVICE_TYPE, wd.DEVICE_SN, wd.DEVICE_MODEL, wd.DEVICE_SOFT_VER, wd.DEVICE_HARD_VER, wd.DEVICE_NAME, wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP, wd.DEVICE_WIFI_MAC, wd.DEVICE_WIFI_IP, wd.DEVICE_WIFI_HOSTNAME, wd.DEVICE_STATUS, wd.DEVICE_ROOM_NUM, wd.DEVICE_ROOM_ID, wd.DEVICE_BED_NUM, wd.DEVICE_BED_NAME, wd.DEVICE_HUMAN_TYPE, wd.DEVICE_HUMAN_ID, wd.DEVICE_SIP_IP, wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD, wd.DEVICE_IR_CFG, wd.DEVICE_ZONE0, wd.DEVICE_ZONE1, wd.DEVICE_ZONE2, wd.DEVICE_ZONE3, wd.DEVICE_ZONE4, wd.DEVICE_ZONE5, wd.DEVICE_DATETIME, wd.ID ); clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath); clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath); if (wd.DEVICE_ETH_MAC.Trim() != "") { clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, wd.DEVICE_ETH_IP); } if (wd.DEVICE_TYPE == "1" || wd.deviceType == "2" || wd.deviceType == "3") { if (wd.DEVICE_SIP_ID != clsOpenSIPSAccount2.GetSipAccount(wd.DEVICE_TYPE, wd.ID)) { if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault()) { clsOpenSIPSAccount2.OpenSIPs_AccountDel(wd.DEVICE_SIP_ID); if (clsOpenSIPSAccount2.OpenSIPs_AccountAdd(wd.DEVICE_SIP_ID, wd.DEVICE_SIP_PASSWORD)) { } } } } clsOpenSIPSAccount2.OpenSIPs_Close(); } StringBuilder sb_d = new StringBuilder(); foreach (WD_DeviceInfo wd in dl) { sb_d.AppendFormat(sb_dtemp.ToString(), wd.ID); clsDataBaseRW clsDataBaseRW2 = new clsDataBaseRW(this.webPath); clsOpenSIPSAccount clsOpenSIPSAccount2 = new clsOpenSIPSAccount(this.webPath); if (wd.DEVICE_ETH_MAC.Trim() != "") { clsDataBaseRW2.DHCP_WriteIPAddressByMAC(wd.DEVICE_ETH_MAC, ""); } if (wd.DEVICE_TYPE == "1" || wd.DEVICE_TYPE == "2" || wd.DEVICE_TYPE == "3") { if (clsOpenSIPSAccount2.OpenSIPs_ConnectDefault()) { clsOpenSIPSAccount2.OpenSIPs_AccountDel(wd.DEVICE_SIP_ID); clsOpenSIPSAccount2.OpenSIPs_Close(); } } } this.Execute(sb_i.ToString(), sb_u.ToString(), sb_d.ToString()); } } }