提交修改
This commit is contained in:
parent
da8593cae4
commit
7d4cd33524
|
|
@ -30,6 +30,10 @@ namespace MasaBlazorApp3.DataAccess.Dao
|
|||
public Task<PageData<OrderInfo>> GetAllOrderInfoByBox(int box,string OrderrNo, DateTime OrderDate, int? take, int? skip);
|
||||
//获取待处理处方中的麻醉师
|
||||
public Task<PageData<OrderInfo>> GetAllOrderInfo(string Name, string OrderrNo, DateTime? OrderDate, int? take, int? skip);
|
||||
//获取麻醉师信息
|
||||
public Task<List<Anaesthetist>> GetAnaesthetistName();
|
||||
//获取麻醉师单对应的手术间号
|
||||
public Task<List<BoxModel>> GetOperationNum(string anaesthetistName);
|
||||
//获取所有药盒号
|
||||
public Task<List<ChannelStock>> GetDrawerNum(string machineId);
|
||||
/// 获取指定药盒号
|
||||
|
|
|
|||
|
|
@ -975,6 +975,15 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
}
|
||||
if (flag)
|
||||
{
|
||||
tempData.Sort((s1, s3) =>
|
||||
{
|
||||
int i = s1.ChannelStock.DrawerNo.CompareTo(s3.ChannelStock.DrawerNo);
|
||||
if (i == 0)
|
||||
{
|
||||
return s1.ChannelStock.ColNo.CompareTo(s3.ChannelStock.ColNo);
|
||||
}
|
||||
return i;
|
||||
});
|
||||
return tempData;
|
||||
}
|
||||
else
|
||||
|
|
@ -1043,6 +1052,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
OperationTime = DateTime.Now,
|
||||
Type = 2,
|
||||
Status=2,//给交接柜补药不需要还药或还空瓶
|
||||
Quantity = boxTakeVo.GetQuantity,
|
||||
Operator = _globalStateService.Operator.Id,
|
||||
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
{
|
||||
record.ReturnQuantity1 = record.ReturnQuantity1 + record.CurrentReturnQuantity;
|
||||
record.Id = record.Id;
|
||||
record.Status = (record.Quantity - (record.ReturnQuantity1 + record.ReturnQuantity2 + sumQuantity)) == 0 ? 2 : 1;
|
||||
record.Status = (record.Quantity - (record.ReturnQuantity1 + record.ReturnQuantity2 + sumQuantity)) <= 0 ? 2 : 1;
|
||||
_connection.Update(record);
|
||||
}
|
||||
|
||||
|
|
@ -401,7 +401,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
Operator = _MachineRecord.Operator,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = _MachineRecord.CurrentReturnQuantity,
|
||||
Type = 31,
|
||||
Type = 32,
|
||||
InvoiceId = _MachineRecord.InvoiceId,
|
||||
GetId = _MachineRecord.GetId
|
||||
});
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
|
@ -704,6 +705,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
/// <returns></returns>
|
||||
public async Task<PageData<OrderInfo>> GetAllOrderInfo(string Name, string OrderrNo, DateTime? OrderDate, int? take, int? skip)
|
||||
{
|
||||
logger.Info($"GetAllOrderInfo开始:{DateTime.Now}");
|
||||
var query2 = from od in _connection.OrderDetail
|
||||
from cl in _connection.ChannelStock.Where(c => c.MachineId == _setting.boxMachineId).InnerJoin(c => c.DrugId == od.DrugId)
|
||||
group od by od.OrderNo into temp
|
||||
|
|
@ -717,14 +719,14 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
query = query.Where(oi => oi.anaesthetistName == Name);
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty(OrderrNo))
|
||||
{
|
||||
query = query.Where(oi => oi.OrderNo.Equals(OrderrNo));
|
||||
}
|
||||
if (OrderDate != null && OrderDate != DateTime.MinValue)
|
||||
{
|
||||
query = query.Where(oi => oi.ChargeDate.Date.Equals(((DateTime)OrderDate).Date));
|
||||
}
|
||||
//if (!String.IsNullOrEmpty(OrderrNo))
|
||||
//{
|
||||
// query = query.Where(oi => oi.OrderNo.Equals(OrderrNo));
|
||||
//}
|
||||
//if (OrderDate != null && OrderDate != DateTime.MinValue)
|
||||
//{
|
||||
// query = query.Where(oi => oi.ChargeDate.Date.Equals(((DateTime)OrderDate).Date));
|
||||
//}
|
||||
query = query.Where(oi => oi.Status == 0);
|
||||
query = query.Where(oi => oi.HisDispFlag == 0);
|
||||
query = query.Where(oi => oi.CancelFlag == 0);
|
||||
|
|
@ -752,12 +754,21 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
}
|
||||
}
|
||||
}
|
||||
logger.Info($"GetAllOrderInfo结束:{DateTime.Now}");
|
||||
return new PageData<OrderInfo>()
|
||||
{
|
||||
TotalDesserts = pagedData,
|
||||
Desserts = list
|
||||
};
|
||||
|
||||
}
|
||||
//public List<string> GetAnaesthetistName()
|
||||
//{
|
||||
// List<string> strList = new List<string>();
|
||||
// strList = _connection.OrderInfo.Where(it=>it.state==0&&it.HisDispFlag==0&&it.CancelFlag==0).Select(it => it.anaesthetistName).Distinct().ToList();
|
||||
// return strList;
|
||||
|
||||
//}
|
||||
/// <summary>
|
||||
/// 获取所有药盒号
|
||||
/// </summary>
|
||||
|
|
@ -784,11 +795,11 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
public async Task<List<BoxModel>> GetDrawerNumByOperationNum(string machineId,List<int> operationNum)
|
||||
{
|
||||
List<BoxModel> boxModelList = new List<BoxModel>();
|
||||
var query = _connection.ChannelStock
|
||||
.Where(cs => cs.MachineId == machineId && operationNum.Contains(cs.DrawerNo)&&cs.Quantity>0);
|
||||
boxModelList =await _connection.ChannelStock
|
||||
.Where(cs => cs.MachineId == machineId&& operationNum.Contains(cs.DrawerNo))
|
||||
.Select(cs => new BoxModel { BoxName = cs.DrawerNo.ToString(), BoxNo = Convert.ToInt32(cs.ColNo) }).Distinct().ToListAsync();
|
||||
//var query = _connection.ChannelStock
|
||||
// .Where(cs => cs.MachineId == machineId && operationNum.Contains(cs.DrawerNo)&&cs.Quantity>0);
|
||||
boxModelList = await _connection.ChannelStock
|
||||
.Where(cs => cs.MachineId == machineId && cs.Quantity > 0 && (operationNum.Contains(cs.DrawerNo)))
|
||||
.Select(cs => new BoxModel { BoxName = cs.DrawerNo, BoxNo = Convert.ToInt32(cs.ColNo) }).Distinct().OrderBy(cs=>new { cs.BoxName, cs.BoxNo }).ToListAsync();
|
||||
return boxModelList;
|
||||
}
|
||||
//核对处方
|
||||
|
|
@ -1034,5 +1045,25 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
}
|
||||
}
|
||||
|
||||
public async Task<List<Anaesthetist>> GetAnaesthetistName()
|
||||
{
|
||||
List<Anaesthetist> strList = new List<Anaesthetist>();
|
||||
strList =await _connection.OrderInfo.Where(it => it.state == 0 && it.HisDispFlag == 0 && it.CancelFlag == 0).Select(it => new Anaesthetist { Name = it.anaesthetistName }).Distinct().ToListAsync();
|
||||
return strList;
|
||||
|
||||
}
|
||||
|
||||
//获取麻醉师单对应的手术间号
|
||||
public async Task<List<BoxModel>> GetOperationNum(string anaesthetistName)
|
||||
{
|
||||
List<BoxModel> boxNumList = new List<BoxModel>();
|
||||
List<int> roomNameList = await _connection.OrderInfo
|
||||
.Where(it => it.state == 0 && it.HisDispFlag == 0 && it.CancelFlag == 0&&it.anaesthetistName== anaesthetistName)
|
||||
.Select(it => Convert.ToInt32(it.RoomName.Substring(6, it.RoomName.Length - 6))).Distinct().ToListAsync();
|
||||
roomNameList.Add(99);
|
||||
roomNameList.Add(111);
|
||||
boxNumList=await GetDrawerNumByOperationNum(_setting.boxMachineId, roomNameList);
|
||||
return boxNumList;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,11 +192,11 @@
|
|||
}
|
||||
});
|
||||
orderTakeVo.Status = 2;
|
||||
if (data.Any(it => it.ChannelStock.BoardType == 2))
|
||||
{
|
||||
//有单支抽屉则广播灭灯
|
||||
PortUtil.AllLightOff();
|
||||
}
|
||||
// if (data.Any(it => it.ChannelStock.BoardType.ToString().Contains("2")))
|
||||
// {
|
||||
// //有单支抽屉则广播灭灯
|
||||
// PortUtil.AllLightOff();
|
||||
// }
|
||||
if (options._data == drawerNos.Count - 1)
|
||||
{
|
||||
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
|
|
@ -224,8 +224,11 @@
|
|||
await Task.Delay(200);
|
||||
}
|
||||
|
||||
if (data[i].ChannelStock.BoardType.ToString().Contains("2"))
|
||||
if (data[i].ChannelStock.BoardType.ToString().Contains("2") && data[i].ChannelStock.DrawerNo == drawerNo)
|
||||
{
|
||||
|
||||
//有单支抽屉则广播灭灯
|
||||
PortUtil.AllLightOff();
|
||||
byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo);
|
||||
orderTakeVo.AfterQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray();
|
||||
logger.Info($"单支抽屉,关抽屉后检测数量【{string.Join(",", orderTakeVo.AfterQuantity)}】");
|
||||
|
|
@ -236,24 +239,24 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(alertMessage))
|
||||
{
|
||||
//弹出确认对话框
|
||||
alertMessage += "应取数与实际取出数不一致确认要保存吗?";
|
||||
//弹出确认提示框
|
||||
var confirm = await dialogService.OpenAsync<ConfirmDialog>(
|
||||
$"保存确认",
|
||||
new Dictionary<string, object>() { { "confirmInfo", alertMessage } },
|
||||
new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false });
|
||||
logger.Info(alertMessage);
|
||||
if (!confirm)
|
||||
{
|
||||
RestData();
|
||||
logger.Info("取消保存");
|
||||
// 关闭弹窗
|
||||
dialogService.Close(false);
|
||||
}
|
||||
}
|
||||
// if (!string.IsNullOrEmpty(alertMessage))
|
||||
// {
|
||||
// //弹出确认对话框
|
||||
alertMessage += "应取数与实际取出数不一致确认要保存吗?";
|
||||
// //弹出确认提示框
|
||||
// var confirm = await dialogService.OpenAsync<ConfirmDialog>(
|
||||
// $"保存确认",
|
||||
// new Dictionary<string, object>() { { "confirmInfo", alertMessage } },
|
||||
// new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false });
|
||||
logger.Info(alertMessage);
|
||||
// if (!confirm)
|
||||
// {
|
||||
// RestData();
|
||||
// logger.Info("取消保存");
|
||||
// // 关闭弹窗
|
||||
// dialogService.Close(false);
|
||||
// }
|
||||
// }
|
||||
stop();
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -109,7 +109,9 @@
|
|||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药盒号" Property="DrawerNo">
|
||||
<Template Context="DrawerNo">
|
||||
@($"{DrawerNo.DrawerNo}-{DrawerNo.ColNo}")
|
||||
@(DrawerNo.DrawerNo == 99 ? "急诊药盒" : DrawerNo.DrawerNo == 111 ? "恢复室药盒" : $"{DrawerNo.DrawerNo}-{DrawerNo.ColNo}")
|
||||
|
||||
@* @($"{DrawerNo.DrawerNo}-{DrawerNo.ColNo}") *@
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>
|
||||
|
|
@ -163,7 +165,7 @@
|
|||
async void OnRowSelect(ChannelList cl)
|
||||
{
|
||||
var b = await dialogService.OpenAsync<BoxAddDetailDialog>(
|
||||
$"{cl.DrawerNo}号药盒加药",
|
||||
cl.DrawerNo==99?"急诊药盒":cl.DrawerNo==111?"恢复室药盒":$"{cl.DrawerNo}-{cl.ColNo}号药盒加药",
|
||||
new Dictionary<string, object>() { { "boxChannelList", cl } },
|
||||
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
<style>
|
||||
.mycol {
|
||||
width: calc(100%/7);
|
||||
margin: 4px !important;
|
||||
width: calc(100%/8);
|
||||
margin: 4px !important;
|
||||
}
|
||||
</style>
|
||||
<div class="container-fluid">
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenDropDownDataGrid AllowVirtualization="true" Name="planName" TValue="Plan" Data="@plans" Value="@selectedPlan" ValueChanged="@OnPlanSelected"
|
||||
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
|
||||
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
|
||||
|
||||
<Columns>
|
||||
<RadzenDropDownDataGridColumn Property="Name" Title="套餐名称" Sortable="false" />
|
||||
|
|
@ -50,12 +50,23 @@
|
|||
<div class="row">
|
||||
<div class="col-12 mb-4">
|
||||
|
||||
<RadzenDataList @ref="grid" LoadData="@LoadData" WrapItems="true" Count="@count" IsLoading="@isLoading" Data="@_forecasts" PageSize="54" style="height:61vh; overflow:auto">
|
||||
<RadzenDataList @ref="grid" LoadData="@LoadData" WrapItems="true" Count="@count" IsLoading="@isLoading" Data="@_forecasts" PageSize="56" style="height:61vh; overflow:auto">
|
||||
<Template Context="channel">
|
||||
<RadzenCard class="mycol" onclick="@(() => CardClick(channel))">
|
||||
<RadzenRow>
|
||||
<RadzenColumn Size="8" Class="rz-text-truncate">
|
||||
<b class="rz-pr-3">@($"{channel.DrawerNo}-{channel.ColNo}")</b>
|
||||
@if (channel.DrawerNo == 99)
|
||||
{
|
||||
<b class="rz-pr-3">@($"急诊药盒")</b>
|
||||
}
|
||||
else if(channel.DrawerNo==111)
|
||||
{
|
||||
<b class="rz-pr-3">@($"恢复室药盒")</b>
|
||||
}
|
||||
else
|
||||
{
|
||||
<b class="rz-pr-3">@($"{channel.DrawerNo}-{channel.ColNo}")</b>
|
||||
}
|
||||
@* <b>号药盒</b> *@
|
||||
|
||||
</RadzenColumn>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="row justify-content-around align-items-center" style="height:600px;overflow:auto">
|
||||
@foreach (var cs in channelStockList)
|
||||
{
|
||||
<RadzenButton class="col-12" Style="margin-bottom:5px" Click="@(() => SelectDrawer((cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString())))" Text="@($"{cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()}")" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo != (cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()) ? Variant.Outlined : Variant.Flat)" />
|
||||
<RadzenButton class="col-12" Style="margin-bottom:5px" Click="@(() => SelectDrawer((cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString())))" Text="@(cs.DrawerNo==99?"急诊室药盒":cs.DrawerNo==111?"恢复室药盒":$"{cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()}")" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo != (cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()) ? Variant.Outlined : Variant.Flat)" />
|
||||
|
||||
}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,21 @@
|
|||
@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);
|
||||
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);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -42,46 +44,85 @@
|
|||
@* <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem"> *@
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="6">
|
||||
<RadzenLabel Text="麻醉师" Component="NamesList" />
|
||||
<RadzenLabel Text="麻醉医师" Component="NamesList" />
|
||||
<RadzenDropDownDataGrid AllowVirtualization="true" Name="NamesList" TValue="Anaesthetist" Data="@NamesList" @bind-Value="Name"
|
||||
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
|
||||
|
||||
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
|
||||
<Columns>
|
||||
<RadzenDropDownDataGridColumn Property="Name" Title="麻醉师" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="Name" Title="麻醉医师" Sortable="false" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
</RadzenColumn>
|
||||
|
||||
<RadzenColumn Size="6">
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
|
||||
<RadzenColumn Size="6" Style="margin-top:0.5rem">
|
||||
<RadzenLabel Text="核对药箱" Component="BoxList" />
|
||||
<RadzenDropDownDataGrid AllowVirtualization="true" Name="BoxList" TValue="BoxModel" Data="@BoxList" @bind-Value="BoxNum" Style="width: 100%;"
|
||||
AllowFilteringByAllStringColumns="true" TextProperty="药箱号">
|
||||
<Template>
|
||||
|
||||
@((context as BoxModel).BoxName == 99 ? "急诊药盒" : (context as BoxModel).BoxName == 111 ? "恢复室药盒" : (context as BoxModel).BoxName + "-" + (context as BoxModel).BoxNo)
|
||||
|
||||
@* @((context as BoxModel).BoxName + "-" + (context as BoxModel).BoxNo) *@
|
||||
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDropDownDataGridColumn Property="BoxName" Title="药箱号" Sortable="false" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="6">
|
||||
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
|
||||
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="6" Style="margin-top:0.5rem">
|
||||
<RadzenLabel Text="处方时间" Component="OrderDate" />
|
||||
<RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" AllowClear @bind-Value="OrderDate" Style="width: 100%;" Name="OrderDate" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="6" Style="margin-top:0.5rem">
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
<RadzenRow AlignItems="AlignItems.Center" Style="margin-top:2vh;margin-left:48vh;">
|
||||
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="确认" />
|
||||
<RadzenButton 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>
|
||||
</RadzenRow>
|
||||
@* </RadzenStack> *@
|
||||
</RadzenFieldset>
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem" Style="margin:0.5rem">
|
||||
<RadzenLabel Text="核对药箱" Component="BoxList" Style="margin:0.5rem" />
|
||||
@* <RadzenLabel Text="核对药箱" Component="BoxList" Style="margin:0.5rem" />
|
||||
<RadzenDropDownDataGrid AllowVirtualization="true" Name="BoxList" TValue="BoxModel" Data="@BoxList" @bind-Value="BoxNum"
|
||||
AllowFilteringByAllStringColumns="true" TextProperty="BoxName">
|
||||
AllowFilteringByAllStringColumns="true" TextProperty="药箱号">
|
||||
<Template>
|
||||
@((context as BoxModel).BoxName + "-" + (context as BoxModel).BoxNo)
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDropDownDataGridColumn Property="BoxName" Title="药箱号" Sortable="false" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="确认" />
|
||||
</RadzenDropDownDataGrid> *@
|
||||
@* <RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="确认" />
|
||||
<RadzenButton 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">
|
||||
|
|
@ -102,30 +143,31 @@
|
|||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
</RadzenStack>
|
||||
</Popup>
|
||||
</Popup> *@
|
||||
</RadzenStack>
|
||||
</form>
|
||||
<RadzenDataGrid @ref="grid" AllowRowSelectOnRowClick="@allowRowSelectOnRowClick" AllowFiltering="true" LoadData="@LoadData"
|
||||
FilterPopupRenderMode="PopupRenderMode.OnDemand" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
|
||||
Data="@orderInfos" ColumnWidth="200px" IsLoading="@isLoading" Count="@count" EmptyText="无数据"
|
||||
SelectionMode="DataGridSelectionMode.Multiple" @bind-Value=@selectedOrderInfos
|
||||
CellClick="@((DataGridCellMouseEventArgs<OrderInfo> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
FilterPopupRenderMode="PopupRenderMode.OnDemand" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
|
||||
Data="@orderInfos" ColumnWidth="200px" IsLoading="@isLoading" Count="@count" EmptyText="无数据"
|
||||
SelectionMode="DataGridSelectionMode.Multiple" @bind-Value=@selectedOrderInfos
|
||||
CellClick="@((DataGridCellMouseEventArgs<OrderInfo> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Sortable="false" Filterable="false" Width="4rem">
|
||||
<RadzenDataGridColumn Sortable="false" Filterable="false" Width="2rem">
|
||||
<HeaderTemplate>
|
||||
<RadzenCheckBox TabIndex="-1" TriState="false" TValue="bool?" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select all items" } })"
|
||||
Value="@(selectedOrderInfos == null || selectedOrderInfos?.Any() != true ? false : !orderInfos.All(i => selectedOrderInfos.Contains(i)) ? null : orderInfos.Any(i => selectedOrderInfos.Contains(i)))"
|
||||
Change="@(args => selectedOrderInfos = args == true ? orderInfos.ToList() : null)" />
|
||||
Value="@(selectedOrderInfos == null || selectedOrderInfos?.Any() != true ? false : !orderInfos.All(i => selectedOrderInfos.Contains(i)) ? null : orderInfos.Any(i => selectedOrderInfos.Contains(i)))"
|
||||
Change="@(args => selectedOrderInfos = args == true ? orderInfos.ToList() : null)" />
|
||||
</HeaderTemplate>
|
||||
<Template Context="data">
|
||||
<RadzenCheckBox TabIndex="-1" TriState="false" Value="@(selectedOrderInfos != null && selectedOrderInfos.Contains(data))" InputAttributes="@(new Dictionary<string, object>() { { "aria-label", "Select item" } })"
|
||||
TValue="bool" Change="@(args => { if (!allowRowSelectOnRowClick) { grid.SelectRow(data); } })" />
|
||||
TValue="bool" Change="@(args => { if (!allowRowSelectOnRowClick) { grid.SelectRow(data); } })" />
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Property="PatientName" Title="姓名" Sortable="false" Filterable="false" Width="4rem" />
|
||||
<RadzenDataGridColumn Property="PatientName" Title="姓名" Sortable="false" Filterable="false" Width="3rem" />
|
||||
<RadzenDataGridColumn Property="Sex" Title="性别" Sortable="false" Filterable="false" Width="2rem" />
|
||||
<RadzenDataGridColumn Property="OrderNo" Title="单号" Sortable="false" Filterable="false" Width="8rem" />
|
||||
<RadzenDataGridColumn Property="OrderNo" Title="单号" Sortable="false" Filterable="false" Width="3rem" />
|
||||
<RadzenDataGridColumn Property="ChargeDate" Title="处方时间" Sortable="false" Filterable="false" Width="5rem" />
|
||||
<RadzenDataGridColumn Property="DetailInfo.Drug.DrugName" Title="药品名称" FormatString="{0:d}" Sortable="false" Filterable="false" Width="8rem" />
|
||||
@* <Template Context="DetailInfo">
|
||||
@for (int i = 0; i < DetailList.DetailList.Count; i++)
|
||||
|
|
@ -144,7 +186,7 @@
|
|||
}
|
||||
</Template>
|
||||
</RadzenDataGridColumn> *@
|
||||
<RadzenDataGridColumn Width="110px" Title="批次" Property="DetailInfo.SetManuNo">
|
||||
<RadzenDataGridColumn Title="批次" Property="DetailInfo.SetManuNo" Filterable="false" Width="4rem">
|
||||
@* <Template Context="DetailInfo">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@DetailInfo.DetailInfo.SetManuNo</RadzenText>
|
||||
|
||||
|
|
@ -203,12 +245,14 @@
|
|||
</div>
|
||||
</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<OrderInfo> orderInfos;
|
||||
IList<OrderInfo> selectedOrderInfos;
|
||||
|
|
@ -226,7 +270,7 @@
|
|||
string OrderNo;
|
||||
DateTime? OrderDate = null;
|
||||
DateTime PortOrderDate = DateTime.Now;
|
||||
Popup popup;
|
||||
Popup popup;
|
||||
RadzenButton button;
|
||||
void OnCurrentDateChanged(DateTime args)
|
||||
{
|
||||
|
|
@ -249,7 +293,7 @@
|
|||
{
|
||||
args.Data.DetailInfo.drugManuNo = args.Data.DetailInfo.Drug.Manus.Where(m => m.ManuNo == args.Data.DetailInfo.SetManuNo).FirstOrDefault();
|
||||
}
|
||||
if (args.Data.DetailInfo.drugManuNo==null)
|
||||
if (args.Data.DetailInfo.drugManuNo == null)
|
||||
{
|
||||
args.Data.DetailInfo.drugManuNo = args.Data.DetailInfo.Drug.Manus.FirstOrDefault();
|
||||
}
|
||||
|
|
@ -258,14 +302,14 @@
|
|||
//确认
|
||||
async Task Confirm()
|
||||
{
|
||||
if (selectedOrderInfos==null)
|
||||
if (selectedOrderInfos == null)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择处方", Duration = 4000 }
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (BoxNum==null)
|
||||
if (BoxNum == null)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择药箱", Duration = 4000 }
|
||||
|
|
@ -303,51 +347,82 @@
|
|||
}
|
||||
async Task GetInitialDate()
|
||||
{
|
||||
result = await orderInfoDao.GetAllOrderInfo(null, null, null, null, null);
|
||||
List<string> nameList = result.Desserts.Select(it => it.anaesthetistName).Distinct().ToList();
|
||||
NamesList = nameList.Select(it => new Anaesthetist { Name = it }).ToList();
|
||||
Name = NamesList.FirstOrDefault();
|
||||
|
||||
// List<string> nameList = result.Desserts.Select(it => it.anaesthetistName).Distinct().ToList();
|
||||
NamesList = await orderInfoDao.GetAnaesthetistName();// nameList.Select(it => new Anaesthetist { Name = it }).ToList();
|
||||
Name = NamesList.FirstOrDefault();
|
||||
|
||||
// List<int> roomNameList = await orderInfoDao.Select(it => Convert.ToInt32(it.RoomName.Substring(6, it.RoomName.Length - 6))).Distinct().ToList();
|
||||
BoxList = await orderInfoDao.GetOperationNum(Name.Name);// await orderInfoDao.GetDrawerNumByOperationNum(setting.Value.boxMachineId, roomNameList); //roomNameList.Select(it => new BoxModel { BoxName = it, BoxNo = Convert.ToInt32(it.Substring(it.Length - 2, 2)) }).ToList();
|
||||
|
||||
BoxNum = BoxList.FirstOrDefault();
|
||||
|
||||
result = await orderInfoDao.GetAllOrderInfo(Name.Name, null, null, null, null);
|
||||
}
|
||||
async Task LoadData(LoadDataArgs args)
|
||||
{
|
||||
logger.Info($"LoadData开始:{DateTime.Now}-{result != null}");
|
||||
if (result != null)
|
||||
{
|
||||
isLoading = true;
|
||||
orderInfos = result.Desserts;
|
||||
// Update the count
|
||||
count = result.TotalDesserts;
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()}");
|
||||
// Update the Data property
|
||||
if (Name != null)
|
||||
{
|
||||
orderInfos = orderInfos.Where(it => it.anaesthetistName == Name.Name);
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()},Name{Name.Name}");
|
||||
count = orderInfos.Count();
|
||||
}
|
||||
if(OrderDate != null && OrderDate != DateTime.MinValue)
|
||||
if (OrderDate != null && OrderDate != DateTime.MinValue)
|
||||
{
|
||||
orderInfos = orderInfos.Where(it => it.ChargeDate.Date == OrderDate.Value.Date);
|
||||
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()}");
|
||||
// Update the count
|
||||
count = orderInfos.Count();
|
||||
}
|
||||
if(!string.IsNullOrEmpty(OrderNo))
|
||||
if (!string.IsNullOrEmpty(OrderNo))
|
||||
{
|
||||
orderInfos = orderInfos.Where(it => it.OrderNo.Contains(OrderNo));
|
||||
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()}-OrderNo{OrderNo}");
|
||||
// Update the count
|
||||
count = orderInfos.Count();
|
||||
}
|
||||
if (Name != null && OrderDate != null && OrderDate != DateTime.MinValue && !string.IsNullOrEmpty(OrderNo))
|
||||
{
|
||||
orderInfos = orderInfos.Where(it => it.anaesthetistName == Name.Name && it.ChargeDate.Date == OrderDate.Value.Date && it.OrderNo.Contains(OrderNo));
|
||||
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()}");
|
||||
// Update the count
|
||||
count = orderInfos.Count();
|
||||
}
|
||||
if (BoxNum != null&&BoxNum.BoxName!=99&&BoxNum.BoxName!=111)
|
||||
{
|
||||
string roomName = setting.Value.roomName + BoxNum.BoxName.ToString().PadLeft(2, '0');
|
||||
|
||||
orderInfos = orderInfos.Where(it => it.RoomName == roomName);
|
||||
|
||||
logger.Info($"LoadData:{DateTime.Now},{orderInfos.Count()};roomName{roomName}");
|
||||
count = orderInfos.Count();
|
||||
}
|
||||
|
||||
logger.Info($"LoadData结束:{DateTime.Now},{orderInfos.Count()}");
|
||||
|
||||
orderInfos = orderInfos.Skip(args.Skip.Value).Take(args.Top.Value).ToList();
|
||||
|
||||
logger.Info($"LoadData结束:{DateTime.Now},{orderInfos.Count()} -{args.Skip.Value}-{args.Top.Value}");
|
||||
|
||||
await InvokeAsync(StateHasChanged);
|
||||
//查找该麻醉师对应的手术室
|
||||
//List<string> roomNameList = orderInfos.Select(it => it.RoomName).Distinct().ToList();
|
||||
List<int> roomNameList = orderInfos.Select(it => Convert.ToInt32(it.RoomName.Substring(6, it.RoomName.Length - 6))).Distinct().ToList();
|
||||
BoxList = await orderInfoDao.GetDrawerNumByOperationNum(setting.Value.boxMachineId, roomNameList); //roomNameList.Select(it => new BoxModel { BoxName = it, BoxNo = Convert.ToInt32(it.Substring(it.Length - 2, 2)) }).ToList();
|
||||
// List<int> roomNameList = orderInfos.Select(it => Convert.ToInt32(it.RoomName.Substring(6, it.RoomName.Length - 6))).Distinct().ToList();
|
||||
// BoxList = await orderInfoDao.GetDrawerNumByOperationNum(setting.Value.boxMachineId, roomNameList); //roomNameList.Select(it => new BoxModel { BoxName = it, BoxNo = Convert.ToInt32(it.Substring(it.Length - 2, 2)) }).ToList();
|
||||
|
||||
BoxNum = BoxList.FirstOrDefault();
|
||||
// BoxNum = BoxList.FirstOrDefault();
|
||||
|
||||
isLoading = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
@using log4net;
|
||||
<style>
|
||||
.rz-custom-header {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<RadzenStack Orientation="Orientation.Horizontal">
|
||||
|
|
@ -17,8 +17,14 @@
|
|||
<div class="row justify-content-around align-items-center" style="margin-top: 220px; height: 430px;">
|
||||
@foreach (int i in DrawerNos)
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
|
||||
if (setting.Value.returnDrawer != null && setting.Value.returnDrawer.Contains(i))
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="true" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" Style="background-color: #d3d3d3;" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -37,14 +43,14 @@
|
|||
}
|
||||
</div>
|
||||
<RadzenDataGrid @ref="grid" Style="overflow:auto"
|
||||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
Data="@channels"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
Data="@channels"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
<HeaderTemplate>
|
||||
<RadzenRow JustifyContent="JustifyContent.End">
|
||||
@if (status < 3)
|
||||
|
|
@ -310,7 +316,7 @@
|
|||
for (int i = 0; i < ColNos.Count; i++)
|
||||
{
|
||||
int afterQuantity = await PortUtil.CheckQuantityForSingle(ColNos[i]);
|
||||
AfterQuantity[ColNos[i]-1] = afterQuantity;
|
||||
AfterQuantity[ColNos[i] - 1] = afterQuantity;
|
||||
logger.Info($"AfterQuantity:{ColNos[i]}-{string.Join(",", AfterQuantity)}数量{string.Join(", ", BeforeQuantity)}");
|
||||
}
|
||||
channels.Where(cl => ColNos.Contains(cl.ColNo)).ToList().ForEach(cl =>
|
||||
|
|
|
|||
|
|
@ -17,8 +17,14 @@
|
|||
<div class="row justify-content-around align-items-center" style="margin-top: 220px; height: 430px;">
|
||||
@foreach (int i in DrawerNos)
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
|
||||
if (setting.Value.returnDrawer != null && setting.Value.returnDrawer.Contains(i))
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="true" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" Style="background-color: #d3d3d3;" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -62,8 +68,8 @@
|
|||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="130px" Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="130px" Title="药品名称" Property="Drug.DrugName">
|
||||
<Template Context="channel">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug?.DrugName</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Caption">@channel.Drug?.DrugSpec</RadzenText>
|
||||
|
|
@ -250,7 +256,7 @@
|
|||
for (int i = 0; i < ColNos.Count; i++)
|
||||
{
|
||||
int afterQuantity = await PortUtil.CheckQuantityForSingle(ColNos[i]);
|
||||
AfterQuantity[ColNos[i]-1] = afterQuantity;
|
||||
AfterQuantity[ColNos[i] - 1] = afterQuantity;
|
||||
logger.Info($"AfterQuantity:{ColNos[i]}-{afterQuantity}数量{string.Join(",", AfterQuantity)}");
|
||||
}
|
||||
if (!BeforeQuantity.SequenceEqual(AfterQuantity))
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
var b = await dialogService.OpenAsync<RecordReturnEmptyDialog>(
|
||||
$"归还空瓶",
|
||||
new Dictionary<string, object>() { { "records", list } },
|
||||
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
|
||||
new DialogOptions() { Width = "85vw",Height="130vh", Resizable = true, Draggable = true, ShowClose = false }
|
||||
);
|
||||
if (b)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
|
||||
<div Style="height:vh;overflow:auto;">
|
||||
<RadzenDataGrid @ref="grid"
|
||||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
AllowRowSelectOnRowClick="true"
|
||||
CellClick="@((DataGridCellMouseEventArgs<MachineRecord> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="8" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
AllowPaging="false" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="60px" Sortable="false" Filterable="false">
|
||||
<HeaderTemplate>
|
||||
|
|
@ -61,19 +61,19 @@
|
|||
</RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
|
||||
</div>
|
||||
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" Gap="0.5rem" Style="margin-top:15px;">
|
||||
@if (status < 2)
|
||||
{
|
||||
<RadzenButton Click="@StartAdd" IsBusy="status > 0" BusyText="还空瓶中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="归还" Style="width: 120px" />
|
||||
<RadzenButton Click="@StartAdd" IsBusy="status > 0" BusyText="还空瓶中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="归还" Style="width: 120px" />
|
||||
}
|
||||
@if (status == 2)
|
||||
{
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
|
||||
}
|
||||
@if (status < 2)
|
||||
{
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
|
||||
}
|
||||
</RadzenStack>
|
||||
@code
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
var result = await machineRecordDao.getReturnEmptyInfoByRecords(records);
|
||||
// Update the Data property
|
||||
_returnEmptys = result.Desserts;
|
||||
emptyQuantity = _returnEmptys.Sum(it=>it.Quantity-it.ReturnQuantity1-it.ReturnQuantity2);
|
||||
emptyQuantity = _returnEmptys.Sum(it => it.Quantity - it.ReturnQuantity1 - it.ReturnQuantity2);
|
||||
// Update the count
|
||||
count = result.TotalDesserts;
|
||||
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
int status = 0;
|
||||
async Task StartAdd()
|
||||
{
|
||||
if (_returnEmptys.Where(it => it.CurrentReturnQuantity>0).Count()<=0)
|
||||
if (_returnEmptys.Where(it => it.CurrentReturnQuantity > 0).Count() <= 0)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择药品!", Duration = 4000 }
|
||||
|
|
@ -298,7 +298,7 @@
|
|||
else
|
||||
{
|
||||
// 关闭弹窗
|
||||
dialogService.Close(true);
|
||||
dialogService.Close(true);
|
||||
_message.Notify(new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"还空瓶操作完成!", Duration = 4000 });
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<style>
|
||||
.rz-custom-header {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<RadzenStack Orientation="Orientation.Horizontal">
|
||||
|
|
@ -17,22 +17,28 @@
|
|||
<div class="row justify-content-around align-items-center" style="margin-top: 220px; height: 430px;">
|
||||
@foreach (int i in DrawerNos)
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
|
||||
if (setting.Value.returnDrawer != null && setting.Value.returnDrawer.Contains(i))
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="true" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" Style="background-color: #d3d3d3;" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<RadzenButton class="col-5" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo !=i ? Variant.Outlined : Variant.Flat)" />
|
||||
}
|
||||
}
|
||||
</div>
|
||||
@* </RadzenStack> *@
|
||||
</div>
|
||||
</div>
|
||||
<RadzenDataGrid @ref="grid"
|
||||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
Data="@channels"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
Data="@channels"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
<HeaderTemplate>
|
||||
<RadzenRow JustifyContent="JustifyContent.End">
|
||||
@if (status < 3)
|
||||
|
|
|
|||
|
|
@ -204,16 +204,16 @@
|
|||
@{
|
||||
DateTime dateTime;
|
||||
bool success = DateTime.TryParse(s.EffDate, out dateTime);
|
||||
if (success && dateTime <= DateTime.Now.AddMonths(3))
|
||||
{
|
||||
@s.EffDate
|
||||
// if (success && dateTime <= DateTime.Now.AddMonths(3))
|
||||
// {
|
||||
// @s.EffDate
|
||||
|
||||
<p class="shaky-text">近效期药品!</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
// <p class="shaky-text">近效期药品!</p>
|
||||
// }
|
||||
// else
|
||||
//{
|
||||
@s.EffDate
|
||||
}
|
||||
//}
|
||||
}
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
|
|
@ -225,16 +225,16 @@
|
|||
<RadzenDataGridColumn Title="¹æ¸ñ" Property="DrugSpec"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="×Ü¿â´æ" Property="StockQuantity">
|
||||
<Template Context="s">
|
||||
@if (s.StockQuantity < 10)
|
||||
@* @if (s.StockQuantity < 10)
|
||||
{
|
||||
@s.StockQuantity
|
||||
|
||||
<p class="shaky-text">¿â´æÔ¤¾¯£¡</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
{ *@
|
||||
@s.StockQuantity
|
||||
}
|
||||
@* } *@
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,10 @@ namespace MasaBlazorApp3.Pojo
|
|||
{
|
||||
public class BoxModel
|
||||
{
|
||||
//库位号
|
||||
public int BoxNo { get; set; }
|
||||
public string BoxName { get; set; }
|
||||
//药箱号
|
||||
public int BoxName { get; set; }
|
||||
public string 药箱号 { get; set; } = "药箱号";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ namespace MasaBlazorApp3.Pojo.Config
|
|||
public int[] weigh { get; set; }
|
||||
public int[] box { get; set; }
|
||||
public int[] label { get; set; }
|
||||
|
||||
public int[] returnDrawer { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ namespace MasaBlazorApp3.Pojo.Config
|
|||
public int autoOutLog { get; set; }
|
||||
//手术室药盒的设备id
|
||||
public string boxMachineId { get; set; }
|
||||
//手术室名称
|
||||
public string roomName { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using MasaBlazorApp3.Pojo.Config;
|
|||
using Microsoft.Extensions.Options;
|
||||
using LinqToDB.Common;
|
||||
using MasaBlazorApp3.Util;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace MasaBlazorApp3.Port
|
||||
{
|
||||
|
|
@ -409,8 +410,22 @@ namespace MasaBlazorApp3.Port
|
|||
// 以抽屉为单位灭灯
|
||||
public void LightOffByDrawer(int DrawerNo)
|
||||
{
|
||||
SerialPort serialPort = canBusSerial;
|
||||
int channelDrawerNo = DrawerNo;
|
||||
if (_portConfig.totalDrawerCount > 8)
|
||||
{
|
||||
if (DrawerNo % 2 == 0)
|
||||
{
|
||||
channelDrawerNo = DrawerNo / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
serialPort = canBusSerialTwo;
|
||||
channelDrawerNo = (DrawerNo + 1) / 2;
|
||||
}
|
||||
}
|
||||
byte[] buffer = new byte[] { 0xaa, (byte)(0xf0 + DrawerNo), 0x06, 0x00, 0x00, 0x00, 0x00, 0xee };
|
||||
canBusSerial.Write(buffer, 0, 8);
|
||||
serialPort.Write(buffer, 0, 8);
|
||||
}
|
||||
// 以单支板为单位有药位置亮灯
|
||||
public async Task HasLightOnByCol(int DrawerNo, int[] ColNos)
|
||||
|
|
@ -434,7 +449,8 @@ namespace MasaBlazorApp3.Port
|
|||
|
||||
var channel = Convert.ToInt32((channelDrawerNo * 10 + ColNos[i]).ToString(), 16);
|
||||
byte[] buffer = new byte[] { 0xaa, (byte)channel, 0x0a, 0x00, 0x00, 0x00, 0x00, 0xee };
|
||||
canBusSerial.Write(buffer, 0, 8);
|
||||
serialPort.Write(buffer, 0, 8);
|
||||
logger.Info($"{serialPort}串口{DrawerNo}号{channelDrawerNo}抽屉{string.Join(',',ColNos)}库位有药位置亮灯发送指令:{Convert.ToHexString(buffer)}");
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(20));
|
||||
}
|
||||
|
||||
|
|
@ -469,6 +485,7 @@ namespace MasaBlazorApp3.Port
|
|||
{
|
||||
byte[] buffer = new byte[] { 0xaa, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xee };
|
||||
canBusSerial.Write(buffer, 0, 8);
|
||||
canBusSerialTwo.Write(buffer, 0, 8);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
//. 药房代码: 武昌 07010323 麻醉科小药柜 8个抽屉
|
||||
// 汉口 "07010363" "麻醉科 16个抽屉",
|
||||
"storage": "07010323",
|
||||
"roomName": "麻醉科手术室",
|
||||
"loginMode": 1,
|
||||
"opFirst": true,
|
||||
//自动退出登录时间,单位秒(0不自动退出)
|
||||
|
|
@ -27,7 +28,7 @@
|
|||
"canBusTwoExsit": true,
|
||||
"StorageCan": 1,
|
||||
//第二个can总线端口
|
||||
"canBusPortPathTwo": "COM31",
|
||||
"canBusPortPathTwo": "COM11",
|
||||
"doorAddr": 0,
|
||||
"storageBoxAddr": 0,
|
||||
"fridgePortExist": false,
|
||||
|
|
@ -37,7 +38,8 @@
|
|||
"single": [ 1 ],
|
||||
"weigh": [ 4 ],
|
||||
"box": [ 4 ],
|
||||
"label": [ 4 ]
|
||||
"label": [ 4 ],
|
||||
"returnDrawer": [2,4,6,8,10,12,14,16]
|
||||
},
|
||||
"fridge": {
|
||||
//冰箱温度区间
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_11','DM5',1,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_12','DM5',1,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_21','DM5',2,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_22','DM5',2,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_31','DM5',3,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_32','DM5',3,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_41','DM5',4,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_42','DM5',4,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_51','DM5',5,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_52','DM5',5,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_61','DM5',6,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_62','DM5',6,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_71','DM5',7,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_72','DM5',7,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_81','DM5',8,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_82','DM5',8,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_91','DM5',9,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_92','DM5',9,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_101','DM5',10,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_102','DM5',10,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_111','DM5',11,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_112','DM5',11,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_121','DM5',12,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_122','DM5',12,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_131','DM5',13,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_132','DM5',13,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_141','DM5',14,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_142','DM5',14,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_151','DM5',15,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_152','DM5',15,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_161','DM5',16,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_162','DM5',16,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_171','DM5',17,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_172','DM5',17,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_181','DM5',18,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_182','DM5',18,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_191','DM5',19,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_192','DM5',19,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_201','DM5',20,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_202','DM5',20,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_211','DM5',21,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_212','DM5',21,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_221','DM5',22,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_222','DM5',22,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_231','DM5',23,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_232','DM5',23,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_241','DM5',24,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_242','DM5',24,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_251','DM5',25,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_252','DM5',25,2);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_261','DM5',26,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_271','DM5',27,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_281','DM5',28,1);
|
||||
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_291','DM5',29,1);
|
||||
Loading…
Reference in New Issue