From 02ca96debc6056275d58e55d97f7885a195542d0 Mon Sep 17 00:00:00 2001 From: zhao Date: 星期四, 24 六月 2021 16:42:16 +0800 Subject: [PATCH] 半成品入库-空托出库和满托入库的基本流程 --- HH.WMS.WebApi/HH.WMS.WebApi.csproj | 1 HH.WMS.BLL/Pda/ZCBLL.cs | 551 +++++++++++++++++++++++++++++++++++++++++++++ HH.WMS.BLL/Interface/OtherSysApi.cs | 44 ++ HH.WMS.WebApi/Config.json | 1 HH.WMS.Entitys/Dto/ConnectBitDto.cs | 2 HH.WMS.BLL/External/WmsApiBaseBLL.cs | 101 +++++++ HH.WMS.Common/Constants.cs | 4 7 files changed, 677 insertions(+), 27 deletions(-) diff --git a/HH.WMS.BLL/External/WmsApiBaseBLL.cs b/HH.WMS.BLL/External/WmsApiBaseBLL.cs index a3e3506..5b6db14 100644 --- a/HH.WMS.BLL/External/WmsApiBaseBLL.cs +++ b/HH.WMS.BLL/External/WmsApiBaseBLL.cs @@ -1512,15 +1512,10 @@ #endregion - string tno = executeStatePara.transportTask.CN_S_TASK_NO; + string tno = executeStatePara.transportTask.CN_S_TASK_NO.Trim(); 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.Split('_')[0]; } // 鑾峰彇涓讳换鍔� var task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new @@ -1546,7 +1541,97 @@ if (taskNo.IndexOf('_') > 0) { string fatherNo = taskNo.Substring(0, taskNo.IndexOf("_")); - string hzNo = taskNo.Substring(taskNo.IndexOf("_") + 1); + string childNo = taskNo.Substring(taskNo.IndexOf("_") + 1); + + #region 娴锋疆涓瓥 + + // 鍗婃垚鍝佹弧鎵樺叆搴撴祦绋�+ if (task.CN_S_EXT1 == BusinessTypeConstants.BCP_MTRK) + { + // 绌烘墭鍑哄簱绗竴鏉″瓙浠诲姟 + if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_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); + } + // 绌烘墭鍑哄簱绗簩鏉″瓙浠诲姟 + if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_sub_2") + { + // 涓讳换鍔$姸鎬佺疆涓哄畬鎴愰儴鍒�+ // 涓讳换鍔$殑瀛愪换鍔℃爣璇嗙疆绌�+ // 涓讳换鍔¢樁娈电疆涓哄崐鎴愬搧-婊℃墭鍏ュ簱 + CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new + { + CN_S_STATE = Constants.TaskState_CompletePart, + CN_S_EXT2 = "", + 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); + // 缁堢偣璐т綅鐘舵�鏀逛负:婊�+ 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); + // 鍦ㄤ富寰幆涓垱寤哄悗缁т换鍔�+ } + // 婊℃墭鍏ュ簱绗竴鏉″瓙浠诲姟 + if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_1") + { + // 涓讳换鍔$姸鎬佺疆涓哄畬鎴愰儴鍒�+ // 涓讳换鍔$殑瀛愪换鍔℃爣璇嗙疆涓篵cp_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" + }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); + // 鍦ㄤ富寰幆涓垱寤哄悗缁т换鍔�+ } + // 婊℃墭鍏ュ簱绗簩鏉″瓙浠诲姟 + if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_2") + { + + } + } + + #endregion + + //A鍒癇鐨凙GV鎼繍浠诲姟 if (hzNo == "1") { diff --git a/HH.WMS.BLL/Interface/OtherSysApi.cs b/HH.WMS.BLL/Interface/OtherSysApi.cs index 4ae6407..4a402f0 100644 --- a/HH.WMS.BLL/Interface/OtherSysApi.cs +++ b/HH.WMS.BLL/Interface/OtherSysApi.cs @@ -466,18 +466,35 @@ { List<JObject> sendParams = new List<JObject>(); JObject sendParam = new JObject(); - sendParam.Add("taskNo", model.CN_S_TASK_NO); - sendParam.Add("lpnNo", model.CN_S_TRAY_CODE); - sendParam.Add("taskType", model.CN_S_TASK_TYPE == Constants.In?"10": model.CN_S_TASK_TYPE == Constants.Out?"20":""); - sendParam.Add("taskPrty", model.CN_N_PRIORITY); - sendParam.Add("laneNo", bit.tunnel); - sendParam.Add("frmLocate", model.CN_S_START_BIT); - sendParam.Add("toLocate", model.CN_S_END_BIT); - sendParam.Add("wmsOrdeNO", ""); - sendParam.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + + JObject sendData = new JObject(); + // 鎵樼洏缂栫爜 + sendData.Add("PalletCode", model.CN_S_TRAY_CODE); + // 浠诲姟缂栫爜 + sendData.Add("TaskCode", model.CN_S_TASK_NO); + // 璧峰璁惧鍙�+ sendData.Add("EquipmentS_Id", ""); + // 鐩殑璁惧鍙�+ sendData.Add("EquipmentE_Id", ""); + // 璧峰璐т綅缂栫爜 + sendData.Add("PositionS_Id", model.CN_S_START_BIT); + // 鐩殑璐т綅缂栫爜 + sendData.Add("PositionE_Id", model.CN_S_END_BIT); + // 璧峰娣卞害 + sendData.Add("StartDepth", ""); + // 鐩殑娣卞害 + sendData.Add("EndDepth", "1"); + sendData.Add("Remarks", ""); + sendData.Add("Description", ""); + //璇锋眰绫诲瀷 + sendParam.Add("request_type", model.CN_S_TASK_TYPE == Constants.In ? "10" : model.CN_S_TASK_TYPE == Constants.Out ? "20" : ""); + //璇锋眰鏁版嵁闆嗗悎 + sendParam.Add("request_data", sendData); + sendParams.Add(sendParam); - string sendData = JsonConvert.SerializeObject(sendParams); - Log.Info("===>鍙戦�浠诲姟缁橶CS", sendData); + + string sendDatas = JsonConvert.SerializeObject(sendParams); + Log.Info("===>鍙戦�浠诲姟缁橶CS", sendDatas); string postOmsData = JsonConvert.SerializeObject(sendParams); string result = WebApiManager.HttpWcs_Post("api/InformWcs/SendTask", postOmsData); Log.Info("===>WCS杩斿洖缁撴灉", result); @@ -504,4 +521,9 @@ } } } + + public class WcsCreateTaskParam + { + public string PalletCode; + } } \ No newline at end of file diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs index 2fcedf5..ae9cbb5 100644 --- a/HH.WMS.BLL/Pda/ZCBLL.cs +++ b/HH.WMS.BLL/Pda/ZCBLL.cs @@ -779,28 +779,84 @@ } #endregion + // CN_S_EXT1:涓氬姟绫诲瀷 + // CN_S_EXT2:瀛愪换鍔℃爣璇�+ // CN_S_EXT3:浠诲姟鎵ц闃舵 public void SelfManageTask() { 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 } + CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf, Constants.TaskState_CompletePart } }); - - 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 connectBitStr = JsonHelper.GetValue("connectBit"); + if (string.IsNullOrEmpty(connectBitStr)) + throw new Exception("鏈壘鍒伴厤缃細connectBit"); + var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr); + OperateResult or = OperateResult.Error("鏈煡閿欒"); + if (task.CN_S_EXT1 == BusinessTypeConstants.BCP_MTRK)// 鍗婃垚鍝佹弧鎵樺叆搴撴祦绋�+ { + // -绌烘墭鍑哄簱闃舵 + if (task.CN_S_EXT3 == TaskSectionConstants.KTCK) + { + var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTCK); + // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�+ if (string.IsNullOrEmpty(task.CN_S_EXT2)) + { + or = ExecKTCK(task, connectBit); + } + // sub_1 -鐢ㄤ簬鍚慦CS鍙戦�绌烘墭->鎺ラ┏浣嶇殑鍑哄簱浠诲姟 + else if (task.CN_S_EXT2 == "ktck_sub_1") + { + or = ExecKTCK_Sub1(task, connectBit); + } + // sub_2 - 鐢ㄤ簬鍚慉MS鍙戦�鍑嗗鐐�>缁堢偣鐨勭┖鎵樻惉杩愪换鍔�+ else if (task.CN_S_EXT2 == "ktck_sub_2") + { + or = ExecKTCK_Sub2(task, connectBit); + } + } + else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK) + { + var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); + // 鍒涘缓绗竴鏉″瓙浠诲姟 + if (string.IsNullOrEmpty(task.CN_S_EXT2)) + { + or = ExecBCP_MTRK_AddSub1(task, connectBit); + } + // 鎵ц绗竴鏉″瓙浠诲姟 + else if (task.CN_S_EXT2 == "bcp_mtrk_sub_1") + { + or = ExecBCP_MTRK_Sub1(task, connectBit); + } + // 鍒涘缓绗簩鏉″瓙浠诲姟 + else if (task.CN_S_EXT2 == "bcp_mtrk_sub_1_completed") + { + or = ExecBCP_MTRK_AddSub2(task, connectBit); + } + // 鎵ц绗簩鏉″瓙浠诲姟 + else if (task.CN_S_EXT2 == "bcp_mtrk_sub_2") + { + or = ExecBCP_MTRK_Sub2(task, connectBit); + } + } + } + else + { + or = OperateResult.Error("鏈煡鐨勪笟鍔$被鍨嬶細task.CN_S_EXT1=" + task.CN_S_EXT1); + } + + continue; + //鏈墽琛岃〃绀虹涓�釜浠诲姟 if (task.CN_S_STATE == Constants.TaskState_NoExecuted) { @@ -1043,6 +1099,24 @@ // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 缁堢偣璐т綅 AutoBomLocationEntity end_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_To); + // 涓讳换鍔℃墽琛屾祦绋嬩腑鐨勮捣濮嬮樁娈�+ string section = ""; + switch (task.BUSI_TYPE) + { + case "1": + section = TaskSectionConstants.KTCK; + break; + case "2": + break; + case "3": + break; + case "4": + break; + case "5": + break; + case "6": + break; + } // 鍒涘缓WMS涓讳换鍔� TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity() { @@ -1063,6 +1137,9 @@ CN_T_MODIFY = DateTime.Now, CN_S_REMARK = "", CN_S_TASK_FLAG = Constants.TaskFlag_ZG, + CN_S_EXT1 = task.BUSI_TYPE, + CN_S_EXT2 = "", + CN_S_EXT3 = section }; UseTransaction(trans => { @@ -1088,5 +1165,463 @@ Log.DomainInfo("ExecTransferTask", JsonConvert.SerializeObject(ors)); } } + + #region 鍗婃垚鍝�婊℃墭鍏ュ簱 + + #region 绌烘墭鍑哄簱 + + /// <summary> + /// 鍒涘缓绌烘墭鍑哄簱骞惰瀛愪换鍔�+ /// </summary> + public OperateResult ExecKTCK(TN_WM_TASKEntity task, ConnectBitDto bit) + { + // 绌烘墭鍑哄簱鍜屾弧鎵樺叆搴撴槸鍙嶅悜鐨�+ var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = bit.bit + }); + var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = bit.readybit + }); + if (connectBit == null) + throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit); + if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + if (readyBit == null) + throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.readybit); + if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鎺ラ┏浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + // 绔嬪簱->鎺ラ┏浣�+ TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = task.CN_S_TASK_NO + "_1", + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + 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_END_AREA, + CN_S_START_BIT = task.CN_S_END_BIT, + CN_S_END_AREA = connectBit.CN_S_AREA_CODE, + CN_S_END_BIT = connectBit.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 = task.CN_S_EXT1, + CN_S_EXT2 = "ktck_sub_1" + }; + // 鍑嗗鐐�>宸ヤ綅 + TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = task.CN_S_TASK_NO + "_2", + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + 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 = readyBit.CN_S_AREA_CODE, + CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE, + CN_S_END_AREA = task.CN_S_START_AREA, + CN_S_END_BIT = task.CN_S_START_BIT, + 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 = task.CN_S_EXT1, + CN_S_EXT2 = "ktck_sub_2" + }; + + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + UseTransaction(trans => + { + // 鍒涘缓绌烘墭鍑哄簱瀛愪换鍔� + re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1); + if (!re.Success) + throw new Exception(re.Msg); + // 鍒涘缓绌烘墭鍑哄簱瀛愪换鍔� + re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2); + if (!re.Success) + throw new Exception(re.Msg); + + // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑 璁板綍鎺ラ┏浣�+ re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing, + CN_S_CONNECT_BIT = bit.bit + }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); + if (!re.Success) + throw new Exception(re.Msg); + }); + } + catch (Exception ex) + { + OperateResult.Error("鍒涘缓绌烘墭鍑哄簱瀛愪换鍔″け璐ワ紝涓讳换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + + return re; + } + /// <summary> + /// 鎵ц绌烘墭鍑哄簱鐨勭涓�潯瀛愪换鍔�+ /// </summary> + /// <param name="task"></param> + /// <param name=""></param> + /// <returns></returns> + public OperateResult ExecKTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto connectBit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + try + { + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = connectBit.bit }, trans); + // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+ or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans); + // 鍙戦�Wcs浠诲姟 + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1, connectBit); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц绌烘墭鍑哄簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + /// <summary> + /// 鎵ц绌烘墭鍑哄簱鐨勭浜屾潯瀛愪换鍔�+ /// </summary> + /// <param name="task"></param> + /// <param name="connectBit"></param> + /// <returns></returns> + public OperateResult ExecKTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto connectBit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + try + { + UseTransaction(trans => + { + // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = connectBit.readybit }, trans); + // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+ or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans); + // 鍙戦�Ams浠诲姟 + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц绌烘墭鍑哄簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #region 婊℃墭鍏ュ簱 + + #region 涓讳换鍔�+ + /// <summary> + /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔� + /// </summary> + public OperateResult ExecBCP_MTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit) + { + 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + // 宸ヤ綅->鎺ラ┏浣�+ TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = task.CN_S_TASK_NO + "_3", + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + 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_START_BIT = task.CN_S_START_BIT, + CN_S_END_AREA = connectBit.CN_S_AREA_CODE, + CN_S_END_BIT = connectBit.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 = task.CN_S_EXT1, + CN_S_EXT2 = "bcp_mtrk_sub_1" + }; + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + UseTransaction(trans => + { + // 鍒涘缓婊℃墭鍏ュ簱瀛愪换鍔� + re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1); + if (!re.Success) + throw new Exception(re.Msg); + + // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑 + re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); + if (!re.Success) + throw new Exception(re.Msg); + }); + } + catch (Exception ex) + { + OperateResult.Error("鍒涘缓婊℃墭鍏ュ簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + + return re; + } + /// <summary> + /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔� + /// </summary> + public OperateResult ExecBCP_MTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit) + { + 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + // 鎺ラ┏浣�>绔嬪簱 + TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity() + { + CN_S_TASK_NO = task.CN_S_TASK_NO + "_4", + CN_S_TRAY_CODE = task.CN_S_TRAY_CODE, + 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_START_BIT = connectBit.CN_S_LOCATION_CODE, + CN_S_END_AREA = task.CN_S_END_AREA, + CN_S_END_BIT = task.CN_S_END_BIT, + 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 = task.CN_S_EXT1, + CN_S_EXT2 = "bcp_mtrk_sub_2" + }; + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + UseTransaction(trans => + { + // 鍒涘缓婊℃墭鍏ュ簱瀛愪换鍔� + re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2); + if (!re.Success) + throw new Exception(re.Msg); + + // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑 + re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans); + if (!re.Success) + throw new Exception(re.Msg); + }); + } + catch (Exception ex) + { + OperateResult.Error("鍒涘缓婊℃墭鍏ュ簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + + return re; + } + + /// <summary> + /// 鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱鐨勭涓�潯瀛愪换鍔�+ /// </summary> + /// <param name="task"></param> + /// <param name=""></param> + /// <returns></returns> + public OperateResult ExecBCP_MTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto connectBit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + try + { + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = connectBit.bit }, trans); + // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+ or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans); + // 鍙戦�Ams浠诲姟 + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц婊℃墭鍏ュ簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + /// <summary> + /// 鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱鐨勭浜屾潯瀛愪换鍔�+ /// </summary> + /// <param name="task"></param> + /// <param name="connectBit"></param> + /// <returns></returns> + public OperateResult ExecBCP_MTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto connectBit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + try + { + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = connectBit.bit }, trans); + // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+ or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new + { + CN_S_STATE = Constants.TaskState_Executing + }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans); + // 鍙戦�Wcs浠诲姟 + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2, connectBit); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц婊℃墭鍏ュ簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #endregion + + #endregion + } + + /// <summary> + /// 閰嶇疆鏂囦欢涓殑甯搁噺瀹氫箟 + /// </summary> + public class ConnectBitConstants + { + /// <summary> + /// 甯︽潫鍏ュ簱 + /// </summary> + public static string DSRK = "甯︽潫鍏ュ簱"; + /// <summary> + /// 甯︽潫鍑哄簱 + /// </summary> + public static string DSCK = "甯︽潫鍑哄簱"; + /// <summary> + /// 婊℃墭鍏ュ簱 + /// </summary> + public static string MTRK = "婊℃墭鍏ュ簱"; + /// <summary> + /// 绌烘墭鍑哄簱 + /// </summary> + public static string KTCK = "绌烘墭鍑哄簱"; + /// <summary> + /// 婊℃墭鍑哄簱 + /// </summary> + public static string MTCK = "婊℃墭鍑哄簱"; + /// <summary> + /// 绌烘墭鍏ュ簱 + /// </summary> + public static string KTRK = "绌烘墭鍏ュ簱"; + } + + /// <summary> + /// 鎺ュ彛鍚屾鐨勪笟鍔$被鍨嬪畾涔�+ /// </summary> + public class BusinessTypeConstants + { + /// <summary> + /// 鍗婃垚鍝佹弧鎵樺叆搴�+ /// </summary> + public static string BCP_MTRK = "1"; + /// <summary> + /// 鎴愬瀷鏈哄崐鎴愬搧鍥炲簱 + /// </summary> + public static string CXJ_BCPHK = "2"; + /// <summary> + /// 鎴愬瀷鏈虹┖妗跺洖搴�+ /// </summary> + public static string CXJ_KTHK = "3"; + /// <summary> + /// 鎴愬瀷鏈烘弧鎵樺嚭搴�+ /// </summary> + public static string CXJ_MTCK = "4"; + /// <summary> + /// 鎴愬瀷鏈哄甫鏉熷洖搴�+ /// </summary> + public static string CXJ_DSHK = "5"; + /// <summary> + /// 鎴愬瀷鏈哄甫鏉熸弧鎵樺嚭搴�+ /// </summary> + public static string CXJ_DSMTCK = "6"; + } + + public class TaskSectionConstants + { + /// <summary> + /// 绌烘墭鍑哄簱 + /// </summary> + public static string KTCK = "绌烘墭鍑哄簱"; + /// <summary> + /// 鍗婃垚鍝�婊℃墭鍏ュ簱 + /// </summary> + public static string BCP_MTRK = "鍗婃垚鍝�婊℃墭鍏ュ簱"; } } diff --git a/HH.WMS.Common/Constants.cs b/HH.WMS.Common/Constants.cs index f2e20d8..7de0e6e 100644 --- a/HH.WMS.Common/Constants.cs +++ b/HH.WMS.Common/Constants.cs @@ -495,6 +495,10 @@ /// 浠诲姟鐘舵�-瀹屾垚涓�崐 /// </summary> public static readonly string TaskState_CompleteHalf = "瀹屾垚涓�崐"; + /// <summary> + /// 浠诲姟鐘舵�-瀹屾垚閮ㄥ垎 + /// </summary> + public static readonly string TaskState_CompletePart = "瀹屾垚閮ㄥ垎"; #endregion #region 浠诲姟鎵ц鍙嶉缁撴灉 /// <summary> diff --git a/HH.WMS.Entitys/Dto/ConnectBitDto.cs b/HH.WMS.Entitys/Dto/ConnectBitDto.cs index 17408ee..964e439 100644 --- a/HH.WMS.Entitys/Dto/ConnectBitDto.cs +++ b/HH.WMS.Entitys/Dto/ConnectBitDto.cs @@ -10,5 +10,7 @@ { public string tunnel { get; set; } public string bit { get; set; } + public string readybit { get; set; } + public string tasktype { get; set; } } } diff --git a/HH.WMS.WebApi/Config.json b/HH.WMS.WebApi/Config.json index 078671d..105abe0 100644 --- a/HH.WMS.WebApi/Config.json +++ b/HH.WMS.WebApi/Config.json @@ -248,6 +248,7 @@ }, { "bit": "鎺ラ┏浣嶈揣浣�, + "readybit": "鍑嗗鐐硅揣浣�, "tasktype": "绌烘墭鍑哄簱" }, { diff --git a/HH.WMS.WebApi/HH.WMS.WebApi.csproj b/HH.WMS.WebApi/HH.WMS.WebApi.csproj index 08a6a63..ac09c0f 100644 --- a/HH.WMS.WebApi/HH.WMS.WebApi.csproj +++ b/HH.WMS.WebApi/HH.WMS.WebApi.csproj @@ -446,6 +446,7 @@ <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> </FlavorProperties> + <UserProperties config_1json__JsonSchema="" /> </VisualStudio> </ProjectExtensions> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. -- Gitblit v1.9.1