抽屉加药、抽屉取药页面添加开药盒按钮

修改三色灯标签写数据
This commit is contained in:
maqiao 2024-08-23 15:55:55 +08:00
parent efd7e78152
commit 659e35c35e
15 changed files with 101 additions and 29 deletions

View File

@ -1019,10 +1019,14 @@ namespace DM_Weight.Port
#region 2.4
// 基础数据写入方法
public async void WriteChannelInfo(int type, string content, int drawerNo, int colNo)
public async Task WriteChannelInfo(int type, string content, int drawerNo, int colNo)
{
try
{
if (content.Length > 10)
{
content = content.Substring(0, 10);
}
canBusSerial.DiscardInBuffer();
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
byte[] contentBuf = Encoding.GetEncoding("gb2312").GetBytes(trim(content));
@ -1117,7 +1121,7 @@ namespace DM_Weight.Port
}
}
// 写入数量
public void WriteQuantity(int drawerNo, int colNo, int quantity)
public async Task WriteQuantity(int drawerNo, int colNo, int quantity)
{
try
{

View File

@ -761,11 +761,11 @@ namespace DM_Weight.ViewModels
int totalQuantity = channelStockEffDate.Sum(it => it.Quantity);
//将库位多批次的总库存数更新标签
_portUtil.WriteQuantity(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo, totalQuantity);
await _portUtil.WriteQuantity(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo, totalQuantity);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(6, channelStockEffDate[0].EffDate == null ? "" : channelStockEffDate[0].EffDate, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
await _portUtil.WriteChannelInfo(6, channelStockEffDate[0].EffDate == null ? "" : channelStockEffDate[0].EffDate, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(5, channelStockEffDate[0].ManuNo, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
await _portUtil.WriteChannelInfo(5, channelStockEffDate[0].ManuNo, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.ShowContent(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
//}

View File

@ -309,15 +309,15 @@ namespace DM_Weight.ViewModels
{
_portUtil.WindowName = "BindingChannelDialog";
// 向显示屏写入库位信息
_portUtil.WriteChannelInfo(1, DrugInfo.DrugName, item.DrawerNo, item.ColNo);
await _portUtil.WriteChannelInfo(1, DrugInfo.DrugName, item.DrawerNo, item.ColNo);
await Task.Delay(200);
_portUtil.WriteChannelInfo(2, DrugInfo.DrugSpec, item.DrawerNo, item.ColNo);
await _portUtil.WriteChannelInfo(2, DrugInfo.DrugSpec, item.DrawerNo, item.ColNo);
await Task.Delay(200);
_portUtil.WriteChannelInfo(8, DrugInfo.Manufactory, item.DrawerNo, item.ColNo);
await _portUtil.WriteChannelInfo(8, DrugInfo.Manufactory, item.DrawerNo, item.ColNo);
await Task.Delay(200);
_portUtil.WriteChannelInfo(6, DrugManuNo.ManuNo, item.DrawerNo, item.ColNo);
await _portUtil.WriteChannelInfo(6, DrugManuNo.ManuNo, item.DrawerNo, item.ColNo);
await Task.Delay(200);
_portUtil.WriteChannelInfo(5, String.Format("{0:yyyy-MM-dd}", DrugManuNo.EffDate), item.DrawerNo, item.ColNo);
await _portUtil.WriteChannelInfo(5, String.Format("{0:yyyy-MM-dd}", DrugManuNo.EffDate), item.DrawerNo, item.ColNo);
await Task.Delay(200);
_portUtil.ShowContent(item.DrawerNo, item.ColNo);
}

View File

@ -201,19 +201,13 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.CheckQuantity);
});
}
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 35)
{
singleChannels.ForEach(it =>
{
_portUtil.WriteChannelInfoMethod(2, (it.Quantity - it.TakeQuantity).ToString(), it.DrawerNo, it.ColNo);
});
}
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 35)
{
for (int i = 0; i < singleChannels.Count; i++)
{

View File

@ -39,10 +39,13 @@ namespace DM_Weight.ViewModels
private PortUtil _portUtil;
IEventAggregator _eventAggregator;
//开药盒
public DelegateCommand<object> OpenBoxCommand { get; private set; }
public DrawerAddDrugWindowViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
{
_portUtil = portUtil;
_eventAggregator = eventAggregator;
OpenBoxCommand = new DelegateCommand<object>(param => OpenBoxAction(param));
}
void DoMyPrismEvent(DeviceMsg msg)
@ -148,6 +151,27 @@ namespace DM_Weight.ViewModels
}, () => Status == 0).ObservesProperty(() => Status);
}
private void OpenBoxAction(object parameter)
{
ChannelStock cs = parameter as ChannelStock;
if(cs.BoardType==35)
{
_portUtil.BoardType = cs.BoardType;
_portUtil.DrawerNo = cs.DrawerNo;
_portUtil.ColNos = new int[] { cs.ColNo};
_portUtil.OpenBox();
}
else
{
AlertMsg alertMsg = new AlertMsg
{
Message = "非药盒库位,无需开药盒",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
}
}
private bool _isFinishClick = false;
@ -311,8 +335,10 @@ namespace DM_Weight.ViewModels
//将库位多批次的总库存数更新标签
//_portUtil.WriteQuantity(singleChannels[0].DrawerNo, singleChannels[0].ColNo, singleChannels.Sum(it => it.Quantity) - singleChannels.Sum(it => it.TakeQuantity));
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity + it.AddQuantity);
});
}

View File

@ -44,11 +44,13 @@ namespace DM_Weight.ViewModels
private PortUtil _portUtil;
IEventAggregator _eventAggregator;
//开药盒
public DelegateCommand<object> OpenBoxCommand { get; private set; }
public DrawerTakeDrugWindowViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
{
_portUtil = portUtil;
_eventAggregator = eventAggregator;
OpenBoxCommand = new DelegateCommand<object>(param => OpenBoxAction(param));
}
void DoMyPrismEvent(DeviceMsg msg)
@ -151,6 +153,27 @@ namespace DM_Weight.ViewModels
});
}
private void OpenBoxAction(object parameter)
{
ChannelStock cs = parameter as ChannelStock;
if (cs.BoardType == 35)
{
_portUtil.BoardType = cs.BoardType;
_portUtil.DrawerNo = cs.DrawerNo;
_portUtil.ColNos = new int[] { cs.ColNo };
_portUtil.OpenBox();
}
else
{
AlertMsg alertMsg = new AlertMsg
{
Message = "非药盒库位,无需开药盒",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
}
}
private bool _isFinishClick = false;
@ -316,8 +339,9 @@ namespace DM_Weight.ViewModels
//将库位多批次的总库存数更新标签
//_portUtil.WriteQuantity(singleChannels[0].DrawerNo, singleChannels[0].ColNo, singleChannels.Sum(it => it.Quantity) - singleChannels.Sum(it => it.TakeQuantity));
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
});
}

View File

@ -373,8 +373,9 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity + it.AddQuantity);
});
}

View File

@ -437,8 +437,9 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
});
}

View File

@ -431,8 +431,9 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity + it.TakeQuantity);
});
}

View File

@ -455,8 +455,9 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType == 5);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
});
}

View File

@ -362,6 +362,7 @@ namespace DM_Weight.ViewModels
// 更新屏显库存
if (ChannelStock.BoardType == 5)
{
await Task.Delay(200);
_portUtil.WriteQuantity(ChannelStock.DrawerNo, ChannelStock.ColNo, ChannelStock.Quantity + ReturnQuantity);
}
if(ChannelStock.BoardType==35)

View File

@ -365,8 +365,10 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity + it.AddQuantity);
});
}

View File

@ -339,8 +339,9 @@ namespace DM_Weight.ViewModels
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
singleChannels.ForEach(it =>
singleChannels.ForEach(async it =>
{
await Task.Delay(200);
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
});
}

View File

@ -13,7 +13,7 @@
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
<convert:StatusConverter x:Key="StatusConverter" />
<convert:InputQuantityConverter x:Key="InputQuantityConverter" />
<convert:QuantityCountConverter x:Key="QuantityCountConverter"/>
<convert:QuantityCountConverter x:Key="QuantityCountConverter"/>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
@ -294,7 +294,15 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--Visibility="{Binding BoxShow, Converter={StaticResource StatusConverter}, ConverterParameter=OpenBox}"-->
<DataGridTemplateColumn Width="100"
Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="开药盒" Command="{Binding DataContext.OpenBoxCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!--<ListView

View File

@ -259,6 +259,14 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="100"
Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="开药盒" Command="{Binding DataContext.OpenBoxCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>