From 23ee356c6f260ecc1a48bbb8bd60932b979e4698 Mon Sep 17 00:00:00 2001 From: zhao Date: 星期五, 02 七月 2021 16:22:19 +0800 Subject: [PATCH] 成型机带束出入库 --- HH.WMS.BLL/Pda/ZCBLL.cs | 2326 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 2,129 insertions(+), 197 deletions(-) diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs index 2fcedf5..16613d1 100644 --- a/HH.WMS.BLL/Pda/ZCBLL.cs +++ b/HH.WMS.BLL/Pda/ZCBLL.cs @@ -783,230 +783,267 @@ { 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 { - //鏈墽琛岃〃绀虹涓�釜浠诲姟 - if (task.CN_S_STATE == Constants.TaskState_NoExecuted) + var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr); + + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + #region 鍗婃垚鍝�+ + #region 绌烘墭鍑哄簱 + + if (task.CN_S_EXT3 == TaskSectionConstants.BCP_KTCK) { - //绔嬪簱璐т綅 - string lkBit = string.Empty; - //鏍规嵁浠诲姟绫诲瀷鍒ゆ柇绔嬪簱璐т綅 - if (task.CN_S_TASK_TYPE == Constants.Out) + // 绌烘墭鍑哄簱鐨勬帴椹充綅 + var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTCK); + if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) { - lkBit = task.CN_S_START_BIT; + // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�+ or = ExecBCP_KTCK_Add(task, connectBit); } - else if (task.CN_S_TASK_TYPE == Constants.In) + else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_1) { - lkBit = task.CN_S_END_BIT; + // 鎵ц绗竴鏉″瓙浠诲姟 + or = ExecBCP_KTCK_Sub1(task, connectBit); } - else + else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_2) { - throw new Exception("鑷浠诲姟浠诲姟绫诲瀷涓嶆纭�); + // 鎵ц绗簩鏉′换鍔�+ or = ExecBCP_KTCK_Sub2(task, connectBit); } - - 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 postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_TransTaskNo + "\",\"orgId\":\"\",\"orgFlag\":\"0\"}"; - //string taskNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData); - //if (string.IsNullOrEmpty(taskNo)) - // throw new Exception("浠诲姟鍙风敓鎴愬け璐ワ紝璇锋鏌ュ湪AUTOBOM涓槸鍚﹂厤缃浆杩愪换鍔″彿鐢熸垚瑙勫垯锛�); - 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_C_IS_AUTO = transport.CN_C_IS_AUTO, - CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_LG : Constants.TaskFlag_AGV, - //CN_C_START_IS_CONTROL_QTY = transport.CN_C_START_IS_CONTROL_QTY, - //CN_C_END_IS_CONTROL_QTY = transport.CN_C_END_IS_CONTROL_QTY, - //CN_S_START_CONTROL_INV = transport.CN_S_START_CONTROL_INV, - //CN_S_END_CONTROL_INV = transport.CN_S_END_CONTROL_INV, - //CN_S_START_AREA_TYPE = transport.CN_S_START_AREA_TYPE, - //CN_S_END_AREA_TYPE = transport.CN_S_END_AREA_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_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//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔�+ + #endregion + + #region 婊℃墭鍏ュ簱 + + else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK) { - //string postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_TransTaskNo + "\",\"orgId\":\"\",\"orgFlag\":\"0\"}"; - //string taskNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData); - //if (string.IsNullOrEmpty(taskNo)) - // throw new Exception("浠诲姟鍙风敓鎴愬け璐ワ紝璇锋鏌ュ湪AUTOBOM涓槸鍚﹂厤缃浆杩愪换鍔″彿鐢熸垚瑙勫垯锛�); - string taskNo = task.CN_S_TASK_NO + "_2"; - var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + // 婊℃墭鍏ュ簱鐨勬帴椹充綅 + var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK); + if (task.CN_S_EXT2 == TaskFlagConstants.ROOT) { - 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() + // 鍒涘缓绗竴鏉″瓙浠诲姟 + or = ExecBCP_MTRK_AddSub1(task, connectBit); + } + else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_1) { - 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_C_IS_AUTO = transport.CN_C_IS_AUTO, - CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_AGV : Constants.TaskFlag_LG, - //CN_C_START_IS_CONTROL_QTY = transport.CN_C_START_IS_CONTROL_QTY, - //CN_C_END_IS_CONTROL_QTY = transport.CN_C_END_IS_CONTROL_QTY, - //CN_S_START_CONTROL_INV = transport.CN_S_START_CONTROL_INV, - //CN_S_END_CONTROL_INV = transport.CN_S_END_CONTROL_INV, - //CN_S_START_AREA_TYPE = transport.CN_S_START_AREA_TYPE, - //CN_S_END_AREA_TYPE = transport.CN_S_END_AREA_TYPE, - }; - - var or = UseTransaction(trans => + // 鎵ц绗竴鏉″瓙浠诲姟 + or = ExecBCP_MTRK_Sub1(task, connectBit); + } + else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_2) { - //澧炲姞瀛愪换鍔�- 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_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); + // 鎵ц绗簩鏉″瓙浠诲姟 + or = ExecBCP_MTRK_Sub2(task, connectBit); + } } - ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛")); + 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 } catch (Exception ex) { @@ -1043,6 +1080,29 @@ // 浠巑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() { @@ -1063,6 +1123,9 @@ 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 => { @@ -1088,5 +1151,1874 @@ Log.DomainInfo("ExecTransferTask", JsonConvert.SerializeObject(ors)); } } + + #region 璐т綅鐘舵� + + // 鎺ラ┏浣嶉攣瀹氱姸鎬侊細棰勫叆搴撻攣瀹氥�棰勫嚭搴撻攣瀹�+ // 鎺ラ┏浣嶇┖闂茬姸鎬侊細姝e父 + // 鍑嗗鐐圭姸鎬佸悓鎺ラ┏浣�+ // 绔嬪簱閿佸畾鐘舵�锛� 棰勫叆搴撻攣瀹氥�棰勫嚭搴撻攣瀹�+ // 绔嬪簱绌洪棽鐘舵�锛� 绌�鍏ュ簱鍓�銆佹弧(鍑哄簱鍓� + + // 鍒涘缓浠诲姟鍓嶃�鎵ц浠诲姟鍓� 妫�煡璐т綅鐘舵� + // 瀹屾垚浠诲姟鍚� 娓呴櫎璐т綅鐘舵� + // 鎵ц澶辫触鍚� 濡備綍澶勭悊? + + #endregion + + #region 鍗婃垚鍝�+ + #region 绌烘墭鍑哄簱 + + /// <summary> + /// 鍒涘缓绌烘墭鍑哄簱骞惰瀛愪换鍔�+ /// </summary> + public OperateResult ExecBCP_KTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + // 绌烘墭鍑哄簱鍜屾弧鎵樺叆搴撴槸鍙嶅悜鐨�+ // 鎺ラ┏浣�+ 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_1, + CN_S_EXT3 = "" + }; + // 鍑嗗鐐�>绾胯竟 + 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecBCP_KTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绔嬪簱 棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans); + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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_KTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣嶇殑鍑嗗鐐硅揣浣�+ var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = bit.readybit + }); + if (readyBit == null) + throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit); + if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #region 婊℃墭鍏ュ簱 + + /// <summary> + /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔′竴 + /// </summary> + public OperateResult ExecBCP_MTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_1, + CN_S_EXT3 = "" + }; + + 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) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绾胯竟璐т綅涓嶇鎺�+ + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.bit }, trans); + // 绔嬪簱棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = task2.CN_S_END_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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #endregion + + #region 鎴愬瀷鏈�+ + #region 鍗婃垚鍝佸洖搴�+ + /// <summary> + /// 鍒涘缓 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴 + /// </summary> + public OperateResult ExecCXJ_BCPHK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_1, + CN_S_EXT3 = "" + }; + + 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 ExecCXJ_BCPHK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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 = 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecCXJ_BCPHK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绾胯竟璐т綅涓嶇鎺�+ + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 ExecCXJ_BCPHK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.bit }, trans); + // 绔嬪簱棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = task2.CN_S_END_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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟浜屽け璐ワ紝浠诲姟缂栧彿=" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #region 婊℃墭鍑哄簱 + + /// <summary> + /// 鍒涘缓婊℃墭鍑哄簱骞惰瀛愪换鍔�+ /// </summary> + public OperateResult ExecCXJ_MTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎺ラ┏浣�+ 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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_1, + CN_S_EXT3 = "" + }; + // 鍑嗗鐐�>绾胯竟 + 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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecCXJ_MTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绔嬪簱 棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans); + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 ExecCXJ_MTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣嶇殑鍑嗗鐐硅揣浣�+ var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = bit.readybit + }); + if (readyBit == null) + throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit); + if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #region 鍥炴墭鍥炲簱-绌烘墭鍏ュ簱 + + /// <summary> + /// 鍒涘缓 鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱 瀛愪换鍔′竴 + /// </summary> + public OperateResult ExecCXJ_KTHK_KTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_1, + CN_S_EXT3 = "" + }; + + 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 ExecCXJ_KTHK_KTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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 = 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecCXJ_KTHK_KTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绾胯竟璐т綅涓嶇鎺�+ + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 ExecCXJ_KTHK_KTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.bit }, trans); + // 绔嬪簱棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = task2.CN_S_END_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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #endregion + + #region 甯︽潫 + + #region 鍗婃垚鍝佸強绌烘墭鍥炲簱 + + /// <summary> + /// 鍒涘缓 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱 瀛愪换鍔′竴 + /// </summary> + public OperateResult ExecDS_BCPKTHK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.DS_BCPKTHK_SUB_1, + CN_S_EXT3 = "" + }; + + 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 ExecDS_BCPKTHK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + 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 + "_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 = 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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.DS_BCPKTHK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecDS_BCPKTHK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绾胯竟璐т綅涓嶇鎺�+ + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 ExecDS_BCPKTHK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.bit }, trans); + // 绔嬪簱棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = task2.CN_S_END_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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #endregion + + #region 婊℃墭鍑哄簱 + + /// <summary> + /// 鍒涘缓婊℃墭鍑哄簱骞惰瀛愪换鍔�+ /// </summary> + public OperateResult ExecDS_MTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit) + { + OperateResult re = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎺ラ┏浣�+ 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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.DS_MTCK_SUB_1, + CN_S_EXT3 = "" + }; + // 鍑嗗鐐�>绾胯竟 + 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_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_TASK_NO, + CN_S_EXT2 = TaskFlagConstants.DS_MTCK_SUB_2, + CN_S_EXT3 = "" + }; + + 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 ExecDS_MTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣�+ 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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 绔嬪簱 棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans); + // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_InLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1)); + or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1); + Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + 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 ExecDS_MTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit) + { + OperateResult or = OperateResult.Error("鏈煡閿欒"); + + try + { + // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+ // 鎺ラ┏浣嶇殑鍑嗗鐐硅揣浣�+ var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new + { + CN_S_LOCATION_CODE = bit.readybit + }); + if (readyBit == null) + throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit); + if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal) + throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�); + + UseTransaction(trans => + { + // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+ CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new + { + CN_S_LOCATION_STATE = Constants.Location_State_OutLock + }, new { CN_S_LOCATION_CODE = bit.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浠诲姟 + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2)); + or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2); + Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or)); + }); + } + catch (Exception ex) + { + OperateResult.Error("鎵ц鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message); + } + return or; + } + + #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"; + } + + /// <summary> + /// 浠诲姟闃舵甯搁噺 + /// </summary> + public class TaskSectionConstants + { + /// <summary> + /// 浠诲姟瀹屾垚 + /// </summary> + public static string COMPLETE = "浠诲姟瀹屾垚"; + + #region 鍗婃垚鍝�+ + /// <summary> + /// 鍗婃垚鍝�绌烘墭鍑哄簱 + /// </summary> + public static string BCP_KTCK = "绌烘墭鍑哄簱"; + /// <summary> + /// 鍗婃垚鍝�婊℃墭鍏ュ簱 + /// </summary> + public static string BCP_MTRK = "鍗婃垚鍝�婊℃墭鍏ュ簱"; + /// <summary> + /// 鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵 + /// </summary> + public static string BCP_MTRK_SECOND = "鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵"; + + #endregion + + #region 鎴愬瀷鏈�+ + /// <summary> + /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�+ /// </summary> + public static string CXJ_BCPHK = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�; + + /// <summary> + /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵 + /// </summary> + public static string CXJ_BCPHK_SECOND = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵"; + /// <summary> + /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵 + /// </summary> + public static string CXJ_KTHK_RECORD = "鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵"; + /// <summary> + /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵 + /// </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 + + #region 甯︽潫 + + /// <summary> + /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱 + /// </summary> + public static string DS_BCPKTHK = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱"; + /// <summary> + /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵 + /// </summary> + public static string DS_BCPKTHK_SECOND = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵"; + /// <summary> + /// 甯︽潫-婊℃墭鍑哄簱 + /// </summary> + public static string DS_MTCK = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱"; + + #endregion + } + + /// <summary> + /// 浠诲姟鏍囪瘑甯搁噺 + /// </summary> + public class TaskFlagConstants + { + /// <summary> + /// 涓讳换鍔�+ /// </summary> + public static string ROOT = "涓讳换鍔�; + + #region 鍗婃垚鍝�+ + /// <summary> + /// 鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′竴 + /// </summary> + public static string BCP_KTCK_SUB_1 = "鍗婃垚鍝�绌烘墭鍑哄簱-瀛愪换鍔′竴"; + /// <summary> + /// 鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′簩 + /// </summary> + public static string BCP_KTCK_SUB_2 = "鍗婃垚鍝�绌烘墭鍑哄簱-瀛愪换鍔′簩"; + /// <summary> + /// 鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′竴 + /// </summary> + public static string BCP_MTRK_SUB_1 = "鍗婃垚鍝�婊℃墭鍏ュ簱-瀛愪换鍔′竴"; + /// <summary> + /// 鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′簩 + /// </summary> + public static string BCP_MTRK_SUB_2 = "鍗婃垚鍝�婊℃墭鍏ュ簱-瀛愪换鍔′簩"; + + #endregion + + #region 鎴愬瀷鏈�+ + /// <summary> + /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴 + /// </summary> + public static string CXJ_BCPHK_SUB_1 = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′簩 + /// </summary> + public static string CXJ_BCPHK_SUB_2 = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍浠诲姟 + /// </summary> + public static string CXJ_KTHK_RECORD = "鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍浠诲姟"; + /// <summary> + /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′竴 + /// </summary> + public static string CXJ_KTHK_KTRK_SUB_1 = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′簩 + /// </summary> + public static string CXJ_KTHK_KTRK_SUB_2 = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′簩"; + /// <summary> + /// 鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′竴 + /// </summary> + public static string CXJ_MTCK_SUB_1 = "鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′簩 + /// </summary> + public static string CXJ_MTCK_SUB_2 = "鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′簩"; + + #endregion + + #region 甯︽潫 + + /// <summary> + /// 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′竴 + /// </summary> + public static string DS_BCPKTHK_SUB_1 = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′簩 + /// </summary> + public static string DS_BCPKTHK_SUB_2 = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′簩"; + /// <summary> + /// 鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′竴 + /// </summary> + public static string DS_MTCK_SUB_1 = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′竴"; + /// <summary> + /// 鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′簩 + /// </summary> + public static string DS_MTCK_SUB_2 = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′簩"; + + #endregion } } -- Gitblit v1.9.1