| | |
| | | using HH.WMS.BLL.Basic; |
| | | using HH.WMS.BLL.InStock; |
| | | using HH.WMS.BLL.Interface; |
| | | using HH.WMS.BLL.Pda; |
| | | using HH.WMS.BLL.SysMgr; |
| | | using HH.WMS.Common; |
| | | using HH.WMS.Common.Algorithm; |
| | |
| | | using HH.WMS.Entitys.Common; |
| | | using HH.WMS.Entitys.Dto; |
| | | using HH.WMS.Entitys.Entitys; |
| | | using HH.WMS.Entitys.Entitys.Mes; |
| | | using HH.WMS.Entitys.External; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | |
| | | string tno = executeStatePara.transportTask.CN_S_TASK_NO; |
| | | if (tno.IndexOf('_') > 0) |
| | | { |
| | | string TopNo = tno.Substring(0, tno.IndexOf("_")); |
| | | string navNo = tno.Substring(tno.IndexOf("_") + 1); |
| | | if (navNo == "2") |
| | | { |
| | | tno = TopNo; |
| | | } |
| | | tno = tno.Substring(tno.IndexOf("_") + 1); |
| | | } |
| | | // 获取主任务 |
| | | var task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new |
| | | { |
| | | CN_S_TASK_NO = tno |
| | | }); |
| | | Log.Detail(logPara, "获取主任务:任务编号: " + tno); |
| | | // mes任务 |
| | | var mes_task = BLLCreator.CreateDapper<TN_MES_TASK>().GetSingleEntity(new |
| | | { |
| | | task_no = task.CN_S_EXT1 |
| | | }); |
| | | Log.Detail(logPara, "获取MES任务:任务编号: " + task.CN_S_EXT1); |
| | | |
| | | return UseTransaction(trans => |
| | | { |
| | |
| | | }, new { executeStatePara.transportTask.CN_S_TASK_NO }, trans); |
| | | Log.Detail(logPara, "更新任务状态-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO + "状态为:" + executeStatePara.taskState); |
| | | |
| | | //立库任务 子任务完成时,需要同步处理主任务 |
| | | string taskNo = executeStatePara.transportTask.CN_S_TASK_NO; |
| | | |
| | | //立库任务 子任务完成时,需要同步处理主任务 |
| | | if (taskNo.IndexOf('_') > 0) |
| | | { |
| | | string fatherNo = taskNo.Substring(0, taskNo.IndexOf("_")); |
| | | string hzNo = taskNo.Substring(taskNo.IndexOf("_") + 1); |
| | | string topNo = taskNo.Substring(0, taskNo.IndexOf("_")); |
| | | string navNo = taskNo.Substring(taskNo.IndexOf("_") + 1); |
| | | |
| | | //A到B的AGV搬运任务 |
| | | if (hzNo == "1") |
| | | if (navNo == "1") |
| | | { |
| | | //主任务状态更改为:完成一半 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | if (mes_task.SECTION == TaskSectionConstants.BCP_KTCK || |
| | | mes_task.SECTION == TaskSectionConstants.CXJ_MTCK || |
| | | mes_task.SECTION == TaskSectionConstants.DS_MTCK) |
| | | { |
| | | CN_S_MODIFY = "", |
| | | CN_S_MODIFY_BY = "", |
| | | CN_T_END = DateTime.Now, |
| | | CN_T_MODIFY = DateTime.Now, |
| | | CN_S_STATE = Constants.TaskState_CompleteHalf |
| | | }, new { CN_S_TASK_NO = fatherNo }, trans); |
| | | Log.Detail(logPara, "更新主任务状态-任务号:" + fatherNo + "状态为:" + Constants.TaskState_CompleteHalf); |
| | | |
| | | } |
| | | else |
| | | { |
| | | //主任务状态更改为:完成一半 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | | { |
| | | CN_S_MODIFY = "", |
| | | CN_S_MODIFY_BY = "", |
| | | CN_T_END = DateTime.Now, |
| | | CN_T_MODIFY = DateTime.Now, |
| | | CN_S_STATE = Constants.TaskState_CompleteHalf |
| | | }, new { CN_S_TASK_NO = topNo }, trans); |
| | | Log.Detail(logPara, "更新主任务状态-任务号:" + topNo + "状态为:" + Constants.TaskState_CompleteHalf); |
| | | } |
| | | } |
| | | |
| | | //B到C的立库搬运任务 |
| | | if (hzNo == "2") |
| | | if (navNo == "2") |
| | | { |
| | | //主任务状态更改为:完成 |
| | | CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new |
| | |
| | | CN_T_END = DateTime.Now, |
| | | CN_T_MODIFY = DateTime.Now, |
| | | CN_S_STATE = Constants.TaskState_Complete |
| | | }, new { CN_S_TASK_NO = fatherNo }, trans); |
| | | Log.Detail(logPara, "更新主任务状态-任务号:" + fatherNo + "状态为:" + Constants.TaskState_Complete); |
| | | }, new { CN_S_TASK_NO = topNo }, trans); |
| | | Log.Detail(logPara, "更新主任务状态-任务号:" + topNo + "状态为:" + Constants.TaskState_Complete); |
| | | |
| | | |
| | | if (task != null) |
| | | // mes任务进入下一阶段 |
| | | CreateDAL<DapperDAL<TN_MES_TASK>>().Update(new |
| | | { |
| | | // 接驳位状态改为:正常 |
| | | 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); |
| | | |
| | | Log.Detail(logPara, "主任务完成,更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal); |
| | | |
| | | if (task.CN_S_TASK_TYPE == Constants.In) |
| | | { |
| | | // 入库完成终点货位状态改为:满 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Full |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = task.CN_S_END_BIT |
| | | }, trans); |
| | | Log.Detail(logPara, "主任务完成,更新终点立库货位状态-货位号:" + task.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full); |
| | | } |
| | | else if (task.CN_S_TASK_TYPE == Constants.Out) |
| | | { |
| | | // 出库完成起点货位状态改为:空 |
| | | CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new |
| | | { |
| | | CN_S_LOCATION_STATE = Constants.Location_State_Empty |
| | | }, new |
| | | { |
| | | CN_S_LOCATION_CODE = task.CN_S_START_BIT |
| | | }, trans); |
| | | Log.Detail(logPara, "主任务完成,更新起点立库货位状态-货位号:" + task.CN_S_START_BIT + "状态为:" + Constants.Location_State_Empty); |
| | | } |
| | | } |
| | | NeedTrig = Constants.Y |
| | | }, new { task_no = mes_task.task_no }, trans); |
| | | } |
| | | } |
| | | |
| | | if (executeStatePara.transportTask.CN_S_TASK_TYPE == null) |
| | | executeStatePara.transportTask.CN_S_TASK_TYPE = ""; |
| | | |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 接收任务 |
| | | /// </summary> |
| | | /// <param name="receuveTask"></param> |
| | | /// <returns></returns> |
| | | public OperateResult ReceiveTask(ZCReceiveTaskEntity receuveTask) |
| | | { |
| | | TN_MES_TASK req = new TN_MES_TASK() |
| | | { |
| | | task_no = receuveTask.task_no, |
| | | Task_type = receuveTask.Task_type, |
| | | TurnCardNum = receuveTask.TurnCardNum, |
| | | PROD_NO = receuveTask.PROD_NO, |
| | | PROD_TECH = receuveTask.PROD_TECH, |
| | | PROD_SPEC = receuveTask.PROD_SPEC, |
| | | PROD_BOM = receuveTask.PROD_BOM, |
| | | PROD_Feature = receuveTask.PROD_Feature, |
| | | TOOLS_NO = receuveTask.TOOLS_NO, |
| | | ST_AMOUNT = receuveTask.ST_AMOUNT, |
| | | CURRENT_AMOUNT = receuveTask.CURRENT_AMOUNT, |
| | | Location_From = receuveTask.Location_From, |
| | | Location_To = receuveTask.Location_To, |
| | | PRODUCE_TIME = receuveTask.PRODUCE_TIME, |
| | | SHELF_LIFE_TIME = receuveTask.SHELF_LIFE_TIME, |
| | | EXPIRED_TIME = receuveTask.EXPIRED_TIME, |
| | | SHELF_REP = receuveTask.SHELF_REP, |
| | | EXPIRED_REP = receuveTask.EXPIRED_REP, |
| | | CHECK_CODE = receuveTask.CHECK_CODE, |
| | | CHECK_INFO = receuveTask.CHECK_INFO, |
| | | Priority = receuveTask.Priority, |
| | | Data_status = receuveTask.Data_status, |
| | | NeedTrig = "Y", |
| | | CreateDate = DateTime.Now, |
| | | BUSI_TYPE = receuveTask.BUSI_TYPE |
| | | }; |
| | | |
| | | return BLLCreator.Create<ZCBLL>().SaveTask(req); |
| | | } |
| | | } |
| | | } |