zhuhao 2 gadi atpakaļ
vecāks
revīzija
93f73e566f

+ 9 - 0
IMCS_CCS/Controllers/JobTasksController.cs

@@ -133,6 +133,15 @@ namespace IMCS.CCS.Controllers
         {
             return await _taskJobService.DeviceStatusJob(); 
         }
+        /// <summary>
+        /// 删除redis
+        /// </summary> 
+        /// <returns></returns> 
 
+        [HttpPost("RemoveRedis")]
+        public void RemoveRedis()
+        {
+            _taskJobService.removeRedis();
+        }
     }
 }

+ 1 - 1
IMCS_CCS/Repository/TaskCallbackRepository.cs

@@ -18,7 +18,7 @@ namespace IMCS.CCS.Repository
         public async Task<List<TaskCallback>> GetAllList()
         {
             IQueryable<TaskCallback> list = _context.TaskCallback;
-            list = list.Where(x => x.State);
+            list = list.Where(x => x.State).OrderBy(o=>o.CreateTime);
             return await list.ToListAsync();
         }
 

+ 6 - 0
IMCS_CCS/Service/ITaskJobService.cs

@@ -78,5 +78,11 @@ namespace IMCS.CCS.Service
         /// <returns></returns>
         Task<string> DeviceStatusJob();
 
+        /// <summary>
+        /// 删除redis
+        /// </summary> 
+        /// <returns></returns>
+        void removeRedis();
+
     }
 }

+ 161 - 185
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -46,7 +46,7 @@ namespace IMCS.CCS.Service.Impl
 
         private string ecsRootUrlContext;
 
-        private string fanucUrlContext; 
+        private string fanucUrlContext;
 
         private string opcuacUrlContext;
 
@@ -75,7 +75,7 @@ namespace IMCS.CCS.Service.Impl
                               IApiRequestService apiRequestService,
                               ICcsTagValueService ccsTagValueService,
                               IEquipmentMonitorService equipmentMonitorService,
-                              IDictionaryService  dictionaryService,
+                              IDictionaryService dictionaryService,
                               ICcsActionAddressService ccsActionAddressService,
                               IConfiguration configuration)
         {
@@ -95,7 +95,7 @@ namespace IMCS.CCS.Service.Impl
             ecsRootUrlContext = Configuration.GetConnectionString("ecsRootUrlContext");
             syncStatusMap.Add("离线", 0);
             syncStatusMap.Add("空闲", 1);
-            syncStatusMap.Add("生产中", 2);            
+            syncStatusMap.Add("生产中", 2);
             syncStatusMap.Add("报警", 3);
             //在线状态默认传参后台空闲状态
             syncStatusMap.Add("在线", 1);
@@ -109,17 +109,17 @@ namespace IMCS.CCS.Service.Impl
         {
             try
             {
-                List<Device> deviceList = new List<Device>();  
+                List<Device> deviceList = new List<Device>();
                 var deviceListData = await _redisService.Database.StringGetAsync(device_redis_key);
                 if (deviceListData.IsNullOrEmpty)
                 {
-                    deviceList = _deviceService.GetDeviceList(); 
+                    deviceList = _deviceService.GetDeviceList();
                     await _redisService.Database.StringSetAsync(device_redis_key, JsonConvert.SerializeObject(deviceList));
                 }
                 else
                 {
                     deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                }  
+                }
 
                 deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.OPCUA.ToString())).ToList();
 
@@ -250,7 +250,7 @@ namespace IMCS.CCS.Service.Impl
                 else
                 {
                     deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                } 
+                }
                 deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.S7_1500.ToString())).ToList();
                 foreach (Device device in deviceList)
                 {
@@ -453,36 +453,39 @@ namespace IMCS.CCS.Service.Impl
                 list = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
             }
 
-            list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).ToList();
+            TaskCallback task = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).FirstOrDefault();
+            if (task == null)
+            {
+                return "无回调任务";
+            }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
+
+                DateTime currentTime = DateTime.Now;
+                if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
                 {
-                    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)
                     {
-                        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);
-                        }
-
+                        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)
@@ -517,34 +520,27 @@ namespace IMCS.CCS.Service.Impl
                                  || x.OperateType.Equals(ActionTypeEnum.GetIntelligenceUnit.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendIntelligenceUnit.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.GetQualityCenter.ToString())
-                                 || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString()) 
+                                 || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.GetServoStacker.ToString())
-                                 || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString()) 
+                                 || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault() ; 
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
-            }
+                return "无回调任务" ;
+            } 
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     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();
-                    
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+
                     if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
@@ -569,7 +565,7 @@ namespace IMCS.CCS.Service.Impl
                     }
                     //回调检测到失败,回调通知ecs
                     if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    { 
+                    {
                         bool failFalg = false;
                         if (!string.IsNullOrEmpty(task.FailAddress))
                         {
@@ -598,7 +594,7 @@ namespace IMCS.CCS.Service.Impl
                                 failFalg = true;
                             }
                         }
-                        if (failFalg) 
+                        if (failFalg)
                         {
                             CallBackRequestData requestData = new CallBackRequestData();
                             requestData.taskId = long.Parse(task.TaskId);
@@ -621,8 +617,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-                     
-                }
+ 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -652,27 +647,20 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartLabelMachine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
-                {
+               
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP; 
+                    tagValueQuery.Ip = task.IP;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
                     CcsTagValue callBacktagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
                     if (callBacktagValue != null && callBacktagValue2 != null && callBacktagValue.TagValue == task.CallbackValue && callBacktagValue2.TagValue == task.CallbackValue2)
                     {
@@ -765,8 +753,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-
-                }
+ 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -795,30 +782,23 @@ namespace IMCS.CCS.Service.Impl
             //在线设备
             List<Device> deviceList = _deviceService.GetDeviceList();
 
-            taskList = taskList.Where(x =>  x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
-                {
+              
                     DateTime currentTime = DateTime.Now;
                     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).FirstOrDefault() ;
-                     
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+
                     if (tagValue != null && tagValue.TagValue == task.CallbackValue)
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
@@ -896,7 +876,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-                }
+                
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -925,22 +905,14 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartCleanMachine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
@@ -1023,8 +995,7 @@ namespace IMCS.CCS.Service.Impl
                                 Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                             }
                         }
-                    }
-                }
+                    } 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -1054,27 +1025,19 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP; 
+                    tagValueQuery.Ip = task.IP;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue tagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
                     //点位放在描述里判断左中右
                     string pos = task.Description;
                     string posValue = "";
@@ -1094,9 +1057,9 @@ namespace IMCS.CCS.Service.Impl
                         posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
                         key = (int)ThreeCoordinatesPosEnum.R;
                     }
-                   
+
                     CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue && o.TagValue != "0").FirstOrDefault();
-                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue ))
+                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue))
                     {
                         CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
@@ -1135,7 +1098,7 @@ namespace IMCS.CCS.Service.Impl
                            //判断是否可取滑台
                            if (freeActionAdress != null)
                            {*/
-                           //根据sort顺序,查询左中右可取位置,写入地址列表
+                        //根据sort顺序,查询左中右可取位置,写入地址列表
                         CcsActionAddress actionAddressGet = new CcsActionAddress();
                         actionAddressGet.Type = "CALLBACK_GET_COOR";
                         actionAddressGet.Sort = key;
@@ -1146,7 +1109,7 @@ namespace IMCS.CCS.Service.Impl
                         //根据工件id确认哪个位置已测量,赋值工位id
                         string srcWorkId = task.CallbackFailValue3; //原工件id
                         var workIdResult = s7.ReadString(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L));
-                        if(workIdResult.ToString() == srcWorkId)
+                        if (workIdResult.ToString() == srcWorkId)
                         {
                             requestData.stationId = "L";
                         }
@@ -1168,30 +1131,30 @@ namespace IMCS.CCS.Service.Impl
                         }
 
                         foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
+                        {
+                            if (!string.IsNullOrEmpty(actionAddress.Address))
                             {
-                                if (!string.IsNullOrEmpty(actionAddress.Address))
+                                if (actionAddress.Value == "workId")
                                 {
-                                    if (actionAddress.Value == "workId")
-                                    {
-                                        var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.workId = operateResult.ToString();
-                                    }
-                                    else if (actionAddress.Value == "procedureNo")
-                                    {
-                                        var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.procedureNo = operateResult.ToString();
-                                     }
-                                    else if (actionAddress.Value == "workProgramName")
-                                    {
-                                         var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.workProgramName = operateResult.ToString();
+                                    var operateResult = s7.ReadString(actionAddress.Address);
+                                    requestData.workId = operateResult.ToString();
+                                }
+                                else if (actionAddress.Value == "procedureNo")
+                                {
+                                    var operateResult = s7.ReadString(actionAddress.Address);
+                                    requestData.procedureNo = operateResult.ToString();
+                                }
+                                else if (actionAddress.Value == "workProgramName")
+                                {
+                                    var operateResult = s7.ReadString(actionAddress.Address);
+                                    requestData.workProgramName = operateResult.ToString();
 
-                                    }
-                            }
+                                }
                             }
+                        }
 
 
-                       // }
+                        // }
                         s7.ConnectClose();
 
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
@@ -1265,8 +1228,7 @@ namespace IMCS.CCS.Service.Impl
                                 Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                             }
                         }
-                    }
-                }
+                    } 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -1285,7 +1247,7 @@ namespace IMCS.CCS.Service.Impl
             try
             {
                 string message = "MonitorEquipmentStatusJob调度成功";
-                List<Device> devices = new List<Device>() ;
+                List<Device> devices = new List<Device>();
                 string device_redis_key = "IMCS_CCS:DeviceList";
                 var deviceData = await _redisService.Database.StringGetAsync(device_redis_key);
                 if (deviceData.IsNullOrEmpty)
@@ -1323,71 +1285,71 @@ namespace IMCS.CCS.Service.Impl
                     Device device = devices.Where(x => x.Ip.Equals(equipment.IP)).FirstOrDefault();
                     if (device == null)
                     {
-                        if(equipment.Status != "离线")
+                        if (equipment.Status != "离线")
                         {
                             equipment.Status = "离线";
                             changeEquipmentMonitors.Add(equipment);
                         }
-                        
+
                         continue;
                     }
                     else if (equipment.Name == "机械手")
-                        {
-                            CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();                            
+                    {
+                        CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();
                         if (ccsTagValue != null)
+                        {
+                            if (ccsTagValue.TagValue == "3")
                             {
-                                if (ccsTagValue.TagValue == "3")
+                                if (equipment.Status != "报警")
                                 {
-                                    if (equipment.Status != "报警")
-                                    {                                       
-                                        equipment.Status = "报警";                                        
-                                        changeEquipmentMonitors.Add(equipment);
-                                    }
-                                    
-                                    continue;
+                                    equipment.Status = "报警";
+                                    changeEquipmentMonitors.Add(equipment);
                                 }
+
+                                continue;
                             }
-                            CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
-                            if (ccsTagValue2 != null)
+                        }
+                        CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
+                        if (ccsTagValue2 != null)
+                        {
+                            if (ccsTagValue2.TagValue == "9")
                             {
-                                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 != "空闲")
+                                if (equipment.Status != "报警")
                                 {
-                                    equipment.Status = "空闲";
+                                    equipment.Status = "报警";
                                     changeEquipmentMonitors.Add(equipment);
                                 }
                                 continue;
-                            } 
-                            if (equipment.Status != "生产中")
+                            }
+                        }
+
+                        if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
+                        {
+                            if (equipment.Status != "空闲")
                             {
-                                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);
                         }
                     }
-                    
+
                 }
                 //变化的修改 并且更新缓存
-                if(changeEquipmentMonitors.Count > 0)
+                if (changeEquipmentMonitors.Count > 0)
                 {
                     List<ProductionStatus> productionStatusList = new List<ProductionStatus>();
                     foreach (EquipmentMonitor changeEquipment in changeEquipmentMonitors)
@@ -1397,11 +1359,11 @@ namespace IMCS.CCS.Service.Impl
                         productionStatus.onlineStatus = syncStatusMap[changeEquipment.Status].ToString();
                         //equipment.Status == "离线" ? "0" : "1";
                         //productionStatus.alertMsg = equipment.AlertMsg;
-                        if (productionStatus.onlineStatus !="3" && !string.IsNullOrEmpty(changeEquipment.Type))
+                        if (productionStatus.onlineStatus != "3" && !string.IsNullOrEmpty(changeEquipment.Type))
                         {
-                            if(changeEquipment.Type == "HEIDEHAIN")
+                            if (changeEquipment.Type == "HEIDEHAIN")
                             {
-                                RequestHeidhData hdhReq = new RequestHeidhData();                                
+                                RequestHeidhData hdhReq = new RequestHeidhData();
                                 Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
                                 hdhReq.ServerUrl = device.ServerUrl;
                                 hdhReq.MachineName = device.UserName;
@@ -1416,8 +1378,8 @@ namespace IMCS.CCS.Service.Impl
                                     }
                                 }
                             }
-                            else if(changeEquipment.Type == "FANUC")
-                            {                                
+                            else if (changeEquipment.Type == "FANUC")
+                            {
                                 Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
                                 string Url = fanucUrlContext + "?ip=" + device.Ip + "&port=" + device.Port;
                                 //调用发那科接口
@@ -1427,10 +1389,10 @@ namespace IMCS.CCS.Service.Impl
                                     ResponseFanucData fncReq = new ResponseFanucData();
                                     fncReq = JsonConvert.DeserializeObject<ResponseFanucData>(Result.Message);
                                     List<AlmInfo> AlmMsg = fncReq.AlmMsg;
-                                    if (AlmMsg!=null && AlmMsg.Count>0)
+                                    if (AlmMsg != null && AlmMsg.Count > 0)
                                     {
                                         var msgs = from o in AlmMsg select o.msg;
-                                        productionStatus.alertMsg = string.Join(",", msgs.ToArray());                                        
+                                        productionStatus.alertMsg = string.Join(",", msgs.ToArray());
                                     }
                                 }
                             }
@@ -1460,22 +1422,22 @@ namespace IMCS.CCS.Service.Impl
                     }
                     await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(equipmentMonitors));
 
-                    
+
                     //主动推送同步状态数据接口
-                    RequestSynStatusData requestData = new RequestSynStatusData();                    
+                    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)
+                    if (responseECSCallback != null && responseECSCallback.code == 0)
                     {
                         Log.Instance.WriteLogAdd("同步设备状态成功", LOG_TITLE_CALLBACK);
                     }
                     else
                     {
                         Log.Instance.WriteLogAdd("同步设备状态操作失败:" + responseECSCallback.msg, LOG_TITLE_CALLBACK);
-                    } 
+                    }
                 }
                 return message;
             }
@@ -1619,7 +1581,7 @@ namespace IMCS.CCS.Service.Impl
                             var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=Connect", null, null);
 
                             if (Result.IsSuccess && Result.Message == "0")
-                            { 
+                            {
                                 Device oldDevice = await _deviceService.GetDeviceById(device.Id);
                                 if (!oldDevice.State)
                                 {
@@ -1708,7 +1670,7 @@ namespace IMCS.CCS.Service.Impl
                         }
                     }
                 }
-                if(changeDevices != null)
+                if (changeDevices != null)
                 {
                     await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(devices));
                 }
@@ -1721,6 +1683,21 @@ namespace IMCS.CCS.Service.Impl
                 return "设备连接异常,或以离线" + ex.Message;
             }
         }
+        /// <summary>
+        /// 删除redis
+        /// </summary> 
+        /// <returns></returns>
+        public void removeRedis()
+        {
+            List<Device> devices = _deviceService.GetDeviceAllList();
+            string redis_key = "IMCS_CCS:";
+            _redisService.Database.KeyDelete(device_redis_key);
+            _redisService.Database.KeyDelete(callback_redis_key);
+            foreach (Device device in devices)
+            {
+                _redisService.Database.KeyDelete(redis_key + device.Ip + ":" + device.ProtocolType);
+            }
+        }
 
         /// <summary>
         /// fanuc根据类型获取值
@@ -1740,7 +1717,7 @@ namespace IMCS.CCS.Service.Impl
             else if (address == FanucAddressEnum.PowerOnTime.ToString())
             {
                 value = fanucData.PowerOnTime;
-            } 
+            }
             else if (address == FanucAddressEnum.ActSpindle.ToString())
             {
                 value = fanucData.ActSpindle;
@@ -1766,7 +1743,6 @@ namespace IMCS.CCS.Service.Impl
                 dData = Convert.ToDecimal(strData);
             }
             return dData;
-        }
-
+        } 
     }
 }