| | |
| | | var wmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); |
| | | if (wmsTask != null && wmsTask.N_B_STATE < 2) |
| | | { |
| | | WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData); |
| | | if (model.State <= 7) |
| | | { |
| | | //有任务号请求 |
| | |
| | | { |
| | | LogHelper.Info($"任务号:{TN_Task.S_CODE},AGV任务完成,任务信息回报GT", "AGV"); |
| | | string shift = ApiHelper.getShift(DateTime.Now.TimeOfDay); |
| | | string ydate_shiftName = ""; |
| | | string ydate= ""; |
| | | if (shift == "III") |
| | | { |
| | | ydate_shiftName = DateTime.Now.AddDays(-1).ToString("yy/MM/dd") + "-" + shift; |
| | | ydate = DateTime.Now.AddDays(-1).ToString("dd/MM/yy"); |
| | | } |
| | | else |
| | | { |
| | | ydate_shiftName = DateTime.Now.ToString("yy/MM/dd") + "-" + shift; |
| | | ydate = DateTime.Now.ToString("dd/MM/yy"); |
| | | } |
| | | WmsToGtLokasiModel wmsToGtLokasiModel = new WmsToGtLokasiModel() |
| | | Trfloc trfloc = new Trfloc() |
| | | { |
| | | ydate_shiftName = ydate_shiftName, |
| | | recid = 1, |
| | | ydate = ydate, |
| | | shift = shift, |
| | | bc_entried = cntrItemRels[0].S_CG_ID, |
| | | loc_from = TN_Task.S_START_LOC, |
| | | loc_to = TN_Task.S_END_LOC, |
| | | qty = 1, |
| | | qty = cntrItemRels[0].F_QTY, |
| | | lot = 1, |
| | | scantime = TN_Task.T_CREATE.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | pic = model.ForkliftNo |
| | | pic = model.ForkliftNo, |
| | | last_modify_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") |
| | | }; |
| | | GtDispatch.agvTaskFeedback(wmsToGtLokasiModel); |
| | | |
| | | } |
| | | break; |
| | | case 7: |
| | |
| | | if (agvJBLoc != null && agvJBLoc.action == 1) |
| | | { |
| | | //是则查询WCS的任务执行情况 |
| | | var wcsTask = WCSHelper.GetTaskBySrcNoAndScheduleType(TN_Task.S_OP_CODE, "WCS"); |
| | | var wcsTask = WCSHelper.GetTaskBySrcNoAndScheduleType(TN_Task.S_OP_CODE, "WCS" , wmsTask.S_TYPE); |
| | | if (wcsTask != null) |
| | | { |
| | | bool existAction = WCSHelper.CheckActionRecordExist(wcsTask.S_CODE, 7); |
| | |
| | | //安全请求等 |
| | | TaskProcess.OperateReq(model.No, model.State, model.ForkliftNo, model.ExtData); |
| | | } |
| | | |
| | | WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | // 满料托盘入库 |
| | | itemCode = cntrItemRels[0].S_ITEM_CODE; |
| | | int itemType = cntrItemRels[0].N_PRODUCT_TYPE_CODE; |
| | | var endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, null, 1, itemCode); |
| | | if (endLoc != null) |
| | | { |
| | |
| | | return agvLoc; |
| | | } |
| | | } |
| | | |
| | | LogHelper.Info($"任务号:{taskNo},入库接驳位货位都已禁用", "AGV"); |
| | | } |
| | | else |
| | |
| | | WMSHelper.updateEmptyTrayBuffer(emptyTray); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, null, 1); |
| | | if (endLoc != null) |
| | | { |
| | | Location agvLoc = null; |
| | | var locCodes = Settings.getAgvJBLocList(endLoc.N_ROADWAY, 1); |
| | | if (locCodes.Count > 0) |
| | | { |
| | | foreach (var locCode in locCodes) |
| | | { |
| | | agvLoc = LocationHelper.GetLoc(locCode); |
| | | if (agvLoc != null && agvLoc.C_ENABLE == "Y") |
| | | { |
| | | cst.S_END_LOC = agvLoc.S_CODE; |
| | | cst.S_END_AREA = agvLoc.S_AREA_CODE; |
| | | WCSHelper.UpdateTaskEnd(cst); |
| | | |
| | | mst.S_END_LOC = endLoc.S_CODE; |
| | | mst.S_END_AREA = endLoc.S_AREA_CODE; |
| | | WMSHelper.UpdateTaskEnd(mst); |
| | | LocationHelper.LockLoc(endLoc.S_CODE, 1); |
| | | |
| | | LogHelper.Info($"任务号:{taskNo},AGV申请的终点:{agvLoc.S_CODE}", "AGV"); |
| | | return agvLoc; |
| | | } |
| | | } |
| | | |
| | | LogHelper.Info($"任务号:{taskNo},入库接驳位货位都已禁用", "AGV"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务号:{taskNo},没有配置立库接驳位", "AGV"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务号:{taskNo},立库没有满足条件的空货位", "AGV"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |