交接柜补药页面启用channnel_list表

This commit is contained in:
maqiao 2025-04-11 13:39:50 +08:00
parent 1d27a080fa
commit 7e91a2136b
7 changed files with 382 additions and 246 deletions

View File

@ -3,7 +3,7 @@
<connectionStrings>
<!-- 数据库连接字符串 -->
<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike;userid=root;password=root" />
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike_xx;userid=root;password=root" />
</connectionStrings>
<!--<runtime>
--><!--配置之后Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--

View File

@ -209,5 +209,12 @@ namespace DM_Weight.Models
private string _drugSpec;
[SugarColumn(ColumnName = "drug_manu_no")]
public string DrugSpec { get=> _drugSpec;set=>SetProperty(ref _drugSpec, value); }
[SugarColumn(ColumnName = "Stock_Quantity")]
public int BaseQuantity
{
get; set;
}
}
}

View File

@ -27,12 +27,25 @@ namespace DM_Weight.ViewModels
private readonly ILog logger = LogManager.GetLogger(typeof(AdditionWindowViewModel));
private List<ChannelStock> channelStocks;
public List<ChannelStock> ChannelStocks
private List<ChannelStock>? channelStocks;
public List<ChannelStock>? ChannelStocks
{
get => channelStocks;
set => SetProperty(ref channelStocks, value);
}
private List<ChannelList>? _channelLists;
public List<ChannelList>? _ChannelLists
{
get => _channelLists;
set => SetProperty(ref _channelLists, value);
}
private ChannelList? _channelList;
public ChannelList? _ChannelList
{
get => _channelList;
set => SetProperty(ref _channelList, value);
}
List<ChannelStock> selectedStock = new List<ChannelStock>();
private object _finishStatus = Visibility.Collapsed;
public object FinishStatus
@ -40,7 +53,7 @@ namespace DM_Weight.ViewModels
get => _finishStatus;
set => SetProperty(ref _finishStatus, value);
}
private bool _openStatusBtn =false;
private bool _openStatusBtn = false;
public bool OpenStatusBtn
{
get => _openStatusBtn;
@ -51,12 +64,12 @@ namespace DM_Weight.ViewModels
//private PortUtil _portUtil;
SocketHelper _socketHelper;
public AdditionWindowViewModel(IEventAggregator eventAggregator,SocketHelper socketHelper)
public AdditionWindowViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
{
//_dialogService = dialogService;
_eventAggregator = eventAggregator;
//_portUtil = portUtil;
_socketHelper= socketHelper;
_socketHelper = socketHelper;
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
@ -70,11 +83,13 @@ namespace DM_Weight.ViewModels
public void OnNavigatedTo(NavigationContext navigationContext)
{
_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
//_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
RequestData();
}
private void RequestData()
{
_ChannelLists?.Clear();
ChannelStocks?.Clear();
ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
.Includes<ChannelList>(cs => cs.ChannelLst)
.Includes<DrugInfo>(cs => cs.DrugInfo)
@ -83,21 +98,54 @@ namespace DM_Weight.ViewModels
.OrderBy(cs => cs.DrawerNo)
.OrderBy(cs => cs.DrugId)
.ToList();
//ChannelStocks= ChannelStocks.GroupBy(it=>new {it.DrawerNo,it.DrugId})
// .Select(it=>
// {
// var ret = it.First();
// ret.Quantity = it.Sum(itx => itx.Quantity);
// return ret;
// }).ToList();
//ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
if (ChannelStocks != null && ChannelStocks.Count > 0)
{
//2)查询channel_list将1中查询的添加到channel_list的channel_stock里供页面呈现显示
List<int> DrawerNoList = ChannelStocks.Select(cs => cs.DrawerNo).Distinct().ToList();
List<ChannelList> channelLists = new List<ChannelList>();
for (int i = 0; i < DrawerNoList.Count; i++)
{
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>()
.Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cl.DrawerNo == DrawerNoList[i])
.OrderBy(cl => cl.Id)
.OrderBy(cl => cl.DrawerNo)
.First();
if (channelList.channelStocks == null)
{
channelList.channelStocks = new List<ChannelStock>();
}
channelList.channelStocks.AddRange(ChannelStocks.Where(cs => cs.DrawerNo == DrawerNoList[i]).ToList());
if (channelList != null)
{
channelList.State = 1;//统一将所有的状态设置为已取药待入库
channelLists.Add(channelList);
}
}
_ChannelLists = channelLists;
}
else
{
_ChannelLists = null;
}
}
//开药箱放入药品
public DelegateCommand OpenBoxCommand
{
get => new DelegateCommand(() =>
{
selectedStock = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
if (_ChannelList == null || _ChannelList.channelStocks == null)
{
AlertMsg alertMsg = new AlertMsg
{
Message = "请先选择数据行",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return;
}
//selectedStock = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
selectedStock = _ChannelList.channelStocks.ToList();
if (selectedStock != null && selectedStock.Count > 0)
{
selectedStock.ForEach(cs => cs.ChannelLst.State = 2);
@ -168,7 +216,7 @@ namespace DM_Weight.ViewModels
// //ModbusHelper.SpeakAsync("请及时关闭药箱");
// i = 10;
//}
OpenStatusBtn =true;
OpenStatusBtn = true;
next();
}
else
@ -258,26 +306,32 @@ namespace DM_Weight.ViewModels
//}
selectedStock.ForEach(cs =>
{
cs.Quantity = cs.Quantity+cs.AddToJJNum;
cs.NeedNum= 0;
cs.Quantity = cs.Quantity + cs.AddToJJNum;
cs.NeedNum = 0;
cs.AddToJJNum = 0;
});
SqlSugarHelper.Db.Updateable(selectedStock).ExecuteCommand();
// 更新交接柜状态为 已取药未入库
SqlSugarHelper.Db.Updateable(new ChannelList()
{
State = 0
}).UpdateColumns(it => it.State).Where(it => it.DrawerNo == _ChannelList.DrawerNo).ExecuteCommand();
//List<ChannelStock> jiaojie = selectedStock.GroupBy(cs => cs.DrugId).Select(cs => cs.FirstOrDefault()).ToList();
//if (jiaojie != null && jiaojie.Count > 0)
//{
// for (int j = 0; j < jiaojie.Count; j++)
// {
// ChannelStock jiaojie_it = jiaojie[j];
// ChannelList jiaojieList = new ChannelList();
// jiaojieList.State = 0;
// jiaojieList.Id = jiaojie_it.ChannelLst.Id;
// //更新交接柜状态为0
// var result = SqlSugarHelper.Db.Updateable(jiaojieList)
// .UpdateColumns(it => new { it.State, it.Id }).ExecuteCommand();
// }
//}
List<ChannelStock> jiaojie = selectedStock.GroupBy(cs => cs.DrawerNo).Select(cs => cs.FirstOrDefault()).ToList();
if (jiaojie != null && jiaojie.Count > 0)
{
for (int j = 0; j < jiaojie.Count; j++)
{
ChannelStock jiaojie_it = jiaojie[j];
ChannelList jiaojieList = new ChannelList();
jiaojieList.State = 0;
jiaojieList.Id = jiaojie_it.ChannelLst.Id;
//更新交接柜状态为0
var result = SqlSugarHelper.Db.Updateable(jiaojieList)
.UpdateColumns(it => new { it.State, it.Id }).ExecuteCommand();
}
}
}
});
if (f.Data)

View File

@ -50,30 +50,70 @@ namespace DM_Weight.ViewModels
set => SetProperty(ref _snackbarMessageQueue, value);
}
private List<ChannelStock>? _channels;
private List<ChannelList>? _channelLists;
public List<ChannelStock>? Channels
public List<ChannelList>? _ChannelLists
{
get => _channels;
set => SetProperty(ref _channels, value);
get => _channelLists;
set => SetProperty(ref _channelLists, value);
}
private ChannelList? _channelList;
private ChannelStock _channelStock;
public ChannelStock Channel
public ChannelList? _ChannelList
{
get { return _channelStock; }
get => _channelList;
set
{
if (value != null)
{
DrugInfo = DrugInfos.Where(di => di.DrugId == value.DrugInfo.DrugId).First();
DrugInfo = DrugInfos.Where(di => di.DrugId == value.Drug.DrugId).First();
BaseQuantity = value.BaseQuantity.ToString();
//DrugManuNo = DrugManuNos.Where(dm => dm.DrugId == value.DrugId && dm.ManuNo == value.ManuNo).First();
}
SetProperty(ref _channelStock, value);
SetProperty(ref _channelList, value);
}
}
//private List<ChannelStock>? _channels;
//public List<ChannelStock>? Channels
//{
// get => _channels;
// set => SetProperty(ref _channels, value);
//}
//private ChannelStock _channelStock;
//public ChannelStock Channel
//{
// get { return _channelStock; }
// set
// {
// if (value != null)
// {
// DrugInfo = DrugInfos.Where(di => di.DrugId == value.DrugInfo.DrugId).First();
// BaseQuantity = value.BaseQuantity.ToString();
// //DrugManuNo = DrugManuNos.Where(dm => dm.DrugId == value.DrugId && dm.ManuNo == value.ManuNo).First();
// }
// SetProperty(ref _channelStock, value);
// }
//}
//private DrugManuNo? _drugManuNo;
//public DrugManuNo? DrugManuNo
//{
// get => _drugManuNo;
// set => SetProperty(ref _drugManuNo, value);
//}
//private List<DrugManuNo>? _drugManuNos;
//public List<DrugManuNo>? DrugManuNos
//{
// get => _drugManuNos;
// set => SetProperty(ref _drugManuNos, value);
//}
private List<DrugInfo>? _drugInfos;
@ -90,6 +130,18 @@ namespace DM_Weight.ViewModels
set
{
SetProperty(ref _drugInfo, value);
//if (_drugInfo != null)
//{
// DrugManuNos = SqlSugarHelper.Db.Queryable<DrugManuNo>().Where(m => m.DrugId == _drugInfo.DrugId.ToString()).ToList();
// if (DrugManuNos != null)
// {
// DrugManuNo = DrugManuNos[0];
// }
//}
//else
//{
// DrugManuNo = null;
//}
}
}
//药品基数
@ -120,26 +172,36 @@ namespace DM_Weight.ViewModels
private void RequestData()
{
Channels?.Clear();
_ChannelLists?.Clear();
BaseQuantity = "";
var list = SqlSugarHelper.Db.Queryable<ChannelStock>()
var list = SqlSugarHelper.Db.Queryable<ChannelList>()
//.Includes(cl => cl.channelStocks, cs => cs.DrugInfo,di=>di.drugBase)
.Includes(cs => cs.DrugInfo)
.Where(cs => cs.MachineId.Equals("DM5"))
.Where(cs => cs.DrawerNo == DrawerNo + 1).ToList();
.Includes(cl => cl.channelStocks)
.Includes(cl => cl.Drug)
.Where(cl => cl.MachineId.Equals("DM5"))
.Where(cl => cl.DrawerNo == DrawerNo + 1)
.OrderBy(cl => cl.DrugId).ToList();
//if (list != null && list.Count > 0)
//{
// Channels = list.GroupBy(cs =>new { cs.DrugId, cs.ManuNo }).Select(cs =>
// {
// var ret = cs.First();
// ret.Quantity = cs.Sum(itx => itx.Quantity);
// return ret;
// }).ToList();
//}
//else
//{
// Channels = null;
//}
if (list != null && list.Count > 0)
{
Channels = list.GroupBy(cs => cs.DrugId).Select(cs =>
{
var ret = cs.First();
ret.Quantity = cs.Sum(itx => itx.Quantity);
return ret;
}).ToList();
_ChannelLists = list;
}
else
{
Channels = null;
_ChannelLists = null;
}
}
@ -202,9 +264,9 @@ namespace DM_Weight.ViewModels
SnackbarMessageQueue.Enqueue("药品基数请输入正确的整数");
return;
}
if (Channels != null)
if (_ChannelList != null)
{
int iNum = Channels.Where(cs => cs.DrugId == DrugInfo.DrugId.ToString()).Count();
int iNum = _ChannelLists.Where(cs => cs.DrugId == DrugInfo.DrugId.ToString()).Count();
if (iNum > 0)
{
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
@ -215,24 +277,41 @@ namespace DM_Weight.ViewModels
}
var f = SqlSugarHelper.Db.UseTran(() =>
{
string chnguid = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"].ToString() && cs.DrawerNo == DrawerNo + 1).Select(cs => cs.Id).First();
//string chnguid = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"].ToString() && cs.DrawerNo == DrawerNo + 1).Select(cs => cs.Id).First();
int colNoCount = SqlSugarHelper.Db.Queryable<ChannelList>()
.Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"].ToString() && cs.DrawerNo == DrawerNo + 1)
.Count();
string chnguid = $"DM5_{(DrawerNo + 1)}_{(colNoCount+1)}_{DrugInfo.DrugId}";
SqlSugarHelper.Db.Insertable(new ChannelList()
{
Id = chnguid,
DrawerNo = (DrawerNo + 1),
ColNo=(colNoCount+1),
DrugId = DrugInfo.DrugId,
BaseQuantity = baseQuantity,
MachineId = "DM5",
DrawerType=1
}).ExecuteCommand();
SqlSugarHelper.Db.Insertable(new ChannelStock()
{
Chnguid = chnguid,
DrawerNo = DrawerNo + 1,
DrugId = DrugInfo.DrugId.ToString(),
DrugId = DrugInfo.DrugId,
BaseQuantity = baseQuantity,
Id = Guid.NewGuid().ToString(),
MachineId = "DM5",
AddToJJNum = 0,
NeedNum = baseQuantity
NeedNum = baseQuantity,
//ManuNo=DrugManuNo.ManuNo
}).ExecuteCommand();
// 保存数据 入库记录
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
DrawerNo = DrawerNo + 1,
DrugId = DrugInfo.DrugId.ToString(),
DrugId = DrugInfo.DrugId,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Quantity = baseQuantity,
@ -276,52 +355,56 @@ namespace DM_Weight.ViewModels
try
{
if (Channels == null)
if (_ChannelList == null)
{
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
SnackbarMessageQueue.Enqueue("所选手术间中无可解绑药品");
return;
}
if (Channel != null)
if (_ChannelList != null)
{
//解绑选定行的单个药品
SqlSugarHelper.Db.Deleteable(Channel).ExecuteCommand();
SqlSugarHelper.Db.Deleteable(_ChannelList.channelStocks).ExecuteCommand();
//解绑ChannelList表中的药品
SqlSugarHelper.Db.Deleteable<ChannelList>().Where(cl => cl.Id == _ChannelList.Id).ExecuteCommand();
// 保存数据 入库记录
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
DrawerNo = DrawerNo,
DrugId = Channel.DrugId.ToString(),
DrugId = _ChannelList.DrugId,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Quantity = Channel.Quantity,
Quantity = _ChannelList.BaseQuantity,
Type = 55,
InvoiceId = "解绑手术间单个药品",
}).ExecuteCommand();
}
else
{
//解绑药箱下的所有药品
Channels.ForEach(item =>
{
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
SnackbarMessageQueue.Enqueue("请选择要解绑的药品");
////解绑药箱下的所有药品
//Channels.ForEach(item =>
//{
SqlSugarHelper.Db.Deleteable(item).ExecuteCommand();
// SqlSugarHelper.Db.Deleteable(item).ExecuteCommand();
// 保存数据 入库记录
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
DrawerNo = DrawerNo,
DrugId = item.DrugId.ToString(),
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Quantity = item.Quantity,
Type = 55,
InvoiceId = "绑定手术间全部药品",
}).ExecuteCommand();
// // 保存数据 入库记录
// SqlSugarHelper.Db.Insertable(new MachineRecord()
// {
// MachineId = "DM5",
// DrawerNo = DrawerNo,
// DrugId = item.DrugId.ToString(),
// Operator = HomeWindowViewModel.Operator?.Id,
// OperationTime = DateTime.Now,
// Quantity = item.Quantity,
// Type = 55,
// InvoiceId = "绑定手术间全部药品",
// }).ExecuteCommand();
});
//});
}
@ -341,7 +424,7 @@ namespace DM_Weight.ViewModels
{
get => new DelegateCommand(() =>
{
if (DrugInfo.DrugId != Channel.DrugId)
if (DrugInfo.DrugId != _ChannelList.DrugId)
{
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
SnackbarMessageQueue.Enqueue("只能修改药品基数,不能更换绑定药品!");
@ -350,19 +433,29 @@ namespace DM_Weight.ViewModels
int baseQty = 0;
if (int.TryParse(BaseQuantity, out baseQty))
{
logger.Info($"修改药品基数{Channel.BaseQuantity}改为{baseQty}");
if (baseQty > Channel.BaseQuantity)
logger.Info($"修改药品基数{_ChannelList.BaseQuantity}改为{baseQty}");
if (baseQty > _ChannelList.BaseQuantity)
{
//基数变大,需要补药
Channel.NeedNum = baseQty - Channel.BaseQuantity;
_ChannelList.channelStocks[0].NeedNum = baseQty - _ChannelList.BaseQuantity;
}
Channel.BaseQuantity = baseQty;
int iUpdate = SqlSugarHelper.Db.Updateable<ChannelStock>(Channel).ExecuteCommand();
if (iUpdate > 0)
else
{
_ChannelList.channelStocks[0].NeedNum = 0;
}
_ChannelList.BaseQuantity = baseQty;
_ChannelList.channelStocks[0].BaseQuantity = baseQty;
int iUpdate = SqlSugarHelper.Db.Updateable<ChannelStock>(_ChannelList.channelStocks[0]).ExecuteCommand();
//更新ChannelList表中的BaseQuantity
int iUpdateChannelList = SqlSugarHelper.Db.Updateable<ChannelList>()
.SetColumns(it => new ChannelList() { BaseQuantity = baseQty })
.Where(it => it.Id == _ChannelList.Id).ExecuteCommand();
if (iUpdate > 0 && iUpdateChannelList > 0)
{
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676"));
SnackbarMessageQueue.Enqueue("保存修改完成!");
RequestData();
}
else
{
@ -386,127 +479,5 @@ namespace DM_Weight.ViewModels
{
get => new DelegateCommand(RequestData);
}
//打开全部药箱
public DelegateCommand OpenBox
{
get => new DelegateCommand(() => OpenBoxAction());
}
private void OpenBoxAction()
{
iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5")
.Select(cl => cl.DrawerNo).ToList();
if (iList.Count > 0)
{
for (int i = 0; i < iList.Count; i++)
{
//记录开药箱日志
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
DrawerNo = DrawerNo,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Type = 55,
InvoiceId = $"打开{DrawerNo}号手术间",
}).ExecuteCommand();
IsEnable = false;
Status = 1;
Console.WriteLine($"正在打开{iList[i]}号手术间");
ModbusHelper.GetInstance().OpenBoxDoor(iList[i] - 1);
//iNumber++;
}
//ModbusHelper.GetInstance().GetAllBoxState();
//if (Status == 2)
//{
// Status = 3;
//}
//IsEnable = true;
}
}
void DoMyPrismEvent(DeviceMsg msg)
{
switch (msg.EventType)
{
// 药箱打开
case EventType.DRAWEROPEN:
//记录开药箱日志
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
//DrawerNo = _portUtil.DrawerNo,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Type = 55,
InvoiceId = "手术间打开",
}).ExecuteCommand();
//if (iNumber < iList.Count)
//{
// //_portUtil.DrawerNo = iList[iNumber];
// iNumber++;
// if (Status == 1)
// {
// Status = 2;
// }
// //_portUtil.OpenBox();
//}
//else
{
//iNumber = 0;
//_portUtil.GetBoxStatus();
}
break;
// 药箱关闭
case EventType.DRAWERCLOSE:
//记录药箱操作日志
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
//DrawerNo = _portUtil.DrawerNo,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Type = 55,
InvoiceId = "手术间关闭",
}).ExecuteCommand();
if (Status == 2)
{
Status = 3;
}
IsEnable = true;
DrawerNo = -1;
//_portUtil.Operate = false;
break;
// 打开失败
case EventType.OPENERROR:
AlertMsg alertMsg = new AlertMsg
{
Message = msg.Message,
Type = MsgType.ERROR
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
IsEnable = true;
DrawerNo = -1;
Status = 0;
//记录药箱操作日志
SqlSugarHelper.Db.Insertable(new MachineRecord()
{
MachineId = "DM5",
//DrawerNo = _portUtil.DrawerNo,
Operator = HomeWindowViewModel.Operator?.Id,
OperationTime = DateTime.Now,
Type = 55,
InvoiceId = "手术间打开失败",
}).ExecuteCommand();
//_portUtil.Operate = false;
break;
}
}
}
}

View File

@ -296,7 +296,7 @@ namespace DM_Weight.ViewModels
{
get => new DelegateCommand(() =>
{
if (DrawerNo > 0)
if (DrawerNo >= 0)
{
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.DrawerNo == (DrawerNo+1) && cs.MachineId == "DM5").First();
if (BoxTypeSelectedItem != null)

View File

@ -10,6 +10,21 @@
xmlns:local="clr-namespace:DM_Weight.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<Style x:Key="st" TargetType="GridViewColumnHeader">
<Style.Setters>
<Setter Property="Height">
<Setter.Value>55</Setter.Value>
</Setter>
<Setter Property="Background">
<Setter.Value>#31ccec</Setter.Value>
</Setter>
<Setter Property="Foreground">
<Setter.Value>white</Setter.Value>
</Setter>
</Style.Setters>
</Style>
</UserControl.Resources>
<Grid>
<Grid.Resources>
<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
@ -86,7 +101,7 @@
</Grid>
<DataGrid
<!--<DataGrid
Grid.Row="1"
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
ItemsSource="{Binding Source={StaticResource GroupedDataList}}"
@ -104,7 +119,7 @@
<Setter Property="BorderThickness" Value="0.6"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
--><!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="BorderBrush" Value="Transparent" />
@ -112,7 +127,7 @@
</Trigger>
</Style.Triggers>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>-->
</Style>--><!--
<Style TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
@ -159,13 +174,77 @@
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
<DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
<DataGridTextColumn IsReadOnly="True" Header="效期" Binding="{Binding EffDate}"/>
<DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
<!--<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>-->
<DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddToJJNum}"/>
<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
--><!--<DataGridTextColumn IsReadOnly="True" Header="效期" Binding="{Binding EffDate}"/>-->
<!--<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>--><!--
<DataGridTextColumn IsReadOnly="True" Header="待入库数量" Binding="{Binding AddToJJNum}"/>
<DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
</DataGrid.Columns>
</DataGrid>
</DataGrid>-->
<ListView Grid.ColumnSpan="2"
Padding="0 6 0 0" Grid.Row="1"
ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
SelectedItem="{Binding _ChannelList}"
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
materialDesign:ListViewAssist.ListViewItemPadding="13">
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
<Setter Property="Foreground" Value="White" />
</Style>
</ListView.Resources>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding RowSelected}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
<GridViewColumn Width="80"
DisplayMemberBinding="{Binding DrawerNo}"
Header="药箱号"/>
<GridViewColumn Header="药品名称" Width="150">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="厂家" Width="150">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.Manufactory" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="规格" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugSpec" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="批次" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="ManuNo" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="待入库数" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="AddToJJNum" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="100"
DisplayMemberBinding="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"
Header="状态"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</UserControl>

View File

@ -154,10 +154,17 @@
SelectedItem="{Binding DrugInfo}"
DisplayMemberPath="drug_name_spec" IsEnabled="True" IsTextSearchEnabled="False" KeyUp="ComboBox_KeyUp"
/>
<!--<ComboBox
Margin="6 0 6 0"
Grid.Column="1"
materialDesign:HintAssist.Hint="批次"
ItemsSource="{Binding DrugManuNos}"
SelectedItem="{Binding DrugManuNo}"
DisplayMemberPath="ManuNo"/>-->
<TextBox
Grid.Column="1"
Text="{Binding BaseQuantity}"
materialDesign:HintAssist.Hint="药品基数"
materialDesign:HintAssist.Hint="基数"
Margin="16 0 32 6" Width="100"
Style="{StaticResource MaterialDesignTextBoxBase}"/>
<Button
@ -194,8 +201,8 @@
</StackPanel>
<ListView Grid.ColumnSpan="2"
Padding="0 6 0 0" Grid.Row="1"
ItemsSource="{Binding Channels, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
SelectedItem="{Binding Channel}"
ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
SelectedItem="{Binding _ChannelList}"
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
materialDesign:ListViewAssist.ListViewItemPadding="13">
@ -205,22 +212,40 @@
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Width="200"
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
<GridViewColumn Width="180"
DisplayMemberBinding="{Binding Drug.DrugName}"
Header="药品名称"/>
<GridViewColumn Width="200"
DisplayMemberBinding="{Binding DrugInfo.Manufactory}"
<GridViewColumn Width="150"
DisplayMemberBinding="{Binding Drug.Manufactory}"
Header="厂家"/>
<GridViewColumn Width="200"
DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"
<GridViewColumn Width="100"
DisplayMemberBinding="{Binding Drug.DrugSpec}"
Header="规格"/>
<GridViewColumn Width="100"
<GridViewColumn Width="50"
DisplayMemberBinding="{Binding BaseQuantity}"
Header="药品基数"/>
<GridViewColumn Width="100"
DisplayMemberBinding="{Binding Quantity}"
Header="药品库存"/>
Header="基数"/>
<GridViewColumn Header="批次" Width="80">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="ManuNo" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="库存" Width="50">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="Quantity" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<!--<GridViewColumn Header="效期" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="EffDate" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>-->
</GridView>
</ListView.View>