From 2fdf959ac739edd6de84aa8053b8b9683dce8e8b Mon Sep 17 00:00:00 2001 From: zhao Date: 星期三, 07 七月 2021 14:53:24 +0800 Subject: [PATCH] 中策下任务接口 --- HH.WMS.WebApi/Controllers/WmsApiController.cs | 37 + HH.WMS.Entitys/Entitys/TN_WM_TASKEntity.cs | 6 HH.WMS.BLL/Pda/ZCBLL.cs | 1135 +++++++++++++++++---------------- HH.WMS.Common/JsonHelper.cs | 4 HH.WMS.BLL/HH.WMS.BLL.csproj | 1 HH.WMS.WebApi/Config.json | 235 ------ HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs | 34 + HH.WMS.BLL/External/WmsApiBaseBLL.cs | 483 +------------ HH.WMS.WebApi/Extension/ExecTransferTask.cs | 22 HH.WMS.Common/Constants.cs | 4 HH.WMS.BLL/MiddleDB/ZCMiddleOperateBll.cs | 70 ++ 11 files changed, 790 insertions(+), 1,241 deletions(-) diff --git a/HH.WMS.BLL/External/WmsApiBaseBLL.cs b/HH.WMS.BLL/External/WmsApiBaseBLL.cs index adfa8c7..f737913 100644 --- a/HH.WMS.BLL/External/WmsApiBaseBLL.cs +++ b/HH.WMS.BLL/External/WmsApiBaseBLL.cs @@ -1512,29 +1512,23 @@ #endregion + string tno = executeStatePara.transportTask.CN_S_TASK_NO; + if (tno.IndexOf('_') > 0) + { + tno = tno.Substring(tno.IndexOf("_") + 1); + } // 鑾峰彇涓讳换鍔�- var task = executeStatePara.transportTask; - if (!string.IsNullOrEmpty(task.CN_S_EXT1)) + var task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new { - 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) + CN_S_TASK_NO = tno + }); + Log.Detail(logPara, "鑾峰彇涓讳换鍔★細浠诲姟缂栧彿锛�" + tno); + // mes浠诲姟 + var mes_task = BLLCreator.CreateDapper<TN_MES_TASK>().GetSingleEntity(new { - // 鏌ユ壘缁堢偣璐т綅(绾胯竟璐т綅)鏄惁鏈夋湭鎵ц鐨勭┖鎵樺洖搴撲换鍔�- 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 - }); - } + task_no = task.CN_S_EXT1 + }); + Log.Detail(logPara, "鑾峰彇MES浠诲姟锛氫换鍔$紪鍙凤細 " + task.CN_S_EXT1); return UseTransaction(trans => { @@ -1549,453 +1543,60 @@ }, 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 childNo = taskNo.Substring(taskNo.IndexOf("_") + 1); + string topNo = taskNo.Substring(0, taskNo.IndexOf("_")); + string navNo = taskNo.Substring(taskNo.IndexOf("_") + 1); - #region 娴锋疆涓瓥 - - #region 鍗婃垚鍝�- - #region 绌烘墭鍑哄簱 - - // 鍗婃垚鍝�绌烘墭鍑哄簱绗竴鏉″瓙浠诲姟 - if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_1) + //A鍒癇鐨凙GV鎼繍浠诲姟 + if (navNo == "1") { - // 鎺ラ┏浣嶇姸鎬佹敼涓�婊�- CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + if (mes_task.SECTION == TaskSectionConstants.BCP_KTCK || + mes_task.SECTION == TaskSectionConstants.CXJ_MTCK || + mes_task.SECTION == TaskSectionConstants.DS_MTCK) { - 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.BCP_KTCK_SUB_2) - { - // 涓讳换鍔$姸鎬佺疆涓哄畬鎴愰儴鍒�- // 涓讳换鍔¢樁娈电疆涓哄崐鎴愬搧-婊℃墭鍏ュ簱 - 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); - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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); - // 鍑嗗鐐硅揣浣嶇姸鎬佹敼涓�姝e父 - 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_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); - // 绾胯竟璐т綅涓嶇鎺�- - // 鎺ラ┏浣嶇姸鎬佹敼涓�婊�- 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_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); - - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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_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); - // 绾胯竟璐т綅涓嶇鎺�- - // 鎺ラ┏浣嶇姸鎬佹敼涓�婊�- 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_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); - - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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) - { - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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); - // 鍑嗗鐐硅揣浣嶇姸鎬佹敼涓�姝e父 - 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_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 - + "锛屾湭鍖归厤鍒扮┖鎵樺洖搴撲换鍔�); } 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_Executing, - CN_S_EXT3 = TaskSectionConstants.CXJ_KTRK - }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); - // 绌烘墭鍥炲簱浠诲姟闃舵缃负鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵 - // 绌烘墭鍥炲簱浠诲姟涓讳换鍔$紪鍙风疆涓哄綋鍓嶄富浠诲姟 - 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 }); - - 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); + CN_S_STATE = Constants.TaskState_CompleteHalf + }, new { CN_S_TASK_NO = topNo }, trans); + Log.Detail(logPara, "鏇存柊涓讳换鍔$姸鎬�浠诲姟鍙凤細" + topNo + "鐘舵�涓猴細" + Constants.TaskState_CompleteHalf); } } - #endregion - - #endregion - - #region 鎴愬瀷鏈哄甫鏉�- - #region 鍗婃垚鍝�绌烘墭鍥炲簱 - - // 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱绗竴鏉″瓙浠诲姟 - else if (executeStatePara.transportTask.CN_S_EXT2 == TaskFlagConstants.DS_BCPKTHK_SUB_1) + //B鍒癈鐨勭珛搴撴惉杩愪换鍔�+ if (navNo == "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_CompletePart, - CN_S_EXT3 = TaskSectionConstants.DS_BCPKTHK_SECOND - }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); - // 绾胯竟璐т綅涓嶇鎺�+ CN_S_STATE = Constants.TaskState_Complete + }, new { CN_S_TASK_NO = topNo }, trans); + Log.Detail(logPara, "鏇存柊涓讳换鍔$姸鎬�浠诲姟鍙凤細" + topNo + "鐘舵�涓猴細" + Constants.TaskState_Complete); - // 鎺ラ┏浣嶇姸鎬佹敼涓�婊�- CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + // mes浠诲姟杩涘叆涓嬩竴闃舵 + CreateDAL<DapperDAL<TN_MES_TASK>>().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); + NeedTrig = Constants.Y + }, new { task_no = mes_task.task_no }, trans); } - // 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱绗簩鏉″瓙浠诲姟 - 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); - - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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.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) - { - // 鎺ラ┏浣嶇姸鎬佹敼涓�姝e父 - 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); - // 鍑嗗鐐硅揣浣嶇姸鎬佹敼涓�姝e父 - 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_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); - - 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); - } - - #endregion - - #endregion - - #endregion } + if (executeStatePara.transportTask.CN_S_TASK_TYPE == null) executeStatePara.transportTask.CN_S_TASK_TYPE = ""; diff --git a/HH.WMS.BLL/HH.WMS.BLL.csproj b/HH.WMS.BLL/HH.WMS.BLL.csproj index 4c54914..5725476 100644 --- a/HH.WMS.BLL/HH.WMS.BLL.csproj +++ b/HH.WMS.BLL/HH.WMS.BLL.csproj @@ -139,6 +139,7 @@ <Compile Include="Interface\InfK3Request.cs" /> <Compile Include="Interface\InfOMSRequest.cs" /> <Compile Include="Interface\OtherSysApi.cs" /> + <Compile Include="MiddleDB\ZCMiddleOperateBll.cs" /> <Compile Include="MiddleDB\GLMiddleOperateBll.cs" /> <Compile Include="MoveStock\MoveStockTaskBLL.cs" /> <Compile Include="MoveStock\TN_WM_B_MOVE_RESULTBLL.cs" /> diff --git a/HH.WMS.BLL/MiddleDB/ZCMiddleOperateBll.cs b/HH.WMS.BLL/MiddleDB/ZCMiddleOperateBll.cs new file mode 100644 index 0000000..c8ebd91 --- /dev/null +++ b/HH.WMS.BLL/MiddleDB/ZCMiddleOperateBll.cs @@ -0,0 +1,70 @@ +锘縰sing HH.WMS.BLL.Pda; +using HH.WMS.Common; +using HH.WMS.Entitys; +using HH.WMS.Entitys.Entitys.Mes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HH.WMS.BLL.MiddleDB +{ + public class ZCMiddleOperateBll : DapperBaseBLL + { + public OperateResult TransportSuccess(TN_MES_TASK _req, TN_WM_SERVICE_EXECEntity _serviceExec, string _taskNo) + { + return UseTransaction(trans => + { + //鍙嶉mes + if (_serviceExec.CN_C_SEND_MES == Constants.Y) + { + CreateDapperDAL<TN_MES_TASK>().Update(new + { + Data_status = _req.Data_status, + NeedTrig = _req.NeedTrig, + Section = _req.SECTION + }, new + { + TaskNo = _req.task_no + }, trans); + } + + if (_serviceExec.Update) + { + var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Update(new + { + CN_S_START_LOCATION = _serviceExec.CN_S_START_LOCATION, + CN_S_END_LOCATION = _serviceExec.CN_S_END_LOCATION, + CN_C_COMPLETE = _serviceExec.CN_C_COMPLETE, + CN_C_SEND_MES = _serviceExec.CN_C_SEND_MES, + CN_S_MSG = _serviceExec.CN_S_MSG + }, new + { + CN_S_TASK_NO = _serviceExec.CN_S_TASK_NO + }); + if (!or.Success) + throw new Exception(or.Msg); + } + else + { + var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Add(_serviceExec); + if (!or.Success) + throw new Exception(or.Msg); + } + + // 鍏宠仈涓讳换鍔�+ if (!string.IsNullOrEmpty(_taskNo)) + { + CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_EXT1 = _req.task_no + }, new + { + CN_S_TASK_NO = _taskNo + }, trans); + } + }); + } + } +} diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs index 16613d1..b22554d 100644 --- a/HH.WMS.BLL/Pda/ZCBLL.cs +++ b/HH.WMS.BLL/Pda/ZCBLL.cs @@ -242,20 +242,6 @@ /// <param name="transportReqs"></param> public List<OperateResult> ExecTransferTask(List<TN_MES_TASK> transportReqs) { - var mapStr = JsonHelper.GetValue("workFlowTransType"); - if (string.IsNullOrEmpty(mapStr)) - throw new Exception("鏈壘鍒伴厤缃細workFlowTransType"); - - var isEnableAms = new ZCTransferDto(); - var _isEnableAmsStr = JsonHelper.GetValue("isSendAms"); - if (!string.IsNullOrEmpty(_isEnableAmsStr)) - { - isEnableAms = JsonConvert.DeserializeObject<ZCTransferDto>(_isEnableAmsStr); - isEnableAms = isEnableAms ?? new ZCTransferDto(); - } - - var workFlowTransType = JsonConvert.DeserializeObject<List<ZCTransferDto>>(mapStr); - List<OperateResult> ors = new List<OperateResult>(); if (transportReqs.Any()) { @@ -265,214 +251,209 @@ string endBit = req.Location_To; string startArea = string.Empty, endArea = string.Empty; - //鏍¢獙璧风偣 - if (!string.IsNullOrEmpty(startBit)) - { - var _location = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new - { - CN_S_LOCATION_CODE = startBit - }); - if (_location == null) - { - ors.Add(OperateResult.Error("鏈壘鍒拌捣濮嬭揣浣嶏細" + startBit, req)); - continue; - } - startArea = Util.ToString(_location.CN_S_AREA_CODE).Trim(); - } - //鏍¢獙缁堢偣 - if (!string.IsNullOrEmpty(endBit)) - { - var _location = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new - { - CN_S_LOCATION_CODE = endBit - }); - if (_location == null) - { - ors.Add(OperateResult.Error("鏈壘鍒扮粓鐐硅揣浣嶏細" + endBit, req)); - continue; - } - endArea = Util.ToString(_location.CN_S_AREA_CODE).Trim(); - } - if (string.IsNullOrEmpty(startArea) && string.IsNullOrEmpty(endArea)) - { - ors.Add(OperateResult.Error("璧风偣缁堢偣涓嶅彲鍚屾椂涓虹┖")); - continue; - } - //鎵句綔涓氳矾寰�- //var workRoute = BLLCreator.Create<TN_AB_B_WORK_AREA_PROBLL>().GetSingleRoute(startArea, endArea); - //if (workRoute == null) - //{ - // ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req)); - // continue; - //} - var workRoute = new TN_AB_B_WORK_AREA_PROEntity(); - var workRoutes = BLLCreator.Create<TN_AB_B_WORK_AREA_PROBLL>().GetRoute("", startArea, endArea); - if (!workRoutes.Any()) + try { - ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req)); - continue; - } - else - { - workRoute = workRoutes[0]; - if (workRoutes.Count > 1) + InWorkAreaEntity inModel = new InWorkAreaEntity(); + inModel.itemCode = req.PROD_NO; + inModel.trayCode = req.TurnCardNum; + inModel.priority = req.Priority; + inModel.startBit = req.Location_From; + inModel.endBit = req.Location_To; + inModel.remark = "涓氬姟绫诲瀷锛� + req.BUSI_TYPE; + + OutWorkAreaEntity outModel = new OutWorkAreaEntity(); + outModel.itemCode = req.PROD_NO; + outModel.trayCode = req.TurnCardNum; + outModel.priority = req.Priority; + outModel.startBit = req.Location_From; + outModel.endBit = req.Location_To; + outModel.remark = "涓氬姟绫诲瀷锛� + req.BUSI_TYPE; + + // 涓嬩竴姝ヨ鎵ц鐨勯樁娈�+ string section = NextSection(req); + bool needCreateTask = true; + string direction = ""; + + if (section == TaskSectionConstants.ERROR) { - if (workRoutes.Exists(e => Util.ToString(e.CN_S_TYPE_CODE) == "X6" || Util.ToString(e.CN_S_TYPE_CODE) == "X7")) + // "鎵ц澶辫触锛孧ES浠诲姟涓氬姟绫诲瀷鎴栭樁娈典笉姝g‘" + needCreateTask = false; + } + else if (string.IsNullOrEmpty(section)) + { + needCreateTask = false; + } + else if (section == TaskSectionConstants.BCP_KTCK) + { + direction = Constants.Out; + } + else if (section == TaskSectionConstants.BCP_MTRK) + { + direction = Constants.In; + } + else if (section == TaskSectionConstants.CXJ_BCPHK) + { + direction = Constants.In; + } + else if (section == TaskSectionConstants.CXJ_KTHK_RECORD) + { + needCreateTask = false; + } + else if (section == TaskSectionConstants.CXJ_MTCK) + { + direction = Constants.Out; + } + else if (section == TaskSectionConstants.CXJ_KTHK_KTRK) + { + direction = Constants.In; + } + else if (section == TaskSectionConstants.DS_BCPKTHK) + { + direction = Constants.In; + } + else if (section == TaskSectionConstants.DS_MTCK) + { + direction = Constants.Out; + } + // 鏇存柊MES浠诲姟闃舵 + req.SECTION = section; + + var externalRes = new ExternalResponse(); + string taskNo = ""; + + if (needCreateTask) + { + if (direction == Constants.In) { - if (string.IsNullOrEmpty(req.PROD_NO)) + //浼犻�鍙傛暟 + List<InWorkAreaEntity> inWorkAreaEntitys = new List<InWorkAreaEntity>(); + inWorkAreaEntitys.Add(inModel); + + try { - workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X6"); + Log.Info("鍏ヤ綔涓氬尯寮�锛屼紶鍙傦細", JsonConvert.SerializeObject(inWorkAreaEntitys)); + externalRes = BLLCreator.Create<WmsApiBaseBLL>().InWorkArea(inWorkAreaEntitys); + taskNo = inModel.taskNo; } - else + catch (Exception ex) { - workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X7"); + Log.Error("鍏ヤ綔涓氬尯澶辫触锛屼紶鍙傦細", JsonConvert.SerializeObject(inWorkAreaEntitys) + ex.ToString()); + ors.Add(OperateResult.Error("鍏ヤ綔涓氬尯澶辫触锛� + ex.Message, req)); + continue; } } - } - if (workRoute == null) - { - ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req)); - continue; - } - } + else if (direction == Constants.Out) + { + //浼犻�鍙傛暟 + List<OutWorkAreaEntity> outWorkAreaEntitys = new List<OutWorkAreaEntity>(); + outWorkAreaEntitys.Add(outModel); - - var existsWorkFlow = workFlowTransType.Find(f => f.workFlowCode == workRoute.CN_S_TYPE_CODE); - if (existsWorkFlow == null) - { - ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氭柟鍚�, req)); - continue; - } - - TN_WM_B_MAKE_TASKEntity makeReq = new TN_WM_B_MAKE_TASKEntity() - { - CN_S_ITEM_CODE = req.PROD_NO, - CN_S_ITEM_NAME = "", - CN_S_START_BIT = req.Location_From, - CN_S_START_AREA = workRoute.CN_S_START_AREA_CODE, - CN_S_END_BIT = req.Location_To, - CN_S_END_AREA = workRoute.CN_S_END_AREA_CODE, - CN_S_TRAY_CODE = req.TurnCardNum, - CN_S_PRIORITY = req.Priority.ToString(), - CN_S_WORKFLOW_NAME = WorkFlowName.FlowNameList[existsWorkFlow.workFlowCode], - CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT), - CN_S_NEED_AMS = isEnableAms.transferEnableAms, - CN_S_ISTRANSPORT = existsWorkFlow.isTransport - }; - - var externalRes = new ExternalResponse(); - if (existsWorkFlow.transType == "In") - { - try - { - var res = BLLCreator.Create<ZCBLL>().GLInWorkArea(makeReq); - externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res); - } - catch (Exception ex) - { - ors.Add(OperateResult.Error("鍏ヤ綔涓氬尯澶辫触锛� + ex.Message, req)); - continue; - } - } - else - { - try - { - var res = BLLCreator.Create<ZCBLL>().GLOutWorkArea(makeReq); - externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res); - } - catch (Exception ex) - { - ors.Add(OperateResult.Error("鍑轰綔涓氬尯澶辫触锛� + ex.Message, req)); - continue; - } - } - - var _serviceExec = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetSingleEntity(new - { - CN_S_TASK_NO = req.task_no - }); - if (_serviceExec != null) - { - _serviceExec.Update = true; - } - else - { - _serviceExec = new TN_WM_SERVICE_EXECEntity() - { - CN_S_TASK_NO = req.task_no, - CN_S_ITEM_CODE = req.PROD_NO, - CN_S_ITEM_NAME = "", - CN_S_TASK_TYPE = "绉婚�", - CN_S_TRANS_TYPE = WorkFlowName.FlowNameList[existsWorkFlow.workFlowCode], - CN_S_TRAY_CODE = req.TurnCardNum, - CN_N_PRIORITY = req.Priority, - CN_S_START_LOCATION = req.Location_From, - CN_S_END_LOCATION = req.Location_To, - CN_T_CREATE = DateTime.Now, - CN_C_COMPLETE = Constants.N, - CN_C_SEND_MES = Constants.N, - CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT), - CN_N_REQUEST_TYPE = 0,//req.RequestType, - CN_S_TRAY_TYPE = "0"//req.LoadType - }; - } - - if (!externalRes.success) - { - //鍐欎换鍔℃墽琛岃〃锛屽苟鍥炴姤mes - if (externalRes.errCode == "7" || externalRes.errCode == "8") - { - - _serviceExec.CN_C_COMPLETE = Constants.Y; - _serviceExec.CN_C_SEND_MES = Constants.Y; - _serviceExec.CN_S_MSG = externalRes.errMsg; + try + { + Log.Info("鍑轰綔涓氬尯寮�锛屼紶鍙傦細", JsonConvert.SerializeObject(outWorkAreaEntitys)); + externalRes = BLLCreator.Create<WmsApiBaseBLL>().OutWorkArea(outWorkAreaEntitys); + taskNo = outModel.taskNo; + } + catch (Exception ex) + { + Log.Error("鍑轰綔涓氬尯澶辫触锛屼紶鍙傦細", JsonConvert.SerializeObject(outWorkAreaEntitys) + ex.ToString()); + ors.Add(OperateResult.Error("鍑轰綔涓氬尯澶辫触锛� + ex.Message, req)); + continue; + } + } + else + { + ors.Add(OperateResult.Error("鏈煡鐨勫嚭鍏ュ簱绫诲瀷锛� + direction, req)); + continue; + } } else + { + // 涓嶉渶瑕佸垱寤簑ms浠诲姟鐨勬墽琛屾祦绋嬶紝鏍囪瘑涓烘垚鍔�+ externalRes.success = true; + } + + var _serviceExec = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetSingleEntity(new + { + CN_S_TASK_NO = req.task_no + }); + if (_serviceExec != null) + { + _serviceExec.Update = true; + } + else + { + _serviceExec = new TN_WM_SERVICE_EXECEntity() + { + CN_S_TASK_NO = req.task_no, + CN_S_ITEM_CODE = req.PROD_NO, + CN_S_ITEM_NAME = "", + CN_S_TASK_TYPE = "绉婚�", + CN_S_TRANS_TYPE = req.BUSI_TYPE_NAME, + CN_S_TRAY_CODE = req.TurnCardNum, + CN_N_PRIORITY = req.Priority, + CN_S_START_LOCATION = req.Location_From, + CN_S_END_LOCATION = req.Location_To, + CN_T_CREATE = DateTime.Now, + CN_C_COMPLETE = Constants.N, + CN_C_SEND_MES = Constants.N, + CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT), + CN_N_REQUEST_TYPE = null, + CN_S_TRAY_TYPE = "" + }; + } + + if (!externalRes.success) { _serviceExec.CN_C_COMPLETE = Constants.N; _serviceExec.CN_C_SEND_MES = Constants.N; _serviceExec.CN_S_MSG = externalRes.errMsg; - } - var _or = TransportSuccess(_serviceExec); + var _or = BLLCreator.Create<ZCMiddleOperateBll>().TransportSuccess(req, _serviceExec, taskNo); - if (!_or.Success) - { - Log.DomainInfo("TransportSuccess error", _or.Msg); - Log.DomainInfo("externalRes Error锛�" + externalRes.errMsg, JsonConvert.SerializeObject(req)); - - ors.Add(OperateResult.Error("TransportSuccess error", _or.Msg)); - } - else - { - if (externalRes.errCode == "7" || externalRes.errCode == "8") + if (!_or.Success) { - ors.Add(OperateResult.Warning("宸插弽棣堣嚦mes锛屾秷鎭細 " + externalRes.errMsg, req)); + Log.DomainInfo("TransportSuccess error", _or.Msg); + Log.DomainInfo("externalRes Error锛�" + externalRes.errMsg, JsonConvert.SerializeObject(req)); + + ors.Add(OperateResult.Error("TransportSuccess error", _or.Msg)); } else { ors.Add(OperateResult.Error("externalRes Error锛�" + externalRes.errMsg, req)); } } - } - else//鎴愬姛鐨勮瘽鍐欑Щ閫佷换鍔℃棩蹇�- { - var ok = externalRes.okList[0]; - - _serviceExec.CN_S_START_LOCATION = ok.startBit; - _serviceExec.CN_S_END_LOCATION = ok.endBit; - _serviceExec.CN_C_COMPLETE = Constants.Y; - _serviceExec.CN_C_SEND_MES = Constants.Y; - _serviceExec.CN_S_MSG = "涓嬭揪鎴愬姛"; - var _or = TransportSuccess(_serviceExec); - if (!_or.Success) + else { - ors.Add(OperateResult.Warning("涓嬭揪鎴愬姛,鏇存柊绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req)); - continue; + var ok = externalRes.okList[0]; + + _serviceExec.CN_S_START_LOCATION = ok.startBit; + _serviceExec.CN_S_END_LOCATION = ok.endBit; + _serviceExec.CN_C_COMPLETE = Constants.Y; + _serviceExec.CN_C_SEND_MES = Constants.Y; + _serviceExec.CN_S_MSG = "涓嬭揪鎴愬姛"; + + req.Data_status = req.SECTION == TaskSectionConstants.COMPLETE ? 2 : 1; + req.NeedTrig = Constants.N; + req.SECTION = section; + + var _or = BLLCreator.Create<ZCMiddleOperateBll>().TransportSuccess(req, _serviceExec, taskNo); + + if (!_or.Success) + { + ors.Add(OperateResult.Warning("涓嬭揪鎴愬姛,鏇存柊绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req)); + continue; + } + ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛", req)); } - ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛", req)); + + Log.DomainInfo("绉婚�浠诲姟 缁撴灉", JsonConvert.SerializeObject(ors)); + } + catch (Exception ex) + { + ors.Add(OperateResult.Error("绉婚�浠诲姟澶辫触锛� + ex.Message, req)); + continue; } } Log.DomainInfo("绉婚�浠诲姟 缁撴灉", JsonConvert.SerializeObject(ors)); @@ -480,6 +461,72 @@ return ors; } #endregion + + public string NextSection(TN_MES_TASK task) + { + if (task.BUSI_TYPE == "1") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.BCP_KTCK; + else if (task.SECTION == TaskSectionConstants.BCP_KTCK) + return TaskSectionConstants.BCP_MTRK; + else if (task.SECTION == TaskSectionConstants.BCP_MTRK) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else if (task.BUSI_TYPE == "2") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.CXJ_BCPHK; + else if (task.SECTION == TaskSectionConstants.CXJ_BCPHK) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else if (task.BUSI_TYPE == "3") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.CXJ_KTHK_RECORD; + else if (task.SECTION == TaskSectionConstants.CXJ_KTHK_RECORD) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else if (task.BUSI_TYPE == "4") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.CXJ_MTCK; + else if (task.SECTION == TaskSectionConstants.CXJ_MTCK) + return TaskSectionConstants.CXJ_KTHK_KTRK; + else if (task.SECTION == TaskSectionConstants.CXJ_KTHK_KTRK) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else if (task.BUSI_TYPE == "5") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.DS_BCPKTHK; + else if (task.SECTION == TaskSectionConstants.DS_BCPKTHK) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else if (task.BUSI_TYPE == "6") + { + if (string.IsNullOrEmpty(task.SECTION)) + return TaskSectionConstants.DS_MTCK; + else if (task.SECTION == TaskSectionConstants.DS_MTCK) + return TaskSectionConstants.COMPLETE; + else + return TaskSectionConstants.ERROR; + } + else + { + return TaskSectionConstants.ERROR; + } + } #region 鍒ゆ柇鏄惁鍦ㄥ伐浣滄椂闂� /// <summary> @@ -524,9 +571,6 @@ //浼犻�鍙傛暟 List<InWorkAreaEntity> inWorkAreaEntitys = new List<InWorkAreaEntity>(); - - - InWorkAreaEntity model = new InWorkAreaEntity(); @@ -783,267 +827,364 @@ { try { - //鍙栨湭鎵ц銆佸畬鎴愪竴鍗娿�瀹屾垚閮ㄥ垎鐨勮嚜绠′换鍔�+ //鍙栨湭鎵ц鐨勮嚜绠′换鍔� var tasks = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetList(new { CN_S_TASK_FLAG = Constants.TaskFlag_ZG, - CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf, Constants.TaskState_CompletePart } + CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf } }); - // 鎺ラ┏浣嶉厤缃�+ var mes_tasks = BLLCreator.CreateDapper<TN_MES_TASK>().GetList(new + { + task_no = tasks.ConvertAll(t => t.CN_S_EXT1).ToList() + }); + var connectBitStr = JsonHelper.GetValue("connectBit"); if (string.IsNullOrEmpty(connectBitStr)) throw new Exception("鏈壘鍒伴厤缃細connectBit"); + + var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr); List<OperateResult> ors = new List<OperateResult>(); foreach (var task in tasks) { try { - var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr); - - OperateResult or = OperateResult.Error("鏈煡閿欒"); - - #region 鍗婃垚鍝�- - #region 绌烘墭鍑哄簱 - - if (task.CN_S_EXT3 == TaskSectionConstants.BCP_KTCK) + var mes_task = mes_tasks.FirstOrDefault(t => t.task_no == task.CN_S_EXT1); + if (mes_task == null) { - // 绌烘墭鍑哄簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTCK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) + ors.Add(OperateResult.Error("浠嶵N_MES_TASK琛ㄤ腑鏈壘鍒版浠诲姟鐨勬潵婧怣ES浠诲姟锛屼换鍔$紪鍙凤細" + task.CN_S_TASK_NO)); + continue; + } + // 鍑哄簱涓讳换鍔℃槸鍚屾椂涓嬩袱鏉″瓙浠诲姟 + if (mes_task.SECTION == TaskSectionConstants.BCP_KTCK || + mes_task.SECTION == TaskSectionConstants.CXJ_MTCK || + mes_task.SECTION == TaskSectionConstants.DS_MTCK) + { + string tasktype = mes_task.SECTION == TaskSectionConstants.BCP_KTCK ? ConnectBitConstants.KTCK : mes_task.SECTION == TaskSectionConstants.CXJ_MTCK ? ConnectBitConstants.MTCK : mes_task.SECTION == TaskSectionConstants.DS_MTCK ? ConnectBitConstants.DSCK : ""; + //绔嬪簱璐т綅 + string lkBit = task.CN_S_START_BIT; + + var locationBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new { - // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�- or = ExecBCP_KTCK_Add(task, connectBit); + CN_S_LOCATION_CODE = lkBit + }); + if (locationBit == null) + throw new Exception("鏈壘鍒扮珛搴撹揣浣嶏細" + lkBit); + var _bit = connectBits.Find(f => f.tasktype == tasktype); + if (_bit == null) + throw new Exception("鏈壘鍒伴厤缃被鍨嬩负锛� + tasktype + "鐨勬帴椹充綅"); + + var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = _bit.bit + }); + if (connectBit == null) + throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + _bit.bit); + if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鎺ラ┏浣嶏細" + _bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + var readytBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = _bit.readybit + }); + if (readytBit == null) + throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + _bit.bit); + if (readytBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鍑嗗鐐癸細" + _bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + //璧嬪�鎺ラ┏浣�+ task.CN_S_CONNECT_BIT = _bit.bit; + task.CN_S_EXT2 = _bit.readybit; + + string taskNo1 = task.CN_S_TASK_NO + "_1"; + //鍒涘缓绗竴涓换鍔�+ TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = taskNo1, + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + CN_S_START_BIT = task.CN_S_START_BIT, + CN_S_END_BIT = task.CN_S_CONNECT_BIT, + CN_S_STATE = Constants.TaskState_NoExecuted, + CN_S_BF_TASK_NO = "", + CN_S_AF_TASK_NO = "", + CN_S_STOCK_CODE = task.CN_S_STOCK_CODE, + CN_S_START_AREA = task.CN_S_START_AREA, + CN_S_END_AREA = connectBit.CN_S_AREA_CODE, + CN_N_PRIORITY = 1, + CN_S_CREATOR = "sys", + CN_S_CREATOR_BY = "sys", + CN_T_CREATE = DateTime.Now, + CN_T_MODIFY = DateTime.Now, + CN_S_REMARK = "", + CN_S_TASK_FLAG = Constants.TaskFlag_LG, + CN_S_TASK_TYPE = "杞繍" + }; + string taskNo2 = task.CN_S_TASK_NO + "_2"; + //鍒涘缓绗簩涓换鍔�+ TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = taskNo2, + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + CN_S_START_BIT = task.CN_S_CONNECT_BIT, + CN_S_END_BIT = task.CN_S_END_BIT, + CN_S_STATE = Constants.TaskState_NoExecuted, + CN_S_BF_TASK_NO = "", + CN_S_AF_TASK_NO = "", + CN_S_STOCK_CODE = task.CN_S_STOCK_CODE, + CN_S_START_AREA = connectBit.CN_S_AREA_CODE, + CN_S_END_AREA = task.CN_S_END_AREA, + CN_N_PRIORITY = 1, + CN_S_CREATOR = "sys", + CN_S_CREATOR_BY = "sys", + CN_T_CREATE = DateTime.Now, + CN_T_MODIFY = DateTime.Now, + CN_S_REMARK = "", + CN_S_TASK_FLAG = Constants.TaskFlag_AGV, + CN_S_TASK_TYPE = "杞繍" + }; + var or = UseTransaction(trans => + { + //澧炲姞瀛愪换鍔�+ CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1, trans); + //鏇存柊鎺ラ┏浣嶇姸鎬�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new + { + CN_S_LOCATION_CODE = taskEntity1.CN_S_END_BIT + }, trans); + // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�璁板綍鎺ラ┏浣嶅拰鍑嗗鐐�+ CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_CONNECT_BIT = task.CN_S_CONNECT_BIT, + CN_S_EXT1 = task.CN_S_EXT1, + CN_S_STATE = Constants.TaskState_Executing + }, new + { + CN_S_TASK_NO = task.CN_S_TASK_NO + }, trans); + //绔嬪簱浠诲姟 闇�璋冪敤wcs鎺ュ彛 + // 鍙戦�Wcs浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(taskEntity1)); + OperateResult re = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(taskEntity1); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(re)); + if (!re.Success) + { + throw new Exception(re.Msg); + } + + //澧炲姞瀛愪换鍔�+ CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2, trans); + //鏇存柊鍑嗗鐐圭姸鎬�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new + { + CN_S_LOCATION_CODE = taskEntity2.CN_S_START_BIT + }, trans); + + //agv浠诲姟 + re = new OtherSysApi().SendAmsCreateTask(taskEntity2); + if (!re.Success) + { + throw new Exception(re.Msg); + } + }); + if (!or.Success) throw new Exception(or.Msg); + } + else + { + //鏈墽琛岃〃绀虹涓�釜浠诲姟 + if (task.CN_S_STATE == Constants.TaskState_NoExecuted) + { + //绔嬪簱璐т綅 + string lkBit = string.Empty; + //鏍规嵁浠诲姟绫诲瀷鍒ゆ柇绔嬪簱璐т綅 + if (task.CN_S_TASK_TYPE == Constants.Out) + { + lkBit = task.CN_S_START_BIT; + } + else if (task.CN_S_TASK_TYPE == Constants.In) + { + lkBit = task.CN_S_END_BIT; + } + else + { + throw new Exception("鑷浠诲姟浠诲姟绫诲瀷涓嶆纭�); + } + + var locationBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = lkBit + }); + if (locationBit == null) + throw new Exception("鏈壘鍒扮珛搴撹揣浣嶏細" + lkBit); + var _bit = connectBits.Find(f => f.tunnel == Util.ToString(locationBit.CN_S_ROADWAY).Trim()); + if (_bit == null) + throw new Exception("鏈壘鍒伴厤缃贩閬擄細" + locationBit.CN_S_ROADWAY + "鐨勬帴椹充綅"); + + var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = _bit.bit + }); + if (connectBit == null) + throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + _bit.bit); + if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鎺ラ┏浣嶏細" + _bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + //璧嬪�鎺ラ┏浣�+ task.CN_S_CONNECT_BIT = _bit.bit; + + string taskNo = task.CN_S_TASK_NO + "_1"; + //鍒涘缓绗竴涓换鍔�+ TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = taskNo, + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + CN_S_START_BIT = task.CN_S_START_BIT, + CN_S_END_BIT = task.CN_S_CONNECT_BIT, + CN_S_STATE = Constants.TaskState_NoExecuted, + CN_S_BF_TASK_NO = "", + CN_S_AF_TASK_NO = "", + CN_S_STOCK_CODE = task.CN_S_STOCK_CODE, + CN_S_START_AREA = task.CN_S_START_AREA, + CN_S_END_AREA = connectBit.CN_S_AREA_CODE, + CN_N_PRIORITY = 1, + CN_S_CREATOR = "sys", + CN_S_CREATOR_BY = "sys", + CN_T_CREATE = DateTime.Now, + CN_T_MODIFY = DateTime.Now, + CN_S_REMARK = "", + CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_LG : Constants.TaskFlag_AGV, + CN_S_TASK_TYPE = "杞繍" + }; + var or = UseTransaction(trans => + { + //澧炲姞瀛愪换鍔�+ CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity, trans); + //鏇存柊鎺ラ┏浣嶇姸鎬�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new + { + CN_S_LOCATION_CODE = taskEntity.CN_S_END_BIT + }, trans); + // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�+ CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_CONNECT_BIT = task.CN_S_CONNECT_BIT, + CN_S_STATE = Constants.TaskState_Executing + }, new + { + CN_S_TASK_NO = task.CN_S_TASK_NO + }, trans); + //绔嬪簱浠诲姟 闇�璋冪敤wcs鎺ュ彛 + if (taskEntity.CN_S_TASK_FLAG == Constants.TaskFlag_LG) + { + //to do... + #region 寰呮祴璇�+ //OperateResult re = new OtherSysApi().SendWcsCreateTask(taskEntity, _bit); + //if (!re.Success) + //{ + // throw new Exception(re.Msg); + //} + #endregion + } + else//agv浠诲姟 + { + //OperateResult re = new OtherSysApi().SendAmsCreateTask(taskEntity); + //if (!re.Success) + //{ + // throw new Exception(re.Msg); + //} + } + }); + if (!or.Success) throw new Exception(or.Msg); } - else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_1) + else//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔� { - // 鎵ц绗竴鏉″瓙浠诲姟 - or = ExecBCP_KTCK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_2) - { - // 鎵ц绗簩鏉′换鍔�- or = ExecBCP_KTCK_Sub2(task, connectBit); + string taskNo = task.CN_S_TASK_NO + "_2"; + var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT + }); + var _bit = connectBits.Find(f => f.tunnel == Util.ToString(connectBit.CN_S_ROADWAY).Trim()); + if (_bit == null) + throw new Exception("鏈壘鍒伴厤缃贩閬擄細" + connectBit.CN_S_ROADWAY + "鐨勬帴椹充綅"); + //鍒涘缓绗簩涓换鍔�+ TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = taskNo, + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + CN_S_START_BIT = task.CN_S_CONNECT_BIT, + CN_S_END_BIT = task.CN_S_END_BIT, + CN_S_STATE = Constants.TaskState_NoExecuted, + CN_S_BF_TASK_NO = "", + CN_S_AF_TASK_NO = "", + CN_S_STOCK_CODE = task.CN_S_STOCK_CODE, + CN_S_START_AREA = connectBit.CN_S_AREA_CODE, + CN_S_END_AREA = task.CN_S_END_AREA, + CN_N_PRIORITY = 1, + CN_S_CREATOR = "sys", + CN_S_CREATOR_BY = "sys", + CN_T_CREATE = DateTime.Now, + CN_T_MODIFY = DateTime.Now, + CN_S_REMARK = "", + CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_AGV : Constants.TaskFlag_LG, + CN_S_TASK_TYPE = "杞繍" + }; + + var or = UseTransaction(trans => + { + //澧炲姞瀛愪换鍔�+ CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity, trans); + //鏇存柊鎺ラ┏浣嶇姸鎬�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new + { + CN_S_LOCATION_CODE = taskEntity.CN_S_START_BIT + }, trans); + // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�+ CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new + { + CN_S_TASK_NO = task.CN_S_TASK_NO + }, trans); + + //绔嬪簱浠诲姟 闇�璋冪敤wcs鎺ュ彛 + if (taskEntity.CN_S_TASK_FLAG == Constants.TaskFlag_LG) + { + //to do... + #region 寰呮祴璇�+ //OperateResult re = new OtherSysApi().SendWcsCreateTask(taskEntity, _bit); + //if (!re.Success) + //{ + // throw new Exception(re.Msg); + //} + #endregion + } + else//agv浠诲姟 + { + //OperateResult re = new OtherSysApi().SendAmsCreateTask(taskEntity); + //if (!re.Success) + //{ + // throw new Exception(re.Msg); + //} + } + }); + if (!or.Success) throw new Exception(or.Msg); } } - #endregion - - #region 婊℃墭鍏ュ簱 - - else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK) - { - // 婊℃墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗竴鏉″瓙浠诲姟 - or = ExecBCP_MTRK_AddSub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - or = ExecBCP_MTRK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_2) - { - // 鎵ц绗簩鏉″瓙浠诲姟 - or = ExecBCP_MTRK_Sub2(task, connectBit); - } - } - else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK_SECOND) - { - // 婊℃墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗簩鏉″瓙浠诲姟 - or = ExecBCP_MTRK_AddSub2(task, connectBit); - } - } - - #endregion - - #endregion - - #region 鎴愬瀷鏈�- - #region 鍗婃垚鍝佸洖搴�- - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_BCPHK) - { - // 婊℃墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗竴鏉″瓙浠诲姟 - ExecCXJ_BCPHK_AddSub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - ExecCXJ_BCPHK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2) - { - // 鎵ц绗簩鏉″瓙浠诲姟 - ExecCXJ_BCPHK_Sub2(task, connectBit); - } - } - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_BCPHK_SECOND) - { - // 婊℃墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗簩鏉″瓙浠诲姟 - ExecCXJ_BCPHK_AddSub2(task, connectBit); - } - } - - #endregion - - #region 绌烘墭鍥炲簱 - - #region 璁板綍 - - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_RECORD) - { - // 鍙敤浜庤褰�- // 鍦ㄥ悓涓�嚎杈硅揣浣嶇殑婊℃墭鍑哄簱浠诲姟瀹屾垚鍚庢墽琛�- } - - #endregion - - #region 绌烘墭鍏ュ簱 - - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_KTRK) - { - // 绌烘墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗竴鏉″瓙浠诲姟 - ExecCXJ_KTHK_KTRK_AddSub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - ExecCXJ_KTHK_KTRK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2) - { - // 鎵ц绗簩鏉″瓙浠诲姟 - ExecCXJ_KTHK_KTRK_Sub2(task, connectBit); - } - } - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_KTRK_SECOND) - { - // 绌烘墭鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗簩鏉″瓙浠诲姟 - ExecCXJ_KTHK_KTRK_AddSub2(task, connectBit); - } - } - - #endregion - - #endregion - - #region 婊℃墭鍑哄簱 - - else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_MTCK) - { - // 婊℃墭鍑哄簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTCK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�- or = ExecCXJ_MTCK_Add(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - or = ExecCXJ_MTCK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_2) - { - // 鎵ц绗簩鏉′换鍔�- or = ExecCXJ_MTCK_Sub2(task, connectBit); - } - } - - #endregion - - #endregion - - #region 甯︽潫 - - #region 鍗婃垚鍝�绌烘墭鍥炲簱 - - else if (task.CN_S_EXT3 == TaskSectionConstants.DS_BCPKTHK) - { - // 甯︽潫鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗竴鏉″瓙浠诲姟 - ExecDS_BCPKTHK_AddSub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - ExecDS_BCPKTHK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2) - { - // 鎵ц绗簩鏉″瓙浠诲姟 - ExecDS_BCPKTHK_Sub2(task, connectBit); - } - } - else if (task.CN_S_EXT3 == TaskSectionConstants.DS_BCPKTHK_SECOND) - { - // 甯︽潫鍏ュ簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSRK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓绗簩鏉″瓙浠诲姟 - ExecDS_BCPKTHK_AddSub2(task, connectBit); - } - } - - #endregion - - #region 婊℃墭鍑哄簱 - - else if (task.CN_S_EXT3 == TaskSectionConstants.DS_MTCK) - { - // 甯︽潫鍑哄簱鐨勬帴椹充綅 - var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSCK); - if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) - { - // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�- or = ExecCXJ_MTCK_Add(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.DS_MTCK_SUB_1) - { - // 鎵ц绗竴鏉″瓙浠诲姟 - or = ExecCXJ_MTCK_Sub1(task, connectBit); - } - else if (task.CN_S_EXT2 == TaskFlagConstants.DS_MTCK_SUB_2) - { - // 鎵ц绗簩鏉′换鍔�- or = ExecCXJ_MTCK_Sub2(task, connectBit); - } - } - - #endregion - - #endregion + ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛")); } catch (Exception ex) { @@ -1055,100 +1196,6 @@ catch (Exception ex) { Log.DomainInfo("SelfManageTask Error", ex.Message); - } - } - - /// <summary> - /// 閬嶅巻涓棿琛紝鏍规嵁涓氬姟绫诲瀷鍒涘缓WMS浠诲姟 - /// </summary> - public void ExecTransferTask() - { - // 宸叉帴鏀跺緟澶勭悊浠诲姟 - var receiveTasks = BLLCreator.CreateDapper<TN_MES_TASK>().GetList(new TN_MES_TASK - { - NeedTrig = "Y" - }).OrderBy(t => t.CreateDate).ToList(); - - List<OperateResult> ors = new List<OperateResult>(); - - foreach (var task in receiveTasks) - { - try - { - // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 璧峰璐т綅 - AutoBomLocationEntity start_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_From); - // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 缁堢偣璐т綅 - AutoBomLocationEntity end_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_To); - - // 涓讳换鍔℃墽琛屾祦绋嬩腑鐨勮捣濮嬮樁娈�- string section = ""; - switch (task.BUSI_TYPE) - { - case "1": - section = TaskSectionConstants.BCP_KTCK; - break; - case "2": - section = TaskSectionConstants.CXJ_BCPHK; - break; - case "3": - section = TaskSectionConstants.CXJ_KTHK_RECORD; - break; - case "4": - section = TaskSectionConstants.CXJ_MTCK; - break; - case "5": - section = TaskSectionConstants.DS_BCPKTHK; - break; - case "6": - section = TaskSectionConstants.DS_MTCK; - break; - } - // 鍒涘缓WMS涓讳换鍔�- TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity() - { - CN_S_TASK_NO = task.task_no, - CN_S_TRAY_CODE = task.TurnCardNum, - CN_S_STATE = Constants.TaskState_NoExecuted, - CN_S_BF_TASK_NO = "", - CN_S_AF_TASK_NO = "", - CN_S_STOCK_CODE = start_location.CN_S_STOCK_CODE, - CN_S_START_AREA = start_location.CN_S_AREA_CODE, - CN_S_START_BIT = start_location.CN_S_LOCATION_CODE, - CN_S_END_AREA = end_location.CN_S_AREA_CODE, - CN_S_END_BIT = end_location.CN_S_LOCATION_CODE, - CN_N_PRIORITY = 1, - CN_S_CREATOR = "sys", - CN_S_CREATOR_BY = "sys", - CN_T_CREATE = DateTime.Now, - CN_T_MODIFY = DateTime.Now, - CN_S_REMARK = "", - CN_S_TASK_FLAG = Constants.TaskFlag_ZG, - CN_S_EXT1 = "", - CN_S_EXT2 = TaskFlagConstants.ROOT, - CN_S_EXT3 = section - }; - UseTransaction(trans => - { - // 澧炲姞WMS涓讳换鍔�- OperateResult re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity); - if (!re.Success) - throw new Exception(re.Msg); - // 鏇存柊TN_MES_TASK鐘舵� - CreateDapperDAL<TN_MES_TASK>().Update(new - { - NeedTrig = "N" - }, new { task_no = task.task_no }, trans); - if (!re.Success) - throw new Exception(re.Msg); - }); - - ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛")); - } - catch (Exception ex) - { - ors.Add(OperateResult.Error(ex.Message)); - } - Log.DomainInfo("ExecTransferTask", JsonConvert.SerializeObject(ors)); } } @@ -2866,21 +2913,18 @@ /// 浠诲姟瀹屾垚 /// </summary> public static string COMPLETE = "浠诲姟瀹屾垚"; + public static string ERROR = "鎵ц澶辫触"; #region 鍗婃垚鍝� /// <summary> /// 鍗婃垚鍝�绌烘墭鍑哄簱 /// </summary> - public static string BCP_KTCK = "绌烘墭鍑哄簱"; + public static string BCP_KTCK = "鍗婃垚鍝�绌烘墭鍑哄簱"; /// <summary> /// 鍗婃垚鍝�婊℃墭鍏ュ簱 /// </summary> public static string BCP_MTRK = "鍗婃垚鍝�婊℃墭鍏ュ簱"; - /// <summary> - /// 鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵 - /// </summary> - public static string BCP_MTRK_SECOND = "鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵"; #endregion @@ -2890,11 +2934,6 @@ /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴� /// </summary> public static string CXJ_BCPHK = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�; - - /// <summary> - /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵 - /// </summary> - public static string CXJ_BCPHK_SECOND = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵"; /// <summary> /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵 /// </summary> @@ -2904,17 +2943,9 @@ /// </summary> public static string CXJ_KTHK_KTRK = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵"; /// <summary> - /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-绗簩闃舵 - /// </summary> - public static string CXJ_KTHK_KTRK_SECOND = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-绗簩闃舵"; - /// <summary> /// 鎴愬瀷鏈�婊℃墭鍑哄簱 /// </summary> public static string CXJ_MTCK = "鎴愬瀷鏈�婊℃墭鍑哄簱"; - /// <summary> - /// 鎴愬瀷鏈�绌烘墭鍏ュ簱 - /// </summary> - public static string CXJ_KTRK = "鎴愬瀷鏈�绌烘墭鍏ュ簱"; #endregion @@ -2924,10 +2955,6 @@ /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱 /// </summary> public static string DS_BCPKTHK = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱"; - /// <summary> - /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵 - /// </summary> - public static string DS_BCPKTHK_SECOND = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵"; /// <summary> /// 甯︽潫-婊℃墭鍑哄簱 /// </summary> diff --git a/HH.WMS.Common/Constants.cs b/HH.WMS.Common/Constants.cs index 778911e..f2e20d8 100644 --- a/HH.WMS.Common/Constants.cs +++ b/HH.WMS.Common/Constants.cs @@ -495,10 +495,6 @@ /// 浠诲姟鐘舵�-瀹屾垚涓�崐 /// </summary> public static readonly string TaskState_CompleteHalf = "瀹屾垚涓�崐"; - /// <summary> - /// 浠诲姟鐘舵�-瀹屾垚閮ㄥ垎 - /// </summary> - public static readonly string TaskState_CompletePart = "閮ㄥ垎瀹屾垚"; #endregion #region 浠诲姟鎵ц鍙嶉缁撴灉 /// <summary> diff --git a/HH.WMS.Common/JsonHelper.cs b/HH.WMS.Common/JsonHelper.cs index 4138386..24e0751 100644 --- a/HH.WMS.Common/JsonHelper.cs +++ b/HH.WMS.Common/JsonHelper.cs @@ -660,8 +660,8 @@ using (JsonTextReader reader = new JsonTextReader(file)) { JObject o = (JObject)JToken.ReadFrom(reader); - var value = o[name].ToString(); - return value.Replace("\r\n", ""); + var value = o[name]?.ToString(); + return value?.Replace("\r\n", "")??""; } } } diff --git a/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs b/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs index 83dd663..7f376b3 100644 --- a/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs +++ b/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs @@ -146,5 +146,39 @@ /// </summary> [Column("BUSI_TYPE")] public string BUSI_TYPE { get; set; } + + public string BUSI_TYPE_NAME + { + get + { + string name = "鏈煡"; + switch (BUSI_TYPE) + { + case "1": + name = "鍗婃垚鍝佹弧鎵樺叆搴�; + break; + case "2": + name = "鎴愬瀷鏈哄崐鎴愬搧鍥炲簱"; + break; + case "3": + name = "鎴愬瀷鏈虹┖妗跺洖搴�; + break; + case "4": + name = "鎴愬瀷鏈烘弧鎵樺嚭搴�; + break; + case "5": + name = "鎴愬瀷鏈哄甫鏉熷洖搴�; + break; + case "": + name = "鎴愬瀷鏈哄甫鏉熸弧鎵樺嚭搴�; + break; + } + return name; + } + } + /// <summary> + /// 浠诲姟闃舵 + /// </summary> + public string SECTION { get; set; } } } diff --git a/HH.WMS.Entitys/Entitys/TN_WM_TASKEntity.cs b/HH.WMS.Entitys/Entitys/TN_WM_TASKEntity.cs index 983e698..79b5566 100644 --- a/HH.WMS.Entitys/Entitys/TN_WM_TASKEntity.cs +++ b/HH.WMS.Entitys/Entitys/TN_WM_TASKEntity.cs @@ -115,18 +115,18 @@ [Column("CN_S_END_AREA_TYPE")] public string CN_S_END_AREA_TYPE { get; set; } /// <summary> - /// 鎵╁睍瀛楁1 涓讳换鍔$紪鍙�+ /// 鎵╁睍瀛楁1 MES浠诲姟缂栧彿 /// </summary> [Column("CN_S_EXT1")] public string CN_S_EXT1 { get; set; } /// <summary> - /// 鎵╁睍瀛楁2 浠诲姟鏍囪瘑 + /// 鎵╁睍瀛楁2 鍑嗗鐐� /// </summary> [Column("CN_S_EXT2")] public string CN_S_EXT2 { get; set; } /// <summary> - /// 鎵╁睍瀛楁3 浠诲姟鎵ц闃舵 + /// 鎵╁睍瀛楁3 /// </summary> [Column("CN_S_EXT3")] public string CN_S_EXT3 { get; set; } diff --git a/HH.WMS.WebApi/Config.json b/HH.WMS.WebApi/Config.json index 105abe0..3378880 100644 --- a/HH.WMS.WebApi/Config.json +++ b/HH.WMS.WebApi/Config.json @@ -1,237 +1,4 @@ 锘縶 - "isSendAms": { - "moveStockEnableAms": "N", //绉诲簱鏄惁鍚敤ams - "transferEnableAms": "N" //绉婚�鏄惁鍚敤ams - }, - //鐢熻兌绉诲簱锛堜竴妤间腑杞尯鍒颁簩妤间腑杞尯锛�- "transferOfRawRubber": { - "itemCode": "6972879772026", - "itemName": "鐢熻兌鍚嶇О", - "transferMax": 10, //浜屾ゼ鍙瓨鏀捐浆杩愮殑鏈�ぇ鍊硷紝澶т簬绛変簬璇ュ�鏈嶅姟鏆傚仠鎵ц - "startArea": "F1_SJZZQ", //涓�ゼ涓浆鍖哄煙 - "endArea": "F2_SJZZQ", //浜屾ゼ涓浆鍖哄煙 - "startTime": "8:30", //鍑犵偣寮� - "endTime": "10:30" //鍑犵偣缁撴潫 - }, - //缁堢偧鑳剁Щ搴�- "transferOfFinalRubber": { - "itemCode": "6972879772002", - "itemName": "缁堢偧鑳�, - "transferMax": 10, //浜屾ゼ鍙瓨鏀捐浆杩愮殑鏈�ぇ鍊硷紝澶т簬绛変簬璇ュ�鏈嶅姟鏆傚仠鎵ц - "startArea": "ZLJCFQ", //缁堢偧鑳跺瓨鏀惧尯 - "endArea": "DCJHCQ", //澶ц溅闂寸紦瀛樺尯 - "startTime": "8:30", //鍑犵偣寮� - "endTime": "10:30" //鍑犵偣缁撴潫 - }, - "workFlowTransType": [ - { - "workFlowCode": "S1", - "workFlowName": "鐢熻兌涓浆鎼繍", - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "S2", - "workFlowName": "鐢熻兌涓浆绉诲簱", - "transType": "Out", - "isTransport": "Y" - }, - { - "workFlowCode": "S3", - "workFlowName": "瀵嗙偧鏈哄彨鏂�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "S4", - "workFlowName": "瀵嗙偧鏈哄伐浣嶇┖鎵橀�鍥�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "S5", - "workFlowName": "鐢熻兌灏忕洏鏂欓�鍥�, - "transType": "In", - "isTransport": "N" - }, - - { - "workFlowCode": "X1", - "workFlowName": "灏忔枡绉ゅ彨鏂�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "X2", - "workFlowName": "灏忔枡绉ゅ彨鏂欏彇绌烘墭", - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "X3", - "workFlowName": "灏忔枡绉ゆ惉杩�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "X4", - "workFlowName": "灏忔枡绉ゆ惉杩愬彇绌烘墭", - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "X5", - "workFlowName": "瀵嗙偧浜х嚎鍛煎彨灏忔枡", - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "X6", - "workFlowName": "瀵嗙偧鐢熶骇绾垮彇绌烘墭", - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "X7", - "workFlowName": "灏忔枡灏忕洏鏂欓�鍥�, - "transType": "In", - "isTransport": "N" - }, - - { - "workFlowCode": "M1", - "workFlowName": "姣嶈兌鏀剁毊涓嬬嚎", - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "M2", - "workFlowName": "鏀剁毊璁惧鍛煎彨绌烘墭", - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "M3", - "workFlowName": "姣嶈兌瀵嗙偧鏈哄彨鏂�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "M4", - "workFlowName": "瀵嗙偧鏈哄鏂欒ˉ璐�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "M5", - "workFlowName": "姣嶈兌灏忕洏鏂欓�鍥�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "M6", - "workFlowName": "瀵嗙偧鏈哄彨鏂欒繑绌烘墭", - "transType": "In" - }, - { - "workFlowCode": "Z1", - "workFlowName": "缁堢偧鑳惰兌鐩樹笅绾�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "Z2", - "workFlowName": "缁堢偧鑳跺懠鍙┖鎵�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "Z3", - "workFlowName": "缁堢偧鑳剁Щ搴�, - "transType": "Out", - "isTransport": "Y" - }, - { - "workFlowCode": "Z4", - "workFlowName": "缁堢偧鑳朵笅宸ュ簭鍙枡", - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "Z5", - "workFlowName": "缁堢偧鑳跺鏂欒ˉ璐�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "Z6", - "workFlowName": "缁堢偧鑳跺皬鐩樻枡閫�洖", - "transType": "In", - "isTransport": "N" - }, - - { - "workFlowCode": "T1", - "workFlowName": "鑳庨潰鐢熶骇绾夸笅绾�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "T2", - "workFlowName": "绌烘爡杞﹁繍鍥�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "T3", - "workFlowName": "鎴愬瀷鏈哄彨鏂�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "T4", - "workFlowName": "鎴愬瀷鏈哄彨鏂欏洖绌烘墭", - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "T5", - "workFlowName": "浣欐枡鏍兼爡杞﹂�鍥�, - "transType": "In", - "isTransport": "N" - }, - - { - "workFlowCode": "L1", - "workFlowName": "鍘嬪欢鐢熶骇绾夸笅绾�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "L2", - "workFlowName": "绌哄嵎杞磋繍鍥�, - "transType": "In", - "isTransport": "N" - }, - { - "workFlowCode": "L3", - "workFlowName": "鐩磋/鏂滆鐢熶骇绾垮彨鏂�, - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "L4", - "workFlowName": "鐩磋/鏂滆绌烘墭鎺掑嚭鍛煎彨", - "transType": "Out", - "isTransport": "N" - }, - { - "workFlowCode": "L5", - "workFlowName": "浣欐枡甯樺竷閫�洖", - "transType": "In", - "isTransport": "N" - } - ], //鎺ラ┏浣� "connectBit": [ { @@ -240,6 +7,7 @@ }, { "bit": "鎺ラ┏浣嶈揣浣�, + "readybit": "鍑嗗鐐硅揣浣�, "tasktype": "甯︽潫鍑哄簱" }, { @@ -253,6 +21,7 @@ }, { "bit": "鎺ラ┏浣嶈揣浣�, + "readybit": "鍑嗗鐐硅揣浣�, "tasktype": "婊℃墭鍑哄簱" }, { diff --git a/HH.WMS.WebApi/Controllers/WmsApiController.cs b/HH.WMS.WebApi/Controllers/WmsApiController.cs index 924f931..b1c87ec 100644 --- a/HH.WMS.WebApi/Controllers/WmsApiController.cs +++ b/HH.WMS.WebApi/Controllers/WmsApiController.cs @@ -1087,10 +1087,45 @@ public object InWorkArea(dynamic jsonData) { var logPara = LogType.LogPara("浠诲姟涓嬪彂"); - Log.Detail(logPara, "HCZCSendTask:浠诲姟涓嬪彂浼犻�鍙傛暟锛� + jsonData.ToString()); ZCReceiveTaskEntity sendTaskEntity = JsonConvert.DeserializeObject<ZCReceiveTaskEntity>(jsonData.ToString()); + if(string.IsNullOrEmpty(sendTaskEntity.BUSI_TYPE)) + { + Log.Detail(logPara, "ZCSendTask浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癇USI_TYPE銆� + jsonData.ToString()); + return new + { + success = false, + code = -1, + lastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + message = "缂哄皯鍙傛暟BUSI_TYPE" + }; + } + if (string.IsNullOrEmpty(sendTaskEntity.Location_From) && string.IsNullOrEmpty(sendTaskEntity.Location_To)) + { + Log.Detail(logPara, "ZCSendTask浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰拰缁堢偣鍚屾椂涓虹┖銆� + jsonData.ToString()); + return new + { + success = false, + code = -1, + lastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + message = "缂哄皯璧风偣Location_From鎴栫粓鐐筁ocation_To" + }; + } + if (string.IsNullOrEmpty(sendTaskEntity.task_no)) + { + Log.Detail(logPara, "ZCSendTask浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁皌ask_no銆� + jsonData.ToString()); + return new + { + success = false, + code = -1, + lastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + message = "缂哄皯鍙傛暟task_no" + }; + } + + Log.Detail(logPara, "ZCSendTask浠诲姟涓嬪彂浼犻�鍙傛暟锛� + jsonData.ToString()); + //璋冪敤ReceiveTask鏂规硶淇濆瓨鑷充腑闂村簱 var result = BLLCreator.Create<WmsApiBaseBLL>().ReceiveTask(sendTaskEntity); return new diff --git a/HH.WMS.WebApi/Extension/ExecTransferTask.cs b/HH.WMS.WebApi/Extension/ExecTransferTask.cs index e70a607..e9ba4c6 100644 --- a/HH.WMS.WebApi/Extension/ExecTransferTask.cs +++ b/HH.WMS.WebApi/Extension/ExecTransferTask.cs @@ -25,11 +25,27 @@ public void Run(object source, ElapsedEventArgs elapsedEventArgs) { try - { //闃叉Timer閲嶅叆 + { + //闃叉Timer閲嶅叆 lock (locko) { - // 浣跨敤TN_MES_TASK涓存椂琛ㄤ腑鎺ユ敹鐨凪ES浠诲姟锛屽垱寤篧MS浠诲姟 - BLLCreator.Create<ZCBLL>().ExecTransferTask(); + var transportReqs = BLLCreator.CreateDapper<TN_MES_TASK>().GetList(new + { + NeedTrig = Constants.Y + }).OrderBy(o => o.CreateDate).ToList(); + + var serviceExecs = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetList(new + { + CN_C_COMPLETE = Constants.N, + CN_S_TASK_TYPE = "绉婚�" + }); + + transportReqs = transportReqs.FindAll(f => !serviceExecs.Exists(e => e.CN_S_TASK_NO == f.task_no)); + + if (transportReqs.Any()) + { + BLLCreator.Create<ZCBLL>().ExecTransferTask(transportReqs); + } } } catch (Exception ex) -- Gitblit v1.9.1