| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using WCS.Service;
- namespace WCS.WorkEngineering.WebApi.Models.AGV.Request
- {
- public class AgvCallbackRequest
- {
- /// <summary>
- /// 请求编号,每个请求都要一个唯一编号, 同一个请求重复提交, 使用同一编号
- /// </summary>
- public string reqCode { get; set; }
- /// <summary>
- /// 请求站台
- /// </summary>
- public string callCode { get; set; }
- /// <summary>
- /// 请求时间戳,格式: “yyyy-MM-dd HH:mm:ss”
- /// </summary>
- public string reqTime { get; set; }
- /// <summary>
- /// 地码 X 坐标(mm):任务完成时有值
- /// </summary>
- public decimal cooX { get; set; }
- /// <summary>
- /// 地码 Y 坐标(mm):任务完成时有值
- /// </summary>
- public decimal cooY { get; set; }
- /// <summary>
- /// 当前位置编号
- /// </summary>
- public string currentPositionCode { get; set; }
- /// <summary>
- /// 自定义字段
- /// </summary>
- public string data { get; set; }
- /// <summary>
- /// 地图编号
- /// </summary>
- public string mapCode { get; set; }
- /// <summary>
- /// 地码编号:任务完成时有值
- /// </summary>
- public string mapDataCode { get; set; }
- /// <summary>
- /// 仓位编号:叉车与CTU任务时有值
- /// </summary>
- public string stgBinCode { get; set; }
- /// <summary>
- /// 方法名,申请放货、请求取货、
- /// </summary>
- public string method { get; set; }
- /// <summary>
- /// 货架编号:背货架时有值
- /// </summary>
- public string podCode { get; set; }
- /// <summary>
- /// “180”,”0”,”90”,”-90” 分别对应地图的”左”,”右”,”上”,”下”:任务完成时有值
- /// </summary>
- public string podDir { get; set; }
- /// <summary>
- /// 物料编号
- /// </summary>
- public string materialLot { get; set; }
- /// <summary>
- /// AGV编号(同 agvCode )
- /// </summary>
- public string robotCode { get; set; }
- /// <summary>
- /// 当前任务单号
- /// </summary>
- public string taskCode { get; set; }
- /// <summary>
- /// 工作位
- /// </summary>
- public string wbCode { get; set; }
- /// <summary>
- /// 容器编号
- /// </summary>
- public string ctnrCode { get; set; }
- /// <summary>
- /// 容器类型
- /// </summary>
- public string ctnrTyp { get; set; }
- /// <summary>
- /// 巷道编号
- /// </summary>
- public string roadWayCode { get; set; }
- /// <summary>
- /// 巷道内顺序号巷道尾是0,到巷道头依次递增1
- /// </summary>
- public string seq { get; set; }
- /// <summary>
- /// 设备编号
- /// </summary>
- public string eqpCode { get; set; }
- /// <summary>
- /// 执行堆垛机任务 单例锁
- /// </summary>
- /// <param name="act"></param>
- public void EX(Action<AgvCallbackRequest> act)
- {
- var key = $"WCS:Lock:{act.}";
- try
- {
- if (ProtocolProxy.YG150Redis.Get(key) != null) throw new WarnException($"[{Entity.CODE}]--触发并发管控");
- ProtocolProxy.YG150Redis.Set(key, Entity.CODE);
- act(this);
- }
- catch (DoException ex)
- {
- ex.DoExceptionEX(Entity);
- }
- catch (WarnException ex)
- {
- ex.WarnExceptionEX(Entity);
- }
- catch (Exception ex)
- {
- ex.ExceptionEx(Entity);
- }
- finally
- {
- ProtocolProxy.YG150Redis.Del(key);
- }
- }
- }
- }
|