| | |
| | | string Traycode = mst.S_CNTR_CODE; |
| | | var isFu = "0"; |
| | | |
| | | var cntr = ContainerHelper.GetCntr(Traycode); |
| | | |
| | | if (cntr!=null) |
| | | try |
| | | { |
| | | if (cntr.N_DETAIL_COUNT>0) |
| | | var cntr = ContainerHelper.GetCntr(Traycode); |
| | | |
| | | if (cntr != null) |
| | | { |
| | | isFu = "1"; |
| | | if (cntr.N_DETAIL_COUNT > 0) |
| | | { |
| | | isFu = "1"; |
| | | } |
| | | } |
| | | } |
| | | var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); |
| | | var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); |
| | | |
| | | |
| | | |
| | | if (workFlow != null) |
| | | { |
| | | if (workFlow.INOROUT.Contains("入库")) |
| | | |
| | | if (workFlow != null) |
| | | { |
| | | Type = "1"; |
| | | if (workFlow.INOROUT.Contains("入库")) |
| | | { |
| | | Type = "1"; |
| | | } |
| | | |
| | | if (workFlow.INOROUT.Contains("出库")) |
| | | { |
| | | Type = "2"; |
| | | var count = TaskHelper.GetConnectionTask(mst.S_END_LOC); |
| | | if (count >= 2) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | if (workFlow.INOROUT.Contains("出库")) |
| | | if (mst.S_CNTR_CODE.Contains("KJZ")) |
| | | { |
| | | Type = "2"; |
| | | var count = TaskHelper.GetConnectionTask(mst.S_END_LOC); |
| | | if (count>=2) |
| | | TrayType = "KJZ"; |
| | | } |
| | | |
| | | var interact = new |
| | | { |
| | | requestPk = mst.S_CODE,//任务号 |
| | | contNo = Traycode,//托盘号 |
| | | contType = TrayType,//托盘类型 |
| | | trkType = Type,//任务类型 |
| | | trkPrty = mst.N_PRIORITY,//任务优先级 |
| | | frmPos = mst.S_START_LOC,//起始位置 |
| | | toPos = mst.S_END_LOC,//目的地 |
| | | isFull = isFu,//空托 满托 |
| | | groupNo = Item?.S_ITEM_NAME,//搬送组号 |
| | | clientCode = "WMS",//操作人 |
| | | operationTime = DateTime.Now.ToString()//操作时间 |
| | | }; |
| | | LogHelper.Info("Wcs立库下发任务 地址信息:" + baseUrl + "receive", "立库下发任务"); |
| | | LogHelper.Info("Wcs立库下发任务 参数信息:" + JsonConvert.SerializeObject(interact), "立库下发任务"); |
| | | var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact)); |
| | | LogHelper.Info("Wcs立库下发任务 返回信息:" + JsonConvert.SerializeObject(result), "立库下发任务"); |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result); |
| | | if (res.code == "0") |
| | | { |
| | | TaskHelper.UpdateStatus(mst, "已推送"); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | if (mst.S_CNTR_CODE.Contains("KJZ")) |
| | | { |
| | | TrayType = "KJZ"; |
| | | } |
| | | |
| | | var interact = new |
| | | { |
| | | requestPk = mst.S_CODE,//任务号 |
| | | contNo = Traycode,//托盘号 |
| | | contType = TrayType,//托盘类型 |
| | | trkType = Type,//任务类型 |
| | | trkPrty = mst.N_PRIORITY,//任务优先级 |
| | | frmPos = mst.S_START_LOC,//起始位置 |
| | | toPos = mst.S_END_LOC,//目的地 |
| | | isFull = isFu,//空托 满托 |
| | | groupNo = Item?.S_ITEM_NAME,//搬送组号 |
| | | clientCode = "WMS",//操作人 |
| | | operationTime = DateTime.Now.ToString()//操作时间 |
| | | }; |
| | | LogHelper.Info("Wcs立库下发任务 地址信息:" + baseUrl + "receive", "立库下发任务"); |
| | | LogHelper.Info("Wcs立库下发任务 参数信息:" + JsonConvert.SerializeObject(interact), "立库下发任务"); |
| | | var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact)); |
| | | LogHelper.Info("Wcs立库下发任务 返回信息:" + JsonConvert.SerializeObject(result), "立库下发任务"); |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result); |
| | | if (res.code == "0") |
| | | { |
| | | TaskHelper.UpdateStatus(mst, "已推送"); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("Wcs立库下发任务 返回信息为空", "立库下发任务"); |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | catch (Exception) |
| | | { |
| | | LogHelper.Info("Wcs立库下发任务 返回信息为空", "立库下发任务"); |
| | | return false; |
| | | |
| | | throw; |
| | | } |
| | | } |
| | | |
| | |
| | | RfidChek.S_RESULT = "RFID校验失败"; |
| | | if (WcsCancellTask(transportTask)) |
| | | { |
| | | ContainerHelper.delCntr(transportTask.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE); |
| | | |
| | | TaskHelper.Fail(transportTask); |
| | | TaskProcess.OperateStatus(transportTask, 7); |
| | | |
| | |
| | | throw new Exception("修改任务表失败"); |
| | | } |
| | | newDb.CommitTran(); |
| | | |
| | | var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | TaskHelper.opMesTask(agvTask1, 3); |
| | | ContainerHelper.delCntr(transportTask.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE); |
| | | } |
| | | else { |
| | | LogHelper.Info($"RFID校验失败,通知Wcs取消任务失败", "Wcs任务执行通知"); |
| | |
| | | string bit = ""; |
| | | var Meshod = ""; |
| | | var newDb = new SqlHelper<object>().GetInstance(); |
| | | var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList(); |
| | | if (tac.Count() > 0) |
| | | |
| | | try |
| | | { |
| | | LogHelper.Info("查询到安全请求信号记录表已经存在数据,此次信号不下达给立库", "agv执行通知"); |
| | | return true; |
| | | } |
| | | switch (state) |
| | | { |
| | | case 1101: |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | Meshod = "AgvRequest"; |
| | | break; |
| | | case 1102: |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | Meshod = "Complete"; |
| | | break; |
| | | case 1103: |
| | | Type = "2"; |
| | | bit = mst.S_END_LOC; |
| | | Meshod = "AgvRequest"; |
| | | break; |
| | | case 1104: |
| | | Type = "2"; |
| | | bit = mst.S_END_LOC; |
| | | Meshod = "Complete"; |
| | | break; |
| | | case 7: |
| | | Type = "5"; |
| | | if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | bit = mst.S_START_LOC; |
| | | } |
| | | else { |
| | | bit = mst.S_END_LOC; |
| | | } |
| | | |
| | | //退库取消发agv起点 |
| | | if (LocationHelper.GetErroArea(mst.S_END_AREA)) |
| | | { |
| | | bit = mst.S_START_LOC; |
| | | } |
| | | |
| | | |
| | | Meshod = "AgvRequestCancel"; |
| | | break; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | var interact = new |
| | | { |
| | | requestPk = mst.S_CODE,//任务号 |
| | | trkType = Type,//任务类型 |
| | | method = Meshod,//API名称 |
| | | stnNo = bit,//目的地站台号 |
| | | carNo = forkliftNo,// 车号 |
| | | clientCode = "WMS",//操作人 |
| | | operationTime = DateTime.Now.ToString()//操作时间 |
| | | }; |
| | | LogHelper.Info("agv执行通知 地址信息:" + baseUrl + "agvCallback", "agv执行通知"); |
| | | LogHelper.Info("agv执行通知 参数信息:" + JsonConvert.SerializeObject(interact), "agv执行通知"); |
| | | var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact)); |
| | | LogHelper.Info("agv执行通知 返回信息:" + JsonConvert.SerializeObject(result), "agv执行通知"); |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result); |
| | | if (res.code == "0") |
| | | var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList(); |
| | | if (tac.Count() > 0) |
| | | { |
| | | WcsSafety Sign = new WcsSafety(); |
| | | Sign.TaskNo = mst.S_CODE; |
| | | Sign.Sign = state; |
| | | newDb.BeginTran(); |
| | | var B = newDb.Insertable(Sign).ExecuteCommand(); |
| | | if (B == 0) |
| | | { |
| | | newDb.RollbackTran(); |
| | | } |
| | | newDb.CommitTran(); |
| | | LogHelper.Info("agv执行通知成功:", "agv执行通知"); |
| | | LogHelper.Info("查询到安全请求信号记录表已经存在数据,此次信号不下达给立库", "agv执行通知"); |
| | | return true; |
| | | } |
| | | switch (state) |
| | | { |
| | | case 1101: |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | Meshod = "AgvRequest"; |
| | | break; |
| | | case 1102: |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | Meshod = "Complete"; |
| | | break; |
| | | case 1103: |
| | | Type = "2"; |
| | | bit = mst.S_END_LOC; |
| | | Meshod = "AgvRequest"; |
| | | break; |
| | | case 1104: |
| | | Type = "2"; |
| | | bit = mst.S_END_LOC; |
| | | Meshod = "Complete"; |
| | | break; |
| | | case 7: |
| | | Type = "5"; |
| | | if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | bit = mst.S_START_LOC; |
| | | } |
| | | else |
| | | { |
| | | bit = mst.S_END_LOC; |
| | | } |
| | | |
| | | //退库取消发agv起点 |
| | | if (LocationHelper.GetErroArea(mst.S_END_AREA)) |
| | | { |
| | | bit = mst.S_START_LOC; |
| | | } |
| | | |
| | | |
| | | Meshod = "AgvRequestCancel"; |
| | | break; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | var interact = new |
| | | { |
| | | requestPk = mst.S_CODE,//任务号 |
| | | trkType = Type,//任务类型 |
| | | method = Meshod,//API名称 |
| | | stnNo = bit,//目的地站台号 |
| | | carNo = forkliftNo,// 车号 |
| | | clientCode = "WMS",//操作人 |
| | | operationTime = DateTime.Now.ToString()//操作时间 |
| | | }; |
| | | LogHelper.Info("agv执行通知 地址信息:" + baseUrl + "agvCallback", "agv执行通知"); |
| | | LogHelper.Info("agv执行通知 参数信息:" + JsonConvert.SerializeObject(interact), "agv执行通知"); |
| | | var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact)); |
| | | LogHelper.Info("agv执行通知 返回信息:" + JsonConvert.SerializeObject(result), "agv执行通知"); |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result); |
| | | if (res.code == "0") |
| | | { |
| | | WcsSafety Sign = new WcsSafety(); |
| | | Sign.TaskNo = mst.S_CODE; |
| | | Sign.Sign = state; |
| | | newDb.BeginTran(); |
| | | var B = newDb.Insertable(Sign).ExecuteCommand(); |
| | | if (B == 0) |
| | | { |
| | | newDb.RollbackTran(); |
| | | } |
| | | newDb.CommitTran(); |
| | | LogHelper.Info("agv执行通知成功:", "agv执行通知"); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("agv执行通知成功 返回信息为空", "agv执行通知"); |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | catch (Exception) |
| | | { |
| | | LogHelper.Info("agv执行通知成功 返回信息为空", "agv执行通知"); |
| | | return false; |
| | | |
| | | throw; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | public string code { get; set; } |
| | | public string msg { get; set; } |
| | | public bool success { get; set; } |
| | | public DataItem lastTime { get; set; } |
| | | public DateTime lastTime { get; set; } |
| | | } |
| | | |
| | | /// <summary> |