|
@@ -360,6 +360,15 @@ namespace IMCS.CCS.Services
|
|
|
responseData.result = "false";
|
|
|
return responseData;
|
|
|
}
|
|
|
+ //移动取放条件
|
|
|
+ bool IsAllowFlag = await robotActionCondition(req.url, req.data.IsAllowFlag, ActionTypeEnum.GetQualityCenter.ToString());
|
|
|
+ if (!IsAllowFlag)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.GetQualityCenter) + "并发动作异常===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.GetQualityCenter));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
|
|
|
CcsAction actionQuery = new CcsAction();
|
|
|
actionQuery.OperateType = ActionTypeEnum.GetQualityCenter.ToString();
|
|
@@ -380,6 +389,7 @@ namespace IMCS.CCS.Services
|
|
|
actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
|
|
+
|
|
|
//查询条件
|
|
|
List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
|
|
|
foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
|
|
@@ -398,6 +408,7 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
|
|
|
//查询写入地址列表
|
|
|
List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
@@ -623,6 +634,15 @@ namespace IMCS.CCS.Services
|
|
|
responseData.result = "false";
|
|
|
return responseData;
|
|
|
}
|
|
|
+ //移动取放条件
|
|
|
+ bool IsAllowFlag = await robotActionCondition(req.url, req.data.IsAllowFlag, ActionTypeEnum.SendQualityCenter.ToString());
|
|
|
+ if (!IsAllowFlag)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter) + "并发动作异常===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
|
|
|
CcsAction actionQuery = new CcsAction();
|
|
|
actionQuery.OperateType = ActionTypeEnum.SendQualityCenter.ToString();
|
|
@@ -719,6 +739,16 @@ namespace IMCS.CCS.Services
|
|
|
return responseData;
|
|
|
}
|
|
|
|
|
|
+ //移动取放条件
|
|
|
+ bool IsAllowFlag = await robotActionCondition(req.url, req.data.IsAllowFlag, ActionTypeEnum.MoveRobotPosition.ToString());
|
|
|
+ if (!IsAllowFlag)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.MoveRobotPosition) + "并发动作异常===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.MoveRobotPosition));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
CcsAction actionQuery = new CcsAction();
|
|
|
actionQuery.OperateType = ActionTypeEnum.MoveRobotPosition.ToString();
|
|
|
actionQuery.Ip = req.url;
|
|
@@ -2178,6 +2208,32 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //移动取放 条件限制
|
|
|
+ private async Task<bool> robotActionCondition(string ip ,string isAllowFlag,string currentAction)
|
|
|
+ {
|
|
|
+ //isAllowFlag 不传或为1时限制条件
|
|
|
+ if (string.IsNullOrEmpty(isAllowFlag) || isAllowFlag == "1")
|
|
|
+ {
|
|
|
+ //查询当前执行过的任务
|
|
|
+ TaskCallback queryTaskCallback = new TaskCallback();
|
|
|
+ queryTaskCallback.IP = ip;
|
|
|
+ TaskCallback taskCallBack = await _taskCallbackService.GetRobotActionList(queryTaskCallback);
|
|
|
+
|
|
|
+ if(taskCallBack != null)
|
|
|
+ {
|
|
|
+ if((currentAction == ActionTypeEnum.MoveRobotPosition.ToString() && taskCallBack.OperateType != ActionTypeEnum.SendQualityCenter.ToString())
|
|
|
+ || (currentAction == ActionTypeEnum.GetQualityCenter.ToString() && taskCallBack.OperateType != ActionTypeEnum.MoveRobotPosition.ToString())
|
|
|
+ || (currentAction == ActionTypeEnum.SendQualityCenter.ToString() && taskCallBack.OperateType != ActionTypeEnum.GetQualityCenter.ToString()))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
//设置回调值
|
|
|
private TaskCallback setCallBackValue(List<CcsActionAddress> CcsActionAddresses, TaskCallback taskCallbackData)
|
|
|
{
|