首次提交

This commit is contained in:
maqiao 2025-05-28 14:48:38 +08:00
parent 264a4bd0fc
commit 3a9ec258a8
17 changed files with 207 additions and 86 deletions

View File

@ -409,6 +409,38 @@ namespace MasaBlazorApp3.DataAccess.Impl
//var EffDate = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.EffDate : stock.EffDate; //var EffDate = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.EffDate : stock.EffDate;
var ManuNo = stock.ManuNo; var ManuNo = stock.ManuNo;
var EffDate = stock.EffDate; 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() int mid = _connection.InsertWithInt32Identity(new MachineRecord()
{ {

View File

@ -119,12 +119,13 @@
async Task LoadData(LoadDataArgs args) async Task LoadData(LoadDataArgs args)
{ {
isLoading = true; isLoading = true;
if (drawerNo > 0)
{
var result = await channelListDao.GetChannelStockByBiaoDing(drawerNo); var result = await channelListDao.GetChannelStockByBiaoDing(drawerNo);
DrawerNos = result.DrawerArray; DrawerNos = result.DrawerArray;
channels = result.ChannelStocks; channels = result.ChannelStocks;
count = result.ChannelStocks.Count; count = result.ChannelStocks.Count;
}
isLoading = false; isLoading = false;
} }
@ -148,7 +149,8 @@
var b = await PortUtil.OpenDrawerStatus(this.drawerNo); var b = await PortUtil.OpenDrawerStatus(this.drawerNo);
if (b) if (b)
{ {
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请选择库位开药盒");
this.status = 2; this.status = 2;
PortUtil.Operate = true; PortUtil.Operate = true;
next(); next();
@ -185,7 +187,7 @@
this.status = 4; this.status = 4;
//弹出标定对话框 //弹出标定对话框
var dialog = await dialogService.OpenAsync<BiaoDingDialog>( var dialog = await dialogService.OpenAsync<BiaoDingDialog>(
$"标定", $"标定库位{currentChannelStock.ColNo}",
new Dictionary<string, object>() { { "channelStockInfo", new Dictionary<string, object>() { { "channelStockInfo",
currentChannelStock } }, currentChannelStock } },
new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false }); new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false });
@ -233,6 +235,7 @@
{ {
if (this.status == 0) if (this.status == 0)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("请先打开抽屉后再点开药盒"); PortUtil.SpeakAsync("请先打开抽屉后再点开药盒");
} }
else else
@ -240,6 +243,8 @@
currentChannelStock = args.Data; currentChannelStock = args.Data;
if (args.Data.BoardType.ToString().Contains("3")) if (args.Data.BoardType.ToString().Contains("3"))
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("正在打开药盒"); PortUtil.SpeakAsync("正在打开药盒");
} }
// else // else

View File

@ -23,7 +23,7 @@
<RadzenButton Click="@Clear" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Disabled="@(channelStockInfo.Quantity<=0)" Text="清空" Style="width: 120px" /> <RadzenButton Click="@Clear" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Disabled="@(channelStockInfo.Quantity<=0)" Text="清空" Style="width: 120px" />
<RadzenButton Click="ConfirmOK" ButtonStyle="ButtonStyle.Success" IsBusy="@(status==2)" BusyText="正在标定。。。" Variant="Variant.Flat" Text="标定" Disabled=@(this.status<=0||this.status==2) Style="width: 120px" /> <RadzenButton Click="ConfirmOK" ButtonStyle="ButtonStyle.Success" IsBusy="@(status==2)" BusyText="正在标定。。。" Variant="Variant.Flat" Text="标定" Disabled=@(this.status<=0||this.status==2||iClearFinish>0) Style="width: 120px" />
<RadzenButton Click="@CancelClick" Variant="Variant.Flat" Text="取消" Style="width: 120px" /> <RadzenButton Click="@CancelClick" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
@ -44,6 +44,7 @@
int status = 0; int status = 0;
int iClear = 0; int iClear = 0;
int iBiaoDing = 0; int iBiaoDing = 0;
int iClearFinish = 1;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
if(channelStockInfo!=null&&channelStockInfo.Quantity<=0) if(channelStockInfo!=null&&channelStockInfo.Quantity<=0)
@ -56,6 +57,7 @@
//清空按钮 //清空按钮
async Task Clear() async Task Clear()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"正在清空,请稍等"); PortUtil.SpeakAsync($"正在清空,请稍等");
this.status = 1; this.status = 1;
@ -94,8 +96,10 @@
{ Severity = NotificationSeverity.Success, Summary = "提示", Detail = "清空操作成功", Duration = 3000 } { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "清空操作成功", Duration = 3000 }
); );
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("清空完成请放入10个药品放好后点击标定按钮"); PortUtil.SpeakAsync("清空完成请放入10个药品放好后点击标定按钮");
iClear = 0; iClear = 0;
iClearFinish = 0;
stop(); stop();
} }
else else
@ -121,6 +125,7 @@
try try
{ {
status = 2; status = 2;
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("正在标定,请稍等"); PortUtil.SpeakAsync("正在标定,请稍等");
//提示输入标定数量发26指令 //提示输入标定数量发26指令
await PortUtil.SetNumCount(channelStockInfo.DrawerNo, channelStockInfo.ColNo, BDQuantity); await PortUtil.SetNumCount(channelStockInfo.DrawerNo, channelStockInfo.ColNo, BDQuantity);
@ -145,6 +150,7 @@
{ Severity = NotificationSeverity.Success, Summary = "提示", Detail = "标定成功", Duration = 3000 } { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "标定成功", Duration = 3000 }
); );
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("标定完成,请取出药品"); PortUtil.SpeakAsync("标定完成,请取出药品");
status = 0; status = 0;
i = 0; i = 0;

View File

@ -228,6 +228,7 @@
var b = await PortUtil.OpenDrawerStatus(this.drawerNo); var b = await PortUtil.OpenDrawerStatus(this.drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药");
this.status = 2; this.status = 2;
PortUtil.Operate = true; PortUtil.Operate = true;
@ -253,6 +254,7 @@
// 关闭则改变状态并终止循环 // 关闭则改变状态并终止循环
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"加药完成,请,核对,或,录入,正确的,添加数量"); PortUtil.SpeakAsync($"加药完成,请,核对,或,录入,正确的,添加数量");
// 判断是否为称重抽屉 // 判断是否为称重抽屉
if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo)) if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo))
@ -339,6 +341,7 @@
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
this.BeforeQuantity = new int[9]; this.BeforeQuantity = new int[9];
this.AfterQuantity = new int[9]; this.AfterQuantity = new int[9];
@ -485,6 +488,7 @@
// } // }
if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2) if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("请先点取药按钮打开抽屉"); PortUtil.SpeakAsync("请先点取药按钮打开抽屉");
} }
currentCol = args.Data.ColNo; currentCol = args.Data.ColNo;

View File

@ -164,6 +164,7 @@
var b = await PortUtil.OpenDrawerStatus(this.drawerNo); var b = await PortUtil.OpenDrawerStatus(this.drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药");
PortUtil.Operate = true; PortUtil.Operate = true;
this.status = 2; this.status = 2;
@ -188,6 +189,7 @@
// 关闭则改变状态并终止循环 // 关闭则改变状态并终止循环
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"取药完成,请核对或录入正确的取出数量"); PortUtil.SpeakAsync($"取药完成,请核对或录入正确的取出数量");
// 判断是否为称重抽屉 // 判断是否为称重抽屉
if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo)) if (setting.Value.weigh != null && setting.Value.weigh.Contains(this.drawerNo))
@ -376,6 +378,7 @@
} }
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
this.BeforeQuantity = new int[9]; this.BeforeQuantity = new int[9];
this.AfterQuantity = new int[9]; this.AfterQuantity = new int[9];
@ -443,6 +446,7 @@
// } // }
if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2) if (setting.Value.box.Contains(args.Data.DrawerNo) && status != 2)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync("请先点取药按钮打开抽屉"); PortUtil.SpeakAsync("请先点取药按钮打开抽屉");
} }
currentCol = args.Data.ColNo; currentCol = args.Data.ColNo;

View File

@ -16,11 +16,17 @@
<RadzenCard class="rz-shadow-0 rz-border-radius-0 rz-text-align-center rz-p-12 align-items-center justify-content-center" Style="height: 100%; background: var(--rz-primary-light) no-repeat 100% 70% fixed url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwNCIgaGVpZ2h0PSIxNDU4IiB2aWV3Qm94PSIwIDAgMTIwNCAxNDU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjcyMi4xMjgiIGN5PSI4MzkuMDIiIHI9IjQ4MS40MTkiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQ5M18xMDEzNCkiPgo8Y2lyY2xlIGN4PSI0NzAuMzMzIiBjeT0iNTcwLjMzMyIgcj0iNDcwLjMzMyIgZmlsbD0idXJsKCNwYWludDFfcmFkaWFsXzQ5M18xMDEzNCkiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjY5MS41MTEiIGN5PSI1MjIuMjk3IiByPSIzMzEuNTAzIiBmaWxsPSJ1cmwoI3BhaW50Ml9yYWRpYWxfNDkzXzEwMTM0KSIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl80OTNfMTAxMzQpIj4KPGNpcmNsZSBjeD0iNjA4LjI0NCIgY3k9IjEwNzkuOTciIHI9IjMzMS41MDMiIHRyYW5zZm9ybT0icm90YXRlKC04MS4yMjQ0IDYwOC4yNDQgMTA3OS45NykiIGZpbGw9InVybCgjcGFpbnQzX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80OTNfMTAxMzQiIHg9IjE0MC43MDkiIHk9IjI1Ny42MDEiIHdpZHRoPSIxMTYyLjg0IiBoZWlnaHQ9IjExNjIuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl80OTNfMTAxMzQiIHg9Ii0xMDAiIHk9IjAiIHdpZHRoPSIxMTQwLjY3IiBoZWlnaHQ9IjExNDAuNjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfZl80OTNfMTAxMzQiIHg9IjI2MC4wMDgiIHk9IjkwLjc5MzkiIHdpZHRoPSI4NjMuMDA2IiBoZWlnaHQ9Ijg2My4wMDYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjNfZl80OTNfMTAxMzQiIHg9IjE3Ni42OTQiIHk9IjY0OC40MjMiIHdpZHRoPSI4NjMuMSIgaGVpZ2h0PSI4NjMuMSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzQ5M18xMDEzNCIvPgo8L2ZpbHRlcj4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3MjIuMTI4IDgzOS4wMikgcm90YXRlKDkwKSBzY2FsZSg0ODEuNDE5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjFBNkMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYxQTZDIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg0NzAuMzMzIDU3MC4zMzMpIHJvdGF0ZSg5MCkgc2NhbGUoNDcwLjMzMykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjM0FBQ0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNBOTVGRiIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF80OTNfMTAxMzQiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjkxLjUxMSA1MjIuMjk3KSByb3RhdGUoOTApIHNjYWxlKDMzMS41MDMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzQ4M0FGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0ODNBRkYiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDkzXzEwMTM0IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYwOC4yNDQgMTA3OS45Nykgcm90YXRlKDkwKSBzY2FsZSgzMzEuNTAzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkM4M0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZDODNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K')"> <RadzenCard class="rz-shadow-0 rz-border-radius-0 rz-text-align-center rz-p-12 align-items-center justify-content-center" Style="height: 100%; background: var(--rz-primary-light) no-repeat 100% 70% fixed url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwNCIgaGVpZ2h0PSIxNDU4IiB2aWV3Qm94PSIwIDAgMTIwNCAxNDU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjcyMi4xMjgiIGN5PSI4MzkuMDIiIHI9IjQ4MS40MTkiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQ5M18xMDEzNCkiPgo8Y2lyY2xlIGN4PSI0NzAuMzMzIiBjeT0iNTcwLjMzMyIgcj0iNDcwLjMzMyIgZmlsbD0idXJsKCNwYWludDFfcmFkaWFsXzQ5M18xMDEzNCkiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjY5MS41MTEiIGN5PSI1MjIuMjk3IiByPSIzMzEuNTAzIiBmaWxsPSJ1cmwoI3BhaW50Ml9yYWRpYWxfNDkzXzEwMTM0KSIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl80OTNfMTAxMzQpIj4KPGNpcmNsZSBjeD0iNjA4LjI0NCIgY3k9IjEwNzkuOTciIHI9IjMzMS41MDMiIHRyYW5zZm9ybT0icm90YXRlKC04MS4yMjQ0IDYwOC4yNDQgMTA3OS45NykiIGZpbGw9InVybCgjcGFpbnQzX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80OTNfMTAxMzQiIHg9IjE0MC43MDkiIHk9IjI1Ny42MDEiIHdpZHRoPSIxMTYyLjg0IiBoZWlnaHQ9IjExNjIuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl80OTNfMTAxMzQiIHg9Ii0xMDAiIHk9IjAiIHdpZHRoPSIxMTQwLjY3IiBoZWlnaHQ9IjExNDAuNjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfZl80OTNfMTAxMzQiIHg9IjI2MC4wMDgiIHk9IjkwLjc5MzkiIHdpZHRoPSI4NjMuMDA2IiBoZWlnaHQ9Ijg2My4wMDYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjNfZl80OTNfMTAxMzQiIHg9IjE3Ni42OTQiIHk9IjY0OC40MjMiIHdpZHRoPSI4NjMuMSIgaGVpZ2h0PSI4NjMuMSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzQ5M18xMDEzNCIvPgo8L2ZpbHRlcj4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3MjIuMTI4IDgzOS4wMikgcm90YXRlKDkwKSBzY2FsZSg0ODEuNDE5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjFBNkMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYxQTZDIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg0NzAuMzMzIDU3MC4zMzMpIHJvdGF0ZSg5MCkgc2NhbGUoNDcwLjMzMykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjM0FBQ0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNBOTVGRiIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF80OTNfMTAxMzQiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjkxLjUxMSA1MjIuMjk3KSByb3RhdGUoOTApIHNjYWxlKDMzMS41MDMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzQ4M0FGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0ODNBRkYiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDkzXzEwMTM0IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYwOC4yNDQgMTA3OS45Nykgcm90YXRlKDkwKSBzY2FsZSgzMzEuNTAzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkM4M0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZDODNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K')">
@if (userI == 1) @if (userI == 1)
{ {
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">操作人 @globalStateService.Operator?.NickName 正在修改密码</RadzenText> <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
操作人 @globalStateService.Operator?.NickName
<p>正在修改密码</p>
</RadzenText>
} }
else if (userI == 2) else if (userI == 2)
{ {
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">复核人 @globalStateService.Reviewer?.NickName 正在修改密码</RadzenText> <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
复核人 @globalStateService.Reviewer?.NickName
<p>正在修改密码</p>
</RadzenText>
} }
</RadzenCard> </RadzenCard>
</RadzenColumn> </RadzenColumn>

View File

@ -45,8 +45,15 @@
InvokeAsync(StateHasChanged); InvokeAsync(StateHasChanged);
try try
{ {
await FingerprintUtil.ConnectionMain(); bool flag=await FingerprintUtil.ConnectionMain();
if (flag)
{
msg = "指纹模块连接成功"; msg = "指纹模块连接成功";
}
else
{
msg = "指纹模块连接失败";
}
InvokeAsync(StateHasChanged); InvokeAsync(StateHasChanged);
} catch (Exception e) } catch (Exception e)
{ {

View File

@ -113,6 +113,7 @@
async Task CancelOpera() async Task CancelOpera()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
status = 0; status = 0;
dialogService.Close(false); dialogService.Close(false);
} }
@ -157,8 +158,8 @@
if (data[index].ChannelStocks[j].BoardType.ToString().Contains("2")) if (data[index].ChannelStocks[j].BoardType.ToString().Contains("2"))
{ {
byte[] quantity = await PortUtil.CheckQuantityByDrawer(data[index].ChannelStocks[j].DrawerNo); byte[] quantity = await PortUtil.CheckQuantityByDrawer(data[index].ChannelStocks[j].DrawerNo);
BeforeQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); data[index].BeforeQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray();
logger.Info($"单支抽屉【{drawerNo}】,开抽屉前检测数量【{string.Join(",", BeforeQuantity)}】"); 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<int>().ToArray()); await PortUtil.NoLightOnByCol(drawerNo, data.Select(ot => ot.ChannelStocks.Where(cs => cs.DrawerNo == drawerNo).Select(cs => cs.ColNo)).Cast<int>().ToArray());
} }
@ -168,8 +169,8 @@
PortUtil.DrawerNo = data[index].ChannelStocks[j].DrawerNo;// drawerNo; PortUtil.DrawerNo = data[index].ChannelStocks[j].DrawerNo;// drawerNo;
PortUtil.ColNoLst.Add(data[index].ChannelStocks[j].ColNo); PortUtil.ColNoLst.Add(data[index].ChannelStocks[j].ColNo);
BeforeQuantity[data[index].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[index].ChannelStocks[j].ColNo); 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(",", BeforeQuantity)}】"); logger.Info($"称重抽屉【{data[index].ChannelStocks[j].DrawerNo}】,开抽屉前检测数量【{string.Join(",", data[index].BeforeQuantity)}】");
await Task.Delay(200); await Task.Delay(200);
} }
//药盒-开药盒 //药盒-开药盒
@ -183,6 +184,7 @@
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药");
options._data = 1; options._data = 1;
next(); next();
@ -213,6 +215,7 @@
} }
if (index == drawerNos.Count - 1) if (index == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
string alertMessage = string.Empty; string alertMessage = string.Empty;
@ -236,8 +239,8 @@
AfterQuantity[data[i].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStocks[j].ColNo); AfterQuantity[data[i].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStocks[j].ColNo);
logger.Info($"称重抽屉,关抽屉后检测数量【{string.Join(",", AfterQuantity)}】"); 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]; 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].Quantity != WeightFinnalQuantity[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]}】"; 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); byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo);
AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray();
logger.Info($"单支抽屉,关抽屉后检测数量【{string.Join(",", AfterQuantity)}】"); 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]; 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].Quantity != WeightFinnalQuantity[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]}】"; alertMessage += $"{data[i].Drug.DrugName}应取数量【{data[i].ChannelStocks[j].Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]}】";
} }
@ -274,6 +277,8 @@
RestData(); RestData();
logger.Info("取消保存"); logger.Info("取消保存");
cancelFlag = true; cancelFlag = true;
// 关闭弹窗
dialogService.Close(false);
break; break;
} }
else else

View File

@ -115,7 +115,7 @@
} }
async Task CancelOpera() async Task CancelOpera()
{ {
status = 0; RestData();
dialogService.Close(false); dialogService.Close(false);
} }
async Task OpenDrawer() async Task OpenDrawer()
@ -166,7 +166,7 @@
PortUtil.DrawerNo = data[index].ChannelStocks[j].DrawerNo;// drawerNo; PortUtil.DrawerNo = data[index].ChannelStocks[j].DrawerNo;// drawerNo;
PortUtil.ColNoLst.Add(data[index].ChannelStocks[j].ColNo); PortUtil.ColNoLst.Add(data[index].ChannelStocks[j].ColNo);
BeforeQuantity[data[index].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[index].ChannelStocks[j].ColNo); data[j].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)}】"); logger.Info($"称重抽屉【{data[index].ChannelStocks[j].DrawerNo}】,开抽屉前检测数量【{string.Join(",", BeforeQuantity)}】");
await Task.Delay(200); await Task.Delay(200);
} }
@ -209,6 +209,7 @@
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药");
options._data = 1; options._data = 1;
next(); next();
@ -240,6 +241,7 @@
if (index == drawerNos.Count - 1) if (index == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
string alertMessage = string.Empty; string alertMessage = string.Empty;
@ -262,8 +264,8 @@
AfterQuantity[data[i].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStocks[j].ColNo); AfterQuantity[data[i].ChannelStocks[j].ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStocks[j].ColNo);
logger.Info($"称重抽屉,关抽屉后检测数量【{string.Join(",", AfterQuantity)}】"); 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]; 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].Quantity != WeightFinnalQuantity[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]}】"; alertMessage += $"{data[i].Drug.DrugName}应取数量【{data[i].Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStocks[j].ColNo - 1]}】";
@ -296,6 +298,8 @@
RestData(); RestData();
logger.Info("取消保存"); logger.Info("取消保存");
cancelFlag = true; cancelFlag = true;
// 关闭弹窗
dialogService.Close(false);
break; break;
} }
else else
@ -370,6 +374,7 @@
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
this.BeforeQuantity = new int[9]; this.BeforeQuantity = new int[9];
this.AfterQuantity = new int[9]; this.AfterQuantity = new int[9];

View File

@ -85,6 +85,9 @@
//称重取药数量 //称重取药数量
int[] WeightFinnalQuantity { get; set; } = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] WeightFinnalQuantity { get; set; } = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
//开抽屉前操作标识
List<string> DrawerNoColNoList = new List<string>();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
data = await orderInfoDao.getTakeInfoByOrderNo(order.OrderNo); data = await orderInfoDao.getTakeInfoByOrderNo(order.OrderNo);
@ -130,13 +133,15 @@
await PortUtil.HasLightOnByCol(drawerNo, data.Where(ot => ot.ChannelStock.DrawerNo == drawerNo).Select(ot => ot.ChannelStock.ColNo).ToArray()); await PortUtil.HasLightOnByCol(drawerNo, data.Where(ot => ot.ChannelStock.DrawerNo == drawerNo).Select(ot => ot.ChannelStock.ColNo).ToArray());
} }
for (int i = 0; i < data.Count; i++) for (int i = 0; i < data.Count; i++)
{
if (!DrawerNoColNoList.Contains(data[i].ChannelStock.DrawerNo.ToString() + data[i].ChannelStock.ColNo))
{ {
if (data[i].ChannelStock.BoardType.ToString().Contains("6")) if (data[i].ChannelStock.BoardType.ToString().Contains("6"))
{ {
PortUtil.DrawerNo = drawerNo; PortUtil.DrawerNo = data[i].ChannelStock.DrawerNo;
PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo); PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo);
orderTakeVo.BeforeQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo); data[i].BeforeQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo);
logger.Info($"称重抽屉,开抽屉前检测数量【{string.Join(",", orderTakeVo.BeforeQuantity)}】"); logger.Info($"称重抽屉,开抽屉前检测数量【{string.Join(",", orderTakeVo.BeforeQuantity)}】");
await Task.Delay(200); await Task.Delay(200);
} }
@ -144,14 +149,17 @@
//是药盒抽屉开药盒 //是药盒抽屉开药盒
if (data[i].ChannelStock.BoardType.ToString().Contains("3")) if (data[i].ChannelStock.BoardType.ToString().Contains("3"))
{ {
PortUtil.DrawerNo = drawerNo; PortUtil.DrawerNo = data[i].ChannelStock.DrawerNo;
await PortUtil.OpenBoxByColNo(data[i].ChannelStock.ColNo); await PortUtil.OpenBoxByColNo(data[i].ChannelStock.ColNo);
await Task.Delay(200); await Task.Delay(200);
} }
DrawerNoColNoList.Add(data[i].ChannelStock.DrawerNo.ToString() + data[i].ChannelStock.ColNo);
}
} }
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药");
orderTakeVo.Status = 1; orderTakeVo.Status = 1;
next(); next();
@ -188,6 +196,8 @@
PortUtil.AllLightOff(); PortUtil.AllLightOff();
if (options._data == drawerNos.Count - 1) if (options._data == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
string alertMessage = string.Empty; string alertMessage = string.Empty;
@ -196,12 +206,12 @@
{ {
if (data[i].ChannelStock.BoardType.ToString().Contains("6")) if (data[i].ChannelStock.BoardType.ToString().Contains("6"))
{ {
PortUtil.DrawerNo = drawerNo; PortUtil.DrawerNo = data[i].ChannelStock.DrawerNo;// drawerNo;
PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo); PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo);
orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo); orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo);
logger.Info($"称重抽屉,关抽屉后检测数量【{string.Join(",", orderTakeVo.AfterQuantity)}】"); logger.Info($"称重抽屉,关抽屉后检测数量【{string.Join(",", orderTakeVo.AfterQuantity)}】");
WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1] = orderTakeVo.BeforeQuantity[data[i].ChannelStock.ColNo - 1] - orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1]; WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1] = data[i].BeforeQuantity[data[i].ChannelStock.ColNo - 1] - orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1];
if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1]) if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1])
{ {
//称重自动计数数量与实际要取数量不一致弹出提示,确认后保存数据 //称重自动计数数量与实际要取数量不一致弹出提示,确认后保存数据
@ -237,6 +247,8 @@
{ {
RestData(); RestData();
logger.Info("取消保存"); logger.Info("取消保存");
// 关闭弹窗
dialogService.Close(false);
} }
} }
stop(); stop();
@ -275,6 +287,7 @@
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
data.ForEach(it => data.ForEach(it =>
{ {
@ -283,12 +296,13 @@
it.AfterQuantity = new int[9]; it.AfterQuantity = new int[9];
}); });
this.WeightFinnalQuantity = new int[9]; this.WeightFinnalQuantity = new int[9];
DrawerNoColNoList.Clear();
} }
void Cancel() void Cancel()
{ {
RestData(); RestData();
// 关闭弹窗 // 关闭弹窗
dialogService.Close(true); dialogService.Close(false);
} }
async Task TakeFinish() async Task TakeFinish()
{ {

View File

@ -67,7 +67,7 @@
} }
@if(status < 2) @if(status < 2)
{ {
<RadzenButton Click="@((args) => dialogService.Close(false))" Variant="Variant.Flat" Text="取消" Style="width: 120px" /> <RadzenButton Click="@Cancel" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
} }
</RadzenStack> </RadzenStack>
</RadzenStack> </RadzenStack>
@ -157,6 +157,7 @@
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,放置退回药品"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,放置退回药品");
options._data = 1; options._data = 1;
next(); next();
@ -187,6 +188,7 @@
} }
if (index == drawerNos.Count - 1) if (index == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"退药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"退药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
stop(); stop();
@ -239,9 +241,15 @@
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
} }
void Cancel()
{
RestData();
// 关闭弹窗
dialogService.Close(false);
}
async Task TakeFinish() async Task TakeFinish()
{ {

View File

@ -107,6 +107,7 @@
async Task CancelOpera() async Task CancelOpera()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
status = 0; status = 0;
dialogService.Close(false); dialogService.Close(false);
} }
@ -163,6 +164,7 @@
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药");
options._data = 1; options._data = 1;
next(); next();
@ -193,6 +195,7 @@
} }
if (index == drawerNos.Count - 1) if (index == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
stop(); stop();

View File

@ -160,6 +160,7 @@
async Task CancelOpera() async Task CancelOpera()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
status = 0; status = 0;
dialogService.Close(false); dialogService.Close(false);
} }
@ -203,6 +204,7 @@
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请放入空瓶"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请放入空瓶");
options._data = 1; options._data = 1;
next(); next();
@ -231,6 +233,7 @@
{ {
PortUtil.AllLightOff(); PortUtil.AllLightOff();
} }
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
stop(); stop();

View File

@ -62,7 +62,7 @@
} }
@if (status <= 2) @if (status <= 2)
{ {
<RadzenButton Click="@((args) => dialogService.Close(false))" Variant="Variant.Flat" Text="取消" Style="width: 120px" /> <RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
} }
</RadzenStack> </RadzenStack>
</RadzenStack> </RadzenStack>
@ -81,7 +81,8 @@
private bool CanTakeDrug = true; private bool CanTakeDrug = true;
//开抽屉前操作标识
List<string> DrawerNoColNoList = new List<string>();
public List<OrderTakeVo> data { get; set; } public List<OrderTakeVo> data { get; set; }
//称重取药数量 //称重取药数量
int[] WeightFinnalQuantity { get; set; } = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] WeightFinnalQuantity { get; set; } = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
@ -130,14 +131,16 @@
await PortUtil.HasLightOnByCol(drawerNo, data.Where(ot => ot.ChannelStock.DrawerNo == drawerNo).Select(ot => ot.ChannelStock.ColNo).ToArray()); await PortUtil.HasLightOnByCol(drawerNo, data.Where(ot => ot.ChannelStock.DrawerNo == drawerNo).Select(ot => ot.ChannelStock.ColNo).ToArray());
} }
for (int i = 0; i < data.Count; i++) for (int i = 0; i < data.Count; i++)
{
if (!DrawerNoColNoList.Contains(data[i].ChannelStock.DrawerNo.ToString() + data[i].ChannelStock.ColNo))
{ {
if (data[i].ChannelStock.BoardType.ToString().Contains("6")) if (data[i].ChannelStock.BoardType.ToString().Contains("6"))
{ {
PortUtil.DrawerNo = drawerNo; PortUtil.DrawerNo = data[i].ChannelStock.DrawerNo;
PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo); PortUtil.ColNoLst.Add(data[i].ChannelStock.ColNo);
orderTakeVo.BeforeQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo); data[i].BeforeQuantity[data[i].ChannelStock.ColNo - 1] = await PortUtil.CheckQuantityForSingle(data[i].ChannelStock.ColNo);
logger.Info($"称重抽屉,开抽屉前检测数量【{string.Join(",", orderTakeVo.BeforeQuantity)}】"); logger.Info($"称重抽屉,开抽屉前检测数量【{string.Join(",", data[i].BeforeQuantity)}】");
await Task.Delay(200); await Task.Delay(200);
} }
@ -148,11 +151,14 @@
await PortUtil.OpenBoxByColNo(data[i].ChannelStock.ColNo); await PortUtil.OpenBoxByColNo(data[i].ChannelStock.ColNo);
await Task.Delay(200); await Task.Delay(200);
} }
DrawerNoColNoList.Add(data[i].ChannelStock.DrawerNo.ToString() + data[i].ChannelStock.ColNo);
}
} }
var b = await PortUtil.OpenDrawerStatus(drawerNo); var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b) if (b)
{ {
PortUtil.Operate = true; PortUtil.Operate = true;
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,取药");
orderTakeVo.Status = 1; orderTakeVo.Status = 1;
next(); next();
@ -190,6 +196,7 @@
PortUtil.AllLightOff(); PortUtil.AllLightOff();
if (options._data == drawerNos.Count - 1) if (options._data == drawerNos.Count - 1)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认"); PortUtil.SpeakAsync($"取药完成,请,点击完成按钮进行确认");
this.status = 2; this.status = 2;
string alertMessage = string.Empty; string alertMessage = string.Empty;
@ -218,7 +225,7 @@
byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo); byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo);
orderTakeVo.AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray(); orderTakeVo.AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray();
logger.Info($"单支抽屉,关抽屉后检测数量【{string.Join(",", orderTakeVo.AfterQuantity)}】"); logger.Info($"单支抽屉,关抽屉后检测数量【{string.Join(",", orderTakeVo.AfterQuantity)}】");
WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1] = orderTakeVo.BeforeQuantity[data[i].ChannelStock.ColNo - 1] - orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1]; WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1] = data[i].BeforeQuantity[data[i].ChannelStock.ColNo - 1] - orderTakeVo.AfterQuantity[data[i].ChannelStock.ColNo - 1];
if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1]) if (data[i].Quantity != WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1])
{ {
alertMessage += $"{data[i].Drug.DrugName}应取数量【{orderTakeVo.Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1]}】"; alertMessage += $"{data[i].Drug.DrugName}应取数量【{orderTakeVo.Quantity}】,实际取出数量【{WeightFinnalQuantity[data[i].ChannelStock.ColNo - 1]}】";
@ -239,6 +246,8 @@
{ {
RestData(); RestData();
logger.Info("取消保存"); logger.Info("取消保存");
// 关闭弹窗
dialogService.Close(false);
} }
} }
stop(); stop();
@ -288,9 +297,14 @@
} }
}); });
} }
async Task CancelOpera()
{
RestData();
dialogService.Close(false);
}
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
} }

View File

@ -173,6 +173,7 @@
var b = await PortUtil.OpenDrawerStatus(this.drawerNo); var b = await PortUtil.OpenDrawerStatus(this.drawerNo);
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,盘点"); PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,盘点");
this.status = 2; this.status = 2;
next(); next();
@ -196,6 +197,7 @@
// 关闭则改变状态并终止循环 // 关闭则改变状态并终止循环
if (b) if (b)
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
PortUtil.SpeakAsync($"盘点完成,请,核对,或,录入,正确的,盘点数量"); PortUtil.SpeakAsync($"盘点完成,请,核对,或,录入,正确的,盘点数量");
this.status = 3; this.status = 3;
stop(); stop();
@ -236,6 +238,7 @@
void RestData() void RestData()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
this.status = 0; this.status = 0;
this.BeforeQuantity = new int[9]; this.BeforeQuantity = new int[9];
this.AfterQuantity = new int[9]; this.AfterQuantity = new int[9];
@ -255,7 +258,7 @@
else else
{ {
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Info, Summary = "提示", Detail = $"盘点完成", Duration = 4000 }); _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Info, Summary = "提示", Detail = $"盘点完成", Duration = 4000 });
logger.Error($"盘点完成"); logger.Info($"盘点完成");
} }
} }
@ -268,7 +271,7 @@
void Cancel() void Cancel()
{ {
this.status = 0; RestData();
} }
void SelectDrawer(int drawerNo) void SelectDrawer(int drawerNo)

View File

@ -137,12 +137,14 @@
void backHome() void backHome()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
currentPage = false; currentPage = false;
na.NavigateTo(""); na.NavigateTo("");
} }
void logout() void logout()
{ {
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
globalStateService.Operator = null; globalStateService.Operator = null;
globalStateService.Reviewer = null; globalStateService.Reviewer = null;
na.NavigateTo(""); na.NavigateTo("");

View File

@ -7,8 +7,8 @@
}, },
"setting": { "setting": {
"machineId": "DM1", "machineId": "DM1",
"storage": null, "storage": 1,
"loginMode": 2, "loginMode": 1,
"opFirst": true, "opFirst": true,
//退,0退 //退,0退
"autoOutLog": 0 "autoOutLog": 0