| | |
| | | |
| | | #endregion |
| | | |
| | | string tno = executeStatePara.transportTask.CN_S_TASK_NO.Trim(); |
| | | if (tno.IndexOf('_') > 0) |
| | | { |
| | | tno = tno.Split('_')[0]; |
| | | } |
| | | // 获取主任务 |
| | | var task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new |
| | | var task = executeStatePara.transportTask; |
| | | if (!string.IsNullOrEmpty(task.CN_S_EXT1)) |
| | | { |
| | | CN_S_TASK_NO = tno |
| | | }); |
| | | task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new |
| | | { |
| | | CN_S_TASK_NO = task.CN_S_EXT1 |
| | | }); |
| | | } |
| | | TN_WM_TASKEntity task_kthk = null; |
| | | // 特殊业务 |
| | | // 成型机满托出库完成时,要执行空托回库任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_2) |
| | | { |
| | | // 查找终点货位(线边货位)是否有未执行的空托回库任务 |
| | | task_kthk = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new |
| | | { |
| | | CN_S_START_AREA = executeStatePara.transportTask.CN_S_END_AREA, |
| | | CN_S_START_BIT = executeStatePara.transportTask.CN_S_END_BIT, |
| | | CN_S_STATE = Constants.TaskState_NoExecuted, |
| | | CN_S_EXT3 = TaskSectionConstants.CXJ_KTHK_RECORD |
| | | }); |
| | | } |
| | | |
| | | return UseTransaction(trans => |
| | | { |
| | |
| | | |
| | | #region 海潮中策 |
| | | |
| | | // 半成品满托入库流程 |
| | | if (task.CN_S_EXT1 == BusinessTypeConstants.BCP_MTRK) |
| | | #region 半成品 |
| | | |
| | | #region 空托出库 |
| | | |
| | | // 半成品-空托出库第一条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_1) |
| | | { |
| | | // 空托出库第一条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_sub_1") |
| | | // 接驳位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | // 接驳位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | // 立库货位状态改为:空 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Empty |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | // 立库货位状态改为:空 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Empty |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "子任务完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Empty); |
| | | } |
| | | // 空托出库第二条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_sub_2") |
| | | Log.Detail(logPara, "半成品-空托出库子任务一完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Empty); |
| | | } |
| | | // 半成品-空托出库第二条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_2) |
| | | { |
| | | // 主任务状态置为完成部分 |
| | | // 主任务阶段置为半成品-满托入库 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | // 主任务状态置为完成部分 |
| | | // 主任务的子任务标识置空 |
| | | // 主任务阶段置为半成品-满托入库 |
| | | CN_S_STATE = Constants.TaskState_CompletePart, |
| | | CN_S_EXT3 = TaskSectionConstants.BCP_MTRK |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | // 接驳位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT |
| | | }, trans); |
| | | // 准备点货位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | // 线边货位不管控 |
| | | |
| | | Log.Detail(logPara, "半成品-空托出库子任务二完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新准备点状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_CompletePart + "-阶段为:" + TaskSectionConstants.BCP_MTRK); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 满托入库 |
| | | |
| | | // 半成品-满托入库第一条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_1) |
| | | { |
| | | // 主任务状态置为完成部分 |
| | | // 主任务阶段置为半成品-满托入库-第二阶段 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_CompletePart, |
| | | CN_S_EXT3 = TaskSectionConstants.BCP_MTRK_SECOND |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | // 线边货位不管控 |
| | | |
| | | // 接驳位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "半成品-满托入库子任务一完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_CompletePart + "-阶段为:" + TaskSectionConstants.BCP_MTRK_SECOND); |
| | | } |
| | | // 半成品-满托入库第二条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_2) |
| | | { |
| | | // 主任务状态置为完成 |
| | | // 阶段置为任务完成 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_Complete, |
| | | CN_S_EXT3 = TaskSectionConstants.COMPLETE |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | |
| | | // 接驳位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | // 立库状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "半成品-满托入库子任务二完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_Complete + "-阶段为:" + TaskSectionConstants.COMPLETE); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | #region 成型机 |
| | | |
| | | #region 半成品回库 |
| | | |
| | | // 成型机-半成品回库第一条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1) |
| | | { |
| | | // 主任务状态置为完成部分 |
| | | // 主任务阶段置为成型机-半成品回库-第二阶段 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_CompletePart, |
| | | CN_S_EXT3 = TaskSectionConstants.CXJ_BCPHK_SECOND |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | // 线边货位不管控 |
| | | |
| | | // 接驳位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "成型机-半成品回库子任务一完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_CompletePart + "-阶段为:" + TaskSectionConstants.CXJ_BCPHK_SECOND); |
| | | } |
| | | // 成型机-半成品回库第二条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2) |
| | | { |
| | | // 主任务状态置为完成 |
| | | // 主任务阶段置为任务完成 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_Complete, |
| | | CN_S_EXT3 = TaskSectionConstants.COMPLETE |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | |
| | | // 接驳位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | // 立库状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "成型机-半成品回库子任务二完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_Complete + "-阶段为:" + TaskSectionConstants.COMPLETE); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 满托出库 |
| | | |
| | | // 成型机-满托出库第一条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_1) |
| | | { |
| | | // 接驳位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | // 立库货位状态改为:空 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Empty |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "成型机-满托出库子任务一完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full |
| | | + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Empty); |
| | | } |
| | | // 成型机-满托出库第二条子任务 |
| | | else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_2) |
| | | { |
| | | // 接驳位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT |
| | | }, trans); |
| | | // 准备点货位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | // 线边货位不管控 |
| | | |
| | | if (task_kthk == null) |
| | | { |
| | | // 没有需要执行的空托回库任务 |
| | | // 主任务状态置为完成 |
| | | // 主任务阶段置为完成 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_CompletePart, |
| | | CN_S_EXT2 = "", |
| | | CN_S_EXT3 = TaskSectionConstants.BCP_MTRK |
| | | CN_S_STATE = Constants.TaskState_Complete, |
| | | CN_S_EXT3 = TaskSectionConstants.COMPLETE |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | // 接驳位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT |
| | | }, trans); |
| | | // 准备点货位状态改为:正常 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Normal |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT |
| | | }, trans); |
| | | // 终点货位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT |
| | | }, trans); |
| | | |
| | | Log.Detail(logPara, "子任务完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO + ",更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal + ",更新准备点状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal + ",更新终点状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full); |
| | | // 在主循环中创建后继任务 |
| | | Log.Detail(logPara, "成型机-满托出库子任务二完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新准备点状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_Complete + "-阶段为:" + TaskSectionConstants.COMPLETE |
| | | + ",未匹配到空托回库任务"); |
| | | } |
| | | // 满托入库第一条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_1") |
| | | else |
| | | { |
| | | // 主任务状态置为完成部分 |
| | | // 主任务的子任务标识置为bcp_mtrk_sub_1_completed |
| | | // 有需要执行的空托回库任务 |
| | | // 主任务状态置为执行中(防止再次循环到) |
| | | // 主任务阶段置为成型机-空托入库 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_STATE = Constants.TaskState_CompletePart, |
| | | CN_S_EXT2 = "bcp_mtrk_sub_1_completed" |
| | | CN_S_STATE = Constants.TaskState_Executing, |
| | | CN_S_EXT3 = TaskSectionConstants.CXJ_KTRK |
| | | }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); |
| | | // 在主循环中创建后继任务 |
| | | } |
| | | // 满托入库第二条子任务 |
| | | if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_2") |
| | | { |
| | | // 空托回库任务阶段置为成型机-空托回库-入库阶段 |
| | | // 空托回库任务主任务编号置为当前主任务 |
| | | CreateDAL<DapperDAL<TN_WM_TASKBLL>>().Update(new |
| | | { |
| | | CN_S_EXT3 = TaskSectionConstants.CXJ_KTHK_KTRK, |
| | | CN_S_EXT1 = task.CN_S_TASK_NO |
| | | }, new { CN_S_TASK_NO = task_kthk.CN_S_TASK_NO }); |
| | | |
| | | Log.Detail(logPara, "成型机-满托出库子任务二完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO |
| | | + ",更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新准备点状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal |
| | | + ",更新主任务-任务号:" + task.CN_S_TASK_NO + "状态为:" + Constants.TaskState_Executing + "-阶段为:" + TaskSectionConstants.CXJ_KTRK |
| | | + ",匹配到空托回库任务-任务号:" + task_kthk.CN_S_TASK_NO + "阶段为:" + TaskSectionConstants.CXJ_KTHK_KTRK + "-关联主任务:" + task.CN_S_TASK_NO); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | //A到B的AGV搬运任务 |
| | | if (hzNo == "1") |