From 3a9ec258a8d0d274528fc6cf0be4e01bde09ac74 Mon Sep 17 00:00:00 2001 From: maqiao <625215135@qq.com> Date: Wed, 28 May 2025 14:48:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataAccess/Impl/ChannelListDao.cs | 32 ++++++++++++ MasaBlazorApp3/Pages/BiaoDing.razor | 21 +++++--- MasaBlazorApp3/Pages/BiaoDingDialog.razor | 36 +++++++------ MasaBlazorApp3/Pages/DrawerAdd.razor | 4 ++ MasaBlazorApp3/Pages/DrawerTake.razor | 4 ++ MasaBlazorApp3/Pages/EditPasswordDialog.razor | 10 +++- MasaBlazorApp3/Pages/InitPage.razor | 13 +++-- MasaBlazorApp3/Pages/InvoiceAddDialog.razor | 23 +++++---- MasaBlazorApp3/Pages/InvoiceOutDialog.razor | 21 +++++--- MasaBlazorApp3/Pages/OrderDetailDialog.razor | 48 +++++++++++------- .../Pages/OrderDetailReturnDialog.razor | 12 ++++- .../Pages/RecordReturnDrugDialog.razor | 3 ++ .../Pages/RecordReturnEmptyDialog.razor | 3 ++ MasaBlazorApp3/Pages/SelfTakeDialog.razor | 50 ++++++++++++------- MasaBlazorApp3/Pages/StockCheck.razor | 7 ++- MasaBlazorApp3/Shared/MainLayout.razor | 2 + MasaBlazorApp3/appsettings.json | 4 +- 17 files changed, 207 insertions(+), 86 deletions(-) diff --git a/MasaBlazorApp3/DataAccess/Impl/ChannelListDao.cs b/MasaBlazorApp3/DataAccess/Impl/ChannelListDao.cs index f551e37..66f4fce 100644 --- a/MasaBlazorApp3/DataAccess/Impl/ChannelListDao.cs +++ b/MasaBlazorApp3/DataAccess/Impl/ChannelListDao.cs @@ -409,6 +409,38 @@ namespace MasaBlazorApp3.DataAccess.Impl //var EffDate = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.EffDate : stock.EffDate; var ManuNo = stock.ManuNo; var EffDate = stock.EffDate; + if (!DateTime.TryParse(stock.EffDate, out DateTime dEffDate)) + { + //效期转换出错 + if (stock.ManuNo != null) + { + string[] idate = stock.EffDate.Split('/'); + foreach (string iS in idate) + { + if (!string.IsNullOrEmpty(iS.Replace(" ", "").Trim())) + { + switch (iS.Replace(" ", "").Trim().Length) + { + case 4: + EffDate = iS.Replace(" ", "").Trim(); + break; + case 2: + EffDate += "-" + iS.Replace(" ", "").Trim(); + break; + case 1: + EffDate += "-0" + iS.Replace(" ", "").Trim(); + break; + } + } + } + + + } + } + else + { + EffDate = dEffDate.ToString("yyyy-MM-dd"); + } // 出入库记录 int mid = _connection.InsertWithInt32Identity(new MachineRecord() { diff --git a/MasaBlazorApp3/Pages/BiaoDing.razor b/MasaBlazorApp3/Pages/BiaoDing.razor index b73118b..2186971 100644 --- a/MasaBlazorApp3/Pages/BiaoDing.razor +++ b/MasaBlazorApp3/Pages/BiaoDing.razor @@ -119,12 +119,13 @@ async Task LoadData(LoadDataArgs args) { isLoading = true; - - var result = await channelListDao.GetChannelStockByBiaoDing(drawerNo); - DrawerNos = result.DrawerArray; - channels = result.ChannelStocks; - count = result.ChannelStocks.Count; - + if (drawerNo > 0) + { + var result = await channelListDao.GetChannelStockByBiaoDing(drawerNo); + DrawerNos = result.DrawerArray; + channels = result.ChannelStocks; + count = result.ChannelStocks.Count; + } isLoading = false; } @@ -148,7 +149,8 @@ var b = await PortUtil.OpenDrawerStatus(this.drawerNo); if (b) { - PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); + PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请选择库位开药盒"); this.status = 2; PortUtil.Operate = true; next(); @@ -185,7 +187,7 @@ this.status = 4; //弹出标定对话框 var dialog = await dialogService.OpenAsync( - $"标定", + $"标定库位{currentChannelStock.ColNo}", new Dictionary() { { "channelStockInfo", currentChannelStock } }, new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false }); @@ -233,6 +235,7 @@ { if (this.status == 0) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("请先打开抽屉后再点开药盒"); } else @@ -240,6 +243,8 @@ currentChannelStock = args.Data; if (args.Data.BoardType.ToString().Contains("3")) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("正在打开药盒"); } // else diff --git a/MasaBlazorApp3/Pages/BiaoDingDialog.razor b/MasaBlazorApp3/Pages/BiaoDingDialog.razor index 3f6eb8c..b4a4da7 100644 --- a/MasaBlazorApp3/Pages/BiaoDingDialog.razor +++ b/MasaBlazorApp3/Pages/BiaoDingDialog.razor @@ -3,27 +3,27 @@ @* *@ -
-
- - @if (channelStockInfo.Quantity>0) - { - 库位库存不为零,请取出药品后点击【清空】按钮,清空完成后输入标定数量并放入对应数量药品并根据下一步提示操作 - } - else - { - 正在清零,清零完成后输入标定数量并放入对应数量药品后点击【标定】按钮 - } - - -
+
+
+ + @if (channelStockInfo.Quantity>0) + { + 库位库存不为零,请取出药品后点击【清空】按钮,清空完成后输入标定数量并放入对应数量药品并根据下一步提示操作 + } + else + { + 正在清零,清零完成后输入标定数量并放入对应数量药品后点击【标定】按钮 + } + +
+
@* *@ - + 0) Style="width: 120px" /> @@ -44,6 +44,7 @@ int status = 0; int iClear = 0; int iBiaoDing = 0; + int iClearFinish = 1; protected override async Task OnInitializedAsync() { if(channelStockInfo!=null&&channelStockInfo.Quantity<=0) @@ -56,6 +57,7 @@ //清空按钮 async Task Clear() { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"正在清空,请稍等"); this.status = 1; @@ -94,8 +96,10 @@ { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "清空操作成功", Duration = 3000 } ); + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("清空完成,请放入10个药品,放好后点击标定按钮"); iClear = 0; + iClearFinish = 0; stop(); } else @@ -121,6 +125,7 @@ try { status = 2; + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("正在标定,请稍等"); //提示输入标定数量,发26指令 await PortUtil.SetNumCount(channelStockInfo.DrawerNo, channelStockInfo.ColNo, BDQuantity); @@ -145,6 +150,7 @@ { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "标定成功", Duration = 3000 } ); + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("标定完成,请取出药品"); status = 0; i = 0; diff --git a/MasaBlazorApp3/Pages/DrawerAdd.razor b/MasaBlazorApp3/Pages/DrawerAdd.razor index 7f71945..ddc524c 100644 --- a/MasaBlazorApp3/Pages/DrawerAdd.razor +++ b/MasaBlazorApp3/Pages/DrawerAdd.razor @@ -228,6 +228,7 @@ var b = await PortUtil.OpenDrawerStatus(this.drawerNo); if (b) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); this.status = 2; PortUtil.Operate = true; @@ -253,6 +254,7 @@ // 关闭则改变状态并终止循环 if (b) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"加药完成,请,核对,或,录入,正确的,添加数量"); // 判断是否为称重抽屉 if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo)) @@ -339,6 +341,7 @@ void RestData() { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); this.status = 0; this.BeforeQuantity = new int[9]; this.AfterQuantity = new int[9]; @@ -485,6 +488,7 @@ // } if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("请先点取药按钮打开抽屉"); } currentCol = args.Data.ColNo; diff --git a/MasaBlazorApp3/Pages/DrawerTake.razor b/MasaBlazorApp3/Pages/DrawerTake.razor index 570f50c..90fd4f9 100644 --- a/MasaBlazorApp3/Pages/DrawerTake.razor +++ b/MasaBlazorApp3/Pages/DrawerTake.razor @@ -164,6 +164,7 @@ var b = await PortUtil.OpenDrawerStatus(this.drawerNo); if (b) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药"); PortUtil.Operate = true; this.status = 2; @@ -188,6 +189,7 @@ // 关闭则改变状态并终止循环 if (b) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"取药完成,请核对或录入正确的取出数量"); // 判断是否为称重抽屉 if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo)) @@ -376,6 +378,7 @@ } void RestData() { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); this.status = 0; this.BeforeQuantity = new int[9]; this.AfterQuantity = new int[9]; @@ -443,6 +446,7 @@ // } if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync("请先点取药按钮打开抽屉"); } currentCol = args.Data.ColNo; diff --git a/MasaBlazorApp3/Pages/EditPasswordDialog.razor b/MasaBlazorApp3/Pages/EditPasswordDialog.razor index 10488f5..9289fff 100644 --- a/MasaBlazorApp3/Pages/EditPasswordDialog.razor +++ b/MasaBlazorApp3/Pages/EditPasswordDialog.razor @@ -16,11 +16,17 @@ @if (userI == 1) { - 操作人 @globalStateService.Operator?.NickName 正在修改密码 + + 操作人 @globalStateService.Operator?.NickName +

正在修改密码

+
} else if (userI == 2) { - 复核人 @globalStateService.Reviewer?.NickName 正在修改密码 + + 复核人 @globalStateService.Reviewer?.NickName +

正在修改密码

+
}
diff --git a/MasaBlazorApp3/Pages/InitPage.razor b/MasaBlazorApp3/Pages/InitPage.razor index 4b7bf01..b02ee23 100644 --- a/MasaBlazorApp3/Pages/InitPage.razor +++ b/MasaBlazorApp3/Pages/InitPage.razor @@ -30,7 +30,7 @@ protected override async Task OnInitializedAsync() { - + base.OnInitializedAsync(); } @@ -45,8 +45,15 @@ InvokeAsync(StateHasChanged); try { - await FingerprintUtil.ConnectionMain(); - msg = "指纹模块连接成功"; + bool flag=await FingerprintUtil.ConnectionMain(); + if (flag) + { + msg = "指纹模块连接成功"; + } + else + { + msg = "指纹模块连接失败"; + } InvokeAsync(StateHasChanged); } catch (Exception e) { diff --git a/MasaBlazorApp3/Pages/InvoiceAddDialog.razor b/MasaBlazorApp3/Pages/InvoiceAddDialog.razor index a27cdd2..4b113b7 100644 --- a/MasaBlazorApp3/Pages/InvoiceAddDialog.razor +++ b/MasaBlazorApp3/Pages/InvoiceAddDialog.razor @@ -113,6 +113,7 @@ async Task CancelOpera() { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); status = 0; dialogService.Close(false); } @@ -157,8 +158,8 @@ if (data[index].ChannelStocks[j].BoardType.ToString().Contains("2")) { byte[] quantity = await PortUtil.CheckQuantityByDrawer(data[index].ChannelStocks[j].DrawerNo); - BeforeQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); - logger.Info($"单支抽屉【{drawerNo}】,开抽屉前检测数量【{string.Join(",", BeforeQuantity)}】"); + data[index].BeforeQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); + logger.Info($"单支抽屉【{drawerNo}】,开抽屉前检测数量【{string.Join(",", data[index].BeforeQuantity)}】"); await PortUtil.NoLightOnByCol(drawerNo, data.Select(ot => ot.ChannelStocks.Where(cs => cs.DrawerNo == drawerNo).Select(cs => cs.ColNo)).Cast().ToArray()); } @@ -168,8 +169,8 @@ PortUtil.DrawerNo = data[index].ChannelStocks[j].DrawerNo;// drawerNo; PortUtil.ColNoLst.Add(data[index].ChannelStocks[j].ColNo); - BeforeQuantity[data[index].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[index].ChannelStocks[j].ColNo); - logger.Info($"称重抽屉【{data[index].ChannelStocks[j].DrawerNo}】,开抽屉前检测数量【{string.Join(",", BeforeQuantity)}】"); + data[index].BeforeQuantity[data[index].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[index].ChannelStocks[j].ColNo); + logger.Info($"称重抽屉【{data[index].ChannelStocks[j].DrawerNo}】,开抽屉前检测数量【{string.Join(",", data[index].BeforeQuantity)}】"); await Task.Delay(200); } //药盒-开药盒 @@ -183,6 +184,7 @@ var b = await PortUtil.OpenDrawerStatus(drawerNo); if (b) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); options._data = 1; next(); @@ -213,6 +215,7 @@ } if (index == drawerNos.Count - 1) { + PortUtil.speechSynthesizer.SpeakAsyncCancelAll(); PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认"); this.status = 2; string alertMessage = string.Empty; @@ -236,8 +239,8 @@ AfterQuantity[data[i].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStocks[j].ColNo); logger.Info($"称重抽屉,关抽屉后检测数量【{string.Join(",", AfterQuantity)}】"); - WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1] = BeforeQuantity[data[i].ChannelStocks[j].ColNo - 1] - AfterQuantity[data[i].ChannelStocks[j].ColNo - 1]; - if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]) + WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1] = data[i].BeforeQuantity[data[i].ChannelStocks[j].ColNo - 1] - AfterQuantity[data[i].ChannelStocks[j].ColNo - 1]; + if (data[i].ChannelStocks[j].Quantity != WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]) { //称重自动计数数量与实际要取数量不一致弹出提示,确认后保存数据 alertMessage += $"{data[i].Drug.DrugName}应取数量【{data[i].Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]}】"; @@ -250,8 +253,8 @@ byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo); AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); logger.Info($"单支抽屉,关抽屉后检测数量【{string.Join(",", AfterQuantity)}】"); - WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1] = BeforeQuantity[data[i].ChannelStocks[j].ColNo - 1] - AfterQuantity[data[i].ChannelStocks[j].ColNo - 1]; - if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]) + WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1] = data[i].BeforeQuantity[data[i].ChannelStocks[j].ColNo - 1] - AfterQuantity[data[i].ChannelStocks[j].ColNo - 1]; + if (data[i].ChannelStocks[j].Quantity != WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]) { alertMessage += $"{data[i].Drug.DrugName}应取数量【{data[i].ChannelStocks[j].Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]}】"; } @@ -273,7 +276,9 @@ { RestData(); logger.Info("取消保存"); - cancelFlag = true; + cancelFlag = true; + // 关闭弹窗 + dialogService.Close(false); break; } else diff --git a/MasaBlazorApp3/Pages/InvoiceOutDialog.razor b/MasaBlazorApp3/Pages/InvoiceOutDialog.razor index 7c379cc..910b3ca 100644 --- a/MasaBlazorApp3/Pages/InvoiceOutDialog.razor +++ b/MasaBlazorApp3/Pages/InvoiceOutDialog.razor @@ -18,12 +18,12 @@ + RowRender="@RowRender" + EmptyText="无数据" AllowAlternatingRows="false">