zhao
2021-07-02 23ee356c6f260ecc1a48bbb8bd60932b979e4698
HH.WMS.BLL/External/WmsApiBaseBLL.cs
@@ -1593,6 +1593,8 @@
                        // 主任务阶段置为半成品-满托入库
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_CompletePart,
                            CN_S_EXT3 = TaskSectionConstants.BCP_MTRK
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
@@ -1631,6 +1633,8 @@
                        // 主任务阶段置为半成品-满托入库-第二阶段
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_CompletePart,
                            CN_S_EXT3 = TaskSectionConstants.BCP_MTRK_SECOND
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
@@ -1656,6 +1660,8 @@
                        // 阶段置为任务完成
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_Complete,
                            CN_S_EXT3 = TaskSectionConstants.COMPLETE
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
@@ -1698,6 +1704,8 @@
                        // 主任务阶段置为成型机-半成品回库-第二阶段
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_CompletePart,
                            CN_S_EXT3 = TaskSectionConstants.CXJ_BCPHK_SECOND
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
@@ -1723,6 +1731,8 @@
                        // 主任务阶段置为任务完成
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_Complete,
                            CN_S_EXT3 = TaskSectionConstants.COMPLETE
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
@@ -1823,13 +1833,17 @@
                            // 主任务阶段置为成型机-空托入库
                            CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                            {
                                CN_T_END = DateTime.Now,
                                CN_T_MODIFY = DateTime.Now,
                                CN_S_STATE = Constants.TaskState_Executing,
                                CN_S_EXT3 = TaskSectionConstants.CXJ_KTRK
                            }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                            // 空托回库任务阶段置为成型机-空托回库-入库阶段
                            // 空托回库任务主任务编号置为当前主任务
                            CreateDAL<DapperDAL<TN_WM_TASKBLL>>().Update(new
                            CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                            {
                                CN_T_END = DateTime.Now,
                                CN_T_MODIFY = DateTime.Now,
                                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 });
@@ -1846,77 +1860,141 @@
                    #endregion
                    #region 成型机带束
                    #region 半成品/空托回库
                    // 成型机带束-半成品/空托回库第一条子任务
                    else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.DS_BCPKTHK_SUB_1)
                    {
                        // 主任务状态置为完成部分
                        // 主任务阶段置为成型机带束-半成品/空托回库-第二阶段
                        CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                        {
                            CN_T_END = DateTime.Now,
                            CN_T_MODIFY = DateTime.Now,
                            CN_S_STATE = Constants.TaskState_CompletePart,
                            CN_S_EXT3 = TaskSectionConstants.DS_BCPKTHK_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.DS_BCPKTHK_SECOND);
                    }
                    // 成型机带束-半成品/空托回库第二条子任务
                    else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.DS_BCPKTHK_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
                    //A到B的AGV搬运任务
                    if (hzNo == "1")
                    #region 满托出库
                    // 成型机带束-满托出库第一条子任务
                    if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.DS_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.DS_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);
                        // 线边货位不管控
                        // 主任务状态置为完成
                        // 主任务阶段置为完成
                        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 = fatherNo }, trans);
                        Log.Detail(logPara, "更新主任务状态-任务号:" + fatherNo + "状态为:" + Constants.TaskState_CompleteHalf);
                            CN_S_STATE = Constants.TaskState_Complete,
                            CN_S_EXT3 = TaskSectionConstants.COMPLETE
                        }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, 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_Complete + "-阶段为:" + TaskSectionConstants.COMPLETE);
                    }
                    //B到C的立库搬运任务
                    if (hzNo == "2")
                    {
                        //主任务状态更改为:完成
                        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_Complete
                        }, new { CN_S_TASK_NO = fatherNo }, trans);
                        Log.Detail(logPara, "更新主任务状态-任务号:" + fatherNo + "状态为:" + Constants.TaskState_Complete);
                    #endregion
                    #endregion
                        if (task != null)
                        {
                            // 接驳位状态改为:正常
                            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);
                            }
                        }
                    }
                    #endregion
                }
                if (executeStatePara.transportTask.CN_S_TASK_TYPE == null)
                    executeStatePara.transportTask.CN_S_TASK_TYPE = "";