|
@@ -473,12 +473,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",上传请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("上传回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -550,6 +554,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//请求成功,任务状态改成结束
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
@@ -569,6 +574,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -619,12 +627,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",回调失败结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -823,12 +835,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -878,12 +894,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -1075,12 +1095,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -1713,12 +1737,16 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
task.State = false;
|
|
|
task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
message = message + JsonConvert.SerializeObject(task) + ",坐标系偏差值请求失败! WebApi 返回结果" + ";";
|
|
|
Log.Instance.WriteLogAdd("坐标系偏差值回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
@@ -1735,5 +1763,161 @@ namespace IMCS.CCS.Service.Impl
|
|
|
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 柔性产线,伺服等取和放回调任务
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<string> CallbackJob8()
|
|
|
+ {
|
|
|
+ List<TaskCallback> taskList = new List<TaskCallback>();
|
|
|
+ var taskCallbackListData = await _redisService.Database.StringGetAsync(imcs_redis_key + RedisKeyEnum.CallbackTaskList);
|
|
|
+ // 判断redis是否有数据,没有则查询表中是否有没有完成任务
|
|
|
+ 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.CutterRobotAction.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;
|
|
|
+
|
|
|
+ // 查询出采集的数据
|
|
|
+ List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
+ CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
+
|
|
|
+ // ①比较采集的数据值与回调的值是否相等,
|
|
|
+ // ②并且比较完成的时间与数据创建的时间是否大于10秒,因为机器人运动远大与十秒,小于十秒说明数据采集有问题,
|
|
|
+ DateTime currentTime = DateTime.Now;
|
|
|
+ if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue && currentTime.Subtract(task.CreateTime).TotalSeconds > 10)
|
|
|
+ {
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+
|
|
|
+ // 调用接口回传给imcs
|
|
|
+ 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;
|
|
|
+ task.Description = result.Message;
|
|
|
+ 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
|
|
|
+ {
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
+ 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;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",回调失败结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ task.Description = result.Message;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|