WorkCountManager.cs 3.0 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TSA_V.Common;

namespace TSA_V.DeviceLibrary 
{

    public class WorkCountManager
    {
        public static CountInfo CountObj = null;
        public static bool IsNeedCount = ConfigAppSettings.GetBoolValue(Setting_Init.IsNeedCount);
        public static void LoadData()
        {
            try
            {
                string[] lines = FileUtil.ReadFileArray(GetConfigPath());
                if (lines.Length > 0)
                {
                    string countStr = lines[0];
                    CountObj = JsonHelper.DeserializeJsonToObject<CountInfo>(countStr);
                }
                if (CountObj == null)
                {
                    CountObj = new CountInfo();
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("出错:" + ex.ToString());
            }
        }
        
        public static void AddWorkCount()
        {
            if (!IsNeedCount)
            {
                return;
            }
            CountObj.WorkCount++;
            //判断是否是今日
            if (!DateTime.Now.Date.Equals(CountObj.TodayTime.Date))
            { 
                CountObj.TodayWorkCount = 0;
                CountObj.TodayTime = DateTime.Now;
            }
            CountObj.TodayWorkCount++;
            SaveListToFile(CountObj);
        }
       
        public static void ClearTodayCount()
        {
            LogUtil.info("清理今日统计数量"); 
            CountObj.TodayWorkCount = 0;
            CountObj.TodayTime = DateTime.Now;
            SaveListToFile(CountObj);
        }
        public static void ClearCount()
        {
            LogUtil.info("清理统计数量");
            CountObj = new CountInfo();
            SaveListToFile(CountObj);
        }
        public static string GetConfigPath()
        {
            string appPath = Application.StartupPath;
            string filePath = appPath + ConfigAppSettings.GetValue(Setting_Init.WorkCount_ConfigPath);
            return filePath;
        }
        private static bool SaveListToFile(CountInfo obj)
        {
            string str = JsonHelper.SerializeObject(obj);
            string filePath = GetConfigPath();

            string[] strArray = new string[] { str };

            return FileUtil.SaveListToFile(strArray, GetConfigPath());
        }
    }

    public class CountInfo
    {
        public CountInfo()
        {
            WorkCount = 0;
       
            StartTime = DateTime.Now; 
            TodayWorkCount = 0;
            TodayTime = DateTime.Now;
        }

        public int WorkCount { get; set; }

     
        /// <summary>
        ///开始记录的时间,清理后需要更新时间
        /// </summary>
        public DateTime StartTime { get; set; }


        public int TodayWorkCount { get; set; } 

        public DateTime TodayTime { get; set; }
    }
}