SiChuanShengErZhong8/MasaBlazorApp3/Pages/CheckOrderNew.razor

581 lines
30 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@page "/Box/Check"
@using MasaBlazorApp3.Pojo.Config
@using MasaBlazorApp3.Report
@using Microsoft.Extensions.Options
@using Radzen.Blazor.Rendering
@using log4net;
<style>
.my-popup {
display: none;
position: absolute;
overflow: auto;
/* height: 360px; */
width: 900px;
border: var(--rz-panel-border);
background-color: var(--rz-panel-background-color);
box-shadow: var(--rz-panel-shadow);
border-radius: var(--rz-border-radius);
}
.rz-grid-table {
position: relative;
border-collapse: separate;
border-spacing: 0;
}
</style>
@* <RadzenStack Orientation="Orientation.Horizontal"> *@
<div class="col-12" style="margin-bottom:5px;">
@* <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem"> *@
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="12">
<RadzenLabel Text="核对药箱" Component="BoxList" />
<RadzenDropDownDataGrid AllowVirtualization="true" Name="BoxColorList" TValue="BoxModel" Data="@BoxColorList" Value="BoxColor" Style="width: 8vw;"
ValueChanged="@((args) => OnColorChanged(args))" AllowFiltering="false"
AllowFilteringByAllStringColumns="true" TextProperty="药箱号">
<Template>
@((context as BoxModel).BoxNo == 1 ? "白" : (context as BoxModel).BoxNo == 3 ? "非常规" : "绿")
</Template>
<Columns>
<RadzenDropDownDataGridColumn Property="BoxNo" Title="药箱颜色" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
<RadzenDropDownDataGrid AllowVirtualization="true" Name="BoxList" TValue="BoxModel" Data="@BoxList" Value="BoxNum" Style="width: 10vw;"
ValueChanged="@((args) => OnBoxChanged(args))" AllowFilteringByAllStringColumns="true" TextProperty="药箱号">
<Template>
@((context as BoxModel).BoxName == 99 ? "急诊药盒" : (context as BoxModel).BoxName == 111 ? "恢复室药盒" :
(context as BoxModel).BoxName == 31 ? "胃镜药盒" :
(context as BoxModel).BoxName == 32 ? "导管药盒" :
(context as BoxModel).BoxName == 33 ? "生殖药盒" :
(context as BoxModel).BoxName == 34 ? "妇门药盒" : (context as BoxModel).BoxName + "-" + ((context as BoxModel).BoxNo == 1 ? "白" : "绿"))
@* @((context as BoxModel).BoxName + "-" + (context as BoxModel).BoxNo) *@
</Template>
<Columns>
<RadzenDropDownDataGridColumn Property="BoxName" Title="药箱号" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
<RadzenLabel Text="处方时间" Component="OrderDate" />
<RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="OrderDate" Style="width: 15vw;" Name="OrderDate" />
@* <RadzenButton Size="ButtonSize.Medium" Click="Search" IsBusy="isLoading" Icon="search" Text="查询" /> *@
<RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" ButtonStyle="ButtonStyle.Success" IsBusy="isLoading" Icon="check_circle" Text="确认" />
<RadzenButton Size="ButtonSize.Medium" Click="AddOrderMethod" ButtonType="ButtonType.Button" IsBusy="isLoading" ButtonStyle="ButtonStyle.Warning" Icon="input" Text="导入" />
<RadzenButton Style="margin-top:2px" Icon="download" @ref=button Text="麻醉药品使用登记本导出" Variant="Variant.Outlined" Click="@(args => popup.ToggleAsync(button.Element))" />
<Popup @ref=popup Lazy=true class="my-popup">
<RadzenStack Orientation="Orientation.Vertical" Gap="1rem" class="rz-h-100 rz-p-4">
<RadzenFieldset Text="条件选择">
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="6">
<RadzenLabel Text="处方时间" Component="PortOrderDate" />
</RadzenColumn>
<RadzenColumn Size="6">
<RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentPortDateChanged" @bind-Value="PortOrderDate" Style="width: 100%;" Name="PortOrderDate" />
</RadzenColumn>
</RadzenRow>
<RadzenRow JustifyContent="JustifyContent.End" AlignItems="AlignItems.Center">
<RadzenButton Icon="download" Text="导出" Variant="Variant.Outlined" Click="StockExport" />
</RadzenRow>
</RadzenStack>
</RadzenFieldset>
</RadzenStack>
</Popup>
</RadzenColumn>
</RadzenRow>
</div>
<RadzenStack Orientation="Orientation.Horizontal">
<div Style="width:55vw;overflow:auto">
@* <RadzenDataGrid @ref="grid" AllowRowSelectOnRowClick="@allowRowSelectOnRowClick" AllowFiltering="true" LoadData="@LoadData" Style="width:50vw;overflow:auto"
FilterPopupRenderMode="PopupRenderMode.OnDemand" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
Data="@csList" IsLoading="@isLoading" Count="@count" EmptyText="无数据"
SelectionMode="DataGridSelectionMode.Multiple" @bind-Value=@selectedcsList
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnDrugCellClick(args))"
AllowPaging="false">
<Columns>
<RadzenDataGridColumn Property="Drug.DrugName" Title="药品名称" FormatString="{0:d}" Sortable="false" Filterable="false" Width="2vw" />
<RadzenDataGridColumn Title="批次" Property="ManuNo" Filterable="false" Width="2vw">
</RadzenDataGridColumn>
<RadzenDataGridColumn Property="DetailInfo.Quantity" Title="合计" Filterable="false" Width="3vw">
<Template Context="contextDate">
<div style="text-align: center;">
库存量【@contextDate.Quantity】<br />
用药量【@contextDate.UseQuantity】<br />
处方数【@contextDate.OrderQuantity】
</div>
</Template>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid> *@
<RadzenListBox AllowClear="true" @bind-Value=@listBoxSelectedcsList Style="width:45vw;height:70vh;overflow:auto" AllowFiltering="false" TValue="ChannelStock"
LoadData=@LoadData Data=@csList>
<Template>
<RadzenStack Orientation="Orientation.Horizontal">
<RadzenText Style="width:15vw;text-align:left">@((context as ChannelStock).Drug.DrugName)</RadzenText>
<RadzenText Style="width:10vw">@((context as ChannelStock).ManuNo)</RadzenText>
<RadzenStack Gap="10" Style="text-align:right">
<div style="text-align: center;">
基数【@((context as ChannelStock).BaseQuantity)】<br />
@* 总库存【@((context as ChannelStock).TotalQuantity)】<br /> *@
库存数【@((context as ChannelStock).Quantity)】<br />
用药数【@((context as ChannelStock).SelectedOrderList.Aggregate(0, (a, b) => a + b.DetailInfo.Quantity))】<br />
处方数【@((context as ChannelStock).SelectedOrderList.Count)】
</div>
</RadzenStack>
</RadzenStack>
</Template>
</RadzenListBox>
</div>
<div Style="width:75vw;overflow:auto;box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); ">
@if ((listBoxSelectedcsList != null && string.IsNullOrEmpty(listBoxSelectedcsList.ListId) && listBoxSelectedcsList.Quantity > listBoxSelectedcsList.UseQuantity) || (listBoxSelectedcsList.Quantity > listBoxSelectedcsList.BaseQuantity))
{
//ListId为空则是没有在套餐里的药库存量大于使用量时需要把药还到抽屉里
//列出需要还到抽屉里的药品的抽屉库位
@* <RadzenRow AlignItems="AlignItems.Center" Style="margin:1vw;">
<RadzenColumn Size="12">
<RadzenLabel Text="库位" Component="DrawerList" />
<RadzenDropDownDataGrid AllowVirtualization="true" Name="DrawerList" TValue="ChannelStock" @bind-Value="@listBoxSelectedcsList.ReturnDrawerChanneStock" Data="@(listBoxSelectedcsList?.DrawerChanneStockList)"
Style="width:20vw;" AllowFilteringByAllStringColumns="true" TextProperty="Location">
<Columns>
<RadzenDropDownDataGridColumn Property="Location" Title="库位" Sortable="false" />
<RadzenDropDownDataGridColumn Property="Quantity" Title="库存" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
<RadzenLabel Text="还药数" Component="ReturnQuantity" />
<RadzenNumeric Min="0" Name="ReturnQuantity" TValue="int" @bind-Value=@listBoxSelectedcsList.ReturnQuantity Style="width:5vw;" />
<RadzenNumericRangeValidator Min="0" Max=@listBoxSelectedcsList.Quantity Text="请填写正确的还药数量" Component="ReturnQuantity" Popup="true" />
</RadzenColumn>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center" Style="margin:1vw;">
<RadzenColumn Size="12">*@
@if (listBoxSelectedcsList?.DrawerChanneStockList != null)
{
<RadzenListBox AllowClear="true" @bind-Value=@returnList AllowFiltering="false" TValue="ChannelStock" Style="width:70vw;overflow:auto"
Data=@(listBoxSelectedcsList?.DrawerChanneStockList)>
<Template>
<RadzenStack Orientation="Orientation.Horizontal">
<RadzenText Style="width:20vw;text-align:left">还药库位@((context as ChannelStock).Location)</RadzenText>
<RadzenText Style="width:10vw">还药数@((context as ChannelStock).ReturnQuantity)</RadzenText>
</RadzenStack>
</Template>
</RadzenListBox>
}
@* </RadzenColumn>
</RadzenRow> *@
}
<RadzenDataGrid Style="width:55vw;height:70vh;overflow:auto"
FilterPopupRenderMode="PopupRenderMode.OnDemand" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
Data="@(listBoxSelectedcsList?.OrderList)" EmptyText="无处方数据"
@bind-Value="@(listBoxSelectedcsList.SelectedOrderList)"
SelectionMode="DataGridSelectionMode.Multiple"
AllowRowSelectOnRowClick="true"
AllowPaging="false">
<Columns>
<RadzenDataGridColumn Sortable="false" Filterable="false" Width="1rem">
@* <HeaderTemplate>
<RadzenCheckBox TabIndex="-1" TriState="false" TValue="bool?" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select all items" } })"
Value="@(listBoxSelectedcsList?.OrderList!=null&&(bool)listBoxSelectedcsList?.OrderList.Any(oi=>oi. ItemIsChecked))"
Change="@(args => ChangeHeaderCheckBox(args))" />
</HeaderTemplate>
<Template Context="data">
<RadzenCheckBox TabIndex="-1" TriState="false" Value="@data.ItemIsChecked" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select item" } })"
TValue="bool" Change="@(args => { data.ItemIsChecked=!data.ItemIsChecked;})" />
</Template> *@
<HeaderTemplate>
<RadzenCheckBox TabIndex="-1" TriState="false" TValue="bool?" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select all items" } })"
Value="@(listBoxSelectedcsList?.SelectedOrderList==null || listBoxSelectedcsList?.SelectedOrderList.Any() !=true? false: !(bool)listBoxSelectedcsList?.OrderList.All(i => (bool)(listBoxSelectedcsList?.SelectedOrderList.Contains(i)))?null:listBoxSelectedcsList?.OrderList.Any(i => (bool)listBoxSelectedcsList?.SelectedOrderList.Contains(i)))"
Change="@(args =>listBoxSelectedcsList.SelectedOrderList = args == true ? listBoxSelectedcsList?.OrderList.ToList():new List<OrderInfo>())" />
</HeaderTemplate>
<Template Context="data">
<RadzenCheckBox TabIndex="-1" TriState="false" Value="@(listBoxSelectedcsList.SelectedOrderList.Contains(data))" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select item" } })"
TValue="bool" />
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Property="OrderNo" Title="处方号" Sortable="false" Filterable="false" Width="5vw" />
<RadzenDataGridColumn Property="anaesthetistName" Title="医师" Sortable="false" Filterable="false" Width="3vw" />
<RadzenDataGridColumn Property="PatientName" Title="患者" Sortable="false" Filterable="false" Width="3vw" />
<RadzenDataGridColumn Property="Sex" Title="性别" Sortable="false" Filterable="false" Width="2vw" />
<RadzenDataGridColumn Property="DetailInfo.Quantity" Title="数量" Sortable="false" Filterable="false" Width="2vw" />
</Columns>
</RadzenDataGrid>
</div>
</RadzenStack>
@* </RadzenStack> *@
@code {
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrder));
@inject IOrderInfoDao orderInfoDao;
@inject DialogService dialogService;
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
@inject NotificationService _message;
@inject IReportDataDao reportDataDao;
@inject IOptions<SettingConfig> setting;
//bool allowRowSelectOnRowClick = true;
IEnumerable<ChannelStock> csList;
IList<ChannelStock> selectedcsList;
ChannelStock listBoxSelectedcsList = new();
ChannelStock returnList = new();
IEnumerable<OrderInfo> orderList;
IList<OrderInfo> selectedOrderList;
RadzenListBox<ChannelStock> listBox;
RadzenDataGrid<OrderInfo> gridOrder;
//麻醉师集合
List<Anaesthetist> NamesList = new List<Anaesthetist>();
Anaesthetist NameInfo;
BoxModel BoxColor;
//全部药盒集合
List<BoxModel> AllBoxList = new List<BoxModel>();
//药盒集合
List<BoxModel> BoxList = new List<BoxModel>();
//药盒颜色集合
List<BoxModel> BoxColorList = new List<BoxModel>()
{
new BoxModel{BoxNo=1,BoxName=1 },
new BoxModel{BoxNo=2 ,BoxName=1},
new BoxModel{BoxNo=3 ,BoxName=1}
};
BoxModel BoxNum;
bool isLoading;
int count;
int[] DrawerNos = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
int status = 0;
string OrderNo;
string PatientName;
DateTime? OrderDate = DateTime.Now;
DateTime PortOrderDate = DateTime.Now;
Popup popup;
RadzenButton button;
private async Task OnColorChanged(object value)
{
if ((((BoxModel)value).BoxNo) == 3)
{
BoxList = AllBoxList.Where(bl => bl.BoxName > 30).ToList();
BoxNum = BoxList.FirstOrDefault();
await InvokeAsync(StateHasChanged);
}
else
{
BoxList = AllBoxList.Where(bl => bl.BoxNo == ((BoxModel)value).BoxNo && bl.BoxName <= 30).ToList();
BoxNum = BoxList.FirstOrDefault();
}
await LoadData(null);
}
//药箱选中修改
private async Task OnBoxChanged(object value)
{
// BoxList = BoxList.Where(bl => bl.BoxNo == ((BoxModel)value).BoxNo && bl.BoxName == ((BoxModel)value).BoxName).ToList();
BoxNum = (BoxModel)value;
await LoadData(null);
}
bool? boolHeader = true;
//全选/反选
void ChangeHeaderCheckBox(bool? args)
{
if (args != null)
{
boolHeader = args;
listBoxSelectedcsList?.OrderList.ToList().ForEach(it => it.ItemIsChecked = (bool)args);
}
}
void OnCheckSeleced(object dete)
{
//listBoxSelectedcsList?.OrderList.ToList().Where(it => it.OrderNo == (OrderInfo as (dete).))(oi => oi.ItemIsChecked = true));
}
//日期修改
async Task OnCurrentDateChanged(DateTime args)
{
OrderDate = new DateTime(args.Year, args.Month, args.Day);
await LoadData(null);
}
void OnCurrentPortDateChanged(DateTime args)
{
PortOrderDate = new DateTime(args.Year, args.Month, args.Day);
}
void OnDrugCellClick(DataGridCellMouseEventArgs<ChannelStock> args)
{
}
void OnCellClick(DataGridCellMouseEventArgs<OrderInfo> args)
{
if (args.Data.DetailInfo.SetManuNo != null)
{
args.Data.DetailInfo.drugManuNo = args.Data.DetailInfo.Drug.Manus.Where(m => m.ManuNo == args.Data.DetailInfo.SetManuNo).FirstOrDefault();
}
if (args.Data.DetailInfo.drugManuNo == null)
{
args.Data.DetailInfo.drugManuNo = args.Data.DetailInfo.Drug.Manus.FirstOrDefault();
}
args.Data.ItemIsChecked = !args.Data.ItemIsChecked;
// gridOrder.EditRow(args.Data);
}
//查询
async Task Search()
{
await LoadData(null);
}
//确认
async Task Confirm()
{
csList = csList.ToList();
List<ChannelStock> checkChannelStock = new();
string errMessage = string.Empty;
foreach (var item in csList)
{
if (item.SelectedOrderList.Aggregate(0, (a, b) => a + b.DetailInfo.Quantity)>item.Quantity)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"用药数不可大于库存数,请仔细核对!", Duration = 4000 }
);
return;
}
int i = 0;
if (item.OrderList != null && item.SelectedOrderList.Count > 0)
{
item.UseQuantity = item.SelectedOrderList.Sum(oi => oi.DetailInfo.Quantity);
item.OrderQuantity = item.SelectedOrderList.Count;
// checkChannelStock.Add(item);
i = 1;
}
if (item.DrawerChanneStockList != null && item.DrawerChanneStockList.Any(d => d.ReturnQuantity > 0))
{
//还药数量:使用量==库存还0 :库存>基数? (库存数-使用数)>基数? 还 库存数-使用数0
item.ReturnQuantity =
(item.UseQuantity == item.Quantity) ? 0 :
(item.Quantity <= item.BaseQuantity) ? 0 :
((item.Quantity - item.UseQuantity) > item.BaseQuantity) ?
(item.Quantity - item.UseQuantity - item.BaseQuantity) : 0;
//还药库位
if (item.ReturnQuantity > 0)
{
//药品未在套餐中绑定需要把药还到对应抽屉
List<ChannelStock> allDrugStock = await orderInfoDao.GetStockByDRrug(item.DrugId, item.ManuNo, 1);// await _connection.ChannelStock.Where(cs => cs.MachineId == _setting.machineId && cs.DrawerType == 1 && cs.DrugId == csList[i].DrugId && cs.ManuNo == csList[i].ManuNo).OrderBy(cs => cs.Quantity).ToListAsync();
if (allDrugStock != null && allDrugStock.Count > 0)
{
item.DrawerChanneStockList = new();
int iReturnQuantity = item.Quantity - item.UseQuantity - item.BaseQuantity;
for (int j = 0; j < allDrugStock.Count; j++)
{
if (allDrugStock[j].BoardType.ToString().Contains("2") && allDrugStock[j].Quantity >= 25)
continue;
if (allDrugStock[j].BoardType.ToString().Contains("2") && allDrugStock[j].Quantity + item.Quantity - item.UseQuantity > 25)
{
if (iReturnQuantity <= allDrugStock.Sum(it => it.Quantity))
{
for (int q = 0; iReturnQuantity > 0; q++)
{
allDrugStock[j].ReturnQuantity = 25 - allDrugStock[q].Quantity;
item.DrawerChanneStockList.Add(allDrugStock[q]);
iReturnQuantity = iReturnQuantity - allDrugStock[q].ReturnQuantity;
if (iReturnQuantity <= 0)
break;
}
}
else
{
//库位不足,有药品无库位可放
allDrugStock[j].ReturnQuantity = iReturnQuantity;
item.DrawerChanneStockList.Add(allDrugStock[j]);
logger.Info($"还药品【{item.Drug.DrugName}】库位不足,有药品无库位可放");
errMessage += $"库位不足,药品【{item.Drug.DrugName}】无库位可放";
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = errMessage, Duration = 4000 }
);
break; ;
}
}
else
{
allDrugStock[j].ReturnQuantity = iReturnQuantity;
item.DrawerChanneStockList.Add(allDrugStock[j]);
break;
}
}
}
}
// checkChannelStock.Add(item);
i = 1;
}
//还空瓶数
item.EmptyQuantity = item.SelectedOrderList.Sum(oi => oi.DetailInfo.Quantity);
if (item.EmptyQuantity > 0)
{
//还空瓶库位
//查询还空瓶库位
//checkChannelStock[i].EmptyStock;
List<ChannelStock> allDrugStock = await orderInfoDao.GetStockByDRrug(item.DrugId, item.ManuNo, 2);// await _connection.ChannelStock.Where(cs => cs.MachineId == _setting.machineId && cs.DrawerType == 1 && cs.DrugId == csList[i].DrugId && cs.ManuNo == csList[i].ManuNo).OrderBy(cs => cs.Quantity).ToListAsync();
if (allDrugStock.Count > 0)
{
item.EmptyStock = allDrugStock.FirstOrDefault();
item.EmptyStock.ReturnQuantity = item.EmptyQuantity;
i = 1;
}
// checkChannelStock.Add(item);
}
if (i == 1)
{
checkChannelStock.Add(item);
}
}
if (errMessage.Length > 0)
{
return;
}
if (checkChannelStock == null || checkChannelStock.Count <= 0)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"无可操作的数据", Duration = 4000 }
);
return;
}
// //弹出确认提示框
var b = await dialogService.OpenAsync<CheckOrderConfirmDialog>(
$"核对确认",
new Dictionary<string, object>() { { "csList", checkChannelStock } },
new DialogOptions() { Width = "90vw", Resizable = true, Draggable = true, ShowClose = false });
// if (b)
// {
// bool bResult = await orderInfoDao.CheckOrderInfoByChannelStock(csList.ToList(), BoxNum);
// if (bResult)
// {
// _message.Notify(
// new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"处方已核对完成", Duration = 4000 }
// );
// await LoadData(null);
// }
// else
// {
// _message.Notify(
// new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"处方已核对失败", Duration = 4000 }
// );
// }
// }
if (b)
{
LoadData(null);
}
}
//导处方
async Task AddOrderMethod()
{
var b = await dialogService.OpenAsync<CheckOrderImportDialog>(
$"导入处方信息",
new Dictionary<string, object>() { { "boxModel", BoxNum } },
new DialogOptions() { Width = "80vw", Resizable = true, Draggable = true, ShowClose = false });
if (b != null)
{
try
{
List<OrderInfo> importOrderInfo = b;
if (importOrderInfo.Count > 0)
{
string errorMessage = string.Empty;
for (int i = 0; i < importOrderInfo.Count; i++)
{
if (!(bool)listBoxSelectedcsList?.OrderList.Contains(importOrderInfo[i]))
{
if (csList.Where(c => c.DrugId == importOrderInfo[i].DetailInfo.DrugId && c.ManuNo == importOrderInfo[i].DetailInfo.SetManuNo).FirstOrDefault() == null)
{
errorMessage += $"处方{importOrderInfo[i].OrderNo}导入失败,药品{importOrderInfo[i].DetailInfo.Drug.DrugName}不存在或批次{importOrderInfo[i].DetailInfo.SetManuNo}不存在";
}
else
{
csList.Where(c => c.DrugId == importOrderInfo[i].DetailInfo.DrugId && c.ManuNo == importOrderInfo[i].DetailInfo.SetManuNo).FirstOrDefault()?.SelectedOrderList.Add(importOrderInfo[i]);
//csList.Where(c => c.DrugId == importOrderInfo[i].DetailInfo.DrugId && c.ManuNo == importOrderInfo[i].DetailInfo.SetManuNo).FirstOrDefault()?.OrderList.Add(importOrderInfo[i]);
}
}
csList = csList;
}
if (!string.IsNullOrEmpty(errorMessage))
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = errorMessage, Duration = 4000 }
);
return;
}
else
{
StateHasChanged(); // 刷新UI
}
}
}
catch (Exception)
{
}
}
}
PageData<ChannelStock> result;
protected override async Task OnInitializedAsync()
{
BoxColor = BoxColorList.FirstOrDefault();
AllBoxList = await orderInfoDao.GetOperationNum(0);
BoxList = AllBoxList.Where(bl => bl.BoxNo == BoxColor.BoxNo && bl.BoxName <= 30).ToList();
BoxNum = AllBoxList.FirstOrDefault();
await base.OnInitializedAsync();
}
async Task LoadData(LoadDataArgs args)
{
string? roomName = BoxNum == null ? "" : setting.Value.roomName + BoxNum.BoxName.ToString().PadLeft(2, '0');
result = await orderInfoDao.GetAllOrderInfoDrugByBox(BoxNum, roomName, OrderDate);
isLoading = true;
csList = result.Desserts;
if (csList != null && csList.Count() > 0)
{
listBoxSelectedcsList = csList.ElementAt(0);
}
count = result.TotalDesserts;
isLoading = false;
StateHasChanged(); // 刷新UI
}
//麻醉药品使用登记本导出
async Task StockExport()
{
if (PortOrderDate == DateTime.MinValue)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择处方时间再导出", Duration = 4000 }
);
return;
}
// PageData<ReportUsageDateInfo> pageParentData = await reportDataDao.GetOrderInfoParentData(PortOrderDate);
// PageData<ReportUsageDateInfo> pageData = await reportDataDao.GetOrderInfoData(PortOrderDate);
List<ReportUsageParentDateInfo> pageParentData = await reportDataDao.GetOrderInfoParentData(PortOrderDate);
List<ReportUsageDateInfo> pageData = await reportDataDao.GetOrderInfoData(PortOrderDate);
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("parent", pageParentData);
parameters.Add("child", pageData);
GridReportUtil.PrintReport("use_book.grf", parameters);
}
// protected override async Task OnInitializedAsync()
// {
// await base.OnInitializedAsync();
// // orderInfos = dbContext.Employees;
// var result = await orderInfoDao.GetAllOrderInfo(OrderNo, OrderDate, args.Top, args.Skip);
// // Update the Data property
// orderInfos = result.Desserts;
// // Update the count
// count = result.TotalDesserts;
// isLoading = false;
// }
}