You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
413 lines
16 KiB
C#
413 lines
16 KiB
C#
using Highway.Assemble.common;
|
|
using Mesnac.Codd.Session;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace Highway.Assemble.Sql
|
|
{
|
|
public class DbHandler : ISql
|
|
{
|
|
public static readonly log4net.ILog LogInfo = log4net.LogManager.GetLogger("RollingLogFileAppender"); //Logging 名字要在 App.config 中能找到
|
|
public DbHelper dbHelper;
|
|
public string constr;//= Common.Unity.Instance.sqlstring;//数据库访问字符串
|
|
|
|
public DbHandler(string str)
|
|
{
|
|
constr = str;
|
|
initDB();
|
|
}
|
|
/// <summary>
|
|
/// 函数初始化
|
|
/// </summary>
|
|
private void initDB()
|
|
{
|
|
DbSession dbsession = new DbSession(SqlClientFactory.Instance, constr);
|
|
dbHelper = new DbHelper(dbsession);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取设备信息列表
|
|
/// 对应[dbo].[base_device_info]表
|
|
/// </summary>
|
|
/// <returns>设备信息</returns>
|
|
public List<Equip> GetEquipList(string collectid)
|
|
{
|
|
|
|
if (dbHelper == null)
|
|
{
|
|
return null;
|
|
}
|
|
try
|
|
{
|
|
List<Equip> equiplist = new List<Equip>();
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
//string sql = "select * from dbo.base_device_info where adapterid ='"+ adapterId + "'and deleteflag !='1'";
|
|
//
|
|
string sql = "select dbo.base_device_info.* , dbo.base_device_connectmode.ConnectModeName from dbo.base_device_info left join dbo.base_device_connectmode on dbo.base_device_info.connectmode=dbo.base_device_connectmode.ConnectModeID where collectid ='" + collectid + "'and dbo.base_device_info.deleteflag !='1'";//"select dbo.base_device_info.* , dbo.base_device_connectmode.ConnectModeName from dbo.base_device_info left join dbo.base_device_connectmode on dbo.base_device_info.connectmode=dbo.base_device_connectmode.ConnectModeID where objid ='" + huijiID + "'and dbo.base_device_info.deleteflag !='1'";
|
|
dbHelper.CommandText = sql;
|
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
Equip equipcode = new Equip();
|
|
equipcode.deviceId = row["deviceid"].ToString().Trim();
|
|
equipcode.deviceName = row["name"].ToString().Trim();
|
|
equipcode.connectstr = row["connectstr"].ToString().Trim();
|
|
equipcode.connectModeName = row["connectModeName"].ToString().Trim();
|
|
equipcode.connectmode = row["connectmode"].ToString().Trim();
|
|
equipcode.deviceType = row["devicetype"].ToString().Trim();
|
|
equipcode.collectid = row["collectid"].ToString().Trim();
|
|
equipcode.addr = row["addr"].ToString().Trim();
|
|
equiplist.Add(equipcode);
|
|
}
|
|
return equiplist;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("获取设备信息失败" + ex.ToString());
|
|
return null;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取传感器信息
|
|
/// 对应[dbo].[base_sensor_info]表
|
|
/// </summary>
|
|
/// <param name="deviceId">设备编号</param>
|
|
/// <returns>传感器信息</returns>
|
|
public List<Sensor> GetSensorList(string deviceId)
|
|
{
|
|
|
|
if (dbHelper == null)
|
|
{
|
|
return null;
|
|
}
|
|
try
|
|
{
|
|
List<Sensor> sensorlist = new List<Sensor>();
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "select dbo.base_sensor_info.* , dbo.base_sensortype_info.SensorTypeName from dbo.base_sensor_info left join dbo.base_sensortype_info on dbo.base_sensor_info.sensortypeid = dbo.base_sensortype_info.sensortypeid where deviceid = '" + deviceId + "'and dbo.base_sensor_info.deleteflag != '1'";
|
|
dbHelper.CommandText = sql;
|
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
Sensor sensorcode = new Sensor();
|
|
sensorcode.sensorid = row["sensorid"].ToString().Trim();
|
|
sensorcode.combineid = row["combineid"].ToString().Trim();
|
|
sensorcode.sensortypeid = row["sensortypeid"].ToString().Trim();
|
|
sensorcode.sensorName = row["name"].ToString().Trim();
|
|
sensorcode.sensorser = row["sensorser"].ToString().Trim();
|
|
sensorcode.sensorTypeName = row["sensortypename"].ToString().Trim();
|
|
sensorcode.deviceId = row["deviceid"].ToString().Trim();
|
|
sensorcode.readInterval = row["readinterval"].ToString().Trim();
|
|
sensorcode.multData = row["multdata"].ToString().Trim();
|
|
sensorcode.timeout = row["timedout"].ToString().Trim();
|
|
sensorcode.returnImm = row["returnimm"].ToString().Trim();
|
|
//sensorcode.CallAdapter = Convert.ToInt16(row["calladapter"]);
|
|
//sensorcode.CallAdapterid = row["calladapterid"].ToString().Trim();
|
|
//sensorcode.CallCombineID = row["callcombineid"].ToString().Trim();
|
|
// sensorcode.DelayTime = TryToInt(row["DelayTime"].ToString());
|
|
sensorcode.mesID = row["MesID"].ToString().Trim();
|
|
sensorcode.DelayTime = TryToInt(row["DelayTime"].ToString().Trim());
|
|
sensorcode.ReadCounts = TryToInt(row["ReadCounts"].ToString().Trim());
|
|
sensorlist.Add(sensorcode);
|
|
}
|
|
return sensorlist;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("获取传感器信息失败" + ex.ToString());
|
|
return null;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取汇集软件信息
|
|
/// 对应[dbo].[base_collect_info]表
|
|
/// </summary>
|
|
/// <param name="collectid">汇集软件编号</param>
|
|
/// <returns>汇集软件信息</returns>
|
|
public Collect GetCollectInfo(string collectid)
|
|
{
|
|
|
|
Collect collect = new Collect();
|
|
if (dbHelper == null)
|
|
{
|
|
return collect;
|
|
}
|
|
try
|
|
{
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "select * from dbo.base_collect_info where collectId='" + collectid + "'";
|
|
dbHelper.CommandText = sql;
|
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
if (dt != null)
|
|
{
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
collect.collectID = dt.Rows[i]["collectId"].ToString();
|
|
collect.collectName = dt.Rows[i]["collectName"].ToString();
|
|
collect.Ip = dt.Rows[i]["ip"].ToString();
|
|
collect.Port = TryToInt(dt.Rows[0]["port"].ToString());
|
|
return collect;
|
|
}
|
|
return collect;
|
|
}
|
|
else
|
|
{
|
|
return collect;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("获取服务器Ip错误" + ex.ToString());
|
|
return collect;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取mes设备信息
|
|
/// 对应[dbo].[base_mes_info]表
|
|
/// </summary>
|
|
/// <param name="collectid">汇集软件ID</param>
|
|
/// <returns>mes设备信息</returns>
|
|
public List<mesSoft> GetMesEquipList(string collectid)
|
|
{
|
|
List<mesSoft> mesList = new List<mesSoft>();
|
|
|
|
if (dbHelper == null)
|
|
{
|
|
return mesList;
|
|
}
|
|
try
|
|
{
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;//adapterid ="+mesID+"
|
|
dbHelper.CommandText = "";
|
|
string sql = "select * from dbo.base_mes_info where deleteflag != '1' and collectid= '" + collectid + "'";
|
|
dbHelper.CommandText = sql;
|
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
if (dt != null)
|
|
{
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
mesSoft mes = new mesSoft();
|
|
mes.mesid = dt.Rows[i]["mesid"].ToString();
|
|
mes.adapterName = dt.Rows[i]["name"].ToString();
|
|
mes.AdatperIP = dt.Rows[i]["ip"].ToString();
|
|
mes.AdapterPort = dt.Rows[0]["port"].ToString();
|
|
mesList.Add(mes);
|
|
}
|
|
|
|
//
|
|
return mesList;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("获取服务器Ip错误" + ex.ToString());
|
|
return null;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 插入数据
|
|
/// 对应[dbo].[real_workdata]表
|
|
/// </summary>
|
|
/// <param name="CombID">合并编号</param>
|
|
/// <param name="data">数据</param>
|
|
/// <param name="type">上传数据类型</param>
|
|
/// <returns></returns>
|
|
public bool InsertReadData(string CombID, string data, int type)
|
|
{
|
|
if (dbHelper == null)
|
|
{
|
|
return false;
|
|
}
|
|
try
|
|
{
|
|
|
|
var Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "INSERT INTO [dbo].[real_workdata]([combineid], [data], [reportmode],[tm]) VALUES ('" + CombID + "','" + data + "','" + type + "','" + Time + "')";
|
|
dbHelper.CommandText = sql;
|
|
dbHelper.ExecuteNonQuery();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("插入数据失败" + ex.ToString());
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 设配软件状态
|
|
/// </summary>
|
|
/// 对应[dbo].[base_soft_state]表
|
|
/// <param name="ID">设配软件ID</param>
|
|
/// <param name="Time">获取状态时间</param>
|
|
/// <param name="state">设配软件状态 </param>
|
|
public bool InsertSoftState(string ID, int state)
|
|
{
|
|
try
|
|
{
|
|
var Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "INSERT INTO [dbo].[base_soft_state]([softId], [softState], [softTime]) VALUES ('" + ID + "','" + state + "','" + Time + "')";
|
|
dbHelper.CommandText = sql;
|
|
dbHelper.ExecuteNonQuery();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("适配软件状态插入失败" + ex.ToString());
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设备软件状态
|
|
/// </summary>
|
|
/// 对应[dbo].[base_device_state]表
|
|
/// <param name="ID">设备编号</param>
|
|
/// <param name="Time">状态时间</param>
|
|
/// <param name="state">设备状态</param>
|
|
public bool InsertEquipState(string ID, int state)
|
|
{
|
|
try
|
|
{
|
|
var Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "INSERT INTO [dbo].[base_device_state]([deviceId], [deviceState], [deviceTime]) VALUES ('" + ID + "','" + state + "','" + Time + "')";
|
|
dbHelper.CommandText = sql;
|
|
dbHelper.ExecuteNonQuery();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//LogInfo.Fatal("设备软件状态插入失败" + ex.ToString());
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 汇集软件状态
|
|
/// 对应[dbo].[base_collect_state]表
|
|
/// </summary>
|
|
/// <param name="ID">汇集编号</param>
|
|
/// <param name="state">设备状态</param>
|
|
public bool InsertCollectState(string ID, int state)
|
|
{
|
|
if (string.IsNullOrEmpty(ID))
|
|
{
|
|
return false;
|
|
}
|
|
try
|
|
{
|
|
var Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
dbHelper.ClearParameter();
|
|
dbHelper.CommandType = CommandType.Text;
|
|
dbHelper.CommandText = "";
|
|
string sql = "INSERT INTO [dbo].[base_collect_state]([collectId],[collectState],[collectTime]) VALUES ('" + ID + "','" + state + "','" + Time + "')";
|
|
dbHelper.CommandText = sql;
|
|
dbHelper.ExecuteNonQuery();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogInfo.Fatal("设备软件状态插入失败" + ex.ToString());
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
//dbHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
private int TryToInt(string str)
|
|
{
|
|
int returnInt = 0;
|
|
|
|
if (str == null || str.Trim().Length < 1)
|
|
{
|
|
return returnInt;
|
|
}
|
|
|
|
if (int.TryParse(str, out returnInt))
|
|
{
|
|
return returnInt;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|