Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd8cc27d34 |
|
|
|
|
2c0d79d1dd |
|
|
|
|
a8d9fa0225 |
|
|
|
|
d3eaef9170 |
|
|
|
|
8ed320bc48 |
|
|
|
|
52769b3030 |
|
|
|
|
acdecc8700 |
|
|
|
|
de36bbafcc |
|
|
|
|
042470e390 |
|
|
|
|
443bd58414 |
|
|
|
|
157f88d629 |
|
|
|
|
d8d08559f3 |
|
|
|
|
500974a947 |
|
|
|
|
bb0710b8bb |
|
|
|
|
381381d65e |
|
|
|
|
dcd6200e54 |
|
|
|
|
e79cdae0da |
|
|
|
|
a5d5a4aa40 |
|
|
|
|
701f6c88e6 |
|
|
|
|
5970654ffe |
|
|
|
|
6b99940f50 |
|
|
|
|
e41db97fd0 |
|
|
|
|
b95d42d39d |
|
|
|
|
4e50d926f3 |
|
|
|
|
a094e35fb5 |
|
|
|
|
bf4db0096a |
|
|
|
|
88f7ccc7f8 |
|
|
|
|
e6b300ed00 |
|
|
|
|
39ad688a43 |
|
|
|
|
27c9afd75f |
|
|
|
|
cec943d500 |
|
|
|
|
169a261847 |
|
|
|
|
9f2e04ba2d |
|
|
|
|
7e91a2136b |
|
|
|
|
1d27a080fa |
|
|
|
|
af620ae141 |
|
|
|
|
e917275436 |
|
|
|
|
f539b988ac |
|
|
|
|
54ab9a6801 |
|
|
|
|
386a663026 |
|
|
|
|
5d04921387 |
|
|
|
|
4f5fb169d3 |
|
|
|
@ -360,4 +360,5 @@ MigrationBackup/
|
|||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
FodyWeavers.xsd
|
||||
/说明.txt
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWPF>true</UseWPF>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ Global
|
|||
{439FA76B-F874-40DB-BAF2-E3647CD55B10}.Release|x86.Build.0 = Debug|x86
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.Build.0 = Debug|x64
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
|
|
|||
|
|
@ -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_xx;userid=root;password=root" />
|
||||
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xt;userid=root;password=qq1223" />
|
||||
</connectionStrings>
|
||||
<!--<runtime>
|
||||
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
|
||||
<add key="stopRecord" value="180"/>
|
||||
|
||||
<add key="gridConnectionString" value="MYSQL; Database=xiangxiang; Password=root; Port=3306; Server=127.0.0.1; User=root;"/>
|
||||
<add key="gridConnectionString" value="MYSQL; Database=xt; Password=qq1223; Port=3306; Server=127.0.0.1; User=root;"/>
|
||||
<!-- 查询处方是orderNo还是orderGroupNo -->
|
||||
<add key="OrderNoName" value="orderNo" />
|
||||
<!-- 后门耗材板地址 没有则填写0-->
|
||||
|
|
@ -69,9 +69,7 @@
|
|||
<!--冰箱抽屉温度区间-->
|
||||
<add key="temperatureRange" value="2-8"/>
|
||||
<!--冰箱抽屉温度-->
|
||||
<add key="temperatureValue" value="3.2"/>
|
||||
<!--温度查询定时执行时间-->
|
||||
<add key="Interval" value="60000"/>
|
||||
<add key="temperatureValue" value="3.2"/>
|
||||
<!--冰箱状态1关闭;0打开-->
|
||||
<add key="FridgeState" value="0"/>
|
||||
<!--报警状态1关闭;0打开-->
|
||||
|
|
@ -99,7 +97,7 @@
|
|||
<!-- 指纹机号码 -->
|
||||
<add key="machineNumber" value="1"/>
|
||||
<!-- 指纹机ip -->
|
||||
<add key="fingerIp" value="192.168.50.201"/>
|
||||
<add key="fingerIp" value="192.168.50.59"/>
|
||||
|
||||
<!-- 多处方取药 0:不启用 1:启用-->
|
||||
<add key="MultiOrder" value="1"/>
|
||||
|
|
@ -124,6 +122,5 @@
|
|||
<add key="wsdSerialPort" value="COM1"/>
|
||||
<!--温度查询定时执行时间-->
|
||||
<add key="Interval" value="60000"/>
|
||||
<add key="test" value="Y"/>
|
||||
</appSettings>
|
||||
</configuration>
|
||||
|
|
@ -25,6 +25,7 @@ namespace DM_Weight
|
|||
/// </summary>
|
||||
public partial class App : PrismApplication
|
||||
{
|
||||
public static bool DbConnectionFail { get; set; } = false;
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(App));
|
||||
public App()
|
||||
{
|
||||
|
|
@ -52,7 +53,11 @@ namespace DM_Weight
|
|||
void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
|
||||
{
|
||||
logger.Error($"发生错误:{e.Exception.Message}");
|
||||
e.Handled = true;
|
||||
e.Handled = true; if (e.Exception.Message.Contains("连接数据库过程中发生错误"))
|
||||
{
|
||||
DbConnectionFail = true;
|
||||
Container.Resolve<MainWindow>();
|
||||
}
|
||||
}
|
||||
|
||||
void OnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
|
||||
|
|
@ -169,6 +174,11 @@ namespace DM_Weight
|
|||
containerRegistry.RegisterForNavigation<CheckSelfOrderWindow, CheckSelfOrderWindowViewModel>();
|
||||
|
||||
|
||||
//管理员根据药箱进行核对处方
|
||||
containerRegistry.RegisterForNavigation<CheckOrderNewWindowNew, CheckOrderNewWindowNewViewModel>();
|
||||
//麻醉师核对其名下单子
|
||||
containerRegistry.RegisterForNavigation<CheckSelfOrderWindowNew, CheckSelfOrderWindowNewViewModel>();
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
@ -284,6 +294,20 @@ namespace DM_Weight
|
|||
containerRegistry.RegisterForNavigation<SetMenuWindow, SetMenuWindowViewModel>();
|
||||
containerRegistry.RegisterDialog<AddNewMenuDialog>();
|
||||
containerRegistry.RegisterForNavigation<AddNewMenuDialog, AddNewMenuDialogViewModel>();
|
||||
//盘点
|
||||
containerRegistry.RegisterForNavigation<CheckStockWindow, CheckStockWindowViewModel>();
|
||||
containerRegistry.RegisterDialog<ConfirmDialog>();
|
||||
containerRegistry.RegisterForNavigation<ConfirmDialog, ConfirmDialogViewModel>();
|
||||
|
||||
//账册
|
||||
containerRegistry.RegisterForNavigation<AccountWindow, AccountWindowViewModel>();
|
||||
|
||||
//药品转移药箱
|
||||
containerRegistry.RegisterForNavigation<ExchangeWindow, ExchangeWindowViewModel>();
|
||||
containerRegistry.RegisterForNavigation<ExchangeDialog, ExchangeDialogViewModel>();
|
||||
containerRegistry.RegisterForNavigation<RemoveDialog, RemoveDialogViewModel>();
|
||||
containerRegistry.RegisterDialog<ExchangeDialog>();
|
||||
containerRegistry.RegisterDialog<RemoveDialog>();
|
||||
#endregion
|
||||
|
||||
// 设备记录页面
|
||||
|
|
@ -291,6 +315,22 @@ namespace DM_Weight
|
|||
|
||||
containerRegistry.RegisterForNavigation<ShowMessageDialog, ShowMessageDialogViewModel>();
|
||||
|
||||
//空页面,用于跳出登录时跳转以避免不走OnNavigatedFrom情况
|
||||
containerRegistry.RegisterForNavigation<EmptyWindow, EmptyWindowViewModel>();
|
||||
|
||||
//紧急开锁页面
|
||||
containerRegistry.RegisterForNavigation<EmergencyWindow, EmergencyWindowViewModel>();
|
||||
|
||||
//日期加时间页面
|
||||
containerRegistry.RegisterDialog<DatetimeDialog>();
|
||||
containerRegistry.RegisterForNavigation<DatetimeDialog, DatetimeDialogViewModel>();
|
||||
|
||||
containerRegistry.RegisterDialog<SelectOperationTypeDialog>();
|
||||
containerRegistry.RegisterForNavigation<SelectOperationTypeDialog, SelectOperationTypeDialogViewModel>();
|
||||
|
||||
containerRegistry.RegisterForNavigation<CheckSelfOrderForAdmin, CheckSelfOrderForAdminViewModel>();
|
||||
|
||||
|
||||
logger.Info("结束APP-RegisterTypes");
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,11 @@ namespace DM_Weight.Converter
|
|||
default:
|
||||
break;
|
||||
}
|
||||
int SelectedDrawerNo = int.Parse(value[1].ToString());
|
||||
int SelectedDrawerNo = int.Parse(value[1].ToString());
|
||||
if (value.Count() >= 3 && value[2] != null)
|
||||
{
|
||||
SelectedDrawerNo -= 1;
|
||||
}
|
||||
return ButtonDrawerNo == SelectedDrawerNo;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DM_Weight.Converter
|
||||
{
|
||||
internal class TakeReturnConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
int status = int.Parse(value.ToString());
|
||||
//取药箱
|
||||
if (parameter.ToString().Equals("TakeBox"))
|
||||
{
|
||||
if (status == 0)
|
||||
{
|
||||
return Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
//还药箱
|
||||
if (parameter.ToString().Equals("ReturnBox"))
|
||||
{
|
||||
if (status == 1)
|
||||
{
|
||||
return Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -98,6 +98,9 @@
|
|||
<None Update="log4net.config">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\account_book_new.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\account_book_temp.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
|
|
|||
|
|
@ -148,5 +148,21 @@ namespace DM_Weight.Models
|
|||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string ReviewerName { get;set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手术间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "shoushuJian")]
|
||||
public string ShoushuJian { get;set; }
|
||||
/// <summary>
|
||||
/// 使用剂量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Use_Dose")]
|
||||
public string UseDose { get; set; }
|
||||
/// <summary>
|
||||
/// 剩余剂量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Residual_Dose")]
|
||||
public string ResidualDose { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace DM_Weight.Models
|
|||
/// 默认值: 1
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "drawer_type")]
|
||||
public int DrawerType { get; set; }
|
||||
public int DrawerType { get; set; } = 1;
|
||||
/// <summary>
|
||||
///
|
||||
/// 默认值: 1
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ namespace DM_Weight.Models
|
|||
[SugarColumn(ColumnName = "eff_date")]
|
||||
public DateTime? EffDate { get; set; }
|
||||
/// <summary>
|
||||
/// 出库入库类型(1入库2出库31还药32还空瓶)
|
||||
/// 出库入库类型(1入库2出库31还药32还空瓶,21药箱移出移入,69药箱替换,55绑定药品操作(绑定、解绑、修改基数)) 70取出药箱、71还回药箱
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "type")]
|
||||
public int Type { get; set; }
|
||||
|
|
@ -103,10 +103,10 @@ namespace DM_Weight.Models
|
|||
[SugarColumn(ColumnName = "department_id")]
|
||||
public string DepartmentId { get; set; }
|
||||
/// <summary>
|
||||
/// 是否已经退药(0:没有1:还了部分2:完成)
|
||||
/// 是否已经退药(0:没有1:还了部分2:完成) 取出药箱70还回药箱71
|
||||
/// 默认值: 0
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "status", IsOnlyIgnoreInsert = true)]
|
||||
[SugarColumn(ColumnName = "status")]
|
||||
public int Status { get; set; }
|
||||
/// <summary>
|
||||
/// 退药量
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 药箱药品移动记录表
|
||||
/// </summary>
|
||||
[SugarTable("move_channel_stock")]
|
||||
public class MoveChannelStock
|
||||
{
|
||||
//[SugarColumn(ColumnName ="id",IsPrimaryKey =true)]
|
||||
//public int Id { get; set; }
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string MachineId{get;set;}
|
||||
[SugarColumn(ColumnName = "drug_id")]
|
||||
public string DrugId { get; set; }
|
||||
[SugarColumn(ColumnName = "quantity")]
|
||||
public int Quantity { get; set; }
|
||||
[SugarColumn(ColumnName = "From_manu_no")]
|
||||
public string FromManuNo { get; set; }
|
||||
[SugarColumn(ColumnName = "operator")]
|
||||
public int? Operator { get; set; }
|
||||
[SugarColumn(ColumnName = "reviewer")]
|
||||
public int? Reviewer { get; set; }
|
||||
[SugarColumn(ColumnName = "type")]
|
||||
public int Type { get; set; }
|
||||
[SugarColumn(ColumnName = "FromDrawer")]
|
||||
public int FromDrawer { get; set; }
|
||||
[SugarColumn(ColumnName = "ToDrawer")]
|
||||
public int ToDrawer { get; set; }
|
||||
[SugarColumn(ColumnName = "To_manu_no")]
|
||||
public string ToManuNo { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +1,15 @@
|
|||
using System;
|
||||
using Prism.Mvvm;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
[SugarTable("surgical_residual")]
|
||||
public class SurgicalResidual
|
||||
public class SurgicalResidual : BindableBase
|
||||
{
|
||||
//[SugarColumn(ColumnName = "id")]
|
||||
//public int Id { get; set; }
|
||||
|
|
@ -23,7 +24,7 @@ namespace DM_Weight.Models
|
|||
|
||||
//public string residual_dose { get; set; }
|
||||
[SugarColumn(ColumnName = "create_time")]
|
||||
public string CreateTime { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
//使用量
|
||||
[SugarColumn(ColumnName = "use_dose")]
|
||||
public string UseDose { get; set; }
|
||||
|
|
@ -35,11 +36,35 @@ namespace DM_Weight.Models
|
|||
//余液处置时间
|
||||
[SugarColumn(ColumnName = "disposal_time")]
|
||||
public string DisposalTime { get; set; }
|
||||
//数量
|
||||
[SugarColumn(ColumnName = "quantity")]
|
||||
public int Quantity { get; set; }
|
||||
//病人ID
|
||||
[SugarColumn(ColumnName = "patient_id")]
|
||||
public string PatientId { get; set; }
|
||||
//病人
|
||||
[SugarColumn(ColumnName = "patient_name")]
|
||||
public string PName { get; set; }
|
||||
//性别
|
||||
[SugarColumn(ColumnName = "sex")]
|
||||
public string Sex { get; set; }
|
||||
//毒麻柜使用的状态
|
||||
[SugarColumn(ColumnName = "dm_status")]
|
||||
public int DmStatus { get; set; }
|
||||
//批次
|
||||
[SugarColumn(ColumnName = "manu_no")]
|
||||
public string ManuNo { get; set; }
|
||||
//麻醉师工号
|
||||
[SugarColumn(ColumnName = "anaesthetist_code")]
|
||||
public string DoctorCode { get; set; }
|
||||
//药品信息
|
||||
[Navigate(NavigateType.ManyToOne, nameof(DrugId))]
|
||||
public DrugInfo DrugInfo { get; set; }
|
||||
//使用量+单位
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string UseDoseInfo
|
||||
{
|
||||
get => UseDose==null ? "" : UseDose + DoseUnit;
|
||||
get => UseDose == null ? "" : UseDose + DoseUnit;
|
||||
}
|
||||
/// <summary>
|
||||
/// 剩余量+单位
|
||||
|
|
@ -49,5 +74,11 @@ namespace DM_Weight.Models
|
|||
{
|
||||
get => ResidualDose == null ? "" : ResidualDose + DoseUnit;
|
||||
}
|
||||
/// <summary>
|
||||
/// 是否选中
|
||||
/// </summary>
|
||||
private bool _itemIsChecked;
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public bool ItemIsChecked { get => _itemIsChecked; set => SetProperty(ref _itemIsChecked, value); }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
public class TotalDrug
|
||||
{
|
||||
public string DrugName { get; set; }
|
||||
public int TotalCount { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -73,5 +73,8 @@ namespace DM_Weight.Models
|
|||
{
|
||||
return "userList = [UserName:" + Nickname + ", UserId:" + UserName + "]";
|
||||
}
|
||||
}
|
||||
//保存用户已取药箱的药箱号
|
||||
//[SugarColumn(ColumnName = "Box_Num")]
|
||||
//public string BoxNumber { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using DM_Weight.util;
|
|||
using DM_Weight.ViewModels;
|
||||
using log4net;
|
||||
using Mina.Core.Future;
|
||||
using Mina.Core.Session;
|
||||
using Mina.Filter.Codec;
|
||||
using Mina.Filter.Logging;
|
||||
using Mina.Transport.Socket;
|
||||
|
|
@ -25,18 +26,18 @@ namespace DM_Weight.Port
|
|||
private readonly ILog logger = LogManager.GetLogger(typeof(SocketHelper));
|
||||
AsyncSocketConnector acceptor = new AsyncSocketConnector();
|
||||
IConnectFuture iConnectFuture;
|
||||
public bool OpenStatus=false;
|
||||
public bool OpenStatus = false;
|
||||
public bool ConnectedStatus = false;
|
||||
//多线程退出标识
|
||||
public bool IsMultiThread = false;
|
||||
string ip = ConfigurationManager.AppSettings["modbusIp"].ToString();
|
||||
int port =Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
||||
int port = Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
||||
IEventAggregator _eventAggregator;
|
||||
FingerprintUtil _fingerprintUtil;
|
||||
public DateTime dateTime { get; set; } = DateTime.Now;
|
||||
public SocketHelper(IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil)
|
||||
{
|
||||
_fingerprintUtil= fingerprintUtil;
|
||||
_fingerprintUtil = fingerprintUtil;
|
||||
_eventAggregator = eventAggregator;
|
||||
acceptor.ExceptionCaught += (o, e) =>
|
||||
{
|
||||
|
|
@ -59,18 +60,22 @@ namespace DM_Weight.Port
|
|||
OpenStatus = (bool)e.Message;
|
||||
logger.Info("MessageReceived>>>>>>>>>>>>>>>>" + OpenStatus);
|
||||
};
|
||||
|
||||
|
||||
acceptor.SessionClosed += (o, e) =>
|
||||
{
|
||||
logger.Info("SessionClosed");
|
||||
//Task.Delay(50).Wait();
|
||||
SocketConnect();
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
_fingerprintUtil.FingerDisconnect();
|
||||
});
|
||||
};
|
||||
acceptor.SessionClosed += new EventHandler<IoSessionEventArgs>(SessionCloseMethod);
|
||||
|
||||
//acceptor.SessionClosed += (o, e) =>
|
||||
//{
|
||||
// logger.Info($"SessionClosed;ExitFlag:{ExitFlag}");
|
||||
// //Task.Delay(50).Wait();
|
||||
// if (!ExitFlag)
|
||||
// {
|
||||
// SocketConnect();
|
||||
// Task.Factory.StartNew(() =>
|
||||
// {
|
||||
// _fingerprintUtil.FingerDisconnect();
|
||||
// });
|
||||
// }
|
||||
//};
|
||||
this.SocketConnect();
|
||||
}
|
||||
int i = 0;
|
||||
|
|
@ -90,7 +95,7 @@ namespace DM_Weight.Port
|
|||
else
|
||||
{
|
||||
logger.Error($"尝试{i}次连接后均连接不上");
|
||||
|
||||
|
||||
//AlertMsg alertMsg = new AlertMsg
|
||||
//{
|
||||
// Message = $"网口连接断开!",
|
||||
|
|
@ -106,9 +111,32 @@ namespace DM_Weight.Port
|
|||
ConnectedStatus = iConnectFuture.Connected;
|
||||
}
|
||||
|
||||
private void SessionCloseMethod(System.Object o, IoSessionEventArgs e)
|
||||
{
|
||||
logger.Info($"SessionClosed");
|
||||
SocketConnect();
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
_fingerprintUtil.FingerDisconnect();
|
||||
});
|
||||
}
|
||||
public void SocketDisConnect()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
acceptor.SessionClosed -= new EventHandler<IoSessionEventArgs>(SessionCloseMethod);
|
||||
iConnectFuture.Session.CloseNow();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"SocketDisConnect异常{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public void SendMessage(MyBaseMessage baseMessage)
|
||||
{
|
||||
if(!ConnectedStatus)
|
||||
if (!ConnectedStatus)
|
||||
{
|
||||
SocketConnect();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,5 +365,42 @@ namespace DM_Weight.Report
|
|||
Report.PrintPreview(true);
|
||||
|
||||
}
|
||||
|
||||
public static void PrintReportAccountBook(DateTime? startDate, DateTime? endDate, string drug_id)
|
||||
{
|
||||
// 定义Grid++Report报表主对象
|
||||
GridppReport Report = new GridppReport();
|
||||
// 加载模板文件
|
||||
Report.LoadFromFile(new FileInfo(AppDomain.CurrentDomain.BaseDirectory) + "ReportTemp//" + "account_book_new.grf");
|
||||
Report.DetailGrid.Recordset.ConnectionString = gridConnectionString;
|
||||
DateTime? p_startDate = startDate?? Convert.ToDateTime("2010-1-1");
|
||||
DateTime? p_endDate = endDate ?? DateTime.Now.AddDays(1);
|
||||
string p_machine_id = (ConfigurationManager.AppSettings["machineId"] ?? "DM1");
|
||||
string SQL = $@" select ab.drug_id, ab.type,
|
||||
di.drug_name AS DrugName,di.Drug_spec AS DrugSpec,di.big_unit AS BigUnit,di.small_unit AS SmallUnit, DATE_FORMAT(ab.create_date,'%Y/%m/%d') AS oldYearMD,
|
||||
DATE_FORMAT(ab.create_time,'%Y/%m/%d %H:%i:%s') AS YearMD,ab.manu_no AS ManuNo,DATE_FORMAT(ab.eff_date,'%Y%m%d') AS effDate,IF(ab.type=2,'',ab.add_quantity) AS InQuantity,ab.shoushuJian AS shoushuJian,
|
||||
re.Patient_name AS PName,re.sex AS Sex,re.age AS Age,IF(ab.type=3,ab.use_dose,re.use_dose) AS UseDose,IF(ab.type=3,ab.residual_dose,re.residual_dose) AS ResidualDose,re.create_time AS DiposalTime
|
||||
,re.operator_name, ab.manu_stock AS Stock,ab.total_stock AS empty,ab.total_stock,UL.User_name AS SendUser,
|
||||
IF(ab.type=1,UL.User_name,UL2.User_name) AS InCheckUser,
|
||||
re.supervisor_name AS CheckUser,ab.manu_stock,ab.total_stock,ab.user_id1,ab.user_id2,ab.out_Quantity
|
||||
,DB.BASEQUANTITY AS BaseQuantity,re.card_no AS ZYH,oi.dept_name AS KS,re.anaesthetist_name AS YS,
|
||||
IF(ab.`type`=1,'',UL.User_name) AS emptyUser,
|
||||
(SELECT sum(quantity) from channel_stock cs where cs.drug_id=ab.drug_id and cs.manu_no=ab.manu_no and cs.machine_id in('DM3','DM5')) AS CurrentStock
|
||||
from account_book_g2 ab inner join drug_info di on ab.drug_id=di.Drug_ID
|
||||
LEFT JOIN DRUG_BASE DB ON di.DRUG_ID=DB.DRUGID AND DB.MACHINE_ID='DM3'
|
||||
LEFT JOIN order_info_sm oi on ab.invoice_no=oi.order_no
|
||||
LEFT JOIN user_list UL ON ab.user_id1=UL.ID
|
||||
LEFT JOIN user_list UL2 ON ab.user_id2=UL.ID
|
||||
LEFT JOIN surgical_residual re on ab.invoice_no=re.order_no WHERE ab.machine_id='DM3' and ab.type in(1,2,3) and
|
||||
ab.create_time>'{p_startDate}' AND ab.create_time<'{p_endDate}' ";
|
||||
if (!string.IsNullOrEmpty(drug_id))
|
||||
{
|
||||
SQL += " AND ab.drug_id='" + drug_id + "' ";
|
||||
}
|
||||
SQL += " ORDER BY ab.create_time,ab.drug_id,ab.Manu_No,ab.id ";
|
||||
|
||||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
Report.PrintPreview(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,712 @@
|
|||
{
|
||||
"Version":"6.8.1.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Weight":400,
|
||||
"Charset":134
|
||||
},
|
||||
"Printer":{
|
||||
"Oriention":"Landscape",
|
||||
"TopMargin":0.3175,
|
||||
"RightMargin":1,
|
||||
"BottomMargin":0.3969
|
||||
},
|
||||
"DetailGrid":{
|
||||
"CenterView":true,
|
||||
"Recordset":{
|
||||
"QuerySQL":"SELECT \r\n dmr.`drawer_no` AS drawerNo,\r\n dmr.`col_no` AS colNo,\r\n dmr.`type` AS `type`,\r\n CONCAT(dmr.`quantity`,IF(dmr.`type`=32,\"(空瓶)\",\"\")) AS quantity,\r\n dmr.`manu_no` AS manuNo,\r\n dmr.`eff_date` AS effDate,\r\n dmr.`operation_time` AS operationTime,\r\n di.`drug_name` AS drugName,\r\n di.`drug_spec` AS drugSpec,\r\n di.`pack_unit` AS packUnit,\r\n di.`manufactory` AS manuFactory,\r\n di.`max_stock` AS baseQuantity,\r\n dmr.`drug_id` AS drugId,\r\n ul.`user_name` AS nickname\r\nFROM\r\n dm_machine_record dmr\r\nLEFT JOIN drug_info di ON di.`drug_id` = dmr.`drug_id`\r\nLEFT JOIN user_list ul ON ul.`id` = dmr.`Operator`\r\nWHERE dmr.`type` in (31, 32)\r\n AND dmr.`machine_id` = :machine_id\r\n AND dmr.`operation_time` > :startDate\r\n AND dmr.`operation_time` < :endDate",
|
||||
"Field":[
|
||||
{
|
||||
"Name":"药品名称",
|
||||
"DBFieldName":"DrugName"
|
||||
},
|
||||
{
|
||||
"Name":"日期",
|
||||
"DBFieldName":"YearMD"
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"DBFieldName":"ManuNo"
|
||||
},
|
||||
{
|
||||
"Name":"效期",
|
||||
"Format":"yyyy/MM/dd",
|
||||
"DBFieldName":"effDate"
|
||||
},
|
||||
{
|
||||
"Name":"领入",
|
||||
"DBFieldName":"InQuantity"
|
||||
},
|
||||
{
|
||||
"Name":"规格",
|
||||
"DBFieldName":"DrugSpec"
|
||||
},
|
||||
{
|
||||
"Name":"大单位",
|
||||
"DBFieldName":"BigUnit"
|
||||
},
|
||||
{
|
||||
"Name":"小单位",
|
||||
"DBFieldName":"SmallUnit"
|
||||
},
|
||||
{
|
||||
"Name":"基数",
|
||||
"DBFieldName":"BaseQuantity"
|
||||
},
|
||||
{
|
||||
"Name":"手术间",
|
||||
"DBFieldName":"shoushuJian"
|
||||
},
|
||||
{
|
||||
"Name":"患者姓名",
|
||||
"DBFieldName":"PName"
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"DBFieldName":"Sex"
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"DBFieldName":"Age"
|
||||
},
|
||||
{
|
||||
"Name":"住院号",
|
||||
"DBFieldName":"ZYH"
|
||||
},
|
||||
{
|
||||
"Name":"科室",
|
||||
"DBFieldName":"KS"
|
||||
},
|
||||
{
|
||||
"Name":"使用剂量",
|
||||
"DBFieldName":"UseDose"
|
||||
},
|
||||
{
|
||||
"Name":"剩余剂量",
|
||||
"DBFieldName":"ResidualDose"
|
||||
},
|
||||
{
|
||||
"Name":"余液处理时间",
|
||||
"DBFieldName":"DiposalTime"
|
||||
},
|
||||
{
|
||||
"Name":"医师",
|
||||
"DBFieldName":"YS"
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"DBFieldName":"CheckUser"
|
||||
},
|
||||
{
|
||||
"Name":"实物",
|
||||
"DBFieldName":"Stock"
|
||||
},
|
||||
{
|
||||
"Name":"空瓶",
|
||||
"DBFieldName":"empty"
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"DBFieldName":"SendUser"
|
||||
},
|
||||
{
|
||||
"Name":"领药人",
|
||||
"DBFieldName":"InUser"
|
||||
},
|
||||
{
|
||||
"Name":"领药复核人",
|
||||
"DBFieldName":"InCheckUser"
|
||||
},
|
||||
{
|
||||
"Name":"空瓶回收人",
|
||||
"DBFieldName":"emptyUser"
|
||||
},
|
||||
{
|
||||
"Name":"批次库存",
|
||||
"DBFieldName":"CurrentStock"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Column":[
|
||||
{
|
||||
"Name":"日期",
|
||||
"Width":2.77813
|
||||
},
|
||||
{
|
||||
"Name":"批次",
|
||||
"Width":2.19604
|
||||
},
|
||||
{
|
||||
"Name":"有效期",
|
||||
"Width":2.77813
|
||||
},
|
||||
{
|
||||
"Name":"领入",
|
||||
"Width":0.820208
|
||||
},
|
||||
{
|
||||
"Name":"手术间",
|
||||
"Width":0.79375
|
||||
},
|
||||
{
|
||||
"Name":"患者姓名",
|
||||
"Width":1.61396
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"Width":1.00542
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"Width":0.79375
|
||||
},
|
||||
{
|
||||
"Name":"住院号",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"科室",
|
||||
"Width":2.2225
|
||||
},
|
||||
{
|
||||
"Name":"使用剂量",
|
||||
"Width":1.82563
|
||||
},
|
||||
{
|
||||
"Name":"剩余剂量",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"余液处理时间",
|
||||
"Width":2.59292
|
||||
},
|
||||
{
|
||||
"Name":"医师",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"空瓶回收人",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"Column7",
|
||||
"Width":1.61396
|
||||
},
|
||||
{
|
||||
"Name":"实物",
|
||||
"Width":1.40229
|
||||
},
|
||||
{
|
||||
"Name":"空瓶",
|
||||
"Width":1.19063
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"Column2",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"Column8",
|
||||
"Width":1.79917
|
||||
}
|
||||
],
|
||||
"ColumnContent":{
|
||||
"Height":2.01083,
|
||||
"ColumnContentCell":[
|
||||
{
|
||||
"Column":"日期",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"日期"
|
||||
},
|
||||
{
|
||||
"Column":"批次",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"批号"
|
||||
},
|
||||
{
|
||||
"Column":"有效期",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"效期"
|
||||
},
|
||||
{
|
||||
"Column":"领入",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"领入"
|
||||
},
|
||||
{
|
||||
"Column":"手术间",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"手术间"
|
||||
},
|
||||
{
|
||||
"Column":"患者姓名",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"患者姓名"
|
||||
},
|
||||
{
|
||||
"Column":"性别",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"性别"
|
||||
},
|
||||
{
|
||||
"Column":"年龄",
|
||||
"DataField":"年龄"
|
||||
},
|
||||
{
|
||||
"Column":"住院号",
|
||||
"DataField":"住院号"
|
||||
},
|
||||
{
|
||||
"Column":"科室",
|
||||
"DataField":"科室"
|
||||
},
|
||||
{
|
||||
"Column":"使用剂量",
|
||||
"DataField":"使用剂量"
|
||||
},
|
||||
{
|
||||
"Column":"剩余剂量",
|
||||
"DataField":"剩余剂量"
|
||||
},
|
||||
{
|
||||
"Column":"余液处理时间",
|
||||
"DataField":"余液处理时间"
|
||||
},
|
||||
{
|
||||
"Column":"医师",
|
||||
"DataField":"医师"
|
||||
},
|
||||
{
|
||||
"Column":"复核人",
|
||||
"DataField":"复核人"
|
||||
},
|
||||
{
|
||||
"Column":"空瓶回收人",
|
||||
"DataField":"空瓶回收人"
|
||||
},
|
||||
{
|
||||
"Column":"Column7"
|
||||
},
|
||||
{
|
||||
"Column":"实物",
|
||||
"DataField":"实物"
|
||||
},
|
||||
{
|
||||
"Column":"空瓶",
|
||||
"DataField":"空瓶"
|
||||
},
|
||||
{
|
||||
"Column":"发药人",
|
||||
"DataField":"发药人"
|
||||
},
|
||||
{
|
||||
"Column":"Column2",
|
||||
"DataField":"领药复核人"
|
||||
},
|
||||
{
|
||||
"Column":"Column8",
|
||||
"DataField":"批次库存"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ColumnTitle":{
|
||||
"Height":2.59292,
|
||||
"RepeatStyle":"OnPage",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"日期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"日期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"批次",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"有效期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"有效期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"领入",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"领\r\n入"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column1",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"手术间",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"手\r\n术\r\n间"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"患者姓名",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"患者\r\n姓名"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"性别",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"性\r\n别"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"年龄",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"年\r\n龄"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"住院号",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"住院号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"科室",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"科室"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"使用剂量",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"使用\r\n剂量"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"剩余剂量",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"剩余\r\n剂量"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"余液处理时间",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"余液\r\n处理\r\n时间"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"医师",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"医师"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"复核人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"复核人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"使用"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column6",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空瓶回收人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"回收人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column7",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"药房\r\n回收人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空瓶回收"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column3",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"实物",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"实物"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空瓶",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空瓶"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"结存数"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"发药人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"发药人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column5",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column2",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"复核人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"领药人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column8",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批次\r\n库存"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"PageHeader":{
|
||||
"Height":0
|
||||
},
|
||||
"Parameter":[
|
||||
{
|
||||
"Name":"startDate",
|
||||
"DataType":"DateTime",
|
||||
"Format":"yyyy-MM-dd hh:mm:ss",
|
||||
"Value":"2023/1/1"
|
||||
},
|
||||
{
|
||||
"Name":"endDate",
|
||||
"DataType":"DateTime",
|
||||
"Format":"yyyy-MM-dd hh:mm:ss",
|
||||
"Value":"2023/4/28 23:59:59"
|
||||
},
|
||||
{
|
||||
"Name":"machine_id",
|
||||
"Value":"DM1"
|
||||
}
|
||||
],
|
||||
"ReportHeader":[
|
||||
{
|
||||
"Name":"ReportHeader1",
|
||||
"Height":1.5875,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox2",
|
||||
"Dock":"Fill",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":217500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"湘谭县人民医院麻醉药品、精神药品专用账册、使用登记册(手术室)"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
},
|
||||
{
|
||||
"Name":"ReportHeader2",
|
||||
"Height":1.00542,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox3",
|
||||
"Dock":"Fill",
|
||||
"Border":{
|
||||
"Styles":"[DrawLeft|DrawTop|DrawRight]"
|
||||
},
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"药品名称:[#药品名称#] 规格:[#规格#] 单位:[#大单位#] 基数:[#基数#]"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,717 @@
|
|||
{
|
||||
"Version":"6.8.1.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Weight":400,
|
||||
"Charset":134
|
||||
},
|
||||
"Printer":{
|
||||
"Oriention":"Landscape",
|
||||
"TopMargin":0.3175,
|
||||
"RightMargin":1,
|
||||
"BottomMargin":0.3969
|
||||
},
|
||||
"DetailGrid":{
|
||||
"CenterView":true,
|
||||
"Recordset":{
|
||||
"QuerySQL":"SELECT \r\n dmr.`drawer_no` AS drawerNo,\r\n dmr.`col_no` AS colNo,\r\n dmr.`type` AS `type`,\r\n CONCAT(dmr.`quantity`,IF(dmr.`type`=32,\"(空瓶)\",\"\")) AS quantity,\r\n dmr.`manu_no` AS manuNo,\r\n dmr.`eff_date` AS effDate,\r\n dmr.`operation_time` AS operationTime,\r\n di.`drug_name` AS drugName,\r\n di.`drug_spec` AS drugSpec,\r\n di.`pack_unit` AS packUnit,\r\n di.`manufactory` AS manuFactory,\r\n di.`max_stock` AS baseQuantity,\r\n dmr.`drug_id` AS drugId,\r\n ul.`user_name` AS nickname\r\nFROM\r\n dm_machine_record dmr\r\nLEFT JOIN drug_info di ON di.`drug_id` = dmr.`drug_id`\r\nLEFT JOIN user_list ul ON ul.`id` = dmr.`Operator`\r\nWHERE dmr.`type` in (31, 32)\r\n AND dmr.`machine_id` = :machine_id\r\n AND dmr.`operation_time` > :startDate\r\n AND dmr.`operation_time` < :endDate",
|
||||
"Field":[
|
||||
{
|
||||
"Name":"药品名称",
|
||||
"DBFieldName":"DrugName"
|
||||
},
|
||||
{
|
||||
"Name":"日期",
|
||||
"DBFieldName":"oldYearMD"
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"DBFieldName":"ManuNo"
|
||||
},
|
||||
{
|
||||
"Name":"效期",
|
||||
"Format":"yyyy/MM/dd",
|
||||
"DBFieldName":"effDate"
|
||||
},
|
||||
{
|
||||
"Name":"领入",
|
||||
"DBFieldName":"InQuantity"
|
||||
},
|
||||
{
|
||||
"Name":"规格",
|
||||
"DBFieldName":"DrugSpec"
|
||||
},
|
||||
{
|
||||
"Name":"大单位",
|
||||
"DBFieldName":"BigUnit"
|
||||
},
|
||||
{
|
||||
"Name":"小单位",
|
||||
"DBFieldName":"SmallUnit"
|
||||
},
|
||||
{
|
||||
"Name":"基数",
|
||||
"DBFieldName":"BaseQuantity"
|
||||
},
|
||||
{
|
||||
"Name":"手术间",
|
||||
"DBFieldName":"shoushuJian"
|
||||
},
|
||||
{
|
||||
"Name":"患者姓名",
|
||||
"DBFieldName":"PName"
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"DBFieldName":"Sex"
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"DBFieldName":"Age"
|
||||
},
|
||||
{
|
||||
"Name":"住院号",
|
||||
"DBFieldName":"ZYH"
|
||||
},
|
||||
{
|
||||
"Name":"科室",
|
||||
"DBFieldName":"KS"
|
||||
},
|
||||
{
|
||||
"Name":"使用剂量",
|
||||
"DBFieldName":"UseDose"
|
||||
},
|
||||
{
|
||||
"Name":"剩余剂量",
|
||||
"DBFieldName":"ResidualDose"
|
||||
},
|
||||
{
|
||||
"Name":"余液处理时间",
|
||||
"DBFieldName":"DiposalTime"
|
||||
},
|
||||
{
|
||||
"Name":"医师",
|
||||
"DBFieldName":"YS"
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"DBFieldName":"CheckUser"
|
||||
},
|
||||
{
|
||||
"Name":"实物",
|
||||
"DBFieldName":"Stock"
|
||||
},
|
||||
{
|
||||
"Name":"空瓶",
|
||||
"DBFieldName":"empty"
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"DBFieldName":"SendUser"
|
||||
},
|
||||
{
|
||||
"Name":"领药人",
|
||||
"DBFieldName":"InUser"
|
||||
},
|
||||
{
|
||||
"Name":"领药复核人",
|
||||
"DBFieldName":"InCheckUser"
|
||||
},
|
||||
{
|
||||
"Name":"空瓶回收人",
|
||||
"DBFieldName":"emptyUser"
|
||||
},
|
||||
{
|
||||
"Name":"批次库存",
|
||||
"DBFieldName":"CurrentStock"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Column":[
|
||||
{
|
||||
"Name":"日期",
|
||||
"Width":2.77813
|
||||
},
|
||||
{
|
||||
"Name":"批次",
|
||||
"Width":2.19604
|
||||
},
|
||||
{
|
||||
"Name":"有效期",
|
||||
"Width":2.77813
|
||||
},
|
||||
{
|
||||
"Name":"领入",
|
||||
"Width":0.820208
|
||||
},
|
||||
{
|
||||
"Name":"手术间",
|
||||
"Width":0.79375
|
||||
},
|
||||
{
|
||||
"Name":"患者姓名",
|
||||
"Width":1.61396
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"Width":1.00542
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"Width":0.79375
|
||||
},
|
||||
{
|
||||
"Name":"住院号",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"科室",
|
||||
"Width":2.2225
|
||||
},
|
||||
{
|
||||
"Name":"使用剂量",
|
||||
"Width":1.82563
|
||||
},
|
||||
{
|
||||
"Name":"剩余剂量",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"余液处理时间",
|
||||
"Width":2.59292
|
||||
},
|
||||
{
|
||||
"Name":"医师",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"空瓶回收人",
|
||||
"Width":1.5875
|
||||
},
|
||||
{
|
||||
"Name":"Column7",
|
||||
"Width":1.61396
|
||||
},
|
||||
{
|
||||
"Name":"实物",
|
||||
"Width":1.40229
|
||||
},
|
||||
{
|
||||
"Name":"空瓶",
|
||||
"Width":1.19063
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"Column2",
|
||||
"Width":1.79917
|
||||
},
|
||||
{
|
||||
"Name":"Column8",
|
||||
"Width":1.79917,
|
||||
"Visible":false
|
||||
}
|
||||
],
|
||||
"ColumnContent":{
|
||||
"Height":2.01083,
|
||||
"ColumnContentCell":[
|
||||
{
|
||||
"Column":"日期",
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"ShrinkFontToFit":true,
|
||||
"DataField":"日期"
|
||||
},
|
||||
{
|
||||
"Column":"批次",
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"ShrinkFontToFit":true,
|
||||
"DataField":"批号"
|
||||
},
|
||||
{
|
||||
"Column":"有效期",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"效期"
|
||||
},
|
||||
{
|
||||
"Column":"领入",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"领入"
|
||||
},
|
||||
{
|
||||
"Column":"手术间",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"手术间"
|
||||
},
|
||||
{
|
||||
"Column":"患者姓名",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"患者姓名"
|
||||
},
|
||||
{
|
||||
"Column":"性别",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"性别"
|
||||
},
|
||||
{
|
||||
"Column":"年龄",
|
||||
"DataField":"年龄"
|
||||
},
|
||||
{
|
||||
"Column":"住院号",
|
||||
"DataField":"住院号"
|
||||
},
|
||||
{
|
||||
"Column":"科室",
|
||||
"DataField":"科室"
|
||||
},
|
||||
{
|
||||
"Column":"使用剂量",
|
||||
"DataField":"使用剂量"
|
||||
},
|
||||
{
|
||||
"Column":"剩余剂量",
|
||||
"DataField":"剩余剂量"
|
||||
},
|
||||
{
|
||||
"Column":"余液处理时间",
|
||||
"DataField":"余液处理时间"
|
||||
},
|
||||
{
|
||||
"Column":"医师",
|
||||
"DataField":"医师"
|
||||
},
|
||||
{
|
||||
"Column":"复核人",
|
||||
"DataField":"复核人"
|
||||
},
|
||||
{
|
||||
"Column":"空瓶回收人",
|
||||
"DataField":"空瓶回收人"
|
||||
},
|
||||
{
|
||||
"Column":"Column7"
|
||||
},
|
||||
{
|
||||
"Column":"实物",
|
||||
"DataField":"实物"
|
||||
},
|
||||
{
|
||||
"Column":"空瓶",
|
||||
"DataField":"空瓶"
|
||||
},
|
||||
{
|
||||
"Column":"发药人",
|
||||
"DataField":"发药人"
|
||||
},
|
||||
{
|
||||
"Column":"Column2",
|
||||
"DataField":"领药复核人"
|
||||
},
|
||||
{
|
||||
"Column":"Column8",
|
||||
"DataField":"批次库存"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ColumnTitle":{
|
||||
"Height":2.59292,
|
||||
"RepeatStyle":"OnPage",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"日期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"日期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"批次",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"有效期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"有效期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"领入",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"领\r\n入"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column1",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"手术间",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"手\r\n术\r\n间"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"患者姓名",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"患者\r\n姓名"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"性别",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"性\r\n别"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"年龄",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"年\r\n龄"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"住院号",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"住院号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"科室",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"科室"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"使用剂量",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"使用\r\n剂量"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"剩余剂量",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"剩余\r\n剂量"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"余液处理时间",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"余液\r\n处理\r\n时间"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"医师",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"医师"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"复核人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"复核人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"使用"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column6",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空瓶回收人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"回收人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column7",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"药房\r\n回收人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空瓶回收"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column3",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"实物",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"实物"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空瓶",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空瓶"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"结存数"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"发药人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"发药人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":true,
|
||||
"Name":"Column5",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column2",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"复核人"
|
||||
}
|
||||
],
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"领药人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column8",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批次\r\n库存"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"PageHeader":{
|
||||
"Height":0
|
||||
},
|
||||
"Parameter":[
|
||||
{
|
||||
"Name":"startDate",
|
||||
"DataType":"DateTime",
|
||||
"Format":"yyyy-MM-dd hh:mm:ss",
|
||||
"Value":"2023/1/1"
|
||||
},
|
||||
{
|
||||
"Name":"endDate",
|
||||
"DataType":"DateTime",
|
||||
"Format":"yyyy-MM-dd hh:mm:ss",
|
||||
"Value":"2023/4/28 23:59:59"
|
||||
},
|
||||
{
|
||||
"Name":"machine_id",
|
||||
"Value":"DM1"
|
||||
}
|
||||
],
|
||||
"ReportHeader":[
|
||||
{
|
||||
"Name":"ReportHeader1",
|
||||
"Height":1.5875,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox2",
|
||||
"Dock":"Fill",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":217500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"湘谭县人民医院麻醉药品、精神药品专用账册、使用登记册(手术室)"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
},
|
||||
{
|
||||
"Name":"ReportHeader2",
|
||||
"Height":1.00542,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox3",
|
||||
"Dock":"Fill",
|
||||
"Border":{
|
||||
"Styles":"[DrawLeft|DrawTop|DrawRight]"
|
||||
},
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"药品名称:[#药品名称#] 规格:[#规格#] 单位:[#大单位#] 基数:[#基数#]"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,176 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Report;
|
||||
using DM_Weight.util;
|
||||
using log4net;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class AccountWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
|
||||
{
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(AccountWindowViewModel));
|
||||
public static AccountWindowViewModel vm;
|
||||
private DateTime? _startDate = DateTime.Now;
|
||||
|
||||
public DateTime? StartDate
|
||||
{
|
||||
get => _startDate;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _startDate, value);
|
||||
}
|
||||
}
|
||||
|
||||
private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
|
||||
public DateTime? EndDate
|
||||
{
|
||||
get => _endDate;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _endDate, value);
|
||||
}
|
||||
}
|
||||
IEventAggregator _eventAggregator;
|
||||
IDialogService _dialogService;
|
||||
public AccountWindowViewModel(IEventAggregator eventAggregator, IDialogService dialogService)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
vm = this;
|
||||
_dialogService = dialogService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 导出账册
|
||||
/// </summary>
|
||||
public DelegateCommand DownloadAccountBook
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
if (DrugInfo == null || string.IsNullOrEmpty(DrugInfo.DrugId))
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"请选择药品!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
GridReportUtil.PrintReportAccountBook(StartDate, EndDate, DrugInfo.DrugId);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "导出报表异常!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"导出报表异常{ex.Message}");
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
//药品信息
|
||||
GetAllDrugInfos();
|
||||
}
|
||||
/// <summary>
|
||||
/// 药品
|
||||
/// </summary>
|
||||
private List<DrugInfo>? _drugInfos;
|
||||
|
||||
public List<DrugInfo>? DrugInfos
|
||||
{
|
||||
get => _drugInfos;
|
||||
set => SetProperty(ref _drugInfos, value);
|
||||
}
|
||||
private DrugInfo? _drugInfo;
|
||||
|
||||
public DrugInfo? DrugInfo
|
||||
{
|
||||
get => _drugInfo;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _drugInfo, value);
|
||||
}
|
||||
}
|
||||
private void GetAllDrugInfos()
|
||||
{
|
||||
var list = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).OrderBy(di => di.DrugId).ToList();
|
||||
DrugInfos = list;
|
||||
DrugInfo = list[0];
|
||||
}
|
||||
public void UpdateComboBoxItems(string text)
|
||||
{
|
||||
string str = @"SELECT d.drug_id,d.py_code,d.drug_barcode,d.drug_name,d.drug_brand_name,d.drug_spec,d.dosage,d.pack_unit,
|
||||
d.manufactory,d.max_stock,CONCAT(drug_name,' ',drug_spec)as DrugName FROM `drug_info` d";
|
||||
if (string.IsNullOrEmpty(text))
|
||||
{
|
||||
DrugInfos = SqlSugarHelper.Db.SqlQueryable<DrugInfo>(str).OrderBy(di => di.DrugName).OrderBy(di => di.DrugId).ToList();
|
||||
return;
|
||||
}
|
||||
if (DrugInfos != null)
|
||||
{
|
||||
DrugInfos.Clear();
|
||||
}
|
||||
DrugInfos = SqlSugarHelper.Db.SqlQueryable<DrugInfo>(str).Where(di => di.DrugName.Contains(text) || di.PyCode.Contains(text)).OrderBy(di => di.DrugName).OrderBy(di => di.DrugId).ToList();
|
||||
}
|
||||
public DelegateCommand<string> SelectTimeAction
|
||||
{
|
||||
get => new DelegateCommand<string>(async (s) =>
|
||||
{
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("DateTime", StartDate);
|
||||
dialogParameters.Add("Type", s);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "DatetimeDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
});
|
||||
}
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
// 委托 被动执行 被子窗口执行
|
||||
// dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态
|
||||
if (dialogResult.Result == ButtonResult.OK)
|
||||
{
|
||||
if (dialogResult.Parameters.GetValue<string?>("Type").Equals("1"))
|
||||
{
|
||||
StartDate = dialogResult.Parameters.GetValue<DateTime?>("DateTime");
|
||||
}
|
||||
else
|
||||
{
|
||||
EndDate = dialogResult.Parameters.GetValue<DateTime?>("DateTime");
|
||||
}
|
||||
}
|
||||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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,18 +53,24 @@ namespace DM_Weight.ViewModels
|
|||
get => _finishStatus;
|
||||
set => SetProperty(ref _finishStatus, value);
|
||||
}
|
||||
|
||||
private bool _openStatusBtn = false;
|
||||
public bool OpenStatusBtn
|
||||
{
|
||||
get => _openStatusBtn;
|
||||
set => SetProperty(ref _openStatusBtn, value);
|
||||
}
|
||||
IDialogService _dialogService;
|
||||
IEventAggregator _eventAggregator;
|
||||
//private PortUtil _portUtil;
|
||||
SocketHelper _socketHelper;
|
||||
|
||||
public AdditionWindowViewModel(IEventAggregator eventAggregator,SocketHelper socketHelper)
|
||||
private static readonly DateTime Jan1st1970 = new DateTime
|
||||
(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
public AdditionWindowViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||
{
|
||||
//_dialogService = dialogService;
|
||||
_eventAggregator = eventAggregator;
|
||||
//_portUtil = portUtil;
|
||||
_socketHelper= socketHelper;
|
||||
_socketHelper = socketHelper;
|
||||
}
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
|
|
@ -65,11 +84,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)
|
||||
|
|
@ -78,24 +99,57 @@ 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);
|
||||
//selectedStock.ForEach(cs => cs.ChannelLst.State = 2);
|
||||
|
||||
int drawerNo = -1;
|
||||
for (int i = 0; i < selectedStock.Count; i++)
|
||||
|
|
@ -112,11 +166,11 @@ namespace DM_Weight.ViewModels
|
|||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Type = 55,
|
||||
InvoiceId = "手术间补药",
|
||||
InvoiceId = "手术间补药入库",
|
||||
}).ExecuteCommand();
|
||||
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.OpenStatus = true;
|
||||
//_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
//_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync($"正在打开{selectedStock[i].DrawerNo}号手术间");
|
||||
|
||||
//ModbusHelper.GetInstance().OpenBoxDoor(selectedStock[i].DrawerNo - 1);
|
||||
|
|
@ -133,31 +187,81 @@ namespace DM_Weight.ViewModels
|
|||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
_socketHelper.OpenStatus = false;
|
||||
return;
|
||||
}
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
//Task.Factory.StartNew(async () =>
|
||||
//{
|
||||
// bool loop = true;
|
||||
// while (loop)
|
||||
// {
|
||||
// await Task.Delay(1000);
|
||||
// bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||
// bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||
// if (state)
|
||||
// {
|
||||
// loop = false;
|
||||
// ModbusHelper.BoxOperate = false;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ModbusHelper.BoxOperate = true;
|
||||
// //ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
int iException = 0;
|
||||
Thread.Sleep(200);
|
||||
new PromiseUtil<int>().taskAsyncLoop(200, 0, async (options, next, stop) =>
|
||||
{
|
||||
|
||||
_socketHelper.IsMultiThread = true;
|
||||
try
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
|
||||
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||
|
||||
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
||||
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
logger.Info($"OpenStatus:{_socketHelper.OpenStatus}");
|
||||
//if (i == 0)
|
||||
//{
|
||||
// //ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||
// i = 10;
|
||||
//}
|
||||
OpenStatusBtn = true;
|
||||
next();
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Info($"OpenStatus:{_socketHelper.OpenStatus}");
|
||||
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
_socketHelper.IsMultiThread = false;
|
||||
FinishStatus = Visibility.Visible;
|
||||
OpenStatusBtn = false;
|
||||
stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
_socketHelper.IsMultiThread = false;
|
||||
FinishStatus = Visibility.Visible;
|
||||
OpenStatusBtn = false;
|
||||
stop();
|
||||
}
|
||||
|
||||
iException = 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
iException++;
|
||||
if (iException >= 3)
|
||||
{
|
||||
_socketHelper.OpenStatus = false;
|
||||
FinishStatus = Visibility.Visible;
|
||||
OpenStatusBtn = false;
|
||||
}
|
||||
// _socketHelper.OpenStatus = false;
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -169,7 +273,7 @@ namespace DM_Weight.ViewModels
|
|||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
FinishStatus = Visibility.Visible;
|
||||
//FinishStatus = Visibility.Visible;
|
||||
});
|
||||
}
|
||||
//完成按钮
|
||||
|
|
@ -190,43 +294,76 @@ namespace DM_Weight.ViewModels
|
|||
// jiaojie_it.Quantity = jiaojie_it.AddToJJNum;
|
||||
// jiaojie_it.NeedNum = 0;
|
||||
// jiaojie_it.AddToJJNum = 0;
|
||||
//SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
//{
|
||||
// Quantity = jiaojie_it.AddToJJNum,
|
||||
// ManuNo = jiaojie_it.ManuNo,
|
||||
// //EffDate = it.EffDate,
|
||||
// //Id = jiaojie_it.Id,
|
||||
// DrugId=jiaojie_it.DrugId,
|
||||
// DrawerNo=jiaojie_it.DrawerNo,
|
||||
// MachineId=jiaojie_it.MachineId,
|
||||
//}).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).WhereColumns(jiaojie_it=>new { jiaojie_it.DrugId, jiaojie_it.DrawerNo, jiaojie_it.MachineId }).ExecuteCommand();
|
||||
//SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
//{
|
||||
// Quantity = jiaojie_it.AddToJJNum,
|
||||
// ManuNo = jiaojie_it.ManuNo,
|
||||
// //EffDate = it.EffDate,
|
||||
// //Id = jiaojie_it.Id,
|
||||
// DrugId=jiaojie_it.DrugId,
|
||||
// DrawerNo=jiaojie_it.DrawerNo,
|
||||
// MachineId=jiaojie_it.MachineId,
|
||||
//}).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).WhereColumns(jiaojie_it=>new { jiaojie_it.DrugId, jiaojie_it.DrawerNo, jiaojie_it.MachineId }).ExecuteCommand();
|
||||
//}
|
||||
// 更新交接柜状态为 已取药未入库
|
||||
//SqlSugarHelper.Db.Updateable(new ChannelList()
|
||||
//{
|
||||
// State = 0
|
||||
//}).UpdateColumns(it => it.State).Where(it => it.DrawerNo == _ChannelList.DrawerNo).ExecuteCommand();
|
||||
for (int i = 0; i < selectedStock.Count; i++)
|
||||
{
|
||||
int iUpdateResult = SqlSugarHelper.Db.Updateable<ChannelStock>()
|
||||
.SetColumns(cs => new ChannelStock() { State = 0 })
|
||||
.Where(cs => cs.DrawerNo == selectedStock[i].DrawerNo && cs.DrugId == selectedStock[i].DrugId && cs.MachineId == selectedStock[i].MachineId)
|
||||
.ExecuteCommand();
|
||||
string InvoiceId = "AddJiaoJieFromDM_" + CurrentTimeMillis();
|
||||
// 保存记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = selectedStock[i].MachineId,
|
||||
DrawerNo = selectedStock[i].DrawerNo,
|
||||
ColNo = selectedStock[i].ColNo,
|
||||
DrugId = selectedStock[i].DrugId,
|
||||
ManuNo = selectedStock[i].ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(selectedStock[i].EffDate) ? DateTime.ParseExact(selectedStock[i].EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = selectedStock[i].Quantity,
|
||||
Type = 2,
|
||||
InvoiceId =$"交接柜药品入库{selectedStock[i].DrugId}-{selectedStock[i].AddToJJNum}"
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity),
|
||||
//CheckQuantity = it.CheckQuantity
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
selectedStock.ForEach(cs =>
|
||||
{
|
||||
cs.Quantity = cs.Quantity+cs.AddToJJNum;
|
||||
cs.NeedNum= 0;
|
||||
cs.Quantity = cs.Quantity + cs.AddToJJNum;
|
||||
//cs.NeedNum = 0;
|
||||
cs.AddToJJNum = 0;
|
||||
cs.State = 0;
|
||||
});
|
||||
SqlSugarHelper.Db.Updateable(selectedStock).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)
|
||||
{
|
||||
FinishStatus = Visibility.Collapsed;
|
||||
RequestData();
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
|
|
@ -246,7 +383,10 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
public long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
//刷新
|
||||
public DelegateCommand QueryCommand
|
||||
{
|
||||
|
|
@ -257,7 +397,7 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
if (channelStock != null)
|
||||
{
|
||||
if (channelStock.ChannelLst.State == 1)
|
||||
if (channelStock.State == 1)
|
||||
{
|
||||
channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,30 +50,80 @@ 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();
|
||||
BaseQuantity = value.BaseQuantity.ToString();
|
||||
try
|
||||
{
|
||||
DrugInfo = DrugInfos.Where(di => di.DrugId == value.Drug.DrugId).First();
|
||||
BaseQuantity = value.BaseQuantity.ToString();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RequestDrug();
|
||||
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 +140,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 +182,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 +274,9 @@ namespace DM_Weight.ViewModels
|
|||
SnackbarMessageQueue.Enqueue("药品基数请输入正确的整数");
|
||||
return;
|
||||
}
|
||||
if (Channels != null)
|
||||
if (_ChannelLists != 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 +287,44 @@ 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).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)
|
||||
.Max(cs => cs.ColNo);
|
||||
//string chnguid = $"DM5_{(DrawerNo + 1)}_{(colNoCount+1)}_{DrugInfo.DrugId}";
|
||||
string chnguid = $"DM5_{(DrawerNo + 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,
|
||||
State = 0
|
||||
}).ExecuteCommand();
|
||||
SqlSugarHelper.Db.Insertable(new ChannelStock()
|
||||
{
|
||||
Chnguid = chnguid,
|
||||
DrawerNo = DrawerNo,
|
||||
DrugId = DrugInfo.DrugId.ToString(),
|
||||
DrawerNo = DrawerNo + 1,
|
||||
DrugId = DrugInfo.DrugId,
|
||||
BaseQuantity = baseQuantity,
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
MachineId = "DM5",
|
||||
AddToJJNum=0,
|
||||
NeedNum=baseQuantity
|
||||
AddToJJNum = 0,
|
||||
NeedNum = baseQuantity,
|
||||
State=0
|
||||
//ManuNo=DrugManuNo.ManuNo
|
||||
}).ExecuteCommand();
|
||||
// 保存数据 入库记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = "DM5",
|
||||
DrawerNo = DrawerNo,
|
||||
DrugId = DrugInfo.DrugId.ToString(),
|
||||
DrawerNo = DrawerNo + 1,
|
||||
DrugId = DrugInfo.DrugId,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = baseQuantity,
|
||||
|
|
@ -276,52 +368,62 @@ 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)
|
||||
{
|
||||
if (_channelList.channelStocks.Where(cs => cs.Quantity > 0).Count() > 0)
|
||||
{
|
||||
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
|
||||
SnackbarMessageQueue.Enqueue("药品还有库存不能操作解绑");
|
||||
return;
|
||||
}
|
||||
//解绑选定行的单个药品
|
||||
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 +443,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,13 +452,49 @@ namespace DM_Weight.ViewModels
|
|||
int baseQty = 0;
|
||||
if (int.TryParse(BaseQuantity, out baseQty))
|
||||
{
|
||||
Channel.BaseQuantity = Convert.ToInt32(baseQty);
|
||||
int iUpdate= SqlSugarHelper.Db.Updateable<ChannelStock>(Channel).ExecuteCommand();
|
||||
if (iUpdate > 0)
|
||||
logger.Info($"修改药品{DrugInfo.DrugName}基数{_ChannelList.BaseQuantity}改为{baseQty}");
|
||||
if (baseQty > _ChannelList.BaseQuantity)
|
||||
{
|
||||
|
||||
//基数变大,需要补药
|
||||
//_ChannelList.channelStocks[0].NeedNum = _ChannelList.channelStocks[0].NeedNum + baseQty - _ChannelList.BaseQuantity;
|
||||
}
|
||||
else
|
||||
{
|
||||
//_ChannelList.channelStocks[0].NeedNum = 0;
|
||||
_ChannelList.channelStocks.ForEach(cs => cs.State = 0);
|
||||
SqlSugarHelper.Db.Updateable(_ChannelList.channelStocks).UpdateColumns(cs => new { cs.State }).ExecuteCommand();
|
||||
}
|
||||
int oldBaseQty = _ChannelList.BaseQuantity;
|
||||
_ChannelList.BaseQuantity = baseQty;
|
||||
//_ChannelList.channelStocks[0].BaseQuantity = baseQty;
|
||||
//int iUpdate = SqlSugarHelper.Db.Updateable<ChannelStock>(_ChannelList.channelStocks[0]).ExecuteCommand();
|
||||
_ChannelList.channelStocks.ForEach(cs => cs.BaseQuantity = baseQty);
|
||||
int iBaseUpdate = SqlSugarHelper.Db.Updateable<ChannelStock>().SetColumns(cs => new ChannelStock(){ BaseQuantity= _ChannelList.channelStocks[0].BaseQuantity }).Where(cs=>cs.Chnguid==_ChannelList.Id).ExecuteCommand();
|
||||
//if (iBaseUpdate > 0)
|
||||
//{
|
||||
// iBaseUpdate = SqlSugarHelper.Db.Updateable(_ChannelList.channelStocks[0]).UpdateColumns(cs => new { cs.NeedNum }).ExecuteCommand();
|
||||
//}
|
||||
//更新ChannelList表中的BaseQuantity
|
||||
int iUpdateChannelList = SqlSugarHelper.Db.Updateable<ChannelList>()
|
||||
.SetColumns(it => new ChannelList() { BaseQuantity = baseQty })
|
||||
.Where(it => it.Id == _ChannelList.Id).ExecuteCommand();
|
||||
if (iBaseUpdate > 0 && iUpdateChannelList > 0)
|
||||
{
|
||||
//保存操作记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = "DM5",
|
||||
DrawerNo = _ChannelList.DrawerNo,
|
||||
DrugId = _ChannelList.DrugId,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = _ChannelList.channelStocks[0].NeedNum,
|
||||
Type = 55,
|
||||
InvoiceId = $"修改药品{DrugInfo.DrugName}基数{oldBaseQty}改为{baseQty},Quantity值为需要加药数量",
|
||||
}).ExecuteCommand();
|
||||
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676"));
|
||||
SnackbarMessageQueue.Enqueue("保存修改完成!");
|
||||
RequestData();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -380,127 +518,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -316,7 +316,9 @@ namespace DM_Weight.ViewModels
|
|||
.Where(oi => oi.DmStatus == 1)
|
||||
.Where(oi => oi.HisDispFlag == 0)
|
||||
.Where(oi => oi.CancelFlag == 0)
|
||||
.Where(oi => oi.DrawerCode==DrawerNo+1)
|
||||
.Where(oi => oi.DrawerCode == DrawerNo + 1)
|
||||
.Where(oi => oi._OrderDetail.SetManuNo != null)
|
||||
.Where(oi => oi._OrderDetail.Quantity > 0)
|
||||
.OrderBy(oi => oi.OrderId)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
|
||||
|
|
@ -324,7 +326,7 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
OrderInfoList.ForEach(oi => oi.ItemIsChecked = true);
|
||||
//OrderInfoList.ForEach(oi => oi.OrderDetailList.ForEach(od => od.DrugInfo = od.DrugInfo ?? new DrugInfo()));
|
||||
OrderInfoList.ForEach(oi => oi._OrderDetail.DrugInfo= oi._OrderDetail.DrugInfo ?? new DrugInfo());
|
||||
OrderInfoList.ForEach(oi => oi._OrderDetail.DrugInfo = oi._OrderDetail.DrugInfo ?? new DrugInfo());
|
||||
//TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).GroupBy(oi => oi.OrderDetailList.DrugInfo.DrugName).Select(oi => new TotalDrug { DrugName = oi.Key, TotalCount = oi.Sum(item => item.OrderDetailList.Quantity) }).ToList();
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).Select(OrderDetailList => OrderDetailList._OrderDetail).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
|
||||
|
|
@ -439,6 +441,16 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (DrawerNo == -1)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请先选择手术间",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
CheckOrderAction();
|
||||
});
|
||||
}
|
||||
|
|
@ -446,6 +458,7 @@ namespace DM_Weight.ViewModels
|
|||
|
||||
void CheckOrderAction()
|
||||
{
|
||||
logger.Info($"管理员{HomeWindowViewModel.Operator?.Nickname}开始确认手麻单");
|
||||
var confirmData = OrderInfoList.Where(oi => oi.ItemIsChecked == true).ToList();
|
||||
if (confirmData.Count > 0)
|
||||
{
|
||||
|
|
@ -473,7 +486,7 @@ namespace DM_Weight.ViewModels
|
|||
PatientId = oi.PatientId,
|
||||
Pharmacy = oi.Pharmacy,
|
||||
State = 2,
|
||||
WinNo= DrawerNo+1+"号手术间",
|
||||
WinNo = DrawerNo + 1 + "号手术间",
|
||||
Operator = HomeWindowViewModel.Operator?.Nickname,
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
|
|
@ -483,166 +496,199 @@ namespace DM_Weight.ViewModels
|
|||
//for (int j = 0; j < oi._OrderDetail.Count; j++)
|
||||
//{
|
||||
// oi._OrderDetail = oi.OrderDetailList[j];
|
||||
int drawerNo = DrawerNo + 1;
|
||||
ChannelStock cs = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.DrugId == oi._OrderDetail.DrugId
|
||||
&& cs.ManuNo == oi._OrderDetail.SetManuNo
|
||||
// && cs.EffDate == oi._OrderDetail.SetEffDate
|
||||
&& cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")
|
||||
&& cs.DrawerNo == drawerNo
|
||||
&& cs.Quantity >= oi._OrderDetail.Quantity).First();
|
||||
if (cs == null)
|
||||
{
|
||||
empChannelStock += $"{oi.OrderNo},{oi._OrderDetail.DrugId},{oi._OrderDetail.SetManuNo},{oi._OrderDetail.SetEffDate};";
|
||||
continue;
|
||||
}
|
||||
cs.Quantity = cs.Quantity - oi._OrderDetail.Quantity;
|
||||
cs.NeedNum = cs.NeedNum + oi._OrderDetail.Quantity;
|
||||
// 更新数据 库存信息
|
||||
SqlSugarHelper.Db.Updateable(cs).UpdateColumns(it => new { it.Quantity, it.NeedNum }).ExecuteCommand();
|
||||
int drawerNo = DrawerNo + 1;
|
||||
ChannelStock cs = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.DrugId == oi._OrderDetail.DrugId
|
||||
&& cs.ManuNo == oi._OrderDetail.SetManuNo
|
||||
// && cs.EffDate == oi._OrderDetail.SetEffDate
|
||||
&& cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")
|
||||
&& cs.DrawerNo == drawerNo
|
||||
&& cs.Quantity >= oi._OrderDetail.Quantity).First();
|
||||
if (cs == null)
|
||||
{
|
||||
empChannelStock += $"{oi.OrderNo},{oi._OrderDetail.DrugId},{oi._OrderDetail.SetManuNo};";
|
||||
logger.Info($"手麻单{oi.OrderNo}对药品批次{oi._OrderDetail.DrugId}-{oi._OrderDetail.SetManuNo}在{drawerNo}手术间无库存");
|
||||
continue;
|
||||
}
|
||||
cs.Quantity = cs.Quantity - oi._OrderDetail.Quantity;
|
||||
cs.NeedNum = cs.NeedNum > 0 ? cs.NeedNum + oi._OrderDetail.Quantity : oi._OrderDetail.Quantity;
|
||||
logger.Info($"更新手术间{cs.DrawerNo}药品{cs.DrugId}批次{cs.ManuNo}库存为{cs.Quantity},需补药数量为{cs.NeedNum}");
|
||||
// 更新数据 库存信息
|
||||
SqlSugarHelper.Db.Updateable(cs).UpdateColumns(it => new { it.Quantity, it.NeedNum }).ExecuteCommand();
|
||||
|
||||
if (cs != null)
|
||||
{
|
||||
// 获取更新完库存后的药品库存
|
||||
List<ChannelStock> nowChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(it => it.MachineId.Equals(ConfigurationManager.AppSettings["machineId"]) || it.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"]))
|
||||
.Where(it => it.DrugId.Equals(cs.DrugId))
|
||||
.Where(it => it.ManuNo.Equals(cs.ManuNo))
|
||||
.Where(it => it.DrawerType == 1)
|
||||
.ToList();
|
||||
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
DrawerNo = cs.DrawerNo,
|
||||
ColNo = cs.ColNo,
|
||||
DrugId = cs.DrugId,
|
||||
ManuNo = cs.ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(cs.EffDate) ? DateTime.ParseExact(cs.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = oi._OrderDetail.Quantity,
|
||||
Type = 2,
|
||||
InvoiceId = oi.OrderNo
|
||||
//, StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
#region 记录 注射剂使用与交接记录报表
|
||||
//查询发药时间
|
||||
//MachineRecord SendMachineRecord = SqlSugarHelper.Db.Queryable<MachineRecord>().Where(mr => mr.DrawerNo == cs.DrawerNo && mr.Type == 2)
|
||||
//.OrderByDescending(mr => mr.OperationTime)
|
||||
//.First();
|
||||
//string retUser = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cl.DrawerNo == cs.DrawerNo)
|
||||
//.Select(cl => cl.BelongUser).First();
|
||||
|
||||
#region 记录 注射剂使用与交接记录报表
|
||||
//查询发药时间
|
||||
//MachineRecord SendMachineRecord = SqlSugarHelper.Db.Queryable<MachineRecord>().Where(mr => mr.DrawerNo == cs.DrawerNo && mr.Type == 2)
|
||||
//.OrderByDescending(mr => mr.OperationTime)
|
||||
//.First();
|
||||
//string retUser = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cl.DrawerNo == cs.DrawerNo)
|
||||
//.Select(cl => cl.BelongUser).First();
|
||||
RejectionReport rejectionReport = SqlSugarHelper.Db.Queryable<RejectionReport>().Where(rp => rp.DrugId == cs.DrugId && rp.DrawerNo == cs.DrawerNo).OrderByDescending(rp => rp.SendDate).First();
|
||||
if (rejectionReport != null)
|
||||
{
|
||||
//发药信息
|
||||
//RejectionReport rejectionReport = new RejectionReport();
|
||||
//rejectionReport.SendDate = SendMachineRecord.OperationTime;
|
||||
//rejectionReport.SendUser = SendMachineRecord.Operator.ToString();
|
||||
//rejectionReport.ReceiveUser = retUser;
|
||||
rejectionReport.RealNum = cs.BaseQuantity;
|
||||
|
||||
RejectionReport rejectionReport = SqlSugarHelper.Db.Queryable<RejectionReport>().Where(rp => rp.DrugId == cs.DrugId && rp.DrawerNo == cs.DrawerNo).OrderByDescending(rp => rp.SendDate).First();
|
||||
if (rejectionReport != null)
|
||||
{
|
||||
//发药信息
|
||||
//RejectionReport rejectionReport = new RejectionReport();
|
||||
//rejectionReport.SendDate = SendMachineRecord.OperationTime;
|
||||
//rejectionReport.SendUser = SendMachineRecord.Operator.ToString();
|
||||
//rejectionReport.ReceiveUser = retUser;
|
||||
rejectionReport.RealNum = cs.BaseQuantity;
|
||||
//还药信息
|
||||
rejectionReport.InfactNum = cs.BaseQuantity - oi._OrderDetail.Quantity;
|
||||
rejectionReport.EmptyNum = oi._OrderDetail.Quantity;
|
||||
rejectionReport.ReturnTime = DateTime.Now.ToString();
|
||||
rejectionReport.ReturnUser = rejectionReport.SendUser;
|
||||
rejectionReport.ReturnReceiveUser = rejectionReport.ReceiveUser;// SendMachineRecord.Operator.ToString();
|
||||
rejectionReport.DrugId = oi._OrderDetail.DrugId;
|
||||
rejectionReport.DrugName = oi._OrderDetail.DrugInfo.DrugName;
|
||||
rejectionReport.DrugSpec = oi._OrderDetail.DrugInfo.DrugSpec;
|
||||
|
||||
//还药信息
|
||||
rejectionReport.InfactNum = cs.BaseQuantity - oi._OrderDetail.Quantity;
|
||||
rejectionReport.EmptyNum = oi._OrderDetail.Quantity;
|
||||
rejectionReport.ReturnTime = DateTime.Now.ToString();
|
||||
rejectionReport.ReturnUser = rejectionReport.SendUser;
|
||||
rejectionReport.ReturnReceiveUser = rejectionReport.ReceiveUser;// SendMachineRecord.Operator.ToString();
|
||||
rejectionReport.DrugId = oi._OrderDetail.DrugId;
|
||||
rejectionReport.DrugName = oi._OrderDetail.DrugInfo.DrugName;
|
||||
rejectionReport.DrugSpec = oi._OrderDetail.DrugInfo.DrugSpec;
|
||||
rejectionReport.OperationTime = DateTime.Now;
|
||||
|
||||
rejectionReport.OperationTime = DateTime.Now;
|
||||
int iRejectionReport = SqlSugarHelper.Db.Updateable(rejectionReport).ExecuteCommand();
|
||||
}
|
||||
#endregion
|
||||
|
||||
int iRejectionReport = SqlSugarHelper.Db.Updateable(rejectionReport).ExecuteCommand();
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
//保存账册
|
||||
int iInsertResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
//}
|
||||
//查询上一条账册中的空瓶数
|
||||
AccountBookG2 accountBookEmpty = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 1 || ab.Type == 2)
|
||||
.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
.Where(ab => ab.ManuNo == cs.ManuNo).OrderByDescending(ab => ab.Id).First();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
.Where(ab => ab.ManuNo == cs.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
int manuStock = 0;
|
||||
if (accountBookG2Day != null)
|
||||
{
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - oi._OrderDetail.Quantity;
|
||||
accountBookG2Day.OutQuantity = accountBookG2Day.OutQuantity + oi._OrderDetail.Quantity;
|
||||
accountBookG2Day.UseDose = (Convert.ToSingle(accountBookG2Day.UseDose!=null? accountBookG2Day.UseDose:0) + Convert.ToSingle(oi._OrderDetail.surgicalResidual.UseDose!=null? oi._OrderDetail.surgicalResidual.UseDose:0)).ToString();
|
||||
accountBookG2Day.ResidualDose = (Convert.ToSingle(accountBookG2Day.ResidualDose!=null? accountBookG2Day.ResidualDose:0) + Convert.ToSingle(oi._OrderDetail.surgicalResidual.ResidualDose!=null? oi._OrderDetail.surgicalResidual.ResidualDose:0)).ToString();
|
||||
accountBookG2Day.TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 ? accountBookEmpty.TotalStock : 0) : 0) + oi._OrderDetail.Quantity;
|
||||
accountBookG2Day.CreateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
manuStock = accountBookG2Day.ManuStock;
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成日结存时可能没有该库位的绑定信息,需要写入日结存
|
||||
int iDayResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = oi._OrderDetail.DrugId,
|
||||
Type = 2,
|
||||
Department = oi.DeptName,
|
||||
OrderNo = oi.OrderNo,
|
||||
Type = 3,
|
||||
ManuNo = cs.ManuNo,
|
||||
EffDate = cs.EffDate,
|
||||
YQuantity = 0,
|
||||
ManuStock = manuStock > 0 ? manuStock :nowChannels.Sum(it => it.Quantity), //oi._OrderDetail.Quantity,
|
||||
TotalStock = oi._OrderDetail.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59),
|
||||
InvoiceNo = "日结存",
|
||||
OutQuantity = oi._OrderDetail.Quantity,
|
||||
UseDose = oi._OrderDetail.surgicalResidual.UseDose,
|
||||
ResidualDose = oi._OrderDetail.surgicalResidual.ResidualDose
|
||||
}).ExecuteCommand();
|
||||
if (iDayResult <= 0)
|
||||
{
|
||||
logger.Info($"未写入日结存数据{oi._OrderDetail.DrugId}-{cs.ManuNo}-{cs.EffDate}-{cs.Quantity}");
|
||||
}
|
||||
}
|
||||
//查询上一条账册中的空瓶数
|
||||
//AccountBookG2 accountBookEmpty = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
//.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
//.Where(ab => ab.Type == 1 || ab.Type == 2)
|
||||
//.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
//.Where(ab => ab.ManuNo == cs.ManuNo).OrderByDescending(ab => ab.Id).First();
|
||||
//保存账册
|
||||
int iInsertResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = oi._OrderDetail.DrugId,
|
||||
Type = 2,
|
||||
Department = oi.DeptName,
|
||||
OrderNo = oi.OrderNo,
|
||||
ManuNo = cs.ManuNo,
|
||||
EffDate = cs.EffDate,
|
||||
OutQuantity = oi._OrderDetail.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now,
|
||||
InvoiceNo = oi.OrderNo,
|
||||
ManuStock = manuStock > 0 ? manuStock : nowChannels.Sum(it => it.Quantity),
|
||||
TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 ? accountBookEmpty.TotalStock : 0) : 0) + oi._OrderDetail.Quantity,
|
||||
ShoushuJian = drawerNo.ToString()
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
if (accountBookG2Total != null)
|
||||
{
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - oi._OrderDetail.Quantity;
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成总结存时可能没有该库位的绑定信息,需要写入总结存
|
||||
int iTotalResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = oi._OrderDetail.DrugId,
|
||||
Type = 4,
|
||||
YQuantity = 0,
|
||||
ManuStock = oi._OrderDetail.Quantity,
|
||||
TotalStock = oi._OrderDetail.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now,
|
||||
InvoiceNo = oi.OrderNo
|
||||
|
||||
InvoiceNo = "总结存"
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
.Where(ab => ab.ManuNo == cs.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
if (accountBookG2Day != null)
|
||||
if (iTotalResult <= 0)
|
||||
{
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - oi._OrderDetail.Quantity;
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成日结存时可能没有该库位的绑定信息,需要写入日结存
|
||||
int iDayResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = oi._OrderDetail.DrugId,
|
||||
Type = 3,
|
||||
ManuNo = cs.ManuNo,
|
||||
EffDate = cs.EffDate,
|
||||
YQuantity = 0,
|
||||
ManuStock = oi._OrderDetail.Quantity,
|
||||
TotalStock = oi._OrderDetail.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
InvoiceNo = "日结存"
|
||||
}).ExecuteCommand();
|
||||
if (iDayResult <= 0)
|
||||
{
|
||||
logger.Info($"未写入日结存数据{oi._OrderDetail.DrugId}-{cs.ManuNo}-{cs.EffDate}-{cs.Quantity}");
|
||||
}
|
||||
}
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
if (accountBookG2Total != null)
|
||||
{
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - oi._OrderDetail.Quantity;
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成总结存时可能没有该库位的绑定信息,需要写入总结存
|
||||
int iTotalResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = oi._OrderDetail.DrugId,
|
||||
Type = 4,
|
||||
YQuantity = 0,
|
||||
ManuStock = oi._OrderDetail.Quantity,
|
||||
TotalStock = oi._OrderDetail.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
InvoiceNo = "总结存"
|
||||
}).ExecuteCommand();
|
||||
if (iTotalResult <= 0)
|
||||
{
|
||||
logger.Info($"未写入总结存数据{oi._OrderDetail.DrugId}-{oi._OrderDetail.Quantity}");
|
||||
}
|
||||
logger.Info($"未写入总结存数据{oi._OrderDetail.DrugId}-{oi._OrderDetail.Quantity}");
|
||||
}
|
||||
}
|
||||
|
||||
//}
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
DrawerNo = cs.DrawerNo,
|
||||
ColNo = cs.ColNo,
|
||||
DrugId = cs.DrugId,
|
||||
ManuNo = cs.ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(cs.EffDate) ? DateTime.ParseExact(cs.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = oi._OrderDetail.Quantity,
|
||||
Type = 2,
|
||||
InvoiceId = oi.OrderNo,
|
||||
GetId= manuStock,
|
||||
DepartmentId=$"当前库存:{nowChannels.Sum(it => it.Quantity)},空瓶数:{(accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 ? accountBookEmpty.TotalStock : 0) : 0) + oi._OrderDetail.Quantity}"
|
||||
//, StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(empChannelStock))
|
||||
{
|
||||
|
|
@ -689,6 +735,7 @@ namespace DM_Weight.ViewModels
|
|||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
|
||||
logger.Info($"管理员{HomeWindowViewModel.Operator?.Nickname}结束确认手麻单");
|
||||
}
|
||||
/// <summary>
|
||||
/// 选择药箱,打开药箱
|
||||
|
|
@ -717,7 +764,7 @@ namespace DM_Weight.ViewModels
|
|||
machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
|
||||
machineRecord.OperationTime = DateTime.Now;
|
||||
machineRecord.Type = 55;
|
||||
machineRecord.InvoiceId = $"打开{DrawerNo + 1}号手术间";
|
||||
machineRecord.InvoiceId = $"管理员核对单,打开{DrawerNo + 1}号手术间";
|
||||
|
||||
|
||||
if (DrawerNo >= 0)
|
||||
|
|
@ -733,7 +780,7 @@ namespace DM_Weight.ViewModels
|
|||
//ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo);
|
||||
try
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo) });
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo) });
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -1067,9 +1114,5 @@ namespace DM_Weight.ViewModels
|
|||
// }
|
||||
//}
|
||||
}
|
||||
public class TotalDrug
|
||||
{
|
||||
public string DrugName { get; set; }
|
||||
public int TotalCount { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -8,6 +8,7 @@ using Prism.Commands;
|
|||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -32,6 +33,14 @@ namespace DM_Weight.ViewModels
|
|||
get => _drawerType;
|
||||
set => SetProperty(ref _drawerType, value);
|
||||
}
|
||||
//1取药箱;0还药箱
|
||||
private int _operationType = -1;
|
||||
|
||||
public int OperationType
|
||||
{
|
||||
get => _operationType;
|
||||
set => SetProperty(ref _operationType, value);
|
||||
}
|
||||
public bool KeepAlive => false;
|
||||
|
||||
private int _pageNum = 1;
|
||||
|
|
@ -82,7 +91,14 @@ namespace DM_Weight.ViewModels
|
|||
get => _drawerNo;
|
||||
set => SetProperty(ref _drawerNo, value);
|
||||
}
|
||||
//所选药箱号
|
||||
private int _currentDrawerNo = -1;
|
||||
|
||||
public int CurrentDrawerNo
|
||||
{
|
||||
get => _currentDrawerNo;
|
||||
set => SetProperty(ref _currentDrawerNo, value);
|
||||
}
|
||||
//开名下药箱按钮的显示状态
|
||||
//private bool _selfEnable = false;
|
||||
//public bool SelfEnable { get => _selfEnable; set => SetProperty(ref _selfEnable, value); }
|
||||
|
|
@ -536,6 +552,7 @@ namespace DM_Weight.ViewModels
|
|||
IEventAggregator _eventAggregator;
|
||||
//private PortUtil _portUtil;
|
||||
|
||||
IDialogService _dialogService;
|
||||
SocketHelper _socketHelper;
|
||||
public CheckSelfOrderWindowViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||
{
|
||||
|
|
@ -568,8 +585,8 @@ namespace DM_Weight.ViewModels
|
|||
//string currentDrawerUser = currentList.BelongUser;
|
||||
string currentDrawerUser = HomeWindowViewModel.Operator.UserBarcode;
|
||||
OrderInfoList = SqlSugarHelper.Db.Queryable<OrderInfo>()
|
||||
.Includes(oi => oi.OrderDetailList, od => od.DrugInfo)
|
||||
.Includes(oi => oi.OrderDetailList, od => od.surgicalResidual)
|
||||
.Includes(oi => oi._OrderDetail, od => od.DrugInfo)
|
||||
.Includes(oi => oi._OrderDetail, od => od.surgicalResidual)
|
||||
//.Includes(cl => cl.channelStocks, cs => cs.DrugInfo,di=>di.drugBase)
|
||||
//.InnerJoin<OrderDetail>((oi, od) => oi.OrderNo == od.OrderNo)
|
||||
//.InnerJoin<DrugInfo>((oi, od, di) => od.DrugId == di.DrugId.ToString())
|
||||
|
|
@ -579,6 +596,9 @@ namespace DM_Weight.ViewModels
|
|||
.Where(oi => oi.HisDispFlag == 0)
|
||||
.Where(oi => oi.CancelFlag == 0)
|
||||
.Where(oi => oi.DoctorCode == currentDrawerUser)
|
||||
.Where(oi => oi._OrderDetail.SetManuNo != null && oi._OrderDetail.SetManuNo != "null")
|
||||
.Where(oi => oi._OrderDetail.Quantity > 0)
|
||||
//.Where(oi => oi._OrderDetail.surgicalResidual.SendNo == DrawerNo.ToString())
|
||||
.OrderBy(oi => oi.OrderId)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
|
||||
|
|
@ -600,11 +620,10 @@ namespace DM_Weight.ViewModels
|
|||
if (OrderInfoList != null && OrderInfoList.Count() > 0)
|
||||
{
|
||||
OrderInfoList.ForEach(oi => oi.ItemIsChecked = true);
|
||||
OrderInfoList.ForEach(oi => oi.OrderDetailList.ForEach(od => od.DrugInfo = od.DrugInfo ?? new DrugInfo()));
|
||||
|
||||
OrderInfoList.ForEach(oi => oi._OrderDetail.DrugInfo = oi._OrderDetail.DrugInfo ?? new DrugInfo());
|
||||
OrderInfoList.Where(oi=>oi._OrderDetail.surgicalResidual?.SendNo==DrawerNo.ToString()).ToList()?.ForEach(oi => oi.ItemIsChecked = true);
|
||||
//TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).GroupBy(oi => oi.OrderDetailList.DrugInfo.DrugName).Select(oi => new TotalDrug { DrugName = oi.Key, TotalCount = oi.Sum(item => item.OrderDetailList.Quantity) }).ToList();
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).SelectMany(OrderDetailList => OrderDetailList.OrderDetailList).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).Select(OrderDetailList => OrderDetailList._OrderDetail).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -707,33 +726,33 @@ namespace DM_Weight.ViewModels
|
|||
// }
|
||||
//}
|
||||
//查询当前药师下所有的待确认的单子
|
||||
string currentDrawerUser = HomeWindowViewModel.Operator.UserBarcode;
|
||||
OrderInfoList = SqlSugarHelper.Db.Queryable<OrderInfo>()
|
||||
.Includes(oi => oi.OrderDetailList, od => od.DrugInfo)
|
||||
.WhereIF(OrderDate != null, oi => oi.RecvDate.ToString("yyyy-MM-dd") == OrderDate)
|
||||
.WhereIF(!String.IsNullOrEmpty(ConfigurationManager.AppSettings["storage"]), oi => oi.Pharmacy == ConfigurationManager.AppSettings["storage"])
|
||||
.Where(oi => oi.DmStatus == 0)
|
||||
.Where(oi => oi.HisDispFlag == 0)
|
||||
.Where(oi => oi.CancelFlag == 0)
|
||||
.Where(oi => oi.DoctorCode == currentDrawerUser)
|
||||
.OrderBy(oi => oi.OrderId)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
//string currentDrawerUser = HomeWindowViewModel.Operator.UserBarcode;
|
||||
//OrderInfoList = SqlSugarHelper.Db.Queryable<OrderInfo>()
|
||||
// .Includes(oi => oi._OrderDetail, od => od.DrugInfo)
|
||||
// .WhereIF(OrderDate != null, oi => oi.RecvDate.ToString("yyyy-MM-dd") == OrderDate)
|
||||
// .WhereIF(!String.IsNullOrEmpty(ConfigurationManager.AppSettings["storage"]), oi => oi.Pharmacy == ConfigurationManager.AppSettings["storage"])
|
||||
// .Where(oi => oi.DmStatus == 0)
|
||||
// .Where(oi => oi.HisDispFlag == 0)
|
||||
// .Where(oi => oi.CancelFlag == 0)
|
||||
// .Where(oi => oi.DoctorCode == currentDrawerUser)
|
||||
// .OrderBy(oi => oi.OrderId)
|
||||
// .ToPageList(PageNum, PageSize, ref totalCount);
|
||||
|
||||
if (OrderInfoList != null && OrderInfoList.Count() > 0)
|
||||
{
|
||||
OrderInfoList.ForEach(oi => oi.ItemIsChecked = true);
|
||||
OrderInfoList.ForEach(oi => oi.OrderDetailList.ForEach(od => od.DrugInfo = od.DrugInfo ?? new DrugInfo()));
|
||||
//TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).GroupBy(oi => oi.OrderDetailList.DrugInfo.DrugName).Select(oi => new TotalDrug { DrugName = oi.Key, TotalCount = oi.Sum(item => item.OrderDetailList.Quantity) }).ToList();
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).SelectMany(OrderDetailList => OrderDetailList.OrderDetailList).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
//if (OrderInfoList != null && OrderInfoList.Count() > 0)
|
||||
//{
|
||||
// OrderInfoList.ForEach(oi => oi.ItemIsChecked = true);
|
||||
// OrderInfoList.ForEach(oi => oi._OrderDetail.DrugInfo = oi._OrderDetail.DrugInfo ?? new DrugInfo());
|
||||
// //TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).GroupBy(oi => oi.OrderDetailList.DrugInfo.DrugName).Select(oi => new TotalDrug { DrugName = oi.Key, TotalCount = oi.Sum(item => item.OrderDetailList.Quantity) }).ToList();
|
||||
// TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).Select(OrderDetailList => OrderDetailList._OrderDetail).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
TotalDrugList = null;
|
||||
}
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// TotalDrugList = null;
|
||||
//}
|
||||
|
||||
TotalCount = totalCount;
|
||||
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
||||
//TotalCount = totalCount;
|
||||
//PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -769,13 +788,14 @@ namespace DM_Weight.ViewModels
|
|||
// .WhereIF(this.DrawerType == 0, cl => cl.BelongUser == HomeWindowViewModel.Operator.UserBarcode).Select(cl => cl.DrawerState).First();
|
||||
|
||||
DrawerNo = Convert.ToInt32(strDrawerNo);
|
||||
CurrentDrawerNo += DrawerNo + 1;
|
||||
MachineRecord machineRecord = new MachineRecord();
|
||||
machineRecord.MachineId = "DM5";
|
||||
machineRecord.DrawerNo = DrawerNo;
|
||||
machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
|
||||
machineRecord.OperationTime = DateTime.Now;
|
||||
machineRecord.Type = 55;
|
||||
machineRecord.InvoiceId = $"打开{DrawerNo}号手术间";
|
||||
machineRecord.InvoiceId = $"麻醉师,打开{DrawerNo}号手术间";
|
||||
|
||||
|
||||
if (DrawerNo > 0)
|
||||
|
|
@ -806,45 +826,72 @@ namespace DM_Weight.ViewModels
|
|||
return;
|
||||
}
|
||||
_socketHelper.OpenStatus = true;
|
||||
//SetBtnEnable(DrawerNo, false);
|
||||
//if (CheckBoxStatusTimer is null)
|
||||
//{
|
||||
// CheckBoxStatusTimer = new System.Timers.Timer();
|
||||
//}
|
||||
//if (!CheckBoxStatusTimer.Enabled)
|
||||
//{
|
||||
// CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState);
|
||||
// CheckBoxStatusTimer.Interval = 3000;
|
||||
// CheckBoxStatusTimer.Start();
|
||||
//}
|
||||
//记录药箱打开时间
|
||||
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == DrawerNo).First();
|
||||
if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
|
||||
{
|
||||
|
||||
channelList.DrawerState = 0;
|
||||
channelList.EffDate = DateTime.Now.ToString();
|
||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand();
|
||||
SqlSugarHelper.Db.Updateable<ChannelList>().SetColumns(it => it.EffDate == DateTime.Now.ToString()).SetColumns(it => it.DrawerState == 0)
|
||||
.Where(it => it.MachineId == "DM5" && it.DrawerNo == DrawerNo).ExecuteCommand();
|
||||
}
|
||||
//Task.Factory.StartNew(async () =>
|
||||
//if (OperationType == 1)
|
||||
//{
|
||||
// bool loop = true;
|
||||
// while (loop)
|
||||
// //取药箱,将当前药箱号记录到当前登录人身上
|
||||
// if (!string.IsNullOrEmpty(HomeWindowViewModel.Operator.BoxNumber))
|
||||
// {
|
||||
// await Task.Delay(1000);
|
||||
// bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||
// bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||
// if (state)
|
||||
// {
|
||||
// loop = false;
|
||||
// ModbusHelper.BoxOperate = false;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ModbusHelper.BoxOperate = true;
|
||||
// //ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
||||
// }
|
||||
// HomeWindowViewModel.Operator.BoxNumber += $",{DrawerNo.ToString()}";
|
||||
// SqlSugarHelper.Db.Updateable(HomeWindowViewModel.Operator).UpdateColumns(it => new { it.BoxNumber }).ExecuteCommand();
|
||||
// }
|
||||
//});
|
||||
// else
|
||||
// {
|
||||
// HomeWindowViewModel.Operator.BoxNumber = $",{DrawerNo.ToString()}";
|
||||
// SqlSugarHelper.Db.Updateable(HomeWindowViewModel.Operator).UpdateColumns(it => new { it.BoxNumber }).ExecuteCommand();
|
||||
// }
|
||||
// SqlSugarHelper.Db.Updateable<ChannelList>().SetColumns(it => it.EffDate == DateTime.Now.ToString()).SetColumns(it => it.DrawerState == 0)
|
||||
// .Where(it => it.MachineId == "DM5" && it.DrawerNo == DrawerNo).ExecuteCommand();
|
||||
// //记录取药箱信息
|
||||
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
// {
|
||||
// MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
// DrawerNo = DrawerNo,
|
||||
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||
// Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
// OperationTime = DateTime.Now,
|
||||
// Type = 70,
|
||||
// Status= 70,
|
||||
// InvoiceId = $"{DateTime.Now} 取出药箱"
|
||||
// }).ExecuteCommand();
|
||||
//}
|
||||
//else if (OperationType == 0)
|
||||
//{
|
||||
// RequestData();
|
||||
// //还药箱,将当前药箱号从当前登录人身上删除
|
||||
// if (HomeWindowViewModel.Operator.BoxNumber == $",{DrawerNo.ToString()}")
|
||||
// {
|
||||
// HomeWindowViewModel.Operator.BoxNumber = string.Empty;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// HomeWindowViewModel.Operator.BoxNumber = HomeWindowViewModel.Operator.BoxNumber.Replace($",{DrawerNo.ToString()},", ",");
|
||||
// }
|
||||
// SqlSugarHelper.Db.Updateable(HomeWindowViewModel.Operator).UpdateColumns(it => new { it.BoxNumber }).ExecuteCommand();
|
||||
// SqlSugarHelper.Db.Updateable<ChannelList>().SetColumns(it => it.EffDate ==null).SetColumns(it => it.DrawerState == 1)
|
||||
// .Where(it => it.MachineId == "DM5" && it.DrawerNo == DrawerNo).ExecuteCommand();
|
||||
// //记录还药箱时间
|
||||
// MachineRecord returnRecord = SqlSugarHelper.Db.Queryable<MachineRecord>().Where(mc => mc.MachineId == "DM5" && mc.DrawerNo == DrawerNo&&mc.Type==70&&mc.Operator==HomeWindowViewModel.Operator.Id).First();
|
||||
// if(returnRecord!=null)
|
||||
// {
|
||||
// returnRecord.EffDate = DateTime.Now;
|
||||
// returnRecord.Status = 71;
|
||||
// returnRecord.Type = 71;
|
||||
// returnRecord.InvoiceId += $";{DateTime.Now} 还回药箱";
|
||||
|
||||
// SqlSugarHelper.Db.Updateable(returnRecord).UpdateColumns(it => new { it.EffDate,it.Status,it.Type,it.InvoiceId }).ExecuteCommand();
|
||||
// }
|
||||
|
||||
//}
|
||||
Thread.Sleep(200);
|
||||
int iException = 0;
|
||||
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||
|
|
@ -902,84 +949,7 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
});
|
||||
}
|
||||
//if (DrawerType == 1) //公共药箱
|
||||
//{
|
||||
// if (listDrawerState == 0)
|
||||
// {
|
||||
// SelfContent = "还公共药箱";
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// SelfContent = "取公共药箱";
|
||||
// }
|
||||
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// if (listDrawerState == 0)
|
||||
// {
|
||||
// SelfContent = "还名下药箱";
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// SelfContent = "取名下药箱";
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
//public DelegateCommand<string> OpenBoxDelegate
|
||||
//{
|
||||
// get => new DelegateCommand<string>((DrawerType) =>
|
||||
// {
|
||||
// SearchBox();
|
||||
// }
|
||||
// );
|
||||
//}
|
||||
//private void SearchBox()
|
||||
//{
|
||||
|
||||
// SetAllBtnEnableFalse();
|
||||
// iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType)
|
||||
// .WhereIF(this.DrawerType == 0, cl => cl.BelongUser == HomeWindowViewModel.Operator.UserBarcode).ToList();
|
||||
// // .Select(cl => cl.DrawerNo).ToList();
|
||||
// if (iList.Count > 0)
|
||||
// {
|
||||
// //_portUtil.SpeakAsync("正在打开药箱");
|
||||
// //_portUtil.DrawerNo = iList[iNumber];
|
||||
// //iNumber++;
|
||||
// //_portUtil.OpenBox();
|
||||
|
||||
// for (int i = 0; i < iList.Count; i++)
|
||||
// {
|
||||
// ChannelList channelList = iList[i];
|
||||
// //记录开药箱日志
|
||||
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
// {
|
||||
// MachineId = "DM5",
|
||||
// DrawerNo = channelList.DrawerNo,
|
||||
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||
// OperationTime = DateTime.Now,
|
||||
// Type = 55,
|
||||
// InvoiceId = $"打开{iList[i].DrawerNo}号药箱",
|
||||
// OptionType = SelfContent.Substring(0, 1) == "取" ? 0 : 1
|
||||
// }).ExecuteCommand();
|
||||
// //记录药箱打开时间
|
||||
// channelList.EffDate = DateTime.Now.ToString();
|
||||
// channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1;
|
||||
// SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand();
|
||||
|
||||
// _portUtil.SpeakAsync($"正在打开{channelList.DrawerNo}号药箱");
|
||||
// logger.Info($"正在打开{channelList.DrawerNo}号药箱");
|
||||
// ModbusHelper.GetInstance().OpenBoxDoor(channelList.DrawerNo - 1);
|
||||
// }
|
||||
|
||||
// SelfStatus = 0;
|
||||
// PublicEnable = true;
|
||||
// //SelfEnable = true;
|
||||
// DrawerType = -1;
|
||||
// }
|
||||
//}
|
||||
public DelegateCommand RowSelected
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
|
|
@ -998,7 +968,7 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
//TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).GroupBy(oi => oi._OrderDetail.DrugInfo.DrugName).Select(oi => new TotalDrug { DrugName = oi.Key, TotalCount = oi.Sum(item => item._OrderDetail.Quantity) }).ToList();
|
||||
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).SelectMany(OrderDetailList => OrderDetailList.OrderDetailList).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
TotalDrugList = OrderInfoList.Where(oi => oi.ItemIsChecked).Select(OrderDetailList => OrderDetailList._OrderDetail).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1017,6 +987,16 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (DrawerNo == -1)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请先选择手术间",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
GetUseBox();
|
||||
CheckOrderAction();
|
||||
});
|
||||
|
|
@ -1040,6 +1020,33 @@ namespace DM_Weight.ViewModels
|
|||
//更新处方状态
|
||||
if (oi.DmStatus == 0)
|
||||
{
|
||||
//查询该药箱是否有该批次的药品,没有则无法确认(避免管理进行确认时确认不过去)
|
||||
if (oi._OrderDetail != null)
|
||||
{
|
||||
//for (int j = 0; j < oi.OrderDetailList.Count; j++)
|
||||
//{
|
||||
// oi._OrderDetail = oi.OrderDetailList[j];
|
||||
int drawerNo = DrawerNo;
|
||||
ChannelStock cs = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.DrugId == oi._OrderDetail.DrugId
|
||||
&& cs.ManuNo == oi._OrderDetail.SetManuNo
|
||||
&& cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")
|
||||
&& cs.DrawerNo == drawerNo).First();
|
||||
if (cs == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"处方{oi.OrderNo}因药品批次{oi._OrderDetail.SetManuNo}无库存,无法确认",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
|
||||
SqlSugarHelper.Db.Updateable(new OrderInfo()
|
||||
{
|
||||
DmStatus = 1,
|
||||
|
|
@ -1057,171 +1064,6 @@ namespace DM_Weight.ViewModels
|
|||
}).ExecuteCommand();
|
||||
}
|
||||
|
||||
#region 麻醉师确认只修改单子状态为1,不减库存,等管理员操作时减库存
|
||||
|
||||
//for (int j = 0; j < oi.OrderDetailList.Count; j++)
|
||||
//{
|
||||
// oi._OrderDetail = oi.OrderDetailList[j];
|
||||
// int drawerNo = DrawerNo + 1;
|
||||
// ChannelStock cs = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
// .Where(cs => cs.DrugId == oi._OrderDetail.DrugId
|
||||
// && cs.ManuNo == oi._OrderDetail.SetManuNo
|
||||
// && cs.EffDate == oi._OrderDetail.SetEffDate
|
||||
// && cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")
|
||||
// && cs.DrawerNo == drawerNo).First();
|
||||
// if (cs == null)
|
||||
// {
|
||||
// empChannelStock += $"{oi.OrderNo},{oi._OrderDetail.DrugId},{oi._OrderDetail.SetManuNo},{oi._OrderDetail.SetEffDate};";
|
||||
// continue;
|
||||
// }
|
||||
// cs.Quantity = cs.Quantity - oi._OrderDetail.Quantity;
|
||||
// // 更新数据 库存信息
|
||||
// SqlSugarHelper.Db.Updateable(cs).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
|
||||
// if (cs != null)
|
||||
// {
|
||||
|
||||
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
// {
|
||||
// MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
// DrawerNo = cs.DrawerNo,
|
||||
// ColNo = cs.ColNo,
|
||||
// DrugId = cs.DrugId,
|
||||
// ManuNo = cs.ManuNo,
|
||||
// EffDate = !String.IsNullOrEmpty(cs.EffDate) ? DateTime.ParseExact(cs.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||
// Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
// OperationTime = DateTime.Now,
|
||||
// Quantity = oi._OrderDetail.Quantity,
|
||||
// Type = 2,
|
||||
// InvoiceId = oi.OrderNo
|
||||
// //, StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
// }).ExecuteCommand();
|
||||
|
||||
// #region 记录 注射剂使用与交接记录报表
|
||||
// //查询发药时间
|
||||
// //MachineRecord SendMachineRecord = SqlSugarHelper.Db.Queryable<MachineRecord>().Where(mr => mr.DrawerNo == cs.DrawerNo && mr.Type == 2)
|
||||
// //.OrderByDescending(mr => mr.OperationTime)
|
||||
// //.First();
|
||||
// //string retUser = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cl.DrawerNo == cs.DrawerNo)
|
||||
// //.Select(cl => cl.BelongUser).First();
|
||||
|
||||
// RejectionReport rejectionReport = SqlSugarHelper.Db.Queryable<RejectionReport>().Where(rp => rp.DrugId == cs.DrugId && rp.DrawerNo == cs.DrawerNo).OrderByDescending(rp => rp.SendDate).First();
|
||||
|
||||
// //发药信息
|
||||
// //RejectionReport rejectionReport = new RejectionReport();
|
||||
// //rejectionReport.SendDate = SendMachineRecord.OperationTime;
|
||||
// //rejectionReport.SendUser = SendMachineRecord.Operator.ToString();
|
||||
// //rejectionReport.ReceiveUser = retUser;
|
||||
// rejectionReport.RealNum = cs.BaseQuantity;
|
||||
|
||||
// //还药信息
|
||||
// rejectionReport.InfactNum = cs.BaseQuantity - oi._OrderDetail.Quantity;
|
||||
// rejectionReport.EmptyNum = oi._OrderDetail.Quantity;
|
||||
// rejectionReport.ReturnTime = DateTime.Now.ToString();
|
||||
// rejectionReport.ReturnUser = rejectionReport.SendUser;
|
||||
// rejectionReport.ReturnReceiveUser = rejectionReport.ReceiveUser;// SendMachineRecord.Operator.ToString();
|
||||
// rejectionReport.DrugId = oi._OrderDetail.DrugId;
|
||||
// rejectionReport.DrugName = oi._OrderDetail.DrugInfo.DrugName;
|
||||
// rejectionReport.DrugSpec = oi._OrderDetail.DrugInfo.DrugSpec;
|
||||
|
||||
// rejectionReport.OperationTime = DateTime.Now;
|
||||
|
||||
// int iRejectionReport = SqlSugarHelper.Db.Updateable(rejectionReport).ExecuteCommand();
|
||||
|
||||
// #endregion
|
||||
|
||||
// }
|
||||
// //保存账册
|
||||
// int iInsertResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
// {
|
||||
// DrugId = oi._OrderDetail.DrugId,
|
||||
// Type = 2,
|
||||
// Department = oi.DeptName,
|
||||
// OrderNo = oi.OrderNo,
|
||||
// ManuNo = cs.ManuNo,
|
||||
// EffDate = cs.EffDate,
|
||||
// OutQuantity = oi._OrderDetail.Quantity,
|
||||
// UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
// UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
// MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
// CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
// CreateTime = DateTime.Now,
|
||||
// InvoiceNo = oi.OrderNo
|
||||
|
||||
// }).ExecuteCommand();
|
||||
// //修改凌晨生成的日结存与总结存数据
|
||||
// AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
// .Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
// .Where(ab => ab.Type == 3)
|
||||
// .Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
// .Where(ab => ab.ManuNo == cs.ManuNo)
|
||||
// .Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
// if (accountBookG2Day != null)
|
||||
// {
|
||||
// accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - oi._OrderDetail.Quantity;
|
||||
// SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //生成日结存时可能没有该库位的绑定信息,需要写入日结存
|
||||
// int iDayResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
// {
|
||||
// DrugId = oi._OrderDetail.DrugId,
|
||||
// Type = 3,
|
||||
// ManuNo = cs.ManuNo,
|
||||
// EffDate = cs.EffDate,
|
||||
// YQuantity = 0,
|
||||
// ManuStock = oi._OrderDetail.Quantity,
|
||||
// TotalStock = oi._OrderDetail.Quantity,
|
||||
// UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
// UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
// MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
// CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
// InvoiceNo = "日结存"
|
||||
// }).ExecuteCommand();
|
||||
// if (iDayResult <= 0)
|
||||
// {
|
||||
// logger.Info($"未写入日结存数据{oi._OrderDetail.DrugId}-{cs.ManuNo}-{cs.EffDate}-{cs.Quantity}");
|
||||
// }
|
||||
// }
|
||||
// //修改凌晨生成的日结存与总结存数据
|
||||
// AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
// .Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
// .Where(ab => ab.Type == 4)
|
||||
// .Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
// .Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
// if (accountBookG2Total != null)
|
||||
// {
|
||||
// accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - oi._OrderDetail.Quantity;
|
||||
// SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //生成总结存时可能没有该库位的绑定信息,需要写入总结存
|
||||
// int iTotalResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
// {
|
||||
// DrugId = oi._OrderDetail.DrugId,
|
||||
// Type = 4,
|
||||
// YQuantity = 0,
|
||||
// ManuStock = oi._OrderDetail.Quantity,
|
||||
// TotalStock = oi._OrderDetail.Quantity,
|
||||
// UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
// UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
// MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
// CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
// InvoiceNo = "总结存"
|
||||
// }).ExecuteCommand();
|
||||
// if (iTotalResult <= 0)
|
||||
// {
|
||||
// logger.Info($"未写入总结存数据{oi._OrderDetail.DrugId}-{oi._OrderDetail.Quantity}");
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
//if (!string.IsNullOrEmpty(empChannelStock))
|
||||
//{
|
||||
|
|
@ -1282,6 +1124,7 @@ namespace DM_Weight.ViewModels
|
|||
private void GetUseBox()
|
||||
{
|
||||
List<ChannelList> chlList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5").ToList();//.Select(cl => cl.BelongUser).First();
|
||||
//chlList = chlList.GroupBy(cl => cl.DrawerNo).Select(cl => cl.FirstOrDefault()).ToList();
|
||||
if (chlList != null && chlList.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < chlList.Count; i++)
|
||||
|
|
@ -1295,7 +1138,32 @@ namespace DM_Weight.ViewModels
|
|||
//DrawerType== 1为公共药箱
|
||||
if (chl.DrawerType == 1)
|
||||
{
|
||||
SetBtnEnable(chl.DrawerNo, true);
|
||||
//if (OperationType == 1)
|
||||
//{
|
||||
// //取药箱,在库则可取,不在则不可取
|
||||
// if (chl.DrawerState == 1)
|
||||
// {
|
||||
// SetBtnEnable(chl.DrawerNo, true);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// SetBtnEnable(chl.DrawerNo, false);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// //还药箱,只能还自己取过的药箱
|
||||
// //查询用户取过哪些药箱
|
||||
// string[] BoxNumber = HomeWindowViewModel.Operator.BoxNumber.Split(',');
|
||||
// if (BoxNumber != null && BoxNumber.Contains(chl.DrawerNo.ToString()))
|
||||
// {
|
||||
// SetBtnEnable(chl.DrawerNo, true);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
SetBtnEnable(chl.DrawerNo, true);
|
||||
//}
|
||||
//}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(chl.BelongUser) && chl.BelongUser == HomeWindowViewModel.Operator.UserBarcode)
|
||||
{
|
||||
|
|
@ -1308,98 +1176,39 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
logger.Info("进入OnNavigatedTo");
|
||||
//OpenOrderDialog();
|
||||
RequestData();
|
||||
logger.Info("结束RequestData");
|
||||
//if(ModbusHelper.BoxOperate)
|
||||
//{
|
||||
// Task.Factory.StartNew(() => { ModbusHelper.SpeakAsync("请关闭药箱后再打开"); });
|
||||
// return;
|
||||
//}
|
||||
////查询当前药师的第一个药箱号并打开该药箱
|
||||
//int drawerNo = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.BelongUser == HomeWindowViewModel.Operator.UserBarcode).Select(cl => cl.DrawerNo).First();
|
||||
//if (drawerNo > 0)
|
||||
//{
|
||||
//SetAllBtnEnableFalse();
|
||||
//DrawerNo = drawerNo;
|
||||
////进入页面打开当前用户的第一个药箱
|
||||
////记录开药箱日志
|
||||
//SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
//{
|
||||
// MachineId = "DM5",
|
||||
// DrawerNo = drawerNo,
|
||||
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||
// OperationTime = DateTime.Now,
|
||||
// Type = 55,
|
||||
// InvoiceId = $"打开{drawerNo}号药箱",
|
||||
// //OptionType = SelfContent.Substring(0, 1) == "取" ? 0 : 1
|
||||
//}).ExecuteCommand();
|
||||
|
||||
//ModbusHelper.SpeakAsync($"正在打开{drawerNo}号药箱");
|
||||
//logger.Info($"正在打开{drawerNo}号药箱");
|
||||
//ModbusHelper.GetInstance().OpenBoxDoor(drawerNo - 1);
|
||||
//SetBtnEnable(drawerNo, false);
|
||||
//if (CheckBoxStatusTimer is null)
|
||||
//{
|
||||
// CheckBoxStatusTimer = new System.Timers.Timer();
|
||||
//}
|
||||
//if (!CheckBoxStatusTimer.Enabled)
|
||||
//{
|
||||
// CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState);
|
||||
// CheckBoxStatusTimer.Interval = 3000;
|
||||
// CheckBoxStatusTimer.Start();
|
||||
//}
|
||||
//记录药箱打开时间
|
||||
//ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == drawerNo).First();
|
||||
//if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
|
||||
//{
|
||||
|
||||
// channelList.EffDate = DateTime.Now.ToString();
|
||||
// SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||
//}
|
||||
//Task.Factory.StartNew(async () =>
|
||||
//{
|
||||
// bool loop = true;
|
||||
// while (loop)
|
||||
// {
|
||||
// await Task.Delay(4000);
|
||||
// bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||
// bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||
// if (state)
|
||||
// {
|
||||
// loop = false;
|
||||
// ModbusHelper.BoxOperate = false;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ModbusHelper.BoxOperate = true;
|
||||
// //ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
//}
|
||||
}
|
||||
//private void GetAllBoxState(object sender, ElapsedEventArgs e)
|
||||
//{
|
||||
// //查询药箱是否关闭,如果已经关闭则按钮可用,可继续开该编号的药箱
|
||||
// if (DrawerNo >= 0)
|
||||
// {
|
||||
// bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
|
||||
// bool allFalse = Array.TrueForAll(boolArrs, b => b == false);
|
||||
// if (allFalse)
|
||||
// {
|
||||
// if (CheckBoxStatusTimer.Enabled)
|
||||
// {
|
||||
// CheckBoxStatusTimer.Stop();
|
||||
// }
|
||||
// }
|
||||
// //设置对应药箱按钮可用状态
|
||||
// SetBtnEnable(DrawerNo, !boolArrs[DrawerNo]);
|
||||
// }
|
||||
//}
|
||||
public async Task OpenOrderDialog()
|
||||
{
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "SelectOperationTypeDialog", null, DoDialogResult, "RootDialog");
|
||||
|
||||
}
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
// 委托 被动执行 被子窗口执行
|
||||
// dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态
|
||||
if (dialogResult.Result == ButtonResult.OK)
|
||||
{
|
||||
//取药箱,只能取在库存的药箱
|
||||
OperationType = 1;
|
||||
GetUseBox();
|
||||
}
|
||||
else
|
||||
{
|
||||
//还药箱,只能点自己取过的药箱
|
||||
OperationType = 0;
|
||||
RequestData();
|
||||
}
|
||||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||
}
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
|
|
@ -1410,5 +1219,31 @@ namespace DM_Weight.ViewModels
|
|||
// 取消消息订阅
|
||||
//_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||
}
|
||||
/// <summary>
|
||||
/// 点击取药箱按钮
|
||||
/// </summary>
|
||||
//public DelegateCommand TakeBoxCommand
|
||||
//{
|
||||
// get => new DelegateCommand(TakeBoxMethod);
|
||||
//}
|
||||
//public void TakeBoxMethod()
|
||||
//{
|
||||
// OperationType = 1;
|
||||
// GetUseBox();
|
||||
//}
|
||||
/// <summary>
|
||||
/// 点击还药箱按钮
|
||||
/// </summary>
|
||||
//public DelegateCommand ReturnBoxCommand
|
||||
//{
|
||||
// get => new DelegateCommand(ReturnBoxMethod);
|
||||
//}
|
||||
//public void ReturnBoxMethod()
|
||||
//{
|
||||
|
||||
// OperationType = 0;
|
||||
// GetUseBox();
|
||||
// RequestData();
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,436 @@
|
|||
using Common.Logging;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using log4net;
|
||||
using MaterialDesignThemes.Wpf;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class CheckStockWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
|
||||
{
|
||||
private readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(CheckStockWindowViewModel));
|
||||
private int _drawerNo = 0;
|
||||
|
||||
public int DrawerNo
|
||||
{
|
||||
get => _drawerNo;
|
||||
set => SetProperty(ref _drawerNo, value);
|
||||
}
|
||||
|
||||
private SolidColorBrush _colorBrush;
|
||||
|
||||
public SolidColorBrush SnackbarBackground
|
||||
{
|
||||
get => _colorBrush;
|
||||
set => SetProperty(ref _colorBrush, value);
|
||||
}
|
||||
|
||||
private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3));
|
||||
|
||||
public ISnackbarMessageQueue SnackbarMessageQueue
|
||||
{
|
||||
get => _snackbarMessageQueue;
|
||||
set => SetProperty(ref _snackbarMessageQueue, value);
|
||||
}
|
||||
|
||||
private List<ChannelStock> _channelStocks = new();
|
||||
|
||||
public List<ChannelStock> ChannelStocks
|
||||
{
|
||||
get => _channelStocks;
|
||||
set => SetProperty(ref _channelStocks, value);
|
||||
}
|
||||
private ChannelStock _channelStock;
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get => _channelStock;
|
||||
set => SetProperty(ref _channelStock, value);
|
||||
}
|
||||
private bool _isEnable = true;
|
||||
public bool IsEnable { get => _isEnable; set => SetProperty(ref _isEnable, value); }
|
||||
private int _status = 0;
|
||||
public int Status { get => _status; set { SetProperty(ref _status, value); } }
|
||||
|
||||
|
||||
private readonly IDialogService _dialogService;
|
||||
|
||||
public bool KeepAlive => false;
|
||||
IEventAggregator _eventAggregator;
|
||||
public CheckStockWindowViewModel(IDialogService dialogService, IEventAggregator eventAggregator)
|
||||
{
|
||||
_dialogService = dialogService;
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
private void RequestData()
|
||||
{
|
||||
List<ChannelStock> queryData = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Includes(cs => cs.DrugInfo)
|
||||
.Where(cs => cs.DrawerNo == DrawerNo + 1)
|
||||
.Where(cs => cs.DrugId != null)
|
||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5"))
|
||||
.OrderBy(cs => cs.DrugId)
|
||||
.ToList();
|
||||
ChannelStocks = queryData.Select(it => { it.CheckQuantity = it.Quantity; return it; }).ToList();
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
logger.Info("进入OnNavigatedTo");
|
||||
//删除药品有批次但是库存为0的药品
|
||||
List<ChannelStock> csList = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cs.Quantity <= 0 && !string.IsNullOrEmpty(cs.ManuNo)).ToList();
|
||||
if (csList != null && csList.Count > 0)
|
||||
{
|
||||
SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cs.Quantity <= 0 && !string.IsNullOrEmpty(cs.ManuNo)).ExecuteCommand();
|
||||
for (int i = 0; i < csList.Count; i++)
|
||||
{
|
||||
//如果channel_stock下无数据则channel_list同步删除
|
||||
int iListCount= SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cs.DrawerNo==csList[i].DrawerNo&& cs.DrugId == csList[i].DrugId).Count();
|
||||
if (iListCount <=0)
|
||||
SqlSugarHelper.Db.Deleteable<ChannelList>().Where(cl => cl.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cl.Id == csList[i].Chnguid).ExecuteCommand();
|
||||
}
|
||||
|
||||
}
|
||||
RequestData();
|
||||
logger.Info("结束RequestData");
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
// 取消消息订阅
|
||||
//_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||
}
|
||||
|
||||
|
||||
public DelegateCommand<string> UpdateDrawerNo
|
||||
{
|
||||
get => new DelegateCommand<string>((DrawerNo) =>
|
||||
{
|
||||
this.DrawerNo = Convert.ToInt32(DrawerNo);
|
||||
RequestData();
|
||||
}
|
||||
);
|
||||
}
|
||||
private static readonly DateTime Jan1st1970 = new DateTime
|
||||
(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
public long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
//保存修改的库存数
|
||||
public DelegateCommand SaveCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
List<ChannelStock> record = ChannelStocks.FindAll(it => it.Quantity != it.CheckQuantity).ToList();
|
||||
if (record.Count > 0)
|
||||
{
|
||||
bool iFlag = true;
|
||||
string InvoiceId = "CHECK_" + CurrentTimeMillis();
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
|
||||
for (int i = 0; i < record.Count; i++)
|
||||
{
|
||||
iFlag = true;
|
||||
ChannelStock it = record[i];
|
||||
if (it.AddToJJNum > 0 || it.NeedNum > 0)
|
||||
{
|
||||
//有待取药或待入库药品,弹出提示,确认后保存
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("ConfirmInfo", $"所选药品{it.DrugInfo.DrugName}存在待取药或待入库数据是否确认保存?");
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ConfirmDialog", dialogParameters, (IDialogResult dialogResult) =>
|
||||
{
|
||||
if (dialogResult.Result == ButtonResult.OK)
|
||||
{
|
||||
iFlag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
iFlag = false;
|
||||
}
|
||||
}, "RootDialog");
|
||||
}
|
||||
if (iFlag)
|
||||
{
|
||||
// 更新数据 库存信息
|
||||
SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
{
|
||||
Quantity = it.CheckQuantity,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
Id = it.Id,
|
||||
NeedNum = 0,
|
||||
AddToJJNum = 0,
|
||||
State = 0,
|
||||
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate, it.NeedNum, it.AddToJJNum }).ExecuteCommand();
|
||||
|
||||
//SqlSugarHelper.Db.Updateable(new ChannelList()
|
||||
//{
|
||||
// State = 0,
|
||||
// Id = it.Chnguid
|
||||
//}).UpdateColumns(cl => new { cl.State }).ExecuteCommand();
|
||||
|
||||
//盘点改库存记录账册,多了则记录入库、少了记录出库
|
||||
if(it.CheckQuantity!=it.Quantity)
|
||||
{
|
||||
|
||||
//查询上一条账册中的空瓶数
|
||||
AccountBookG2 accountBookEmpty = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 1 || ab.Type == 2)
|
||||
.Where(ab => ab.DrugId == it.DrugId)
|
||||
.Where(ab => ab.ManuNo == it.ManuNo).OrderByDescending(ab => ab.Id).First();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == it.DrugId)
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
// 获取更新完库存后的药品库存
|
||||
List<ChannelStock> nowChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => (cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"]) && cs.DrawerType == 1) || cs.MachineId.Equals(ConfigurationManager.AppSettings["jj_machineId"]))
|
||||
.Where(cs => cs.DrugId.Equals(it.DrugId))
|
||||
.Where(cs => cs.ManuNo.Equals(it.ManuNo))
|
||||
//.Where(cs => cs.DrawerType == 1)
|
||||
.ToList();
|
||||
|
||||
int manuStock = 0;
|
||||
if (it.CheckQuantity-it.Quantity>0)
|
||||
{
|
||||
//盘多了,记录入库
|
||||
if (accountBookG2Day != null)
|
||||
{
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + (it.CheckQuantity - it.Quantity);
|
||||
accountBookG2Day.AddQuantity = accountBookG2Day.AddQuantity + (it.CheckQuantity - it.Quantity);
|
||||
//负数直接记0
|
||||
accountBookG2Day.TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 && accountBookEmpty.TotalStock > (it.CheckQuantity - it.Quantity) ? accountBookEmpty.TotalStock - (it.CheckQuantity - it.Quantity) : 0) : 0);
|
||||
|
||||
accountBookG2Day.CreateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
manuStock = accountBookG2Day.ManuStock;
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成日结存时可能没有该库位的绑定信息,需要写入日结存
|
||||
int iDayResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = it.DrugId,
|
||||
Type = 3,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
YQuantity = 0,
|
||||
ManuStock = (it.CheckQuantity - it.Quantity),
|
||||
TotalStock = (it.CheckQuantity - it.Quantity),
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59),
|
||||
InvoiceNo = "日结存",
|
||||
AddQuantity = (it.CheckQuantity - it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
if (iDayResult <= 0)
|
||||
{
|
||||
logger.Info($"未写入日结存数据{it.DrugId}-{it.ManuNo}-{it.EffDate}-{it.CheckQuantity - it.Quantity}");
|
||||
}
|
||||
}
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = it.DrugId,
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
AddQuantity = it.CheckQuantity - it.Quantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now,
|
||||
ManuStock = manuStock > 0 ? manuStock : nowChannels.Sum(it => it.Quantity),
|
||||
TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 && accountBookEmpty.TotalStock > (it.CheckQuantity - it.Quantity) ? accountBookEmpty.TotalStock - (it.CheckQuantity - it.Quantity) : 0) : 0) //负数直接记0
|
||||
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//盘少了,记录出库
|
||||
if (accountBookG2Day != null)
|
||||
{
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - (it.Quantity-it.CheckQuantity);
|
||||
accountBookG2Day.OutQuantity = accountBookG2Day.OutQuantity + (it.Quantity - it.CheckQuantity);
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
//accountBookG2Day.UseDose = (Convert.ToInt32(accountBookG2Day.UseDose) + Convert.ToInt32(oi._OrderDetail.surgicalResidual.UseDose)).ToString();//盘点减的库存没有使用剂量
|
||||
//accountBookG2Day.ResidualDose = (Convert.ToInt32(accountBookG2Day.ResidualDose) + Convert.ToInt32(oi._OrderDetail.surgicalResidual.ResidualDose)).ToString();//盘点减的库存没有剩余剂量
|
||||
accountBookG2Day.TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 ? accountBookEmpty.TotalStock : 0) : 0) + (it.Quantity - it.CheckQuantity);
|
||||
manuStock = accountBookG2Day.ManuStock;
|
||||
}
|
||||
else
|
||||
{
|
||||
//生成日结存时可能没有该库位的绑定信息,需要写入日结存
|
||||
int iDayResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId =it.DrugId,
|
||||
Type = 3,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
YQuantity = 0,
|
||||
ManuStock = nowChannels.Sum(it => it.Quantity), //oi._OrderDetail.Quantity,
|
||||
TotalStock = it.Quantity - it.CheckQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59),
|
||||
InvoiceNo = "日结存",
|
||||
OutQuantity = (it.Quantity - it.CheckQuantity),
|
||||
//UseDose = oi._OrderDetail.surgicalResidual.UseDose,
|
||||
//ResidualDose = oi._OrderDetail.surgicalResidual.ResidualDose
|
||||
}).ExecuteCommand();
|
||||
if (iDayResult <= 0)
|
||||
{
|
||||
logger.Info($"未写入日结存数据{it.DrugId}-{it.ManuNo}-{it.EffDate}-{it.Quantity-it.CheckQuantity}");
|
||||
}
|
||||
}
|
||||
//查询上一条账册中的空瓶数
|
||||
//AccountBookG2 accountBookEmpty = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
//.Where(ab => ab.MachineId.Equals(ConfigurationManager.AppSettings["dm_machineId"].ToString()))
|
||||
//.Where(ab => ab.Type == 1 || ab.Type == 2)
|
||||
//.Where(ab => ab.DrugId == oi._OrderDetail.DrugId)
|
||||
//.Where(ab => ab.ManuNo == cs.ManuNo).OrderByDescending(ab => ab.Id).First();
|
||||
//保存账册
|
||||
int iInsertResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = it.DrugId,
|
||||
Type = 2,
|
||||
//Department = oi.DeptName,
|
||||
OrderNo = $"checkStock_{it.DrawerNo}_{it.ColNo}_{it.Quantity}_{it.CheckQuantity}_{DateTime.Now}",
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
OutQuantity = it.Quantity-it.CheckQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["dm_machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now,
|
||||
InvoiceNo = $"checkStock_{it.DrawerNo}_{it.ColNo}_{it.Quantity}_{it.CheckQuantity}_{DateTime.Now}",
|
||||
ManuStock = manuStock > 0 ? manuStock : nowChannels.Sum(it => it.Quantity),
|
||||
TotalStock = (accountBookEmpty != null ? (accountBookEmpty.TotalStock > 0 ? accountBookEmpty.TotalStock : 0) : 0) + (it.Quantity - it.CheckQuantity),
|
||||
//ShoushuJian = drawerNo.ToString()
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 保存数据 盘点记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = it.MachineId,
|
||||
DrawerNo = it.DrawerNo,
|
||||
ColNo = it.ColNo,
|
||||
DrugId = it.DrugId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = it.CheckQuantity - it.Quantity,
|
||||
Type = 4,
|
||||
InvoiceId = $"{it.DrawerNo}{it.DrugInfo.DrugName}盘前库存{it.Quantity},后{it.CheckQuantity}" // InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity),
|
||||
//CheckQuantity = it.CheckQuantity
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
logger.Info($"库存盘点->药箱号【{it.DrawerNo}】药品【{it.DrugInfo.DrugName}】盘点前库存【{it.Quantity}】,更改后【{it.CheckQuantity}】");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (!iFlag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (f.Data)
|
||||
{
|
||||
RequestData();
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "操作完成",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "操作失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
Status = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "盘点完成,库存无改变",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Status = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//刷新
|
||||
public DelegateCommand Query
|
||||
{
|
||||
get => new DelegateCommand(RequestData);
|
||||
}
|
||||
|
||||
public DelegateCommand RowSelected
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (_channelStock != null)
|
||||
{
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
using DM_Weight.Models;
|
||||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ConfirmDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
private string _title = "保存确认";
|
||||
|
||||
public string Title
|
||||
{
|
||||
get => _title;
|
||||
set => SetProperty(ref _title, value);
|
||||
}
|
||||
|
||||
private string _confirmInfo= "所选药品存在待取药或待入库数据是否确认保存?";
|
||||
public string ConfirmInfo
|
||||
{
|
||||
get => _confirmInfo;
|
||||
set => SetProperty(ref _confirmInfo, value);
|
||||
}
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
|
||||
ConfirmInfo = parameters.GetValue<string>("ConfirmInfo");
|
||||
}
|
||||
public DelegateCommand CancelCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
public DelegateCommand ConfirmCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
//确认
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
internal class DatetimeDialogViewModel : BindableBase, IDialogAware
|
||||
{
|
||||
public string Title => throw new NotImplementedException();
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
private DateTime? _date = new DateTime();
|
||||
public DateTime? Date
|
||||
{
|
||||
get => _date;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _date, value);
|
||||
}
|
||||
}
|
||||
private DateTime? _time = new DateTime();
|
||||
public DateTime? Time
|
||||
{
|
||||
get => _time;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _time, value);
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
|
||||
}
|
||||
string typeS;
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
DateTime o = parameters.GetValue<DateTime>("DateTime");
|
||||
|
||||
typeS = parameters.GetValue<string>("Type");
|
||||
Date = o;
|
||||
Time = o;
|
||||
}
|
||||
|
||||
public DelegateCommand CloseAction
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
var datetime=new DateTime(Date?.Year ?? DateTime.Now.Year, Date?.Month ?? DateTime.Now.Month, Date?.Day ?? DateTime.Now.Day,
|
||||
Time?.Hour ?? DateTime.Now.Hour, Time?.Minute ?? DateTime.Now.Minute, Time?.Second ?? DateTime.Now.Second);
|
||||
var result = new DialogResult(ButtonResult.OK, new DialogParameters
|
||||
{
|
||||
{ "DateTime", datetime },
|
||||
{"Type",typeS }
|
||||
});
|
||||
RequestClose?.Invoke(result);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using log4net;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class EmergencyWindowViewModel : BindableBase
|
||||
{
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindowViewModel));
|
||||
IEventAggregator _eventAggregator;
|
||||
private PortUtil _portUtil;
|
||||
IRegionManager _regionManager;
|
||||
SocketHelper _socketHelper;
|
||||
private bool _dbConnectionFail = !App.DbConnectionFail;
|
||||
public bool DBConnectionStatus { get=>_dbConnectionFail; set => SetProperty(ref _dbConnectionFail, value); }
|
||||
public EmergencyWindowViewModel(IRegionManager regionManager, PortUtil portUtil, IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||
{
|
||||
_portUtil = portUtil;
|
||||
_eventAggregator = eventAggregator;
|
||||
_regionManager = regionManager;
|
||||
_socketHelper = socketHelper;
|
||||
CheckDBConnect();
|
||||
}
|
||||
public DelegateCommand<string> UpdateDrawerNo
|
||||
{
|
||||
get => new DelegateCommand<string>((DrawerNo) =>
|
||||
{
|
||||
//应急开锁
|
||||
logger.Info($"应急开锁正在打开{DrawerNo}号药箱");
|
||||
try
|
||||
{
|
||||
logger.Info($"发送开{DrawerNo}号药箱指令");
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(Convert.ToInt32(DrawerNo) - 1) });
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
logger.Info($"发开{DrawerNo}号药箱指令完成");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,开药箱正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
public DelegateCommand ReturnLoginDelegate
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||
});
|
||||
}
|
||||
private DelegateCommand? _exitCommand;
|
||||
public DelegateCommand ExitCommand => _exitCommand ??= new DelegateCommand(Exit);
|
||||
void Exit()
|
||||
{
|
||||
//_chkFunction.HIKLoginOut();
|
||||
_socketHelper.SocketDisConnect();
|
||||
Process.GetCurrentProcess().Kill();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
//间隔1分钟查询数据库连接状态
|
||||
private void CheckDBConnect()
|
||||
{
|
||||
new PromiseUtil<int>().taskAsyncLoop(60000, 0, async (options, next, stop) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var userList = SqlSugarHelper.Db.Queryable<UserList>()
|
||||
.First(u => u.UserName == "admin");
|
||||
App.DbConnectionFail = false;
|
||||
DBConnectionStatus = true;
|
||||
stop();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
internal class EmptyWindowViewModel
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,475 @@
|
|||
using Common.Logging;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.select;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ExchangeDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(RemoveDialogViewModel));
|
||||
public string Title => "替换药品";
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
private static readonly DateTime Jan1st1970 = new DateTime
|
||||
(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
private List<ChannelStock> _channelStocks = new();
|
||||
public List<ChannelStock> _ChannelStocks
|
||||
{
|
||||
get => _channelStocks;
|
||||
set { SetProperty(ref _channelStocks, value); }
|
||||
}
|
||||
|
||||
private ChannelStock _csStock;
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get { return _csStock; }
|
||||
set { SetProperty(ref _csStock, value); }
|
||||
}
|
||||
SocketHelper _socketHelper;
|
||||
public ExchangeDialogViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
_socketHelper = socketHelper;
|
||||
}
|
||||
|
||||
|
||||
private int _status = 0;
|
||||
|
||||
public int Status
|
||||
{
|
||||
get => _status; set => SetProperty(ref _status, value);
|
||||
}
|
||||
|
||||
|
||||
static List<OrderTakeSelect> StaticSelects = new List<OrderTakeSelect>()
|
||||
{
|
||||
new OrderTakeSelect{Name="一号手术间",Code="1"},
|
||||
new OrderTakeSelect{Name="二号手术间",Code="2"},
|
||||
new OrderTakeSelect{Name="三号手术间",Code="3"},
|
||||
new OrderTakeSelect{Name="四号手术间",Code="4"},
|
||||
new OrderTakeSelect{Name="五号手术间",Code="5"},
|
||||
new OrderTakeSelect{Name="六号手术间",Code="6"},
|
||||
new OrderTakeSelect{Name="七号手术间",Code="7"},
|
||||
new OrderTakeSelect{Name="八号手术间",Code="8"},
|
||||
new OrderTakeSelect{Name="九号手术间",Code="9"},
|
||||
new OrderTakeSelect{Name="十号手术间",Code="10"},
|
||||
new OrderTakeSelect{Name="十一号手术间",Code="11"},
|
||||
new OrderTakeSelect{Name="十二号手术间",Code="12"},
|
||||
new OrderTakeSelect{Name="十三号手术间",Code="13"},
|
||||
new OrderTakeSelect{Name="十四号手术间",Code="14"},
|
||||
new OrderTakeSelect{Name="十五号手术间",Code="15"},
|
||||
new OrderTakeSelect{Name="十六号手术间",Code="16"},
|
||||
new OrderTakeSelect{Name="十七号手术间",Code="17"},
|
||||
new OrderTakeSelect{Name="十八号手术间",Code="18"},
|
||||
};
|
||||
|
||||
private List<OrderTakeSelect> _selects = StaticSelects;
|
||||
|
||||
public List<OrderTakeSelect> Selects
|
||||
{
|
||||
get { return _selects; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selects, value);
|
||||
}
|
||||
}
|
||||
|
||||
private OrderTakeSelect _selectedItem = StaticSelects[0];
|
||||
public OrderTakeSelect SelectedItem
|
||||
{
|
||||
get => _selectedItem;
|
||||
set
|
||||
{
|
||||
RequestData(value.Code);
|
||||
SetProperty(ref _selectedItem, value);
|
||||
}
|
||||
}
|
||||
//去掉移出的药箱号
|
||||
private OrderTakeSelect _removeItem = new();
|
||||
public OrderTakeSelect RemoveItem
|
||||
{
|
||||
get => _removeItem;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _removeItem, value);
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return Status == 0;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
Selects.Insert(_ChannelStock.DrawerNo - 1, RemoveItem);
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
ChannelStock _csStock = parameters.GetValue<ChannelStock>("csStock");
|
||||
_ChannelStock = _csStock;
|
||||
RemoveItem = Selects[_ChannelStock.DrawerNo - 1];
|
||||
Selects.Remove(RemoveItem);
|
||||
|
||||
//RequestData();
|
||||
}
|
||||
|
||||
public void RequestData(string code)
|
||||
{
|
||||
_ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cl => cl.MachineId == "DM5")
|
||||
.WhereIF(!string.IsNullOrEmpty(code), cl => cl.DrawerNo == Convert.ToInt32(code))
|
||||
.Where(cl => cl.DrawerType == 1)
|
||||
.Where(cl => cl.DrugId == _ChannelStock.DrugId && cl.ManuNo != _ChannelStock.ManuNo)
|
||||
.Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||
.ToList();
|
||||
}
|
||||
//开药盒
|
||||
public DelegateCommand OpenDrawer
|
||||
{
|
||||
get => new DelegateCommand(async () =>
|
||||
{
|
||||
if (SelectedItem.Code != null)
|
||||
{
|
||||
await OpenBox();
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择要替换的药箱!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
|
||||
}, () => Status == 0);
|
||||
}
|
||||
|
||||
private async Task OpenBox()
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync("请关闭手术间后再打开");
|
||||
return;
|
||||
}
|
||||
MachineRecord machineRecord = new MachineRecord();
|
||||
machineRecord.MachineId = "DM5";
|
||||
machineRecord.DrawerNo = Convert.ToInt32(SelectedItem.Code);
|
||||
machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
|
||||
machineRecord.OperationTime = DateTime.Now;
|
||||
machineRecord.Type = 55;
|
||||
machineRecord.InvoiceId = $"交换药品明细{_ChannelStock?.DrawerNo},打开{Convert.ToInt32(SelectedItem.Code)}号手术间";
|
||||
|
||||
|
||||
if (Convert.ToInt32(SelectedItem.Code) > 0)
|
||||
{
|
||||
Status = 1;
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync($"正在打开{SelectedItem.Code}号手术间");
|
||||
logger.Info($"正在打开{SelectedItem.Code}号手术间");
|
||||
//记录开药箱日志
|
||||
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
||||
try
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(Convert.ToInt32(SelectedItem.Code) - 1) });
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
return;
|
||||
}
|
||||
_socketHelper.OpenStatus = true;
|
||||
//记录药箱打开时间
|
||||
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == _ChannelStock.DrawerNo).First();
|
||||
if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
|
||||
{
|
||||
|
||||
channelList.EffDate = DateTime.Now.ToString();
|
||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||
}
|
||||
Thread.Sleep(200);
|
||||
int iException = 0;
|
||||
await new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
next();
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
Status = 0;
|
||||
stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
Status = 0;
|
||||
stop();
|
||||
}
|
||||
iException = 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
iException++;
|
||||
if (iException >= 3)
|
||||
{
|
||||
_socketHelper.OpenStatus = false;
|
||||
}
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private bool _isFinishClick = false;
|
||||
|
||||
public bool IsFinishClick { get => _isFinishClick; set => SetProperty(ref _isFinishClick, value); }
|
||||
// 完成按钮
|
||||
public DelegateCommand FinishCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
List<ChannelStock> saveChannelStock = _ChannelStocks.Where(cs => cs.TakeQuantity > 0).ToList();
|
||||
if (saveChannelStock == null || saveChannelStock.Count <= 0)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请填写要交换药品的交换数量",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
int sumQuantity = saveChannelStock.Sum(cs => cs.TakeQuantity);
|
||||
if (sumQuantity > _ChannelStock.Quantity)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "交换总数不能大于库存",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
|
||||
IsFinishClick = true;
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
for (int i = 0; i < saveChannelStock.Count; i++)
|
||||
{
|
||||
ChannelStock currentChannelStock = saveChannelStock[i];
|
||||
if (currentChannelStock.Quantity < currentChannelStock.TakeQuantity)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"药品{currentChannelStock.DrugInfo.DrugName}交换数量不能大于库存",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
|
||||
string csId = Guid.NewGuid().ToString();
|
||||
//查询【出药】的药箱中是否有该批次药品
|
||||
ChannelStock ReplaceChannelStockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.MachineId.Equals(_ChannelStock.MachineId))
|
||||
.Where(cs => cs.DrawerNo == _ChannelStock.DrawerNo)
|
||||
.Where(cs => cs.DrugId.Equals(currentChannelStock.DrugId))
|
||||
.Where(cs => cs.ManuNo.Equals(currentChannelStock.ManuNo))
|
||||
.First();
|
||||
//修改已替换的药品批次数量(现库存数-已替换总数)
|
||||
if (_ChannelStock.Quantity > 0)
|
||||
{
|
||||
_ChannelStock.Quantity = _ChannelStock.Quantity - sumQuantity;
|
||||
SqlSugarHelper.Db.Updateable(_ChannelStock).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
}
|
||||
if (ReplaceChannelStockList != null)
|
||||
{
|
||||
//有该批次药品则更新
|
||||
//csId = ReplaceChannelStockList.Id;
|
||||
ReplaceChannelStockList.Quantity = ReplaceChannelStockList.Quantity + currentChannelStock.TakeQuantity;
|
||||
SqlSugarHelper.Db.Updateable(ReplaceChannelStockList).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有该批次药品则插入
|
||||
SqlSugarHelper.Db.Insertable(new ChannelStock()
|
||||
{
|
||||
MachineId = _ChannelStock.MachineId,
|
||||
DrawerNo = _ChannelStock.DrawerNo,
|
||||
DrugId = _ChannelStock.DrugId,
|
||||
ManuNo = currentChannelStock.ManuNo,
|
||||
EffDate = currentChannelStock.EffDate,
|
||||
Quantity = currentChannelStock.TakeQuantity,
|
||||
DrawerType = 1,
|
||||
Chnguid = _ChannelStock.Chnguid,
|
||||
Id = csId,
|
||||
BaseQuantity= _ChannelStock.BaseQuantity
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
string csToId = Guid.NewGuid().ToString();
|
||||
// 保存数据 替换药记录
|
||||
SqlSugarHelper.Db.Insertable(new MoveChannelStock()
|
||||
{
|
||||
MachineId = _ChannelStock.MachineId,
|
||||
FromDrawer = _ChannelStock.DrawerNo,
|
||||
ToDrawer = currentChannelStock.DrawerNo,
|
||||
DrugId = _ChannelStock.DrugId,
|
||||
FromManuNo = _ChannelStock.ManuNo,
|
||||
ToManuNo = currentChannelStock.ManuNo,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
Quantity = currentChannelStock.TakeQuantity,
|
||||
Type = 69,
|
||||
}).ExecuteCommand();
|
||||
|
||||
//查询【入药】的药箱中是否有该批次药品
|
||||
ChannelStock Replace2ChannelStockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.MachineId.Equals(_ChannelStock.MachineId))
|
||||
.Where(cs => cs.DrawerNo == currentChannelStock.DrawerNo)
|
||||
.Where(cs => cs.DrugId.Equals(_ChannelStock.DrugId))
|
||||
.Where(cs => cs.ManuNo.Equals(_ChannelStock.ManuNo))
|
||||
.First();
|
||||
//修改替换的药品批次数量(现库存数-已替换总数)
|
||||
currentChannelStock.Quantity = currentChannelStock.Quantity - currentChannelStock.TakeQuantity;
|
||||
SqlSugarHelper.Db.Updateable(currentChannelStock).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
|
||||
if (Replace2ChannelStockList!=null)
|
||||
{
|
||||
//有该批次药品则更新库存
|
||||
Replace2ChannelStockList.Quantity = Replace2ChannelStockList.Quantity + currentChannelStock.TakeQuantity;
|
||||
SqlSugarHelper.Db.Updateable(Replace2ChannelStockList).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有该批次药品则插入
|
||||
SqlSugarHelper.Db.Insertable(new ChannelStock()
|
||||
{
|
||||
MachineId = _ChannelStock.MachineId,
|
||||
DrawerNo = currentChannelStock.DrawerNo,
|
||||
DrugId = _ChannelStock.DrugId,
|
||||
ManuNo = _ChannelStock.ManuNo,
|
||||
Quantity = currentChannelStock.TakeQuantity,
|
||||
DrawerType = 1,
|
||||
Chnguid = currentChannelStock.Chnguid,
|
||||
Id = csToId,
|
||||
BaseQuantity= currentChannelStock.BaseQuantity
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (f.Data)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "操作完成,库存已更新",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "库存更新失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
Status = 0;
|
||||
IsFinishClick = false;
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "替换药品异常",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
}, () => !IsFinishClick);
|
||||
}
|
||||
|
||||
public long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
public DelegateCommand CancleCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
IsFinishClick = false;
|
||||
Status = 0;
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
|
||||
public DelegateCommand BtnCloseCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
}, () => Status == 0).ObservesProperty(() => Status);
|
||||
}
|
||||
|
||||
public bool KeepAlive => false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,264 @@
|
|||
using Common.Logging;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Drawing.Printing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ExchangeWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
|
||||
{
|
||||
public bool KeepAlive => false;
|
||||
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
|
||||
|
||||
private List<ChannelStock> _channelStocks=new List<ChannelStock>();
|
||||
public List<ChannelStock> _ChannelStocks
|
||||
{
|
||||
get => _channelStocks;
|
||||
set=>SetProperty(ref _channelStocks, value);
|
||||
}
|
||||
|
||||
private ChannelStock _selectedChannelStock=new ChannelStock();
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get=>_selectedChannelStock;
|
||||
set=>SetProperty(ref _selectedChannelStock, value);
|
||||
}
|
||||
//所选药箱号
|
||||
private int _drawerNo = -1;
|
||||
|
||||
public int DrawerNo
|
||||
{
|
||||
get => _drawerNo;
|
||||
set => SetProperty(ref _drawerNo, value);
|
||||
}
|
||||
|
||||
IDialogService _dialogService;
|
||||
SocketHelper _socketHelper;
|
||||
IEventAggregator _eventAggregator;
|
||||
public ExchangeWindowViewModel(IEventAggregator eventAggregator, IDialogService DialogService, SocketHelper socketHelper)
|
||||
{
|
||||
_dialogService = DialogService;
|
||||
_socketHelper = socketHelper;
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
public DelegateCommand<string> UpdateDrawerNo
|
||||
{
|
||||
get => new DelegateCommand<string>(OpenBoxAction);
|
||||
}
|
||||
public async void OpenBoxAction(string strDrawerNo)
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync("请关闭手术间后再打开");
|
||||
return;
|
||||
}
|
||||
DrawerNo = Convert.ToInt32(strDrawerNo);
|
||||
MachineRecord machineRecord = new MachineRecord();
|
||||
machineRecord.MachineId = "DM5";
|
||||
machineRecord.DrawerNo = DrawerNo+1;
|
||||
machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
|
||||
machineRecord.OperationTime = DateTime.Now;
|
||||
machineRecord.Type = 55;
|
||||
machineRecord.InvoiceId = $"交换药品,打开{DrawerNo+1}号手术间";
|
||||
|
||||
|
||||
if (DrawerNo+1 > 0)
|
||||
{
|
||||
RequestData();
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync($"正在打开{DrawerNo+1}号手术间");
|
||||
logger.Info($"正在打开{DrawerNo+1}号手术间");
|
||||
//记录开药箱日志
|
||||
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
||||
try
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo) });
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
return;
|
||||
}
|
||||
_socketHelper.OpenStatus = true;
|
||||
//记录药箱打开时间
|
||||
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == (DrawerNo+1)).First();
|
||||
if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
|
||||
{
|
||||
|
||||
channelList.EffDate = DateTime.Now.ToString();
|
||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||
}
|
||||
Thread.Sleep(200);
|
||||
int iException = 0;
|
||||
await new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
next();
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
stop();
|
||||
}
|
||||
iException = 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
iException++;
|
||||
if (iException >= 3)
|
||||
{
|
||||
_socketHelper.OpenStatus = false;
|
||||
}
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void RequestData()
|
||||
{
|
||||
List<ChannelStock> queryData = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Includes(cs => cs.DrugInfo)
|
||||
.Where(cs => cs.DrawerNo == (DrawerNo + 1))
|
||||
.Where(cs => cs.DrugId != null)
|
||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5"))
|
||||
.OrderBy(cs => cs.DrugId)
|
||||
.ToList();
|
||||
_ChannelStocks = queryData.Select(it => { it.CheckQuantity = it.Quantity; return it; }).ToList();
|
||||
}
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DelegateCommand ExchangeCommand
|
||||
{
|
||||
get =>new DelegateCommand(Exchange);
|
||||
}
|
||||
//替换
|
||||
private async void Exchange()
|
||||
{
|
||||
if (_ChannelStock == null)
|
||||
{
|
||||
logger.Error("请选择要交换的药品");
|
||||
return;
|
||||
}
|
||||
if (_ChannelStock.DrugInfo == null)
|
||||
{
|
||||
logger.Error("请选<E8AFB7><E98089>要交换的药品");
|
||||
return;
|
||||
}
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
//选中药箱号下的所有药品id
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("csStock", _ChannelStock);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ExchangeDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
//移出
|
||||
public DelegateCommand RemoveCommand
|
||||
{
|
||||
get => new DelegateCommand(Remove);
|
||||
}
|
||||
private async void Remove()
|
||||
{
|
||||
if (_ChannelStock != null)
|
||||
{
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
//选中药箱号下的所有药品id
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("csStock", _ChannelStock);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "RemoveDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择要移出的药品!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
RequestData();
|
||||
}
|
||||
|
||||
private DelegateCommand _rowSelected;
|
||||
|
||||
public DelegateCommand RowSelected => _rowSelected ??= new DelegateCommand(OpenOrderDialog);
|
||||
public async void OpenOrderDialog()
|
||||
{
|
||||
//if (_ChannelStock != null)
|
||||
//{
|
||||
// // 此处延时1毫秒,等待页面渲染
|
||||
// await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
// //选中药箱号下的所有药品id
|
||||
// DialogParameters dialogParameters = new DialogParameters();
|
||||
// dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks);
|
||||
// DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -25,6 +25,7 @@ using DM_Weight.msg;
|
|||
using DM_Weight.HIKVISION;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using MaterialDesignThemes.Wpf;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
|
@ -268,6 +269,7 @@ namespace DM_Weight.ViewModels
|
|||
if (!_socketHelper.OpenStatus)
|
||||
{
|
||||
SetProperty(ref _selectedMenu, value);
|
||||
SelectionMethod();//在此处调用而不是通过前台的Triggers事件调用为了规避未关闭药箱时多次点击菜单不起作用
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -279,11 +281,11 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
}
|
||||
//PremissionDm? PreSelectedMenu;
|
||||
private DelegateCommand _selectionCommon;
|
||||
public DelegateCommand SelectionCommon
|
||||
{
|
||||
get => _selectionCommon ?? (_selectionCommon = new DelegateCommand(SelectionMethod));
|
||||
}
|
||||
//private DelegateCommand _selectionCommon;
|
||||
//public DelegateCommand SelectionCommon
|
||||
//{
|
||||
// get => _selectionCommon ?? (_selectionCommon = new DelegateCommand(SelectionMethod));
|
||||
//}
|
||||
private void SelectionMethod()
|
||||
{
|
||||
//SelectedMenu = viewName.SelectedItem as PremissionDm;
|
||||
|
|
@ -315,6 +317,7 @@ namespace DM_Weight.ViewModels
|
|||
logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
||||
Operator = null;
|
||||
Reviewer = null;
|
||||
_regionManager.RequestNavigate("ContentRegion", "EmptyWindow");
|
||||
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||
//}
|
||||
//else
|
||||
|
|
@ -569,6 +572,7 @@ namespace DM_Weight.ViewModels
|
|||
Reviewer = null;
|
||||
//Application.Current.Dispatcher.Invoke(() =>
|
||||
//{
|
||||
_regionManager.RequestNavigate("ContentRegion", "EmptyWindow");
|
||||
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||
//});
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
|
|
@ -585,7 +589,7 @@ namespace DM_Weight.ViewModels
|
|||
PremissionDmList = premissions;
|
||||
SelectedMenu = premissions[0];
|
||||
SelectedChildMenu = premissions[0].Children[0];
|
||||
_regionManager.RequestNavigate("ContentRegion", premissions[0].Children[0].PremissionPath);
|
||||
//_regionManager.RequestNavigate("ContentRegion", premissions[0].Children[0].PremissionPath);
|
||||
//FindDrawerCount();
|
||||
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
||||
if (autoExit > 0)
|
||||
|
|
@ -608,6 +612,11 @@ namespace DM_Weight.ViewModels
|
|||
stop();
|
||||
System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
||||
{
|
||||
if (DialogHost.IsDialogOpen("RootDialog"))
|
||||
{
|
||||
DialogHost.Close("RootDialog");
|
||||
}
|
||||
_regionManager.RequestNavigate("ContentRegion", "EmptyWindow");
|
||||
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||
}));
|
||||
//});
|
||||
|
|
|
|||
|
|
@ -127,16 +127,16 @@ namespace DM_Weight.ViewModels
|
|||
// _eventAggregator = eventAggregator;
|
||||
//}
|
||||
|
||||
public LoginWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil, FingerprintUtil fingerprintUtil,SocketHelper socketHelper)
|
||||
public LoginWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil, FingerprintUtil fingerprintUtil, SocketHelper socketHelper)
|
||||
{
|
||||
_fingerprintUtil = fingerprintUtil;
|
||||
_portUtil = portUtil;
|
||||
//_chkFunction= chcFunction;
|
||||
_regionManager = regionManager;
|
||||
_eventAggregator = eventAggregator;
|
||||
_socketHelper= socketHelper;
|
||||
_socketHelper = socketHelper;
|
||||
FingerMsg = !_fingerprintUtil.bIsConnected;
|
||||
NetMsg=!_socketHelper.ConnectedStatus;
|
||||
NetMsg = !_socketHelper.ConnectedStatus;
|
||||
_eventAggregator.GetEvent<FingerprintEvent>().Subscribe(LoginEvent);
|
||||
}
|
||||
private DelegateCommand? _loginCommand;
|
||||
|
|
@ -277,7 +277,7 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
keys.Add("operator", user);
|
||||
//System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
||||
//{
|
||||
_regionManager.RequestNavigate("MainRegion", "HomeWindow", keys);
|
||||
_regionManager.RequestNavigate("MainRegion", "HomeWindow", keys);
|
||||
//}));
|
||||
}
|
||||
// 双人登录模式
|
||||
|
|
@ -377,6 +377,9 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
void Exit()
|
||||
{
|
||||
//_chkFunction.HIKLoginOut();
|
||||
//清录屏进程
|
||||
_eventAggregator.GetEvent<PrintScreenEvent>().Publish(2);
|
||||
_socketHelper.SocketDisConnect();
|
||||
Process.GetCurrentProcess().Kill();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
|
@ -464,6 +467,8 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
{
|
||||
//FingerMsg = !_fingerprintUtil.bIsConnected;
|
||||
//_eventAggregator.GetEvent<FingerprintEvent>().Subscribe(LoginEvent);
|
||||
//结束录屏
|
||||
_eventAggregator.GetEvent<PrintScreenEvent>().Publish(0);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -477,6 +482,10 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
_eventAggregator.GetEvent<FingerprintEvent>().Unsubscribe(LoginEvent);
|
||||
#region 录屏
|
||||
//登录进来后开始录屏
|
||||
_eventAggregator.GetEvent<PrintScreenEvent>().Publish(1);
|
||||
#endregion
|
||||
}
|
||||
//手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
|
||||
public string ReadAppSetting(string key)
|
||||
|
|
|
|||
|
|
@ -1,30 +1,39 @@
|
|||
using MaterialDesignThemes.Wpf;
|
||||
using DM_Weight.Finger;
|
||||
using DM_Weight.HIKVISION;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using DM_Weight.Views;
|
||||
using log4net;
|
||||
using log4net.Repository.Hierarchy;
|
||||
using MaterialDesignThemes.Wpf;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using DM_Weight.Finger;
|
||||
using DM_Weight.Views;
|
||||
using Unity;
|
||||
using DM_Weight.HIKVISION;
|
||||
using log4net.Repository.Hierarchy;
|
||||
using log4net;
|
||||
using DM_Weight.Models;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using Unity;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
internal class MainWindowViewModel : BindableBase
|
||||
{
|
||||
|
||||
#region 录屏相关
|
||||
//public Recorder _recorder;
|
||||
private string _outputFolder;
|
||||
private string _outputFilePath;
|
||||
//public static MainWindowViewModel vm;
|
||||
#endregion
|
||||
|
||||
private string _title = "Prism App"; //标题
|
||||
|
||||
private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3));
|
||||
|
|
@ -72,11 +81,14 @@ namespace DM_Weight.ViewModels
|
|||
|
||||
SocketHelper _socketHelper;
|
||||
private PortUtil _portUtil;
|
||||
public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, SocketHelper socketHelper, PortUtil portUtil)
|
||||
FFmpegHelper fmpegHelper;
|
||||
public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, SocketHelper socketHelper, PortUtil portUtil,FFmpegHelper fmpegHelper)
|
||||
{
|
||||
//vm = this;
|
||||
_portUtil = portUtil;
|
||||
this.eventAggregator = eventAggregator;
|
||||
this.eventAggregator.GetEvent<SnackbarEvent>().Subscribe(doMyPrismEvent2);
|
||||
this.eventAggregator.GetEvent<PrintScreenEvent>().Subscribe(PrintScreen);
|
||||
_fingerprintUtil = fingerprintUtil;
|
||||
_regionManager = regionManager;
|
||||
_container = container;
|
||||
|
|
@ -84,10 +96,15 @@ namespace DM_Weight.ViewModels
|
|||
|
||||
//System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
||||
//{
|
||||
|
||||
_container.RegisterType<object, LoginWindow>("LoginWindow");
|
||||
_regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
|
||||
|
||||
if (App.DbConnectionFail)
|
||||
{
|
||||
_regionManager.RequestNavigate("MainRegion", "EmergencyWindow");
|
||||
}
|
||||
else
|
||||
{
|
||||
_container.RegisterType<object, LoginWindow>("LoginWindow");
|
||||
_regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
|
||||
}
|
||||
//}));
|
||||
_socketHelper = socketHelper;
|
||||
new PromiseUtil<int>().taskAsyncLoop(1200000, 0, async (options, next, stop) =>
|
||||
|
|
@ -120,6 +137,7 @@ namespace DM_Weight.ViewModels
|
|||
next();
|
||||
}
|
||||
});
|
||||
this.fmpegHelper= fmpegHelper;
|
||||
}
|
||||
|
||||
void doMyPrismEvent2(AlertMsg msg)
|
||||
|
|
@ -141,6 +159,100 @@ namespace DM_Weight.ViewModels
|
|||
SnackbarMessageQueue.Enqueue(msg.Message);
|
||||
}));
|
||||
}
|
||||
#region 录屏
|
||||
/// <summary>
|
||||
/// 录屏事件
|
||||
/// </summary>
|
||||
/// <param name="type">0停止录屏;1开始录屏;2退出软件清进程</param>
|
||||
void PrintScreen(int type)
|
||||
{
|
||||
if (type == 0)
|
||||
{
|
||||
StopPrintScreen();
|
||||
//删除7天前的录屏文件
|
||||
|
||||
if (Directory.Exists(_outputFolder))
|
||||
{
|
||||
var files = Directory.GetFiles(_outputFolder);
|
||||
foreach (var file in files)
|
||||
{
|
||||
var fileInfo = new FileInfo(file);
|
||||
if (fileInfo.CreationTime < DateTime.Now.AddDays(-7))
|
||||
{
|
||||
try
|
||||
{
|
||||
fileInfo.Delete();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"删除录屏文件失败: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (type == 1)
|
||||
{
|
||||
StartPrintScreen();
|
||||
}
|
||||
else if (type == 2)
|
||||
{
|
||||
//_recorder?.Dispose();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
void StopPrintScreen()
|
||||
{
|
||||
fmpegHelper.stopFlag = true;
|
||||
fmpegHelper.StopRecording();
|
||||
//退出登录结束录屏
|
||||
//_recorder?.Stop();
|
||||
}
|
||||
//录屏
|
||||
void StartPrintScreen()
|
||||
{
|
||||
fmpegHelper.stopFlag = false;
|
||||
_outputFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Log", "ScreenRecordings");
|
||||
if (!Directory.Exists(_outputFolder))
|
||||
{
|
||||
Directory.CreateDirectory(_outputFolder);
|
||||
}
|
||||
// 生成输出文件名
|
||||
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
_outputFilePath = Path.Combine(_outputFolder, $"{timestamp}.webm");
|
||||
fmpegHelper.StartRecording(_outputFilePath, 25);
|
||||
//// 创建输出目录
|
||||
//_outputFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Log", "ScreenRecordings");
|
||||
//if (!Directory.Exists(_outputFolder))
|
||||
//{
|
||||
// Directory.CreateDirectory(_outputFolder);
|
||||
//}
|
||||
//// 生成输出文件名
|
||||
//string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
//_outputFilePath = Path.Combine(_outputFolder, $"{timestamp}.mp4");
|
||||
|
||||
//// 设置录制选项
|
||||
//var options = new RecorderOptions();
|
||||
|
||||
//// 创建录制器实例
|
||||
//_recorder = Recorder.CreateRecorder(options);
|
||||
|
||||
//// 设置事件处理
|
||||
//_recorder.OnRecordingComplete += Recorder_OnRecordingComplete;
|
||||
//_recorder.OnRecordingFailed += Recorder_OnRecordingFailed;
|
||||
|
||||
//// 开始录制
|
||||
//_recorder.Record(_outputFilePath);
|
||||
}
|
||||
//录制失败
|
||||
//private void Recorder_OnRecordingFailed(object sender, RecordingFailedEventArgs e)
|
||||
//{
|
||||
// logger.Info($"录制失败: {e.Error}");
|
||||
//}
|
||||
////录制完成
|
||||
//private void Recorder_OnRecordingComplete(object sender, RecordingCompleteEventArgs e)
|
||||
//{
|
||||
// logger.Info($"录制完成: {e.FilePath}");
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,465 @@
|
|||
using Common.Logging;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.select;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class RemoveDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(RemoveDialogViewModel));
|
||||
public string Title => "药品移出药箱";
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
private static readonly DateTime Jan1st1970 = new DateTime
|
||||
(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
private ChannelStock _csStock;
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get { return _csStock; }
|
||||
set { SetProperty(ref _csStock, value); }
|
||||
}
|
||||
SocketHelper _socketHelper;
|
||||
public RemoveDialogViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
_socketHelper = socketHelper;
|
||||
}
|
||||
|
||||
|
||||
private int _status = 0;
|
||||
|
||||
public int Status
|
||||
{
|
||||
get => _status; set => SetProperty(ref _status, value);
|
||||
}
|
||||
|
||||
|
||||
static List<OrderTakeSelect> StaticSelects = new List<OrderTakeSelect>()
|
||||
{
|
||||
new OrderTakeSelect{Name="一号手术间",Code="1"},
|
||||
new OrderTakeSelect{Name="二号手术间",Code="2"},
|
||||
new OrderTakeSelect{Name="三号手术间",Code="3"},
|
||||
new OrderTakeSelect{Name="四号手术间",Code="4"},
|
||||
new OrderTakeSelect{Name="五号手术间",Code="5"},
|
||||
new OrderTakeSelect{Name="六号手术间",Code="6"},
|
||||
new OrderTakeSelect{Name="七号手术间",Code="7"},
|
||||
new OrderTakeSelect{Name="八号手术间",Code="8"},
|
||||
new OrderTakeSelect{Name="九号手术间",Code="9"},
|
||||
new OrderTakeSelect{Name="十号手术间",Code="10"},
|
||||
new OrderTakeSelect{Name="十一号手术间",Code="11"},
|
||||
new OrderTakeSelect{Name="十二号手术间",Code="12"},
|
||||
new OrderTakeSelect{Name="十三号手术间",Code="13"},
|
||||
new OrderTakeSelect{Name="十四号手术间",Code="14"},
|
||||
new OrderTakeSelect{Name="十五号手术间",Code="15"},
|
||||
new OrderTakeSelect{Name="十六号手术间",Code="16"},
|
||||
new OrderTakeSelect{Name="十七号手术间",Code="17"},
|
||||
new OrderTakeSelect{Name="十八号手术间",Code="18"},
|
||||
};
|
||||
|
||||
private List<OrderTakeSelect> _selects = StaticSelects;
|
||||
|
||||
public List<OrderTakeSelect> Selects
|
||||
{
|
||||
get { return _selects; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selects, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private OrderTakeSelect _selectedItem = StaticSelects[0];
|
||||
public OrderTakeSelect SelectedItem
|
||||
{
|
||||
get => _selectedItem;
|
||||
set => SetProperty(ref _selectedItem, value);
|
||||
}
|
||||
//去掉移出的药箱号
|
||||
private OrderTakeSelect _removeItem = new();
|
||||
public OrderTakeSelect RemoveItem
|
||||
{
|
||||
get => _removeItem;
|
||||
set => SetProperty(ref _removeItem, value);
|
||||
}
|
||||
|
||||
private int _removeQuantity;
|
||||
|
||||
public int RemoveQuantity
|
||||
{
|
||||
get => _removeQuantity;
|
||||
set
|
||||
{
|
||||
if (value < 0)
|
||||
{
|
||||
throw new ArgumentException("移入数量不能是负数");
|
||||
}
|
||||
if (value > _ChannelStock.Quantity)
|
||||
{
|
||||
throw new ArgumentException("移入数量超出库存数");
|
||||
}
|
||||
SetProperty(ref _removeQuantity, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return Status == 0;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
Selects.Insert(_ChannelStock.DrawerNo - 1, RemoveItem);
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
ChannelStock _csStock = parameters.GetValue<ChannelStock>("csStock");
|
||||
_ChannelStock = _csStock;
|
||||
RemoveItem = Selects[_ChannelStock.DrawerNo - 1];
|
||||
Selects.Remove(RemoveItem);
|
||||
RemoveQuantity = _ChannelStock.Quantity;
|
||||
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public void RequestData()
|
||||
{
|
||||
}
|
||||
//开药盒
|
||||
public DelegateCommand OpenDrawer
|
||||
{
|
||||
get => new DelegateCommand(async () =>
|
||||
{
|
||||
if (SelectedItem != null)
|
||||
{
|
||||
await OpenBox();
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择要移入的药箱!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
|
||||
}, () => Status == 0);
|
||||
}
|
||||
|
||||
private async Task OpenBox()
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync("请关闭手术间后再打开");
|
||||
return;
|
||||
}
|
||||
MachineRecord machineRecord = new MachineRecord();
|
||||
machineRecord.MachineId = "DM5";
|
||||
machineRecord.DrawerNo = Convert.ToInt32(SelectedItem.Code);
|
||||
machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
|
||||
machineRecord.OperationTime = DateTime.Now;
|
||||
machineRecord.Type = 55;
|
||||
machineRecord.InvoiceId = $"移出药品{_ChannelStock?.DrawerNo}打开{Convert.ToInt32(SelectedItem.Code)}号手术间";
|
||||
|
||||
|
||||
if (Convert.ToInt32(SelectedItem.Code) > 0)
|
||||
{
|
||||
RequestData();
|
||||
Status = 1;
|
||||
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
_socketHelper.speechSynthesizer.Resume();
|
||||
_socketHelper.SpeakAsync($"正在打开{SelectedItem.Code}号手术间");
|
||||
logger.Info($"正在打开{SelectedItem.Code}号手术间");
|
||||
//记录开药箱日志
|
||||
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
||||
try
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(Convert.ToInt32(SelectedItem.Code) - 1) });
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
return;
|
||||
}
|
||||
_socketHelper.OpenStatus = true;
|
||||
//记录药箱打开时间
|
||||
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == _ChannelStock.DrawerNo).First();
|
||||
if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
|
||||
{
|
||||
|
||||
channelList.EffDate = DateTime.Now.ToString();
|
||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||
}
|
||||
Thread.Sleep(200);
|
||||
int iException = 0;
|
||||
await new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||
if (_socketHelper.OpenStatus)
|
||||
{
|
||||
next();
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
Status = 0;
|
||||
stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_socketHelper.IsMultiThread = false;
|
||||
_socketHelper.dateTime = DateTime.Now;
|
||||
Status = 0;
|
||||
stop();
|
||||
}
|
||||
iException = 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
iException++;
|
||||
if (iException >= 3)
|
||||
{
|
||||
_socketHelper.OpenStatus = false;
|
||||
}
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"网口连接异常,正在重试{ex.Message}");
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private bool _isFinishClick = false;
|
||||
|
||||
public bool IsFinishClick { get => _isFinishClick; set => SetProperty(ref _isFinishClick, value); }
|
||||
// 完成按钮
|
||||
public DelegateCommand FinishCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
IsFinishClick = true;
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
//查询要移入的药箱中是否有该药品
|
||||
List<ChannelStock> RemoveChannelStockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.MachineId.Equals(_ChannelStock.MachineId))
|
||||
.Where(cs => cs.DrawerNo == Convert.ToInt32(SelectedItem.Code))
|
||||
.Where(cs => cs.DrugId.Equals(_ChannelStock.DrugId))
|
||||
//.Where(cs => cs.ManuNo.Equals(_ChannelStock.ManuNo))
|
||||
.ToList();
|
||||
ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>()
|
||||
.Where(cl => cl.MachineId.Equals(_ChannelStock.MachineId))
|
||||
.Where(cs => cs.DrawerNo == Convert.ToInt32(SelectedItem.Code))
|
||||
.Where(cs => cs.DrugId.Equals(_ChannelStock.DrugId)).First();
|
||||
if (RemoveChannelStockList != null&& RemoveChannelStockList.Count>0&& channelList!=null&&!string.IsNullOrEmpty(channelList.Id))
|
||||
{
|
||||
//查询药品总数(移入后是否超基数)
|
||||
|
||||
int sumQuantity = RemoveChannelStockList.Sum(rs => rs.Quantity);
|
||||
if (sumQuantity + RemoveQuantity > channelList.BaseQuantity)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "移入数量超出药箱基数,请重新选择",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
|
||||
//减当前药箱的数量,添加需要加药数量
|
||||
_ChannelStock.Quantity = _ChannelStock.Quantity - RemoveQuantity;
|
||||
_ChannelStock.NeedNum = RemoveQuantity;
|
||||
SqlSugarHelper.Db.Updateable(_ChannelStock).UpdateColumns(it => new { it.Quantity,it.NeedNum }).ExecuteCommand();
|
||||
|
||||
string csId = Guid.NewGuid().ToString();
|
||||
//查询要移动的药箱是否有该批次
|
||||
ChannelStock removeChannelStock = RemoveChannelStockList.Where(it => it.ManuNo == _ChannelStock.ManuNo).FirstOrDefault();
|
||||
//有该药品且有该批次
|
||||
if (removeChannelStock != null)
|
||||
{
|
||||
csId = removeChannelStock.Id;
|
||||
removeChannelStock.Quantity = removeChannelStock.Quantity + RemoveQuantity;
|
||||
SqlSugarHelper.Db.Updateable(removeChannelStock).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//有该药品但没有该批次
|
||||
int iInsertResult= SqlSugarHelper.Db.Insertable(new ChannelStock()
|
||||
{
|
||||
MachineId = _ChannelStock.MachineId,
|
||||
DrawerNo = Convert.ToInt32(SelectedItem.Code),
|
||||
ColNo = _ChannelStock.ColNo,
|
||||
DrugId = _ChannelStock.DrugId,
|
||||
ManuNo = _ChannelStock.ManuNo,
|
||||
EffDate=_ChannelStock.EffDate,
|
||||
Quantity = RemoveQuantity,
|
||||
DrawerType = 1,
|
||||
Chnguid = RemoveChannelStockList[0].Chnguid,
|
||||
CheckQuantity= RemoveChannelStockList[0].CheckQuantity,
|
||||
Id = csId,
|
||||
}).ExecuteCommand();
|
||||
if (iInsertResult > 0)
|
||||
{
|
||||
//删除没有批次的数据
|
||||
SqlSugarHelper.Db.Deleteable<ChannelStock>(RemoveChannelStockList.Where(cs => cs.ManuNo == null)).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "移入失败",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 保存数据 药品移出记录
|
||||
int iInsertRecord= SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = _ChannelStock.MachineId,
|
||||
DrawerNo = _ChannelStock.DrawerNo,
|
||||
ColNo = _ChannelStock.ColNo,
|
||||
DrugId = _ChannelStock.DrugId,
|
||||
ManuNo = _ChannelStock.ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(_ChannelStock.EffDate) ? DateTime.ParseExact(_ChannelStock.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = RemoveQuantity,
|
||||
Type = 21,
|
||||
InvoiceId = _ChannelStock.Id,
|
||||
DepartmentId = csId //要移入的药箱的channelStock的id
|
||||
}).ExecuteCommand();
|
||||
if(iInsertRecord<=0)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "添加记录失败",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有绑定该药品
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "药箱没有绑定该药品,请先绑定",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (f.Data)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "操作完成,库存已更新",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "库存更新失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
Status = 0;
|
||||
IsFinishClick = false;
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"操作异常!{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
|
||||
}, () => !IsFinishClick && RemoveQuantity > 0).ObservesProperty(() => IsFinishClick).ObservesProperty(() => RemoveQuantity);
|
||||
}
|
||||
|
||||
public long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
public DelegateCommand CancleCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
IsFinishClick = false;
|
||||
Status = 0;
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
|
||||
public DelegateCommand BtnCloseCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
}, () => Status == 0).ObservesProperty(() => Status);
|
||||
}
|
||||
|
||||
public bool KeepAlive => false;
|
||||
}
|
||||
}
|
||||
|
|
@ -208,8 +208,8 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
Id = 12,
|
||||
PremissionName = "核对处方",
|
||||
//PremissionPath = "CheckOrderWindow",
|
||||
PremissionPath = "CheckOrderNewWindow",
|
||||
//PremissionPath = "CheckOrderNewWindowNew",
|
||||
};
|
||||
//核对处方
|
||||
PremissionDm addition = new PremissionDm
|
||||
|
|
@ -220,17 +220,13 @@ namespace DM_Weight.ViewModels
|
|||
PremissionPath = "AdditionWindow",
|
||||
};
|
||||
|
||||
//PremissionDm quyao1 = new PremissionDm
|
||||
//管理做麻醉师核对处方的操作
|
||||
//PremissionDm adminCheck = new PremissionDm
|
||||
//{
|
||||
// Id = 11,
|
||||
// PremissionName = "交接柜补药",
|
||||
// PremissionPath = "AddToJiaoJieWindow",
|
||||
//};
|
||||
//PremissionDm quyao2 = new PremissionDm
|
||||
//{
|
||||
// Id = 12,
|
||||
// PremissionName = "调拨出库",
|
||||
// PremissionPath = "InvoiceOutWindow",
|
||||
// Id = 13,
|
||||
// PremissionName = "管理员操作手术间",
|
||||
// PremissionPath = "CheckOrderWindow",
|
||||
// //PremissionPath = "CheckSelfOrderForAdminViewModel",
|
||||
//};
|
||||
PremissionDm quyao3 = new PremissionDm
|
||||
{
|
||||
|
|
@ -270,6 +266,7 @@ namespace DM_Weight.ViewModels
|
|||
//quyaoChild.Add(openBox);
|
||||
quyaoChild.Add(checkOrder);
|
||||
quyaoChild.Add(addition);
|
||||
//quyaoChild.Add(adminCheck);
|
||||
quyaoChild.Add(openBoxWithOrder);
|
||||
quyao.Children = quyaoChild;
|
||||
defaultAll.Add(quyao);
|
||||
|
|
@ -520,6 +517,24 @@ namespace DM_Weight.ViewModels
|
|||
PremissionName = "登录设置",
|
||||
PremissionPath = "SettingWindow",
|
||||
};
|
||||
PremissionDm sysset4 = new PremissionDm
|
||||
{
|
||||
Id = 58,
|
||||
PremissionName = "盘点",
|
||||
PremissionPath = "CheckStockWindow",
|
||||
};
|
||||
PremissionDm sysset5 = new PremissionDm
|
||||
{
|
||||
Id = 58,
|
||||
PremissionName = "药箱药品调整",
|
||||
PremissionPath = "ExchangeWindow",
|
||||
};
|
||||
PremissionDm sysset6 = new PremissionDm
|
||||
{
|
||||
Id = 59,
|
||||
PremissionName = "账册",
|
||||
PremissionPath = "AccountWindow",
|
||||
};
|
||||
syssetChild.Add(sysset1);
|
||||
syssetChild.Add(sysset2);
|
||||
syssetChild.Add(syssetLogin);
|
||||
|
|
@ -527,6 +542,9 @@ namespace DM_Weight.ViewModels
|
|||
syssetChild.Add(machineRecord);
|
||||
syssetChild.Add(wSDRecord);
|
||||
syssetChild.Add(sysset3);
|
||||
syssetChild.Add(sysset4);
|
||||
syssetChild.Add(sysset5);
|
||||
syssetChild.Add(sysset6);
|
||||
sysset.Children = syssetChild;
|
||||
defaultAll.Add(sysset);
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class SelectOperationTypeDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
public string Title => "请选择操作类型";
|
||||
|
||||
public bool KeepAlive =>false;
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
}
|
||||
public DelegateCommand CancelCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
public DelegateCommand ConfirmCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
//确认
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -226,7 +226,7 @@ namespace DM_Weight.ViewModels
|
|||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Type = 55,
|
||||
InvoiceId = $"打开{DrawerNo}号手术间",
|
||||
InvoiceId = $"设置药箱,打开{DrawerNo}号手术间",
|
||||
}).ExecuteCommand();
|
||||
//bool bFlag = ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo - 1);
|
||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
<UserControl x:Class="DM_Weight.Views.AccountWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800" Loaded="UserControl_Loaded">
|
||||
<UserControl.Resources>
|
||||
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}">
|
||||
<Setter Property="Margin" Value="0,8" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="FieldIcon" TargetType="materialDesign:PackIcon">
|
||||
<Setter Property="DockPanel.Dock" Value="Right" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="FieldDockPanel" TargetType="DockPanel">
|
||||
<Setter Property="Margin" Value="0,0,8,16" />
|
||||
<Setter Property="VerticalAlignment" Value="Bottom" />
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="8*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<!--<DatePicker
|
||||
Grid.Column="0"
|
||||
SelectedDate="{Binding StartDate, TargetNullValue=''}"
|
||||
Margin="6 0 0 0"
|
||||
materialDesign:HintAssist.Hint="开始时间"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}"
|
||||
/>
|
||||
<DatePicker
|
||||
Grid.Column="1"
|
||||
SelectedDate="{Binding EndDate}"
|
||||
Margin="6 0 0 0"
|
||||
materialDesign:HintAssist.Hint="结束时间"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}"
|
||||
/>-->
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<DockPanel Grid.Column="0" Style="{StaticResource FieldDockPanel}">
|
||||
<TextBox Style="{StaticResource MaterialDesignOutlinedTextBox}" x:Name="startDataBox" materialDesign:HintAssist.Hint="开始时间"
|
||||
Text="{Binding StartDate,StringFormat='yyyy-MM-dd HH:mm:ss'}" Margin="6 0 0 0" >
|
||||
|
||||
</TextBox>
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}" Command="{Binding SelectTimeAction}" CommandParameter="1" >
|
||||
<materialDesign:PackIcon Width="40" Height="40" Kind="CalendarRange" Style="{StaticResource FieldIcon}" Foreground="{Binding ElementName=startDataBox, Path=BorderBrush}"/>
|
||||
</Button>
|
||||
|
||||
</DockPanel>
|
||||
<DockPanel Grid.Column="1" Style="{StaticResource FieldDockPanel}">
|
||||
<TextBox Style="{StaticResource MaterialDesignOutlinedTextBox}" x:Name="endDataBox" materialDesign:HintAssist.Hint="结束时间"
|
||||
Text="{Binding EndDate,StringFormat='yyyy-MM-dd HH:mm:ss'}" Margin="6 0 0 0" >
|
||||
|
||||
</TextBox>
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}" Command="{Binding SelectTimeAction}" CommandParameter="2" >
|
||||
<materialDesign:PackIcon Width="40" Height="40" Kind="CalendarRange" Style="{StaticResource FieldIcon}" Foreground="{Binding ElementName=endDataBox, Path=BorderBrush}"/>
|
||||
</Button>
|
||||
|
||||
</DockPanel>
|
||||
<ComboBox
|
||||
Margin="6 0 6 0"
|
||||
materialDesign:HintAssist.Hint="药品名称/拼音码/药品编码"
|
||||
ItemsSource="{Binding DrugInfos}"
|
||||
SelectedItem="{Binding DrugInfo}"
|
||||
DisplayMemberPath="DrugName" IsEditable="True" IsTextSearchEnabled="False" KeyUp="ComboBox_KeyUp"
|
||||
/>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
Margin="0 0 13 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="导出" Command="{Binding DownloadAccountBook}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<materialDesign:PackIcon Kind="download" />
|
||||
<TextBlock Text="导出账册" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
using DM_Weight.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// AccountWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class AccountWindow : UserControl
|
||||
{
|
||||
AccountWindowViewModel vms;
|
||||
public AccountWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
/// <summary>
|
||||
/// 药品名称下拉框
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ComboBox_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
ComboBox comboBox = sender as ComboBox;
|
||||
vms.UpdateComboBoxItems(comboBox.Text);
|
||||
if (this.vms.DrugInfos.Count > 0)
|
||||
{
|
||||
comboBox.IsDropDownOpen = true;
|
||||
}
|
||||
TextBox textBox = (TextBox)comboBox.Template.FindName("PART_EditableTextBox", comboBox);
|
||||
textBox.SelectionStart = textBox.Text.Length;
|
||||
}
|
||||
|
||||
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
vms = AccountWindowViewModel.vm;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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}">
|
||||
|
|
@ -62,7 +77,9 @@
|
|||
<Button
|
||||
Margin="3 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Command="{Binding OpenBoxCommand}"
|
||||
Command="{Binding OpenBoxCommand}"
|
||||
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding OpenStatusBtn}"
|
||||
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding OpenStatusBtn}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="开手术间" />
|
||||
<Button
|
||||
|
|
@ -84,7 +101,7 @@
|
|||
|
||||
|
||||
</Grid>
|
||||
<DataGrid
|
||||
<!--<DataGrid
|
||||
Grid.Row="1"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||
ItemsSource="{Binding Source={StaticResource GroupedDataList}}"
|
||||
|
|
@ -102,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" />
|
||||
|
|
@ -110,7 +127,7 @@
|
|||
</Trigger>
|
||||
</Style.Triggers>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
</Style>-->
|
||||
</Style>--><!--
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
|
|
@ -157,13 +174,89 @@
|
|||
<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="130">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="ManuNo" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="待入库数" Width="70">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="AddToJJNum" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="130"
|
||||
Header="状态">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" materialDesign:ListBoxItemAssist.ShowSelection="False">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Width="130" Text="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}">
|
||||
</TextBlock>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@
|
|||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
|
||||
<ComboBox
|
||||
|
|
@ -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="批次">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox Width="130" 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>
|
||||
|
|
|
|||
|
|
@ -111,9 +111,9 @@
|
|||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0" Grid.ColumnSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="4*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="8*" />
|
||||
<ColumnDefinition Width="5*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DatePicker
|
||||
Grid.Column="0"
|
||||
|
|
@ -182,10 +182,10 @@
|
|||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.DrugInfo.DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="80"
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.SetManuNo}"
|
||||
Header="药品批次"/>
|
||||
<GridViewColumn Width="42"
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.Quantity}"
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="80"
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.ResidualDoseInfo}"
|
||||
Header="剩余量"/>
|
||||
<GridViewColumn Width="160"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.CreateTime}"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.DisposalTime}"
|
||||
Header="余液处置时间"/>
|
||||
|
||||
<!--<GridViewColumn Width="180" Header="药品名称">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,233 @@
|
|||
<UserControl x:Class="DM_Weight.Views.CheckOrderNewWindowNew"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:prism="http://prismlibrary.com/">
|
||||
<UserControl.Resources>
|
||||
<convert:OrderStatusConverter x:Key="OrderStatusConverter" />
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<convert:BoxNumConverter x:Key="BoxNumConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<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.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</Trigger>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<!--<RowDefinition />-->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="一号手术间" Background="{Binding Button1Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="0" IsEnabled="{Binding IsEnabled1}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="二号手术间" Background="{Binding Button2Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="1" IsEnabled="{Binding IsEnabled2}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="三号手术间" Background="{Binding Button3Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="2" IsEnabled="{Binding IsEnabled3}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="四号手术间" Background="{Binding Button4Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="3" IsEnabled="{Binding IsEnabled4}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="五号手术间" Background="{Binding Button5Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="4" IsEnabled="{Binding IsEnabled5}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="六号手术间" Background="{Binding Button6Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="5" IsEnabled="{Binding IsEnabled6}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="七号手术间" Background="{Binding Button7Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="6" IsEnabled="{Binding IsEnabled7}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="八号手术间" Background="{Binding Button8Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="7" IsEnabled="{Binding IsEnabled8}"/>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="九号手术间" Background="{Binding Button9Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="8" IsEnabled="{Binding IsEnabled9}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="十号手术间" Background="{Binding Button10Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="9" IsEnabled="{Binding IsEnabled10}"/>
|
||||
|
||||
<Button Grid.Row="1" Grid.Column="1" Width="120" Content="十一号手术间" Background="{Binding Button11Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="10" IsEnabled="{Binding IsEnabled11}"/>
|
||||
<Button Grid.Row="2" Grid.Column="1" Width="120" Content="十二号手术间" Background="{Binding Button12Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="11" IsEnabled="{Binding IsEnabled12}"/>
|
||||
<Button Grid.Row="3" Grid.Column="1" Width="120" Content="十三号手术间" Background="{Binding Button13Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="12" IsEnabled="{Binding IsEnabled13}"/>
|
||||
<Button Grid.Row="4" Grid.Column="1" Width="120" Content="十四号手术间" Background="{Binding Button14Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="13" IsEnabled="{Binding IsEnabled14}"/>
|
||||
<Button Grid.Row="5" Grid.Column="1" Width="120" Content="十五号手术间" Background="{Binding Button15Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="14" IsEnabled="{Binding IsEnabled15}"/>
|
||||
<Button Grid.Row="6" Grid.Column="1" Width="120" Content="十六号手术间" Background="{Binding Button16Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="15" IsEnabled="{Binding IsEnabled16}"/>
|
||||
<Button Grid.Row="7" Grid.Column="1" Width="120" Content="十七号手术间" Background="{Binding Button17Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="16" IsEnabled="{Binding IsEnabled17}"/>
|
||||
<Button Grid.Row="8" Grid.Column="1" Width="120" Content="十八号手术间" Background="{Binding Button18Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="17" IsEnabled="{Binding IsEnabled18}"/>
|
||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=19}"/>
|
||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=20}"/>-->
|
||||
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="7*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0" Grid.ColumnSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="4*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DatePicker
|
||||
Grid.Column="0"
|
||||
SelectedDate="{Binding OrderDate, StringFormat=yyyy-MM-dd, TargetNullValue='',UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedDateFormat="Short"
|
||||
Margin="6 0 0 0"
|
||||
materialDesign:HintAssist.Hint="开单日期"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}" />
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
|
||||
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CheckOrder}"
|
||||
Content="确认"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<!--<Grid Grid.Row="1" Grid.Column="0" Margin="0 0 -100 0">-->
|
||||
<!--<ScrollViewer VerticalScrollBarVisibility="Auto">-->
|
||||
<ListView Grid.Row="1" Grid.Column="0" Margin="0"
|
||||
ItemsSource="{Binding SurgicalResidualList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
SelectedItem="{Binding surgicalResidual}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 15 0 0">
|
||||
<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 Header="选择" Width="30">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding ItemIsChecked}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="80"
|
||||
Header="姓名"
|
||||
DisplayMemberBinding="{Binding PName}" />
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Sex}"
|
||||
Header="性别"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="单号"/>
|
||||
<!--<GridViewColumn Width="240"
|
||||
DisplayMemberBinding="{Binding DeptName}"
|
||||
Header="科室"/>-->
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="药品批次"/>
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding UseDoseInfo}"
|
||||
Header="使用量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding ResidualDoseInfo}"
|
||||
Header="剩余量"/>
|
||||
<GridViewColumn Width="160"
|
||||
DisplayMemberBinding="{Binding DisposalTime}"
|
||||
Header="余液处置时间"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<ListView Grid.Column="1" Grid.Row="1" Margin="0 0 3 0"
|
||||
ItemsSource="{Binding TotalDrugList,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 18 0 0">
|
||||
<ListView.Resources>
|
||||
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</Style>
|
||||
</ListView.Resources>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="40"
|
||||
DisplayMemberBinding="{Binding TotalCount}"
|
||||
Header="合计"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<pagination:Pagination Grid.Row="2" Grid.ColumnSpan="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CheckOrderNewWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CheckOrderNewWindowNew : UserControl
|
||||
{
|
||||
public CheckOrderNewWindowNew()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,232 @@
|
|||
<UserControl x:Class="DM_Weight.Views.CheckSelfOrderForAdmin"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:prism="http://prismlibrary.com/">
|
||||
<UserControl.Resources>
|
||||
<convert:OrderStatusConverter x:Key="OrderStatusConverter" />
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<convert:BoxNumConverter x:Key="BoxNumConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<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.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</Trigger>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
<Binding Path="CurrentDrawerNo"/>
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<!--<RowDefinition />-->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="一号手术间" Background="{Binding Button1Color}" Command="{Binding UpdateDrawerNo,ConverterParameter=1}" CommandParameter="1" IsEnabled="{Binding Button1Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="二号手术间" Background="{Binding Button2Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="2" IsEnabled="{Binding Button2Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="三号手术间" Background="{Binding Button3Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="3" IsEnabled="{Binding Button3Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="四号手术间" Background="{Binding Button4Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="4" IsEnabled="{Binding Button4Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="五号手术间" Background="{Binding Button5Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="5" IsEnabled="{Binding Button5Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="六号手术间" Background="{Binding Button6Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="6" IsEnabled="{Binding Button6Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="七号手术间" Background="{Binding Button7Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="7" IsEnabled="{Binding Button7Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="八号手术间" Background="{Binding Button8Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="8" IsEnabled="{Binding Button8Enable}"/>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="九号手术间" Background="{Binding Button9Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="9" IsEnabled="{Binding Button9Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="十号手术间" Background="{Binding Button10Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="10" IsEnabled="{Binding Button10Enable}"/>
|
||||
|
||||
<Button Grid.Row="1" Grid.Column="1" Width="120" Content="十一号手术间" Background="{Binding Button11Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="11" IsEnabled="{Binding Button11Enable}"/>
|
||||
<Button Grid.Row="2" Grid.Column="1" Width="120" Content="十二号手术间" Background="{Binding Button12Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="12" IsEnabled="{Binding Button12Enable}"/>
|
||||
<Button Grid.Row="3" Grid.Column="1" Width="120" Content="十三号手术间" Background="{Binding Button13Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="13" IsEnabled="{Binding Button13Enable}"/>
|
||||
<Button Grid.Row="4" Grid.Column="1" Width="120" Content="十四号手术间" Background="{Binding Button14Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="14" IsEnabled="{Binding Button14Enable}"/>
|
||||
<Button Grid.Row="5" Grid.Column="1" Width="120" Content="十五号手术间" Background="{Binding Button15Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="15" IsEnabled="{Binding Button15Enable}"/>
|
||||
<Button Grid.Row="6" Grid.Column="1" Width="120" Content="十六号手术间" Background="{Binding Button16Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="16" IsEnabled="{Binding Button16Enable}"/>
|
||||
<Button Grid.Row="7" Grid.Column="1" Width="120" Content="十七号手术间" Background="{Binding Button17Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="17" IsEnabled="{Binding Button17Enable}"/>
|
||||
<Button Grid.Row="8" Grid.Column="1" Width="120" Content="十八号手术间" Background="{Binding Button18Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="18" IsEnabled="{Binding Button18Enable}"/>
|
||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=19}"/>
|
||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=20}"/>-->
|
||||
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="7*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0" Grid.ColumnSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DatePicker
|
||||
Grid.Column="0"
|
||||
SelectedDate="{Binding OrderDate, StringFormat=yyyy-MM-dd, TargetNullValue='',UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedDateFormat="Short"
|
||||
Margin="6 0 0 0"
|
||||
materialDesign:HintAssist.Hint="开单日期"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}" />
|
||||
|
||||
<StackPanel Grid.Column="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CheckOrder}"
|
||||
Content="确认"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="取消"
|
||||
Command="{Binding CancleTake}" Cursor="Hand" />
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<!--<Grid Grid.Row="1" Grid.Column="0" Margin="0 0 -100 0">-->
|
||||
<ListView Grid.Row="1" Grid.Column="0" Margin="0"
|
||||
ItemsSource="{Binding SurgicalResidualList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
SelectedItem="{Binding surgicalResidual}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 15 0 0">
|
||||
<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 Header="选择" Width="30">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding ItemIsChecked}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="80"
|
||||
Header="姓名"
|
||||
DisplayMemberBinding="{Binding PName}" />
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Sex}"
|
||||
Header="性别"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="单号"/>
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="药品批次"/>
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding UseDoseInfo}"
|
||||
Header="使用量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding ResidualDoseInfo}"
|
||||
Header="剩余量"/>
|
||||
<GridViewColumn Width="160"
|
||||
DisplayMemberBinding="{Binding DisposalTime}"
|
||||
Header="余液处置时间"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<ListView Grid.Column="1" Grid.Row="1" Margin="0 0 3 0"
|
||||
ItemsSource="{Binding TotalDrugList,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 16 0 15">
|
||||
<ListView.Resources>
|
||||
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</Style>
|
||||
</ListView.Resources>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="40"
|
||||
DisplayMemberBinding="{Binding TotalCount}"
|
||||
Header="合计"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<!--</Grid>-->
|
||||
|
||||
<pagination:Pagination Grid.Row="2" Grid.ColumnSpan="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CheckSelfOrderForAdmin.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CheckSelfOrderForAdmin : UserControl
|
||||
{
|
||||
public CheckSelfOrderForAdmin()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,6 @@
|
|||
<convert:OrderStatusConverter x:Key="OrderStatusConverter" />
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<convert:BoxNumConverter x:Key="BoxNumConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<Style x:Key="st" TargetType="GridViewColumnHeader">
|
||||
<Style.Setters>
|
||||
<Setter Property="Height">
|
||||
|
|
@ -40,7 +39,7 @@
|
|||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<!--<Style.Triggers>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
|
|
@ -50,12 +49,13 @@
|
|||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
<Binding Path="CurrentDrawerNo"/>
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>-->
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
|
|
@ -110,11 +110,11 @@
|
|||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0" Grid.ColumnSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="8*" />
|
||||
<ColumnDefinition Width="5*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DatePicker
|
||||
<DatePicker
|
||||
Grid.Column="0"
|
||||
SelectedDate="{Binding OrderDate, StringFormat=yyyy-MM-dd, TargetNullValue='',UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedDateFormat="Short"
|
||||
|
|
@ -122,32 +122,35 @@
|
|||
materialDesign:HintAssist.Hint="开单日期"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}" />
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<StackPanel Grid.Column="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
|
||||
<!--<Button Margin="0 0 6 0" Content="{Binding SelfContent}" Command="{Binding OpenBoxDelegate}" CommandParameter="0" Visibility="Collapsed"
|
||||
IsEnabled="{Binding SelfEnable}"
|
||||
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding SelfStatus, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding SelfStatus, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"/>-->
|
||||
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"/>
|
||||
<Button Margin="0 0 6 0" VerticalAlignment="Center" Command="{Binding ReturnBoxCommand}" Content="还药箱" Visibility="{Binding OperationType,Converter={StaticResource TakeReturnConverter},ConverterParameter=ReturnBox}" Style="{StaticResource MaterialDesignOutlinedLightButton}"> </Button>-->
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CheckOrder}"
|
||||
Content="确认"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}">
|
||||
</Button>
|
||||
<Button
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="取消"
|
||||
Command="{Binding CancleTake}" Cursor="Hand" />
|
||||
<Button
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon Kind="Refresh" />
|
||||
</Button>
|
||||
|
||||
<!--<Button Margin="6 0 6 0" VerticalAlignment="Center" Command="{Binding TakeBoxCommand}" Content="取药箱" Style="{StaticResource MaterialDesignOutlinedLightButton}"></Button>-->
|
||||
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<!--<Grid Grid.Row="1" Grid.Column="0" Margin="0 0 -100 0">-->
|
||||
|
|
@ -184,23 +187,26 @@
|
|||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="单号"/>
|
||||
<!--<GridViewColumn Width="240"
|
||||
DisplayMemberBinding="{Binding DeptName}"
|
||||
Header="科室"/>-->
|
||||
<!--<GridViewColumn Width="100"
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.DrugInfo.DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="80"
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.SetManuNo}"
|
||||
Header="药品批次"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.SetEffDate}"
|
||||
Header="药品效期"/>
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.Quantity}"
|
||||
Header="数量"/>-->
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.UseDoseInfo}"
|
||||
Header="使用量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.ResidualDoseInfo}"
|
||||
Header="剩余量"/>
|
||||
<GridViewColumn Width="160"
|
||||
DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.DisposalTime}"
|
||||
Header="余液处置时间"/>
|
||||
|
||||
<GridViewColumn Width="180" Header="药品名称">
|
||||
<!--<GridViewColumn Width="180" Header="药品名称">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
|
|
@ -214,13 +220,13 @@
|
|||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<!--<GridViewColumn Width="80" Header="药品效期">
|
||||
<GridViewColumn Width="80" Header="药品效期">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="SetEffDate" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>-->
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="42" Header="数量">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
|
|
@ -249,7 +255,7 @@
|
|||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="surgicalResidual.ResidualDoseInfo" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</DataTemplate>yjn7
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="160">
|
||||
|
|
@ -263,13 +269,13 @@
|
|||
<ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="surgicalResidual.DisposalTime" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridViewColumn>-->
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<!--</Grid>-->
|
||||
<!--<Grid Grid.Column="1" Grid.Row="1" Margin="0 0 0 0" HorizontalAlignment="Right">-->
|
||||
<ListView Grid.Column="1" Grid.Row="1" Margin="0 0 3 0"
|
||||
<ListView Grid.Column="1" Grid.Row="1" Margin="0 0 3 0"
|
||||
ItemsSource="{Binding TotalDrugList,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 16 0 15">
|
||||
|
|
@ -291,7 +297,7 @@
|
|||
</ListView>
|
||||
<!--</Grid>-->
|
||||
|
||||
<pagination:Pagination Grid.Row="2" Grid.ColumnSpan="2"
|
||||
<pagination:Pagination Grid.Row="2" Grid.ColumnSpan="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,232 @@
|
|||
<UserControl x:Class="DM_Weight.Views.CheckSelfOrderWindowNew"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:prism="http://prismlibrary.com/">
|
||||
<UserControl.Resources>
|
||||
<convert:OrderStatusConverter x:Key="OrderStatusConverter" />
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<convert:BoxNumConverter x:Key="BoxNumConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<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.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</Trigger>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
<Binding Path="CurrentDrawerNo"/>
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<!--<RowDefinition />-->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="一号手术间" Background="{Binding Button1Color}" Command="{Binding UpdateDrawerNo,ConverterParameter=1}" CommandParameter="1" IsEnabled="{Binding Button1Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="二号手术间" Background="{Binding Button2Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="2" IsEnabled="{Binding Button2Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="三号手术间" Background="{Binding Button3Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="3" IsEnabled="{Binding Button3Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="四号手术间" Background="{Binding Button4Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="4" IsEnabled="{Binding Button4Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="五号手术间" Background="{Binding Button5Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="5" IsEnabled="{Binding Button5Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="六号手术间" Background="{Binding Button6Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="6" IsEnabled="{Binding Button6Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="七号手术间" Background="{Binding Button7Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="7" IsEnabled="{Binding Button7Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="八号手术间" Background="{Binding Button8Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="8" IsEnabled="{Binding Button8Enable}"/>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="九号手术间" Background="{Binding Button9Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="9" IsEnabled="{Binding Button9Enable}"/>
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="十号手术间" Background="{Binding Button10Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="10" IsEnabled="{Binding Button10Enable}"/>
|
||||
|
||||
<Button Grid.Row="1" Grid.Column="1" Width="120" Content="十一号手术间" Background="{Binding Button11Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="11" IsEnabled="{Binding Button11Enable}"/>
|
||||
<Button Grid.Row="2" Grid.Column="1" Width="120" Content="十二号手术间" Background="{Binding Button12Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="12" IsEnabled="{Binding Button12Enable}"/>
|
||||
<Button Grid.Row="3" Grid.Column="1" Width="120" Content="十三号手术间" Background="{Binding Button13Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="13" IsEnabled="{Binding Button13Enable}"/>
|
||||
<Button Grid.Row="4" Grid.Column="1" Width="120" Content="十四号手术间" Background="{Binding Button14Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="14" IsEnabled="{Binding Button14Enable}"/>
|
||||
<Button Grid.Row="5" Grid.Column="1" Width="120" Content="十五号手术间" Background="{Binding Button15Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="15" IsEnabled="{Binding Button15Enable}"/>
|
||||
<Button Grid.Row="6" Grid.Column="1" Width="120" Content="十六号手术间" Background="{Binding Button16Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="16" IsEnabled="{Binding Button16Enable}"/>
|
||||
<Button Grid.Row="7" Grid.Column="1" Width="120" Content="十七号手术间" Background="{Binding Button17Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="17" IsEnabled="{Binding Button17Enable}"/>
|
||||
<Button Grid.Row="8" Grid.Column="1" Width="120" Content="十八号手术间" Background="{Binding Button18Color}" Command="{Binding UpdateDrawerNo}" CommandParameter="18" IsEnabled="{Binding Button18Enable}"/>
|
||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=19}"/>
|
||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" IsEnabled="{Binding DrawerNo, Converter={StaticResource BoxNumConverter}, ConverterParameter=20}"/>-->
|
||||
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="7*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0" Grid.ColumnSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<DatePicker
|
||||
Grid.Column="0"
|
||||
SelectedDate="{Binding OrderDate, StringFormat=yyyy-MM-dd, TargetNullValue='',UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedDateFormat="Short"
|
||||
Margin="6 0 0 0"
|
||||
materialDesign:HintAssist.Hint="开单日期"
|
||||
Style="{StaticResource MaterialDesignOutlinedDatePicker}" />
|
||||
|
||||
<StackPanel Grid.Column="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CheckOrder}"
|
||||
Content="确认"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="取消"
|
||||
Command="{Binding CancleTake}" Cursor="Hand" />
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<!--<Grid Grid.Row="1" Grid.Column="0" Margin="0 0 -100 0">-->
|
||||
<ListView Grid.Row="1" Grid.Column="0" Margin="0"
|
||||
ItemsSource="{Binding SurgicalResidualList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
SelectedItem="{Binding surgicalResidual}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 15 0 0">
|
||||
<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 Header="选择" Width="30">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding ItemIsChecked}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="80"
|
||||
Header="姓名"
|
||||
DisplayMemberBinding="{Binding PName}" />
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Sex}"
|
||||
Header="性别"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="单号"/>
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="药品批次"/>
|
||||
<GridViewColumn Width="30"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding UseDoseInfo}"
|
||||
Header="使用量"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding ResidualDoseInfo}"
|
||||
Header="剩余量"/>
|
||||
<GridViewColumn Width="160"
|
||||
DisplayMemberBinding="{Binding DisposalTime}"
|
||||
Header="余液处置时间"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<ListView Grid.Column="1" Grid.Row="1" Margin="0 0 3 0"
|
||||
ItemsSource="{Binding TotalDrugList,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="0 16 0 15">
|
||||
<ListView.Resources>
|
||||
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</Style>
|
||||
</ListView.Resources>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="40"
|
||||
DisplayMemberBinding="{Binding TotalCount}"
|
||||
Header="合计"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<!--</Grid>-->
|
||||
|
||||
<pagination:Pagination Grid.Row="2" Grid.ColumnSpan="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CheckSelfOrderWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CheckSelfOrderWindowNew : UserControl
|
||||
{
|
||||
public CheckSelfOrderWindowNew()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
<UserControl x:Class="DM_Weight.Views.CheckStockWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<!--<convert:InputQuantityConverter x:Key="InputQuantityConverter" />
|
||||
<convert:QuantityCountConverter x:Key="QuantityCountConverter"/>-->
|
||||
<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.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="15*" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0" >
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</Trigger>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<!--<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>-->
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<!--<RowDefinition />-->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="一号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="0" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="二号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="三号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="四号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="五号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="六号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="七号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="八号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="九号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="十号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="1" Width="120" Content="十一号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="1" Width="120" Content="十二号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="1" Width="120" Content="十三号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="1" Width="120" Content="十四号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="1" Width="120" Content="十五号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="1" Width="120" Content="十六号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="1" Width="120" Content="十七号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="1" Width="120" Content="十八号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="550" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
|
||||
<Button Margin="6 0 6 6"
|
||||
Content="保存修改"
|
||||
Command="{Binding SaveCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}" />
|
||||
<Button
|
||||
Margin="0 0 6 6"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新"
|
||||
Command="{Binding Query}"
|
||||
Content="{materialDesign:PackIcon Refresh}"/>
|
||||
</StackPanel>
|
||||
<DataGrid Grid.ColumnSpan="2"
|
||||
Padding="0 6 0 0"
|
||||
Grid.Row="1"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
|
||||
ItemsSource="{Binding ChannelStocks}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:DataGridAssist.EnableEditBoxAssist="False"
|
||||
materialDesign:DataGridAssist.CellPadding="13"
|
||||
SelectionUnit="Cell"
|
||||
CanUserAddRows="False"
|
||||
AutoGenerateColumns="False">
|
||||
<DataGrid.Resources>
|
||||
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
|
||||
<Setter Property="Background" Value="#31ccec" />
|
||||
<Setter Property="Foreground" Value="white" />
|
||||
<Setter Property="Height" Value="56" />
|
||||
<Setter Property="BorderBrush" Value="white"/>
|
||||
<Setter Property="BorderThickness" Value="0.6"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
</Style>
|
||||
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsReadOnly" Value="True">
|
||||
<Setter Property="BorderBrush" Value="Transparent" />
|
||||
<Setter Property="HorizontalAlignment" Value="Left"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.Resources>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="130"
|
||||
Binding="{Binding DrugInfo.DrugName}"
|
||||
Header="药品名称"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Binding="{Binding DrugInfo.DrugSpec}"
|
||||
Header="规格"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<!--<DataGridTextColumn Width="100"
|
||||
Binding="{Binding BaseQuantity}"
|
||||
Header="基数"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>-->
|
||||
<DataGridTextColumn Width="130"
|
||||
Binding="{Binding ManuNo}"
|
||||
Header="批次"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="50"
|
||||
Binding="{Binding Quantity}"
|
||||
Header="库存"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTemplateColumn Width="100"
|
||||
Header="盘点数量">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
|
||||
<TextBox.Text>
|
||||
<Binding Path="CheckQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<ExceptionValidationRule />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<materialDesign:Snackbar
|
||||
Background="{Binding SnackbarBackground}"
|
||||
MessageQueue="{Binding SnackbarMessageQueue}"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CheckStockWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CheckStockWindow : UserControl
|
||||
{
|
||||
public CheckStockWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -250,7 +250,7 @@
|
|||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"
|
||||
Header="规格"/>
|
||||
<GridViewColumn Width="80"
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="批次"/>
|
||||
<GridViewColumn Width="80"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.ConfirmDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
MinWidth="450"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
mc:Ignorable="d">
|
||||
<materialDesign:Card Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Background="#03a9f4" Grid.Row="0">
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding Title}" />
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}"
|
||||
Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding CancelCommand}"
|
||||
ToolTip="关闭" Cursor="Hand"
|
||||
>
|
||||
<materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1" Margin="0 4 0 4">
|
||||
<TextBlock VerticalAlignment="Center" FontSize="14" FontFamily="YouYuan" FontWeight="Bold" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding ConfirmInfo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Content="确认" Margin="8" Command="{Binding ConfirmCommand}" />
|
||||
<Button Content="取消" Margin="8" Command="{Binding CancelCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--<materialDesign:Snackbar
|
||||
Background="{Binding SnackbarBackground}"
|
||||
MessageQueue="{Binding SnackbarMessageQueue}"/>-->
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// ConfirmDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ConfirmDialog : UserControl
|
||||
{
|
||||
public ConfirmDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.DatetimeDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid Margin="-1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
||||
<Calendar x:Name="CombinedCalendar" SelectedDate="{Binding Date}" Margin="-1 -4 -1 0" />
|
||||
<materialDesign:Clock Time="{Binding Time}" x:Name="CombinedClock" DisplayAutomation="CycleWithSeconds" Is24Hours="True" />
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="1" Margin="8" HorizontalAlignment="Right" Orientation="Horizontal">
|
||||
<Button Style="{StaticResource MaterialDesignFlatButton}" Command="{Binding CloseAction}" CommandParameter="1" Content="确认" Cursor="" />
|
||||
<Button Style="{StaticResource MaterialDesignFlatButton}" Command="{x:Static materialDesign:DialogHost.CloseDialogCommand}" Content="取消">
|
||||
<Button.CommandParameter>
|
||||
<system:Boolean xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
False
|
||||
</system:Boolean>
|
||||
</Button.CommandParameter>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// DatetimeDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DatetimeDialog : UserControl
|
||||
{
|
||||
public DatetimeDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.ExchangeDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
MinWidth="880"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
mc:Ignorable="d" >
|
||||
|
||||
<UserControl.Resources>
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<convert:InputQuantityConverter x:Key="InputQuantityConverter" />
|
||||
<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>
|
||||
<materialDesign:Card Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="50" />
|
||||
<RowDefinition Height="200" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Background="#03a9f4" Grid.Row="0">
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding Title}" />
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}"
|
||||
Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding BtnCloseCommand}"
|
||||
IsEnabled="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CloseBtn}"
|
||||
ToolTip="关闭"
|
||||
>
|
||||
<materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock
|
||||
Grid.Column="0"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="药品:" />
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.DrugInfo.DrugName}" />
|
||||
<TextBlock
|
||||
Grid.Column="2"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="规格:" />
|
||||
<TextBlock
|
||||
Grid.Column="3"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.DrugInfo.DrugSpec}" />
|
||||
<TextBlock
|
||||
Grid.Column="4"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="批次:" />
|
||||
<TextBlock
|
||||
Grid.Column="5"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.ManuNo}" />
|
||||
<TextBlock
|
||||
Grid.Column="6"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="库存:" />
|
||||
<TextBlock
|
||||
Grid.Column="7"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.Quantity}" />
|
||||
|
||||
<ComboBox
|
||||
Grid.Column="8"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"
|
||||
/>
|
||||
</Grid>
|
||||
<ListView
|
||||
Grid.Row="2"
|
||||
ItemsSource="{Binding _ChannelStocks}"
|
||||
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>
|
||||
<Style TargetType="ScrollViewer">
|
||||
<Setter Property="HorizontalScrollBarVisibility" Value="Visible"/>
|
||||
<Setter Property="VerticalScrollBarVisibility" Value="Visible"/>
|
||||
</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 Header="选择" Width="100">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding IsSelected}"/>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>-->
|
||||
<GridViewColumn Width="80"
|
||||
Header="药箱号"
|
||||
DisplayMemberBinding="{Binding DrawerNo}"/>
|
||||
<GridViewColumn Width="150"
|
||||
Header="药品"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugName}"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"
|
||||
Header="规格"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="批次"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="库存"/>
|
||||
<GridViewColumn Width="80" Header="交换数量">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
|
||||
<TextBox.Text>
|
||||
<Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<ExceptionValidationRule />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" Margin="6">
|
||||
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||
Visibility="{Binding Status,Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnVisible}"
|
||||
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
Content="开药箱"
|
||||
Command="{Binding OpenDrawer}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||
Content="完成"
|
||||
Command="{Binding FinishCommand}"/>
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignRaisedButton}"
|
||||
Background="Orange"
|
||||
BorderBrush="Orange"
|
||||
Content="取消"
|
||||
Command="{Binding CancleCommand}" />
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// ExchangeDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ExchangeDialog : UserControl
|
||||
{
|
||||
public ExchangeDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.RemoveDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
MinWidth="880"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
mc:Ignorable="d" >
|
||||
|
||||
<UserControl.Resources>
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<convert:InputQuantityConverter x:Key="InputQuantityConverter" />
|
||||
<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>
|
||||
<materialDesign:Card Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="50" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="10" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Background="#03a9f4" Grid.Row="0">
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding Title}" />
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}"
|
||||
Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding BtnCloseCommand}"
|
||||
ToolTip="关闭">
|
||||
<materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock
|
||||
Grid.Column="0"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="药品:" />
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.DrugInfo.DrugName}" />
|
||||
<TextBlock
|
||||
Grid.Column="2"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="规格:" />
|
||||
<TextBlock
|
||||
Grid.Column="3"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.DrugInfo.DrugSpec}" />
|
||||
<TextBlock
|
||||
Grid.Column="4"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="批次:" />
|
||||
<TextBlock
|
||||
Grid.Column="5"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.ManuNo}" />
|
||||
<TextBlock
|
||||
Grid.Column="6"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="库存:" />
|
||||
<TextBlock
|
||||
Grid.Column="7"
|
||||
Margin="16 0 16 8"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignBody2TextBlock}"
|
||||
Text="{Binding _ChannelStock.Quantity}" />
|
||||
</Grid>
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox
|
||||
Grid.Column="1" Grid.ColumnSpan="2"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"
|
||||
/>
|
||||
<TextBox
|
||||
Grid.Column="4" Grid.ColumnSpan="2"
|
||||
Text="{Binding RemoveQuantity}"
|
||||
materialDesign:HintAssist.Hint="移入数量"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="4">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" Margin="6">
|
||||
|
||||
<Button
|
||||
Margin="2"
|
||||
Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||
Visibility="{Binding Status,Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnVisible}"
|
||||
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||
Content="开药箱"
|
||||
Command="{Binding OpenDrawer}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="2" Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||
Content="完成"
|
||||
Command="{Binding FinishCommand}"/>
|
||||
<Button
|
||||
Margin="2" Style="{StaticResource MaterialDesignRaisedButton}"
|
||||
Background="Orange"
|
||||
BorderBrush="Orange"
|
||||
Content="取消"
|
||||
Command="{Binding CancleCommand}" Cursor="Hand" />
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// RemoveDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class RemoveDialog : UserControl
|
||||
{
|
||||
public RemoveDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.SelectOperationTypeDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
mc:Ignorable="d" MinHeight="615" MinWidth="880"
|
||||
Width="Auto"
|
||||
Height="Auto">
|
||||
<materialDesign:Card Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="200" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="200" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*" />
|
||||
<ColumnDefinition Width="5*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Background="#03a9f4" Grid.Row="0" Grid.ColumnSpan="2">
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding Title}" />
|
||||
|
||||
</Grid>
|
||||
<Grid Grid.Row="1" Margin="0 4 0 4">
|
||||
<!--<TextBlock VerticalAlignment="Center" FontSize="14" FontFamily="YouYuan" FontWeight="Bold" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding ConfirmInfo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />-->
|
||||
</Grid>
|
||||
|
||||
<!--<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">-->
|
||||
<Button Grid.Row="2" Grid.Column="0" Content="取药箱" Command="{Binding ConfirmCommand}" Width="130px" Height="50px" Style="{StaticResource MaterialDesignRaisedAccentButton}"/>
|
||||
<Button Grid.Row="2" Grid.Column="1" Content="还药箱" Command="{Binding CancelCommand}" Width="130px" Height="50px" Style="{StaticResource MaterialDesignRaisedAccentButton}" Background="Orange" BorderBrush="Orange"/>
|
||||
<!--</StackPanel>-->
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// SelectOperationTypeDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class SelectOperationTypeDialog : UserControl
|
||||
{
|
||||
public SelectOperationTypeDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
<UserControl x:Class="DM_Weight.Views.EmergencyWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes">
|
||||
<UserControl.Resources>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="80"></RowDefinition>
|
||||
<RowDefinition></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Background="#00bcd4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="交接柜管理系统" Grid.Column="0" Margin="30 0 30 0" HorizontalAlignment="Left" Width="Auto" Height="26" Foreground="White" FontSize="20" FontWeight="Bold" />
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="150" Content="1号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="150" Content="2号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="150" Content="3号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="150" Content="4号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="150" Content="5号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="150" Content="6号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="150" Content="7号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="150" Content="8号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="150" Content="9号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="150" Content="10号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="1" Width="150" Content="11号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="1" Width="150" Content="12号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="1" Width="150" Content="13号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="1" Width="150" Content="14号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="1" Width="150" Content="15号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="1" Width="150" Content="16号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="1" Width="150" Content="17号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="1" Width="150" Content="18号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="18" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="0 6 0 0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<Button Margin="0 0 6 0" Content="返回登录" Command="{Binding ReturnLoginDelegate}" CommandParameter="0"
|
||||
Visibility="{Binding DBConnectionStatus, Converter={StaticResource BooleanToVisibilityConverter}}" Style="{StaticResource MaterialDesignOutlinedLightButton}"/>
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignRaisedLightButton}"
|
||||
Background="#7986cb"
|
||||
BorderBrush="#7986cb"
|
||||
materialDesign:ButtonAssist.CornerRadius="5" Cursor="Hand" IsCancel="true"
|
||||
Command="{ Binding ExitCommand }" >
|
||||
<TextBlock Foreground="{DynamicResource MaterialDesignPaper}" Text="退出" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.Row="1">
|
||||
<GroupBox Width="800px"
|
||||
Header="重要提示"
|
||||
Style="{StaticResource MaterialDesignGroupBox}"
|
||||
Margin="0 6 0 0"
|
||||
materialDesign:ColorZoneAssist.Mode="SecondaryMid">
|
||||
<TextBlock Foreground="Red" FontWeight="Bold" FontSize="16" Text="数据库连接失败,此页面为紧急开锁页面!!!" />
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
<!--<materialDesign:Snackbar
|
||||
Background="{Binding SnackbarBackground}"
|
||||
MessageQueue="{Binding SnackbarMessageQueue}"/>-->
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// EmergencyWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class EmergencyWindow : UserControl
|
||||
{
|
||||
public EmergencyWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<UserControl x:Class="DM_Weight.Views.EmptyWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// EmptyWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class EmptyWindow : UserControl
|
||||
{
|
||||
public EmptyWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
<UserControl x:Class="DM_Weight.Views.ExchangeWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||
<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.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="15*" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Margin="6" Grid.Column="0" >
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||
<Setter Property="Foreground" Value="#00a0ea" />
|
||||
<Setter Property="BorderBrush" Value="#00a0ea" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</Trigger>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource DrawerSelectConverter}">
|
||||
<Binding RelativeSource="{ RelativeSource Mode=Self }" Path="Content" />
|
||||
<Binding Path="DrawerNo" />
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#d1e7f5" />
|
||||
<Setter Property="BorderBrush" Value="#d1e7f5" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<!--<RowDefinition />-->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="一号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="0" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="二号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="三号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="四号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="五号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="六号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="七号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="八号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
||||
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="九号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="十号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="1" Width="120" Content="十一号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="1" Width="120" Content="十二号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="1" Width="120" Content="十三号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="1" Width="120" Content="十四号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="1" Width="120" Content="十五号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="1" Width="120" Content="十六号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="1" Width="120" Content="十七号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
||||
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="1" Width="120" Content="十八号手术间" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid Grid.Column="1" Margin="6">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
|
||||
<Button Margin="6 0 6 6"
|
||||
Content="替换药品"
|
||||
Command="{Binding ExchangeCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}" />
|
||||
<Button
|
||||
Margin="0 0 6 6"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="移出药品"
|
||||
Command="{Binding RemoveCommand}"/>
|
||||
</StackPanel>
|
||||
<ListView Grid.ColumnSpan="2"
|
||||
Padding="0 6 0 0" Grid.Row="1"
|
||||
ItemsSource="{Binding _ChannelStocks, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
SelectedItem="{Binding _ChannelStock}"
|
||||
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 Header="药品名称" Width="150" DisplayMemberBinding="{Binding DrugInfo.DrugName}"/>
|
||||
|
||||
<GridViewColumn Header="规格" Width="150" DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"/>
|
||||
|
||||
<GridViewColumn Header="批次" Width="130" DisplayMemberBinding="{Binding ManuNo}"/>
|
||||
|
||||
<GridViewColumn Header="库存" Width="50" DisplayMemberBinding="{Binding Quantity}"/>
|
||||
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<!--<materialDesign:Snackbar
|
||||
Background="{Binding SnackbarBackground}"
|
||||
MessageQueue="{Binding SnackbarMessageQueue}"/>-->
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// ExchangeWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ExchangeWindow : UserControl
|
||||
{
|
||||
public ExchangeWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -27,12 +27,12 @@
|
|||
</Grid.ColumnDefinitions>
|
||||
<!--<Image Grid.Column="0" Margin="30 0 30 0" HorizontalAlignment="Left" Width="Auto" Height="26" Source="/Images/logo.png" />-->
|
||||
<TextBlock Text="交接柜管理系统" Grid.Column="0" Margin="30 0 30 0" HorizontalAlignment="Left" Width="Auto" Height="26" Foreground="White" FontSize="20" FontWeight="Bold" />
|
||||
<ListBox Name="ListBoxName" Grid.Column="1" SelectedItem="{Binding SelectedMenu}" ItemsSource="{Binding PremissionDmList}" HorizontalAlignment="Right" Cursor="Hand">
|
||||
<i:Interaction.Triggers>
|
||||
<ListBox SelectionMode="Extended" Name="ListBoxName" Grid.Column="1" SelectedItem="{Binding SelectedMenu}" ItemsSource="{Binding PremissionDmList}" HorizontalAlignment="Right" Cursor="Hand">
|
||||
<!--<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="SelectionChanged">
|
||||
<i:InvokeCommandAction Command="{Binding SelectionCommon}"/>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</i:Interaction.Triggers>-->
|
||||
<ListBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel Orientation="Horizontal" IsItemsHost="True"/>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
|
|
@ -87,17 +87,19 @@
|
|||
<GridViewColumn Width="100"
|
||||
DisplayMemberBinding="{Binding DrawerNo}"
|
||||
Header="手术间药箱号"/>
|
||||
<GridViewColumn Width="180"
|
||||
<GridViewColumn Width="580"
|
||||
DisplayMemberBinding="{Binding InvoiceId}"
|
||||
Header="操作内容"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<pagination:Pagination Grid.Row="2"
|
||||
<DockPanel Grid.Row="2">
|
||||
<pagination:Pagination
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
@ -19,9 +19,9 @@
|
|||
Topmost="False"
|
||||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
Title="主窗口" Height="768" Width="1024" WindowStyle="None" WindowState="Maximized">
|
||||
<WindowChrome.WindowChrome>
|
||||
<!--<WindowChrome.WindowChrome>
|
||||
<WindowChrome CornerRadius="4" GlassFrameThickness="1" />
|
||||
</WindowChrome.WindowChrome>
|
||||
</WindowChrome.WindowChrome>-->
|
||||
|
||||
<materialDesign:DialogHost
|
||||
DialogMargin="0"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,10 @@
|
|||
using Prism.Events;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using DM_Weight.ViewModels;
|
||||
using log4net;
|
||||
using log4net.Repository.Hierarchy;
|
||||
using Prism.Events;
|
||||
using Prism.Ioc;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
|
|
@ -16,11 +22,6 @@ using System.Windows.Media.Imaging;
|
|||
using System.Windows.Shapes;
|
||||
using Unity;
|
||||
using Unity.Lifetime;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.util;
|
||||
using log4net.Repository.Hierarchy;
|
||||
using DM_Weight.Port;
|
||||
using log4net;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
|
|
@ -31,10 +32,12 @@ namespace DM_Weight.Views
|
|||
{
|
||||
//IRegionManager _regionManager;
|
||||
//IUnityContainer _container;
|
||||
//MainWindowViewModel vms;
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(PortUtil));
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
//vms = MainWindowViewModel.vm;
|
||||
//_regionManager = regionManager;
|
||||
//_container = container;
|
||||
//System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
||||
|
|
@ -46,6 +49,10 @@ namespace DM_Weight.Views
|
|||
//}));
|
||||
|
||||
}
|
||||
|
||||
//protected override void OnClosed(EventArgs e)
|
||||
//{
|
||||
// vms._recorder?.Dispose();
|
||||
// base.OnClosed(e);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
using Prism.Events;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.msg
|
||||
{
|
||||
internal class PrintScreenEvent : PubSubEvent<int>
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
||||
namespace DM_Weight.util
|
||||
{
|
||||
public class FFmpegHelper
|
||||
{
|
||||
private Process _ffmpegProcess;
|
||||
private string _ffmpegPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg.exe");
|
||||
//是否停止录屏标志
|
||||
public bool stopFlag = false;
|
||||
|
||||
public void StartRecording(string outputPath, int frameRate = 30)
|
||||
{
|
||||
//int width = (int)SystemParameters.PrimaryScreenWidth;
|
||||
//int height = (int)SystemParameters.PrimaryScreenHeight;
|
||||
//string args = $"-f gdigrab -framerate 30 -i desktop -c:v libx264 -crf 25 -preset ultrafast -t {segmentDuration} {segmentPath}";
|
||||
int segmentDuration = 1800; // 每段半小时
|
||||
string args = $"-f gdigrab -framerate {frameRate} " +
|
||||
$"-i desktop -preset ultrafast -t {segmentDuration} {outputPath}";
|
||||
|
||||
_ffmpegProcess = new Process
|
||||
{
|
||||
StartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = _ffmpegPath,
|
||||
Arguments = args,
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true,
|
||||
RedirectStandardInput = true
|
||||
}
|
||||
};
|
||||
_ffmpegProcess.Start();
|
||||
ThreadPool.QueueUserWorkItem(CheckFFmpegProcess); // 检查FFmpeg进程是否完成,以开始下一个录制段
|
||||
}
|
||||
public void StopRecording()
|
||||
{
|
||||
_ffmpegProcess?.StandardInput.WriteLine("q");
|
||||
_ffmpegProcess?.WaitForExit(1000);
|
||||
_ffmpegProcess?.Close();
|
||||
}
|
||||
private void CheckFFmpegProcess(object state)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
if (!stopFlag)
|
||||
{
|
||||
_ffmpegProcess.WaitForExit(); // 等待FFmpeg进程结束
|
||||
if (!_ffmpegProcess.HasExited) return; // 如果进程未结束,则不继续
|
||||
// 开始下一个录制段,如果需要循环录制,可以取消注释下面的代码行并适当调整逻辑
|
||||
// StartRecording(); // 注意:这将无限循环录制,可能需要用户界面干预来停止或重置计数器。
|
||||
string _outputFolder;
|
||||
string _outputFilePath;
|
||||
_outputFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Log", "ScreenRecordings");
|
||||
if (!Directory.Exists(_outputFolder))
|
||||
{
|
||||
Directory.CreateDirectory(_outputFolder);
|
||||
}
|
||||
// 生成输出文件名
|
||||
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
_outputFilePath = Path.Combine(_outputFolder, $"{timestamp}.webm");
|
||||
StartRecording(_outputFilePath, 25);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue