From c0e20b1b0f1298cdc0af0037d60e74d51e364501 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 17 9月 2025 14:38:06 +0800 Subject: [PATCH] //去掉这个删除验证 【Editby shaocx,2025-09-17】 --- CC/iWareCC_ASRS/FormCC.cs | 386 ++++++++++++++++++++++-------------------------------- 1 files changed, 156 insertions(+), 230 deletions(-) diff --git a/CC/iWareCC_ASRS/FormCC.cs b/CC/iWareCC_ASRS/FormCC.cs index 0960ab9..1868a4b 100644 --- a/CC/iWareCC_ASRS/FormCC.cs +++ b/CC/iWareCC_ASRS/FormCC.cs @@ -20,21 +20,29 @@ using System; using System.Collections.Generic; using System.Data; +using System.Data.Entity.Core.Metadata.Edm; +using System.Diagnostics; using System.Drawing; using System.Linq; using System.Linq.Expressions; using System.Net; using System.ServiceModel; using System.Threading; +using System.Threading.Tasks; using System.Windows.Forms; using XiGang.Core.Model; using XiGang.Core.Model.ViewModels; +using static WZ.Useful.Commons.NativeMethods; namespace iWareCC { public partial class FormCC : Form { + /// <summary> + /// 鍏ㄥ眬-269浣嶇疆鏈�鏂版壂鎻忕殑鏉夸欢鏁版嵁锛堟牸寮� 鍖呭彿|Upi|鏃堕棿鐐癸級 + /// </summary> + public static string Globle_269_LastPackageUpi = ""; /// <summary> /// 鍏ㄥ眬-閰嶇疆鎶ヨ淇℃伅鍒楄〃 @@ -206,12 +214,13 @@ - new Thread(DataProcess_RobotBuffer_ModeChange.Handler).Start(); + //new Thread(DataProcess_RobotBuffer_ModeChange.Handler).Start(); new Thread(DataProcess_RobotBuffer_IssueOutboundTask.Handler).Start(); - new Thread(DataProcess_RobotBuffer_AutoQiTaoOutbound.Handler).Start(); + //new Thread(DataProcess_RobotBuffer_AutoQiTaoOutbound.Handler).Start(); + new Thread(DataProcess_RobotBuffer_PesonOutbound.Handler).Start(); new Thread(DataProcess_RobotBuffer_FinishTaskForOutbound.Handler).Start(); @@ -242,7 +251,7 @@ new Thread(PushPackageCodeToMes.Handler).Start(); new Thread(PushPaperCutToMes.Handler).Start(); - new Thread(DataProcess_ValidateQiTao.Handler).Start(); + //new Thread(DataProcess_ValidateQiTao.Handler).Start(); //*/ #endregion @@ -256,8 +265,7 @@ } private void FormCC_Load(object sender, EventArgs e) { - dateTimePicker_Start.Value = DateTime.Now; - dateTimePicker_End.Value = DateTime.Now; + /* @@ -272,22 +280,25 @@ #region 瀵瑰鍙戝竷WCF褰㈠紡鏁版嵁璁块棶鏈嶅姟 - try + Task.Run(() => { - #region 瀵瑰鍙戝竷WCF褰㈠紡鏁版嵁璁块棶鏈嶅姟 - var lineServiceHost = new ServiceHost(typeof(CCWcfService)); - lineServiceHost.Open(); - lbl_WCFMsg.Text = "鍙戝竷WCF鎴愬姛," + lineServiceHost.BaseAddresses[0].AbsoluteUri; - lbl_WCFMsg.ForeColor = Color.Green; - #endregion + try + { + #region 瀵瑰鍙戝竷WCF褰㈠紡鏁版嵁璁块棶鏈嶅姟 + var lineServiceHost = new ServiceHost(typeof(CCWcfService)); + lineServiceHost.Open(); + lbl_WCFMsg.Text = "鍙戝竷WCF鎴愬姛," + lineServiceHost.BaseAddresses[0].AbsoluteUri; + lbl_WCFMsg.ForeColor = Color.Green; + #endregion - } - catch (Exception ex) - { - Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.CCWCFService, "鍙戝竷WCF澶辫触", ex); - lbl_WCFMsg.Text = "鍙戝竷WCF澶辫触锛�" + ex.Message; - lbl_WCFMsg.ForeColor = Color.Red; - } + } + catch (Exception ex) + { + Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.CCWCFService, "鍙戝竷WCF澶辫触", ex); + lbl_WCFMsg.Text = "鍙戝竷WCF澶辫触锛�" + ex.Message; + lbl_WCFMsg.ForeColor = Color.Red; + } + }); #endregion @@ -612,15 +623,21 @@ { while (true) { - Thread.Sleep(2000);//1绉掗挓璇诲彇涓�娆� + Thread.Sleep(3000);//1绉掗挓璇诲彇涓�娆� try { if (stationServiceClient == null) { continue; } - /* + + Stopwatch main = new Stopwatch(); + main.Start(); + iWareCC.StationService.DeviceWarningInfo[] waringList = await stationServiceClient.GetWaringInfoListAsync((int)EDevice.Station, configDeviceWarningList.wmsConfigDeviceWarnings.ToArray()); + + main.Stop(); + var milliseconds = main.ElapsedMilliseconds; //-- 鎿嶄綔鏃堕棿锛堟绉掞級 //鏄剧ず鎶ヨ淇℃伅 List<String> warningCodeList = new List<string>(); @@ -672,14 +689,17 @@ { if (SystemValue.isAllowRuning_DeleteData && SystemValue.isStartedModel) { - ClearDataHandler.Delete_Base_SysExceptionInfo(7); - ClearDataHandler.Delete_Task_RequestLog(7); - ClearDataHandler.Delete_Task_Part(10); - ClearDataHandler.Delete_Device_Warning(30); - ClearDataHandler.Delete_HttpRequestRecord(14); + ClearDataHandler.Delete_wms_record_print(10); + ClearDataHandler.Delete_mes_push_papercut(30); + //鍘绘帀杩欎釜鍒犻櫎楠岃瘉 銆怑ditby shaocx,2025-09-17銆� + //ClearDataHandler.Delete_mes_push_packagecode(10); + ClearDataHandler.Delete_wms_rbline_task(30); - ClearDataHandler.Delete_MES_BTJReceiveReq(30); - ClearDataHandler.Delete_MES_OnLineReq(30); + //ClearDataHandler.Delete_Device_Warning(30); + //ClearDataHandler.Delete_HttpRequestRecord(14); + + //ClearDataHandler.Delete_MES_BTJReceiveReq(30); + //ClearDataHandler.Delete_MES_OnLineReq(30); LogTextHelper.BatchDeleteLog(); @@ -1236,224 +1256,34 @@ - private void button5_Click(object sender, EventArgs e) - { - if (SystemValue.isStartedModel) - { - WZ.Useful.Commons.MessageUtil.ShowError("鎵嬪姩搴撲綅缁存姢锛岄渶瑕佸皢妯″紡鍏抽棴锛�"); - return; - } - //鎵嬪姩搴撲綅缁存姢 - SrmStockForm frm = new SrmStockForm(); - frm.ShowDialog(); - } - private void btn_TongJi_Click(object sender, EventArgs e) - { - //缁熻 - - int store_FDJ = 0;//鐜版湁鍙戝姩鏈烘暟 - int store_EmptySalver = 0;//绌烘墭鐩樻暟閲� - int store_EmptySalver_TS = 0;//绌烘墭鐩樻墭鏁� - - int count_In_FDJ = 0;//鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏戝彂鍔ㄦ満 - int count_In_EmptySalver = 0;//鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏� 绌烘墭鐩� - int count_In_EmptySalver_TS = 0;//鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏� 绌烘墭鐩樻墭鏁� - - int count_Out_FDJ = 0;//鏌ヨ鏌愬ぉ鍑哄簱浜嗗灏戝彂鍔ㄦ満 - int count_Out_EmptySalver = 0;//鏌ヨ鏌愬ぉ鍑哄簱浜嗗灏� 绌烘墭鐩� - int count_Out_EmptySalver_TS = 0;//鏌ヨ鏌愬ぉ鍑哄簱浜嗗灏� 绌烘墭鐩樻墭鏁� - - int count_ZY_EmptySalver = 0;//鏌ヨ鏌愬ぉ杞繍浜嗗灏� 绌烘墭鐩� - int count_ZY_EmptySalver_TS = 0;//鏌ヨ鏌愬ぉ杞繍浜嗗灏� 绌烘墭鐩樻墭鏁� - - //鏌愭鏃堕棿鐨勭粺璁� - var str_start = this.dateTimePicker_Start.Value.ToString("yyyy-MM-dd" + " " + "00:00:00"); - var str_end = this.dateTimePicker_End.Value.ToString("yyyy-MM-dd" + " " + "23:59:59"); - var start = Convert.ToDateTime(str_start); - var end = Convert.ToDateTime(str_end); - - int allPlacesCount = 0; - using (DbModel edm = new DbModel()) - { - - var queryMaterialType_涓�鑸墿鏂� = (int)MaterialTypeEnum.涓�鑸墿鏂�; - var queryMaterialType_鎵樼洏 = (int)MaterialTypeEnum.鎵樼洏; - var queryInOutFlag_In = (int)MainInOutFlagEnum.鍏ュ簱; - var queryInOutFlag_Out = (int)MainInOutFlagEnum.鍑哄簱; - var queryInOutFlag_ZY = (int)MainInOutFlagEnum.杞繍; - - var allPlaces = edm.Base_Station.Where(x => x.IsSrmStation == true).ToList(); - allPlaces = StationHandler.FindCommonFilter(allPlaces); - allPlacesCount = allPlaces.Count; - - store_FDJ = edm.V_Store.Where(x => x.MaterialType == queryMaterialType_涓�鑸墿鏂�).Count(); - - - store_EmptySalver_TS = edm.V_Store.Where(x => x.MaterialType == queryMaterialType_鎵樼洏).Count(); - store_EmptySalver = store_EmptySalver_TS == 0 ? 0 : edm.V_Store.Where(x => x.MaterialType == queryMaterialType_鎵樼洏).Sum(x => (int)x.Qty); - //鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏戝彂鍔ㄦ満 - var taskState = (int)MainTaskStatusEnum.宸插畬鎴�; - count_In_FDJ = edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_涓�鑸墿鏂� && x.InOutFlag == queryInOutFlag_In && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Count(); - - //鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏戞墭鐩� - count_In_EmptySalver_TS = edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_In && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Count(); - count_In_EmptySalver = count_In_EmptySalver_TS == 0 ? 0 : edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_In && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Sum(x => (int)x.Qty); - - //鏌ヨ鏌愬ぉ鍑哄簱浜嗗灏戝彂鍔ㄦ満 - count_Out_FDJ = edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_涓�鑸墿鏂� && x.InOutFlag == queryInOutFlag_Out && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Count(); - - //鏌ヨ鏌愬ぉ鍏ュ簱浜嗗灏戞墭鐩� - count_Out_EmptySalver_TS = edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_Out && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Count(); - count_Out_EmptySalver = count_Out_EmptySalver_TS == 0 ? 0 : edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_Out && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end)).Sum(x => (int)x.Qty); - - //鏌ヨ鏌愬ぉ杞繍浜嗗灏戞墭鐩橈紙娉ㄦ剰锛氬彧鏌ヨ鍘�1014浣嶇疆鐨勶級 - count_ZY_EmptySalver_TS = edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_ZY && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end) && x.RealToPlace == "1014").Count(); - count_ZY_EmptySalver = count_ZY_EmptySalver_TS == 0 ? 0 : edm.Task_Main.Where(x => x.MaterialType == queryMaterialType_鎵樼洏 && x.InOutFlag == queryInOutFlag_ZY && x.TaskState == taskState && (x.FinishTime >= start && x.FinishTime <= end) && x.RealToPlace == "1014").Sum(x => (int)x.Qty); - - } - - //鏄剧ず - //var aa = "\r\n"; - var str = ""; - str += "鏃堕棿鑼冨洿: " + str_start + "鑷�" + str_end + " \r\n"; - str += "==================銆愬簱瀛樸��========================= \r\n"; - str += "鐜版湁鍙戝姩鏈烘暟: " + store_FDJ + " \r\n"; - str += "鐜版湁绌烘墭鐩樻暟: " + store_EmptySalver + " \r\n"; - str += "鐜版湁绌烘墭鐩樻墭鏁�: " + store_EmptySalver_TS + " \r\n"; - str += "鎬诲簱浣�" + allPlacesCount + ",鏈夊彂鍔ㄦ満鎴栨墭鐩樺簱浣�" + (store_FDJ + store_EmptySalver_TS) + ",搴撳瓨鍗犳瘮: " + CSharpHelper.ExecPercent((store_FDJ + store_EmptySalver_TS), allPlacesCount) + " \r\n"; - str += "\r\n"; - - str += "==================銆愬叆搴撱��========================= \r\n"; - str += "鍏ュ簱鍙戝姩鏈烘暟: " + count_In_FDJ + " \r\n"; - str += "鍏ュ簱绌烘墭鐩樻暟: " + count_In_EmptySalver + " \r\n"; - str += "鍏ュ簱绌烘墭鐩樻墭鏁�: " + count_In_EmptySalver_TS + " \r\n"; - str += "\r\n"; - - str += "==================銆愬嚭搴撱��========================= \r\n"; - str += "鍑哄簱鍙戝姩鏈烘暟: " + count_Out_FDJ + " \r\n"; - str += "鍑哄簱绌烘墭鐩樻暟: " + count_Out_EmptySalver + " \r\n"; - str += "鍑哄簱绌烘墭鐩樻墭鏁�: " + count_Out_EmptySalver_TS + " \r\n"; - str += "\r\n"; - - str += "==================銆愯浆杩愭墭鐩樸��========================= \r\n"; - str += "杞繍绌烘墭鐩樻暟: " + count_ZY_EmptySalver + " \r\n"; - str += "杞繍绌烘墭鐩樻墭鏁�: " + count_ZY_EmptySalver_TS + " \r\n"; - str += "\r\n"; - - this.tb_TongJi.Text = str; - } - - private void checkBox_NowDay_CheckedChanged(object sender, EventArgs e) - { - if (this.checkBox_NowDay.Checked) - { - dateTimePicker_Start.Value = DateTime.Now; - dateTimePicker_End.Value = DateTime.Now; - } - } - - private void rBOnlyIn_CheckedChanged(object sender, EventArgs e) - { - SetModelCheckBoxToSystemValue(); - } - - private void btnSMQZYZTG1_Click(object sender, EventArgs e) - { - DobtnSMQZYZTG(EDevice.涓�鍙峰爢鍨涙満); - } - - private void DobtnSMQZYZTG(EDevice device) - { - MessageBoxButtons messButton = MessageBoxButtons.OKCancel; - DialogResult dr = MessageBox.Show("娉ㄦ剰锛氬叆搴撳彛鎵爜寮哄埗楠岃瘉閫氳繃鍔熻兘锛屼粎閫傜敤浜庢壂鐮佸櫒娌℃湁鎵埌鐮侊紝浣嗘槸瀹為檯鎵樼洏鐮佸拰鍫嗗灈鏈鸿鎵ц鐨勪换鍔℃墭鐩樼爜涓�鑷寸殑鎯呭喌锛佸鏋滃爢鍨涙満瑕佹墽琛岀殑浠诲姟璺熷疄闄呮墭鐩樼爜涓嶇锛岃涓嶈鐐瑰嚮璇ユ寜閽紝鍙婃椂鑱旂郴绠$悊鍛樿繃鏉ュ鐞嗐�傛偍纭畾瑕佹搷浣滃悧?", "纭", messButton); - if (dr == DialogResult.OK)//濡傛灉鐐瑰嚮鈥滅‘瀹氣�濇寜閽� - { - var stationCode = MyExtendHelper.GetRgvStationCodeBySrm(device); - var srm = FormCC.srmViewDict[(int)device]; - //鍙湁褰撳爢鍨涙満鏈変换鍔℃墽琛屾椂锛屽苟涓旀槸鍏ュ簱浠诲姟鐨勬椂鍊欐墠鍒ゆ柇 - var realSrmSourcePlace = (int)device + "-" + srm.SrmSourcePlace; - if (srm.R_TaskNo > 0 && (srm.R_State == (int)ESrmState.鍙栬揣涓� || srm.R_State == (int)ESrmState.鍙栬揣瀹氫綅涓�) - && SysGloble.Dict_SpecialPlace_IN.ContainsKey(realSrmSourcePlace)) - { - var result = MyExtendHelper.WriteScanValidateACK(false, "鍏ュ簱鍙f壂鐮佸己鍒堕獙璇侀�氳繃", stationCode, srm.R_TaskNo, true, "", ""); - if (result) - { - MyExtendHelper.SetSrm_IN_SMQZYZTG(device, true); - MessageBox.Show("鍏ュ簱鍙f壂鐮佸己鍒堕獙璇侀�氳繃 鎴愬姛锛�"); - } - else - { - MessageBox.Show("鍏ュ簱鍙f壂鐮佸己鍒堕獙璇侀�氳繃 澶辫触锛�"); - } - } - else - { - MessageBox.Show(device.ToString() + "浠诲姟鍙蜂笉鏄ぇ浜�0锛屾垨鑰� 鐘舵�佷笉鏄� '鍙栬揣涓�'鎴�'鍙栬揣瀹氫綅涓�'锛屼笉鍏佽鎿嶄綔"); - } - } - else//濡傛灉鐐瑰嚮鈥滃彇娑堚�濇寜閽� - { - - } - } - private void button22_Click(object sender, EventArgs e) - { - var cargNo = this.tb_wlm.Text.Trim(); - var ret = WmsRequestHelper.test_getEngineInfo(cargNo); - //杞崲鍚� - MesRetModel2<MesRetProductModel> retModel = JsonConvert.DeserializeObject<MesRetModel2<MesRetProductModel>>(ret); - this.tb_TongJi.Text = "MES杩斿洖锛�" + ret + "\r\n" + - "杞崲鍚�:" + "\r\n" + - JsonConvert.SerializeObject(retModel) - ; - } - - private void button23_Click(object sender, EventArgs e) - { - var cargNo = this.tb_wlm.Text.Trim(); - var ret = WmsRequestHelper.test_btjReceive(cargNo); - - - //杞崲鍚� - MessageModel<string> retModel = JsonConvert.DeserializeObject<MessageModel<string>>(ret); - - this.tb_TongJi.Text = "WMS杩斿洖锛�" + ret + "\r\n" + - "杞崲鍚�:" + "\r\n" + - JsonConvert.SerializeObject(retModel); - } - - private void lbl_Alert_Place1014ClearStoreTask_Click(object sender, EventArgs e) - { - - } private void button24_Click(object sender, EventArgs e) { - //寮哄埗璇ュ寘鍙峰嚭搴� - var packageCode = this.tb_PackageCode.Text.Trim(); + ////寮哄埗璇ュ寘鍙峰嚭搴� + //var packageCode = this.tb_PackageCode.Text.Trim(); - var alertMsg = ""; - CC_DataProcess_RobotBuffer_ForceOutbound.Handler(packageCode, ref alertMsg); - if (!string.IsNullOrEmpty(alertMsg)) - { - MessageBox.Show("閿欒:" + alertMsg); - } - else - { - MessageBox.Show("宸插鐞�"); - } + //var alertMsg = ""; + //CC_DataProcess_RobotBuffer_ForceOutbound.Handler(packageCode, ref alertMsg); + //if (!string.IsNullOrEmpty(alertMsg)) + //{ + // MessageBox.Show("閿欒:" + alertMsg); + //} + //else + //{ + // MessageBox.Show("宸插鐞�"); + //} } private void button25_Click(object sender, EventArgs e) @@ -1531,5 +1361,101 @@ MessageBox.Show("宸插鐞�"); } } + + private void btn1_Click(object sender, EventArgs e) + { + var taskNo = this.tb_taskNo.Text.Trim(); + + var alertMsg = ""; + using (WmsDBModel wmsDB = new WmsDBModel()) + { + var task = wmsDB.wms_rbline_task.Where(x => x.TaskNo == taskNo && x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟 && x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�).FirstOrDefault(); + if (task == null) + { + MessageBox.Show("娌℃壘鍒颁换鍔�"); + return; + } + + var upiCode = task.Upi; + var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); + if (upiObj == null) + { + MessageBox.Show($"鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 "); + return; + } + //澧炲姞搴撳瓨 + wms_stock_quan qun = new wms_stock_quan() + { + Id = Yitter.IdGenerator.YitIdHelper.NextId(), + Shelf = upiObj.Shelf, + Upi = upiCode, + PlanNo = task.PlanNo, + DetailName = upiObj.DetailName, + OrderId = task.OrderId, + CreateTime = DateTime.Now, + CreateUserName = SysGloble.WCSSystem, + InTime = DateTime.Now, + OperReason = "鍏ュ簱", + PackageCode = task.PackageCode, + Length = task.Length, + Width = task.Width, + Thk = task.Thk, + PlaceCode = task.PlaceCode, + StockStatus = (int)StockStatusEnum.鍦ㄥ簱, + StockStatusName = StockStatusEnum.鍦ㄥ簱.ToString(), + + }; + wmsDB.wms_stock_quan.Add(qun); + + task.TaskStatus = (int)TaskStatusEnum.宸插畬鎴�; + task.FinishedTime = DateTime.Now; + + + var place = StationHandler.GetPlaceByPlaceCode(task.PlaceCode, wmsDB); + place.PlaceStatus = (int)PlaceStatusEnum.姝e父; + + + WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, task.PlaceCode, "缂撳瓨鍏ュ簱瀹屾垚:" + task.PlaceCode); + + wmsDB.SaveChanges(); + } + if (!string.IsNullOrEmpty(alertMsg)) + { + MessageBox.Show("閿欒:" + alertMsg); + } + else + { + MessageBox.Show("宸插鐞�"); + } + } + + private void button2_Click(object sender, EventArgs e) + { + //鏇存柊搴撳瓨琛ㄤ腑鐨勬搴忓瓧娈� + var alertMsg = ""; + using (WmsDBModel db = new WmsDBModel()) + { + //鏌ヨ绔嬩綋搴撲腑鐨剈pi鍒楄〃 + var quanList = db.wms_stock_quan.ToList(); + var query_quanList = quanList.Select(x => x.Upi).ToList(); + var upiList = db.mes_batchOrderUPI_new.Where(x => query_quanList.Contains(x.UPI)).ToList(); + foreach (var item in quanList) + { + var _shelf = upiList.Find(x => x.UPI == item.Upi); + item.Shelf = _shelf.Shelf; + } + + + db.SaveChanges(); + } + if (!string.IsNullOrEmpty(alertMsg)) + { + MessageBox.Show("閿欒:" + alertMsg); + } + else + { + MessageBox.Show("宸插鐞�"); + } + } } } -- Gitblit v1.9.3