Przeglądaj źródła

Merge branch 'master' of http://106.14.142.95:3000/lxb/htl_ccs

zhuhao 1 rok temu
rodzic
commit
da807b9c09

BIN
.vs/IMCS_CCS/DesignTimeBuild/.dtbcache.v2


BIN
.vs/IMCS_CCS/v16/.suo


Plik diff jest za duży
+ 534 - 534
IMCS_CCS/Service/Impl/HttpRequestService.cs


+ 1339 - 1339
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1,495 +1,495 @@
-using HslCommunication;
-using HslCommunication.Profinet.Siemens;
-using IMCS.CCS.Common.Redis;
-using IMCS.CCS.DeviceProtocol;
-using IMCS.CCS.Entitys;
-using IMCS.CCS.Models.vo;
-using IMCS.CCS.Services;
-using IMCS_CCS.Model.vo;
-using IMCS_CCS.Utils;
-using Microsoft.Extensions.Configuration;
-using Newtonsoft.Json;
-using S7.Net;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using IMCS.CCS.Models;
-using System.Net.NetworkInformation;
-using IMCS_CCS.Model;
-
-namespace IMCS.CCS.Service.Impl
-{
-    /// <summary>
-    /// 任务调度服务
-    /// </summary>
-    public class TaskJobService : ITaskJobService
-    {
-        private readonly IRedisService _redisService;
-
-        private readonly IDeviceService _deviceService;
-
-        private readonly IApiRequestService _apiRequestService;
-
-        private readonly ITaskCallbackService _taskCallbackService;
-
-        private readonly ICcsTagValueService _ccsTagValueService;
-
-        private readonly IEquipmentMonitorService _equipmentMonitorService;
-
-        private readonly IDictionaryService _dictionaryService;
-
-        private readonly ICcsActionAddressService _ccsActionAddressService;
-
-        private string ecsUrlContext;
-
-        private string ecsRootUrlContext;
-
-        private string fanucUrlContext;
-
-        private string opcuacUrlContext;
-
-        private string hdhUrlContext;
-
-        private Dictionary<String, int> syncStatusMap = new Dictionary<String, int>();
-
-        private Dictionary<String, String> jcAddressDict = new Dictionary<String, String>();
-
-        private Dictionary<String, String> jcIpDict = new Dictionary<String, String>();
-
-        private string LOG_TITLE_OPCUA = "OPCUA采集";
-
-        private string LOG_TITLE_FUNC = "发那科采集";
-
-        private string LOG_TITLE_HEIDEHAIN = "海德汉采集";
-
-        private string LOG_TITLE_S7 = "S7采集";
-
-        private string LOG_TITLE_CALLBACK = "回调任务";
-
-        private string LOG_TITLE_DEVICE = "设备监控";
-
-        private string PLC_ALARM_INFO = "PLC有异常";
-
-        private string imcs_redis_key = "IMCS_CCS:"; 
-
-        public IConfiguration Configuration { get; }
-
-
-        public TaskJobService(IRedisService redisService,
-                              ITaskCallbackService taskCallbackService,
-                              IDeviceService deviceService,
-                              IApiRequestService apiRequestService,
-                              ICcsTagValueService ccsTagValueService,
-                              IEquipmentMonitorService equipmentMonitorService,
-                              IDictionaryService dictionaryService,
-                              ICcsActionAddressService ccsActionAddressService,
-                              IConfiguration configuration)
-        {
-            _redisService = redisService;
-            _taskCallbackService = taskCallbackService;
-            _deviceService = deviceService;
-            _apiRequestService = apiRequestService;
-            _ccsTagValueService = ccsTagValueService;
-            _equipmentMonitorService = equipmentMonitorService;
-            _dictionaryService = dictionaryService;
-            _ccsActionAddressService = ccsActionAddressService;
-            Configuration = configuration;
-            ecsUrlContext = Configuration.GetConnectionString("ecsUrlContext");
-            fanucUrlContext = Configuration.GetConnectionString("fanucUrlContext");
-            opcuacUrlContext = Configuration.GetConnectionString("opcuacUrlContext");
-            hdhUrlContext = Configuration.GetConnectionString("hdhUrlContext");
-            ecsRootUrlContext = Configuration.GetConnectionString("ecsRootUrlContext");
-            syncStatusMap.Add("离线", 0);
-            syncStatusMap.Add("空闲", 1);
-            syncStatusMap.Add("生产中", 2);
-            syncStatusMap.Add("报警", 3);
-            //在线状态默认传参后台空闲状态
-            syncStatusMap.Add("在线", 1);
-            syncStatusMap.Add("掉线", -1);
-            
-        }
-
-      
-
-        /// <summary>
-        /// 采集数据S7
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> DataCollectS7Job()
-        {
-            try
-            { 
-                List<Device> deviceList = await getDeviceList();
-                deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.S7_1500.ToString()) && x.State).ToList();
-                foreach (Device device in deviceList)
-                {
-                    List<CcsTagValue> tagValues = new List<CcsTagValue>();
-                    string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
-                    var data = await _redisService.Database.StringGetAsync(redis_key);
-                    if (data.IsNullOrEmpty)
-                    {
-                        CcsTagValue tagQuery = new CcsTagValue();
-                        tagQuery.ProtocolType = device.ProtocolType;
-                        tagQuery.Ip = device.Ip;
-                        tagValues = _ccsTagValueService.GetList(tagQuery);
-                        //首次设置redis
-                        if (tagValues != null && tagValues.Count > 0)
-                        {
-                            await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(tagValues));
-                        }
-                    }
-                    else
-                    {
-                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(data);
-                    }
-
-                    if (tagValues != null && tagValues.Count > 0)
-                    {
-                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(data);
-                        List<CcsTagValue> changTagValues = new List<CcsTagValue>();
-
-
-                        //Plc s7 = DevicePlcS7.S7(device.ServerUrl, ProtocalTypeEnum.S7_1500.ToString());
-                        SiemensS7Net s7 = DevicePlcS7.SiemensS7(device.ServerUrl);
-                        OperateResult ConnectionResult = s7.ConnectServer();
-                        if (!ConnectionResult.IsSuccess)
-                        {
-                            device.State = false;
-                            await _deviceService.UpdateDevice(device);
-                            s7.ConnectClose();
-                            Log.Instance.WriteLogAdd("S7采集异常,plc连不上==>"+ device.ServerUrl, LOG_TITLE_S7);
-                            return "采集失败,plc连不上";
-                        }
-                        else
-                        {
-                            foreach (CcsTagValue tagValueData in tagValues)
-                            {
-                                string operateResult = "";
-                                if (tagValueData.Type.Equals(TagValueReadTypeEnum.BOOL.ToString()))
-                                {
-                                    operateResult = s7.ReadBool(tagValueData.Address).Content.ToString();
-                                }
-                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.SHORT.ToString()))
-                                {
-                                    operateResult = s7.ReadInt16(tagValueData.Address).Content.ToString();
-                                }
-                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.String.ToString()))
-                                {
-                                    operateResult = s7.ReadString(tagValueData.Address).Content.ToString();
-                                }
-                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.Array.ToString()))
-                                {
-                                    operateResult = ToolUtils.ReturnStringByBytes(s7.Read(tagValueData.Address,2048).Content);
-                                }
-
-                                if (!string.IsNullOrEmpty(operateResult) && tagValueData.TagValue != operateResult)
-                                {
-                                    tagValueData.TagValue = operateResult.ToString();
-                                    tagValueData.UpdateTime = DateTime.Now;
-                                    changTagValues.Add(tagValueData);
-                                    Log.Instance.WriteLogAdd("S7采集,Ip:" + tagValueData.Ip + " 地址:" + tagValueData.Address + ",值:" + tagValueData.TagValue + ",发生变化", LOG_TITLE_S7);
-                                    //有变化更新数据库
-                                    await _ccsTagValueService.Update(tagValueData);
-                                }
-                                Thread.Sleep(50);
-                            }
-                            s7.ConnectClose();
-                            //值有变化,重新设置一次redis
-                            if (changTagValues != null && changTagValues.Count > 0)
-                            {
-                                await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(tagValues));
-                            }
-                            //存储采集数据
-                            CollectDataLog.Instance.WriteLogAdd(data, LOG_TITLE_S7);
-                        }
-
-                    }
-                }
-                return "S7采集成功";
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("S7采集异常===>>" + ex.Message, LOG_TITLE_S7);
-                return "S7采集失败";
-            }
-        }
-
-       
-
-        /// <summary>
-        /// 采集数据HEIDEHAIN
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> DataCollectHeidehainJob()
-        {
-            try
-            {
-                List<Device> deviceList = await getDeviceList();
-                deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.HEIDEHAIN.ToString()) && x.State).ToList();
-                foreach (Device device in deviceList)
-                {
-                    RequestHeidhData hdhReq = new RequestHeidhData();
-                    hdhReq.ServerUrl = device.ServerUrl;
-                    hdhReq.MachineName = device.UserName;
-                    hdhReq.Type = "Collect";
-                    //调用海德汉采集接口
-                    var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
-                    {
-                        string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
-                        //采集数据放入缓存
-                        await _redisService.Database.StringSetAsync(redis_key, Result.Message);
-                        //存储采集数据
-                        CollectDataLog.Instance.WriteLogAdd(Result.Message, LOG_TITLE_HEIDEHAIN);
-                    }
-
-
-                }
-                return "HEIDEHAIN采集成功";
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("HEIDEHAIN采集异常===>>" + ex.Message, LOG_TITLE_S7);
-                return "HEIDEHAIN采集失败";
-            }
-        }
-
-        /// <summary>
-        /// 上传程序回调任务
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> CallbackJob1()
-        {
-            List<TaskCallback> list = new List<TaskCallback>();
-            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            if (taskCallbackListData.IsNullOrEmpty)
-            {
-                list = await _taskCallbackService.GetAllList();
-            }
-            else
-            {
-                list = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
-            }
-
-            TaskCallback task = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).FirstOrDefault();
-            if (task == null)
-            {
-                return "无回调任务";
-            }
-            string message = "";
-            try
-            {
-
-                DateTime currentTime = DateTime.Now;
-                if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
-                {
-                    CallBackRequestData requestData = new CallBackRequestData();
-                    requestData.taskId = long.Parse(task.TaskId);
-                    requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                    var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                    ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                    if (result.IsSuccess && responseECSCallback.code == 0)
-                    {
-                        task.State = false;
-                        task.UpdateTime = DateTime.Now;
-                        await _taskCallbackService.CreateOrUpdateAndCache(task);
-                        message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                        Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                    }
-                    else
-                    {
-                        message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                        Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                    }
-
-                }
-
-                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
-                return "回调异常" + ex.Message;
-            }
-        }
-
-        /// <summary>
-        /// 取和放回调任务
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> CallbackJob2()
-        {
-            List<TaskCallback> taskList = new List<TaskCallback>();
-            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            if (taskCallbackListData.IsNullOrEmpty)
-            {
-                taskList = await _taskCallbackService.GetAllList();
-            }
-            else
-            {
-                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
-            }
-            //在线设备 
-            List<Device> deviceList = await getDeviceList(); 
-
-            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.RobotAction.ToString())).ToList();
-            taskList = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).ToList();
-            //TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault() ; 
-            if (taskList == null || taskList.Count == 0)
-            {
-                return "无回调任务" ;
-            } 
-            string message = "";
-            try
-            { 
-                foreach(TaskCallback task in taskList)
-                { 
-                    CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP;
-                    //tagValueQuery.Address = task.Address;
-                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
-
-                    if ((callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue) )
-                    {
-                        CallBackRequestData requestData = new CallBackRequestData();
-                        requestData.taskId = long.Parse(task.TaskId);
-                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                       
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
-                        {
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK); 
-                        }
-                        else
-                        {
-                            //ecs返回-5 任务作废
-                            if(result.IsSuccess && responseECSCallback.code == -5)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                task.Description = "ecs返回-5,回调任务作废";
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败,ecs通知任务作废==>" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                            }
-                           
-                        }
-
-                    }
-                    //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    {
-                        bool failFalg = false;
-                        if (!string.IsNullOrEmpty(task.FailAddress))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress2))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress3))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (failFalg)
-                        {
-                            CallBackRequestData requestData = new CallBackRequestData();
-                            requestData.taskId = long.Parse(task.TaskId);
-                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                            requestData.code = "0";
-                            requestData.msg = "操作失败";
-                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                            if (result.IsSuccess)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
-                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
-                            }
-                        }
-                    }
-                    Thread.Sleep(1000);
-                }
-                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
-                return "回调异常" + ex.Message;
-            }
-        }
-
-        /// <summary>
-        /// 读写回调任务
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> CallbackJob3()
-        {
-            List<TaskCallback> taskList = new List<TaskCallback>();
-            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            if (taskCallbackListData.IsNullOrEmpty)
-            {
-                taskList = await _taskCallbackService.GetAllList();
-            }
-            else
-            {
-                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
-            }
-            
-            List<Device> deviceList = await getDeviceList();
-            //在线设备
-            taskList = taskList.Where(x => (x.OperateType.Equals(ActionTypeEnum.ReadRFID.ToString()) 
-                                         || x.OperateType.Equals(ActionTypeEnum.WriteRFID.ToString())) && x.State).ToList();
-            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
-            if (task == null)
-            {
-                return "无回调任务";
-            }
-            string message = "";
-            try
-            { 
-                    DateTime currentTime = DateTime.Now;
-                    CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP;
-                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
-                   
-                    if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue )
+using HslCommunication;
+using HslCommunication.Profinet.Siemens;
+using IMCS.CCS.Common.Redis;
+using IMCS.CCS.DeviceProtocol;
+using IMCS.CCS.Entitys;
+using IMCS.CCS.Models.vo;
+using IMCS.CCS.Services;
+using IMCS_CCS.Model.vo;
+using IMCS_CCS.Utils;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
+using S7.Net;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using IMCS.CCS.Models;
+using System.Net.NetworkInformation;
+using IMCS_CCS.Model;
+
+namespace IMCS.CCS.Service.Impl
+{
+    /// <summary>
+    /// 任务调度服务
+    /// </summary>
+    public class TaskJobService : ITaskJobService
+    {
+        private readonly IRedisService _redisService;
+
+        private readonly IDeviceService _deviceService;
+
+        private readonly IApiRequestService _apiRequestService;
+
+        private readonly ITaskCallbackService _taskCallbackService;
+
+        private readonly ICcsTagValueService _ccsTagValueService;
+
+        private readonly IEquipmentMonitorService _equipmentMonitorService;
+
+        private readonly IDictionaryService _dictionaryService;
+
+        private readonly ICcsActionAddressService _ccsActionAddressService;
+
+        private string ecsUrlContext;
+
+        private string ecsRootUrlContext;
+
+        private string fanucUrlContext;
+
+        private string opcuacUrlContext;
+
+        private string hdhUrlContext;
+
+        private Dictionary<String, int> syncStatusMap = new Dictionary<String, int>();
+
+        private Dictionary<String, String> jcAddressDict = new Dictionary<String, String>();
+
+        private Dictionary<String, String> jcIpDict = new Dictionary<String, String>();
+
+        private string LOG_TITLE_OPCUA = "OPCUA采集";
+
+        private string LOG_TITLE_FUNC = "发那科采集";
+
+        private string LOG_TITLE_HEIDEHAIN = "海德汉采集";
+
+        private string LOG_TITLE_S7 = "S7采集";
+
+        private string LOG_TITLE_CALLBACK = "回调任务";
+
+        private string LOG_TITLE_DEVICE = "设备监控";
+
+        private string PLC_ALARM_INFO = "PLC有异常";
+
+        private string imcs_redis_key = "IMCS_CCS:"; 
+
+        public IConfiguration Configuration { get; }
+
+
+        public TaskJobService(IRedisService redisService,
+                              ITaskCallbackService taskCallbackService,
+                              IDeviceService deviceService,
+                              IApiRequestService apiRequestService,
+                              ICcsTagValueService ccsTagValueService,
+                              IEquipmentMonitorService equipmentMonitorService,
+                              IDictionaryService dictionaryService,
+                              ICcsActionAddressService ccsActionAddressService,
+                              IConfiguration configuration)
+        {
+            _redisService = redisService;
+            _taskCallbackService = taskCallbackService;
+            _deviceService = deviceService;
+            _apiRequestService = apiRequestService;
+            _ccsTagValueService = ccsTagValueService;
+            _equipmentMonitorService = equipmentMonitorService;
+            _dictionaryService = dictionaryService;
+            _ccsActionAddressService = ccsActionAddressService;
+            Configuration = configuration;
+            ecsUrlContext = Configuration.GetConnectionString("ecsUrlContext");
+            fanucUrlContext = Configuration.GetConnectionString("fanucUrlContext");
+            opcuacUrlContext = Configuration.GetConnectionString("opcuacUrlContext");
+            hdhUrlContext = Configuration.GetConnectionString("hdhUrlContext");
+            ecsRootUrlContext = Configuration.GetConnectionString("ecsRootUrlContext");
+            syncStatusMap.Add("离线", 0);
+            syncStatusMap.Add("空闲", 1);
+            syncStatusMap.Add("生产中", 2);
+            syncStatusMap.Add("报警", 3);
+            //在线状态默认传参后台空闲状态
+            syncStatusMap.Add("在线", 1);
+            syncStatusMap.Add("掉线", -1);
+            
+        }
+
+      
+
+        /// <summary>
+        /// 采集数据S7
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> DataCollectS7Job()
+        {
+            try
+            { 
+                List<Device> deviceList = await getDeviceList();
+                deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.S7_1500.ToString()) && x.State).ToList();
+                foreach (Device device in deviceList)
+                {
+                    List<CcsTagValue> tagValues = new List<CcsTagValue>();
+                    string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
+                    var data = await _redisService.Database.StringGetAsync(redis_key);
+                    if (data.IsNullOrEmpty)
+                    {
+                        CcsTagValue tagQuery = new CcsTagValue();
+                        tagQuery.ProtocolType = device.ProtocolType;
+                        tagQuery.Ip = device.Ip;
+                        tagValues = _ccsTagValueService.GetList(tagQuery);
+                        //首次设置redis
+                        if (tagValues != null && tagValues.Count > 0)
+                        {
+                            await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(tagValues));
+                        }
+                    }
+                    else
+                    {
+                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(data);
+                    }
+
+                    if (tagValues != null && tagValues.Count > 0)
+                    {
+                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(data);
+                        List<CcsTagValue> changTagValues = new List<CcsTagValue>();
+
+
+                        //Plc s7 = DevicePlcS7.S7(device.ServerUrl, ProtocalTypeEnum.S7_1500.ToString());
+                        SiemensS7Net s7 = DevicePlcS7.SiemensS7(device.ServerUrl);
+                        OperateResult ConnectionResult = s7.ConnectServer();
+                        if (!ConnectionResult.IsSuccess)
+                        {
+                            device.State = false;
+                            await _deviceService.UpdateDevice(device);
+                            s7.ConnectClose();
+                            Log.Instance.WriteLogAdd("S7采集异常,plc连不上==>"+ device.ServerUrl, LOG_TITLE_S7);
+                            return "采集失败,plc连不上";
+                        }
+                        else
+                        {
+                            foreach (CcsTagValue tagValueData in tagValues)
+                            {
+                                string operateResult = "";
+                                if (tagValueData.Type.Equals(TagValueReadTypeEnum.BOOL.ToString()))
+                                {
+                                    operateResult = s7.ReadBool(tagValueData.Address).Content.ToString();
+                                }
+                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.SHORT.ToString()))
+                                {
+                                    operateResult = s7.ReadInt16(tagValueData.Address).Content.ToString();
+                                }
+                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.String.ToString()))
+                                {
+                                    operateResult = s7.ReadString(tagValueData.Address).Content.ToString();
+                                }
+                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.Array.ToString()))
+                                {
+                                    operateResult = ToolUtils.ReturnStringByBytes(s7.Read(tagValueData.Address,2048).Content);
+                                }
+
+                                if (!string.IsNullOrEmpty(operateResult) && tagValueData.TagValue != operateResult)
+                                {
+                                    tagValueData.TagValue = operateResult.ToString();
+                                    tagValueData.UpdateTime = DateTime.Now;
+                                    changTagValues.Add(tagValueData);
+                                    Log.Instance.WriteLogAdd("S7采集,Ip:" + tagValueData.Ip + " 地址:" + tagValueData.Address + ",值:" + tagValueData.TagValue + ",发生变化", LOG_TITLE_S7);
+                                    //有变化更新数据库
+                                    await _ccsTagValueService.Update(tagValueData);
+                                }
+                                Thread.Sleep(50);
+                            }
+                            s7.ConnectClose();
+                            //值有变化,重新设置一次redis
+                            if (changTagValues != null && changTagValues.Count > 0)
+                            {
+                                await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(tagValues));
+                            }
+                            //存储采集数据
+                            CollectDataLog.Instance.WriteLogAdd(data, LOG_TITLE_S7);
+                        }
+
+                    }
+                }
+                return "S7采集成功";
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("S7采集异常===>>" + ex.Message, LOG_TITLE_S7);
+                return "S7采集失败";
+            }
+        }
+
+       
+
+        /// <summary>
+        /// 采集数据HEIDEHAIN
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> DataCollectHeidehainJob()
+        {
+            try
+            {
+                List<Device> deviceList = await getDeviceList();
+                deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.HEIDEHAIN.ToString()) && x.State).ToList();
+                foreach (Device device in deviceList)
+                {
+                    RequestHeidhData hdhReq = new RequestHeidhData();
+                    hdhReq.ServerUrl = device.ServerUrl;
+                    hdhReq.MachineName = device.UserName;
+                    hdhReq.Type = "Collect";
+                    //调用海德汉采集接口
+                    var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
+                    {
+                        string redis_key = "IMCS_CCS:" + device.Ip + ":" + device.ProtocolType;
+                        //采集数据放入缓存
+                        await _redisService.Database.StringSetAsync(redis_key, Result.Message);
+                        //存储采集数据
+                        CollectDataLog.Instance.WriteLogAdd(Result.Message, LOG_TITLE_HEIDEHAIN);
+                    }
+
+
+                }
+                return "HEIDEHAIN采集成功";
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("HEIDEHAIN采集异常===>>" + ex.Message, LOG_TITLE_S7);
+                return "HEIDEHAIN采集失败";
+            }
+        }
+
+        /// <summary>
+        /// 上传程序回调任务
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> CallbackJob1()
+        {
+            List<TaskCallback> list = new List<TaskCallback>();
+            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            if (taskCallbackListData.IsNullOrEmpty)
+            {
+                list = await _taskCallbackService.GetAllList();
+            }
+            else
+            {
+                list = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
+            }
+
+            TaskCallback task = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).FirstOrDefault();
+            if (task == null)
+            {
+                return "无回调任务";
+            }
+            string message = "";
+            try
+            {
+
+                DateTime currentTime = DateTime.Now;
+                if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
+                {
+                    CallBackRequestData requestData = new CallBackRequestData();
+                    requestData.taskId = long.Parse(task.TaskId);
+                    requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                    var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                    ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                    if (result.IsSuccess && responseECSCallback.code == 0)
+                    {
+                        task.State = false;
+                        task.UpdateTime = DateTime.Now;
+                        await _taskCallbackService.CreateOrUpdateAndCache(task);
+                        message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                        Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                    }
+                    else
+                    {
+                        message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                        Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                    }
+
+                }
+
+                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                return "回调异常" + ex.Message;
+            }
+        }
+
+        /// <summary>
+        /// 取和放回调任务
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> CallbackJob2()
+        {
+            List<TaskCallback> taskList = new List<TaskCallback>();
+            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            if (taskCallbackListData.IsNullOrEmpty)
+            {
+                taskList = await _taskCallbackService.GetAllList();
+            }
+            else
+            {
+                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
+            }
+            //在线设备 
+            List<Device> deviceList = await getDeviceList(); 
+
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.RobotAction.ToString())).ToList();
+            taskList = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).ToList();
+            //TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault() ; 
+            if (taskList == null || taskList.Count == 0)
+            {
+                return "无回调任务" ;
+            } 
+            string message = "";
+            try
+            { 
+                foreach(TaskCallback task in taskList)
+                { 
+                    CcsTagValue tagValueQuery = new CcsTagValue();
+                    tagValueQuery.Ip = task.IP;
+                    //tagValueQuery.Address = task.Address;
+                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+
+                    if ((callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue) )
+                    {
+                        CallBackRequestData requestData = new CallBackRequestData();
+                        requestData.taskId = long.Parse(task.TaskId);
+                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                       
+                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                        if (result.IsSuccess && responseECSCallback.code == 0)
+                        {
+                            task.State = false;
+                            task.UpdateTime = DateTime.Now;
+                            await _taskCallbackService.CreateOrUpdateAndCache(task);
+                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK); 
+                        }
+                        else
+                        {
+                            //ecs返回-5 任务作废
+                            if(result.IsSuccess && responseECSCallback.code == -5)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                task.Description = "ecs返回-5,回调任务作废";
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败,ecs通知任务作废==>" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                           
+                        }
+
+                    }
+                    //回调检测到失败,回调通知ecs
+                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
+                    {
+                        bool failFalg = false;
+                        if (!string.IsNullOrEmpty(task.FailAddress))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress2))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress3))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (failFalg)
+                        {
+                            CallBackRequestData requestData = new CallBackRequestData();
+                            requestData.taskId = long.Parse(task.TaskId);
+                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                            requestData.code = "0";
+                            requestData.msg = "操作失败";
+                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            if (result.IsSuccess)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
+                            }
+                        }
+                    }
+                    Thread.Sleep(1000);
+                }
+                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                return "回调异常" + ex.Message;
+            }
+        }
+
+        /// <summary>
+        /// 读写回调任务
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> CallbackJob3()
+        {
+            List<TaskCallback> taskList = new List<TaskCallback>();
+            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            if (taskCallbackListData.IsNullOrEmpty)
+            {
+                taskList = await _taskCallbackService.GetAllList();
+            }
+            else
+            {
+                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
+            }
+            
+            List<Device> deviceList = await getDeviceList();
+            //在线设备
+            taskList = taskList.Where(x => (x.OperateType.Equals(ActionTypeEnum.ReadRFID.ToString()) 
+                                         || x.OperateType.Equals(ActionTypeEnum.WriteRFID.ToString())) && x.State).ToList();
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
+            {
+                return "无回调任务";
+            }
+            string message = "";
+            try
+            { 
+                    DateTime currentTime = DateTime.Now;
+                    CcsTagValue tagValueQuery = new CcsTagValue();
+                    tagValueQuery.Ip = task.IP;
+                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+                   
+                    if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue )
                     {
                         CcsTagValue callBacktagValue2 = null;
                         if (task.OperateType.Equals(ActionTypeEnum.ReadRFID.ToString())){
@@ -497,856 +497,856 @@ namespace IMCS.CCS.Service.Impl
                            
                         }
                    
-                        CallBackRequestData requestData = new CallBackRequestData();
-                        requestData.taskId = long.Parse(task.TaskId);
+                        CallBackRequestData requestData = new CallBackRequestData();
+                        requestData.taskId = long.Parse(task.TaskId);
                         requestData.taskNodeId = long.Parse(task.TaskNodeId);
                         //读RFID的值返回ecs
                         if (callBacktagValue2 != null)
                         {
                             requestData.content = callBacktagValue2.TagValue;
                         }
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
-                        { 
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                        }
-                        else
-                        {
-                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
-                        }
-
-                    }
-
-                    //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    {
-                        bool failFalg = false;
-                        if (!string.IsNullOrEmpty(task.FailAddress))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress2))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress3))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (failFalg)
-                        {
-                            CallBackRequestData requestData = new CallBackRequestData();
-                            requestData.taskId = long.Parse(task.TaskId);
-                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                            requestData.code = "0";
-                            requestData.msg = "操作失败";
-                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                            if (result.IsSuccess && responseECSCallback.code == 0)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
-                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                            }
-                        }
-                    }
- 
-                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
-                return "回调异常" + ex.Message;
-            }
-        }
-
-        /// <summary>
-        /// 启动机床程序回调任务
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> CallbackJob4()
-        {
-            List<TaskCallback> taskList = new List<TaskCallback>();
-            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            if (taskCallbackListData.IsNullOrEmpty)
-            {
-                taskList = await _taskCallbackService.GetAllList();
-            }
-            else
-            {
-                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
-            }
-            List<Device> deviceList = await getDeviceList();
-            //在线设备 
-            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString()) && x.State &&  deviceList.Any(device => device.Ip == x.IP)).ToList();
-            if (taskList == null || taskList.Count == 0)
-            {
-                return "无回调任务";
-            }
-            string message = "";
-            try
-            { 
-                    DateTime currentTime = DateTime.Now;
-                    foreach (TaskCallback task in taskList)
-                    { 
-                    CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP;
-                    //tagValueQuery.Address = task.Address;
-                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
-                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address.Trim()).FirstOrDefault(); 
-                
-                    if (tagValue != null && tagValue.TagValue == task.CallbackValue ) 
-                    {
-                        CallBackRequestData requestData = new CallBackRequestData();
-                        requestData.taskId = long.Parse(task.TaskId);
-                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
-                        {
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                        }
-                        else
-                        {
-                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                        }
-                    }
-
-                    //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    {
-                        bool failFalg = false;
-                        if (!string.IsNullOrEmpty(task.FailAddress))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress2))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress3))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (failFalg)
-                        {
-                            CallBackRequestData requestData = new CallBackRequestData();
-                            requestData.taskId = long.Parse(task.TaskId);
-                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                            requestData.code = "0";
-                            requestData.msg = "操作失败";
-                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                            if (result.IsSuccess && responseECSCallback.code == 0)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
-                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                            }
-                        }
-                        
-                    }
-                    Thread.Sleep(1000);
-                }
-                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
-                return "回调异常" + ex.Message;
-            }
-        }
-        /// <summary>
-        /// 启动清洗机回调任务
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> CallbackJob5()
-        {
-            List<TaskCallback> taskList = new List<TaskCallback>();
-            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            if (taskCallbackListData.IsNullOrEmpty)
-            {
-                taskList = await _taskCallbackService.GetAllList();
-            }
-            else
-            {
-                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
-            }
-            List<Device> deviceList = await getDeviceList();
-            //在线设备
-            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartCleanMachine.ToString()) && x.State && deviceList.Any(device => device.Ip == x.IP)).ToList();
-           // TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
-            if (taskList == null || taskList.Count == 0)
-            {
-                return "无回调任务";
-            }
-            string message = "";
-            try
-            {
-                DateTime currentTime = DateTime.Now; 
-                foreach (TaskCallback task in taskList)
-                { 
-                    CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP;
-                    //tagValueQuery.Address = task.Address;
-                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
-                    if (tagValue != null && tagValue.TagValue == task.CallbackValue)
-                    //临时处理以解决ecs配置问题
-                    //if(currentTime.Subtract(task.CreateTime).TotalSeconds > 10)
-                    {
-                        CallBackRequestData requestData = new CallBackRequestData();
-                        requestData.taskId = long.Parse(task.TaskId);
-                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
-                        {
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                        }
-                        else
-                        {
-                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                        }
-                    }
-
-                    //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    {
-                        bool failFalg = false;
-                        if (!string.IsNullOrEmpty(task.FailAddress))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress2))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress3))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (failFalg)
-                        {
-                            CallBackRequestData requestData = new CallBackRequestData();
-                            requestData.taskId = long.Parse(task.TaskId);
-                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                            requestData.code = "0";
-                            requestData.msg = "操作失败";
-                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                            if (result.IsSuccess && responseECSCallback.code == 0)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
-                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                            }
-                        }
-                    }
-                    Thread.Sleep(1000);
-                }
-                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
-                return "回调异常" + ex.Message;
-            }
-        }
- 
-
-        /// <summary>
-        /// 监控设备状态
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> MonitorEquipmentStatusJob()
-        {
-            try
-            {
-                string message = "MonitorEquipmentStatusJob调度成功";
-                //查询全部使用设备包括不在线和离线
-                string all_device_redis_key = imcs_redis_key + RedisKeyEnum.ALLDeviceList ;
-                List<Device> devices = new List<Device>(); 
-                var deviceListData = await _redisService.Database.StringGetAsync(all_device_redis_key);
-                if (deviceListData.IsNullOrEmpty)
-                {
-                    devices = _deviceService.GetDevices();
-                    await _redisService.Database.StringSetAsync(all_device_redis_key, JsonConvert.SerializeObject(devices));
-                }
-                else
-                {
-                    devices = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                }
-
-                List<EquipmentMonitor> equipmentMonitors = new List<EquipmentMonitor>();
-                string equipment_monitors_redis_key = imcs_redis_key + RedisKeyEnum.MonitorEquipmentStatusJob;
-                var data = await _redisService.Database.StringGetAsync(equipment_monitors_redis_key);
-                if (data.IsNullOrEmpty)
-                {
-                    equipmentMonitors = await _equipmentMonitorService.GetList();
-                    //首次设置redis
-                    if (equipmentMonitors != null && equipmentMonitors.Count > 0)
-                    {
-                        await _redisService.Database.StringSetAsync(equipment_monitors_redis_key, JsonConvert.SerializeObject(equipmentMonitors));
-                    }
-                }
-                else
-                {
-                    equipmentMonitors = JsonConvert.DeserializeObject<List<EquipmentMonitor>>(data);
-                }
-                //变化的设备
-                List<EquipmentMonitor> changeEquipmentMonitors = new List<EquipmentMonitor>();
-                foreach (EquipmentMonitor equipment in equipmentMonitors)
-                {
-                    Device device = devices.Where(x => x.Ip == equipment.IP).FirstOrDefault();
-
-                    //缓存取PLC tagvalue 值
-                    List<CcsTagValue> tagValues = new List<CcsTagValue>();
-                    if(device == null)
-                    {
-                        continue;
-                    }
-                    string tag_value_redis_key = imcs_redis_key + device.Ip + ":" + device.ProtocolType;
-                    var tagData = await _redisService.Database.StringGetAsync(tag_value_redis_key);
-                    if (tagData.IsNullOrEmpty)
-                    {
-
-                        CcsTagValue tagQuery = new CcsTagValue();
-                        tagQuery.ProtocolType = device.ProtocolType;
-                        tagQuery.Ip = device.Ip;
-                        tagValues = _ccsTagValueService.GetList(tagQuery);
-                        //首次设置redis
-                        if (tagValues != null && tagValues.Count > 0)
-                        {
-                            await _redisService.Database.StringSetAsync(tag_value_redis_key, JsonConvert.SerializeObject(tagValues));
-                        }
-                    }
-                    else
-                    {
-                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(tagData);
-                    }
-                    
-                    CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address).FirstOrDefault();
-                    if (device != null && !device.UseState)
-                    {
-                        if (equipment.Status != "离线")
-                        {
-                            equipment.Status = "离线";
-                            changeEquipmentMonitors.Add(equipment);
-                        }
-                        continue;
-                    }
-                    else if(device != null && !device.State)
-                    {
-                        if (equipment.Status != "掉线")
-                        {
-                            equipment.Status = "掉线";
-                            changeEquipmentMonitors.Add(equipment);
-                        }
-
-                        continue;
-                    } 
-                    else if (device != null && device.State && device.UseState && (equipment.Type == "HEIDEHAIN" || equipment.Type == "FANUC"))
-                    {
-                        //通过数组获取机床对应的PLC ip地址
-                        string plcIp = jcIpDict[device.Ip]; 
-                        string ktRedisKey = imcs_redis_key + plcIp + ":" + ProtocalTypeEnum.S7_1500;
-                        string plcAddress = jcAddressDict[device.Ip];
-                        var ktTagData = await _redisService.Database.StringGetAsync(ktRedisKey);
-                        List<CcsTagValue> ktTagValues = new List<CcsTagValue>();
-                        if (ktTagData.IsNullOrEmpty)
-                        { 
-                            CcsTagValue tagQuery = new CcsTagValue();
-                            tagQuery.ProtocolType = ProtocalTypeEnum.S7_1500.ToString();
-                            tagQuery.Ip = plcIp;
-                            ktTagValues = _ccsTagValueService.GetList(tagQuery);
-                            //首次设置redis
-                            if (ktTagValues != null && ktTagValues.Count > 0)
-                            {
-                                await _redisService.Database.StringSetAsync(ktRedisKey, JsonConvert.SerializeObject(ktTagValues));
-                            }
-                        }
-                        else
-                        {
-                            ktTagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(ktTagData);
-                        }
-                        CcsTagValue ktTagValue = ktTagValues.Where(x => x.Ip.Trim() == plcIp && x.Address.Trim() == plcAddress).FirstOrDefault();
-                        if(ktTagValue != null)
-                        {
-                            if (ktTagValue.TagValue == "1")
-                            {
-                                if (equipment.Status != "生产中")
-                                {
-                                    equipment.Status = "生产中";
-                                    changeEquipmentMonitors.Add(equipment);
-                                }
-                                continue;
-                            }
-                            if (ktTagValue.TagValue == "2")
-                            {
-                                if (equipment.Status != "空闲")
-                                {
-                                    equipment.Status = "空闲";
-                                    changeEquipmentMonitors.Add(equipment);
-                                }
-                                continue;
-                            }
-                        } 
-                    }
-                    else if (device != null && (equipment.Name == "机械手" || equipment.Name == "保障中心_伺服舵机"))
-                    {
-                       
-                        ccsTagValue = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address).FirstOrDefault();
-                        if (ccsTagValue != null)
-                        {
-                            if (ccsTagValue.TagValue == "3")
-                            {
-                                if (equipment.Status != "报警")
-                                {
-                                    equipment.Status = "报警";
-                                    changeEquipmentMonitors.Add(equipment);
-                                }
-
-                                continue;
-                            }
-                        }
-                        CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address2).FirstOrDefault();
-                        if (ccsTagValue2 != null)
-                        {
-                            if (ccsTagValue2.TagValue == "9")
-                            {
-                                if (equipment.Status != "报警")
-                                {
-                                    equipment.Status = "报警";
-                                    changeEquipmentMonitors.Add(equipment);
-                                }
-                                continue;
-                            }
-                        }
-
-                        if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
-                        {
-                            if (equipment.Status != "空闲")
-                            {
-                                equipment.Status = "空闲";
-                                changeEquipmentMonitors.Add(equipment);
-                            }
-                            continue;
-                        }
-                        if (equipment.Status != "生产中")
-                        {
-                            equipment.Status = "生产中";
-                            changeEquipmentMonitors.Add(equipment);
-                        }
-                    }
-                    else
-                    {
-                        if (equipment.Status != "在线")
-                        {
-                            equipment.Status = "在线";
-                            changeEquipmentMonitors.Add(equipment);
-                        }
-                    }
-
-                }
-                //初始化推送列表
-                List<ProductionStatus> productionStatusList = new List<ProductionStatus>();
-               
-                //变化的修改 并且更新缓存
-                if (changeEquipmentMonitors.Count > 0)
-                { 
-                    foreach (EquipmentMonitor changeEquipment in changeEquipmentMonitors)
-                    {
-                        ProductionStatus productionStatus = new ProductionStatus();
-                        productionStatus.id = changeEquipment.Id.ToString();
-                        productionStatus.onlineStatus = syncStatusMap[changeEquipment.Status].ToString(); 
-                        productionStatusList.Add(productionStatus);
-                       
-                    }
-                    //修改并重置缓存
-                    await _equipmentMonitorService.UpdateAndCache(equipmentMonitors); 
-                }
-                //在线设备,报警放入推送数组
-                List<Device> onlineDeviceList = await getDeviceList(); 
-                foreach (Device onlineDevice in onlineDeviceList)
-                 {
-                    
-                    EquipmentMonitor alarmEquipment = equipmentMonitors.Where(x => x.IP == onlineDevice.Ip && x.Type == onlineDevice.ProtocolType).FirstOrDefault(); 
-
-                    if (alarmEquipment != null && alarmEquipment.Type == "HEIDEHAIN")
-                    {
-                        Thread.Sleep(1000);
-                        RequestHeidhData hdhReq = new RequestHeidhData();
-                        hdhReq.ServerUrl = onlineDevice.ServerUrl;
-                        hdhReq.MachineName = onlineDevice.UserName;
-                        hdhReq.Type = OpcUaActionTypeEnum.Connect.ToString();
-                        var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
-                        if (Result.IsSuccess)
-                        { 
-                            ResponseHeidhData responseData = JsonConvert.DeserializeObject<ResponseHeidhData>(Result.Message);
-                            if (!string.IsNullOrEmpty(responseData.errorsInfo) && !Result.Message.Contains("无报警"))
-                            {
-                                ProductionStatus productionStatus = new ProductionStatus();
-                                productionStatus.id = alarmEquipment.Id.ToString();
-                                productionStatus.ip = onlineDevice.Ip;
-                                productionStatus.alertMsg = responseData.errorsInfo;
-                                productionStatus.alarmState = true;//报警 
-                                productionStatus.onlineStatus = "1";
-                                productionStatusList.Add(productionStatus);
-                            }
-                        }
-                    }
-                    else if (alarmEquipment != null && alarmEquipment.Type == "FANUC")
-                    {
-                        Thread.Sleep(1000);
-                        string Url = fanucUrlContext + "?ip=" + onlineDevice.Ip + "&port=" + onlineDevice.Port;
-                        //调用发那科接口
-                        var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=AlmInfo", null, null);
-                        if (Result.IsSuccess)
-                        {
-                            
-                            //ResponseFanucData fncReq = new ResponseFanucData();
-                            List<AlmInfo> AlmMsg = JsonConvert.DeserializeObject<List<AlmInfo>>(Result.Message);
-                            //List<AlmInfo> AlmMsg = fncReq.AlmMsg;                                   
-                            if (AlmMsg != null && AlmMsg.Count > 0)
-                            {
-                                var msgs = from o in AlmMsg select o.msg;
-                                if(msgs != null && !Result.Message.Contains("无报警"))
-                                {
-                                    ProductionStatus productionStatus = new ProductionStatus();
-                                    productionStatus.id = alarmEquipment.Id.ToString();
-                                    productionStatus.ip = onlineDevice.Ip;
-                                    productionStatus.alertMsg = string.Join(",", msgs.ToArray());
-                                    productionStatus.alarmState = true;//报警
-                                    productionStatus.onlineStatus = "1";
-                                    productionStatusList.Add(productionStatus);
-                                }
-                                
-                            }
-                        }
-
-                    }
-                    else if(alarmEquipment != null && onlineDevice.ProtocolType == "S7_1500")
-                    {
-                        //缓存取PLCagvalue 值
-                        List<CcsTagValue> tagValues = new List<CcsTagValue>();
-                        string tag_value_redis_key = imcs_redis_key + onlineDevice.Ip + ":" + onlineDevice.ProtocolType;
-                        var tagData = await _redisService.Database.StringGetAsync(tag_value_redis_key);
-                        if (tagData.IsNullOrEmpty)
-                        { 
-                            CcsTagValue tagQuery = new CcsTagValue();
-                            tagQuery.ProtocolType = onlineDevice.ProtocolType;
-                            tagQuery.Ip = onlineDevice.Ip;
-                            tagValues = _ccsTagValueService.GetList(tagQuery);
-                            //首次设置redis
-                            if (tagValues != null && tagValues.Count > 0)
-                            {
-                                await _redisService.Database.StringSetAsync(tag_value_redis_key, JsonConvert.SerializeObject(tagValues));
-                            }
-                        }
-                        else
-                        {
-                            tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(tagData);
-                        }
-                        //获取机械手报警信息
-                        CcsTagValue plcWarnValue = tagValues.Where(x => x.Ip == alarmEquipment.IP && x.Address == "DB200.34").FirstOrDefault();
-                        if (plcWarnValue != null && plcWarnValue.TagValue != "0")
-                        { 
-                            //从字典中查询具体描述
-                            List<Dictionary> dictList = new List<Dictionary>() ;
-                            string dict_value_redis_key = imcs_redis_key + RedisKeyEnum.DictKeyList;
-                            var dictData = await _redisService.Database.StringGetAsync(dict_value_redis_key);
-                            if (dictData.IsNullOrEmpty)
-                            {
-                                Dictionary ccsDictionary = new Dictionary();
-                                dictList = await _dictionaryService.GetList(ccsDictionary);
-                                //首次设置redis
-                                if (dictList != null && dictList.Count > 0)
-                                {
-                                    await _redisService.Database.StringSetAsync(dict_value_redis_key, JsonConvert.SerializeObject(dictList));
-                                }
-                            }
-                            else
-                            {
-                                dictList = JsonConvert.DeserializeObject<List<Dictionary>>(dictData);
-                            } 
-
-                            Dictionary dictObj = dictList.Where(x => x.Type == onlineDevice.Ip && x.Code.ToString() == plcWarnValue.TagValue  && x.state).FirstOrDefault();
-                            if (null != dictObj && !string.IsNullOrEmpty(dictObj.DictValue.Trim()))
-                            {
-                                ProductionStatus productionStatus = new ProductionStatus();
-                                productionStatus.id = alarmEquipment.Id.ToString();
-                                productionStatus.ip = onlineDevice.Ip;
-                                productionStatus.alertMsg = dictObj.Description.Trim();
-                                productionStatus.onlineStatus = "1";
-                                productionStatus.alarmState = true; //报警 
-                                productionStatusList.Add(productionStatus);
-                            }
-                           
-                        }
-                    }
-                }
-
-
-                //推送
-                if (productionStatusList != null && productionStatusList.Count > 0)
-                { 
-                    //主动推送同步状态数据接口
-                    RequestSynStatusData requestData = new RequestSynStatusData();
-                    requestData.productionStatus = JsonConvert.SerializeObject(productionStatusList);
-                    String synStatusUrl = ecsRootUrlContext + "/api/authority/synStatus/synProductionStatus";
-                    var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, synStatusUrl, requestData, null);
-                    //解析回调数据结果
-                    ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                    if (responseECSCallback != null && responseECSCallback.code == 0)
-                    {
-                        Log.Instance.WriteLogAdd("同步设备状态成功==>" + JsonConvert.SerializeObject(productionStatusList), PLC_ALARM_INFO);
-                    }
-                    else
-                    {
-                        Log.Instance.WriteLogAdd("同步设备状态操作失败==>:"+JsonConvert.SerializeObject(productionStatusList) + responseECSCallback.msg, PLC_ALARM_INFO);
-                    }
-                }
-                return message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("MonitorEquipmentStatusJob:" + ex.Message, PLC_ALARM_INFO);
-
-                return "MonitorEquipmentStatusJob : " + ex.Message;
-            }
-        }
-
-        /// <summary>
-        /// 监控设备状态
-        /// </summary> 
-        /// <returns></returns>
-        public async Task<string> DeviceStatusJob()
-        {
-            try
-            {
-                string message = "";
-                string all_use_device_redis_key = imcs_redis_key + RedisKeyEnum.ALLUseDeviceList ;
-                List<Device> devices = new List<Device>();
-                //查询全部使用设备包括在线和不在线
-                var deviceListData = await _redisService.Database.StringGetAsync(all_use_device_redis_key);
-                if (deviceListData.IsNullOrEmpty)
-                {
-                    devices = _deviceService.GetDeviceAllList();
-                    await _redisService.Database.StringSetAsync(all_use_device_redis_key, JsonConvert.SerializeObject(devices));
-                }
-                else
-                {
-                    devices = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                } 
-
-                //ftp不监控
-                devices = devices.Where(x => !x.ProtocolType.Equals(ProtocalTypeEnum.FTP.ToString())).ToList();
-                foreach (Device device in devices)
-                {
-                    Ping pingSender = new Ping();
-                    PingReply reply = pingSender.Send(device.Ip);
-                    if (reply.Status != IPStatus.Success)
-                    {
-                        Device oldDevice = await _deviceService.GetDeviceById(device.Id);
-                        if (oldDevice != null && oldDevice.State)
-                        {
-                            device.State = false;
-                            device.DisconnectUpdateTime = DateTime.Now;
-                            await _deviceService.UpdateAndCache(device); 
-                        }
-
-                        Log.Instance.WriteLogAdd(device.Ip + ":" + device.ProtocolType + "连接失败,或已离线", LOG_TITLE_DEVICE);
-                        message = message + device.Ip + ",连接失败,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType;
-                        continue;
-                    }
-                    else
-                    {
-                        Device oldDevice = await _deviceService.GetDeviceById(device.Id);
-                        if (oldDevice != null && !oldDevice.State)
-                        {
-                            oldDevice.State = true;
-                            device.DisconnectUpdateTime = DateTime.Now;
-                            await _deviceService.UpdateAndCache(oldDevice); 
-                        }
-                        Log.Instance.WriteLogAdd(device.Ip + ":"+ device.ProtocolType +  "连接成功", LOG_TITLE_DEVICE);
-                        message = message + ",plc连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType;
-                        continue;
-                    }
-                    Thread.Sleep(50);
-                   
-                }
-                
-                return message;
-            }
-            catch (Exception ex)
-            {
-                Log.Instance.WriteLogAdd("设备连接异常,或以离线" + ex.Message, LOG_TITLE_DEVICE);
-
-                return "设备连接异常,或以离线" + ex.Message;
-            }
-        }
-        /// <summary>
-        /// 删除redis
-        /// </summary> 
-        /// <returns></returns>
-        public void removeRedis()
-        {
-            List<Device> devices = _deviceService.GetDeviceAllList(); 
-            _redisService.Database.KeyDelete(imcs_redis_key + RedisKeyEnum.ALLUseDeviceList);
-            _redisService.Database.KeyDelete(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
-            foreach (Device device in devices)
-            {
-                _redisService.Database.KeyDelete(imcs_redis_key + device.Ip + ":" + device.ProtocolType);
-            }
-        }
-
-        /// <summary>
-        /// fanuc根据类型获取值
-        /// </summary> 
-        /// <returns></returns>
-        private string GetFanucValue(ResponseFanucData fanucData, string address)
-        {
-            string value = "";
-            if (address == FanucAddressEnum.MainProg.ToString())
-            {
-                value = fanucData.MainProg;
-            }
-            else if (address == FanucAddressEnum.Status.ToString())
-            {
-                value = fanucData.Status;
-            }
-            else if (address == FanucAddressEnum.PowerOnTime.ToString())
-            {
-                value = fanucData.PowerOnTime;
-            }
-            else if (address == FanucAddressEnum.ActSpindle.ToString())
-            {
-                value = fanucData.ActSpindle;
-            }
-            return value;
-
-        }
-
-        /// <summary>
-        /// 数字科学计数法处理
-        /// </summary>
-        /// <param name="strData"></param>
-        /// <returns></returns>
-        private Decimal ChangeToDecimal(string strData)
-        {
-            Decimal dData = 0.0M;
-            if (strData.Contains("E"))
-            {
-                dData = Convert.ToDecimal(Decimal.Parse(strData.ToString(), System.Globalization.NumberStyles.Float));
-            }
-            else
-            {
-                dData = Convert.ToDecimal(strData);
-            }
-            return dData;
-        }
-        /// <summary>
-        /// 获取redis 设备在线列表
-        /// </summary>
-        /// <param name="strData"></param>
-        /// <returns></returns>
-        private async Task<List<Device>> getDeviceList()
-        {
-            List<Device> deviceList = new List<Device>();
-            var deviceListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.DeviceList);
-            if (deviceListData.IsNullOrEmpty || deviceListData.Length() == 0)
-            {
-                deviceList = _deviceService.GetDeviceList();
-                await _redisService.Database.StringSetAsync(imcs_redis_key + RedisKeyEnum.DeviceList, JsonConvert.SerializeObject(deviceList));
-            }
-            else
-            {
-                deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-            }
-            return deviceList;
-        }
-    }
-}
+                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                        if (result.IsSuccess && responseECSCallback.code == 0)
+                        { 
+                            task.State = false;
+                            task.UpdateTime = DateTime.Now;
+                            await _taskCallbackService.CreateOrUpdateAndCache(task);
+                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                        }
+                        else
+                        {
+                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
+                        }
+
+                    }
+
+                    //回调检测到失败,回调通知ecs
+                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
+                    {
+                        bool failFalg = false;
+                        if (!string.IsNullOrEmpty(task.FailAddress))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress2))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress3))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (failFalg)
+                        {
+                            CallBackRequestData requestData = new CallBackRequestData();
+                            requestData.taskId = long.Parse(task.TaskId);
+                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                            requestData.code = "0";
+                            requestData.msg = "操作失败";
+                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                            if (result.IsSuccess && responseECSCallback.code == 0)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                        }
+                    }
+ 
+                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                return "回调异常" + ex.Message;
+            }
+        }
+
+        /// <summary>
+        /// 启动机床程序回调任务
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> CallbackJob4()
+        {
+            List<TaskCallback> taskList = new List<TaskCallback>();
+            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            if (taskCallbackListData.IsNullOrEmpty)
+            {
+                taskList = await _taskCallbackService.GetAllList();
+            }
+            else
+            {
+                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
+            }
+            List<Device> deviceList = await getDeviceList();
+            //在线设备 
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString()) && x.State &&  deviceList.Any(device => device.Ip == x.IP)).ToList();
+            if (taskList == null || taskList.Count == 0)
+            {
+                return "无回调任务";
+            }
+            string message = "";
+            try
+            { 
+                    DateTime currentTime = DateTime.Now;
+                    foreach (TaskCallback task in taskList)
+                    { 
+                    CcsTagValue tagValueQuery = new CcsTagValue();
+                    tagValueQuery.Ip = task.IP;
+                    //tagValueQuery.Address = task.Address;
+                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address.Trim()).FirstOrDefault(); 
+                
+                    if (tagValue != null && tagValue.TagValue == task.CallbackValue ) 
+                    {
+                        CallBackRequestData requestData = new CallBackRequestData();
+                        requestData.taskId = long.Parse(task.TaskId);
+                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                        if (result.IsSuccess && responseECSCallback.code == 0)
+                        {
+                            task.State = false;
+                            task.UpdateTime = DateTime.Now;
+                            await _taskCallbackService.CreateOrUpdateAndCache(task);
+                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                        }
+                        else
+                        {
+                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                        }
+                    }
+
+                    //回调检测到失败,回调通知ecs
+                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
+                    {
+                        bool failFalg = false;
+                        if (!string.IsNullOrEmpty(task.FailAddress))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress2))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress3))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (failFalg)
+                        {
+                            CallBackRequestData requestData = new CallBackRequestData();
+                            requestData.taskId = long.Parse(task.TaskId);
+                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                            requestData.code = "0";
+                            requestData.msg = "操作失败";
+                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                            if (result.IsSuccess && responseECSCallback.code == 0)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                        }
+                        
+                    }
+                    Thread.Sleep(1000);
+                }
+                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                return "回调异常" + ex.Message;
+            }
+        }
+        /// <summary>
+        /// 启动清洗机回调任务
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> CallbackJob5()
+        {
+            List<TaskCallback> taskList = new List<TaskCallback>();
+            var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            if (taskCallbackListData.IsNullOrEmpty)
+            {
+                taskList = await _taskCallbackService.GetAllList();
+            }
+            else
+            {
+                taskList = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
+            }
+            List<Device> deviceList = await getDeviceList();
+            //在线设备
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartCleanMachine.ToString()) && x.State && deviceList.Any(device => device.Ip == x.IP)).ToList();
+           // TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (taskList == null || taskList.Count == 0)
+            {
+                return "无回调任务";
+            }
+            string message = "";
+            try
+            {
+                DateTime currentTime = DateTime.Now; 
+                foreach (TaskCallback task in taskList)
+                { 
+                    CcsTagValue tagValueQuery = new CcsTagValue();
+                    tagValueQuery.Ip = task.IP;
+                    //tagValueQuery.Address = task.Address;
+                    List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+                    if (tagValue != null && tagValue.TagValue == task.CallbackValue)
+                    //临时处理以解决ecs配置问题
+                    //if(currentTime.Subtract(task.CreateTime).TotalSeconds > 10)
+                    {
+                        CallBackRequestData requestData = new CallBackRequestData();
+                        requestData.taskId = long.Parse(task.TaskId);
+                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                        if (result.IsSuccess && responseECSCallback.code == 0)
+                        {
+                            task.State = false;
+                            task.UpdateTime = DateTime.Now;
+                            await _taskCallbackService.CreateOrUpdateAndCache(task);
+                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                        }
+                        else
+                        {
+                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                        }
+                    }
+
+                    //回调检测到失败,回调通知ecs
+                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
+                    {
+                        bool failFalg = false;
+                        if (!string.IsNullOrEmpty(task.FailAddress))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress2))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (!string.IsNullOrEmpty(task.FailAddress3))
+                        {
+                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
+
+                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                            {
+                                failFalg = true;
+                            }
+                        }
+                        if (failFalg)
+                        {
+                            CallBackRequestData requestData = new CallBackRequestData();
+                            requestData.taskId = long.Parse(task.TaskId);
+                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                            requestData.code = "0";
+                            requestData.msg = "操作失败";
+                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                            if (result.IsSuccess && responseECSCallback.code == 0)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                        }
+                    }
+                    Thread.Sleep(1000);
+                }
+                return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                return "回调异常" + ex.Message;
+            }
+        }
+ 
+
+        /// <summary>
+        /// 监控设备状态
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> MonitorEquipmentStatusJob()
+        {
+            try
+            {
+                string message = "MonitorEquipmentStatusJob调度成功";
+                //查询全部使用设备包括不在线和离线
+                string all_device_redis_key = imcs_redis_key + RedisKeyEnum.ALLDeviceList ;
+                List<Device> devices = new List<Device>(); 
+                var deviceListData = await _redisService.Database.StringGetAsync(all_device_redis_key);
+                if (deviceListData.IsNullOrEmpty)
+                {
+                    devices = _deviceService.GetDevices();
+                    await _redisService.Database.StringSetAsync(all_device_redis_key, JsonConvert.SerializeObject(devices));
+                }
+                else
+                {
+                    devices = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
+                }
+
+                List<EquipmentMonitor> equipmentMonitors = new List<EquipmentMonitor>();
+                string equipment_monitors_redis_key = imcs_redis_key + RedisKeyEnum.MonitorEquipmentStatusJob;
+                var data = await _redisService.Database.StringGetAsync(equipment_monitors_redis_key);
+                if (data.IsNullOrEmpty)
+                {
+                    equipmentMonitors = await _equipmentMonitorService.GetList();
+                    //首次设置redis
+                    if (equipmentMonitors != null && equipmentMonitors.Count > 0)
+                    {
+                        await _redisService.Database.StringSetAsync(equipment_monitors_redis_key, JsonConvert.SerializeObject(equipmentMonitors));
+                    }
+                }
+                else
+                {
+                    equipmentMonitors = JsonConvert.DeserializeObject<List<EquipmentMonitor>>(data);
+                }
+                //变化的设备
+                List<EquipmentMonitor> changeEquipmentMonitors = new List<EquipmentMonitor>();
+                foreach (EquipmentMonitor equipment in equipmentMonitors)
+                {
+                    Device device = devices.Where(x => x.Ip == equipment.IP).FirstOrDefault();
+
+                    //缓存取PLC tagvalue 值
+                    List<CcsTagValue> tagValues = new List<CcsTagValue>();
+                    if(device == null)
+                    {
+                        continue;
+                    }
+                    string tag_value_redis_key = imcs_redis_key + device.Ip + ":" + device.ProtocolType;
+                    var tagData = await _redisService.Database.StringGetAsync(tag_value_redis_key);
+                    if (tagData.IsNullOrEmpty)
+                    {
+
+                        CcsTagValue tagQuery = new CcsTagValue();
+                        tagQuery.ProtocolType = device.ProtocolType;
+                        tagQuery.Ip = device.Ip;
+                        tagValues = _ccsTagValueService.GetList(tagQuery);
+                        //首次设置redis
+                        if (tagValues != null && tagValues.Count > 0)
+                        {
+                            await _redisService.Database.StringSetAsync(tag_value_redis_key, JsonConvert.SerializeObject(tagValues));
+                        }
+                    }
+                    else
+                    {
+                        tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(tagData);
+                    }
+                    
+                    CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address).FirstOrDefault();
+                    if (device != null && !device.UseState)
+                    {
+                        if (equipment.Status != "离线")
+                        {
+                            equipment.Status = "离线";
+                            changeEquipmentMonitors.Add(equipment);
+                        }
+                        continue;
+                    }
+                    else if(device != null && !device.State)
+                    {
+                        if (equipment.Status != "掉线")
+                        {
+                            equipment.Status = "掉线";
+                            changeEquipmentMonitors.Add(equipment);
+                        }
+
+                        continue;
+                    } 
+                    else if (device != null && device.State && device.UseState && (equipment.Type == "HEIDEHAIN" || equipment.Type == "FANUC"))
+                    {
+                        //通过数组获取机床对应的PLC ip地址
+                        string plcIp = jcIpDict[device.Ip]; 
+                        string ktRedisKey = imcs_redis_key + plcIp + ":" + ProtocalTypeEnum.S7_1500;
+                        string plcAddress = jcAddressDict[device.Ip];
+                        var ktTagData = await _redisService.Database.StringGetAsync(ktRedisKey);
+                        List<CcsTagValue> ktTagValues = new List<CcsTagValue>();
+                        if (ktTagData.IsNullOrEmpty)
+                        { 
+                            CcsTagValue tagQuery = new CcsTagValue();
+                            tagQuery.ProtocolType = ProtocalTypeEnum.S7_1500.ToString();
+                            tagQuery.Ip = plcIp;
+                            ktTagValues = _ccsTagValueService.GetList(tagQuery);
+                            //首次设置redis
+                            if (ktTagValues != null && ktTagValues.Count > 0)
+                            {
+                                await _redisService.Database.StringSetAsync(ktRedisKey, JsonConvert.SerializeObject(ktTagValues));
+                            }
+                        }
+                        else
+                        {
+                            ktTagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(ktTagData);
+                        }
+                        CcsTagValue ktTagValue = ktTagValues.Where(x => x.Ip.Trim() == plcIp && x.Address.Trim() == plcAddress).FirstOrDefault();
+                        if(ktTagValue != null)
+                        {
+                            if (ktTagValue.TagValue == "1")
+                            {
+                                if (equipment.Status != "生产中")
+                                {
+                                    equipment.Status = "生产中";
+                                    changeEquipmentMonitors.Add(equipment);
+                                }
+                                continue;
+                            }
+                            if (ktTagValue.TagValue == "2")
+                            {
+                                if (equipment.Status != "空闲")
+                                {
+                                    equipment.Status = "空闲";
+                                    changeEquipmentMonitors.Add(equipment);
+                                }
+                                continue;
+                            }
+                        } 
+                    }
+                    else if (device != null && (equipment.Name == "机械手" || equipment.Name == "保障中心_伺服舵机"))
+                    {
+                       
+                        ccsTagValue = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address).FirstOrDefault();
+                        if (ccsTagValue != null)
+                        {
+                            if (ccsTagValue.TagValue == "3")
+                            {
+                                if (equipment.Status != "报警")
+                                {
+                                    equipment.Status = "报警";
+                                    changeEquipmentMonitors.Add(equipment);
+                                }
+
+                                continue;
+                            }
+                        }
+                        CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip == equipment.IP && x.Address == equipment.Address2).FirstOrDefault();
+                        if (ccsTagValue2 != null)
+                        {
+                            if (ccsTagValue2.TagValue == "9")
+                            {
+                                if (equipment.Status != "报警")
+                                {
+                                    equipment.Status = "报警";
+                                    changeEquipmentMonitors.Add(equipment);
+                                }
+                                continue;
+                            }
+                        }
+
+                        if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
+                        {
+                            if (equipment.Status != "空闲")
+                            {
+                                equipment.Status = "空闲";
+                                changeEquipmentMonitors.Add(equipment);
+                            }
+                            continue;
+                        }
+                        if (equipment.Status != "生产中")
+                        {
+                            equipment.Status = "生产中";
+                            changeEquipmentMonitors.Add(equipment);
+                        }
+                    }
+                    else
+                    {
+                        if (equipment.Status != "在线")
+                        {
+                            equipment.Status = "在线";
+                            changeEquipmentMonitors.Add(equipment);
+                        }
+                    }
+
+                }
+                //初始化推送列表
+                List<ProductionStatus> productionStatusList = new List<ProductionStatus>();
+               
+                //变化的修改 并且更新缓存
+                if (changeEquipmentMonitors.Count > 0)
+                { 
+                    foreach (EquipmentMonitor changeEquipment in changeEquipmentMonitors)
+                    {
+                        ProductionStatus productionStatus = new ProductionStatus();
+                        productionStatus.id = changeEquipment.Id.ToString();
+                        productionStatus.onlineStatus = syncStatusMap[changeEquipment.Status].ToString(); 
+                        productionStatusList.Add(productionStatus);
+                       
+                    }
+                    //修改并重置缓存
+                    await _equipmentMonitorService.UpdateAndCache(equipmentMonitors); 
+                }
+                //在线设备,报警放入推送数组
+                List<Device> onlineDeviceList = await getDeviceList(); 
+                foreach (Device onlineDevice in onlineDeviceList)
+                 {
+                    
+                    EquipmentMonitor alarmEquipment = equipmentMonitors.Where(x => x.IP == onlineDevice.Ip && x.Type == onlineDevice.ProtocolType).FirstOrDefault(); 
+
+                    if (alarmEquipment != null && alarmEquipment.Type == "HEIDEHAIN")
+                    {
+                        Thread.Sleep(1000);
+                        RequestHeidhData hdhReq = new RequestHeidhData();
+                        hdhReq.ServerUrl = onlineDevice.ServerUrl;
+                        hdhReq.MachineName = onlineDevice.UserName;
+                        hdhReq.Type = OpcUaActionTypeEnum.Connect.ToString();
+                        var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
+                        if (Result.IsSuccess)
+                        { 
+                            ResponseHeidhData responseData = JsonConvert.DeserializeObject<ResponseHeidhData>(Result.Message);
+                            if (!string.IsNullOrEmpty(responseData.errorsInfo) && !Result.Message.Contains("无报警"))
+                            {
+                                ProductionStatus productionStatus = new ProductionStatus();
+                                productionStatus.id = alarmEquipment.Id.ToString();
+                                productionStatus.ip = onlineDevice.Ip;
+                                productionStatus.alertMsg = responseData.errorsInfo;
+                                productionStatus.alarmState = true;//报警 
+                                productionStatus.onlineStatus = "1";
+                                productionStatusList.Add(productionStatus);
+                            }
+                        }
+                    }
+                    else if (alarmEquipment != null && alarmEquipment.Type == "FANUC")
+                    {
+                        Thread.Sleep(1000);
+                        string Url = fanucUrlContext + "?ip=" + onlineDevice.Ip + "&port=" + onlineDevice.Port;
+                        //调用发那科接口
+                        var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=AlmInfo", null, null);
+                        if (Result.IsSuccess)
+                        {
+                            
+                            //ResponseFanucData fncReq = new ResponseFanucData();
+                            List<AlmInfo> AlmMsg = JsonConvert.DeserializeObject<List<AlmInfo>>(Result.Message);
+                            //List<AlmInfo> AlmMsg = fncReq.AlmMsg;                                   
+                            if (AlmMsg != null && AlmMsg.Count > 0)
+                            {
+                                var msgs = from o in AlmMsg select o.msg;
+                                if(msgs != null && !Result.Message.Contains("无报警"))
+                                {
+                                    ProductionStatus productionStatus = new ProductionStatus();
+                                    productionStatus.id = alarmEquipment.Id.ToString();
+                                    productionStatus.ip = onlineDevice.Ip;
+                                    productionStatus.alertMsg = string.Join(",", msgs.ToArray());
+                                    productionStatus.alarmState = true;//报警
+                                    productionStatus.onlineStatus = "1";
+                                    productionStatusList.Add(productionStatus);
+                                }
+                                
+                            }
+                        }
+
+                    }
+                    else if(alarmEquipment != null && onlineDevice.ProtocolType == "S7_1500")
+                    {
+                        //缓存取PLCagvalue 值
+                        List<CcsTagValue> tagValues = new List<CcsTagValue>();
+                        string tag_value_redis_key = imcs_redis_key + onlineDevice.Ip + ":" + onlineDevice.ProtocolType;
+                        var tagData = await _redisService.Database.StringGetAsync(tag_value_redis_key);
+                        if (tagData.IsNullOrEmpty)
+                        { 
+                            CcsTagValue tagQuery = new CcsTagValue();
+                            tagQuery.ProtocolType = onlineDevice.ProtocolType;
+                            tagQuery.Ip = onlineDevice.Ip;
+                            tagValues = _ccsTagValueService.GetList(tagQuery);
+                            //首次设置redis
+                            if (tagValues != null && tagValues.Count > 0)
+                            {
+                                await _redisService.Database.StringSetAsync(tag_value_redis_key, JsonConvert.SerializeObject(tagValues));
+                            }
+                        }
+                        else
+                        {
+                            tagValues = JsonConvert.DeserializeObject<List<CcsTagValue>>(tagData);
+                        }
+                        //获取机械手报警信息
+                        CcsTagValue plcWarnValue = tagValues.Where(x => x.Ip == alarmEquipment.IP && x.Address == "DB200.34").FirstOrDefault();
+                        if (plcWarnValue != null && plcWarnValue.TagValue != "0")
+                        { 
+                            //从字典中查询具体描述
+                            List<Dictionary> dictList = new List<Dictionary>() ;
+                            string dict_value_redis_key = imcs_redis_key + RedisKeyEnum.DictKeyList;
+                            var dictData = await _redisService.Database.StringGetAsync(dict_value_redis_key);
+                            if (dictData.IsNullOrEmpty)
+                            {
+                                Dictionary ccsDictionary = new Dictionary();
+                                dictList = await _dictionaryService.GetList(ccsDictionary);
+                                //首次设置redis
+                                if (dictList != null && dictList.Count > 0)
+                                {
+                                    await _redisService.Database.StringSetAsync(dict_value_redis_key, JsonConvert.SerializeObject(dictList));
+                                }
+                            }
+                            else
+                            {
+                                dictList = JsonConvert.DeserializeObject<List<Dictionary>>(dictData);
+                            } 
+
+                            Dictionary dictObj = dictList.Where(x => x.Type == onlineDevice.Ip && x.Code.ToString() == plcWarnValue.TagValue  && x.state).FirstOrDefault();
+                            if (null != dictObj && !string.IsNullOrEmpty(dictObj.DictValue.Trim()))
+                            {
+                                ProductionStatus productionStatus = new ProductionStatus();
+                                productionStatus.id = alarmEquipment.Id.ToString();
+                                productionStatus.ip = onlineDevice.Ip;
+                                productionStatus.alertMsg = dictObj.Description.Trim();
+                                productionStatus.onlineStatus = "1";
+                                productionStatus.alarmState = true; //报警 
+                                productionStatusList.Add(productionStatus);
+                            }
+                           
+                        }
+                    }
+                }
+
+
+                //推送
+                if (productionStatusList != null && productionStatusList.Count > 0)
+                { 
+                    //主动推送同步状态数据接口
+                    RequestSynStatusData requestData = new RequestSynStatusData();
+                    requestData.productionStatus = JsonConvert.SerializeObject(productionStatusList);
+                    String synStatusUrl = ecsRootUrlContext + "/api/authority/synStatus/synProductionStatus";
+                    var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, synStatusUrl, requestData, null);
+                    //解析回调数据结果
+                    ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                    if (responseECSCallback != null && responseECSCallback.code == 0)
+                    {
+                        Log.Instance.WriteLogAdd("同步设备状态成功==>" + JsonConvert.SerializeObject(productionStatusList), PLC_ALARM_INFO);
+                    }
+                    else
+                    {
+                        Log.Instance.WriteLogAdd("同步设备状态操作失败==>:"+JsonConvert.SerializeObject(productionStatusList) + responseECSCallback.msg, PLC_ALARM_INFO);
+                    }
+                }
+                return message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("MonitorEquipmentStatusJob:" + ex.Message, PLC_ALARM_INFO);
+
+                return "MonitorEquipmentStatusJob : " + ex.Message;
+            }
+        }
+
+        /// <summary>
+        /// 监控设备状态
+        /// </summary> 
+        /// <returns></returns>
+        public async Task<string> DeviceStatusJob()
+        {
+            try
+            {
+                string message = "";
+                string all_use_device_redis_key = imcs_redis_key + RedisKeyEnum.ALLUseDeviceList ;
+                List<Device> devices = new List<Device>();
+                //查询全部使用设备包括在线和不在线
+                var deviceListData = await _redisService.Database.StringGetAsync(all_use_device_redis_key);
+                if (deviceListData.IsNullOrEmpty)
+                {
+                    devices = _deviceService.GetDeviceAllList();
+                    await _redisService.Database.StringSetAsync(all_use_device_redis_key, JsonConvert.SerializeObject(devices));
+                }
+                else
+                {
+                    devices = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
+                } 
+
+                //ftp不监控
+                devices = devices.Where(x => !x.ProtocolType.Equals(ProtocalTypeEnum.FTP.ToString())).ToList();
+                foreach (Device device in devices)
+                {
+                    Ping pingSender = new Ping();
+                    PingReply reply = pingSender.Send(device.Ip);
+                    if (reply.Status != IPStatus.Success)
+                    {
+                        Device oldDevice = await _deviceService.GetDeviceById(device.Id);
+                        if (oldDevice != null && oldDevice.State)
+                        {
+                            device.State = false;
+                            device.DisconnectUpdateTime = DateTime.Now;
+                            await _deviceService.UpdateAndCache(device); 
+                        }
+
+                        Log.Instance.WriteLogAdd(device.Ip + ":" + device.ProtocolType + "连接失败,或已离线", LOG_TITLE_DEVICE);
+                        message = message + device.Ip + ",连接失败,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType;
+                        continue;
+                    }
+                    else
+                    {
+                        Device oldDevice = await _deviceService.GetDeviceById(device.Id);
+                        if (oldDevice != null && !oldDevice.State)
+                        {
+                            oldDevice.State = true;
+                            device.DisconnectUpdateTime = DateTime.Now;
+                            await _deviceService.UpdateAndCache(oldDevice); 
+                        }
+                        Log.Instance.WriteLogAdd(device.Ip + ":"+ device.ProtocolType +  "连接成功", LOG_TITLE_DEVICE);
+                        message = message + ",plc连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType;
+                        continue;
+                    }
+                    Thread.Sleep(50);
+                   
+                }
+                
+                return message;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd("设备连接异常,或以离线" + ex.Message, LOG_TITLE_DEVICE);
+
+                return "设备连接异常,或以离线" + ex.Message;
+            }
+        }
+        /// <summary>
+        /// 删除redis
+        /// </summary> 
+        /// <returns></returns>
+        public void removeRedis()
+        {
+            List<Device> devices = _deviceService.GetDeviceAllList(); 
+            _redisService.Database.KeyDelete(imcs_redis_key + RedisKeyEnum.ALLUseDeviceList);
+            _redisService.Database.KeyDelete(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
+            foreach (Device device in devices)
+            {
+                _redisService.Database.KeyDelete(imcs_redis_key + device.Ip + ":" + device.ProtocolType);
+            }
+        }
+
+        /// <summary>
+        /// fanuc根据类型获取值
+        /// </summary> 
+        /// <returns></returns>
+        private string GetFanucValue(ResponseFanucData fanucData, string address)
+        {
+            string value = "";
+            if (address == FanucAddressEnum.MainProg.ToString())
+            {
+                value = fanucData.MainProg;
+            }
+            else if (address == FanucAddressEnum.Status.ToString())
+            {
+                value = fanucData.Status;
+            }
+            else if (address == FanucAddressEnum.PowerOnTime.ToString())
+            {
+                value = fanucData.PowerOnTime;
+            }
+            else if (address == FanucAddressEnum.ActSpindle.ToString())
+            {
+                value = fanucData.ActSpindle;
+            }
+            return value;
+
+        }
+
+        /// <summary>
+        /// 数字科学计数法处理
+        /// </summary>
+        /// <param name="strData"></param>
+        /// <returns></returns>
+        private Decimal ChangeToDecimal(string strData)
+        {
+            Decimal dData = 0.0M;
+            if (strData.Contains("E"))
+            {
+                dData = Convert.ToDecimal(Decimal.Parse(strData.ToString(), System.Globalization.NumberStyles.Float));
+            }
+            else
+            {
+                dData = Convert.ToDecimal(strData);
+            }
+            return dData;
+        }
+        /// <summary>
+        /// 获取redis 设备在线列表
+        /// </summary>
+        /// <param name="strData"></param>
+        /// <returns></returns>
+        private async Task<List<Device>> getDeviceList()
+        {
+            List<Device> deviceList = new List<Device>();
+            var deviceListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.DeviceList);
+            if (deviceListData.IsNullOrEmpty || deviceListData.Length() == 0)
+            {
+                deviceList = _deviceService.GetDeviceList();
+                await _redisService.Database.StringSetAsync(imcs_redis_key + RedisKeyEnum.DeviceList, JsonConvert.SerializeObject(deviceList));
+            }
+            else
+            {
+                deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
+            }
+            return deviceList;
+        }
+    }
+}

+ 6 - 6
IMCS_CCS/appsettings.json

@@ -11,23 +11,23 @@
   "TokenValue": "123456",
   "JwtKeyName": "JwtKeyName",
   "JwtSecurityKey": "1CC76841-F25D-4389-89FE-0F9451163CF1",
-  //Json 存储方式 配置
+  //Json 锟芥储锟斤拷式 锟斤拷锟斤拷
   "DbPath": {
     "Project": "/db/Projects.json",
     "Tasks": "/db/Tasks.json"
   },
-  //是否使用 Redis 存储 1是 0否 默认使用 json 文件
+  //锟角凤拷使锟斤拷 Redis 锟芥储 1锟斤拷 0锟斤拷 默锟斤拷使锟斤拷 json 锟侥硷拷
   "UseRedis": "0",
-  //Redis 存储方式 配置
+  //Redis 锟芥储锟斤拷式 锟斤拷锟斤拷
   "RedisDbPath": {
     "Project": "IMCS.CCS:Project",
     "Tasks": "IMCS.CCS:Tasks"
   },
-  //Redis 连接字符串
+  //Redis 锟斤拷锟斤拷锟街凤拷锟斤拷
   "RedisConnectionString": "127.0.0.1:6379,password=123456,defaultDatabase=0",
-  //数据连接配置
+  //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
   "ConnectionStrings": {
-    "mysqlContext": "server=localhost;port=3306;database=ccs_hlt;uid=root;pwd=123456;CharSet=utf8;Allow Zero Datetime=True",
+    "mysqlContext": "server=localhost;port=3306;database=ccs_htl;uid=root;pwd=123456;CharSet=utf8;Allow Zero Datetime=True",
     "ecsUrlContext": "http://192.168.3.102:9099/api/authority/taskNode/taskNodeCallback",
     //"FTPServer": "192.168.170.25",
     //"FTPUser": "PROG",

BIN
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.dll


BIN
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.exe


BIN
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.pdb


+ 2 - 3
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.runtimeconfig.dev.json

@@ -1,9 +1,8 @@
 {
   "runtimeOptions": {
     "additionalProbingPaths": [
-      "C:\\Users\\Administrator\\.dotnet\\store\\|arch|\\|tfm|",
-      "C:\\Users\\Administrator\\.nuget\\packages",
-      "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
+      "C:\\Users\\user\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\user\\.nuget\\packages"
     ]
   }
 }

+ 6 - 6
IMCS_CCS/bin/Debug/netcoreapp3.1/appsettings.json

@@ -11,23 +11,23 @@
   "TokenValue": "123456",
   "JwtKeyName": "JwtKeyName",
   "JwtSecurityKey": "1CC76841-F25D-4389-89FE-0F9451163CF1",
-  //Json 存储方式 配置
+  //Json 锟芥储锟斤拷式 锟斤拷锟斤拷
   "DbPath": {
     "Project": "/db/Projects.json",
     "Tasks": "/db/Tasks.json"
   },
-  //是否使用 Redis 存储 1是 0否 默认使用 json 文件
+  //锟角凤拷使锟斤拷 Redis 锟芥储 1锟斤拷 0锟斤拷 默锟斤拷使锟斤拷 json 锟侥硷拷
   "UseRedis": "0",
-  //Redis 存储方式 配置
+  //Redis 锟芥储锟斤拷式 锟斤拷锟斤拷
   "RedisDbPath": {
     "Project": "IMCS.CCS:Project",
     "Tasks": "IMCS.CCS:Tasks"
   },
-  //Redis 连接字符串
+  //Redis 锟斤拷锟斤拷锟街凤拷锟斤拷
   "RedisConnectionString": "127.0.0.1:6379,password=123456,defaultDatabase=0",
-  //数据连接配置
+  //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
   "ConnectionStrings": {
-    "mysqlContext": "server=localhost;port=3306;database=ccs_hlt;uid=root;pwd=123456;CharSet=utf8;Allow Zero Datetime=True",
+    "mysqlContext": "server=localhost;port=3306;database=ccs_htl;uid=root;pwd=123456;CharSet=utf8;Allow Zero Datetime=True",
     "ecsUrlContext": "http://192.168.3.102:9099/api/authority/taskNode/taskNodeCallback",
     //"FTPServer": "192.168.170.25",
     //"FTPUser": "PROG",

Plik diff jest za duży
+ 0 - 0
IMCS_CCS/bin/Debug/netcoreapp3.1/wwwroot/db/Tasks.json


+ 8 - 11
IMCS_CCS/obj/CCS.csproj.nuget.dgspec.json

@@ -1,23 +1,20 @@
 {
   "format": 1,
   "restore": {
-    "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj": {}
+    "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj": {}
   },
   "projects": {
-    "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj": {
+    "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj": {
       "version": "1.0.0",
       "restore": {
-        "projectUniqueName": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj",
+        "projectUniqueName": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj",
         "projectName": "IMCS_CCS",
-        "projectPath": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj",
-        "packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
-        "outputPath": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\obj\\",
+        "projectPath": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj",
+        "packagesPath": "C:\\Users\\user\\.nuget\\packages\\",
+        "outputPath": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\obj\\",
         "projectStyle": "PackageReference",
-        "fallbackFolders": [
-          "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-        ],
         "configFilePaths": [
-          "C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
+          "C:\\Users\\user\\AppData\\Roaming\\NuGet\\NuGet.Config",
           "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
         ],
         "originalTargetFrameworks": [
@@ -106,7 +103,7 @@
               "privateAssets": "all"
             }
           },
-          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.425\\RuntimeIdentifierGraph.json"
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.426\\RuntimeIdentifierGraph.json"
         }
       }
     }

+ 3 - 4
IMCS_CCS/obj/CCS.csproj.nuget.g.props

@@ -5,13 +5,12 @@
     <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
     <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
     <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
-    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Administrator\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\user\.nuget\packages\</NuGetPackageFolders>
     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
     <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.4</NuGetToolVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
-    <SourceRoot Include="C:\Users\Administrator\.nuget\packages\" />
-    <SourceRoot Include="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\" />
+    <SourceRoot Include="C:\Users\user\.nuget\packages\" />
   </ItemGroup>
   <PropertyGroup>
     <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
@@ -21,6 +20,6 @@
     <Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore\6.3.1\build\Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore\6.3.1\build\Swashbuckle.AspNetCore.props')" />
   </ImportGroup>
   <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
-    <PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\Administrator\.nuget\packages\microsoft.extensions.apidescription.server\3.0.0</PkgMicrosoft_Extensions_ApiDescription_Server>
+    <PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\user\.nuget\packages\microsoft.extensions.apidescription.server\3.0.0</PkgMicrosoft_Extensions_ApiDescription_Server>
   </PropertyGroup>
 </Project>

BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/CCS.assets.cache


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/CCS.csproj.AssemblyReference.cache


+ 1 - 1
IMCS_CCS/obj/Debug/netcoreapp3.1/CCS.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-c58adbda210812f1f7c01286636305be92af4081
+5e4ce36549e1170808911b81f267a66be4543e12

+ 125 - 0
IMCS_CCS/obj/Debug/netcoreapp3.1/CCS.csproj.FileListAbsolute.txt

@@ -1002,3 +1002,128 @@ D:\git\hailite\ccs_new\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.csproj.CopyC
 D:\git\hailite\ccs_new\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\staticwebassets\IMCS_CCS.StaticWebAssets.Manifest.cache
 D:\git\hailite\ccs_new\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\staticwebassets\IMCS_CCS.StaticWebAssets.xml
 D:\git\hailite\ccs_new\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.genruntimeconfig.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\appsettings.Development.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\appsettings.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\nlog.config
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.exe
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\wwwroot\db\Projects.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\wwwroot\db\Tasks.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS.CCS.xml
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.deps.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.runtimeconfig.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.runtimeconfig.dev.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\IMCS_CCS.pdb
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\AutoMapper.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\AutoMapper.Extensions.Microsoft.DependencyInjection.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\BouncyCastle.Crypto.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Flurl.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Flurl.Http.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Google.Protobuf.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\K4os.Compression.LZ4.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\K4os.Compression.LZ4.Streams.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\K4os.Hash.xxHash.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Bcl.AsyncInterfaces.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Bcl.HashCode.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.Relational.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Caching.Memory.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Binder.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.CommandLine.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.FileExtensions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Json.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.UserSecrets.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyInjection.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyModel.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileProviders.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileProviders.Physical.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.FileSystemGlobbing.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Hosting.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Hosting.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Hosting.WindowsServices.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.Configuration.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.Console.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.Debug.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.EventLog.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.EventSource.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Options.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Options.ConfigurationExtensions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Primitives.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Logging.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.OpenApi.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Win32.Registry.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\MySql.Data.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Ubiety.Dns.Core.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Zstandard.Net.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\MySql.Data.EntityFrameworkCore.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Newtonsoft.Json.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\NLog.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\NLog.Extensions.Logging.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\NLog.Web.AspNetCore.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Pipelines.Sockets.Unofficial.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Quartz.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Scrutor.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Renci.SshNet.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\SshNet.Security.Cryptography.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\StackExchange.Redis.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Swashbuckle.AspNetCore.Filters.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Swashbuckle.AspNetCore.Filters.Abstractions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Swashbuckle.AspNetCore.Swagger.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Swashbuckle.AspNetCore.SwaggerGen.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Swashbuckle.AspNetCore.SwaggerUI.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Configuration.ConfigurationManager.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Diagnostics.EventLog.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Diagnostics.PerformanceCounter.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Drawing.Common.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.IO.Pipelines.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Security.AccessControl.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Security.Permissions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Security.Principal.Windows.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.ServiceProcess.ServiceController.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Text.Json.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Windows.Extensions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\System.Xml.XPath.XmlDocument.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Diagnostics.EventLog.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Diagnostics.PerformanceCounter.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Security.AccessControl.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.ServiceProcess.ServiceController.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\FTP.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\HslCommunication.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\S7.Net.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\WinSCPnet.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.csproj.AssemblyReference.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.AssemblyInfoInputs.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.AssemblyInfo.cs
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.csproj.CoreCompileInputs.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\IMCS_CCS.MvcApplicationPartsAssemblyInfo.cs
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\IMCS_CCS.MvcApplicationPartsAssemblyInfo.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.RazorTargetAssemblyInfo.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\staticwebassets\IMCS_CCS.StaticWebAssets.Manifest.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.csproj.CopyComplete
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\IMCS_CCS.dll
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\IMCS_CCS.pdb
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\CCS.genruntimeconfig.cache
+D:\项目\SMZK\htl_ccs\IMCS_CCS\bin\Debug\netcoreapp3.1\Properties\launchSettings.json
+D:\项目\SMZK\htl_ccs\IMCS_CCS\obj\Debug\netcoreapp3.1\staticwebassets\IMCS_CCS.StaticWebAssets.xml

BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/IMCS_CCS.dll


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/IMCS_CCS.exe


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/IMCS_CCS.pdb


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/apphost.exe


+ 7 - 11
IMCS_CCS/obj/project.assets.json

@@ -7943,23 +7943,19 @@
     ]
   },
   "packageFolders": {
-    "C:\\Users\\Administrator\\.nuget\\packages\\": {},
-    "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
+    "C:\\Users\\user\\.nuget\\packages\\": {}
   },
   "project": {
     "version": "1.0.0",
     "restore": {
-      "projectUniqueName": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj",
+      "projectUniqueName": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj",
       "projectName": "IMCS_CCS",
-      "projectPath": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj",
-      "packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
-      "outputPath": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\obj\\",
+      "projectPath": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj",
+      "packagesPath": "C:\\Users\\user\\.nuget\\packages\\",
+      "outputPath": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\obj\\",
       "projectStyle": "PackageReference",
-      "fallbackFolders": [
-        "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
-      ],
       "configFilePaths": [
-        "C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
+        "C:\\Users\\user\\AppData\\Roaming\\NuGet\\NuGet.Config",
         "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
       ],
       "originalTargetFrameworks": [
@@ -8048,7 +8044,7 @@
             "privateAssets": "all"
           }
         },
-        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.425\\RuntimeIdentifierGraph.json"
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.426\\RuntimeIdentifierGraph.json"
       }
     }
   }

+ 158 - 158
IMCS_CCS/obj/project.nuget.cache

@@ -1,165 +1,165 @@
 {
   "version": 2,
-  "dgSpecHash": "LHAzAzmkXs5gvNXeGqGvCa2Irs/4N7V/E6HNm4uXpl+bmn6NT4RMDy+duvjiTeaQKZpXlrIs6phEMcMH/whDQw==",
+  "dgSpecHash": "Y/vEGer9FJUMZK61PCRztsGddsTkZFEvH/sBKebNC7Xix5HqrhrglfCx8e/m8C5xkJp69LMi1NfBClYfvJrZGA==",
   "success": true,
-  "projectFilePath": "D:\\git\\hailite\\ccs_new\\htl_ccs\\IMCS_CCS\\CCS.csproj",
+  "projectFilePath": "D:\\项目\\SMZK\\htl_ccs\\IMCS_CCS\\CCS.csproj",
   "expectedPackageFiles": [
-    "C:\\Users\\Administrator\\.nuget\\packages\\automapper\\10.1.1\\automapper.10.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\automapper.extensions.microsoft.dependencyinjection\\8.1.1\\automapper.extensions.microsoft.dependencyinjection.8.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\bouncycastle.netcore\\1.8.3\\bouncycastle.netcore.1.8.3.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\flurl\\3.0.2\\flurl.3.0.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\flurl.http\\3.2.0\\flurl.http.3.2.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\google.protobuf\\3.11.4\\google.protobuf.3.11.4.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\k4os.compression.lz4\\1.1.11\\k4os.compression.lz4.1.1.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\k4os.compression.lz4.streams\\1.1.11\\k4os.compression.lz4.streams.1.1.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\k4os.hash.xxhash\\1.0.6\\k4os.hash.xxhash.1.0.6.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.bcl.hashcode\\1.1.0\\microsoft.bcl.hashcode.1.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore\\3.1.1\\microsoft.entityframeworkcore.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\3.1.1\\microsoft.entityframeworkcore.abstractions.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\3.1.1\\microsoft.entityframeworkcore.analyzers.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\3.1.1\\microsoft.entityframeworkcore.relational.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.apidescription.server\\3.0.0\\microsoft.extensions.apidescription.server.3.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\3.1.1\\microsoft.extensions.caching.abstractions.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.caching.memory\\3.1.1\\microsoft.extensions.caching.memory.3.1.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration\\5.0.0\\microsoft.extensions.configuration.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.binder\\5.0.0\\microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\5.0.0\\microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\5.0.0\\microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\5.0.0\\microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.json\\5.0.0\\microsoft.extensions.configuration.json.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\5.0.0\\microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencymodel\\3.1.6\\microsoft.extensions.dependencymodel.3.1.6.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\5.0.0\\microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\5.0.0\\microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\5.0.0\\microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.hosting\\5.0.0\\microsoft.extensions.hosting.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\5.0.0\\microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.hosting.windowsservices\\5.0.1\\microsoft.extensions.hosting.windowsservices.5.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.configuration\\5.0.0\\microsoft.extensions.logging.configuration.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.console\\5.0.0\\microsoft.extensions.logging.console.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.debug\\5.0.0\\microsoft.extensions.logging.debug.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\5.0.0\\microsoft.extensions.logging.eventlog.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\5.0.0\\microsoft.extensions.logging.eventsource.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\5.0.0\\microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\6.11.0\\microsoft.identitymodel.jsonwebtokens.6.11.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.identitymodel.logging\\6.11.0\\microsoft.identitymodel.logging.6.11.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.identitymodel.tokens\\6.11.0\\microsoft.identitymodel.tokens.6.11.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.openapi\\1.2.3\\microsoft.openapi.1.2.3.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.win32.primitives\\4.0.1\\microsoft.win32.primitives.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\mysql.data\\8.0.22\\mysql.data.8.0.22.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\mysql.data.entityframeworkcore\\8.0.22\\mysql.data.entityframeworkcore.8.0.22.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\netstandard.library\\1.6.0\\netstandard.library.1.6.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\nlog\\4.7.9\\nlog.4.7.9.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\nlog.extensions.logging\\1.7.2\\nlog.extensions.logging.1.7.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\nlog.web.aspnetcore\\4.12.0\\nlog.web.aspnetcore.4.12.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.0\\pipelines.sockets.unofficial.2.2.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\quartz\\3.3.2\\quartz.3.3.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\runtime.native.system\\4.0.0\\runtime.native.system.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\runtime.native.system.io.compression\\4.1.0\\runtime.native.system.io.compression.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\runtime.native.system.net.http\\4.0.1\\runtime.native.system.net.http.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\runtime.native.system.security.cryptography\\4.0.0\\runtime.native.system.security.cryptography.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\scrutor\\3.3.0\\scrutor.3.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\ssh.net\\2016.1.0\\ssh.net.2016.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\sshnet.security.cryptography\\1.2.0\\sshnet.security.cryptography.1.2.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\stackexchange.redis\\2.2.62\\stackexchange.redis.2.2.62.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore\\6.3.1\\swashbuckle.aspnetcore.6.3.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore.filters\\7.0.2\\swashbuckle.aspnetcore.filters.7.0.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore.filters.abstractions\\7.0.2\\swashbuckle.aspnetcore.filters.abstractions.7.0.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.3.1\\swashbuckle.aspnetcore.swagger.6.3.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.3.1\\swashbuckle.aspnetcore.swaggergen.6.3.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.3.1\\swashbuckle.aspnetcore.swaggerui.6.3.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.appcontext\\4.1.0\\system.appcontext.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.buffers\\4.5.1\\system.buffers.4.5.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.collections\\4.0.11\\system.collections.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.collections.concurrent\\4.0.12\\system.collections.concurrent.4.0.12.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.collections.immutable\\1.7.0\\system.collections.immutable.1.7.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.configuration.configurationmanager\\5.0.0\\system.configuration.configurationmanager.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.console\\4.0.0\\system.console.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.debug\\4.0.11\\system.diagnostics.debug.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.diagnosticsource\\5.0.0\\system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.eventlog\\5.0.0\\system.diagnostics.eventlog.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.performancecounter\\5.0.0\\system.diagnostics.performancecounter.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.tools\\4.0.1\\system.diagnostics.tools.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.tracesource\\4.0.0\\system.diagnostics.tracesource.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.tracing\\4.1.0\\system.diagnostics.tracing.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.drawing.common\\5.0.0\\system.drawing.common.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.globalization\\4.0.11\\system.globalization.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.globalization.calendars\\4.0.1\\system.globalization.calendars.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.globalization.extensions\\4.0.1\\system.globalization.extensions.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.identitymodel.tokens.jwt\\6.11.0\\system.identitymodel.tokens.jwt.6.11.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io.compression\\4.1.0\\system.io.compression.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io.compression.zipfile\\4.0.1\\system.io.compression.zipfile.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io.filesystem\\4.0.1\\system.io.filesystem.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io.filesystem.primitives\\4.0.1\\system.io.filesystem.primitives.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.io.pipelines\\5.0.0\\system.io.pipelines.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.linq\\4.1.0\\system.linq.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.linq.expressions\\4.1.0\\system.linq.expressions.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.net.http\\4.1.0\\system.net.http.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.net.nameresolution\\4.0.0\\system.net.nameresolution.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.net.primitives\\4.0.11\\system.net.primitives.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.net.sockets\\4.1.0\\system.net.sockets.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.objectmodel\\4.0.12\\system.objectmodel.4.0.12.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.0.1\\system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.emit.lightweight\\4.0.1\\system.reflection.emit.lightweight.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.extensions\\4.0.1\\system.reflection.extensions.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.typeextensions\\4.1.0\\system.reflection.typeextensions.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.resources.resourcemanager\\4.0.1\\system.resources.resourcemanager.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.2\\system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.extensions\\4.1.0\\system.runtime.extensions.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.handles\\4.0.1\\system.runtime.handles.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.interopservices\\4.1.0\\system.runtime.interopservices.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.0.0\\system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.numerics\\4.0.1\\system.runtime.numerics.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.algorithms\\4.2.0\\system.security.cryptography.algorithms.4.2.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.cng\\4.5.0\\system.security.cryptography.cng.4.5.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.csp\\4.0.0\\system.security.cryptography.csp.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.encoding\\4.0.0\\system.security.cryptography.encoding.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.openssl\\4.0.0\\system.security.cryptography.openssl.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.primitives\\4.0.0\\system.security.cryptography.primitives.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.protecteddata\\5.0.0\\system.security.cryptography.protecteddata.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.1.0\\system.security.cryptography.x509certificates.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.permissions\\5.0.0\\system.security.permissions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.serviceprocess.servicecontroller\\5.0.0\\system.serviceprocess.servicecontroller.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.text.encoding.extensions\\4.0.11\\system.text.encoding.extensions.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.text.json\\5.0.0\\system.text.json.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.text.regularexpressions\\4.1.0\\system.text.regularexpressions.4.1.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading\\4.0.11\\system.threading.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading.tasks.extensions\\4.0.0\\system.threading.tasks.extensions.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading.thread\\4.0.0\\system.threading.thread.4.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading.threadpool\\4.0.10\\system.threading.threadpool.4.0.10.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.threading.timer\\4.0.1\\system.threading.timer.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.windows.extensions\\5.0.0\\system.windows.extensions.5.0.0.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.xml.readerwriter\\4.0.11\\system.xml.readerwriter.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.xml.xdocument\\4.0.11\\system.xml.xdocument.4.0.11.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.xml.xmldocument\\4.0.1\\system.xml.xmldocument.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.xml.xpath\\4.0.1\\system.xml.xpath.4.0.1.nupkg.sha512",
-    "C:\\Users\\Administrator\\.nuget\\packages\\system.xml.xpath.xmldocument\\4.0.1\\system.xml.xpath.xmldocument.4.0.1.nupkg.sha512"
+    "C:\\Users\\user\\.nuget\\packages\\automapper\\10.1.1\\automapper.10.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\automapper.extensions.microsoft.dependencyinjection\\8.1.1\\automapper.extensions.microsoft.dependencyinjection.8.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\bouncycastle.netcore\\1.8.3\\bouncycastle.netcore.1.8.3.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\flurl\\3.0.2\\flurl.3.0.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\flurl.http\\3.2.0\\flurl.http.3.2.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\google.protobuf\\3.11.4\\google.protobuf.3.11.4.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\k4os.compression.lz4\\1.1.11\\k4os.compression.lz4.1.1.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\k4os.compression.lz4.streams\\1.1.11\\k4os.compression.lz4.streams.1.1.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\k4os.hash.xxhash\\1.0.6\\k4os.hash.xxhash.1.0.6.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.bcl.hashcode\\1.1.0\\microsoft.bcl.hashcode.1.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.entityframeworkcore\\3.1.1\\microsoft.entityframeworkcore.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\3.1.1\\microsoft.entityframeworkcore.abstractions.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\3.1.1\\microsoft.entityframeworkcore.analyzers.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\3.1.1\\microsoft.entityframeworkcore.relational.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.apidescription.server\\3.0.0\\microsoft.extensions.apidescription.server.3.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\3.1.1\\microsoft.extensions.caching.abstractions.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.caching.memory\\3.1.1\\microsoft.extensions.caching.memory.3.1.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration\\5.0.0\\microsoft.extensions.configuration.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.binder\\5.0.0\\microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\5.0.0\\microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\5.0.0\\microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\5.0.0\\microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.json\\5.0.0\\microsoft.extensions.configuration.json.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\5.0.0\\microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.dependencymodel\\3.1.6\\microsoft.extensions.dependencymodel.3.1.6.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\5.0.0\\microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\5.0.0\\microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\5.0.0\\microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.hosting\\5.0.0\\microsoft.extensions.hosting.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\5.0.0\\microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.hosting.windowsservices\\5.0.1\\microsoft.extensions.hosting.windowsservices.5.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.configuration\\5.0.0\\microsoft.extensions.logging.configuration.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.console\\5.0.0\\microsoft.extensions.logging.console.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.debug\\5.0.0\\microsoft.extensions.logging.debug.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\5.0.0\\microsoft.extensions.logging.eventlog.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\5.0.0\\microsoft.extensions.logging.eventsource.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\5.0.0\\microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\6.11.0\\microsoft.identitymodel.jsonwebtokens.6.11.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.identitymodel.logging\\6.11.0\\microsoft.identitymodel.logging.6.11.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.identitymodel.tokens\\6.11.0\\microsoft.identitymodel.tokens.6.11.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.openapi\\1.2.3\\microsoft.openapi.1.2.3.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.win32.primitives\\4.0.1\\microsoft.win32.primitives.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\mysql.data\\8.0.22\\mysql.data.8.0.22.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\mysql.data.entityframeworkcore\\8.0.22\\mysql.data.entityframeworkcore.8.0.22.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\netstandard.library\\1.6.0\\netstandard.library.1.6.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\nlog\\4.7.9\\nlog.4.7.9.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\nlog.extensions.logging\\1.7.2\\nlog.extensions.logging.1.7.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\nlog.web.aspnetcore\\4.12.0\\nlog.web.aspnetcore.4.12.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.0\\pipelines.sockets.unofficial.2.2.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\quartz\\3.3.2\\quartz.3.3.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\runtime.native.system\\4.0.0\\runtime.native.system.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\runtime.native.system.io.compression\\4.1.0\\runtime.native.system.io.compression.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\runtime.native.system.net.http\\4.0.1\\runtime.native.system.net.http.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\runtime.native.system.security.cryptography\\4.0.0\\runtime.native.system.security.cryptography.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\scrutor\\3.3.0\\scrutor.3.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\ssh.net\\2016.1.0\\ssh.net.2016.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\sshnet.security.cryptography\\1.2.0\\sshnet.security.cryptography.1.2.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\stackexchange.redis\\2.2.62\\stackexchange.redis.2.2.62.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore\\6.3.1\\swashbuckle.aspnetcore.6.3.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore.filters\\7.0.2\\swashbuckle.aspnetcore.filters.7.0.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore.filters.abstractions\\7.0.2\\swashbuckle.aspnetcore.filters.abstractions.7.0.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.3.1\\swashbuckle.aspnetcore.swagger.6.3.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.3.1\\swashbuckle.aspnetcore.swaggergen.6.3.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.3.1\\swashbuckle.aspnetcore.swaggerui.6.3.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.appcontext\\4.1.0\\system.appcontext.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.buffers\\4.5.1\\system.buffers.4.5.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.collections\\4.0.11\\system.collections.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.collections.concurrent\\4.0.12\\system.collections.concurrent.4.0.12.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.collections.immutable\\1.7.0\\system.collections.immutable.1.7.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.configuration.configurationmanager\\5.0.0\\system.configuration.configurationmanager.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.console\\4.0.0\\system.console.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.debug\\4.0.11\\system.diagnostics.debug.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.diagnosticsource\\5.0.0\\system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.eventlog\\5.0.0\\system.diagnostics.eventlog.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.performancecounter\\5.0.0\\system.diagnostics.performancecounter.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.tools\\4.0.1\\system.diagnostics.tools.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.tracesource\\4.0.0\\system.diagnostics.tracesource.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.diagnostics.tracing\\4.1.0\\system.diagnostics.tracing.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.drawing.common\\5.0.0\\system.drawing.common.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.globalization\\4.0.11\\system.globalization.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.globalization.calendars\\4.0.1\\system.globalization.calendars.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.globalization.extensions\\4.0.1\\system.globalization.extensions.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.identitymodel.tokens.jwt\\6.11.0\\system.identitymodel.tokens.jwt.6.11.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io.compression\\4.1.0\\system.io.compression.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io.compression.zipfile\\4.0.1\\system.io.compression.zipfile.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io.filesystem\\4.0.1\\system.io.filesystem.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io.filesystem.primitives\\4.0.1\\system.io.filesystem.primitives.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.io.pipelines\\5.0.0\\system.io.pipelines.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.linq\\4.1.0\\system.linq.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.linq.expressions\\4.1.0\\system.linq.expressions.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.net.http\\4.1.0\\system.net.http.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.net.nameresolution\\4.0.0\\system.net.nameresolution.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.net.primitives\\4.0.11\\system.net.primitives.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.net.sockets\\4.1.0\\system.net.sockets.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.objectmodel\\4.0.12\\system.objectmodel.4.0.12.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.0.1\\system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.emit.lightweight\\4.0.1\\system.reflection.emit.lightweight.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.extensions\\4.0.1\\system.reflection.extensions.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.reflection.typeextensions\\4.1.0\\system.reflection.typeextensions.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.resources.resourcemanager\\4.0.1\\system.resources.resourcemanager.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.2\\system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.extensions\\4.1.0\\system.runtime.extensions.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.handles\\4.0.1\\system.runtime.handles.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.interopservices\\4.1.0\\system.runtime.interopservices.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.0.0\\system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.runtime.numerics\\4.0.1\\system.runtime.numerics.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.algorithms\\4.2.0\\system.security.cryptography.algorithms.4.2.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.cng\\4.5.0\\system.security.cryptography.cng.4.5.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.csp\\4.0.0\\system.security.cryptography.csp.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.encoding\\4.0.0\\system.security.cryptography.encoding.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.openssl\\4.0.0\\system.security.cryptography.openssl.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.primitives\\4.0.0\\system.security.cryptography.primitives.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.protecteddata\\5.0.0\\system.security.cryptography.protecteddata.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.1.0\\system.security.cryptography.x509certificates.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.permissions\\5.0.0\\system.security.permissions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.serviceprocess.servicecontroller\\5.0.0\\system.serviceprocess.servicecontroller.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.text.encoding.extensions\\4.0.11\\system.text.encoding.extensions.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.text.json\\5.0.0\\system.text.json.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.text.regularexpressions\\4.1.0\\system.text.regularexpressions.4.1.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading\\4.0.11\\system.threading.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading.tasks.extensions\\4.0.0\\system.threading.tasks.extensions.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading.thread\\4.0.0\\system.threading.thread.4.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading.threadpool\\4.0.10\\system.threading.threadpool.4.0.10.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.threading.timer\\4.0.1\\system.threading.timer.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.windows.extensions\\5.0.0\\system.windows.extensions.5.0.0.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.xml.readerwriter\\4.0.11\\system.xml.readerwriter.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.xml.xdocument\\4.0.11\\system.xml.xdocument.4.0.11.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.xml.xmldocument\\4.0.1\\system.xml.xmldocument.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.xml.xpath\\4.0.1\\system.xml.xpath.4.0.1.nupkg.sha512",
+    "C:\\Users\\user\\.nuget\\packages\\system.xml.xpath.xmldocument\\4.0.1\\system.xml.xpath.xmldocument.4.0.1.nupkg.sha512"
   ],
   "logs": []
 }

Plik diff jest za duży
+ 0 - 0
IMCS_CCS/wwwroot/db/Tasks.json


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików