| | |
| | | return result; |
| | | } |
| | | |
| | | if (work.S_B_STATE == "等待") |
| | | { |
| | | work.N_B_STATE = 7; |
| | | work.S_B_STATE = "取消"; |
| | | work.T_MODIFY = DateTime.Now; |
| | | work.T_END_TIME = DateTime.Now; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | db.Updateable(work).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_MODIFY, it.T_END_TIME }).ExecuteCommand(); |
| | | LocationHelper.UnLockLoc(work.S_START_LOC); |
| | | LocationHelper.UnLockLoc(work.S_END_LOC); |
| | | if (!string.IsNullOrEmpty(work.CONNECTION)) |
| | | { |
| | | LocationHelper.UnLockLoc(work.CONNECTION); |
| | | } |
| | | result.errCode = 0; |
| | | result.errMsg = "取消成功"; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | |
| | | |
| | | //作业没有接驳位,一段任务取消 |
| | | if (string.IsNullOrEmpty(work.CONNECTION)) { |
| | | if (task != null) |
| | |
| | | { |
| | | //二段任务取消 |
| | | |
| | | if (task.S_TYPE.Contains("出库")) |
| | | { |
| | | |
| | | if (wcsTask != null) |
| | | { |
| | | LogHelper.Info($"cancelTask1取消Wcs任务{wcsTask.S_CODE}", "取消"); |
| | | if (wcsTask.S_B_STATE.Trim() == "未执行" && task.S_B_STATE.Trim() == "未执行") |
| | | if (wcsTask.S_B_STATE.Trim() == "未执行") |
| | | { |
| | | //未执行直接修改状态为取消 |
| | | TaskHelper.opMesTask(task, 3); |
| | | TaskHelper.Fail(task); |
| | | TaskProcess.OperateStatus(task,7); |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | | result.errCode = 0; |
| | | result.errMsg = "取消成功"; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | else |
| | | { |
| | |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | |
| | | if (task.S_B_STATE.Trim() == "未执行") |
| | | { |
| | | //未执行直接修改状态为取消 |
| | |
| | | result.errCode = 1; |
| | | result.errMsg = "任务已经结束"; |
| | | result.success = false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | |
| | | |
| | | |
| | | var workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE); |
| | | |
| | | |
| | | var workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE); |
| | | |
| | | |
| | | if (workFlow == null) |
| | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"作业流程信息" + JsonConvert.SerializeObject(workFlow), "Mes任务下发"); |
| | | LogHelper.Info($"出库作业流程信息" + JsonConvert.SerializeObject(workFlow), "Mes任务下发"); |
| | | } |
| | | |
| | | //出库任务 |
| | |
| | | } |
| | | |
| | | workFlow = TaskHelper.selectWorkFlowByEndArea(model.BUSI_TYPE, end.S_AREA_CODE); |
| | | TOOLSTYPE = workFlow.TOOLSTYPE; |
| | | if (workFlow != null) |
| | | { |
| | | TOOLSTYPE = workFlow.TOOLSTYPE; |
| | | } |
| | | } |
| | | |
| | | LogHelper.Info($"作业{model.task_no},工装类型{TOOLSTYPE}", "Mes任务下发"); |
| | |
| | | if (TOOLSTYPE == "25" || TOOLSTYPE == "35") |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库任务工装是二合一库,需要物料均衡", "Mes任务下发"); |
| | | balanceLocList = LocationHelper.RoadWayBalance1ByItem(balanceLocList, model.PROD_NO); |
| | | balanceLocList = LocationHelper.RoadWayBalance1ByItem(endList, model.PROD_NO); |
| | | } |
| | | else { |
| | | balanceLocList = LocationHelper.FindBalanceEndLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); |
| | |
| | | cntr1.S_CODE = cntrCode; |
| | | cntr1.C_ENABLE = "Y"; |
| | | cntr1.N_DETAIL_COUNT = cntrCount; |
| | | cntr1.S_TYPE = ""; |
| | | cntr1.S_TYPE = TOOLSTYPE; |
| | | |
| | | LogHelper.Info($"添加容器信息" + JsonConvert.SerializeObject(cntr1), "Mes任务下发"); |
| | | if (ContainerHelper.CreateCntr(cntr1)) |
| | |
| | | S_START_AREA_NAME = start.S_AREA_Name, |
| | | //起点库区名称 |
| | | S_END_AREA_NAME = end.S_AREA_Name, |
| | | //起点库区名称 |
| | | //接驳库区名称 |
| | | CONNECTION_AREA = connectionArea, |
| | | }; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | //LogHelper.Info($"ZCSendTask出库任务判断终点货位是否可以无限制下任务开始", "Mes任务下发"); |
| | | |
| | | var unlimitedLocation = TaskHelper.GetMesKtLoc(); |
| | | |
| | | //标记终点货位是否可以无限制下任务 |
| | |
| | | } |
| | | } |
| | | |
| | | //LogHelper.Info($"ZCSendTask出库任务判断终点货位是否可以无限制下任务endLocFlag信息{endLocFlag}", "Mes任务下发"); |
| | | if (endLocFlag) |
| | | { |
| | | var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To); |
| | | |
| | | //LogHelper.Info($"ZCSendTask出库任务判断终点货位是否可以无限制下任务endTask信息"+JsonConvert.SerializeObject(endTask), "Mes任务下发"); |
| | | if (endTask != null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}", "Mes任务下发"); |
| | | throw new Exception($"终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}"); |
| | | } |
| | | } |
| | | |
| | | |
| | | // LogHelper.Info($"ZCSendTask出库任务判断终点货位是否可以无限制下任务完成", "Mes任务下发"); |
| | | |
| | | //查找起点 |
| | | List<Location> strrtList; |
| | |
| | | else |
| | | { |
| | | strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |
| | | |
| | | } |
| | | |
| | | |
| | | //LogHelper.Info($"CSendTask出库任务获取起点货位集合完成", "Mes任务下发"); |
| | | |
| | | if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4" || workFlow.FLOWCODE == "6") |
| | | { |
| | |
| | | else |
| | | { |
| | | //根据制品编号寻找立库区对应物料托盘 |
| | | |
| | | LogHelper.Info($"CSendTask出库任务根据制品编号寻找立库区对应物料托盘", "Mes任务下发"); |
| | | start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY,workFlow.CONNECTION); |
| | | if (start == null) |
| | | { |
| | |
| | | S_START_AREA_NAME = start.S_AREA_Name, |
| | | //起点库区名称 |
| | | S_END_AREA_NAME = end.S_AREA_Name, |
| | | //起点库区名称 |
| | | //接驳库区名称 |
| | | CONNECTION_AREA = connectionArea |
| | | }; |
| | | |