ulysseskao
2016-05-05 d7d23f920634fd2e70457ca77a137af12b81ec5a
rename file
1 files deleted
1 files added
270 ■■■■ changed files
CCSTrace/CCS/Object/DeptContrast.cs 137 ●●●●● patch | view | raw | blame | history
CCSTrace/CCS/Object/Dept_Contrast.cs 133 ●●●●● patch | view | raw | blame | history
CCSTrace/CCS/Object/DeptContrast.cs
New file
@@ -0,0 +1,137 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.OracleClient;
using CCSTrace.TPower.DMMS.Model.CCS;
using NLog;
namespace CCSTrace.CCS.Object
{
    public class DeptContrast
    {
        private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
        public const string DefaultDept = "市區巡修課";
        public static DeptContrast Instance { get; } = new DeptContrast();
        private List<DEPTCONTRAST> _mTotalData;
        private DeptContrast()
        {
        }
        public int getDept_Code(string mMeter)
        {
            //int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.GlobalVariable.Dept, DefaultDept);
            var result = -1;
            try
            {
                for (var i = 0; i < _mTotalData.Count; i++)
                {
                    var tmpData = _mTotalData[i];
                    if (tmpData.MAXMETER == null)
                    {
                        result = Convert.ToInt32(tmpData.DEPTCODE);
                        break;
                    }
                    else
                    {// 一對多(需作比對)
                        var minMeter = Convert.ToInt64(tmpData.MINMETER);
                        var maxMeter = Convert.ToInt64(tmpData.MAXMETER);
                        var custMeter = Convert.ToInt64(mMeter);
                        if ((custMeter > minMeter) && (custMeter < maxMeter))
                        {
                            result = Convert.ToInt32(tmpData.DEPTCODE);
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Warn(ex, ex.Message);
            }
            return result;
        }
        public int getDept_Code(int scCode, string meter)
        {
            var result = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
            try
            {
                for (var i = 0; i < _mTotalData.Count; i++)
                {
                    var tmpData = _mTotalData[i];
                    var tmpDept = Convert.ToInt32(tmpData.SCCODE);
                    if (tmpDept == scCode)
                    {
                        // 一對一(無最大最小電號限制)
                        if (tmpData.MAXMETER == null)
                        {
                            result = Convert.ToInt32(tmpData.DEPTCODE);
                            break;
                        }
                        else
                        {// 一對多(需作比對)
                            var minMeter = Convert.ToInt64(tmpData.MINMETER);
                            var maxMeter = Convert.ToInt64(tmpData.MAXMETER);
                            var custMeter = Convert.ToInt64(meter);
                            if ((custMeter > minMeter) && (custMeter < maxMeter))
                            {
                                result = Convert.ToInt32(tmpData.DEPTCODE);
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Warn(ex, ex.Message);
            }
            return result;
        }
        public void Initialize(OracleConnection conn)
        {
            _mTotalData = new List<DEPTCONTRAST>();
            var sqlStmt = "SELECT SC_CODE,DEPT_CODE,MAX_METER,MIN_METER FROM CCS.DEPT_CONTRAST";
            var command = new OracleCommand(sqlStmt, conn);
            var reader = command.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    var deptcontrast = new DEPTCONTRAST
                    {
                        SCCODE = reader["SC_CODE"].ToString(),
                        DEPTCODE = reader["Dept_Code"].ToString(),
                        MAXMETER = reader["Max_Meter"].ToString(),
                        MINMETER = reader["Min_Meter"].ToString()
                    };
                    _mTotalData.Add(deptcontrast);
                }
            }
            catch (Exception e)
            {
                Logger.Warn(e, e.Message);
            }
            finally
            {
                reader?.Close();
                command?.Dispose();
            }
        }
    }
}
CCSTrace/CCS/Object/Dept_Contrast.cs
File was deleted