| | |
| | | LogHelper.Info("Wcs下发任务异常" + ex.Message, "Wcs下发任务"); |
| | | return result; |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// Wcs满托入和空托出 |
| | |
| | | var endList2 = LocationHelper.GetAllLocList1(workFlow.ERRORAREA); |
| | | end1 = LocationHelper.FindEndcolByLoc(endList2, workFlow.ERRORAREA); |
| | | LogHelper.Info($"ZcWcsInWorkArea一段任务入异常库区终点信息" + JsonConvert.SerializeObject(end1), "Wcs下发任务"); |
| | | if (end1 == null) |
| | | { |
| | | LogHelper.Info($"ZcWcsInWorkArea任务下发失败,终点库区{workFlow.ERRORAREA},没找到终点", "Wcs下发任务"); |
| | | throw new Exception($"终点库区{workFlow.ERRORAREA},没找到终点"); |
| | | } |
| | | } |
| | | else { |
| | | end1 = LocationHelper.FindEndcolByLoc(endList1, workFlow.ENDAREA); |
| | | LogHelper.Info($"ZcWcsInWorkArea一段任务入三层货架终点信息" + JsonConvert.SerializeObject(end1), "Wcs下发任务"); |
| | | if (end1 == null) |
| | | { |
| | | LogHelper.Info($"ZcWcsInWorkArea任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Wcs下发任务"); |
| | | throw new Exception($"终点库区{workFlow.ENDAREA},没找到终点"); |
| | | } |
| | | } |
| | | |
| | | |
| | | LogHelper.Info($"ZcWcsInWorkArea任务下发终点信息" + JsonConvert.SerializeObject(end1), "Wcs下发任务"); |
| | | |
| | | if (end1 == null) |
| | | { |
| | | LogHelper.Info($"ZcWcsInWorkArea任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Wcs下发任务"); |
| | | throw new Exception($"终点库区{workFlow.ENDAREA},没找到终点"); |
| | | } |
| | | //添加托盘物料关联表 |
| | | |
| | | |
| | | |
| | | |
| | | //添加托盘 异常托盘不添加 |
| | | if (!(model.code == "1" || model.contNo == "99")) { |
| | | |
| | | //添加托盘物料关联表 |
| | | |
| | | CntrItemRel rel = new CntrItemRel(); |
| | | |
| | | |
| | | rel.S_CNTR_CODE = model.contNo; |
| | | rel.PRODUCTIONDATE = DateTime.Parse(item.wrkdatetime); |
| | | rel.S_ITEM_CODE = item.recipe; |
| | | rel.F_SUM_QTY = item.zl; |
| | | rel.TurnCardNum = item.tmh; |
| | | rel.facnm = item.facnm; |
| | | rel.cdrub= item.cdrub; |
| | | rel.cdrub = item.cdrub; |
| | | rel.mchid = item.mchid; |
| | | rel.wdate = item.wdate; |
| | | rel.wsht = item.wsht; |
| | | rel.strbat = item.strbat; |
| | | rel.wsht = item.wsht; |
| | | rel.strbat = item.strbat; |
| | | rel.endbat = item.endbat; |
| | | rel.planno = item.planno; |
| | | rel.stage = item.stage; |
| | | rel.planno = item.planno; |
| | | rel.stage = item.stage; |
| | | rel.grd = item.grd; |
| | | |
| | | |
| | | ContainerHelper.CreateCntrItem(rel); |
| | | |
| | | |
| | | //添加托盘 |
| | | if (model.code == "1" || model.contNo == "99") { |
| | | Container cntr1 = new Container(); |
| | | cntr1.S_CODE = model.contNo; |
| | | cntr1.C_ENABLE = "Y"; |
| | |
| | | //优先级 |
| | | N_PRIORITY = 1, |
| | | //工装类型 |
| | | TOOLSTYPE = "" |
| | | TOOLSTYPE = "", |
| | | //起点库区名称 |
| | | S_START_AREA_NAME = start1.S_AREA_Name, |
| | | //终点库区名称 |
| | | S_END_AREA_NAME= end1.S_AREA_Name, |
| | | //接驳位库区名称 |
| | | CONNECTION_AREA = "" |
| | | }; |
| | | |
| | | //创建作业 |
| | |
| | | //优先级 |
| | | N_PRIORITY = 1, |
| | | //工装类型 |
| | | TOOLSTYPE = "" |
| | | TOOLSTYPE = "" , |
| | | //起点库区名称 |
| | | S_START_AREA_NAME = start.S_AREA_Name, |
| | | //终点库区名称 |
| | | S_END_AREA_NAME = end.S_AREA_Name, |
| | | //接驳位库区名称 |
| | | CONNECTION_AREA = "" |
| | | }; |
| | | |
| | | //创建作业 |
| | |
| | | TaskHelper.Fail(transportTask); |
| | | TaskProcess.OperateStatus(transportTask, 7); |
| | | |
| | | var agvTask = newDb.Queryable<WMSTask>().Where(e => e.S_CODE == transportTask.S_OP_CODE+"_1")?.First(); |
| | | var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | |
| | | if (agvTask == null) |
| | | { |
| | | LogHelper.Info($"RFID校验失败,没找到对应{transportTask.S_OP_CODE+"_1"}任务", "Wcs任务执行通知"); |
| | | throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE + "_1"}任务"); |
| | | LogHelper.Info($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务", "Wcs任务执行通知"); |
| | | throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE }的agv任务"); |
| | | } |
| | | var workFlow = TaskHelper.selectWorkFlowByType(agvTask.N_TYPE.ToString(), agvTask.TOOLSTYPE); |
| | | |
| | |
| | | TaskHelper.Fail(transportTask); |
| | | TaskProcess.OperateStatus(transportTask, 7); |
| | | LocationHelper.updateLocLock(transportTask.S_START_LOC, 4, "异常锁"); |
| | | var agvTask = TaskHelper.GetTask(transportTask.S_OP_CODE + "_1"); |
| | | var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | if (agvTask!=null) |
| | | { |
| | | TaskHelper.Fail(agvTask); |
| | |
| | | LogHelper.Info("查询到安全请求信号记录表已经存在数据,此次信号不下达给立库", "agv执行通知"); |
| | | return true; |
| | | } |
| | | |
| | | if (mst.S_TYPE.Contains("入库")) |
| | | switch (state) |
| | | { |
| | | Type = "2"; |
| | | bit = mst.S_END_LOC; |
| | | if (state == 1103) |
| | | { |
| | | Meshod = "AgvRequest"; |
| | | bit = mst.S_END_LOC; |
| | | } |
| | | else if (state == 7) |
| | | { |
| | | Type = "3"; |
| | | Meshod = "AgvRequestCancel"; |
| | | } |
| | | else if (state == 4) { |
| | | //申请出门 |
| | | Type = "4"; |
| | | Meshod = "AgvRequest"; |
| | | bit = mst.S_END_LOC; |
| | | } |
| | | else |
| | | { |
| | | Meshod = "Complete"; |
| | | } |
| | | } |
| | | else if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | if (state == 1101) |
| | | { |
| | | Meshod = "AgvRequest"; |
| | | } |
| | | else if (state == 7) |
| | | { |
| | | Type = "3"; |
| | | Meshod = "AgvRequestCancel"; |
| | | } |
| | | else if (state == 3) |
| | | { |
| | | //申请进门 |
| | | Type = "3"; |
| | | Meshod = "AgvRequest"; |
| | | case 1101: |
| | | Type = "1"; |
| | | bit = mst.S_START_LOC; |
| | | } |
| | | else |
| | | { |
| | | 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"; |
| | | bit = mst.S_END_LOC; |
| | | Meshod = "AgvRequestCancel"; |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("除了出入库其余不需要安全请求", "agv执行通知"); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | var endLoc = LocationHelper.GetLocOne(task.S_END_LOC); |
| | | |
| | | var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROW == endLoc.N_ROW && a.N_COL > endLoc.N_COL && a.S_LOCK_STATE == "无" && a.N_CURRENT_NUM == 0).OrderBy(b=>b.N_COL).First(); |
| | | var end = newDb.Queryable<Location>().Where(a => a.S_AREA_CODE == endLoc.S_AREA_CODE && a.N_ROW == endLoc.N_ROW && a.N_COL > endLoc.N_COL && a.S_LOCK_STATE == "无" && a.N_CURRENT_NUM == 0 && a.C_ENABLE=="Y").OrderBy(b=>b.N_COL).First(); |
| | | |
| | | LogHelper.Info($"Wcs放货有货寻找新终点信息" + JsonConvert.SerializeObject(end), "放货有货"); |
| | | |