Newer
Older
RbFreqStand / RbFreqStandMeasure / R_DataBase / Service / Impl / CounterDataServiceImpl.cs
yangqianqian on 15 Apr 2021 9 KB after test
using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model;
using Casic.Birmm.RbFreqStandMeasure.Tools;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;

namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service.Impl
{
    class CounterDataServiceImpl:CounterDataService
    {

        public int add(long deviceId, string outValue, string value, string sensitivity, DateTime logTime, string detecType)
        {
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : 数据库链接断开");
                    return iRetval;
                }

                string sQry = "INSERT INTO r_counter_data (DEVICE_ID, OUT_VALUE, VALUE, SENSITIVITY, LOG_TIME, DETEC_TYPE)" +
                    " values (@DEVICE_ID,@OUT_VALUE,@VALUE,@SENSITIVITY,@LOG_TIME,@DETEC_TYPE)";

                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                cmd.Parameters.Add("@OUT_VALUE", MySqlDbType.String, 255).Value = outValue;
                cmd.Parameters.Add("@VALUE", MySqlDbType.String, 0).Value = value;
                cmd.Parameters.Add("@SENSITIVITY", MySqlDbType.String, 0).Value = sensitivity;
                cmd.Parameters.Add("@LOG_TIME", MySqlDbType.DateTime, 0).Value = logTime;
                cmd.Parameters.Add("@DETEC_TYPE", MySqlDbType.String, 0).Value = detecType;

                cmd.ExecuteNonQuery();

                cmd.Dispose();

                iRetval = 0;
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : " + ex.Message);
                iRetval = -1;
            }

            return iRetval;
        }

        public int update(long deviceId, string outValue, string value, string sensitivity, DateTime logTime, string detecType)
        {
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : 数据库链接断开");
                    return iRetval;
                }

                string sQry = "SELECT * FROM r_counter_data where DEVICE_ID=@DEVICE_ID AND OUT_VALUE=@OUT_VALUE";
                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                cmd.Parameters.Add("@OUT_VALUE", MySqlDbType.String, 255).Value = outValue;
                cmd.ExecuteNonQuery();
                using (MySqlDataReader aReader = cmd.ExecuteReader())
                {
                    if (aReader.Read())
                    {
                        sQry = "update r_counter_data set VALUE=@VALUE, SENSITIVITY=@SENSITIVITY, LOG_TIME@LOG_TIME, DETEC_TYPE=@DETEC_TYPE " +
                                   " where DEVICE_ID=@DEVICE_ID AND OUT_VALUE=@OUT_VALUE";

                        cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                        cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                        cmd.Parameters.Add("@OUT_VALUE", MySqlDbType.String, 255).Value = outValue;
                        cmd.Parameters.Add("@VALUE", MySqlDbType.String, 0).Value = value;
                        cmd.Parameters.Add("@SENSITIVITY", MySqlDbType.String, 0).Value = sensitivity;
                        cmd.Parameters.Add("@LOG_TIME", MySqlDbType.DateTime, 0).Value = logTime;
                        cmd.Parameters.Add("@DETEC_TYPE", MySqlDbType.DateTime, 0).Value = detecType;

                        cmd.ExecuteNonQuery();
                    }
                    else
                    {
                        sQry = "INSERT INTO r_counter_data (DEVICE_ID, OUT_VALUE, VALUE, SENSITIVITY, LOG_TIME, DETEC_TYPE)" +
                           "values(@DEVICE_ID,@OUT_VALUE,@VALUE,@SENSITIVITY,@LOG_TIME,@DETEC_TYPE)";

                        cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                        cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                        cmd.Parameters.Add("@OUT_VALUE", MySqlDbType.String, 255).Value = outValue;
                        cmd.Parameters.Add("@VALUE", MySqlDbType.String, 0).Value = value;
                        cmd.Parameters.Add("@SENSITIVITY", MySqlDbType.String, 0).Value = sensitivity;
                        cmd.Parameters.Add("@LOG_TIME", MySqlDbType.DateTime, 0).Value = logTime;
                        cmd.Parameters.Add("@DETEC_TYPE", MySqlDbType.DateTime, 0).Value = detecType;

                        cmd.ExecuteNonQuery();
                    }
                }
                        
               

                cmd.Dispose();

                iRetval = 0;
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : " + ex.Message);
                iRetval = -1;
            }

            return iRetval;
        }


        public int delete(long deviceId, string outValue, string value, string sensitivity, DateTime logTime)
        {
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : 数据库链接断开");
                    return iRetval;
                }

                string sQry = "delete from r_counter_data where DEVICE_ID=@DEVICE_ID,OUT_VALUE=@OUT_VALUE,VALUE=@VALUE,SENSITIVITY=@SENSITIVITY,LOG_TIME=@LOG_TIME";
                    

                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                cmd.Parameters.Add("@OUT_VALUE", MySqlDbType.String, 255).Value = outValue;
                cmd.Parameters.Add("@VALUE", MySqlDbType.String, 0).Value = value;
                cmd.Parameters.Add("@SENSITIVITY", MySqlDbType.String, 0).Value = sensitivity;
                cmd.Parameters.Add("@LOG_TIME", MySqlDbType.DateTime, 0).Value = logTime;

                cmd.ExecuteNonQuery();

                cmd.Dispose();

                iRetval = 0;
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addCounterParam : " + ex.Message);
                iRetval = -1;
            }

            return iRetval;
        }

        public List<CounterData> getList(long deviceId, string startTime, string endTime, string detecType)
        {
            List<CounterData> counterDataList = new List<CounterData>();
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchDetectionItem : 数据库链接断开");
                    return null;
                }

                string sQry = "SELECT * FROM r_counter_data where DEVICE_ID = " + deviceId;
                if (!String.IsNullOrEmpty(startTime))
                {
                    sQry = sQry + " and LOG_TIME >= ('" + startTime + "'";
                }
                if (!String.IsNullOrEmpty(endTime))
                {
                    sQry = sQry + " and LOG_TIME <= ('" + endTime + "'";
                }
                if (!String.IsNullOrEmpty(detecType))
                {
                    sQry = sQry + " and DETEC_TYPE = " + detecType;
                }
                MySqlCommand aCommand = new MySqlCommand(sQry, DbConnectService.mySqlConnect);

                using (MySqlDataReader aReader = aCommand.ExecuteReader())
                {
                    while (aReader.Read())
                    {
                        CounterData counterData = new CounterData();
                        //姓名
                        if (!aReader.IsDBNull(0)) counterData.Id = Convert.ToInt32(aReader.GetString(0));
                        if (!aReader.IsDBNull(1)) counterData.DeviceId = Convert.ToInt64(aReader.GetString(1));
                        if (!aReader.IsDBNull(2)) counterData.OutValue = aReader.GetString(2);
                        if (!aReader.IsDBNull(3)) counterData.Value = aReader.GetString(3);
                        if (!aReader.IsDBNull(4)) counterData.Sensitivity = aReader.GetString(4);
                        if (!aReader.IsDBNull(5)) counterData.LogTime = Convert.ToDateTime(aReader.GetString(5));
                        if (!aReader.IsDBNull(6)) counterData.DetecType = aReader.GetString(6);
                        counterDataList.Add(counterData);
                    }

                    aCommand.Dispose();
                }
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchDetectionItem: " + ex.Message);
            }
            return counterDataList;
        }
    }

    
}