Compare commits
	
		
			1 Commits
		
	
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							
							
								
								 | 
						e8c5d8ef46 | 
							 | 
					
| 
						 | 
				
			
			@ -361,4 +361,3 @@ MigrationBackup/
 | 
			
		|||
 | 
			
		||||
# Fody - auto-generated XML schema
 | 
			
		||||
FodyWeavers.xsd
 | 
			
		||||
/说明.txt
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
    <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|x64
 | 
			
		||||
		{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{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|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=xt;userid=root;password=qq1223" />
 | 
			
		||||
	<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike_xx;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=xt; Password=qq1223; Port=3306; Server=127.0.0.1; User=root;"/>
 | 
			
		||||
		<add key="gridConnectionString" value="MYSQL; Database=xiangxiang; Password=root; Port=3306; Server=127.0.0.1; User=root;"/>
 | 
			
		||||
		<!-- 查询处方是orderNo还是orderGroupNo -->
 | 
			
		||||
		<add key="OrderNoName" value="orderNo" />
 | 
			
		||||
		<!-- 后门耗材板地址 没有则填写0-->
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +70,8 @@
 | 
			
		|||
		<add key="temperatureRange" value="2-8"/>
 | 
			
		||||
		<!--冰箱抽屉温度-->
 | 
			
		||||
		<add key="temperatureValue" value="3.2"/>
 | 
			
		||||
		<!--温度查询定时执行时间-->
 | 
			
		||||
		<add key="Interval" value="60000"/>
 | 
			
		||||
		<!--冰箱状态1关闭;0打开-->
 | 
			
		||||
		<add key="FridgeState" value="0"/>
 | 
			
		||||
		<!--报警状态1关闭;0打开-->
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +99,7 @@
 | 
			
		|||
		<!-- 指纹机号码 -->
 | 
			
		||||
		<add  key="machineNumber" value="1"/>
 | 
			
		||||
		<!-- 指纹机ip -->
 | 
			
		||||
		<add  key="fingerIp" value="192.168.50.59"/>
 | 
			
		||||
		<add  key="fingerIp" value="192.168.50.201"/>
 | 
			
		||||
		
 | 
			
		||||
		<!-- 多处方取药 0:不启用 1:启用-->
 | 
			
		||||
		<add  key="MultiOrder" value="1"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -122,5 +124,6 @@
 | 
			
		|||
		<add key="wsdSerialPort" value="COM1"/>
 | 
			
		||||
		<!--温度查询定时执行时间-->
 | 
			
		||||
		<add key="Interval" value="60000"/>
 | 
			
		||||
		<add key="test" value="Y"/>
 | 
			
		||||
	</appSettings>
 | 
			
		||||
</configuration>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,7 +25,6 @@ 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()
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -53,11 +52,7 @@ namespace DM_Weight
 | 
			
		|||
        void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            logger.Error($"发生错误:{e.Exception.Message}");
 | 
			
		||||
            e.Handled = true; if (e.Exception.Message.Contains("连接数据库过程中发生错误"))
 | 
			
		||||
            {
 | 
			
		||||
                DbConnectionFail = true;
 | 
			
		||||
                Container.Resolve<MainWindow>();
 | 
			
		||||
            }
 | 
			
		||||
            e.Handled = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void OnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
 | 
			
		||||
| 
						 | 
				
			
			@ -174,11 +169,6 @@ namespace DM_Weight
 | 
			
		|||
            containerRegistry.RegisterForNavigation<CheckSelfOrderWindow, CheckSelfOrderWindowViewModel>();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //管理员根据药箱进行核对处方
 | 
			
		||||
            containerRegistry.RegisterForNavigation<CheckOrderNewWindowNew, CheckOrderNewWindowNewViewModel>();
 | 
			
		||||
            //麻醉师核对其名下单子
 | 
			
		||||
            containerRegistry.RegisterForNavigation<CheckSelfOrderWindowNew, CheckSelfOrderWindowNewViewModel>();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            #endregion
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -294,20 +284,6 @@ 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
 | 
			
		||||
 | 
			
		||||
            // 设备记录页面
 | 
			
		||||
| 
						 | 
				
			
			@ -315,22 +291,6 @@ 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");
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,10 +77,6 @@ namespace DM_Weight.Converter
 | 
			
		|||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            int SelectedDrawerNo = int.Parse(value[1].ToString());
 | 
			
		||||
            if (value.Count() >= 3 && value[2] != null)
 | 
			
		||||
            {
 | 
			
		||||
                SelectedDrawerNo -= 1;
 | 
			
		||||
            }
 | 
			
		||||
            return ButtonDrawerNo == SelectedDrawerNo;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,50 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -27,15 +27,6 @@
 | 
			
		|||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <COMReference Include="zkemkeeper">
 | 
			
		||||
      <WrapperTool>tlbimp</WrapperTool>
 | 
			
		||||
      <VersionMinor>0</VersionMinor>
 | 
			
		||||
      <VersionMajor>1</VersionMajor>
 | 
			
		||||
      <Guid>fe9ded34-e159-408e-8490-b720a5e632c7</Guid>
 | 
			
		||||
      <Lcid>0</Lcid>
 | 
			
		||||
      <Isolated>false</Isolated>
 | 
			
		||||
      <EmbedInteropTypes>False</EmbedInteropTypes>
 | 
			
		||||
    </COMReference>
 | 
			
		||||
    <COMReference Include="gregn6Lib">
 | 
			
		||||
      <WrapperTool>tlbimp</WrapperTool>
 | 
			
		||||
      <VersionMinor>0</VersionMinor>
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +36,15 @@
 | 
			
		|||
      <Isolated>false</Isolated>
 | 
			
		||||
      <EmbedInteropTypes>False</EmbedInteropTypes>
 | 
			
		||||
    </COMReference>
 | 
			
		||||
    <COMReference Include="zkemkeeper">
 | 
			
		||||
      <WrapperTool>tlbimp</WrapperTool>
 | 
			
		||||
      <VersionMinor>0</VersionMinor>
 | 
			
		||||
      <VersionMajor>1</VersionMajor>
 | 
			
		||||
      <Guid>fe9ded34-e159-408e-8490-b720a5e632c7</Guid>
 | 
			
		||||
      <Lcid>0</Lcid>
 | 
			
		||||
      <Isolated>false</Isolated>
 | 
			
		||||
      <EmbedInteropTypes>False</EmbedInteropTypes>
 | 
			
		||||
    </COMReference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
| 
						 | 
				
			
			@ -98,9 +98,6 @@
 | 
			
		|||
    <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>
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +132,9 @@
 | 
			
		|||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="..\DM_Weight.Commons\DM_Weight.Commons.csproj" />
 | 
			
		||||
    <Reference Include="Interop.zkemkeeper">
 | 
			
		||||
      <HintPath>bin\Debug\net6.0-windows\Interop.zkemkeeper.dll</HintPath>
 | 
			
		||||
    </Reference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
</Project>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,21 +148,5 @@ 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,12 +209,5 @@ 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; } = 1;
 | 
			
		||||
        public int DrawerType { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///  
 | 
			
		||||
        /// 默认值: 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ namespace DM_Weight.Models
 | 
			
		|||
        [SugarColumn(ColumnName = "eff_date")]
 | 
			
		||||
        public DateTime? EffDate { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 出库入库类型(1入库2出库31还药32还空瓶,21药箱移出移入,69药箱替换,55绑定药品操作(绑定、解绑、修改基数)) 70取出药箱、71还回药箱
 | 
			
		||||
        /// 出库入库类型(1入库2出库31还药32还空瓶) 
 | 
			
		||||
        ///</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:完成)   取出药箱70还回药箱71
 | 
			
		||||
        /// 是否已经退药(0:没有1:还了部分2:完成) 
 | 
			
		||||
        /// 默认值: 0
 | 
			
		||||
        ///</summary>
 | 
			
		||||
        [SugarColumn(ColumnName = "status")]
 | 
			
		||||
        [SugarColumn(ColumnName = "status", IsOnlyIgnoreInsert = true)]
 | 
			
		||||
        public int Status { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 退药量 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,39 +0,0 @@
 | 
			
		|||
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,15 +1,14 @@
 | 
			
		|||
using Prism.Mvvm;
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using System;
 | 
			
		||||
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 : BindableBase
 | 
			
		||||
    public class SurgicalResidual
 | 
			
		||||
    {
 | 
			
		||||
        //[SugarColumn(ColumnName = "id")]
 | 
			
		||||
        //public int Id { get; set; }
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +23,7 @@ namespace DM_Weight.Models
 | 
			
		|||
 | 
			
		||||
        //public string residual_dose { get; set; }
 | 
			
		||||
        [SugarColumn(ColumnName = "create_time")]
 | 
			
		||||
        public DateTime CreateTime { get; set; }
 | 
			
		||||
        public string CreateTime { get; set; }
 | 
			
		||||
        //使用量
 | 
			
		||||
        [SugarColumn(ColumnName = "use_dose")]
 | 
			
		||||
        public string UseDose { get; set; }
 | 
			
		||||
| 
						 | 
				
			
			@ -36,35 +35,11 @@ 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>
 | 
			
		||||
        /// 剩余量+单位
 | 
			
		||||
| 
						 | 
				
			
			@ -74,11 +49,5 @@ 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); }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
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,8 +73,5 @@ namespace DM_Weight.Models
 | 
			
		|||
        {
 | 
			
		||||
            return "userList = [UserName:" + Nickname + ", UserId:" + UserName + "]";
 | 
			
		||||
        }
 | 
			
		||||
        //保存用户已取药箱的药箱号
 | 
			
		||||
        //[SugarColumn(ColumnName = "Box_Num")]
 | 
			
		||||
        //public string BoxNumber { get; set; }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@ 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;
 | 
			
		||||
| 
						 | 
				
			
			@ -26,18 +25,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) =>
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -61,21 +60,17 @@ namespace DM_Weight.Port
 | 
			
		|||
                logger.Info("MessageReceived>>>>>>>>>>>>>>>>" + OpenStatus);
 | 
			
		||||
            };
 | 
			
		||||
            
 | 
			
		||||
            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();
 | 
			
		||||
            //        });
 | 
			
		||||
            //    }
 | 
			
		||||
            //};
 | 
			
		||||
            acceptor.SessionClosed += (o, e) =>
 | 
			
		||||
            {
 | 
			
		||||
                logger.Info("SessionClosed");
 | 
			
		||||
                //Task.Delay(50).Wait();
 | 
			
		||||
                SocketConnect(); 
 | 
			
		||||
                Task.Factory.StartNew(() =>
 | 
			
		||||
                {
 | 
			
		||||
                    _fingerprintUtil.FingerDisconnect();
 | 
			
		||||
                });
 | 
			
		||||
            };
 | 
			
		||||
            this.SocketConnect();
 | 
			
		||||
        }
 | 
			
		||||
        int i = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -111,32 +106,9 @@ 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,42 +365,5 @@ 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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,712 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
	"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
 | 
			
		||||
		}
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,717 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
	"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
 | 
			
		||||
		}
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,176 +0,0 @@
 | 
			
		|||
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,25 +27,12 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			@ -53,24 +40,18 @@ 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;
 | 
			
		||||
        private static readonly DateTime Jan1st1970 = new DateTime
 | 
			
		||||
   (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 | 
			
		||||
        public AdditionWindowViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
 | 
			
		||||
 | 
			
		||||
        public AdditionWindowViewModel(IEventAggregator eventAggregator,SocketHelper socketHelper)
 | 
			
		||||
        {
 | 
			
		||||
            //_dialogService = dialogService;
 | 
			
		||||
            _eventAggregator = eventAggregator;
 | 
			
		||||
            //_portUtil = portUtil;
 | 
			
		||||
            _socketHelper = socketHelper;
 | 
			
		||||
            _socketHelper= socketHelper;
 | 
			
		||||
        }
 | 
			
		||||
        public bool IsNavigationTarget(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -84,13 +65,11 @@ 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)
 | 
			
		||||
| 
						 | 
				
			
			@ -99,57 +78,24 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                .OrderBy(cs => cs.DrawerNo)
 | 
			
		||||
                .OrderBy(cs => cs.DrugId)
 | 
			
		||||
                .ToList();
 | 
			
		||||
            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;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //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);
 | 
			
		||||
        }
 | 
			
		||||
        //开药箱放入药品
 | 
			
		||||
        public DelegateCommand OpenBoxCommand
 | 
			
		||||
        {
 | 
			
		||||
            get => new DelegateCommand(() =>
 | 
			
		||||
            {
 | 
			
		||||
                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();
 | 
			
		||||
                selectedStock = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).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++)
 | 
			
		||||
| 
						 | 
				
			
			@ -166,11 +112,11 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                                Operator = HomeWindowViewModel.Operator?.Id,
 | 
			
		||||
                                OperationTime = DateTime.Now,
 | 
			
		||||
                                Type = 55,
 | 
			
		||||
                                InvoiceId = "手术间补药入库",
 | 
			
		||||
                                InvoiceId = "手术间补药",
 | 
			
		||||
                            }).ExecuteCommand();
 | 
			
		||||
                            _socketHelper.OpenStatus = true;
 | 
			
		||||
                            //_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                            //_socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
 | 
			
		||||
                            _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                            _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                            _socketHelper.SpeakAsync($"正在打开{selectedStock[i].DrawerNo}号手术间");
 | 
			
		||||
 | 
			
		||||
                            //ModbusHelper.GetInstance().OpenBoxDoor(selectedStock[i].DrawerNo - 1);
 | 
			
		||||
| 
						 | 
				
			
			@ -187,81 +133,31 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                                };
 | 
			
		||||
                                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
			
		||||
                                logger.Info($"网口连接异常,正在重试{ex.Message}");
 | 
			
		||||
                                _socketHelper.OpenStatus = false;
 | 
			
		||||
                                return;
 | 
			
		||||
                            }
 | 
			
		||||
                            Thread.Sleep(100);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    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();
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                    //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("药箱已打开,请及时关闭");
 | 
			
		||||
                    //        }
 | 
			
		||||
                    //    }
 | 
			
		||||
                    //});
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -273,7 +169,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                //FinishStatus = Visibility.Visible;
 | 
			
		||||
                FinishStatus = Visibility.Visible;
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        //完成按钮
 | 
			
		||||
| 
						 | 
				
			
			@ -294,76 +190,43 @@ 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
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -383,10 +246,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        public long CurrentTimeMillis()
 | 
			
		||||
        {
 | 
			
		||||
            return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //刷新
 | 
			
		||||
        public DelegateCommand QueryCommand
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -397,7 +257,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
        {
 | 
			
		||||
            if (channelStock != null)
 | 
			
		||||
            {
 | 
			
		||||
                if (channelStock.State == 1)
 | 
			
		||||
                if (channelStock.ChannelLst.State == 1)
 | 
			
		||||
                {
 | 
			
		||||
                    channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,80 +50,30 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
            set => SetProperty(ref _snackbarMessageQueue, value);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private List<ChannelList>? _channelLists;
 | 
			
		||||
        private List<ChannelStock>? _channels;
 | 
			
		||||
 | 
			
		||||
        public List<ChannelList>? _ChannelLists
 | 
			
		||||
        public List<ChannelStock>? Channels
 | 
			
		||||
        {
 | 
			
		||||
            get => _channelLists;
 | 
			
		||||
            set => SetProperty(ref _channelLists, value);
 | 
			
		||||
            get => _channels;
 | 
			
		||||
            set => SetProperty(ref _channels, value);
 | 
			
		||||
        }
 | 
			
		||||
        private ChannelList? _channelList;
 | 
			
		||||
 | 
			
		||||
        public ChannelList? _ChannelList
 | 
			
		||||
        private ChannelStock _channelStock;
 | 
			
		||||
 | 
			
		||||
        public ChannelStock Channel
 | 
			
		||||
        {
 | 
			
		||||
            get => _channelList;
 | 
			
		||||
            get { return _channelStock; }
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                if (value != null)
 | 
			
		||||
                {
 | 
			
		||||
                    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();
 | 
			
		||||
                    DrugInfo = DrugInfos.Where(di => di.DrugId == value.DrugInfo.DrugId).First();
 | 
			
		||||
                    BaseQuantity = value.BaseQuantity.ToString();
 | 
			
		||||
                }
 | 
			
		||||
                SetProperty(ref _channelList, value);
 | 
			
		||||
 | 
			
		||||
                SetProperty(ref _channelStock, 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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -140,18 +90,6 @@ 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;
 | 
			
		||||
                //}
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        //药品基数
 | 
			
		||||
| 
						 | 
				
			
			@ -182,36 +120,26 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
 | 
			
		||||
        private void RequestData()
 | 
			
		||||
        {
 | 
			
		||||
            _ChannelLists?.Clear();
 | 
			
		||||
            Channels?.Clear();
 | 
			
		||||
            BaseQuantity = "";
 | 
			
		||||
            var list = SqlSugarHelper.Db.Queryable<ChannelList>()
 | 
			
		||||
            var list = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
			
		||||
                //.Includes(cl => cl.channelStocks, cs => cs.DrugInfo,di=>di.drugBase)
 | 
			
		||||
                .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();
 | 
			
		||||
                .Includes(cs => cs.DrugInfo)
 | 
			
		||||
                .Where(cs => cs.MachineId.Equals("DM5"))
 | 
			
		||||
                .Where(cs => cs.DrawerNo == DrawerNo+1).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)
 | 
			
		||||
            {
 | 
			
		||||
                _ChannelLists = list;
 | 
			
		||||
                Channels=list.GroupBy(cs =>cs.DrugId).Select(cs =>
 | 
			
		||||
                {
 | 
			
		||||
                    var ret = cs.First();
 | 
			
		||||
                    ret.Quantity = cs.Sum(itx => itx.Quantity);
 | 
			
		||||
                    return ret;
 | 
			
		||||
                }).ToList();
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                _ChannelLists = null;
 | 
			
		||||
                Channels = null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -274,9 +202,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                SnackbarMessageQueue.Enqueue("药品基数请输入正确的整数");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            if (_ChannelLists != null)
 | 
			
		||||
            if (Channels != null)
 | 
			
		||||
            {
 | 
			
		||||
                int iNum = _ChannelLists.Where(cs => cs.DrugId == DrugInfo.DrugId.ToString()).Count();
 | 
			
		||||
                int iNum = Channels.Where(cs => cs.DrugId == DrugInfo.DrugId.ToString()).Count();
 | 
			
		||||
                if (iNum > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
			
		||||
| 
						 | 
				
			
			@ -287,44 +215,24 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
            }
 | 
			
		||||
            var f = SqlSugarHelper.Db.UseTran(() =>
 | 
			
		||||
            {
 | 
			
		||||
                //string chnguid = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"].ToString() && cs.DrawerNo == DrawerNo + 1).Select(cs => cs.Id).First();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                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();
 | 
			
		||||
                string chnguid = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"].ToString() && cs.DrawerNo == DrawerNo+1).Select(cs => cs.Id).First();
 | 
			
		||||
                SqlSugarHelper.Db.Insertable(new ChannelStock()
 | 
			
		||||
                {
 | 
			
		||||
                    Chnguid = chnguid,
 | 
			
		||||
                    DrawerNo = DrawerNo + 1,
 | 
			
		||||
                    DrugId = DrugInfo.DrugId,
 | 
			
		||||
                    DrawerNo = DrawerNo+1,
 | 
			
		||||
                    DrugId = DrugInfo.DrugId.ToString(),
 | 
			
		||||
                    BaseQuantity = baseQuantity,
 | 
			
		||||
                    Id = Guid.NewGuid().ToString(),
 | 
			
		||||
                    MachineId = "DM5",
 | 
			
		||||
                    AddToJJNum = 0,
 | 
			
		||||
                    NeedNum = baseQuantity,
 | 
			
		||||
                    State=0
 | 
			
		||||
                    //ManuNo=DrugManuNo.ManuNo
 | 
			
		||||
                    AddToJJNum=0,
 | 
			
		||||
                    NeedNum=baseQuantity
 | 
			
		||||
                }).ExecuteCommand();
 | 
			
		||||
                // 保存数据 入库记录
 | 
			
		||||
                SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
			
		||||
                {
 | 
			
		||||
                    MachineId = "DM5",
 | 
			
		||||
                    DrawerNo = DrawerNo + 1,
 | 
			
		||||
                    DrugId = DrugInfo.DrugId,
 | 
			
		||||
                    DrugId = DrugInfo.DrugId.ToString(),
 | 
			
		||||
                    Operator = HomeWindowViewModel.Operator?.Id,
 | 
			
		||||
                    OperationTime = DateTime.Now,
 | 
			
		||||
                    Quantity = baseQuantity,
 | 
			
		||||
| 
						 | 
				
			
			@ -368,62 +276,52 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
            try
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                if (_ChannelList == null)
 | 
			
		||||
                if (Channels == null)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
			
		||||
                    SnackbarMessageQueue.Enqueue("所选手术间中无可解绑药品");
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                if (_ChannelList != null)
 | 
			
		||||
                if (Channel != null)
 | 
			
		||||
                {
 | 
			
		||||
                    if (_channelList.channelStocks.Where(cs => cs.Quantity > 0).Count() > 0)
 | 
			
		||||
                    {
 | 
			
		||||
                        SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
			
		||||
                        SnackbarMessageQueue.Enqueue("药品还有库存不能操作解绑");
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
                    //解绑选定行的单个药品
 | 
			
		||||
                    SqlSugarHelper.Db.Deleteable(_ChannelList.channelStocks).ExecuteCommand();
 | 
			
		||||
                    //解绑ChannelList表中的药品
 | 
			
		||||
                    SqlSugarHelper.Db.Deleteable<ChannelList>().Where(cl => cl.Id == _ChannelList.Id).ExecuteCommand();
 | 
			
		||||
                    SqlSugarHelper.Db.Deleteable(Channel).ExecuteCommand();
 | 
			
		||||
                    // 保存数据 入库记录
 | 
			
		||||
                    SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
			
		||||
                    {
 | 
			
		||||
                        MachineId = "DM5",
 | 
			
		||||
                        DrawerNo = DrawerNo,
 | 
			
		||||
                        DrugId = _ChannelList.DrugId,
 | 
			
		||||
                        DrawerNo = DrawerNo + 1,
 | 
			
		||||
                        DrugId = Channel.DrugId.ToString(),
 | 
			
		||||
                        Operator = HomeWindowViewModel.Operator?.Id,
 | 
			
		||||
                        OperationTime = DateTime.Now,
 | 
			
		||||
                        Quantity = _ChannelList.BaseQuantity,
 | 
			
		||||
                        Quantity = Channel.Quantity,
 | 
			
		||||
                        Type = 55,
 | 
			
		||||
                        InvoiceId = "解绑手术间单个药品",
 | 
			
		||||
                    }).ExecuteCommand();
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
			
		||||
                    SnackbarMessageQueue.Enqueue("请选择要解绑的药品");
 | 
			
		||||
                    ////解绑药箱下的所有药品
 | 
			
		||||
                    //Channels.ForEach(item =>
 | 
			
		||||
                    //{
 | 
			
		||||
                    //解绑药箱下的所有药品
 | 
			
		||||
                    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 + 1,
 | 
			
		||||
                            DrugId = item.DrugId.ToString(),
 | 
			
		||||
                            Operator = HomeWindowViewModel.Operator?.Id,
 | 
			
		||||
                            OperationTime = DateTime.Now,
 | 
			
		||||
                            Quantity = item.Quantity,
 | 
			
		||||
                            Type = 55,
 | 
			
		||||
                            InvoiceId = "绑定手术间全部药品",
 | 
			
		||||
                        }).ExecuteCommand();
 | 
			
		||||
 | 
			
		||||
                    //});
 | 
			
		||||
                    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -443,7 +341,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
        {
 | 
			
		||||
            get => new DelegateCommand(() =>
 | 
			
		||||
            {
 | 
			
		||||
                if (DrugInfo.DrugId != _ChannelList.DrugId)
 | 
			
		||||
                if (DrugInfo.DrugId != Channel.DrugId)
 | 
			
		||||
                {
 | 
			
		||||
                    SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
			
		||||
                    SnackbarMessageQueue.Enqueue("只能修改药品基数,不能更换绑定药品!");
 | 
			
		||||
| 
						 | 
				
			
			@ -452,49 +350,13 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                int baseQty = 0;
 | 
			
		||||
                if (int.TryParse(BaseQuantity, out baseQty))
 | 
			
		||||
                {
 | 
			
		||||
                    logger.Info($"修改药品{DrugInfo.DrugName}基数{_ChannelList.BaseQuantity}改为{baseQty}");
 | 
			
		||||
                    if (baseQty > _ChannelList.BaseQuantity)
 | 
			
		||||
                    Channel.BaseQuantity = Convert.ToInt32(baseQty);
 | 
			
		||||
                    int iUpdate= SqlSugarHelper.Db.Updateable<ChannelStock>(Channel).ExecuteCommand();
 | 
			
		||||
                    if (iUpdate > 0)
 | 
			
		||||
                    {
 | 
			
		||||
                        //基数变大,需要补药
 | 
			
		||||
                        //_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
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -518,5 +380,127 @@ 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 + 1,
 | 
			
		||||
                        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,9 +316,7 @@ 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._OrderDetail.SetManuNo != null)
 | 
			
		||||
                               .Where(oi => oi._OrderDetail.Quantity > 0)
 | 
			
		||||
                               .Where(oi => oi.DrawerCode==DrawerNo+1)
 | 
			
		||||
                               .OrderBy(oi => oi.OrderId)
 | 
			
		||||
                               .ToPageList(PageNum, PageSize, ref totalCount);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -326,7 +324,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();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -441,16 +439,6 @@ 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();
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -458,7 +446,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
 | 
			
		||||
        void CheckOrderAction()
 | 
			
		||||
        {
 | 
			
		||||
            logger.Info($"管理员{HomeWindowViewModel.Operator?.Nickname}开始确认手麻单");
 | 
			
		||||
            var confirmData = OrderInfoList.Where(oi => oi.ItemIsChecked == true).ToList();
 | 
			
		||||
            if (confirmData.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -486,7 +473,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                                PatientId = oi.PatientId,
 | 
			
		||||
                                Pharmacy = oi.Pharmacy,
 | 
			
		||||
                                State = 2,
 | 
			
		||||
                                WinNo = DrawerNo + 1 + "号手术间",
 | 
			
		||||
                                WinNo= DrawerNo+1+"号手术间",
 | 
			
		||||
                                Operator = HomeWindowViewModel.Operator?.Nickname,
 | 
			
		||||
                            }).ExecuteCommand();
 | 
			
		||||
                        }
 | 
			
		||||
| 
						 | 
				
			
			@ -496,199 +483,166 @@ 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};";
 | 
			
		||||
                            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();
 | 
			
		||||
                            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();
 | 
			
		||||
 | 
			
		||||
                        // 获取更新完库存后的药品库存
 | 
			
		||||
                        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();
 | 
			
		||||
                            if (cs != null)
 | 
			
		||||
                            {
 | 
			
		||||
 | 
			
		||||
                        #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();
 | 
			
		||||
                                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();
 | 
			
		||||
 | 
			
		||||
                        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;
 | 
			
		||||
                                #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.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 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.OperationTime = DateTime.Now;
 | 
			
		||||
                                    //还药信息
 | 
			
		||||
                                    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;
 | 
			
		||||
 | 
			
		||||
                            int iRejectionReport = SqlSugarHelper.Db.Updateable(rejectionReport).ExecuteCommand();
 | 
			
		||||
                        }
 | 
			
		||||
                        #endregion
 | 
			
		||||
                                    rejectionReport.OperationTime = DateTime.Now;
 | 
			
		||||
 | 
			
		||||
                        //}
 | 
			
		||||
                        //查询上一条账册中的空瓶数
 | 
			
		||||
                        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()
 | 
			
		||||
                                    int iRejectionReport = SqlSugarHelper.Db.Updateable(rejectionReport).ExecuteCommand();
 | 
			
		||||
                                }
 | 
			
		||||
                                #endregion
 | 
			
		||||
 | 
			
		||||
                            }
 | 
			
		||||
                            //保存账册
 | 
			
		||||
                            int iInsertResult = SqlSugarHelper.Db.Insertable(new AccountBookG2()
 | 
			
		||||
                            {
 | 
			
		||||
                                DrugId = oi._OrderDetail.DrugId,
 | 
			
		||||
                                Type = 3,
 | 
			
		||||
                                Type = 2,
 | 
			
		||||
                                Department = oi.DeptName,
 | 
			
		||||
                                OrderNo = oi.OrderNo,
 | 
			
		||||
                                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 = "总结存"
 | 
			
		||||
                            }).ExecuteCommand();
 | 
			
		||||
                            if (iTotalResult <= 0)
 | 
			
		||||
                            {
 | 
			
		||||
                                logger.Info($"未写入总结存数据{oi._OrderDetail.DrugId}-{oi._OrderDetail.Quantity}");
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                                InvoiceNo = oi.OrderNo
 | 
			
		||||
 | 
			
		||||
                        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();
 | 
			
		||||
                            }).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}");
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
                        //}
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!string.IsNullOrEmpty(empChannelStock))
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -735,7 +689,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            logger.Info($"管理员{HomeWindowViewModel.Operator?.Nickname}结束确认手麻单");
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 选择药箱,打开药箱
 | 
			
		||||
| 
						 | 
				
			
			@ -764,7 +717,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)
 | 
			
		||||
| 
						 | 
				
			
			@ -1114,5 +1067,9 @@ 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,7 +8,6 @@ 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;
 | 
			
		||||
| 
						 | 
				
			
			@ -33,14 +32,6 @@ 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;
 | 
			
		||||
| 
						 | 
				
			
			@ -91,14 +82,7 @@ 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); }
 | 
			
		||||
| 
						 | 
				
			
			@ -552,7 +536,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
        IEventAggregator _eventAggregator;
 | 
			
		||||
        //private PortUtil _portUtil;
 | 
			
		||||
 | 
			
		||||
        IDialogService _dialogService;
 | 
			
		||||
        SocketHelper _socketHelper;
 | 
			
		||||
        public CheckSelfOrderWindowViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -585,8 +568,8 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                //string currentDrawerUser = currentList.BelongUser;
 | 
			
		||||
                string currentDrawerUser = HomeWindowViewModel.Operator.UserBarcode;
 | 
			
		||||
                OrderInfoList = SqlSugarHelper.Db.Queryable<OrderInfo>()
 | 
			
		||||
                                .Includes(oi => oi._OrderDetail, od => od.DrugInfo)
 | 
			
		||||
                                .Includes(oi => oi._OrderDetail, od => od.surgicalResidual)
 | 
			
		||||
                                .Includes(oi => oi.OrderDetailList, od => od.DrugInfo)
 | 
			
		||||
                                .Includes(oi => oi.OrderDetailList, 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())
 | 
			
		||||
| 
						 | 
				
			
			@ -596,9 +579,6 @@ 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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -620,10 +600,11 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                if (OrderInfoList != null && OrderInfoList.Count() > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    OrderInfoList.ForEach(oi => oi.ItemIsChecked = true);
 | 
			
		||||
                    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);
 | 
			
		||||
                    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).Select(OrderDetailList => OrderDetailList._OrderDetail).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).SelectMany(OrderDetailList => OrderDetailList.OrderDetailList).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -726,33 +707,33 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                //    }
 | 
			
		||||
                //}
 | 
			
		||||
                //查询当前药师下所有的待确认的单子
 | 
			
		||||
                //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);
 | 
			
		||||
                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);
 | 
			
		||||
 | 
			
		||||
                //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();
 | 
			
		||||
                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();
 | 
			
		||||
 | 
			
		||||
                //}
 | 
			
		||||
                //else
 | 
			
		||||
                //{
 | 
			
		||||
                //    TotalDrugList = null;
 | 
			
		||||
                //}
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    TotalDrugList = null;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                //TotalCount = totalCount;
 | 
			
		||||
                //PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
 | 
			
		||||
                TotalCount = totalCount;
 | 
			
		||||
                PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -788,14 +769,13 @@ 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)
 | 
			
		||||
| 
						 | 
				
			
			@ -826,72 +806,45 @@ 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, 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();
 | 
			
		||||
                    SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
 | 
			
		||||
                }
 | 
			
		||||
                //if (OperationType == 1)
 | 
			
		||||
                //Task.Factory.StartNew(async () =>
 | 
			
		||||
                //{
 | 
			
		||||
                //    //取药箱,将当前药箱号记录到当前登录人身上
 | 
			
		||||
                //    if (!string.IsNullOrEmpty(HomeWindowViewModel.Operator.BoxNumber))
 | 
			
		||||
                //    bool loop = true;
 | 
			
		||||
                //    while (loop)
 | 
			
		||||
                //    {
 | 
			
		||||
                //        HomeWindowViewModel.Operator.BoxNumber += $",{DrawerNo.ToString()}";
 | 
			
		||||
                //        SqlSugarHelper.Db.Updateable(HomeWindowViewModel.Operator).UpdateColumns(it => new { it.BoxNumber }).ExecuteCommand();
 | 
			
		||||
                //        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("药箱已打开,请及时关闭");
 | 
			
		||||
                //        }
 | 
			
		||||
                //    }
 | 
			
		||||
                //    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) =>
 | 
			
		||||
| 
						 | 
				
			
			@ -949,7 +902,84 @@ 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(() =>
 | 
			
		||||
| 
						 | 
				
			
			@ -968,7 +998,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).Select(OrderDetailList => OrderDetailList._OrderDetail).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).SelectMany(OrderDetailList => OrderDetailList.OrderDetailList).GroupBy(item => item.DrugInfo.DrugName).Select(group => new TotalDrug { DrugName = group.Key, TotalCount = group.Sum(item => item.Quantity) }).ToList();
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -987,16 +1017,6 @@ 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();
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,33 +1040,6 @@ 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,
 | 
			
		||||
| 
						 | 
				
			
			@ -1064,6 +1057,171 @@ 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))
 | 
			
		||||
                    //{
 | 
			
		||||
| 
						 | 
				
			
			@ -1124,7 +1282,6 @@ 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++)
 | 
			
		||||
| 
						 | 
				
			
			@ -1138,32 +1295,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                    //DrawerType== 1为公共药箱
 | 
			
		||||
                    if (chl.DrawerType == 1)
 | 
			
		||||
                    {
 | 
			
		||||
                        //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);
 | 
			
		||||
                            //}
 | 
			
		||||
                        //}
 | 
			
		||||
                        SetBtnEnable(chl.DrawerNo, true);
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!string.IsNullOrEmpty(chl.BelongUser) && chl.BelongUser == HomeWindowViewModel.Operator.UserBarcode)
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -1176,39 +1308,98 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnNavigatedTo(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
            logger.Info("进入OnNavigatedTo");
 | 
			
		||||
            //OpenOrderDialog();
 | 
			
		||||
            RequestData();
 | 
			
		||||
            logger.Info("结束RequestData");
 | 
			
		||||
        }
 | 
			
		||||
        public async Task OpenOrderDialog()
 | 
			
		||||
        {
 | 
			
		||||
            // 此处延时1毫秒,等待页面渲染
 | 
			
		||||
            await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
			
		||||
            DialogServiceExtensions.ShowDialogHost(_dialogService, "SelectOperationTypeDialog", null, DoDialogResult, "RootDialog");
 | 
			
		||||
            //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 DoDialogResult(IDialogResult dialogResult)
 | 
			
		||||
        {
 | 
			
		||||
            // 委托   被动执行     被子窗口执行
 | 
			
		||||
            // dialogResult  第一方面可以拿到任意参数   第二方面   可判断关闭状态
 | 
			
		||||
            if (dialogResult.Result == ButtonResult.OK)
 | 
			
		||||
            {
 | 
			
		||||
                //取药箱,只能取在库存的药箱
 | 
			
		||||
                OperationType = 1;
 | 
			
		||||
                GetUseBox();
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                //还药箱,只能点自己取过的药箱
 | 
			
		||||
                OperationType = 0;
 | 
			
		||||
                RequestData();
 | 
			
		||||
            }
 | 
			
		||||
            //MessageBox.Show("返回值:" + dialogResult.Result.ToString());
 | 
			
		||||
        }
 | 
			
		||||
        //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 bool IsNavigationTarget(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
            return true;
 | 
			
		||||
| 
						 | 
				
			
			@ -1219,31 +1410,5 @@ 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();
 | 
			
		||||
        //}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,436 +0,0 @@
 | 
			
		|||
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)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,66 +0,0 @@
 | 
			
		|||
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));
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,73 +0,0 @@
 | 
			
		|||
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);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,99 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.ViewModels
 | 
			
		||||
{
 | 
			
		||||
    internal class EmptyWindowViewModel
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,475 +0,0 @@
 | 
			
		|||
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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,264 +0,0 @@
 | 
			
		|||
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,7 +25,6 @@ using DM_Weight.msg;
 | 
			
		|||
using DM_Weight.HIKVISION;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using MaterialDesignThemes.Wpf;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.ViewModels
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -269,7 +268,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                if (!_socketHelper.OpenStatus)
 | 
			
		||||
                {
 | 
			
		||||
                    SetProperty(ref _selectedMenu, value);
 | 
			
		||||
                    SelectionMethod();//在此处调用而不是通过前台的Triggers事件调用为了规避未关闭药箱时多次点击菜单不起作用
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -281,11 +279,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;
 | 
			
		||||
| 
						 | 
				
			
			@ -317,7 +315,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                logger.Info($"用户【{Operator?.Nickname}】退出登录");
 | 
			
		||||
                Operator = null;
 | 
			
		||||
                Reviewer = null;
 | 
			
		||||
                _regionManager.RequestNavigate("ContentRegion", "EmptyWindow");
 | 
			
		||||
                _regionManager.RequestNavigate("MainRegion", "LoginWindow");
 | 
			
		||||
                //}
 | 
			
		||||
                //else
 | 
			
		||||
| 
						 | 
				
			
			@ -572,7 +569,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                Reviewer = null;
 | 
			
		||||
                //Application.Current.Dispatcher.Invoke(() =>
 | 
			
		||||
                //{
 | 
			
		||||
                _regionManager.RequestNavigate("ContentRegion", "EmptyWindow");
 | 
			
		||||
                _regionManager.RequestNavigate("MainRegion", "LoginWindow");
 | 
			
		||||
                //});
 | 
			
		||||
                AlertMsg alertMsg = new AlertMsg
 | 
			
		||||
| 
						 | 
				
			
			@ -589,7 +585,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)
 | 
			
		||||
| 
						 | 
				
			
			@ -612,11 +608,6 @@ 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,9 +377,6 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
			
		|||
        void Exit()
 | 
			
		||||
        {
 | 
			
		||||
            //_chkFunction.HIKLoginOut();
 | 
			
		||||
            //清录屏进程
 | 
			
		||||
            _eventAggregator.GetEvent<PrintScreenEvent>().Publish(2);
 | 
			
		||||
            _socketHelper.SocketDisConnect();
 | 
			
		||||
            Process.GetCurrentProcess().Kill();
 | 
			
		||||
            Environment.Exit(0);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -467,8 +464,6 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
			
		|||
        {
 | 
			
		||||
            //FingerMsg = !_fingerprintUtil.bIsConnected;
 | 
			
		||||
            //_eventAggregator.GetEvent<FingerprintEvent>().Subscribe(LoginEvent);
 | 
			
		||||
            //结束录屏
 | 
			
		||||
            _eventAggregator.GetEvent<PrintScreenEvent>().Publish(0);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -482,10 +477,6 @@ _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,39 +1,30 @@
 | 
			
		|||
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 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;
 | 
			
		||||
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;
 | 
			
		||||
 | 
			
		||||
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));
 | 
			
		||||
| 
						 | 
				
			
			@ -81,14 +72,11 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
 | 
			
		||||
        SocketHelper _socketHelper;
 | 
			
		||||
        private PortUtil _portUtil;
 | 
			
		||||
        FFmpegHelper fmpegHelper;
 | 
			
		||||
        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)
 | 
			
		||||
        {
 | 
			
		||||
            //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;
 | 
			
		||||
| 
						 | 
				
			
			@ -96,15 +84,10 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
 | 
			
		||||
            //System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
 | 
			
		||||
            //{
 | 
			
		||||
            if (App.DbConnectionFail)
 | 
			
		||||
            {
 | 
			
		||||
                _regionManager.RequestNavigate("MainRegion", "EmergencyWindow");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                _container.RegisterType<object, LoginWindow>("LoginWindow");
 | 
			
		||||
                _regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            _container.RegisterType<object, LoginWindow>("LoginWindow");
 | 
			
		||||
            _regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
 | 
			
		||||
 | 
			
		||||
            //}));
 | 
			
		||||
            _socketHelper = socketHelper;
 | 
			
		||||
            new PromiseUtil<int>().taskAsyncLoop(1200000, 0, async (options, next, stop) =>
 | 
			
		||||
| 
						 | 
				
			
			@ -137,7 +120,6 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                    next();
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            this.fmpegHelper= fmpegHelper;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void doMyPrismEvent2(AlertMsg msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -159,100 +141,6 @@ 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}");
 | 
			
		||||
        //}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,465 +0,0 @@
 | 
			
		|||
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,13 +220,17 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                PremissionPath = "AdditionWindow",
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            //管理做麻醉师核对处方的操作
 | 
			
		||||
            //PremissionDm adminCheck = new PremissionDm
 | 
			
		||||
            //PremissionDm quyao1 = new PremissionDm
 | 
			
		||||
            //{
 | 
			
		||||
            //    Id = 13,
 | 
			
		||||
            //    PremissionName = "管理员操作手术间",
 | 
			
		||||
            //    PremissionPath = "CheckOrderWindow",
 | 
			
		||||
            //    //PremissionPath = "CheckSelfOrderForAdminViewModel",
 | 
			
		||||
            //    Id = 11,
 | 
			
		||||
            //    PremissionName = "交接柜补药",
 | 
			
		||||
            //    PremissionPath = "AddToJiaoJieWindow",
 | 
			
		||||
            //};
 | 
			
		||||
            //PremissionDm quyao2 = new PremissionDm
 | 
			
		||||
            //{
 | 
			
		||||
            //    Id = 12,
 | 
			
		||||
            //    PremissionName = "调拨出库",
 | 
			
		||||
            //    PremissionPath = "InvoiceOutWindow",
 | 
			
		||||
            //};
 | 
			
		||||
            PremissionDm quyao3 = new PremissionDm
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -266,7 +270,6 @@ 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);
 | 
			
		||||
| 
						 | 
				
			
			@ -517,24 +520,6 @@ 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);
 | 
			
		||||
| 
						 | 
				
			
			@ -542,9 +527,6 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,51 +0,0 @@
 | 
			
		|||
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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,102 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,51 +0,0 @@
 | 
			
		|||
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,21 +10,6 @@
 | 
			
		|||
             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}">
 | 
			
		||||
| 
						 | 
				
			
			@ -78,8 +63,6 @@
 | 
			
		|||
                    Margin="3 0 3 0"
 | 
			
		||||
                    VerticalAlignment="Center"
 | 
			
		||||
                    Command="{Binding OpenBoxCommand}"
 | 
			
		||||
                    materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding OpenStatusBtn}"
 | 
			
		||||
                    materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding OpenStatusBtn}"
 | 
			
		||||
                    Style="{StaticResource MaterialDesignOutlinedLightButton}"
 | 
			
		||||
                    Content="开手术间" />
 | 
			
		||||
                <Button
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +84,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
        </Grid>
 | 
			
		||||
        <!--<DataGrid
 | 
			
		||||
        <DataGrid
 | 
			
		||||
                Grid.Row="1"
 | 
			
		||||
                materialDesign:DataGridAssist.ColumnHeaderPadding="15"
 | 
			
		||||
                ItemsSource="{Binding Source={StaticResource GroupedDataList}}"
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +102,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" />
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +110,7 @@
 | 
			
		|||
                        </Trigger>
 | 
			
		||||
                    </Style.Triggers>
 | 
			
		||||
                    <Setter Property="HorizontalAlignment" Value="Center"/>
 | 
			
		||||
                </Style>--><!--
 | 
			
		||||
                </Style>-->
 | 
			
		||||
                <Style TargetType="DataGridCell">
 | 
			
		||||
                    <Setter Property="Template">
 | 
			
		||||
                        <Setter.Value>
 | 
			
		||||
| 
						 | 
				
			
			@ -174,89 +157,13 @@
 | 
			
		|||
            <DataGrid.Columns>
 | 
			
		||||
                <DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
 | 
			
		||||
                <DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
 | 
			
		||||
                <DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
 | 
			
		||||
                <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 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 ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
 | 
			
		||||
            </DataGrid.Columns>
 | 
			
		||||
        </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>
 | 
			
		||||
        </DataGrid>
 | 
			
		||||
    </Grid>
 | 
			
		||||
</UserControl>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,6 @@
 | 
			
		|||
            <ColumnDefinition Width="15*" />
 | 
			
		||||
            <ColumnDefinition />
 | 
			
		||||
        </Grid.ColumnDefinitions>
 | 
			
		||||
 | 
			
		||||
        <!--<Grid Grid.Row="0" Margin="0 4 0 4" Grid.ColumnSpan="3" >
 | 
			
		||||
            <Grid.ColumnDefinitions>
 | 
			
		||||
                <ColumnDefinition />
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +141,7 @@
 | 
			
		|||
        <Grid Grid.Column="1" Margin="6">
 | 
			
		||||
            <Grid.RowDefinitions>
 | 
			
		||||
                <RowDefinition Height="Auto" />
 | 
			
		||||
                <RowDefinition />
 | 
			
		||||
                <RowDefinition Height="550px" />
 | 
			
		||||
            </Grid.RowDefinitions>
 | 
			
		||||
            <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
 | 
			
		||||
                <ComboBox
 | 
			
		||||
| 
						 | 
				
			
			@ -154,17 +153,10 @@
 | 
			
		|||
                    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
 | 
			
		||||
| 
						 | 
				
			
			@ -201,8 +193,8 @@
 | 
			
		|||
            </StackPanel>
 | 
			
		||||
            <ListView  Grid.ColumnSpan="2"
 | 
			
		||||
                Padding="0 6 0 0" Grid.Row="1"
 | 
			
		||||
                ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"                
 | 
			
		||||
                SelectedItem="{Binding _ChannelList}"
 | 
			
		||||
                ItemsSource="{Binding Channels, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"                
 | 
			
		||||
                SelectedItem="{Binding Channel}"
 | 
			
		||||
                materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
 | 
			
		||||
                materialDesign:DataGridAssist.ColumnHeaderPadding="10"
 | 
			
		||||
                materialDesign:ListViewAssist.ListViewItemPadding="13">
 | 
			
		||||
| 
						 | 
				
			
			@ -212,40 +204,22 @@
 | 
			
		|||
                    </Style>
 | 
			
		||||
                </ListView.Resources>
 | 
			
		||||
                <ListView.View>
 | 
			
		||||
                    <GridView  ColumnHeaderContainerStyle="{StaticResource st}">
 | 
			
		||||
                        <GridViewColumn Width="180"
 | 
			
		||||
                        DisplayMemberBinding="{Binding Drug.DrugName}"
 | 
			
		||||
                    <GridView>
 | 
			
		||||
                        <GridViewColumn Width="200"
 | 
			
		||||
                        DisplayMemberBinding="{Binding DrugInfo.DrugName}"
 | 
			
		||||
                        Header="药品名称"/>
 | 
			
		||||
                        <GridViewColumn Width="150"
 | 
			
		||||
                        DisplayMemberBinding="{Binding Drug.Manufactory}"
 | 
			
		||||
                        <GridViewColumn Width="200"
 | 
			
		||||
                        DisplayMemberBinding="{Binding DrugInfo.Manufactory}"
 | 
			
		||||
                        Header="厂家"/>
 | 
			
		||||
                        <GridViewColumn Width="100"
 | 
			
		||||
                        DisplayMemberBinding="{Binding Drug.DrugSpec}"
 | 
			
		||||
                        <GridViewColumn Width="200"
 | 
			
		||||
                        DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"
 | 
			
		||||
                        Header="规格"/>
 | 
			
		||||
                        <GridViewColumn Width="50"
 | 
			
		||||
                        <GridViewColumn Width="100"
 | 
			
		||||
                        DisplayMemberBinding="{Binding BaseQuantity}"
 | 
			
		||||
                        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>-->
 | 
			
		||||
                        Header="药品基数"/>
 | 
			
		||||
                        <GridViewColumn Width="100"
 | 
			
		||||
                        DisplayMemberBinding="{Binding Quantity}"
 | 
			
		||||
                        Header="药品库存"/>
 | 
			
		||||
 | 
			
		||||
                </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="130"
 | 
			
		||||
                        <GridViewColumn Width="80"
 | 
			
		||||
                        DisplayMemberBinding="{Binding  _OrderDetail.SetManuNo}"
 | 
			
		||||
                        Header="药品批次"/>
 | 
			
		||||
                        <GridViewColumn Width="30"
 | 
			
		||||
                        <GridViewColumn Width="42"
 | 
			
		||||
                        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.DisposalTime}"
 | 
			
		||||
                        DisplayMemberBinding="{Binding _OrderDetail.surgicalResidual.CreateTime}"
 | 
			
		||||
                        Header="余液处置时间"/>
 | 
			
		||||
 | 
			
		||||
                            <!--<GridViewColumn Width="180" Header="药品名称">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,233 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,232 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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,6 +15,7 @@
 | 
			
		|||
        <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">
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +40,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" />
 | 
			
		||||
| 
						 | 
				
			
			@ -49,13 +50,12 @@
 | 
			
		|||
                                <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,9 +110,9 @@
 | 
			
		|||
            </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*" />
 | 
			
		||||
                    <ColumnDefinition Width="2*" />
 | 
			
		||||
                    <ColumnDefinition Width="8*" />
 | 
			
		||||
                    <ColumnDefinition Width="5*" />
 | 
			
		||||
                </Grid.ColumnDefinitions>
 | 
			
		||||
                <DatePicker
 | 
			
		||||
                Grid.Column="0"
 | 
			
		||||
| 
						 | 
				
			
			@ -122,14 +122,14 @@
 | 
			
		|||
                materialDesign:HintAssist.Hint="开单日期"
 | 
			
		||||
                Style="{StaticResource MaterialDesignOutlinedDatePicker}" />
 | 
			
		||||
 | 
			
		||||
                <StackPanel Grid.Column="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
 | 
			
		||||
                <StackPanel Grid.Column="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 Margin="0 0 6 0" VerticalAlignment="Center" Command="{Binding ReturnBoxCommand}" Content="还药箱" Visibility="{Binding OperationType,Converter={StaticResource TakeReturnConverter},ConverterParameter=ReturnBox}"  Style="{StaticResource MaterialDesignOutlinedLightButton}"> </Button>-->
 | 
			
		||||
                    Style="{StaticResource MaterialDesignOutlinedLightButton}"/>-->
 | 
			
		||||
 | 
			
		||||
                    <Button
 | 
			
		||||
                        Margin="0 0 6 0"
 | 
			
		||||
                        VerticalAlignment="Center" Command="{Binding CheckOrder}"
 | 
			
		||||
| 
						 | 
				
			
			@ -148,9 +148,6 @@
 | 
			
		|||
                        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">-->
 | 
			
		||||
| 
						 | 
				
			
			@ -187,26 +184,23 @@
 | 
			
		|||
                        <GridViewColumn  Width="150"
 | 
			
		||||
                        DisplayMemberBinding="{Binding OrderNo}"
 | 
			
		||||
                        Header="单号"/>
 | 
			
		||||
                        <GridViewColumn Width="180"
 | 
			
		||||
                        <!--<GridViewColumn Width="240"
 | 
			
		||||
                        DisplayMemberBinding="{Binding DeptName}"
 | 
			
		||||
                        Header="科室"/>-->
 | 
			
		||||
                        <!--<GridViewColumn Width="100"
 | 
			
		||||
                        DisplayMemberBinding="{Binding _OrderDetail.DrugInfo.DrugName}"
 | 
			
		||||
                        Header="药品名称"/>
 | 
			
		||||
                        <GridViewColumn Width="130"
 | 
			
		||||
                        <GridViewColumn Width="80"
 | 
			
		||||
                        DisplayMemberBinding="{Binding  _OrderDetail.SetManuNo}"
 | 
			
		||||
                        Header="药品批次"/>
 | 
			
		||||
                        <GridViewColumn Width="80"
 | 
			
		||||
                        DisplayMemberBinding="{Binding  _OrderDetail.SetEffDate}"
 | 
			
		||||
                        Header="药品效期"/>
 | 
			
		||||
                        <GridViewColumn Width="30"
 | 
			
		||||
                        DisplayMemberBinding="{Binding _OrderDetail.Quantity}"
 | 
			
		||||
                        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="余液处置时间"/>
 | 
			
		||||
                        Header="数量"/>-->
 | 
			
		||||
 | 
			
		||||
                        <!--<GridViewColumn Width="180" Header="药品名称">
 | 
			
		||||
                        <GridViewColumn Width="180" Header="药品名称">
 | 
			
		||||
                            <GridViewColumn.CellTemplate>
 | 
			
		||||
                                <DataTemplate>
 | 
			
		||||
                                    <ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -220,13 +214,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>
 | 
			
		||||
| 
						 | 
				
			
			@ -255,7 +249,7 @@
 | 
			
		|||
                                <GridViewColumn.CellTemplate>
 | 
			
		||||
                                    <DataTemplate>
 | 
			
		||||
                                        <ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="surgicalResidual.ResidualDoseInfo" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
			
		||||
                                    </DataTemplate>yjn7
 | 
			
		||||
                                    </DataTemplate>
 | 
			
		||||
                                </GridViewColumn.CellTemplate>
 | 
			
		||||
                            </GridViewColumn>
 | 
			
		||||
                        <GridViewColumn Width="160">
 | 
			
		||||
| 
						 | 
				
			
			@ -269,7 +263,7 @@
 | 
			
		|||
                                    <ListBox ItemsSource="{Binding OrderDetailList}" DisplayMemberPath="surgicalResidual.DisposalTime" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
			
		||||
                                </DataTemplate>
 | 
			
		||||
                            </GridViewColumn.CellTemplate>
 | 
			
		||||
                        </GridViewColumn>-->
 | 
			
		||||
                        </GridViewColumn>
 | 
			
		||||
                    </GridView>
 | 
			
		||||
                </ListView.View>
 | 
			
		||||
            </ListView>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,232 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,204 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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="130"
 | 
			
		||||
                        <GridViewColumn Width="80"
 | 
			
		||||
                        DisplayMemberBinding="{Binding ManuNo}"
 | 
			
		||||
                        Header="批次"/>
 | 
			
		||||
                        <GridViewColumn Width="80"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,48 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,36 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,235 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,185 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,40 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,110 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,151 +0,0 @@
 | 
			
		|||
<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
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 SelectionMode="Extended" Name="ListBoxName" Grid.Column="1"  SelectedItem="{Binding SelectedMenu}" ItemsSource="{Binding PremissionDmList}"  HorizontalAlignment="Right" Cursor="Hand">
 | 
			
		||||
                <!--<i:Interaction.Triggers>
 | 
			
		||||
            <ListBox 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 Height="Auto" />
 | 
			
		||||
            <RowDefinition />
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
        </Grid.RowDefinitions>
 | 
			
		||||
        <Grid Margin="0 6 0 6" Grid.Row="0">
 | 
			
		||||
| 
						 | 
				
			
			@ -87,19 +87,17 @@
 | 
			
		|||
                    <GridViewColumn  Width="100"
 | 
			
		||||
                        DisplayMemberBinding="{Binding DrawerNo}"
 | 
			
		||||
                        Header="手术间药箱号"/>
 | 
			
		||||
                    <GridViewColumn  Width="580"
 | 
			
		||||
                    <GridViewColumn  Width="180"
 | 
			
		||||
                        DisplayMemberBinding="{Binding InvoiceId}"
 | 
			
		||||
                        Header="操作内容"/>
 | 
			
		||||
                </GridView>
 | 
			
		||||
            </ListView.View>
 | 
			
		||||
        </ListView>
 | 
			
		||||
        <DockPanel Grid.Row="2">
 | 
			
		||||
            <pagination:Pagination 
 | 
			
		||||
        <pagination:Pagination Grid.Row="2"
 | 
			
		||||
                                   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,10 +1,4 @@
 | 
			
		|||
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.Events;
 | 
			
		||||
using Prism.Ioc;
 | 
			
		||||
using Prism.Regions;
 | 
			
		||||
using System;
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +16,11 @@ 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
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -32,12 +31,10 @@ 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(() =>
 | 
			
		||||
| 
						 | 
				
			
			@ -49,10 +46,6 @@ 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  Height="Auto" />
 | 
			
		||||
            <RowDefinition />
 | 
			
		||||
            <RowDefinition Height="Auto" />
 | 
			
		||||
        </Grid.RowDefinitions>
 | 
			
		||||
        <Grid Margin="0 6 0 6" Grid.Row="0">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +0,0 @@
 | 
			
		|||
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>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,79 +0,0 @@
 | 
			
		|||
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