湘潭-手术麻醉科-8层都是物理隔断,其中一层需要冷藏功能
This commit is contained in:
parent
65cd5f2460
commit
46c767b3d0
|
@ -0,0 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,75 @@
|
|||
using Microsoft.Xaml.Behaviors;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace DM_Weight.Commons.ValidatRules
|
||||
{
|
||||
public class ValidationErrorMappingBehavior : Behavior<FrameworkElement>
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public static readonly DependencyProperty ValidationErrorsProperty =
|
||||
DependencyProperty.Register("ValidationErrors", typeof(ObservableCollection<ValidationError>),
|
||||
typeof(ValidationErrorMappingBehavior), new PropertyMetadata(new ObservableCollection<ValidationError>()));
|
||||
|
||||
public ObservableCollection<ValidationError> ValidationErrors
|
||||
{
|
||||
get { return (ObservableCollection<ValidationError>)this.GetValue(ValidationErrorsProperty); }
|
||||
set { this.SetValue(ValidationErrorsProperty, value); }
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty HasValidationErrorProperty = DependencyProperty.Register("HasValidationError",
|
||||
typeof(bool), typeof(ValidationErrorMappingBehavior), new PropertyMetadata(false));
|
||||
|
||||
public bool HasValidationError
|
||||
{
|
||||
get { return (bool)this.GetValue(HasValidationErrorProperty); }
|
||||
set { this.SetValue(HasValidationErrorProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public ValidationErrorMappingBehavior()
|
||||
: base()
|
||||
{ }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Events & Event Methods
|
||||
|
||||
private void Validation_Error(object sender, ValidationErrorEventArgs e)
|
||||
{
|
||||
if (e.Action == ValidationErrorEventAction.Added)
|
||||
{
|
||||
this.ValidationErrors.Add(e.Error);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ValidationErrors.Remove(e.Error);
|
||||
}
|
||||
|
||||
this.HasValidationError = this.ValidationErrors.Count > 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Support Methods
|
||||
|
||||
protected override void OnAttached()
|
||||
{
|
||||
base.OnAttached();
|
||||
Validation.AddErrorHandler(this.AssociatedObject, Validation_Error);
|
||||
}
|
||||
|
||||
protected override void OnDetaching()
|
||||
{
|
||||
base.OnDetaching();
|
||||
Validation.RemoveErrorHandler(this.AssociatedObject, Validation_Error);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -5,6 +5,8 @@ VisualStudioVersion = 17.3.32922.545
|
|||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DM_Weight", "DM_Weight\DM_Weight.csproj", "{439FA76B-F874-40DB-BAF2-E3647CD55B10}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DM_Weight.Commons", "DM_Weight.Commons\DM_Weight.Commons.csproj", "{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -27,6 +29,18 @@ Global
|
|||
{439FA76B-F874-40DB-BAF2-E3647CD55B10}.Release|x64.Build.0 = Release|x64
|
||||
{439FA76B-F874-40DB-BAF2-E3647CD55B10}.Release|x86.ActiveCfg = Debug|x86
|
||||
{439FA76B-F874-40DB-BAF2-E3647CD55B10}.Release|x86.Build.0 = Debug|x86
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Debug|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
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7F9FA18B-5C28-476E-97D4-B5504B8DEB9B}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -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=hkcdb;userid=root;password=root" />
|
||||
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan;userid=root;password=root" />
|
||||
</connectionStrings>
|
||||
<!--<runtime>
|
||||
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
||||
|
@ -12,9 +12,22 @@
|
|||
<appSettings>
|
||||
|
||||
<!-- 设备id -->
|
||||
<add key="machineId" value="DM1" />
|
||||
<add key="machineId" value="DM3" />
|
||||
<!--请领药库-->
|
||||
<add key="colloctedId" value="住院,DM2,门诊,DM22" />
|
||||
<!-- 供应单位 -->
|
||||
<add key="supplierDept" value="药库" />
|
||||
<!-- 领用部门 -->
|
||||
<add key="receiveDept" value="麻精药房" />
|
||||
<!--部门-->
|
||||
<add key="department" value="急诊药房"/>
|
||||
|
||||
<!--登录人 0全部用户可登录;1仅当班人、审核人可登录-->
|
||||
<add key="loginUser" value="0"/>
|
||||
|
||||
|
||||
<!--2023/7/13 药房代码 有则写无则空 -->
|
||||
<add key="storage" value="" />
|
||||
<add key="storage" value="159" />
|
||||
<!-- 登录模式 1单人登录2双人登录 -->
|
||||
<add key="loginMode" value="1" />
|
||||
<!-- 登录顺序,指定先登录的人的名称有效值,只有在登录模式等于2时才会生效; 发药人:【operator】审核人:【reviewer】 -->
|
||||
|
@ -24,7 +37,10 @@
|
|||
<!-- 自动退出时间,单位秒,为0时不自动退出 -->
|
||||
<add key="autoExit" value="0"/>
|
||||
|
||||
<add key="gridConnectionString" value="MYSQL; Database=hkcdb; Password=root; Port=3306; Server=127.0.0.1; User=root;"/>
|
||||
<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
|
||||
<add key="stopRecord" value="180"/>
|
||||
|
||||
<add key="gridConnectionString" value="MYSQL; Database=xiangtan; Password=root; Port=3306; Server=127.0.0.1; User=root;"/>
|
||||
<!-- 查询处方是orderNo还是orderGroupNo -->
|
||||
<add key="OrderNoName" value="orderNo" />
|
||||
<!-- 后门耗材板地址 没有则填写0-->
|
||||
|
@ -41,6 +57,22 @@
|
|||
<add key="CanBusPortPath" value="COM3" />
|
||||
<!-- 条码枪串口的串口号 -->
|
||||
<add key="ScanCodePortPath" value="COM8" />
|
||||
<!-- 冰箱的串口号 -->
|
||||
<add key="FridgePortPath" value="COM7" />
|
||||
|
||||
<!--冰箱抽屉温度区间-->
|
||||
<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打开-->
|
||||
<add key="AlarmState" value="0"/>
|
||||
|
||||
|
||||
|
||||
<!-- 抽屉串口的串口号 --><!--
|
||||
<add key="DrawerPortPath" value="COM11" />
|
||||
--><!-- can总线串口的串口号 --><!--
|
||||
|
|
|
@ -162,6 +162,17 @@ namespace DM_Weight
|
|||
containerRegistry.RegisterForNavigation<SelfAddDialog, SelfAddDialogViewModel>();
|
||||
//多批次抽屉加药
|
||||
containerRegistry.RegisterForNavigation<AddDrugControl, AddDrugControlViewModel>();
|
||||
//药品请领
|
||||
containerRegistry.RegisterForNavigation<CollectDrugWindow, CollectDrugWindowViewModel>();
|
||||
// 药品请领模态框
|
||||
containerRegistry.RegisterDialog<CollectDrugDialog>();
|
||||
containerRegistry.RegisterForNavigation<CollectDrugDialog, CollectDrugDialogViewModel>();
|
||||
|
||||
//请领列表
|
||||
containerRegistry.RegisterForNavigation<ApplyListWindow, ApplyListWindowViewModel>();
|
||||
// 请领详情模态框
|
||||
containerRegistry.RegisterDialog<CollectDrugDialog>();
|
||||
containerRegistry.RegisterForNavigation<CollectDrugDialog, CollectDrugDialogViewModel>();
|
||||
#endregion
|
||||
|
||||
#region 还药
|
||||
|
@ -181,6 +192,9 @@ namespace DM_Weight
|
|||
// 归还空瓶模态框
|
||||
containerRegistry.RegisterDialog<ReturnEmptyDialog>();
|
||||
containerRegistry.RegisterForNavigation<ReturnEmptyDialog, ReturnEmptyDialogViewModel>();
|
||||
// 空瓶销毁模态框
|
||||
containerRegistry.RegisterDialog<DestoryEmptyDialog>();
|
||||
containerRegistry.RegisterForNavigation<DestoryEmptyDialog, DestoryEmptyDialogViewModel>();
|
||||
#endregion
|
||||
|
||||
#region 库存管理
|
||||
|
@ -196,6 +210,13 @@ namespace DM_Weight
|
|||
// 药品列表页面
|
||||
containerRegistry.RegisterForNavigation<DrugListWindow, DrugListWindowViewModel>();
|
||||
|
||||
//交接班记录
|
||||
containerRegistry.RegisterForNavigation<ChangeShiftsListWindow, ChangeShiftsListWindowViewModel>();
|
||||
//交接班弹窗
|
||||
containerRegistry.RegisterDialog<ChangeShiftsDialog>();
|
||||
containerRegistry.RegisterForNavigation<ChangeShiftsDialog, ChangeShiftsDialogViewModel>();
|
||||
|
||||
containerRegistry.RegisterForNavigation<AccountWindow,AccountWindowViewModel>();
|
||||
#endregion
|
||||
|
||||
#region 系统设置
|
||||
|
@ -210,6 +231,10 @@ namespace DM_Weight
|
|||
containerRegistry.RegisterForNavigation<SettingWindow, SettingWindowViewModel>();
|
||||
// 调试页面
|
||||
containerRegistry.RegisterForNavigation<DebugWindow, DebugWindowViewModel>();
|
||||
//主设置页面
|
||||
containerRegistry.RegisterForNavigation<SettingMainWindow, SettingMainWindowViewModel>();
|
||||
//冰箱抽屉设置页面
|
||||
containerRegistry.RegisterForNavigation<FridgeWindow, FridgeWindowViewModel>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Common
|
||||
{
|
||||
public class CRC16MODBUS
|
||||
{
|
||||
/// Name: CRC-16/MODBUS x16+x15+x2+1
|
||||
/// Poly: 0x8005
|
||||
/// Init: 0xFFFF
|
||||
/// Refin: true
|
||||
/// Refout: true
|
||||
/// Xorout: 0x0000
|
||||
///******************************添加数据CRC16MODBUS校验位*******************************************
|
||||
public static byte[] CrcModBus(byte[] buffer, int start = 0, int len = 0)
|
||||
{
|
||||
if (buffer == null || buffer.Length == 0) return null;
|
||||
if (start < 0) return null;
|
||||
if (len == 0) len = buffer.Length - start;
|
||||
int length = start + len;
|
||||
if (length > buffer.Length) return null;
|
||||
ushort crc = 0xFFFF;// Initial value
|
||||
for (int i = start; i < length; i++)
|
||||
{
|
||||
crc ^= buffer[i];
|
||||
for (int j = 0; j < 8; j++)
|
||||
{
|
||||
if ((crc & 1) > 0)
|
||||
crc = (ushort)((crc >> 1) ^ 0xA001);// 0xA001 = reverse 0x8005
|
||||
else
|
||||
crc = (ushort)(crc >> 1);
|
||||
}
|
||||
}
|
||||
byte[] ret = BitConverter.GetBytes(crc);
|
||||
//Array.Reverse(ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
|
||||
namespace DM_Weight.Common
|
||||
{
|
||||
public class CommonClass
|
||||
{
|
||||
//手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
|
||||
public static string ReadAppSetting(string key)
|
||||
{
|
||||
string xPath = "/configuration/appSettings//add[@key='" + key + "']";
|
||||
XmlDocument doc = new XmlDocument();
|
||||
string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
|
||||
doc.Load(exeFileName + ".dll.config");
|
||||
XmlNode node = doc.SelectSingleNode(xPath);
|
||||
return node.Attributes["value"].Value;
|
||||
}
|
||||
public static void SaveAppSetting(string key,string value)
|
||||
{
|
||||
Configuration _configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
|
||||
_configuration.AppSettings.Settings[key].Value = value;
|
||||
_configuration.Save();
|
||||
ConfigurationManager.RefreshSection(key);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Common
|
||||
{
|
||||
public class PrismManager
|
||||
{
|
||||
///// <summary>
|
||||
///// 主页面区域,主要呈现登录页及登录后页面
|
||||
///// </summary>
|
||||
//public static readonly string MainViewRegionName = "MainContent";
|
||||
/// <summary>
|
||||
/// 设置菜单页面跳转,主要呈现设置下子菜单
|
||||
/// </summary>
|
||||
public static readonly string SettingViewRegionName = "SettingViewContent";
|
||||
///// <summary>
|
||||
///// 主页面各菜单页
|
||||
///// </summary>
|
||||
//public static readonly string HomeViewRegionName = "HomeViewContent";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DM_Weight.Common
|
||||
{
|
||||
//设置冰箱温度规则
|
||||
public class TemperatureRangeRule : ValidationRule
|
||||
{
|
||||
//冰箱温度设置区间为取自配置文件(2~8度)
|
||||
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
|
||||
{
|
||||
bool flag = false;
|
||||
string tips = string.Empty;
|
||||
try
|
||||
{
|
||||
string[] rang = value.ToString().Split('-');
|
||||
if (rang.Length >= 2)
|
||||
{
|
||||
bool bSRange = int.TryParse(rang[0], out int sRange);
|
||||
bool bERange = int.TryParse(rang[1], out int eRange);
|
||||
if (bSRange && bERange)
|
||||
{
|
||||
if (sRange < 2 || eRange > 8)
|
||||
{
|
||||
tips = "温度区间设置2-8度,请检查输入";
|
||||
return new ValidationResult(flag, tips);
|
||||
}
|
||||
else
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tips = "请输入正确的数值";
|
||||
return new ValidationResult(flag, tips);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
tips = "请输入正确的数值";
|
||||
return new ValidationResult(flag, tips);
|
||||
}
|
||||
return new ValidationResult(flag, tips);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tips = $"校验异常{ex.ToString()}";
|
||||
return new ValidationResult(flag, tips);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DM_Weight.Converter
|
||||
{
|
||||
/// <summary>
|
||||
/// 请领列表页面状态转换
|
||||
/// </summary>
|
||||
public class ApplyListConverter : IValueConverter
|
||||
{
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
//用户名
|
||||
if (parameter.ToString().Equals("UserId"))
|
||||
{
|
||||
int val = int.Parse(value.ToString());
|
||||
if (val <= 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
string userName = SqlSugarHelper.Db.Queryable<UserList>().Where(ul => ul.Id == val).Select(ul => new { ul.Nickname }).First().Nickname;
|
||||
return userName;
|
||||
}
|
||||
//请领单状态
|
||||
if (parameter.ToString().Equals("PleaseStatus"))
|
||||
{
|
||||
int val = int.Parse(value.ToString());
|
||||
string retStr = "状态:";
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
return retStr + "已创建";
|
||||
case 1:
|
||||
return retStr + "审核通过";
|
||||
case 2:
|
||||
return retStr + "已出库";
|
||||
case 3:
|
||||
return retStr + "已入库";
|
||||
default:
|
||||
return retStr + "状态未知";
|
||||
}
|
||||
}
|
||||
//处方状态
|
||||
if (parameter.ToString().Equals("OrderStatus"))
|
||||
{
|
||||
int val = int.Parse(value.ToString());
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
return "已申请";
|
||||
case 1:
|
||||
return "已接收";
|
||||
case 2:
|
||||
return "已退回";
|
||||
default:
|
||||
return "状态未知";
|
||||
}
|
||||
}
|
||||
//请领药库
|
||||
if (parameter.ToString().Equals("machineId"))
|
||||
{
|
||||
string val = value.ToString();
|
||||
string[] colloctedId = ConfigurationManager.AppSettings["colloctedId"].Split(',');
|
||||
if (Array.IndexOf(colloctedId, val)>0)
|
||||
{
|
||||
return colloctedId[Array.IndexOf(colloctedId, val) - 1].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return "未知";
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DM_Weight.Converter
|
||||
{
|
||||
public class ForeColorConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if ((bool)value)
|
||||
{
|
||||
return "#3ECFED";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#808080";
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DM_Weight.Converter
|
||||
{
|
||||
public class ShiftsStateConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value.ToString().Equals("1"))
|
||||
{
|
||||
return "已交班";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "未交班";
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -64,7 +64,7 @@ namespace DM_Weight.Converter
|
|||
//取消
|
||||
if (parameter.ToString().Equals("CancelBtn"))
|
||||
{
|
||||
if (status > 0)
|
||||
if (status ==3)
|
||||
{
|
||||
return Visibility.Visible;
|
||||
}
|
||||
|
|
|
@ -97,6 +97,9 @@
|
|||
<None Update="ReportTemp\account_book_temp.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\changeShifts_temp.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\machine_log_check.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
@ -109,6 +112,12 @@
|
|||
<None Update="ReportTemp\machine_log_take.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\orderUse_template.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\ReturnEmptyDistory_template.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="ReportTemp\stock_template.grf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
@ -124,4 +133,8 @@
|
|||
<Folder Include="HIKVISION\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DM_Weight.Commons\DM_Weight.Commons.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -9,6 +9,7 @@ using System.Windows.Controls;
|
|||
using System.Windows;
|
||||
using DM_Weight.Port;
|
||||
using log4net;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DM_Weight.HIKVISION
|
||||
{
|
||||
|
@ -24,6 +25,7 @@ namespace DM_Weight.HIKVISION
|
|||
|
||||
public CHCNetSDK.NET_DVR_USER_LOGIN_INFO struLogInfo;
|
||||
public CHCNetSDK.NET_DVR_DEVICEINFO_V40 DeviceInfo;
|
||||
public CHCNetSDK.NET_DVR_TIME m_struTimeCfg;
|
||||
|
||||
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
@ -155,7 +157,19 @@ namespace DM_Weight.HIKVISION
|
|||
logger.Info($"录像机NET_DVR_StopDVRRecord接口返回{isStop}");
|
||||
return isStop;
|
||||
}
|
||||
public void HIK_DVR_TIME()
|
||||
{
|
||||
UInt32 dwReturn = 0;
|
||||
Int32 nSize = Marshal.SizeOf(m_struTimeCfg);
|
||||
IntPtr ptrTimeCfg = Marshal.AllocHGlobal(nSize);
|
||||
Marshal.StructureToPtr(m_struTimeCfg, ptrTimeCfg, false);
|
||||
if (CHCNetSDK.NET_DVR_GetDVRConfig(HKUserId, CHCNetSDK.NET_DVR_GET_TIMECFG, -1, ptrTimeCfg, (UInt32)nSize, ref dwReturn))
|
||||
{
|
||||
|
||||
m_struTimeCfg = (CHCNetSDK.NET_DVR_TIME)Marshal.PtrToStructure(ptrTimeCfg, typeof(CHCNetSDK.NET_DVR_TIME));
|
||||
logger.Info($"录像机时间接口{Convert.ToString(m_struTimeCfg.dwYear)}- {Convert.ToString(m_struTimeCfg.dwMonth)}- {Convert.ToString(m_struTimeCfg.dwDay)}- {Convert.ToString(m_struTimeCfg.dwHour)}- {Convert.ToString(m_struTimeCfg.dwMinute)}- {Convert.ToString(m_struTimeCfg.dwSecond)}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
|
|
|
@ -0,0 +1,152 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
[SugarTable("account_book_g2")]
|
||||
public class AccountBookG2
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "id",IsPrimaryKey =true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 药品id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "drug_id")]
|
||||
public int DrugId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 1领入2发出3日结4总结5转结
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "type")]
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 科室
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "department")]
|
||||
public string Department { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 设备内记录凭证
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "invoice_no")]
|
||||
public string InvoiceNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 处方号或凭证号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "order_no")]
|
||||
public string OrderNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "manu_no")]
|
||||
public string ManuNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 效期
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "eff_date")]
|
||||
public string EffDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上日结存
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "yesterday_quantity")]
|
||||
public int YQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收入
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "add_quantity")]
|
||||
public int AddQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发出
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "out_quantity")]
|
||||
public int OutQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次结存
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "manu_stock")]
|
||||
public int ManuStock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总结存
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "total_stock")]
|
||||
public int TotalStock { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 发药领药人id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "user_id1")]
|
||||
public int? UserId1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 复核人id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "user_id2")]
|
||||
public int? UserId2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 设备id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string MachineId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_date")]
|
||||
public string CreateDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 插入更新时间(当前时间戳)
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_time")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 药品名称
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string DrugName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 规格
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string DrugSpec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 厂家
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string Manufactory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发药人
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string OperatorName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 复核人
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string ReviewerName { get;set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 账册类型
|
||||
/// </summary>
|
||||
public class AccountType
|
||||
{
|
||||
/// <summary>
|
||||
/// 账册类型名称
|
||||
/// </summary>
|
||||
public string AccountTypeName { get; set; }
|
||||
/// <summary>
|
||||
/// 账册类型值
|
||||
/// </summary>
|
||||
public int AccountTypeValue { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 处方、请领单中间表
|
||||
/// </summary>
|
||||
[SugarTable("order_apply")]
|
||||
public class CollectDrug
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否选择
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public bool IsSelected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Applyid")]
|
||||
public int Applyid { get; set; }
|
||||
/// <summary>
|
||||
/// 药品请领单号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Drug_plase_id")]
|
||||
public string DrugPleaseClaimId { get; set; }
|
||||
/// 处方
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "OrderNo")]
|
||||
public string OrderNo { get; set; }
|
||||
/// <summary>
|
||||
/// 药品ID
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Drug_Id")]
|
||||
public string DrugId { get; set; }
|
||||
/// <summary>
|
||||
/// 患者ID
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public string PatientId { get; set; }
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string PName { get; set; }
|
||||
/// <summary>
|
||||
/// 性别
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string Sex { get; set; }
|
||||
/// <summary>
|
||||
/// 年龄
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string Age { get; set; }
|
||||
/// <summary>
|
||||
/// 身份证号
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string IdNumber { get; set; }
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 科室
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string DeptName { get; set; }
|
||||
/// <summary>
|
||||
/// 药品名称
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string DrugName { get;set; }
|
||||
/// <summary>
|
||||
/// 规格
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string DrugSpec { get; set; }
|
||||
/// <summary>
|
||||
/// 厂家
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string Manufactory { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Quantity")]
|
||||
public int Quantity { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "Createdate")]
|
||||
public DateTime Createdate { get; set; }
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Status")]
|
||||
public int Status { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "Machine_id")]
|
||||
public string MachineId { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "Current_Machine_id")]
|
||||
public string CurrentMachineId { get; set; }
|
||||
|
||||
[Navigate(NavigateType.OneToOne, nameof(DrugId))]
|
||||
public DrugInfo drugInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 请领表
|
||||
/// </summary>
|
||||
[Navigate(NavigateType.ManyToOne, nameof(DrugPleaseClaimId))]
|
||||
public DrugPleaseClaim drugPleaseClaim { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
[SugarTable("destory_detail")]
|
||||
public class DestoryDetail
|
||||
{
|
||||
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
|
||||
public int ID { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "operatorid")]
|
||||
public int? Operatorid { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "reviewerid")]
|
||||
public int? Reviewerid { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "recordId")]
|
||||
public int RecordId { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "orderId")]
|
||||
public int OrderId { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string MachineId { get; set; }
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Prism.Mvvm;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 药品基数表
|
||||
/// </summary>
|
||||
[SugarTable("drug_base")]
|
||||
public class DrugBase:BindableBase
|
||||
{
|
||||
private int _baseId = 0;
|
||||
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
|
||||
public int BaseId { get=> _baseId; set { SetProperty(ref _baseId, value); } }
|
||||
private long _drugId = 0;
|
||||
[SugarColumn(ColumnName = "drugid")]
|
||||
public long DrugId { get => _drugId; set { SetProperty(ref _drugId, value); } }
|
||||
private string _machineId = "";
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string MachineId { get => _machineId; set { SetProperty(ref _machineId, value); } }
|
||||
private int _baseQuantity = 0;
|
||||
[SugarColumn(ColumnName = "base_quantity")]
|
||||
public int BaseQuantity { get=>_baseQuantity; set{ SetProperty(ref _baseQuantity, value); } }
|
||||
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Prism.Mvvm;
|
||||
using SqlSugar;
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
|
@ -8,7 +9,7 @@ namespace DM_Weight.Models
|
|||
///
|
||||
///</summary>
|
||||
[SugarTable("drug_info")]
|
||||
public class DrugInfo
|
||||
public class DrugInfo:BindableBase
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
|
@ -81,5 +82,15 @@ namespace DM_Weight.Models
|
|||
[SugarColumn(IsIgnore = true)]
|
||||
public int? StockQuantity { get; set; }
|
||||
|
||||
private DrugBase _base;
|
||||
[Navigate(NavigateType.OneToOne, nameof(DrugBase.DrugId), nameof(DrugId))]
|
||||
public DrugBase drugBase
|
||||
{
|
||||
get=> _base;
|
||||
set { SetProperty(ref _base, value); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 请领申请表
|
||||
/// </summary>
|
||||
[SugarTable("drug_please_claim")]
|
||||
public class DrugPleaseClaim
|
||||
{
|
||||
[SugarColumn(ColumnName = "id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "drug_id")]
|
||||
public string DrugId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 请领数量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "get_quantity")]
|
||||
public int GetQuantity { get; set; }
|
||||
/// <summary>
|
||||
/// 交处方张数
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "return_prescription_quantity")]
|
||||
public int ReturnPrQuantity { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 处方用量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "prescription_quantity")]
|
||||
public int PrescriptionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 空瓶数量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "empties_quantity")]
|
||||
public int EmptiesQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实发数
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "issue_quantity")]
|
||||
public int IssueQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次(多条)
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "drug_manu_no")]
|
||||
public string DrugManuNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注1
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "notes_nn")]
|
||||
public string NotesNN { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注2
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "notes_n")]
|
||||
public string NotesN { get;set; }
|
||||
|
||||
/// <summary>
|
||||
/// 32:三级向二级请领;23:二级向三级退;
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "type")]
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 0:创建完成;1:二级已授权;2:一级已查阅;3:已关联His
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "state")]
|
||||
public int State { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 凭证号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "voucher")]
|
||||
public string Voucher { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机器id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string MachineId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "do_date")]
|
||||
public DateTime DoDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 申请人
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "apply_user")]
|
||||
public int ApplyUser { get; set; }
|
||||
/// <summary>
|
||||
/// 复核人
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "exp_user")]
|
||||
public int ReviewUser { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "please_no", IsPrimaryKey = true)]
|
||||
public string PleaseNo { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "department")]
|
||||
public string Department { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "totalQuantity")]
|
||||
public int TotalQuantity { get; set; }
|
||||
|
||||
|
||||
//[Navigate(NavigateType.ManyToMany, nameof(PleaseNo))]
|
||||
//public CollectDrug collectDrug { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
public class DrugPleaseState
|
||||
{
|
||||
/// <summary>
|
||||
/// 药品请领状态名
|
||||
/// </summary>
|
||||
public string StateName { get; set; }
|
||||
/// <summary>
|
||||
/// 药品请领状态值
|
||||
/// </summary>
|
||||
public int StateValue { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
using Prism.Mvvm;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
//交接班表
|
||||
[SugarTable("hkc_changeshifts")]
|
||||
public class HkcChangeShifts : BindableBase
|
||||
{
|
||||
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "optDate")]
|
||||
public DateTime? OptDate { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "FromOperator")]
|
||||
public string FromOperator { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "FromRviewer")]
|
||||
public string FromRviewer { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "ToOperator")]
|
||||
public string ToOperator { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "ToReviewer")]
|
||||
public string ToReviewer { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "ToDate")]
|
||||
public DateTime? ToDate { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "State")]
|
||||
public string State { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "optState")]
|
||||
public string OptState { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "machine_id")]
|
||||
public string Machineid { get; set; }
|
||||
}
|
||||
}
|
|
@ -36,11 +36,11 @@ namespace DM_Weight.Models
|
|||
public int Quantity { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(ColumnName = "stock_quantity")]
|
||||
public int? StockQuantity { get; set; }
|
||||
//[SugarColumn(ColumnName = "stock_quantity")]
|
||||
//public int? StockQuantity { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "check_quantity")]
|
||||
public int? CheckQuantity { get; set; }
|
||||
//[SugarColumn(ColumnName = "check_quantity")]
|
||||
//public int? CheckQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
|
@ -126,6 +126,19 @@ namespace DM_Weight.Models
|
|||
[SugarColumn(ColumnName = "is_destroy", IsOnlyIgnoreInsert = true)]
|
||||
public int? IsDestroy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销毁操作人
|
||||
/// 默认值: 0
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "take_user", IsOnlyIgnoreInsert = true)]
|
||||
public string TakeUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销毁审核人
|
||||
/// 默认值: 0
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "fuzeren", IsOnlyIgnoreInsert = true)]
|
||||
public string DestoryReviewerUser { get; set; }
|
||||
|
||||
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
|
|
|
@ -177,6 +177,13 @@ namespace DM_Weight.Models
|
|||
///</summary>
|
||||
[SugarColumn(ColumnName = "costs")]
|
||||
public decimal? Costs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 药品请领状态(0未请领;1已请领)
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "apply_status")]
|
||||
public int ApplyStatus { get;set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// 默认值: NULL
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
[SugarTable("SettingPage")]
|
||||
public class SettingPage
|
||||
{
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 页面名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Name")]
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 页面连接
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Url")]
|
||||
public string Url { get; set; }
|
||||
/// <summary>
|
||||
///可用标志
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Flag")]
|
||||
public string Flag { get; set; }
|
||||
/// <summary>
|
||||
/// view名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "ViewName")]
|
||||
public string ViewName { get; set; }
|
||||
/// <summary>
|
||||
/// 图标名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "IconName")]
|
||||
public string Icon { get; set; }
|
||||
/// <summary>
|
||||
/// 层级
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Level")]
|
||||
public int Level { get; set; }
|
||||
/// <summary>
|
||||
/// 父级id
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Parentid")]
|
||||
public int Parentid { get; set; }
|
||||
/// <summary>
|
||||
/// 0可用1不可用
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "State")]
|
||||
public int State { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.Models
|
||||
{
|
||||
[SugarTable("hkc_shiftsreport")]
|
||||
public class ShiftsReport
|
||||
{
|
||||
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "drug_name")]
|
||||
public string DrugName { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "drug_spec")]
|
||||
public string DrugSpec { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "beforeNum")]
|
||||
public int? BeforeNum { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "getNum")]
|
||||
public int? GetNum { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "useNum")]
|
||||
public int? UseNum { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "manu_no")]
|
||||
public string ManuNo { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "surplus")]
|
||||
public int? Surplus { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "opt_Date")]
|
||||
public DateTime OptDate { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "FromOperator")]
|
||||
public string FromOperator { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "FromReviewer")]
|
||||
public string FromReviewer { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "ToOperator")]
|
||||
public string ToOperator { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "ToReviewer")]
|
||||
public string ToReviewer { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "machineId")]
|
||||
public string MachineId { get; set; }
|
||||
}
|
||||
}
|
|
@ -23,6 +23,10 @@ using Unity;
|
|||
using DM_Weight.msg;
|
||||
using DM_Weight.Views;
|
||||
using System.Reflection;
|
||||
using DM_Weight.HIKVISION;
|
||||
using PreviewDemo;
|
||||
using System.Runtime.InteropServices;
|
||||
using DM_Weight.Common;
|
||||
|
||||
namespace DM_Weight.Port
|
||||
{
|
||||
|
@ -37,6 +41,9 @@ namespace DM_Weight.Port
|
|||
// 条码枪串口
|
||||
public SerialPort scanCodeSerial;
|
||||
|
||||
// 冰箱串口
|
||||
public SerialPort fridgeSerial;
|
||||
|
||||
|
||||
// 抽屉串口协议232 | 485
|
||||
private int _drawerProtocol = Convert.ToInt32(ConfigurationManager.AppSettings["DrawerProtocol"]);
|
||||
|
@ -77,8 +84,10 @@ namespace DM_Weight.Port
|
|||
// 是否正在操作中
|
||||
public bool Operate { get; set; }
|
||||
|
||||
public DateTime dateTime { get; set; } = DateTime.Now;
|
||||
//冰箱是否正在操作中
|
||||
public bool FridgeOperate { get; set; }
|
||||
|
||||
public DateTime dateTime { get; set; } = DateTime.Now;
|
||||
|
||||
public async void ResetData()
|
||||
{
|
||||
|
@ -120,9 +129,12 @@ namespace DM_Weight.Port
|
|||
|
||||
public async void Start()
|
||||
{
|
||||
|
||||
logger.Info($"进行抽屉操作抽屉号【{DrawerNo}】类型【{BoardType}】库位【{string.Join(",", ColNos)}】窗口【{WindowName}】");
|
||||
Operate = true;
|
||||
|
||||
//开始录像
|
||||
_chkFunction.HIKStartDVRRecord();
|
||||
logger.Info($"时间:{DateTime.Now}");
|
||||
try
|
||||
{
|
||||
// 储物箱直接开
|
||||
|
@ -574,8 +586,8 @@ namespace DM_Weight.Port
|
|||
|
||||
|
||||
private readonly IEventAggregator _eventAggregator;
|
||||
|
||||
public PortUtil(IEventAggregator eventAggregator)
|
||||
private CHKFunction _chkFunction;
|
||||
public PortUtil(IEventAggregator eventAggregator, CHKFunction chkFunction)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
try
|
||||
|
@ -612,6 +624,18 @@ namespace DM_Weight.Port
|
|||
{
|
||||
logger.Error("条码枪串口打开错误" + e.Message);
|
||||
}
|
||||
try
|
||||
{
|
||||
string FridgePortPath = ConfigurationManager.AppSettings["FridgePortPath"];
|
||||
logger.Info($"打开冰箱串口【{FridgePortPath}】");
|
||||
fridgeSerial = new SerialPort(FridgePortPath, 9600, Parity.None, 8);
|
||||
fridgeSerial.Open();
|
||||
logger.Info($"冰箱串口打开结果【{fridgeSerial.IsOpen}】");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.Error("冰箱串口打开错误" + e.Message);
|
||||
}
|
||||
if (_canBusExsit)
|
||||
{
|
||||
try
|
||||
|
@ -628,7 +652,7 @@ namespace DM_Weight.Port
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
_chkFunction = chkFunction;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1289,7 +1313,306 @@ namespace DM_Weight.Port
|
|||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱使能
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridegOpen()
|
||||
{
|
||||
try
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD4, 0x00, 0x01, 0x0C, 0xF2 };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD4, 0x00, 0x01 };
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
logger.Info($"冰箱使能【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
await Task.Delay(80);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"冰箱使能发生异常:ex:{ex.Message}");
|
||||
}
|
||||
FridgeOperate = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱失能
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeOff()
|
||||
{
|
||||
try
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD4, 0x00, 0x00, 0xCD, 0x32 };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD4, 0x00, 0x01 };
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
logger.Info($"冰箱失能【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
await Task.Delay(80);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"冰箱失能发生异常:ex:{ex.Message}");
|
||||
}
|
||||
FridgeOperate = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱报警使能
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeAlarmOn()
|
||||
{
|
||||
try
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD5, 0x00, 0x01, 0x5D, 0x32 };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD5, 0x00, 0x01 };
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
logger.Info($"冰箱报警使能【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
await Task.Delay(80);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"冰箱报警使能发生异常:ex:{ex.Message}");
|
||||
}
|
||||
FridgeOperate = false;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 冰箱报警失能
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeAlarmOff()
|
||||
{
|
||||
try
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD5, 0x00, 0x00, 0x9C, 0xF2 };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xD5, 0x00, 0x00 };
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
logger.Info($"冰箱报警失能【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
await Task.Delay(80);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"冰箱报警失能发生异常:ex:{ex.Message}");
|
||||
}
|
||||
FridgeOperate = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱温度设定最小
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeMinSetting(float min)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
int iMix = Convert.ToInt32(min * 10);
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
//byte[] bufferMin = new byte[] { 0x01, 0x06, 0x10, 0xC9, 0x00, 0x15, 0x9C, 0xFB };
|
||||
byte[] bufferMin = new byte[] { 0x01, 0x06, 0x10, 0xC9, 0x00, (byte)(iMix & 0xff) };
|
||||
//获取数组CRC校验码
|
||||
byte[] byteDate = CRC16MODBUS.CrcModBus(bufferMin);
|
||||
//Array.Reverse(byteDate);
|
||||
int dataLength = bufferMin.Length;
|
||||
Array.Resize(ref bufferMin, dataLength + byteDate.Length);
|
||||
for (int i = 0; i < byteDate.Length; i++)
|
||||
{
|
||||
bufferMin[dataLength + i] = byteDate[i];
|
||||
}
|
||||
logger.Info($"冰箱温度设定Min:【{Convert.ToHexString(bufferMin)}】");
|
||||
fridgeSerial.Write(bufferMin, 0, 8);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱温度设定最大
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeMaxSetting(float max)
|
||||
{
|
||||
try
|
||||
{
|
||||
int iMax = Convert.ToInt32(max * 10);
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
//byte[] bufferMin = new byte[] { 0x01, 0x06, 0x10, 0xC9, 0x00, 0x15, 0x9C, 0xFB };
|
||||
byte[] bufferMax = new byte[] { 0x01, 0x06, 0x10, 0xC8, 0x00, (byte)(iMax & 0xff) };
|
||||
//获取数组CRC校验码
|
||||
byte[] byteDate = CRC16MODBUS.CrcModBus(bufferMax);
|
||||
//Array.Reverse(byteDate);
|
||||
int dataLength = bufferMax.Length;
|
||||
Array.Resize(ref bufferMax, dataLength + byteDate.Length);
|
||||
for (int i = 0; i < byteDate.Length; i++)
|
||||
{
|
||||
bufferMax[dataLength + i] = byteDate[i];
|
||||
}
|
||||
logger.Info($"冰箱温度设定Max:【{Convert.ToHexString(bufferMax)}】");
|
||||
fridgeSerial.Write(bufferMax, 0, 8);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取冰箱温度
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<float> GetFridgeTemperature()
|
||||
{
|
||||
float temperature = 0.0f;
|
||||
try
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
|
||||
byte[] buffer = new byte[] { 0x01, 0x03, 0x10, 0x02, 0x00, 0x01, 0x21, 0x0A };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x03, 0x10, 0x02, 0x00, 0x01 };
|
||||
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
|
||||
logger.Info($"获取冰箱温度【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
|
||||
byte[] retByte = await GetBufferByPort(fridgeSerial, 7);
|
||||
|
||||
logger.Info($"获取冰箱温度返回【{Convert.ToHexString(retByte)}】");
|
||||
|
||||
if (retByte != null && retByte.Length >= 7)
|
||||
{
|
||||
var hight = retByte[3];
|
||||
var low = retByte[4];
|
||||
int iHight = Convert.ToInt32(hight << 8);
|
||||
int iLow = Convert.ToInt32(retByte[4]);
|
||||
temperature = Convert.ToSingle(iHight + iLow) / 10;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}");
|
||||
}
|
||||
return temperature;
|
||||
}
|
||||
/// <summary>
|
||||
/// 设置冰箱温度
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<float> SetFridgeTemperature(float temperature)
|
||||
{
|
||||
int tpt = (int)temperature * 10;
|
||||
byte Temperature = (byte)(tpt & 0xff);
|
||||
try
|
||||
{
|
||||
//if (!FridgeOperate)
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
|
||||
//byte[] buffer = new byte[] { 0x01, 0x03, 0x10, 0x02, 0x00, 0x01, 0x21,0x0A };
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0x02, 0x00, (byte)Temperature };
|
||||
|
||||
//获取数组CRC校验码
|
||||
byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
//Array.Reverse(byteDate);
|
||||
int dataLength = buffer.Length;
|
||||
Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
for (int i = 0; i < byteDate.Length; i++)
|
||||
{
|
||||
buffer[dataLength + i] = byteDate[i];
|
||||
}
|
||||
logger.Info($"设置冰箱温度【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
|
||||
await GetBufferByPort(fridgeSerial, 8);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}");
|
||||
}
|
||||
return temperature;
|
||||
}
|
||||
/// <summary>
|
||||
/// 冰箱延迟报警
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task FridgeDelayWarm()
|
||||
{
|
||||
try
|
||||
{
|
||||
//if (!FridgeOperate)
|
||||
{
|
||||
fridgeSerial.DiscardInBuffer();
|
||||
byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xCD, 0x00, 0x01, 0xDD, 0x35 };
|
||||
//byte[] buffer = new byte[] { 0x01, 0x06, 0x10, 0xCD, 0x00, 0x01 };
|
||||
////获取数组CRC校验码
|
||||
//byte[] byteDate = CRC16MODBUS.CrcModBus(buffer);
|
||||
////Array.Reverse(byteDate);
|
||||
//int dataLength = buffer.Length;
|
||||
//Array.Resize(ref buffer, dataLength + byteDate.Length);
|
||||
//for (int i = 0; i < byteDate.Length; i++)
|
||||
//{
|
||||
// buffer[dataLength + i] = byteDate[i];
|
||||
//}
|
||||
logger.Info($"冰箱延迟报警【{Convert.ToHexString(buffer)}】");
|
||||
fridgeSerial.Write(buffer, 0, 8);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}");
|
||||
}
|
||||
//FridgeOperate = false;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ using System.Threading.Tasks;
|
|||
using DM_Weight.Models;
|
||||
using System.Configuration;
|
||||
using DM_Weight.util;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace DM_Weight.Report
|
||||
{
|
||||
|
@ -82,7 +83,65 @@ namespace DM_Weight.Report
|
|||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
Report.PrintPreview(true);
|
||||
}
|
||||
public static void PrintReportAccountBook(DateTime? startDate, DateTime? endDate, int type, string drug_id)
|
||||
{
|
||||
// 定义Grid++Report报表主对象
|
||||
GridppReport Report = new GridppReport();
|
||||
// 加载模板文件
|
||||
Report.LoadFromFile(new FileInfo(AppDomain.CurrentDomain.BaseDirectory) + "ReportTemp//" + "account_book_temp.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 ac.create_date as operationTime, ac.TYPE,
|
||||
if(ac.type in(1,2),0,ac.yesterday_quantity) as YQuantity,if(ac.type in(3,4),0,ac.add_quantity) as inQuantity,if(ac.type in(3,4),0,ac.out_quantity) as outQuantity,
|
||||
if(ac.type in(1,2),0,ac.manu_stock) as ManuStock,ac.total_stock AS stockQuantity, -- if(ac.type in(1,2),0,ac.total_stock) as TotalStock,
|
||||
ac.invoice_no as invoiceId, ac.manu_no as manuNo,ac.eff_date as effDate,di.drug_id,di.drug_name as DrugName,di.drug_spec as DrugSpec,di.manufactory as manufactory,di.pack_unit AS packUnit,di.dosage,u1.user_name as operatorName,u2.user_name as reviewerName
|
||||
FROM account_book_g2 ac left join drug_info di on ac.drug_id=di.drug_id left join user_list u1 on ac.user_id1=u1.id left join user_list u2 on ac.user_id2=u2.id
|
||||
WHERE ac.machine_id='{p_machine_id}' and create_time>'{p_startDate}' AND create_time<'{p_endDate}' ";
|
||||
if (!string.IsNullOrEmpty(drug_id))
|
||||
{
|
||||
SQL += " AND ac.drug_id='" + drug_id + "' ";
|
||||
}
|
||||
if (type > 0)
|
||||
{
|
||||
if (type == 1)
|
||||
{
|
||||
SQL += " WHERE AddQuantity>0 ";
|
||||
}
|
||||
if (type == 2)
|
||||
{
|
||||
SQL += " WHERE OutQuantity>0 ";
|
||||
}
|
||||
if (type == 3)
|
||||
{
|
||||
SQL += " WHERE type=3 ";
|
||||
}
|
||||
if (type == 4)
|
||||
{
|
||||
SQL += " WHERE type=4 ";
|
||||
}
|
||||
}
|
||||
SQL += " ORDER BY di.drug_id,ac.create_date desc";
|
||||
|
||||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
Report.PrintPreview(true);
|
||||
//string filePath = AppDomain.CurrentDomain.BaseDirectory + "ReportTemp//" + "account_book_temp.pdf";
|
||||
//if (File.Exists(filePath))
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
|
||||
// File.Delete(filePath);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// FindAndKillProcess();
|
||||
|
||||
// }
|
||||
//}
|
||||
//Report.ExportDirect(GRExportType.gretPDF, filePath, false, true);
|
||||
}
|
||||
public static void PrintReportMechineRecord(int type, DateTime? startDate, DateTime? endDate)
|
||||
{
|
||||
// 定义Grid++Report报表主对象
|
||||
|
@ -171,5 +230,140 @@ namespace DM_Weight.Report
|
|||
Report.ParameterByName("type").AsInteger = 1;
|
||||
Report.PrintPreview(true);
|
||||
}
|
||||
//交接班记录报表
|
||||
public static void PrintChangeShiftsReport(DateTime? startDate, DateTime? endDate)
|
||||
{
|
||||
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");
|
||||
// 定义Grid++Report报表主对象
|
||||
GridppReport Report = new GridppReport();
|
||||
// 加载模板文件
|
||||
Report.LoadFromFile(new FileInfo(AppDomain.CurrentDomain.BaseDirectory) + "ReportTemp//" + "changeShifts_temp.grf");
|
||||
string SQL = string.Empty;
|
||||
Report.DetailGrid.Recordset.ConnectionString = gridConnectionString;
|
||||
Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(() =>
|
||||
{
|
||||
Report.ParameterByName("machine_id").Value = (ConfigurationManager.AppSettings["machineId"] ?? "DM1");
|
||||
Report.ParameterByName("startDate").Value = startDate ?? Convert.ToDateTime("2010-1-1");
|
||||
Report.ParameterByName("endDate").Value = endDate ?? DateTime.Now.AddDays(1);
|
||||
});
|
||||
SQL = $@"SELECT opt_date,drug_name,drug_spec,beforenum,getnum,usenum,manu_no,surplus,CONCAT(fromoperator,' ',fromreviewer) as fromoperator,
|
||||
CONCAT(tooperator,' ',toreviewer) as tooperator
|
||||
from `hkc_shiftsreport` WHERE `machineid` = '{p_machine_id}' AND `opt_date` > '{p_startDate}'
|
||||
AND opt_date < '{p_endDate}' ORDER BY opt_date";
|
||||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
//Report.PrintPreview(true);
|
||||
string filePath = AppDomain.CurrentDomain.BaseDirectory + "ReportTemp//" + "changeShifts_temp.pdf";
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
File.Delete(filePath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FindAndKillProcess();
|
||||
|
||||
}
|
||||
}
|
||||
Report.ExportDirect(GRExportType.gretPDF, filePath, false, true);
|
||||
|
||||
}
|
||||
public static bool FindAndKillProcess()
|
||||
{
|
||||
foreach (Process clsProcess in Process.GetProcesses())
|
||||
{
|
||||
if (clsProcess.ProcessName.Contains("wps") || clsProcess.ProcessName.Contains("msedge"))
|
||||
{
|
||||
clsProcess.Kill();
|
||||
//return true;
|
||||
}
|
||||
}
|
||||
//process not found, return false
|
||||
return false;
|
||||
}
|
||||
/// <summary>
|
||||
/// 空安瓿回收销毁报表
|
||||
/// </summary>
|
||||
/// <param name="startDate"></param>
|
||||
/// <param name="endDate"></param>
|
||||
public static void PrintEmptyDestoryReport(DateTime? startDate, DateTime? endDate)
|
||||
{
|
||||
// 定义Grid++Report报表主对象
|
||||
GridppReport Report = new GridppReport();
|
||||
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 = string.Empty;
|
||||
Report.LoadFromFile(new FileInfo(AppDomain.CurrentDomain.BaseDirectory) + "ReportTemp//" + "ReturnEmptyDistory_template.grf");
|
||||
|
||||
SQL = $@"
|
||||
SELECT di.drug_id, di.drug_name as drugName,di.dosage,di.drug_spec as drugSpec,di.big_unit,oi.Order_Date, CONCAT(oi.p_name,'/',oi.dept_name) as userDeptName,
|
||||
od.Quantity,mr.Manu_No,ul.user_name as retuenUser,u2.user_name as returnReviewer,u3.User_name as distoryUser,u4.User_name as distoryRevierer,(od.Quantity-mr.return_quantity2) as needReturnEmptyCount
|
||||
from order_info oi inner join order_detail od on oi.order_no=od.order_no
|
||||
inner join (SELECT id as mrId,manu_no,invoice_id,id,operator,reviewer, sum(return_quantity2) as return_quantity2 FROM dm_machine_record where type=2 and machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}' GROUP BY invoice_id) mr on oi.order_no=mr.invoice_id
|
||||
INNER JOIN drug_info di on od.drug_id=di.drug_id
|
||||
LEFT JOIN (SELECT manu_no,invoice_id,id,operator,reviewer,get_id from dm_machine_record where type=32 and machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') re on re.get_id=mr.id
|
||||
LEFT JOIN (SELECT recordId,operatorid,reviewerid,machine_id FROM destory_detail WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') ddl on re.id=ddl.recordId
|
||||
-- LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') ul0 on mr.operator=ul0.id
|
||||
-- LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') ul00 on re.reviewer=ul00.id
|
||||
LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') ul on re.operator=ul.id
|
||||
LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') u2 on re.reviewer=u2.id
|
||||
LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') u3 on ddl.operatorid=u3.id
|
||||
LEFT JOIN (SELECT User_name,machine_id,id FROM user_list WHERE machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') u4 on ddl.reviewerid=u4.id
|
||||
WHERE
|
||||
oi.Pharmacy='{ConfigurationManager.AppSettings["storage"] ?? ""}' and oi.Order_Date>'{startDate}' and oi.Order_Date<'{endDate}' GROUP BY Order_Date";
|
||||
|
||||
|
||||
Report.DetailGrid.Recordset.ConnectionString = gridConnectionString;
|
||||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
|
||||
Report.PrintPreview(true);
|
||||
}
|
||||
/// <summary>
|
||||
/// 发药登记表
|
||||
/// </summary>
|
||||
/// <param name="startDate"></param>
|
||||
/// <param name="endDate"></param>
|
||||
public static void OrderUseReport(DateTime? startDate,DateTime? endDate, string drug_id)
|
||||
{
|
||||
// 定义Grid++Report报表主对象
|
||||
GridppReport Report = new GridppReport();
|
||||
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 = string.Empty;
|
||||
Report.LoadFromFile(new FileInfo(AppDomain.CurrentDomain.BaseDirectory) + "ReportTemp//" + "orderUse_template.grf");
|
||||
|
||||
SQL = $@"
|
||||
SELECT oi.p_name,oi.age,oi.sex,oi.id_number,oi.patientno,oi.disease,od.drug_id,oi.doctor_name,oi.order_no,oi.order_date,
|
||||
dmr.id,dmr.`drawer_no` AS drawerNo,dmr.`col_no` AS colNo,dmr.`type` AS `type`,dmr.`quantity` AS quantity,
|
||||
dmr.`manu_no` AS manuNo,dmr.`eff_date` AS effDate,dmr.`operation_time` AS operationTime,
|
||||
di.`drug_name` AS drugName,di.`drug_spec` AS drugSpec,di.`pack_unit` AS packUnit,
|
||||
di.`manufactory` AS manuFactory,di.`max_stock` AS baseQuantity,dmr.`drug_id` AS drugId,
|
||||
ul.`user_name` AS nickname,U2.`user_name` AS reviewNickname FROM dm_machine_record dmr
|
||||
|
||||
INNER JOIN ORDER_INFO oi on dmr.invoice_id=oi.order_no
|
||||
INNER JOIN order_detail od on oi.order_no=od.order_no and oi.order_id=od.order_id
|
||||
|
||||
LEFT JOIN drug_info di ON di.`drug_id` = dmr.`drug_id`
|
||||
LEFT JOIN (select id,user_name from user_list where machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') ul ON ul.`id` = dmr.`Operator`
|
||||
LEFT JOIN (select id,user_name from user_list where machine_id='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}') U2 ON U2.ID=dmr.reviewer
|
||||
WHERE dmr.`type` = 2 and oi.Pharmacy='{ConfigurationManager.AppSettings["storage"] ?? ""}'
|
||||
AND dmr.`machine_id` ='{ConfigurationManager.AppSettings["machineId"] ?? "DM3"}' AND oi.`order_date` > '{startDate}'
|
||||
AND oi.`order_date` < '{endDate}'";
|
||||
|
||||
if (!string.IsNullOrEmpty(drug_id))
|
||||
{
|
||||
SQL += " AND ac.drug_id='" + drug_id + "' ";
|
||||
}
|
||||
Report.DetailGrid.Recordset.ConnectionString = gridConnectionString;
|
||||
Report.DetailGrid.Recordset.QuerySQL = SQL;
|
||||
|
||||
Report.PrintPreview(true);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,432 @@
|
|||
{
|
||||
"Version":"6.3.0.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Weight":400,
|
||||
"Charset":134
|
||||
},
|
||||
"Printer":{
|
||||
"Oriention":"Landscape"
|
||||
},
|
||||
"DetailGrid":{
|
||||
"CenterView":true,
|
||||
"PrintAdaptMethod":"ResizeToFit",
|
||||
"AppendBlankRow":true,
|
||||
"Recordset":{
|
||||
"QuerySQL":"SELECT \r\n cl.`row_no` AS drawerNo,\r\n cl.`col_no` AS colNo,\r\n cl.`quantity` AS quantity,\r\n cl.`manu_no` AS manuNo,\r\n cl.`eff_date` AS effDate,\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 cl.`drug_id` AS drugId\r\nFROM\r\n channel_stock cl\r\nINNER JOIN drug_info di ON di.`drug_id` = cl.`drug_id`\r\nWHERE cl.`machine_id` = :machine_id\r\n AND cl.`drawer_type` = 1\r\n ORDER BY cl.`drug_id`",
|
||||
"Field":[
|
||||
{
|
||||
"Name":"Order_Date"
|
||||
},
|
||||
{
|
||||
"Name":"userDeptName",
|
||||
"Format":"0"
|
||||
},
|
||||
{
|
||||
"Name":"drugName"
|
||||
},
|
||||
{
|
||||
"Name":"Quantity",
|
||||
"Type":"Integer"
|
||||
},
|
||||
{
|
||||
"Name":"Manu_No"
|
||||
},
|
||||
{
|
||||
"Name":"retuenUser"
|
||||
},
|
||||
{
|
||||
"Name":"returnReviewer",
|
||||
"Type":"Integer"
|
||||
},
|
||||
{
|
||||
"Name":"distoryUser"
|
||||
},
|
||||
{
|
||||
"Name":"distoryRevierer"
|
||||
},
|
||||
{
|
||||
"Name":"drugSpec"
|
||||
},
|
||||
{
|
||||
"Name":"dosage"
|
||||
},
|
||||
{
|
||||
"Name":"big_unit"
|
||||
},
|
||||
{
|
||||
"Name":"drug_id"
|
||||
},
|
||||
{
|
||||
"Name":"needReturnEmptyCount"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Column":[
|
||||
{
|
||||
"Name":"日期",
|
||||
"Width":3.175
|
||||
},
|
||||
{
|
||||
"Name":"科室/患者",
|
||||
"Width":5.3975
|
||||
},
|
||||
{
|
||||
"Name":"Dept_Name",
|
||||
"Width":1.61396
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"Width":2.98979
|
||||
},
|
||||
{
|
||||
"Name":"空安瓿回收人",
|
||||
"Width":2.98979
|
||||
},
|
||||
{
|
||||
"Name":"空安瓿交回人",
|
||||
"Width":2.99
|
||||
},
|
||||
{
|
||||
"Name":"数量",
|
||||
"Width":2
|
||||
},
|
||||
{
|
||||
"Name":"空安瓿销毁执行人",
|
||||
"Width":2.98979
|
||||
},
|
||||
{
|
||||
"Name":"空安瓿销毁审核人",
|
||||
"Width":2.99
|
||||
}
|
||||
],
|
||||
"ColumnContent":{
|
||||
"Height":0.79375,
|
||||
"ColumnContentCell":[
|
||||
{
|
||||
"Column":"日期",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"Order_Date"
|
||||
},
|
||||
{
|
||||
"Column":"科室/患者",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"userDeptName"
|
||||
},
|
||||
{
|
||||
"Column":"Dept_Name",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"Quantity"
|
||||
},
|
||||
{
|
||||
"Column":"批号",
|
||||
"DataField":"Manu_No"
|
||||
},
|
||||
{
|
||||
"Column":"空安瓿回收人",
|
||||
"DataField":"retuenUser"
|
||||
},
|
||||
{
|
||||
"Column":"空安瓿交回人",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"returnReviewer"
|
||||
},
|
||||
{
|
||||
"Column":"数量",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"distoryUser"
|
||||
},
|
||||
{
|
||||
"Column":"空安瓿销毁执行人",
|
||||
"DataField":"distoryRevierer"
|
||||
},
|
||||
{
|
||||
"Column":"空安瓿销毁审核人",
|
||||
"DataField":"needReturnEmptyCount"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ColumnTitle":{
|
||||
"Height":1.7,
|
||||
"RepeatStyle":"OnGroupHeaderPage",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"日期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"日期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"科室/患者",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"科室/患者"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Dept_Name",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"数量"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"批号",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空安瓿回收人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空安瓿\r\n回收人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空安瓿交回人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空安瓿\r\n交回人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"数量",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空安瓿\r\n销毁\r\n执行人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空安瓿销毁执行人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"空安瓿\r\n销毁\r\n审核人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"空安瓿销毁审核人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":142500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"待回收\r\n空安瓿\r\n数量"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Group":[
|
||||
{
|
||||
"Name":"Group1",
|
||||
"ByFields":"drug_id",
|
||||
"GroupHeader":{
|
||||
"PrintGridBorder":false,
|
||||
"RepeatOnPage":true,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox16",
|
||||
"Top":0.0529167,
|
||||
"Width":1.19063,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"品名:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox7",
|
||||
"Left":1.16417,
|
||||
"Top":0.0529167,
|
||||
"Width":5.63563,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"drugName"
|
||||
},
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox17",
|
||||
"Left":6.93208,
|
||||
"Top":0.0529167,
|
||||
"Width":1.11125,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"剂型:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox8",
|
||||
"Left":8.01688,
|
||||
"Top":0.0529167,
|
||||
"Width":3.175,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"dosage"
|
||||
},
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox18",
|
||||
"Left":11.5888,
|
||||
"Top":0.0529167,
|
||||
"Width":1.21708,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"规格:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox10",
|
||||
"Left":16.5365,
|
||||
"Top":0.0529167,
|
||||
"Width":2.83104,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"drugSpec"
|
||||
},
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox20",
|
||||
"Left":19.7379,
|
||||
"Top":0.0529167,
|
||||
"Width":2.01083,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"单位:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox11",
|
||||
"Left":21.7223,
|
||||
"Top":0.05,
|
||||
"Width":5.92667,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"big_unit"
|
||||
}
|
||||
],
|
||||
"NewPageColumn":"Before"
|
||||
},
|
||||
"GroupFooter":{
|
||||
"Height":0.635
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Parameter":[
|
||||
{
|
||||
"Name":"machine_id",
|
||||
"Value":"DM1"
|
||||
}
|
||||
],
|
||||
"ReportHeader":[
|
||||
{
|
||||
"Name":"ReportHeader1",
|
||||
"Height":2.40771,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox1",
|
||||
"Center":"Horizontal",
|
||||
"Left":8.99583,
|
||||
"Top":0.608542,
|
||||
"Width":9.18104,
|
||||
"Height":1.21708,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":217500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"回收销毁记录"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"Version":"6.3.0.1",
|
||||
"Version":"6.8.1.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
|
@ -75,7 +75,7 @@
|
|||
},
|
||||
{
|
||||
"Name":"单位",
|
||||
"DBFieldName":"packUnit"
|
||||
"DBFieldName":"bigUnit"
|
||||
},
|
||||
{
|
||||
"Name":"剂型",
|
||||
|
@ -100,10 +100,20 @@
|
|||
"Type":"Binary"
|
||||
},
|
||||
{
|
||||
"Name":"drugId"
|
||||
"Name":"drugId",
|
||||
"DBFieldName":"drug_Id"
|
||||
},
|
||||
{
|
||||
"Name":"Field1"
|
||||
"Name":"凭证号",
|
||||
"DBFieldName":"invoiceId"
|
||||
},
|
||||
{
|
||||
"Name":"供应单位",
|
||||
"DBFieldName":"supplierDept"
|
||||
},
|
||||
{
|
||||
"Name":"领用部门",
|
||||
"DBFieldName":"receiveDept"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -113,7 +123,7 @@
|
|||
"Width":1.77271
|
||||
},
|
||||
{
|
||||
"Name":"操作类型",
|
||||
"Name":"凭证号",
|
||||
"Width":2.19604
|
||||
},
|
||||
{
|
||||
|
@ -158,20 +168,14 @@
|
|||
"ColumnContentCell":[
|
||||
{
|
||||
"Column":"日期",
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"ShrinkFontToFit":true,
|
||||
"DataField":"日期"
|
||||
},
|
||||
{
|
||||
"Column":"操作类型",
|
||||
"FreeCell":true,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox10",
|
||||
"Dock":"Fill",
|
||||
"TextAlign":"MiddleCenter"
|
||||
}
|
||||
]
|
||||
"Column":"凭证号",
|
||||
"DataField":"凭证号"
|
||||
},
|
||||
{
|
||||
"Column":"批号",
|
||||
|
@ -229,11 +233,11 @@
|
|||
"FreeCell":true,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox6",
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox14",
|
||||
"Dock":"Fill",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"药库"
|
||||
"DataField":"供应单位"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -242,11 +246,11 @@
|
|||
"FreeCell":true,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox7",
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox15",
|
||||
"Dock":"Fill",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"门诊药房"
|
||||
"DataField":"领用部门"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -270,7 +274,7 @@
|
|||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"操作类型",
|
||||
"Column":"凭证号",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
|
@ -395,6 +399,7 @@
|
|||
"Name":"Group1",
|
||||
"ByFields":"drugId",
|
||||
"GroupHeader":{
|
||||
"NewPage":"Before",
|
||||
"PrintGridBorder":false,
|
||||
"RepeatOnPage":true,
|
||||
"Control":[
|
||||
|
|
|
@ -0,0 +1,345 @@
|
|||
{
|
||||
"Version":"6.3.0.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Weight":400,
|
||||
"Charset":134
|
||||
},
|
||||
"Printer":{
|
||||
"Oriention":"Landscape",
|
||||
"LeftMargin":1,
|
||||
"TopMargin":1.4287,
|
||||
"RightMargin":1,
|
||||
"BottomMargin":1.8
|
||||
},
|
||||
"DetailGrid":{
|
||||
"CenterView":true,
|
||||
"Recordset":{
|
||||
"Field":[
|
||||
{
|
||||
"Name":"日期",
|
||||
"Type":"DateTime",
|
||||
"Format":"yyyy/MM/dd",
|
||||
"DBFieldName":"opt_date"
|
||||
},
|
||||
{
|
||||
"Name":"品名",
|
||||
"DBFieldName":"drug_name"
|
||||
},
|
||||
{
|
||||
"Name":"规格",
|
||||
"DBFieldName":"drug_spec"
|
||||
},
|
||||
{
|
||||
"Name":"上班结存数",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"beforenum"
|
||||
},
|
||||
{
|
||||
"Name":"领用数",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"getnum"
|
||||
},
|
||||
{
|
||||
"Name":"消耗数",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"usenum"
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"DBFieldName":"manu_no"
|
||||
},
|
||||
{
|
||||
"Name":"余",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"surplus"
|
||||
},
|
||||
{
|
||||
"Name":"交班人",
|
||||
"DBFieldName":"fromoperator"
|
||||
},
|
||||
{
|
||||
"Name":"接班人",
|
||||
"DBFieldName":"tooperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Column":[
|
||||
{
|
||||
"Name":"日期",
|
||||
"Width":2.56646
|
||||
},
|
||||
{
|
||||
"Name":"品名",
|
||||
"Width":4.60375
|
||||
},
|
||||
{
|
||||
"Name":"规格",
|
||||
"Width":2.59292
|
||||
},
|
||||
{
|
||||
"Name":"上班结存数",
|
||||
"Width":1.4
|
||||
},
|
||||
{
|
||||
"Name":"领用数",
|
||||
"Width":1.4
|
||||
},
|
||||
{
|
||||
"Name":"消耗数",
|
||||
"Width":1.4
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"Width":1.98438
|
||||
},
|
||||
{
|
||||
"Name":"余",
|
||||
"Width":0.608542
|
||||
},
|
||||
{
|
||||
"Name":"交班人",
|
||||
"Width":2.80458
|
||||
},
|
||||
{
|
||||
"Name":"接班人",
|
||||
"Width":2.35479
|
||||
}
|
||||
],
|
||||
"ColumnContent":{
|
||||
"Height":0.85,
|
||||
"ColumnContentCell":[
|
||||
{
|
||||
"Column":"日期",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"日期"
|
||||
},
|
||||
{
|
||||
"Column":"品名",
|
||||
"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":"交班人",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"交班人"
|
||||
},
|
||||
{
|
||||
"Column":"接班人",
|
||||
"TextAlign":"MiddleCenter",
|
||||
"DataField":"接班人"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ColumnTitle":{
|
||||
"Height":1.00542,
|
||||
"RepeatStyle":"OnPage",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"日期",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"日期"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"品名",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"品名"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"规格",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"规格"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"上班结存数",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"上班\r\n结存数"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"领用数",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"领用数"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"消耗数",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"WordWrap":true,
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"消耗数"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"批号",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"批号"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"余",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"余"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"交班人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"交班人"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"接班人",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"接班人"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Group":[
|
||||
{
|
||||
"Name":"Group1",
|
||||
"ByFields":"日期",
|
||||
"GroupHeader":{
|
||||
"Height":0,
|
||||
"PrintGridBorder":false,
|
||||
"NewPageColumn":"Before"
|
||||
},
|
||||
"GroupFooter":{
|
||||
"Visible":false,
|
||||
"PrintGridBorder":false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Parameter":[
|
||||
{
|
||||
"Name":"machine_id"
|
||||
},
|
||||
{
|
||||
"Name":"startDate",
|
||||
"DataType":"DateTime"
|
||||
},
|
||||
{
|
||||
"Name":"endDate",
|
||||
"DataType":"DateTime"
|
||||
}
|
||||
],
|
||||
"ReportHeader":[
|
||||
{
|
||||
"Name":"ReportHeader1",
|
||||
"Height":1.79917,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox1",
|
||||
"Dock":"Fill",
|
||||
"Center":"Both",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":262500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"交接班记录"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,633 @@
|
|||
{
|
||||
"Version":"6.3.0.1",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Weight":400,
|
||||
"Charset":134
|
||||
},
|
||||
"Printer":{
|
||||
"Oriention":"Landscape",
|
||||
"TopMargin":0.3175,
|
||||
"RightMargin":0.8996,
|
||||
"BottomMargin":0.3969
|
||||
},
|
||||
"DetailGrid":{
|
||||
"CenterView":true,
|
||||
"AppendBlankRow":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 dmr.`quantity` 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` = 2 \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":"p_name"
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"DBFieldName":"sex"
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"age"
|
||||
},
|
||||
{
|
||||
"Name":"身份证号",
|
||||
"DBFieldName":"id_number"
|
||||
},
|
||||
{
|
||||
"Name":"病历号",
|
||||
"DBFieldName":"patientno"
|
||||
},
|
||||
{
|
||||
"Name":"疾病名称",
|
||||
"Format":"yyyy/MM/dd",
|
||||
"DBFieldName":"disease"
|
||||
},
|
||||
{
|
||||
"Name":"药品ID",
|
||||
"DBFieldName":"drugId"
|
||||
},
|
||||
{
|
||||
"Name":"数量",
|
||||
"Type":"Integer",
|
||||
"DBFieldName":"quantity"
|
||||
},
|
||||
{
|
||||
"Name":"处方医生",
|
||||
"DBFieldName":"doctor_name"
|
||||
},
|
||||
{
|
||||
"Name":"处方编号",
|
||||
"DBFieldName":"order_no"
|
||||
},
|
||||
{
|
||||
"Name":"处方日期",
|
||||
"DBFieldName":"order_date"
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"DBFieldName":"nickname"
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"DBFieldName":"reviewNickname"
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"DBFieldName":"manuNo"
|
||||
},
|
||||
{
|
||||
"Name":"麻醉卡号"
|
||||
},
|
||||
{
|
||||
"Name":"代办人姓名"
|
||||
},
|
||||
{
|
||||
"Name":"代办人身份证号"
|
||||
},
|
||||
{
|
||||
"Name":"编号"
|
||||
},
|
||||
{
|
||||
"Name":"药品名称",
|
||||
"DBFieldName":"drugName"
|
||||
},
|
||||
{
|
||||
"Name":"规格",
|
||||
"DBFieldName":"drugSpec"
|
||||
},
|
||||
{
|
||||
"Name":"单位",
|
||||
"DBFieldName":"packUnit"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Column":[
|
||||
{
|
||||
"Name":"患者姓名",
|
||||
"Width":2.38125
|
||||
},
|
||||
{
|
||||
"Name":"性别",
|
||||
"Width":1.00542
|
||||
},
|
||||
{
|
||||
"Name":"年龄",
|
||||
"Width":0.978958
|
||||
},
|
||||
{
|
||||
"Name":"身份证号",
|
||||
"Width":5.00063
|
||||
},
|
||||
{
|
||||
"Name":"病历号",
|
||||
"Width":2.77813
|
||||
},
|
||||
{
|
||||
"Name":"疾病名称",
|
||||
"Width":3.01625
|
||||
},
|
||||
{
|
||||
"Name":"药品ID",
|
||||
"Width":2.59292
|
||||
},
|
||||
{
|
||||
"Name":"数量",
|
||||
"Width":1.69333
|
||||
},
|
||||
{
|
||||
"Name":"处方医生",
|
||||
"Width":2.32833
|
||||
},
|
||||
{
|
||||
"Name":"处方编号",
|
||||
"Width":2.80458
|
||||
},
|
||||
{
|
||||
"Name":"发药人",
|
||||
"Width":3.20146
|
||||
},
|
||||
{
|
||||
"Name":"复核人",
|
||||
"Width":1.69333
|
||||
},
|
||||
{
|
||||
"Name":"批号",
|
||||
"Width":1.69333
|
||||
},
|
||||
{
|
||||
"Name":"麻醉卡号",
|
||||
"Width":3.59833
|
||||
},
|
||||
{
|
||||
"Name":"代办人姓名",
|
||||
"Width":1.69333
|
||||
},
|
||||
{
|
||||
"Name":"代办人身份证号",
|
||||
"Width":1.69333
|
||||
},
|
||||
{
|
||||
"Name":"Column10",
|
||||
"Width":2.14313
|
||||
},
|
||||
{
|
||||
"Name":"Column11",
|
||||
"Width":1.69333
|
||||
}
|
||||
],
|
||||
"ColumnContent":{
|
||||
"Height":1.00542,
|
||||
"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":"药品ID",
|
||||
"DataField":"药品ID"
|
||||
},
|
||||
{
|
||||
"Column":"数量",
|
||||
"DataField":"数量"
|
||||
},
|
||||
{
|
||||
"Column":"处方医生",
|
||||
"DataField":"处方医生"
|
||||
},
|
||||
{
|
||||
"Column":"处方编号",
|
||||
"DataField":"处方编号"
|
||||
},
|
||||
{
|
||||
"Column":"发药人",
|
||||
"DataField":"处方日期"
|
||||
},
|
||||
{
|
||||
"Column":"复核人",
|
||||
"DataField":"发药人"
|
||||
},
|
||||
{
|
||||
"Column":"批号",
|
||||
"DataField":"复核人"
|
||||
},
|
||||
{
|
||||
"Column":"麻醉卡号",
|
||||
"DataField":"批号"
|
||||
},
|
||||
{
|
||||
"Column":"代办人姓名",
|
||||
"DataField":"麻醉卡号"
|
||||
},
|
||||
{
|
||||
"Column":"代办人身份证号",
|
||||
"DataField":"代办人姓名"
|
||||
},
|
||||
{
|
||||
"Column":"Column10",
|
||||
"DataField":"代办人身份证号"
|
||||
},
|
||||
{
|
||||
"Column":"Column11"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ColumnTitle":{
|
||||
"Height":1.40229,
|
||||
"RepeatStyle":"OnGroupHeaderPage",
|
||||
"ColumnTitleCell":[
|
||||
{
|
||||
"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":"疾病名称"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"药品ID",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"药品ID"
|
||||
},
|
||||
{
|
||||
"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":"发药人"
|
||||
},
|
||||
{
|
||||
"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":false,
|
||||
"Column":"Column10",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"代办人\r\n身份证"
|
||||
},
|
||||
{
|
||||
"GroupTitle":false,
|
||||
"Column":"Column11",
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":120000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"编号"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Group":[
|
||||
{
|
||||
"Name":"Group1",
|
||||
"ByFields":"药品ID",
|
||||
"GroupHeader":{
|
||||
"PrintGridBorder":false,
|
||||
"RepeatOnPage":true,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox16",
|
||||
"Top":0.0529167,
|
||||
"Width":1.19063,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"药品名称:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox7",
|
||||
"Left":1.16417,
|
||||
"Top":0.0529167,
|
||||
"Width":5.63563,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"药品名称"
|
||||
},
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox17",
|
||||
"Left":6.93208,
|
||||
"Top":0.0529167,
|
||||
"Width":1.11125,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"规格:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox8",
|
||||
"Left":8.01688,
|
||||
"Top":0.0529167,
|
||||
"Width":3.175,
|
||||
"Height":0.978958,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"规格"
|
||||
},
|
||||
{
|
||||
"Type":"StaticBox",
|
||||
"Name":"StaticBox15",
|
||||
"Left":11.59,
|
||||
"Top":0.05,
|
||||
"Width":2.01083,
|
||||
"Height":0.79375,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"Text":"单位:"
|
||||
},
|
||||
{
|
||||
"Type":"FieldBox",
|
||||
"Name":"FieldBox9",
|
||||
"Left":12.78,
|
||||
"Top":0.05,
|
||||
"Width":1.88,
|
||||
"Height":0.98,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":105000,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"DataField":"单位"
|
||||
}
|
||||
],
|
||||
"NewPageColumn":"Before"
|
||||
},
|
||||
"GroupFooter":{
|
||||
"Height":0.635
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"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.79917,
|
||||
"Control":[
|
||||
{
|
||||
"Type":"MemoBox",
|
||||
"Name":"MemoBox2",
|
||||
"Left":7.59354,
|
||||
"Top":0.211667,
|
||||
"Width":5.60917,
|
||||
"Height":1.19063,
|
||||
"Font":{
|
||||
"Name":"宋体",
|
||||
"Size":217500,
|
||||
"Bold":true,
|
||||
"Charset":134
|
||||
},
|
||||
"TextAlign":"MiddleCenter",
|
||||
"Text":"发药登记表"
|
||||
}
|
||||
],
|
||||
"RepeatOnPage":true
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,350 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Report;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class AccountWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
|
||||
{
|
||||
public static AccountWindowViewModel vm;
|
||||
//private int _pageNum = 1;
|
||||
//public int PageNum
|
||||
//{
|
||||
// get => _pageNum;
|
||||
// set
|
||||
// {
|
||||
// SetProperty(ref _pageNum, value);
|
||||
// RequestData();
|
||||
// }
|
||||
//}
|
||||
|
||||
//private int _pageCount = 1;
|
||||
//public int PageCount
|
||||
//{
|
||||
// get => _pageCount;
|
||||
// set
|
||||
// {
|
||||
// SetProperty(ref _pageCount, value);
|
||||
// }
|
||||
//}
|
||||
|
||||
//private int _pageSize = 8;
|
||||
//public int PageSize
|
||||
//{
|
||||
// get => _pageSize;
|
||||
// set
|
||||
// {
|
||||
// SetProperty(ref _pageSize, value);
|
||||
// }
|
||||
//}
|
||||
|
||||
//private int _totalCount = 0;
|
||||
//public int TotalCount
|
||||
//{
|
||||
// get => _totalCount;
|
||||
// set
|
||||
// {
|
||||
// SetProperty(ref _totalCount, value);
|
||||
// }
|
||||
//}
|
||||
private DateTime? _startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
|
||||
|
||||
private DateTime? nowDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
|
||||
|
||||
public DateTime? StartDate
|
||||
{
|
||||
get => _startDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
SetProperty(ref _startDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _startDate, value);
|
||||
}
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
|
||||
public DateTime? EndDate
|
||||
{
|
||||
get => _endDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
TimeSpan ershisi = new TimeSpan(23, 59, 59);
|
||||
SetProperty(ref _endDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0, 23, 59, 59));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _endDate, value);
|
||||
}
|
||||
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
/// <summary>
|
||||
/// 账册
|
||||
/// </summary>
|
||||
private List<AccountBookG2> _accountList = new();
|
||||
|
||||
public List<AccountBookG2> AccountList
|
||||
{
|
||||
get => _accountList;
|
||||
set => SetProperty(ref _accountList, value);
|
||||
}
|
||||
/// <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);
|
||||
//if (_drugInfo != null)
|
||||
//{
|
||||
//DrugManuNos = _drugInfo.DrugManuNos.OrderByDescending(dm => dm.ManuNo).ToList();
|
||||
//}
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 账册类型1入2出3总结存
|
||||
/// </summary>
|
||||
private List<AccountType> _accountTypeList = new List<AccountType>() {
|
||||
new AccountType
|
||||
{
|
||||
AccountTypeName="借入",
|
||||
AccountTypeValue=1
|
||||
},
|
||||
new AccountType
|
||||
{
|
||||
AccountTypeName="发出",
|
||||
AccountTypeValue=2
|
||||
},
|
||||
new AccountType
|
||||
{
|
||||
AccountTypeName="日结存",
|
||||
AccountTypeValue=3
|
||||
},
|
||||
new AccountType
|
||||
{
|
||||
AccountTypeName="总结存",
|
||||
AccountTypeValue=4
|
||||
}
|
||||
};
|
||||
public List<AccountType>? AccountTypeList
|
||||
{
|
||||
get => _accountTypeList;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _accountTypeList, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
private AccountType? _accountType;
|
||||
public AccountType AccountType
|
||||
{
|
||||
get => _accountType;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _accountType, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
//MachineRecordService _machineRecordService;
|
||||
IEventAggregator _eventAggregator;
|
||||
////private SqlSugarScope SqlSugarHelper.Db;
|
||||
public AccountWindowViewModel( IEventAggregator eventAggregator)
|
||||
{
|
||||
//_machineRecordService = machineRecord;
|
||||
////this.SqlSugarHelper.Db = sqlSugarScope;
|
||||
_eventAggregator = eventAggregator;
|
||||
vm = this;
|
||||
}
|
||||
void RequestData()
|
||||
{
|
||||
int totalCount = 0;
|
||||
AccountList = ReportAccountBook(StartDate, EndDate, AccountType == null ? 0 : AccountType.AccountTypeValue, DrugInfo == null ? "" : DrugInfo.DrugId.ToString() ?? "");
|
||||
//for (int i = 0; i < accountList.Count; i++)
|
||||
//{
|
||||
// if (accountList[i].DrugInfo is null)
|
||||
// {
|
||||
// DrugInfo drug= new DrugInfo();
|
||||
// drug.DrugId = accountList[i].DrugId;
|
||||
// drug.DrugName = accountList[i].DrugName;
|
||||
// drug.DrugSpec = accountList[i].DrugSpec;
|
||||
// drug.Dosage= accountList[i].Dosage;
|
||||
// drug.PackUnit= accountList[i].PackUnit;
|
||||
// drug.Manufactory= accountList[i].Manufactory;
|
||||
// accountList[i].DrugInfo= drug;
|
||||
// }
|
||||
//}
|
||||
//ICollectionView vw = CollectionViewSource.GetDefaultView(accountList);
|
||||
//vw.GroupDescriptions.Add(new PropertyGroupDescription("DrugInfo"));
|
||||
|
||||
}
|
||||
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 long CurrentTimeMillis()
|
||||
{
|
||||
return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
|
||||
}
|
||||
/// <summary>
|
||||
/// 导出发药登记表
|
||||
/// </summary>
|
||||
public DelegateCommand DownloadOrderUser
|
||||
{
|
||||
get => new DelegateCommand(() => {
|
||||
GridReportUtil.OrderUseReport(StartDate, EndDate, DrugInfo == null ? "" : DrugInfo.DrugId.ToString() ?? "");
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出账册
|
||||
/// </summary>
|
||||
public DelegateCommand DownloadAccountBook
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
GridReportUtil.PrintReportAccountBook(StartDate, EndDate, AccountType == null ? 0 : AccountType.AccountTypeValue, DrugInfo == null ? "" : DrugInfo.DrugId.ToString() ?? "");
|
||||
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
public DelegateCommand Query
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
RequestData();
|
||||
});
|
||||
}
|
||||
|
||||
public bool KeepAlive => true;
|
||||
|
||||
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 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) || di.DrugId.Contains(text)).OrderBy(di => di.DrugName).OrderBy(di => di.DrugId).ToList();
|
||||
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
//药品信息
|
||||
GetAllDrugInfos();
|
||||
//查询表格数据
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
|
||||
private List<AccountBookG2> ReportAccountBook(DateTime? startDate, DateTime? endDate, int type, string drug_id = "")
|
||||
{
|
||||
DateTime? p_startDate = startDate ?? Convert.ToDateTime("2010-1-1");
|
||||
DateTime? p_endDate = endDate ?? DateTime.Now.AddDays(1);
|
||||
string p_machine_id = (ConfigurationManager.AppSettings["machineId"] ?? "DM3");
|
||||
string SQL = $@" SELECT ac.create_date as CreateDate, ac.TYPE,
|
||||
if(ac.type in(1,2),0,ac.yesterday_quantity) as YQuantity,if(ac.type in(3,4),0,ac.add_quantity) as AddQuantity,if(ac.type in(3,4),0,ac.out_quantity) as OutQuantity,
|
||||
if(ac.type in(1,2),0,ac.manu_stock) as ManuStock,ac.total_stock, -- if(ac.type in(1,2),0,ac.total_stock) as TotalStock,
|
||||
ac.invoice_no as InvoiceNo, ac.manu_no as ManuNo,ac.eff_date as EffDate,di.drug_id,di.drug_name as DrugName,di.drug_spec as DrugSpec,di.manufactory as Manufactory,di.pack_unit,di.dosage,u1.user_name as OperatorName,u2.user_name as ReviewerName
|
||||
FROM account_book_g2 ac left join drug_info di on ac.drug_id=di.drug_id left join user_list u1 on ac.user_id1=u1.id left join user_list u2 on ac.user_id2=u2.id
|
||||
WHERE ac.machine_id='{p_machine_id}' and create_time>'{p_startDate}' AND create_time<'{p_endDate}' ";
|
||||
if (!string.IsNullOrEmpty(drug_id))
|
||||
{
|
||||
SQL += " AND ac.drug_id='" + drug_id + "' ";
|
||||
}
|
||||
SQL += " ORDER BY ac.create_date desc,ac.drug_id";
|
||||
if (type > 0)
|
||||
{
|
||||
if (type == 1)
|
||||
{
|
||||
SQL += " WHERE AddQuantity>0 ";
|
||||
}
|
||||
if (type == 2)
|
||||
{
|
||||
SQL += " WHERE OutQuantity>0 ";
|
||||
}
|
||||
if (type == 3)
|
||||
{
|
||||
SQL += " WHERE type=3 ";
|
||||
}
|
||||
if (type == 4)
|
||||
{
|
||||
SQL += " WHERE type=4 ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ChannelStocks = q.Select(it => { it.CheckQuantity = it.Quantity; return it; }).ToList();
|
||||
|
||||
List<AccountBookG2> accountList = SqlSugarHelper.Db.SqlQueryable<AccountBookG2>(SQL)
|
||||
//.AddParameters(new
|
||||
//{
|
||||
// machineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
|
||||
//})
|
||||
//.Select(it => new { o = new AccountModel(), i = new DrugInfo() })
|
||||
//.Select(it=>new AccountModel())
|
||||
//.Select("*") //让上面一行不生成sql
|
||||
.ToList();
|
||||
|
||||
//List<AccountModel> accountList=new List<AccountModel>();
|
||||
return accountList;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -300,8 +300,8 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.AddQuantity,
|
||||
Type = 1,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -0,0 +1,183 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.select;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ApplyListWindowViewModel : BindableBase, INavigationAware
|
||||
{
|
||||
public static List<OrderTakeSelect> StaticSelects = new()
|
||||
{
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugName",
|
||||
Name = "药品名称"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "PyCode",
|
||||
Name = "拼音码"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugBarcode",
|
||||
Name = "药品条码"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugId",
|
||||
Name = "药品编码"
|
||||
}
|
||||
};
|
||||
|
||||
private List<OrderTakeSelect> _selects = StaticSelects;
|
||||
|
||||
public List<OrderTakeSelect> Selects
|
||||
{
|
||||
get { return _selects; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selects, value);
|
||||
}
|
||||
}
|
||||
private OrderTakeSelect _selectedItem = StaticSelects[0];
|
||||
|
||||
private string? _searchValue;
|
||||
|
||||
/// <summary>
|
||||
/// 查询条件 查询字段值
|
||||
/// </summary>
|
||||
public string? SearchValue
|
||||
{
|
||||
get { return _searchValue; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _searchValue, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询条件 查询字段
|
||||
/// </summary>
|
||||
public OrderTakeSelect SelectedItem
|
||||
{
|
||||
get { return _selectedItem; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selectedItem, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 请领单状态
|
||||
/// </summary>
|
||||
private List<DrugPleaseState> _drugPleaseStateList = new List<DrugPleaseState>() {
|
||||
new DrugPleaseState
|
||||
{
|
||||
StateName="已创建",
|
||||
StateValue=0
|
||||
},
|
||||
new DrugPleaseState
|
||||
{
|
||||
StateName="审核通过",
|
||||
StateValue=1
|
||||
},
|
||||
new DrugPleaseState
|
||||
{
|
||||
StateName="已出库",
|
||||
StateValue=2
|
||||
},
|
||||
new DrugPleaseState
|
||||
{
|
||||
StateName="已入库",
|
||||
StateValue=3
|
||||
}
|
||||
};
|
||||
public List<DrugPleaseState>? DrugPleaseStateList
|
||||
{
|
||||
get => _drugPleaseStateList;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _drugPleaseStateList, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
private DrugPleaseState? _drugPleaseState;
|
||||
public DrugPleaseState _DrugPleaseState
|
||||
{
|
||||
get => _drugPleaseState;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _drugPleaseState, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 处方、请领中间表
|
||||
/// </summary>
|
||||
private List<CollectDrug> _collectDrugLst;
|
||||
public List<CollectDrug> CollectDrugLst
|
||||
{
|
||||
get => _collectDrugLst; set { SetProperty(ref _collectDrugLst, value); }
|
||||
}
|
||||
|
||||
private CollectDrug _selectCollectDrug;
|
||||
public CollectDrug SelectCollectDrug { get => _selectCollectDrug; set { SetProperty(ref _selectCollectDrug, value); } }
|
||||
|
||||
|
||||
private void RequestData()
|
||||
{
|
||||
if (CollectDrugLst != null)
|
||||
{
|
||||
CollectDrugLst.Clear();
|
||||
}
|
||||
CollectDrugLst = SqlSugarHelper.Db.Queryable<CollectDrug>()
|
||||
.Includes<DrugPleaseClaim>(cd => cd.drugPleaseClaim)
|
||||
.Includes<DrugInfo>(cd => cd.drugInfo)
|
||||
.Where(cd => cd.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugId"), (cd) => cd.drugInfo.DrugId.ToString() == SearchValue)
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (cd) => cd.drugInfo.DrugName.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (cd) => cd.drugInfo.PyCode.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cd) => cd.drugInfo.DrugBarcode.Contains(SearchValue))
|
||||
.WhereIF((_DrugPleaseState!=null&& _DrugPleaseState.StateValue>=0),(cd)=>cd.Status==_DrugPleaseState.StateValue)
|
||||
.OrderByDescending(cd => cd.Createdate)
|
||||
.OrderByDescending(cd => cd.DrugId)
|
||||
.ToList();
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
public DelegateCommand Query
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
RequestData();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,656 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
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.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ChangeShiftsDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
public string Title => "交接班";
|
||||
|
||||
public bool KeepAlive => true;
|
||||
//交班人 发药人
|
||||
public UserList Operator { get; set; }
|
||||
private bool _operatorLogin = false;
|
||||
public bool OperatorLogin
|
||||
{
|
||||
get => _operatorLogin;
|
||||
set { SetProperty(ref _operatorLogin, value); }
|
||||
}
|
||||
//private _brushesOperator = Brushes.Green;
|
||||
//public System.Drawing.Brush BrushesOperator
|
||||
//{
|
||||
// get=> _brushesOperator;
|
||||
// set { SetProperty(ref _brushesOperator, value);}
|
||||
//}
|
||||
//交班人 审核人
|
||||
public UserList Reviewer { get; set; }
|
||||
private bool _reviewerLogin = false;
|
||||
public bool ReviewerLogin
|
||||
{
|
||||
get => _reviewerLogin;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _reviewerLogin, value);
|
||||
}
|
||||
}
|
||||
//private System.Drawing.Brush _brushesReviewer=Brushes.Green;
|
||||
//public System.Drawing.Brush BrushesReviewer
|
||||
//{
|
||||
// get=> _brushesReviewer;
|
||||
// set
|
||||
// {
|
||||
// SetProperty(ref _brushesReviewer, value);
|
||||
// }
|
||||
//}
|
||||
|
||||
//接班人 发药人
|
||||
public UserList JieOperator { get; set; }
|
||||
//接班人 审核人
|
||||
public UserList JieReviewer { get; set; }
|
||||
|
||||
//当前操作人
|
||||
public UserList CurrentUser { get; set; }
|
||||
//双人登录还是单人登录
|
||||
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
|
||||
//第一个登录的是发药人还是接班人
|
||||
private string firstLogin = ConfigurationManager.AppSettings["firstLogin"]?.ToString() ?? "operator";
|
||||
//验证按钮可用状态
|
||||
private bool _jiaoBanOk = true;
|
||||
public bool JiaoBanOk
|
||||
{
|
||||
get => _jiaoBanOk;
|
||||
set { SetProperty(ref _jiaoBanOk, value); }
|
||||
}
|
||||
|
||||
private NavigationParameters keys = new NavigationParameters();
|
||||
|
||||
public bool SingleLogin
|
||||
{
|
||||
get => ReadAppSetting("loginMode") == "1";
|
||||
//get => loginMode == 1;
|
||||
}
|
||||
public bool MultiLogin
|
||||
{
|
||||
//get => loginMode == 2;
|
||||
get => ReadAppSetting("loginMode") == "2";
|
||||
}
|
||||
|
||||
//private PortUtil _portUtil;
|
||||
private Boolean _loginBtnEnable = true;
|
||||
public Boolean LoginBtnEnable { get { return _loginBtnEnable; } set { SetProperty(ref _loginBtnEnable, value); } }
|
||||
public string Password { get { return password; } set { SetProperty(ref password, value); } }
|
||||
|
||||
public string Username { get { return username; } set { SetProperty(ref username, value); } }
|
||||
private readonly ILog logger = LogManager.GetLogger(typeof(LoginWindowViewModel));
|
||||
|
||||
private string username;
|
||||
private string password;
|
||||
|
||||
private bool _fingerMsg;
|
||||
|
||||
public bool FingerMsg
|
||||
{
|
||||
get => _fingerMsg;
|
||||
set => SetProperty(ref _fingerMsg, value);
|
||||
}
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
public DelegateCommand BtnCloseCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
//确认交接
|
||||
public DelegateCommand ShiftsCommand => new DelegateCommand(ShiftsAction);
|
||||
private void ShiftsAction()
|
||||
{
|
||||
if (Operator != null && !OperatorLogin)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "交班发药人需要系统验证!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
if (Reviewer != null && !ReviewerLogin)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "交班审核人需要系统验证!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
if (JieOperator == null && JieReviewer == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "接班发药人或审核需要系统验证!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
//1验证交班人与接班人是否都已登录验证2写交接信息
|
||||
//if ((Operator != null || Reviewer != null) && (JieOperator != null || JieReviewer != null))
|
||||
//{
|
||||
DateTime dt = DateTime.Now;
|
||||
//保存交接班信息(查询当前值班人的最后一条交接班信息(如有则修改状态,没有则插入一条)并写入一条接班人信息)
|
||||
//var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
List<HkcChangeShifts> listHkcChangeShifts = SqlSugarHelper.Db.Queryable<HkcChangeShifts>()
|
||||
.Where(cs => cs.State == "0")
|
||||
.WhereIF(Operator != null && !string.IsNullOrEmpty(Operator.UserName), cs => cs.FromOperator == Operator.UserName)
|
||||
.WhereIF(Reviewer != null && !string.IsNullOrEmpty(Reviewer.UserName), cs => cs.FromRviewer == Reviewer.UserName)
|
||||
.OrderByDescending(cs => cs.OptState)
|
||||
.ToList();
|
||||
|
||||
if (listHkcChangeShifts != null && listHkcChangeShifts.Count > 0)
|
||||
{
|
||||
//存在则修改,不存在则插入一条
|
||||
SqlSugarHelper.Db.Updateable(new HkcChangeShifts()
|
||||
{
|
||||
Id = listHkcChangeShifts[0].Id,
|
||||
ToOperator = JieOperator == null ? "" : JieOperator.UserName,
|
||||
ToReviewer = JieReviewer == null ? "" : JieReviewer.UserName,
|
||||
State = "1",
|
||||
ToDate = dt
|
||||
}).UpdateColumns(it => new { it.ToOperator, it.ToReviewer, it.State, it.ToDate }).WhereColumns(it => new { it.Id }).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
SqlSugarHelper.Db.Insertable(new HkcChangeShifts()
|
||||
{
|
||||
FromOperator = Operator == null ? "" : Operator.UserName,
|
||||
FromRviewer = Reviewer == null ? "" : Reviewer.UserName,
|
||||
ToOperator = JieOperator == null ? "" : JieOperator.UserName,
|
||||
ToReviewer = JieReviewer == null ? "" : JieReviewer.UserName,
|
||||
State = "1",
|
||||
OptState = "0",
|
||||
OptDate = dt,
|
||||
Machineid = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
|
||||
}).ExecuteCommand();
|
||||
|
||||
}
|
||||
SqlSugarHelper.Db.Insertable(new HkcChangeShifts()
|
||||
{
|
||||
FromOperator = JieOperator == null ? "" : JieOperator.UserName,
|
||||
FromRviewer = JieReviewer == null ? "" : JieReviewer.UserName,
|
||||
State = "0",
|
||||
OptState = "0",
|
||||
OptDate = dt,
|
||||
//ToDate = dt,
|
||||
Machineid = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
|
||||
}).ExecuteCommand();
|
||||
|
||||
//插入交接班报表数据信息
|
||||
string strSql = @"SELECT drug.drug_name,drug.DRUG_SPEC,c.manu_no,d.useNum,d.getNum,sum(quantity) as surplus,
|
||||
(SELECT d2.manu_stock FROM account_book_g2 d2 WHERE d2.drug_id = c.`drug_id` and d2.manu_no=c.manu_no AND d2.create_date < @beforeDate
|
||||
ORDER BY d2.create_date DESC,d2.id DESC LIMIT 1) AS beforeNum
|
||||
from channel_stock c LEFT JOIN drug_info drug on c.drug_id=drug.drug_id left JOIN (SELECT drug_id,manu_no,
|
||||
SUM(IF(d1.`type` = 1, d1.quantity, 0)) AS getNum,SUM(IF(d1.`type` = 2, d1.quantity, 0)) AS useNum FROM dm_machine_record d1
|
||||
WHERE d1.`type` IN (1, 2) AND d1.`operation_time` >= @startDate and d1.`operation_time` <=@endDate and d1.machine_id=@machineId GROUP BY d1.Drug_ID ,d1.manu_no) d
|
||||
on c.drug_id=d.drug_id and c.manu_no=d.manu_no WHERE c.machine_id=@machineId and c.drug_id is not NULL GROUP BY c.Drug_ID ,c.manu_no
|
||||
UNION
|
||||
SELECT drug.drug_name,drug.DRUG_SPEC,d.manu_no,d.useNum,d.getNum,sum(quantity) as surplus,(SELECT d2.manu_stock FROM account_book_g2 d2 WHERE d2.drug_id = d.`drug_id` and d2.manu_no=d.manu_no AND d2.create_date < @beforeDate
|
||||
ORDER BY d2.create_date DESC,d2.id DESC LIMIT 1) AS beforeNum from (SELECT drug_id,manu_no, SUM(IF(d1.`type` = 1, d1.quantity, 0)) AS getNum,SUM(IF(d1.`type` = 2, d1.quantity, 0)) AS useNum FROM dm_machine_record d1
|
||||
WHERE d1.`type` IN (1, 2) AND d1.`operation_time` >= @startDate and d1.`operation_time` <=@endDate and d1.machine_id=@machineId GROUP BY d1.Drug_ID ,d1.manu_no) d
|
||||
LEFT JOIN drug_info drug on d.drug_id=drug.drug_id left JOIN channel_stock c on c.drug_id=d.drug_id and c.manu_no=d.manu_no AND c.machine_id=@machineId GROUP BY d.Drug_ID ,d.manu_no ";
|
||||
List<ShiftsReport> shiftsReports = SqlSugarHelper.Db.SqlQueryable<dynamic>(strSql)
|
||||
.AddParameters(new
|
||||
{
|
||||
machineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1",
|
||||
beforeDate = listHkcChangeShifts[0].OptDate,
|
||||
startDate = listHkcChangeShifts[0].OptDate,
|
||||
endDate = dt
|
||||
})
|
||||
.Select(it => new ShiftsReport())
|
||||
.ToList();
|
||||
if (shiftsReports != null && shiftsReports.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < shiftsReports.Count; i++)
|
||||
{
|
||||
|
||||
SqlSugarHelper.Db.Insertable(new ShiftsReport()
|
||||
{
|
||||
OptDate = dt,
|
||||
DrugName = shiftsReports[i].DrugName,
|
||||
DrugSpec = shiftsReports[i].DrugSpec,
|
||||
BeforeNum = shiftsReports[i].BeforeNum ?? 0,
|
||||
GetNum = shiftsReports[i].GetNum ?? 0,
|
||||
UseNum = shiftsReports[i].UseNum ?? 0,
|
||||
ManuNo = shiftsReports[i].ManuNo,
|
||||
Surplus = shiftsReports[i].Surplus ?? 0,
|
||||
FromOperator = Operator == null ? "" : Operator.Nickname,
|
||||
FromReviewer = Reviewer == null ? "" : Reviewer.Nickname,
|
||||
ToOperator = JieOperator == null ? "" : JieOperator.Nickname,
|
||||
ToReviewer = JieReviewer == null ? "" : JieReviewer.Nickname,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (f.Data)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "交接班操作完成!",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "交接班操作失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "交接班需要交班人与接班人全部系统验证!",
|
||||
// Type = MsgType.ERROR,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//}
|
||||
}
|
||||
//用户名密码登录
|
||||
public DelegateCommand LoginCommand => new DelegateCommand(LoginAction);
|
||||
|
||||
//清空
|
||||
public DelegateCommand ClearCommand => new DelegateCommand(ClearAction);
|
||||
private void ClearAction()
|
||||
{
|
||||
Username = string.Empty;
|
||||
Password = string.Empty;
|
||||
}
|
||||
|
||||
private void LoginAction()
|
||||
{
|
||||
Login();
|
||||
}
|
||||
|
||||
void Login()
|
||||
{
|
||||
LoginBtnEnable = false;
|
||||
if (!string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password))
|
||||
{
|
||||
UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
|
||||
.Includes<RoleDm>(u => u.Role)
|
||||
.InnerJoin<RoleDm>((u, r) => u.RoleId == r.Id)
|
||||
.First(u => u.UserName == username && ConfigurationManager.AppSettings["machineId"].ToString().Equals(u.MachineId));
|
||||
|
||||
if (userList == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "无此用户",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Username = string.Empty;
|
||||
Password = string.Empty;
|
||||
}
|
||||
else if (userList.Role == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "用户还未设置权限,请联系管理员",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Username = string.Empty;
|
||||
Password = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (userList.PassWord == MD5.GetMD5Hash(Password))
|
||||
{
|
||||
Username = string.Empty;
|
||||
Password = string.Empty;
|
||||
HkcChangeShifts changeOperator = GetOperator();
|
||||
if (changeOperator != null)
|
||||
{
|
||||
|
||||
if (userList.UserName == changeOperator.FromOperator&&!OperatorLogin)
|
||||
{
|
||||
|
||||
Operator = userList;
|
||||
RaisePropertyChanged("Operator");
|
||||
//交班人的发药人登录
|
||||
OperatorLogin = true;
|
||||
if (((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
else if (userList.UserName == changeOperator.FromRviewer&&!ReviewerLogin)
|
||||
{
|
||||
//交班人的审核人登录
|
||||
Reviewer = userList;
|
||||
RaisePropertyChanged("Reviewer");
|
||||
ReviewerLogin = true;
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && JieOperator != null && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keys.ContainsKey("operator"))
|
||||
{
|
||||
//if (userList.UserName == (JieOperator == null ? "" : JieOperator.UserName))
|
||||
//{
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "接班发药人不能与审核人相同",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//}
|
||||
//else
|
||||
{
|
||||
keys.Add("reviewer", userList);
|
||||
JieReviewer = userList;
|
||||
RaisePropertyChanged("JieReviewer");
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//if (userList.UserName == (JieReviewer == null ? "" : JieReviewer.UserName))
|
||||
//{
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "接班发药人不能与审核人相同",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//}
|
||||
//else
|
||||
{
|
||||
keys.Add("operator", userList);
|
||||
JieOperator = userList;
|
||||
RaisePropertyChanged("JieOperator");
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "密码错误",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Password = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请输入账号或密码",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
LoginBtnEnable = true;
|
||||
}
|
||||
//void SetUser(UserList user)
|
||||
//{
|
||||
// // 双人登录模式
|
||||
// {
|
||||
// // 如果已经录入了发药人,已经有一个用户登录
|
||||
// if (keys.ContainsKey("operator"))
|
||||
// {
|
||||
// if (keys.GetValue<UserList>("operator").Id != user.Id)
|
||||
// {
|
||||
// keys.Add("reviewer", user);
|
||||
// JieReviewer = user;
|
||||
// RaisePropertyChanged("JieReviewer");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "该发药人账号已登录,请输入不同账号",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// }
|
||||
// }
|
||||
// // 如果已经录入了审核人, 已经有一个用户登录
|
||||
// else if (keys.ContainsKey("reviewer"))
|
||||
// {
|
||||
// if (keys.GetValue<UserList>("reviewer").Id != user.Id)
|
||||
// {
|
||||
// keys.Add("operator", user);
|
||||
// JieOperator = user;
|
||||
// RaisePropertyChanged("JieOperator");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "该审核人账号已登录,请输入不同账号",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// }
|
||||
// }
|
||||
// // 第一个用户登录
|
||||
// else
|
||||
// {
|
||||
// if (firstLogin.Equals("operator"))
|
||||
// {
|
||||
// keys.Add("operator", user);
|
||||
// JieOperator = user;
|
||||
// RaisePropertyChanged("JieOperator");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// keys.Add("reviewer", user);
|
||||
// JieReviewer = user;
|
||||
// RaisePropertyChanged("JieReviewer");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
void ChangeShiftsLoginEvent(FingerprintMsg msg)
|
||||
{
|
||||
logger.Info(msg.ToString());
|
||||
if (msg.Message.Equals("CONNECT"))
|
||||
{
|
||||
FingerMsg = !msg.Result;
|
||||
}
|
||||
if (LoginBtnEnable)
|
||||
{
|
||||
if (msg.Message.Equals("LOGIN"))
|
||||
{
|
||||
UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
|
||||
.Includes<RoleDm>(u => u.Role)
|
||||
.First(u => u.Id == msg.Id);
|
||||
|
||||
if (userList == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "无此用户",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//Username = "";
|
||||
//Password = "";
|
||||
}
|
||||
else if (userList.Role == null)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "用户还未设置权限,请联系管理员",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//Username = "";
|
||||
//Password = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
HkcChangeShifts changeOperator = GetOperator();
|
||||
if (changeOperator != null)
|
||||
{
|
||||
if (userList.UserName == changeOperator.FromOperator)
|
||||
{
|
||||
Operator = userList;
|
||||
RaisePropertyChanged("Operator");
|
||||
//交班人的发药人登录
|
||||
OperatorLogin = true;
|
||||
if (((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
|
||||
}
|
||||
else if (userList.UserName == changeOperator.FromRviewer)
|
||||
{
|
||||
//交班人的审核人登录
|
||||
Reviewer = userList;
|
||||
RaisePropertyChanged("Reviewer");
|
||||
ReviewerLogin = true;
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && JieOperator != null && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keys.ContainsKey("operator"))
|
||||
{
|
||||
//if (userList.UserName == (JieOperator == null ? "" : JieOperator.UserName))
|
||||
//{
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "接班发药人不能与审核人相同",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//}
|
||||
//else
|
||||
{
|
||||
keys.Add("reviewer", userList);
|
||||
JieReviewer = userList;
|
||||
RaisePropertyChanged("JieReviewer");
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null)
|
||||
{ JiaoBanOk = false; }
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//if (userList.UserName == (JieReviewer == null ? "" : JieReviewer.UserName))
|
||||
//{
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "接班发药人不能与审核人相同",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
//}
|
||||
//else
|
||||
{
|
||||
keys.Add("operator", userList);
|
||||
JieOperator = userList;
|
||||
RaisePropertyChanged("JieOperator");
|
||||
if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieReviewer != null)
|
||||
{ JiaoBanOk = false; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
IEventAggregator _eventAggregator;
|
||||
////private SqlSugarScope SqlSugarHelper.Db;
|
||||
public ChangeShiftsDialogViewModel(IEventAggregator eventAggregator)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
////this.SqlSugarHelper.Db = sqlSugarScope;
|
||||
}
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
_eventAggregator.GetEvent<FingerprintEvent>().Unsubscribe(ChangeShiftsLoginEvent);
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
HkcChangeShifts changeOperator = GetOperator();
|
||||
if (changeOperator != null)
|
||||
{
|
||||
Operator = SqlSugarHelper.Db.Queryable<UserList>().Where(u => u.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Single(u => u.UserName == changeOperator.FromOperator);
|
||||
Reviewer = SqlSugarHelper.Db.Queryable<UserList>().Where(u => u.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Single(u => u.UserName == changeOperator.FromRviewer);
|
||||
}
|
||||
|
||||
FingerMsg = false;// !_fingerprintUtil.bIsConnected;
|
||||
_eventAggregator.GetEvent<FingerprintEvent>().Subscribe(ChangeShiftsLoginEvent);
|
||||
}
|
||||
//查询值班人信息
|
||||
private HkcChangeShifts GetOperator()
|
||||
{
|
||||
//查询发药人及审核人
|
||||
HkcChangeShifts changeOperator = SqlSugarHelper.Db.Queryable<HkcChangeShifts>().Single(change => change.State == "0");
|
||||
//if (changeOperator != null)
|
||||
//{
|
||||
// Operator = SqlSugarHelper.Db.Queryable<UserList>().Single(u => u.UserName == changeOperator.FromOperator);
|
||||
// Reviewer = SqlSugarHelper.Db.Queryable<UserList>().Single(u => u.UserName == changeOperator.ToOperator);
|
||||
//}
|
||||
return changeOperator;
|
||||
}
|
||||
//手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
|
||||
public string ReadAppSetting(string key)
|
||||
{
|
||||
string xPath = $"/configuration/appSettings//add[@key='{key}']";
|
||||
XmlDocument doc = new XmlDocument();
|
||||
string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
|
||||
doc.Load(exeFileName + ".dll.config");
|
||||
XmlNode node = doc.SelectSingleNode(xPath);
|
||||
return node.Attributes["value"].Value.ToString();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,190 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.Port;
|
||||
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.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class ChangeShiftsListWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime
|
||||
{
|
||||
private int _pageNum = 1;
|
||||
public int PageNum
|
||||
{
|
||||
get => _pageNum;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageNum, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
private int _pageCount = 1;
|
||||
public int PageCount
|
||||
{
|
||||
get => _pageCount;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageCount, value);
|
||||
}
|
||||
}
|
||||
|
||||
private int _pageSize = 8;
|
||||
public int PageSize
|
||||
{
|
||||
get => _pageSize;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageSize, value);
|
||||
}
|
||||
}
|
||||
|
||||
private int _totalCount = 0;
|
||||
public int TotalCount
|
||||
{
|
||||
get => _totalCount;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _totalCount, value);
|
||||
}
|
||||
}
|
||||
private DateTime? _startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
|
||||
|
||||
public DateTime? StartDate
|
||||
{
|
||||
get => _startDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
SetProperty(ref _startDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _startDate, value);
|
||||
}
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
|
||||
public DateTime? EndDate
|
||||
{
|
||||
get => _endDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
TimeSpan ershisi = new TimeSpan(23, 59, 59);
|
||||
SetProperty(ref _endDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0, 23, 59, 59));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _endDate, value);
|
||||
}
|
||||
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
private List<HkcChangeShifts>? hkcChangeShifts;
|
||||
|
||||
public List<HkcChangeShifts>? HkcChangeShifts
|
||||
{
|
||||
get { return hkcChangeShifts; }
|
||||
set { SetProperty(ref hkcChangeShifts, value); }
|
||||
}
|
||||
|
||||
public bool KeepAlive => true;
|
||||
IDialogService _dialogService;
|
||||
|
||||
//交接班
|
||||
public DelegateCommand ShiftsCommand => new DelegateCommand(ShiftsAction);
|
||||
private void ShiftsAction()
|
||||
{
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ChangeShiftsDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
RequestData();
|
||||
}
|
||||
//导出报表
|
||||
public DelegateCommand Download => new DelegateCommand(DownloadAction);
|
||||
private void DownloadAction()
|
||||
{
|
||||
GridReportUtil.PrintChangeShiftsReport(StartDate, EndDate);
|
||||
}
|
||||
////private SqlSugarScope SqlSugarHelper.Db;
|
||||
public ChangeShiftsListWindowViewModel(IDialogService dialogService)
|
||||
{
|
||||
_dialogService = dialogService;
|
||||
////this.SqlSugarHelper.Db = sqlSugarScope;
|
||||
}
|
||||
void RequestData()
|
||||
{
|
||||
int totalCount = 0;
|
||||
string machineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
|
||||
string sqlStr = @"SELECT c.id,c.OptDate,u.User_Name as fromoperator,u2.User_Name fromrviewer,u3.User_Name as tooperator,u4.User_Name as toreviewer,
|
||||
c.todate,c.State from hkc_changeshifts c LEFT JOIN user_list u on c.fromoperator=u.user_id
|
||||
LEFT JOIN user_list u2 on c.fromrviewer=u2.user_id LEFT JOIN user_list u3 on c.tooperator=u3.user_id
|
||||
left join user_list u4 on c.toreviewer=u4.user_id where c.machine_id=@machineId ";
|
||||
if (StartDate != null)
|
||||
{
|
||||
sqlStr += " and c.optdate>=@starOptDate ";
|
||||
}
|
||||
if (EndDate != null)
|
||||
{
|
||||
sqlStr += " and c.optdate<=@endOptDate ";
|
||||
}
|
||||
sqlStr += " group by c.id";
|
||||
HkcChangeShifts = SqlSugarHelper.Db.SqlQueryable<dynamic>(sqlStr)
|
||||
.AddParameters(new
|
||||
{
|
||||
machineId = machineId,
|
||||
starOptDate = StartDate,
|
||||
endOptDate = EndDate
|
||||
})
|
||||
.Select(it => new HkcChangeShifts())
|
||||
//.Select("*")
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
|
||||
|
||||
TotalCount = totalCount;
|
||||
}
|
||||
|
||||
public DelegateCommand Query => new DelegateCommand(RequestData);
|
||||
|
||||
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
|
||||
{
|
||||
continuationCallback(true);
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
//查询表格数据
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -185,9 +185,9 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.CheckQuantity - it.Quantity,
|
||||
Type = 4,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity),
|
||||
CheckQuantity = it.CheckQuantity
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity),
|
||||
//CheckQuantity = it.CheckQuantity
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,230 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.select;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Services.Dialogs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class CollectDrugDialogViewModel : BindableBase, IDialogAware
|
||||
{
|
||||
public string Title => "请领申请确认";
|
||||
|
||||
//请领数量
|
||||
private int _quantityCount;
|
||||
public int QuantityCount { get { return _quantityCount; } set { SetProperty(ref _quantityCount, value); } }
|
||||
|
||||
//交处方张数
|
||||
private int _orderCount;
|
||||
public int OrderCount { get { return _orderCount; } set { SetProperty(ref _orderCount, value); } }
|
||||
|
||||
//空瓶数量
|
||||
//private int _emptyCount;
|
||||
//public int EmptyCount { get { return _emptyCount; } set { SetProperty(ref _emptyCount, value); } }
|
||||
|
||||
|
||||
static string[] strColloctedId=ConfigurationManager.AppSettings["colloctedId"].Split(',');
|
||||
|
||||
public static List<OrderTakeSelect> StaticSelects = new()
|
||||
{
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = strColloctedId[1] is null?"":strColloctedId[1],
|
||||
Name = strColloctedId[0]is null?"":strColloctedId[0]
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = strColloctedId[1] is null?"":strColloctedId[3],
|
||||
Name = strColloctedId[0]is null?"":strColloctedId[2]
|
||||
}
|
||||
};
|
||||
|
||||
private List<OrderTakeSelect> _selects = StaticSelects;
|
||||
|
||||
public List<OrderTakeSelect> Selects
|
||||
{
|
||||
get { return _selects; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selects, value);
|
||||
}
|
||||
}
|
||||
|
||||
private OrderTakeSelect _selectedItem = StaticSelects[0];
|
||||
/// <summary>
|
||||
/// 查询条件 查询字段
|
||||
/// </summary>
|
||||
public OrderTakeSelect SelectedItem
|
||||
{
|
||||
get { return _selectedItem; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selectedItem, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private List<CollectDrug> _beforeGroupcollectDrugList;
|
||||
public List<CollectDrug> BeforeGroupCollectDrugList
|
||||
{
|
||||
get { return _beforeGroupcollectDrugList; }
|
||||
set { SetProperty(ref _beforeGroupcollectDrugList, value); }
|
||||
}
|
||||
|
||||
private List<CollectDrug> _collectDrugList;
|
||||
public List<CollectDrug> CollectDrugList
|
||||
{
|
||||
get { return _collectDrugList; }
|
||||
set { SetProperty(ref _collectDrugList, value); }
|
||||
}
|
||||
|
||||
IEventAggregator _eventAggregator;
|
||||
public CollectDrugDialogViewModel(IEventAggregator eventAggregator)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
BeforeGroupCollectDrugList = parameters.GetValue<List<CollectDrug>>("ApplyDrug");
|
||||
|
||||
QuantityCount = BeforeGroupCollectDrugList.Sum(ap => ap.Quantity);
|
||||
OrderCount = BeforeGroupCollectDrugList.Count;
|
||||
|
||||
CollectDrugList = BeforeGroupCollectDrugList.GroupBy(cd => cd.DrugId).Select(cd => new CollectDrug
|
||||
{
|
||||
DrugName = cd.Aggregate("", (Ccurrent, collectdrug) => collectdrug.DrugName),
|
||||
Quantity = cd.Sum(cd => cd.Quantity),
|
||||
DrugSpec = cd.Max(cd => cd.DrugSpec),
|
||||
Manufactory = cd.Max(cd => cd.Manufactory),
|
||||
DrugId=cd.Max(cd=>cd.DrugId)
|
||||
}).ToList();
|
||||
|
||||
//EmptyCount = 0;
|
||||
|
||||
|
||||
}
|
||||
public DelegateCommand CreateApply
|
||||
{
|
||||
get => new DelegateCommand(CreateApplyMethod);
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成请领单
|
||||
/// </summary>
|
||||
public void CreateApplyMethod()
|
||||
{
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
string pleaseNo = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||||
if (CollectDrugList != null && CollectDrugList.Count > 0)
|
||||
{
|
||||
for (int d = 0; d < CollectDrugList.Count; d++)
|
||||
{
|
||||
CollectDrug groupDrug= CollectDrugList[d];
|
||||
//保存请领申请表
|
||||
SqlSugarHelper.Db.Insertable(new DrugPleaseClaim()
|
||||
{
|
||||
GetQuantity = groupDrug.Quantity,// QuantityCount,
|
||||
ReturnPrQuantity = OrderCount,
|
||||
Type = 32,
|
||||
State = 0,
|
||||
MachineId = SelectedItem.Code,
|
||||
ApplyUser = HomeWindowViewModel.Operator.Id,
|
||||
ReviewUser = HomeWindowViewModel.Reviewer == null ? 0 : HomeWindowViewModel.Reviewer.Id,
|
||||
DoDate = DateTime.Now,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
|
||||
PleaseNo = pleaseNo,
|
||||
DrugId = groupDrug.DrugId,
|
||||
TotalQuantity= QuantityCount
|
||||
|
||||
|
||||
}).ExecuteCommand();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < BeforeGroupCollectDrugList.Count; i++)
|
||||
{
|
||||
CollectDrug collectDrug = BeforeGroupCollectDrugList[i];
|
||||
|
||||
//修改处方表里的 药品请领状态(0未请领;1已请领)
|
||||
SqlSugarHelper.Db.Updateable(new OrderInfo()
|
||||
{
|
||||
ApplyStatus = 1,
|
||||
OrderNo = collectDrug.OrderNo
|
||||
}).UpdateColumns(it => new { it.ApplyStatus }).Where(it => it.OrderNo == collectDrug.OrderNo).ExecuteCommand();
|
||||
|
||||
//保存处方、请领申请中间表
|
||||
SqlSugarHelper.Db.Insertable(new CollectDrug()
|
||||
{
|
||||
DrugPleaseClaimId = pleaseNo,
|
||||
OrderNo = collectDrug.OrderNo,
|
||||
DrugId = collectDrug.DrugId,
|
||||
Createdate = DateTime.Now,
|
||||
Status = 0,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CurrentMachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
//ConfigurationManager.AppSettings["colloctedId"].ToString(),
|
||||
Quantity = collectDrug.Quantity
|
||||
}).ExecuteCommand();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
if (f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请领单已生成!",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请领单生成失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
}
|
||||
public DelegateCommand BtnCloseCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
//DialogParameters parameters = new DialogParameters();
|
||||
//parameters.Add("",);
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,291 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
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.Drawing.Printing;
|
||||
using System.Linq;
|
||||
using System.Reactive.Joins;
|
||||
using System.Text;
|
||||
using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class CollectDrugWindowViewModel : BindableBase,INavigationAware,IRegionMemberLifetime
|
||||
{
|
||||
private int _pageNum = 1;
|
||||
public int PageNum
|
||||
{
|
||||
get => _pageNum;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageNum, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
private int _pageCount = 1;
|
||||
public int PageCount
|
||||
{
|
||||
get => _pageCount;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageCount, value);
|
||||
}
|
||||
}
|
||||
|
||||
private int _pageSize = 8;
|
||||
public int PageSize
|
||||
{
|
||||
get => _pageSize;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _pageSize, value);
|
||||
}
|
||||
}
|
||||
|
||||
private int _totalCount = 0;
|
||||
public int TotalCount
|
||||
{
|
||||
get => _totalCount;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _totalCount, value);
|
||||
}
|
||||
}
|
||||
public static List<OrderTakeSelect> StaticSelects = new()
|
||||
{
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugName",
|
||||
Name = "药品名称"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "PyCode",
|
||||
Name = "拼音码"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugBarcode",
|
||||
Name = "药品条码"
|
||||
},
|
||||
new OrderTakeSelect
|
||||
{
|
||||
Code = "DrugId",
|
||||
Name = "药品编码"
|
||||
}
|
||||
};
|
||||
|
||||
private List<OrderTakeSelect> _selects = StaticSelects;
|
||||
|
||||
public List<OrderTakeSelect> Selects
|
||||
{
|
||||
get { return _selects; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selects, value);
|
||||
}
|
||||
}
|
||||
private List<CollectDrug> _collectDrugs = new();
|
||||
|
||||
public List<CollectDrug> CollectDrugs { get { return _collectDrugs; } set { SetProperty(ref _collectDrugs, value); } }
|
||||
|
||||
private CollectDrug _selectCollectDrugs;
|
||||
public CollectDrug selectCollectDrug { get { return _selectCollectDrugs; } set { SetProperty(ref _selectCollectDrugs, value); } }
|
||||
|
||||
private OrderTakeSelect _selectedItem = StaticSelects[0];
|
||||
/// <summary>
|
||||
/// 查询条件 查询字段
|
||||
/// </summary>
|
||||
public OrderTakeSelect SelectedItem
|
||||
{
|
||||
get { return _selectedItem; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _selectedItem, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
IEventAggregator _eventAggregator;
|
||||
IDialogService _dialogService;
|
||||
public CollectDrugWindowViewModel(IDialogService dialogService, IEventAggregator eventAggregator)
|
||||
{
|
||||
_dialogService = dialogService;
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
//private void BindSelectCollect(CollectDrug collectDrug)
|
||||
//{
|
||||
// if (SelectCollects == null)
|
||||
// {
|
||||
// SelectCollects = new List<CollectDrug>();
|
||||
// }
|
||||
// if (SelectCollects.Contains(collectDrug))
|
||||
// {
|
||||
// SelectCollects.Remove(collectDrug);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// SelectCollects.Add(collectDrug);
|
||||
// }
|
||||
//}
|
||||
/// <summary>
|
||||
/// 选中处方的请领药品
|
||||
/// </summary>
|
||||
//private List<CollectDrug> _selectCollects;
|
||||
//public List<CollectDrug> SelectCollects
|
||||
//{
|
||||
// get { return _selectCollects; }
|
||||
// set { SetProperty(ref _selectCollects, value); }
|
||||
//}
|
||||
|
||||
private string? _searchValue;
|
||||
|
||||
/// <summary>
|
||||
/// 查询条件 查询字段值
|
||||
/// </summary>
|
||||
public string? SearchValue
|
||||
{
|
||||
get { return _searchValue; }
|
||||
set
|
||||
{
|
||||
SetProperty(ref _searchValue, value);
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
void RequestData()
|
||||
{
|
||||
int totalCount = 0;
|
||||
|
||||
List<CollectDrug> queryData = SqlSugarHelper.Db.Queryable<OrderInfo>()
|
||||
.InnerJoin<OrderDetail>((oi, od) => oi.OrderNo == od.OrderNo)
|
||||
.InnerJoin<DrugInfo>((oi, od, di) => od.DrugId == di.DrugId.ToString())
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugId"), (oi, od, di) => di.DrugId.ToString() == SearchValue)
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (oi, od, di) => di.DrugName.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (oi, od, di) => di.PyCode.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (oi, od, di) => di.DrugBarcode.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(ConfigurationManager.AppSettings["storage"]), oi => oi.Pharmacy == ConfigurationManager.AppSettings["storage"])
|
||||
.Where(oi => oi.DmStatus == 1)
|
||||
.Where(oi => oi.HisDispFlag == 0)
|
||||
.Where(oi => oi.CancelFlag == 0)
|
||||
.Where(oi=>oi.ApplyStatus==0)
|
||||
.Where(oi => oi.Pharmacy.Equals(ConfigurationManager.AppSettings["storage"] ?? ""))
|
||||
.GroupBy(oi => oi.OrderDate)
|
||||
.Select((oi, od, di) => new CollectDrug
|
||||
{
|
||||
PatientId = oi.PatientId,
|
||||
PName = oi.PName,
|
||||
Sex = oi.Sex,
|
||||
Age = oi.Age,
|
||||
IdNumber = oi.IdNumber,
|
||||
OrderNo = oi.OrderNo,
|
||||
DeptName = oi.DeptName,
|
||||
DrugName = di.DrugName,
|
||||
Quantity = od.Quantity,
|
||||
DrugSpec = di.DrugSpec,
|
||||
Manufactory = di.Manufactory,
|
||||
DrugId=di.DrugId.ToString(),
|
||||
}).ToList();
|
||||
// .ToPageList(PageNum, PageSize, ref totalCount);
|
||||
//.ToList();
|
||||
CollectDrugs = queryData;
|
||||
TotalCount = totalCount;
|
||||
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
||||
|
||||
}
|
||||
public DelegateCommand RowSelected
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (selectCollectDrug != null)
|
||||
{
|
||||
CollectDrugs = CollectDrugs.Select(x =>
|
||||
{
|
||||
if (x.OrderNo == selectCollectDrug.OrderNo)
|
||||
{
|
||||
x.IsSelected = !x.IsSelected;
|
||||
}
|
||||
return x;
|
||||
}).ToList();
|
||||
}
|
||||
});
|
||||
}
|
||||
public DelegateCommand Query
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
RequestData();
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成请领单
|
||||
/// </summary>
|
||||
public DelegateCommand CreateApplyOrder
|
||||
{
|
||||
get => new DelegateCommand(OpenCreateApplyDialog);
|
||||
}
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
public async void OpenCreateApplyDialog()
|
||||
{
|
||||
if (CollectDrugs != null)
|
||||
{
|
||||
List<CollectDrug> selectCollect = CollectDrugs.Where(cd => cd.IsSelected).ToList();
|
||||
if (selectCollect.Count > 0)
|
||||
{
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("ApplyDrug", selectCollect);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "CollectDrugDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "未选择任何数据,请先选择数据信息!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
// 委托 被动执行 被子窗口执行
|
||||
// dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态
|
||||
//if(dialogResult.Result == ButtonResult.OK)
|
||||
//{
|
||||
RequestData();
|
||||
//}
|
||||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,202 @@
|
|||
using DM_Weight.Models;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Text;
|
||||
using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using static Unity.Storage.RegistrationSet;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class DestoryEmptyDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
|
||||
{
|
||||
public bool KeepAlive => false;
|
||||
|
||||
public string Title => "空瓶销毁";
|
||||
|
||||
private List<MachineRecord> _machineRecords = new();
|
||||
|
||||
public List<MachineRecord> _MachineRecords
|
||||
{
|
||||
get => _machineRecords;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _machineRecords, value);
|
||||
}
|
||||
}
|
||||
|
||||
private MachineRecord _machineRecord = new();
|
||||
|
||||
public MachineRecord _MachineRecord
|
||||
{
|
||||
get => _machineRecord;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _machineRecord, value);
|
||||
}
|
||||
}
|
||||
|
||||
private ChannelStock _channelStock;
|
||||
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get => _channelStock;
|
||||
set => SetProperty(ref _channelStock, value);
|
||||
}
|
||||
IEventAggregator _eventAggregator;
|
||||
public DestoryEmptyDialogViewModel(IEventAggregator eventAggregator)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
public event Action<IDialogResult> RequestClose;
|
||||
|
||||
public bool CanCloseDialog()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnDialogClosed()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
ChannelStock _record = parameters.GetValue<ChannelStock>("channel");
|
||||
_ChannelStock = _record;
|
||||
|
||||
RequestData();
|
||||
}
|
||||
public void RequestData()
|
||||
{
|
||||
List<MachineRecord> queryData = SqlSugarHelper.Db.Queryable<MachineRecord>()
|
||||
.Includes<UserList>(mr => mr.User)
|
||||
.Where(mr => mr.DrugId == _ChannelStock.DrugId)
|
||||
.Where(mr => mr.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
|
||||
.Where(mr => mr.Type == 32)
|
||||
//.Where(mr => mr.Status != 2)
|
||||
.Where(mr=>mr.IsDestroy==0)
|
||||
.OrderByDescending(mr => mr.OperationTime)
|
||||
.OrderBy(mr => mr.Id)
|
||||
.ToList();
|
||||
_MachineRecords = queryData;
|
||||
}
|
||||
// 取消按钮
|
||||
public DelegateCommand CancleTake
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
|
||||
public DelegateCommand BtnCloseCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
//DialogParameters parameters = new DialogParameters();
|
||||
//parameters.Add("",);
|
||||
// 关闭当前窗口
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
});
|
||||
}
|
||||
public DelegateCommand RowSelected
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (_MachineRecord != null && _MachineRecord.Quantity > 0)
|
||||
{
|
||||
_MachineRecords = _MachineRecords.Select(x =>
|
||||
{
|
||||
if (x.Id == _MachineRecord.Id)
|
||||
{
|
||||
x.IsSelected = !x.IsSelected;
|
||||
}
|
||||
return x;
|
||||
}).ToList();
|
||||
//DialogParameters dialogParameters = new DialogParameters();
|
||||
//dialogParameters.Add("channel", Channel);
|
||||
//DialogServiceExtensions.ShowDialogHost(_dialogService, "ReturnEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
/// 空瓶销毁
|
||||
/// </summary>
|
||||
public DelegateCommand DestoryEmptyCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
List<MachineRecord> records = _MachineRecords.FindAll(it => it.IsSelected).ToList();
|
||||
if (records != null && records.Count > 0)
|
||||
{
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
for (int i = 0; i < records.Count; i++)
|
||||
{
|
||||
MachineRecord record= records[i];
|
||||
|
||||
//修改库存数量
|
||||
_ChannelStock.Quantity = _ChannelStock.Quantity - record.Quantity;
|
||||
SqlSugarHelper.Db.Updateable(_ChannelStock).ExecuteCommand();
|
||||
|
||||
//修改记录表中状态
|
||||
SqlSugarHelper.Db.Updateable(record).ReSetValue(mr =>
|
||||
{
|
||||
mr.IsDestroy = 1;
|
||||
}).ExecuteCommand();
|
||||
|
||||
//记录销毁明细
|
||||
SqlSugarHelper.Db.Insertable(new DestoryDetail()
|
||||
{
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
Operatorid = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewerid = HomeWindowViewModel.Reviewer?.Id,
|
||||
RecordId = record.Id,
|
||||
//OrderId = ChannelStock.ManuNo,
|
||||
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
if (f.Data)
|
||||
{
|
||||
|
||||
RequestData();
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "销毁完成",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "销毁失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -202,9 +202,50 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.AddQuantity,
|
||||
Type = 1,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
AddQuantity = it.AddQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + it.AddQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock + it.AddQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -204,10 +204,53 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.TakeQuantity,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 2,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
OutQuantity = it.TakeQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - it.TakeQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - it.TakeQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
|
||||
logger.Info($"抽屉取药保存->库位【{it.DrawerNo}-{it.ColNo}】取出药品【{it.DrugInfo.DrugName}】个数【{it.TakeQuantity}】,取药前库存【{it.Quantity}】");
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class DrugBaseWindowViewModel
|
||||
{
|
||||
}
|
||||
}
|
|
@ -12,6 +12,10 @@ using DM_Weight.select;
|
|||
using DM_Weight.util;
|
||||
using log4net.Repository.Hierarchy;
|
||||
using log4net;
|
||||
using DM_Weight.msg;
|
||||
using Prism.Events;
|
||||
using System.Configuration;
|
||||
using static Unity.Storage.RegistrationSet;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -58,6 +62,13 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
IEventAggregator _eventAggregator;
|
||||
public DrugListWindowViewModel(IEventAggregator eventAggregator)
|
||||
{
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
|
||||
private List<DrugInfo> _drugInfos;
|
||||
public List<DrugInfo> DrugInfos
|
||||
{
|
||||
|
@ -68,7 +79,10 @@ namespace DM_Weight.ViewModels
|
|||
private DrugInfo _selectedDrug = new();
|
||||
public DrugInfo SelectedDrug
|
||||
{
|
||||
get { return _selectedDrug; }
|
||||
get
|
||||
{
|
||||
return _selectedDrug;
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
|
@ -81,6 +95,7 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
SetProperty(ref _selectedDrug, new());
|
||||
Manunos = null;
|
||||
SelectedDrug.drugBase = new();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -182,24 +197,114 @@ namespace DM_Weight.ViewModels
|
|||
try
|
||||
{
|
||||
|
||||
//SelectedDrug.DrugId = 0;
|
||||
|
||||
//查询最大药品id并+1赋值给新增药品
|
||||
long maxDrugId = SqlSugarHelper.Db.Queryable<DrugInfo>().Max(it => it.DrugId);
|
||||
SelectedDrug.DrugId = maxDrugId + 1;
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
SqlSugarHelper.Db.Insertable(SelectedDrug).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Insertable(new DrugBase()
|
||||
{
|
||||
DrugId = SelectedDrug.DrugId,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1",
|
||||
BaseQuantity = SelectedDrug.drugBase.BaseQuantity
|
||||
}).ExecuteCommand();
|
||||
|
||||
});
|
||||
if (f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "新增成功",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "新增失败",
|
||||
Type = MsgType.INFO,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
RequestData();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ILog logger = LogManager.GetLogger(typeof(DrugListWindowViewModel));
|
||||
logger.Info($"添加数据异常:{ex.ToString()}");
|
||||
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"添加数据异常:{ex.ToString()}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
});
|
||||
}, () => SelectedDrug.DrugId <= 0).ObservesProperty(() => SelectedDrug);
|
||||
}
|
||||
|
||||
public DelegateCommand EditDrugCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
SqlSugarHelper.Db.Updateable(SelectedDrug).UpdateColumns(d => new { d.DrugName, d.Manufactory, d.PyCode, d.PackUnit, d.MaxStock, d.DrugSpec }).ExecuteCommand();
|
||||
|
||||
|
||||
if (SelectedDrug.drugBase == null)
|
||||
{
|
||||
SqlSugarHelper.Db.Insertable(new DrugBase()
|
||||
{
|
||||
DrugId = SelectedDrug.DrugId,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1",
|
||||
BaseQuantity = SelectedDrug.drugBase.BaseQuantity
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//查询药品基数是否存在,存在则修改不存在则新增
|
||||
DrugBase drugBase = SqlSugarHelper.Db.Queryable<DrugBase>()
|
||||
.Where(db => db.BaseId == SelectedDrug.drugBase.BaseId).First();
|
||||
if (drugBase == null)
|
||||
{
|
||||
SqlSugarHelper.Db.Insertable(new DrugBase()
|
||||
{
|
||||
DrugId = SelectedDrug.DrugId,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"]??"DM1",
|
||||
BaseQuantity = SelectedDrug.drugBase.BaseQuantity
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
SqlSugarHelper.Db.Updateable(new DrugBase() { BaseQuantity = SelectedDrug.drugBase.BaseQuantity }).UpdateColumns(bs => new { bs.BaseQuantity }).Where(bs => bs.BaseId == SelectedDrug.drugBase.BaseId).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
});
|
||||
if (f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "修改完成",
|
||||
Type = MsgType.INFO,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "修改失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
RequestData();
|
||||
}, () => SelectedDrug.DrugId > 0).ObservesProperty(() => SelectedDrug);
|
||||
}
|
||||
|
@ -257,13 +362,22 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
int totalCount = 0;
|
||||
DrugInfos = SqlSugarHelper.Db.Queryable<DrugInfo>()
|
||||
.Includes(di => di.drugBase)
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugId"), (di) => di.DrugId.ToString().Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (di) => di.DrugName.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (di) => di.PyCode.Contains(SearchValue))
|
||||
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (di) => di.DrugBarcode.Contains(SearchValue))
|
||||
.Select(di => di)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount)
|
||||
;
|
||||
//.Select(di => di)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
foreach(DrugInfo di in DrugInfos)
|
||||
{
|
||||
|
||||
if(di.drugBase==null)
|
||||
{
|
||||
di.drugBase = new DrugBase();
|
||||
}
|
||||
}
|
||||
|
||||
TotalCount = totalCount;
|
||||
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,263 @@
|
|||
using DM_Weight.Common;
|
||||
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 System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Xml;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class FridgeWindowViewModel : BindableBase, IRegionMemberLifetime, INavigationAware
|
||||
{
|
||||
//温度区间
|
||||
private string _temperatureRange = CommonClass.ReadAppSetting("temperatureRange").ToString();
|
||||
public string TemperatureRange
|
||||
{
|
||||
get => _temperatureRange;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _temperatureRange, value);
|
||||
//更新配置文件中冰箱温度区间
|
||||
CommonClass.SaveAppSetting("temperatureRange", _temperatureRange);
|
||||
}
|
||||
}
|
||||
private float defaultValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
|
||||
//温度值
|
||||
private float _temperatureValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
|
||||
public float TemperatureValue
|
||||
{
|
||||
get => _temperatureValue;
|
||||
set => SetProperty(ref _temperatureValue, value);
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据冰箱温度控制保存按钮是否可点击
|
||||
/// </summary>
|
||||
private bool _isInvalid;
|
||||
public bool IsInvalid
|
||||
{
|
||||
get => _isInvalid;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _isInvalid, value);
|
||||
BtnIsEnable = !IsInvalid;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据冰箱温度控制保存按钮是否可用
|
||||
/// </summary>
|
||||
private bool _btnIsEnable = true;
|
||||
public bool BtnIsEnable
|
||||
{
|
||||
get => _btnIsEnable;
|
||||
set => SetProperty(ref _btnIsEnable, value);
|
||||
}
|
||||
//冰箱状态:true关;false开
|
||||
private bool _fridgeState;
|
||||
public bool FridgeState
|
||||
{
|
||||
get => _fridgeState;
|
||||
set => SetProperty(ref _fridgeState, value);
|
||||
}
|
||||
//报警状态:true关;false开
|
||||
private bool _alarmState;
|
||||
public bool AlarmState
|
||||
{
|
||||
get => _alarmState;
|
||||
set => SetProperty(ref _alarmState, value);
|
||||
}
|
||||
|
||||
private int _defaultLoginMode;//1开0关
|
||||
|
||||
private int _defaultAlarmMode;//1开0关
|
||||
|
||||
private float retTemperature = Convert.ToSingle(ConfigurationManager.AppSettings["temperatureValue"]);
|
||||
|
||||
private PortUtil _portUtil;
|
||||
IEventAggregator _eventAggregator;
|
||||
public FridgeWindowViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
|
||||
{
|
||||
_portUtil = portUtil;
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存按钮
|
||||
/// </summary>
|
||||
public DelegateCommand SaveCommand { get => new DelegateCommand(SaveAction, () => !IsInvalid); }
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
private async void SaveAction()
|
||||
{
|
||||
try
|
||||
{
|
||||
_portUtil.FridgeOperate = true;
|
||||
|
||||
//设置温度值验证不通过则直接返回不保存
|
||||
//获取冰箱温度
|
||||
//if (_fridgeState != _defaultLoginMode.Equals(1))
|
||||
//{
|
||||
// ConfigurationManager.RefreshSection("FridgeState");
|
||||
//发送冰箱使能/失能指令
|
||||
if (_fridgeState)
|
||||
{
|
||||
await _portUtil.FridgeOff();
|
||||
Thread.Sleep(100);
|
||||
CommonClass.SaveAppSetting("FridgeState", "0");
|
||||
}
|
||||
else
|
||||
{
|
||||
await _portUtil.FridegOpen();
|
||||
Thread.Sleep(100);
|
||||
CommonClass.SaveAppSetting("FridgeState", "1");
|
||||
}
|
||||
//}
|
||||
//温度报警设定
|
||||
//if (AlarmState != _defaultAlarmMode.Equals(1))
|
||||
//{
|
||||
//发送警报使能/失能指令
|
||||
if (_alarmState)
|
||||
{
|
||||
await _portUtil.FridgeAlarmOff();
|
||||
Thread.Sleep(100);
|
||||
CommonClass.SaveAppSetting("AlarmState", "0");
|
||||
}
|
||||
else
|
||||
{
|
||||
await _portUtil.FridgeAlarmOn();
|
||||
Thread.Sleep(100);
|
||||
CommonClass.SaveAppSetting("AlarmState", "1");
|
||||
}
|
||||
//}
|
||||
|
||||
//if (retTemperature != TemperatureValue)
|
||||
//{
|
||||
// //设定冰箱温度
|
||||
// await _portUtil.SetFridgeTemperature(TemperatureValue);
|
||||
|
||||
// CommonClass.SaveAppSetting("temperatureValue", TemperatureValue.ToString());
|
||||
//}
|
||||
//设定冰箱温度区间
|
||||
string[] range = ConfigurationManager.AppSettings["temperatureRange"].Split('-');
|
||||
string[] newRange = TemperatureRange.Split('-');
|
||||
if (range.Length >= 2)
|
||||
{
|
||||
bool bMix = float.TryParse(range[0], out float Min);
|
||||
bool bMax = float.TryParse(range[1], out float Max);
|
||||
|
||||
if (bMix && bMax)
|
||||
{
|
||||
if (Min != Convert.ToSingle(newRange[0]))
|
||||
{
|
||||
//设定冰箱温度最小值
|
||||
await _portUtil.FridgeMinSetting(Convert.ToSingle(newRange[0]));
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
if (Max != Convert.ToSingle(newRange[1]))
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
//设定冰箱温度最有值
|
||||
await _portUtil.FridgeMaxSetting(Convert.ToSingle(newRange[1]));
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_portUtil.FridgeOperate = false;
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"保存成功",
|
||||
Type = MsgType.SUCCESS
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
|
||||
//_fridgeState = ReadAppSetting("FridgeState").Equals(1);
|
||||
//_defaultLoginMode = ReadAppSetting("FridgeState");
|
||||
//_defaultAlarmMode = ReadAppSetting("AlarmState");
|
||||
//_alarmState = ReadAppSetting("AlarmState").Equals(1);
|
||||
//_temperatureRange = CommonClass.ReadAppSetting("temperatureRange");
|
||||
//_temperatureValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"保存异常{ex.ToString}",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
_portUtil.FridgeOperate = false;
|
||||
}
|
||||
}
|
||||
public FridgeWindowViewModel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
|
||||
public int ReadAppSetting(string key)
|
||||
{
|
||||
string xPath = "/configuration/appSettings//add[@key='" + key + "']";
|
||||
XmlDocument doc = new XmlDocument();
|
||||
string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
|
||||
doc.Load(exeFileName + ".dll.config");
|
||||
XmlNode node = doc.SelectSingleNode(xPath);
|
||||
return Convert.ToInt32(node.Attributes["value"].Value);
|
||||
}
|
||||
|
||||
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
_fridgeState = ReadAppSetting("FridgeState").Equals(0);
|
||||
_defaultLoginMode = ReadAppSetting("FridgeState");
|
||||
_defaultAlarmMode = ReadAppSetting("AlarmState");
|
||||
_alarmState = ReadAppSetting("AlarmState").Equals(0);
|
||||
|
||||
GetTemperature();
|
||||
}
|
||||
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
//{
|
||||
// GetTemperature();
|
||||
//}
|
||||
|
||||
//public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
//{
|
||||
// return true;
|
||||
//}
|
||||
|
||||
//public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
//{
|
||||
//}
|
||||
//获取冰箱温度值,如有更改则保存更改
|
||||
private async Task GetTemperature()
|
||||
{
|
||||
|
||||
//float retT = await _portUtil.GetFridgeTemperature();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@ using System.Windows.Threading;
|
|||
using Newtonsoft.Json.Linq;
|
||||
using DM_Weight.msg;
|
||||
using DM_Weight.HIKVISION;
|
||||
using System.Threading;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -34,6 +35,15 @@ namespace DM_Weight.ViewModels
|
|||
private UserList? _userList;
|
||||
private UserList? _userList2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 冰箱温度
|
||||
/// </summary>
|
||||
private string _wd = "恒温冷藏抽屉当前温度2.8(非真实数据)";
|
||||
public string WD { get => _wd; set => SetProperty(ref _wd, value); }
|
||||
System.Timers.Timer WDTimer;
|
||||
|
||||
|
||||
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
|
||||
public bool MultiLogin
|
||||
{
|
||||
|
@ -262,7 +272,64 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
Is16Drawer = count == 16;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取温度信息
|
||||
/// </summary>
|
||||
private async void GetWD(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
if (!_portUtil.FridgeOperate)
|
||||
{
|
||||
string retStr = string.Empty;
|
||||
byte[] data = null;
|
||||
float retT = await _portUtil.GetFridgeTemperature();
|
||||
Thread.Sleep(80);
|
||||
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃";
|
||||
}
|
||||
}
|
||||
|
||||
private async void GetWD()
|
||||
{
|
||||
if (!_portUtil.FridgeOperate)
|
||||
{
|
||||
string retStr = string.Empty;
|
||||
byte[] data = null;
|
||||
float retT = await _portUtil.GetFridgeTemperature();
|
||||
Thread.Sleep(80);
|
||||
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃";
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 将收到的返回转换成具体温度数值
|
||||
/// </summary>
|
||||
/// <param name="receiveData"></param>
|
||||
/// <returns></returns>
|
||||
public string GetResultWD(string receiveData)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
//string newStrWD = receiveData.Substring(10, 4);
|
||||
|
||||
//logger.Info($"截取后数据newStrWD:{newStrWD}");
|
||||
int iWD = Convert.ToInt32(receiveData, 16);
|
||||
logger.Info($"截取后数据iWD:{iWD}");
|
||||
float fWD = 0;
|
||||
if (iWD != 0)
|
||||
{
|
||||
fWD = iWD * 1.0f / 10;
|
||||
}
|
||||
|
||||
logger.Info($"截取后数据fWD:{fWD}");
|
||||
string strRet = $"恒温冷藏抽屉当前温度:{fWD}℃;";
|
||||
|
||||
return strRet;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Info("GetResultWD异常", new Exception($"{ex.ToString()}"));
|
||||
}
|
||||
return "数据异常";
|
||||
}
|
||||
//这个方法用于拦截请求,continuationCallback(true)就是不拦截,continuationCallback(false)拦截本次操作
|
||||
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
|
||||
{
|
||||
|
@ -309,9 +376,10 @@ namespace DM_Weight.ViewModels
|
|||
FindDrawerCount();
|
||||
|
||||
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
||||
int stopRecord = Convert.ToInt32(ConfigurationManager.AppSettings["stopRecord"] ?? "0");
|
||||
if (autoExit > 0)
|
||||
{
|
||||
Timer timer = new Timer();
|
||||
System.Timers.Timer timer = new System.Timers.Timer();
|
||||
timer.Interval = 1000;
|
||||
timer.Elapsed += (sender, e) =>
|
||||
{
|
||||
|
@ -335,6 +403,38 @@ namespace DM_Weight.ViewModels
|
|||
};
|
||||
timer.Start();
|
||||
}
|
||||
#region 温度查询定时
|
||||
int interval = Convert.ToInt32(ConfigurationManager.AppSettings["Interval"]);
|
||||
if (interval > 0)
|
||||
{
|
||||
WDTimer = new System.Timers.Timer();
|
||||
|
||||
WDTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetWD);
|
||||
WDTimer.Interval = interval;
|
||||
//WDTimer.Start();
|
||||
//WDTimer.AutoReset = true;
|
||||
//WDTimer.Enabled = true;
|
||||
}
|
||||
#endregion
|
||||
GetWD();
|
||||
if (stopRecord > 0)
|
||||
{
|
||||
System.Timers.Timer timer = new System.Timers.Timer();
|
||||
timer.Interval = 1000;
|
||||
timer.Elapsed += (sender, e) =>
|
||||
{
|
||||
|
||||
//指定时间内无人操作鼠标键盘则停止录像
|
||||
if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord)
|
||||
{
|
||||
_chkFunction.HIKStopDVRRecord();
|
||||
}
|
||||
};
|
||||
timer.Start();
|
||||
}
|
||||
logger.Info($"当前时间:{DateTime.Now}\r\n获取录像机的时间");
|
||||
//获取录像机的时间
|
||||
_chkFunction.HIK_DVR_TIME();
|
||||
_chkFunction.HIKStartDVRRecord();
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ 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;
|
||||
|
@ -275,9 +276,48 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.AddQuantity,
|
||||
Type = 1,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
AddQuantity = it.AddQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + it.AddQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock + it.AddQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -325,8 +325,8 @@ namespace DM_Weight.ViewModels
|
|||
var sb = new StringBuilder();
|
||||
sb.Append("select i.invoice_no as InvoiceNo, i.invoice_date as InvoiceDate, COUNT(i.id) as `Count`, SUM(i.quantity) as quantity, p1.pharmacy_name as PharmacyName1, p2.pharmacy_name as PharmacyName2 from in_out_invoice i");
|
||||
sb.Append(" inner join ( select c.drug_id as drug_id from channel_stock c where c.machine_id = '" + (ConfigurationManager.AppSettings["machineId"] ?? "DM1") + "' group by c.drug_id ) di on di.drug_id = i.drug_id");
|
||||
sb.Append(" left join pharmacy_info p1 on p1.pharmacy_id = i.in_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p2 on p2.pharmacy_id = i.out_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p1 on p1.pharmacy = i.in_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p2 on p2.pharmacy = i.out_pharmacy_id");
|
||||
sb.Append(" where i.status=@Status ");
|
||||
sb.Append(" and i.type!=@type ");
|
||||
sb.Append(" and i.cancel_flag=@CancelFlag ");
|
||||
|
|
|
@ -211,8 +211,8 @@ namespace DM_Weight.ViewModels
|
|||
var sb = new StringBuilder();
|
||||
sb.Append("select i.invoice_no as InvoiceNo, i.invoice_date as InvoiceDate, COUNT(i.id) as `Count`, SUM(i.quantity) as quantity, p1.pharmacy_name as PharmacyName1, p2.pharmacy_name as PharmacyName2 from in_out_invoice i");
|
||||
sb.Append(" inner join ( select c.drug_id as drug_id from channel_stock c where c.machine_id = '" + (ConfigurationManager.AppSettings["machineId"] ?? "DM1") + "' group by c.drug_id ) di on di.drug_id = i.drug_id");
|
||||
sb.Append(" left join pharmacy_info p1 on p1.pharmacy_id = i.in_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p2 on p2.pharmacy_id = i.out_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p1 on p1.pharmacy = i.in_pharmacy_id");
|
||||
sb.Append(" left join pharmacy_info p2 on p2.pharmacy = i.out_pharmacy_id");
|
||||
sb.Append(" where i.status=@Status ");
|
||||
sb.Append(" and i.type!=@type ");
|
||||
sb.Append(" and i.cancel_flag=@CancelFlag ");
|
||||
|
|
|
@ -337,9 +337,51 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.TakeQuantity,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 2,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
OutQuantity = it.TakeQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - it.TakeQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - it.TakeQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -54,6 +54,14 @@ namespace DM_Weight.ViewModels
|
|||
//get => loginMode == 2;
|
||||
get => ReadAppSetting("loginMode") == "2";
|
||||
}
|
||||
|
||||
public string LoginUserCheck
|
||||
{
|
||||
|
||||
get => ReadAppSetting("loginUser");
|
||||
}
|
||||
private HkcChangeShifts listHkcChangeShifts=new HkcChangeShifts();
|
||||
|
||||
private FingerprintUtil _fingerprintUtil;
|
||||
|
||||
private PortUtil _portUtil;
|
||||
|
@ -83,6 +91,10 @@ namespace DM_Weight.ViewModels
|
|||
get => _fingerMsg;
|
||||
set => SetProperty(ref _fingerMsg, value);
|
||||
}
|
||||
public bool FridgePortMsg
|
||||
{
|
||||
get => !_portUtil.fridgeSerial.IsOpen;
|
||||
}
|
||||
//录像机登录状态
|
||||
private bool _hikMsg;
|
||||
public bool HIKMsg
|
||||
|
@ -180,6 +192,29 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
}
|
||||
else
|
||||
{
|
||||
//1仅当班人、审核人可登录
|
||||
if (LoginUserCheck.Equals("1"))
|
||||
{
|
||||
//检查当前登录人是否是值班人 (审核人与发药人)
|
||||
listHkcChangeShifts = SqlSugarHelper.Db.Queryable<HkcChangeShifts>()
|
||||
.Where(cs => cs.State == "0").First();
|
||||
if (listHkcChangeShifts != null)
|
||||
{
|
||||
if(!listHkcChangeShifts.FromOperator.Equals(userList.UserName) && !listHkcChangeShifts.FromRviewer.Equals(userList.UserName))
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "仅值班人可登录,当前登录人非值班人",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Username = "";
|
||||
Password = "";
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (userList.PassWord == MD5.GetMD5Hash(Password))
|
||||
{
|
||||
|
||||
|
@ -278,6 +313,28 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
// 第一个用户登录
|
||||
else
|
||||
{
|
||||
//1仅当班人、审核人可登录
|
||||
if (LoginUserCheck.Equals("1"))
|
||||
{
|
||||
if(listHkcChangeShifts!=null)
|
||||
{
|
||||
if(listHkcChangeShifts.FromOperator.Equals(user.UserName))
|
||||
{
|
||||
keys.Add("operator", user);
|
||||
Operator = user;
|
||||
RaisePropertyChanged("Operator");
|
||||
}
|
||||
else
|
||||
{
|
||||
keys.Add("reviewer", user);
|
||||
Reviewer = user;
|
||||
RaisePropertyChanged("Reviewer");
|
||||
}
|
||||
Username = string.Empty;
|
||||
Password = string.Empty;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (firstLogin.Equals("operator"))
|
||||
{
|
||||
keys.Add("operator", user);
|
||||
|
@ -343,6 +400,29 @@ _exitCommand ??= new DelegateCommand(Exit);
|
|||
}
|
||||
else
|
||||
{
|
||||
//1仅当班人、审核人可登录
|
||||
if (LoginUserCheck.Equals("1"))
|
||||
{
|
||||
//检查当前登录人是否是值班人 (审核人与发药人)
|
||||
listHkcChangeShifts = SqlSugarHelper.Db.Queryable<HkcChangeShifts>()
|
||||
.Where(cs => cs.State == "0").First();
|
||||
if (listHkcChangeShifts != null)
|
||||
{
|
||||
if (!listHkcChangeShifts.FromOperator.Equals(userList.UserName) && !listHkcChangeShifts.FromRviewer.Equals(userList.UserName))
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "仅值班人可登录,当前登录人非值班人",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Username = "";
|
||||
Password = "";
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
SetUser(userList);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -399,8 +399,8 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = orderTakeQuantity,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
//更新处方状态
|
||||
|
|
|
@ -297,7 +297,7 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
SqlSugarHelper.Db.Updateable(new OrderInfo()
|
||||
{
|
||||
DmStatus = 2,
|
||||
DmStatus = 0,
|
||||
OrderNo = OrderInfo.OrderNo
|
||||
}).UpdateColumns(it => new { it.DmStatus }).WhereColumns(it => new { it.OrderNo }).ExecuteCommand();
|
||||
for (int i = 0; i < record.Count; i++)
|
||||
|
@ -334,9 +334,48 @@ namespace DM_Weight.ViewModels
|
|||
//Quantity = it.TakeQuantity,
|
||||
Quantity = it.ReturnQuantity,
|
||||
Type = 31,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
AddQuantity = it.ReturnQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + it.ReturnQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock + it.ReturnQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -21,6 +21,7 @@ using DM_Weight.Port;
|
|||
using DM_Weight.select;
|
||||
using DM_Weight.util;
|
||||
using System.Threading;
|
||||
using DM_Weight.HIKVISION;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -58,8 +59,6 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
// 抽屉打开
|
||||
case EventType.DRAWEROPEN:
|
||||
|
||||
|
||||
if (Status == 1)
|
||||
{
|
||||
if (channelStocks[0].process == 1)
|
||||
|
@ -166,7 +165,6 @@ namespace DM_Weight.ViewModels
|
|||
OrderInfo = o;
|
||||
RequestData();
|
||||
}
|
||||
|
||||
public async void RequestData()
|
||||
{
|
||||
orderDetails = SqlSugarHelper.Db.Queryable<OrderDetail>()
|
||||
|
@ -358,9 +356,50 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.TakeQuantity,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//, StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
//保存账册
|
||||
int iInsertResult= SqlSugarHelper.Db.Insertable(new AccountBookG2() {
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type= 2,
|
||||
Department= OrderInfo.DeptName,
|
||||
OrderNo=OrderInfo.OrderNo,
|
||||
ManuNo=it.ManuNo,
|
||||
EffDate=it.EffDate,
|
||||
OutQuantity=it.TakeQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate=DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now,
|
||||
InvoiceNo=OrderInfo.OrderNo
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Day= SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab=>ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab=>ab.Type==3)
|
||||
.Where(ab=>ab.DrugId==Convert.ToInt32(it.DrugId))
|
||||
.Where(ab=>ab.ManuNo==it.ManuNo)
|
||||
.Where(ab=>ab.CreateDate==DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - it.TakeQuantity;
|
||||
|
||||
//修改凌晨生成的日结存与总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab=>ab.DrugId==Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock= accountBookG2Total.TotalStock -it.TakeQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -232,6 +232,7 @@ namespace DM_Weight.ViewModels
|
|||
.Where(oi => oi.DmStatus == 0)
|
||||
.Where(oi => oi.HisDispFlag == 0)
|
||||
.Where(oi => oi.CancelFlag == 0)
|
||||
.Where(oi=>oi.Pharmacy.Equals(ConfigurationManager.AppSettings["storage"] ?? ""))
|
||||
.GroupBy(oi => oi.OrderDate)
|
||||
.Select(oi => oi)
|
||||
.ToPageList(PageNum, PageSize, ref totalCount);
|
||||
|
|
|
@ -264,9 +264,51 @@ namespace DM_Weight.ViewModels
|
|||
Quantity = ReturnQuantity,
|
||||
Type = 31,
|
||||
InvoiceId = InvoiceId,
|
||||
GetId = MachineRecord.Id,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
GetId = MachineRecord.Id
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(ChannelStock.DrugId),
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = ChannelStock.ManuNo,
|
||||
EffDate = ChannelStock.EffDate,
|
||||
AddQuantity = ReturnQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ChannelStock.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(ChannelStock.DrugId))
|
||||
.Where(ab => ab.ManuNo == ChannelStock.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + ChannelStock.ReturnQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(ChannelStock.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(ChannelStock.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock + ChannelStock.ReturnQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
});
|
||||
if (f.Data)
|
||||
|
|
|
@ -132,7 +132,16 @@ namespace DM_Weight.ViewModels
|
|||
SetProperty(ref _machineRecords, value);
|
||||
}
|
||||
}
|
||||
private MachineRecord _machineRecord = new();
|
||||
|
||||
public MachineRecord _MachineRecord
|
||||
{
|
||||
get => _machineRecord;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _machineRecord, value);
|
||||
}
|
||||
}
|
||||
private ChannelStock _channelStock;
|
||||
|
||||
public ChannelStock ChannelStock
|
||||
|
@ -169,15 +178,35 @@ namespace DM_Weight.ViewModels
|
|||
List<MachineRecord> queryData = SqlSugarHelper.Db.Queryable<MachineRecord>()
|
||||
.Includes<UserList>(mr => mr.User)
|
||||
.Where(mr => mr.DrugId == ChannelStock.DrugId)
|
||||
.Where(mr => mr.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
|
||||
.Where(mr => mr.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
.Where(mr => mr.Type == 2)
|
||||
.Where(mr => mr.Status != 2)
|
||||
.OrderBy(mr => mr.OperationTime)
|
||||
.OrderByDescending(mr => mr.OperationTime)
|
||||
.OrderBy(mr => mr.Id)
|
||||
.ToList();
|
||||
MachineRecords = queryData;
|
||||
}
|
||||
|
||||
public DelegateCommand RowSelected
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (_MachineRecord != null && _MachineRecord.Quantity > 0)
|
||||
{
|
||||
MachineRecords = MachineRecords.Select(x =>
|
||||
{
|
||||
if (x.Id == _MachineRecord.Id)
|
||||
{
|
||||
x.IsSelected = !x.IsSelected;
|
||||
}
|
||||
return x;
|
||||
}).ToList();
|
||||
//DialogParameters dialogParameters = new DialogParameters();
|
||||
//dialogParameters.Add("channel", Channel);
|
||||
//DialogServiceExtensions.ShowDialogHost(_dialogService, "ReturnEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
});
|
||||
}
|
||||
public DelegateCommand OpenDrawer
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
|
@ -255,7 +284,7 @@ namespace DM_Weight.ViewModels
|
|||
ReturnQuantity2 = _MachineRecord.Quantity - _MachineRecord.ReturnQuantity1,
|
||||
Id = _MachineRecord.Id,
|
||||
Status = 2,
|
||||
}).UpdateColumns(it => new { it.ReturnQuantity1, it.Status }).ExecuteCommand();
|
||||
}).UpdateColumns(it => new { it.ReturnQuantity2, it.Status }).ExecuteCommand();
|
||||
|
||||
// 保存数据 还药空瓶记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
|
@ -269,11 +298,11 @@ namespace DM_Weight.ViewModels
|
|||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = ReturnQuantity,
|
||||
Quantity = _MachineRecord.Quantity, //ReturnQuantity,
|
||||
Type = 32,
|
||||
InvoiceId = InvoiceId,
|
||||
GetId = _MachineRecord.Id,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
GetId = _MachineRecord.Id
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,11 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.util;
|
||||
using DM_Weight.msg;
|
||||
using Prism.Events;
|
||||
using System.Configuration;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using DM_Weight.Report;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -34,10 +39,53 @@ namespace DM_Weight.ViewModels
|
|||
set { SetProperty(ref _channelStock, value); }
|
||||
}
|
||||
|
||||
|
||||
private DateTime? _startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
|
||||
|
||||
public DateTime? StartDate
|
||||
{
|
||||
get => _startDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
SetProperty(ref _startDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _startDate, value);
|
||||
}
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
|
||||
|
||||
public DateTime? EndDate
|
||||
{
|
||||
get => _endDate;
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
TimeSpan ershisi = new TimeSpan(23, 59, 59);
|
||||
SetProperty(ref _endDate, new DateTime(value?.Year ?? 0, value?.Month ?? 0, value?.Day ?? 0, 23, 59, 59));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetProperty(ref _endDate, value);
|
||||
}
|
||||
|
||||
RequestData();
|
||||
}
|
||||
}
|
||||
|
||||
IDialogService _dialogService;
|
||||
public ReturnEmptyWindowViewModel(IDialogService dialogService)
|
||||
IEventAggregator _eventAggregator;
|
||||
public ReturnEmptyWindowViewModel(IDialogService dialogService, IEventAggregator eventAggregator)
|
||||
{
|
||||
_dialogService = dialogService;
|
||||
_eventAggregator = eventAggregator;
|
||||
}
|
||||
|
||||
public DelegateCommand RowSelected
|
||||
|
@ -53,14 +101,188 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
else if (Channel != null && Channel.CanReturnQuantity > 0)
|
||||
{
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("channel", Channel);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ReturnEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
Channels = Channels.Select(x =>
|
||||
{
|
||||
if (x.Id == Channel.Id)
|
||||
{
|
||||
x.IsSelected = !x.IsSelected;
|
||||
}
|
||||
return x;
|
||||
}).ToList();
|
||||
//DialogParameters dialogParameters = new DialogParameters();
|
||||
//dialogParameters.Add("channel", Channel);
|
||||
//DialogServiceExtensions.ShowDialogHost(_dialogService, "ReturnEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//还空瓶
|
||||
public DelegateCommand ReturnEmptyCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
//List<ChannelStock> records = Channels.FindAll(it => it.IsSelected).ToList();
|
||||
//if (records.Count > 0)
|
||||
if (Channel != null && Channel.DrugId == null)
|
||||
{
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("DrawerNo", Channel.DrawerNo);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "BindingChannelDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
|
||||
}
|
||||
else if(Channel!=null&&Channel.CanReturnQuantity>0)
|
||||
{
|
||||
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("channel", Channel);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ReturnEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择要还的空瓶",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private List<ChannelStock> csList = new List<ChannelStock>();
|
||||
|
||||
//销毁
|
||||
public DelegateCommand DestoryCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (Channels != null && Channels.Count > 0)
|
||||
{
|
||||
csList = Channels.FindAll(it => it.IsSelected && it.Quantity > 0).ToList();
|
||||
if (csList != null && csList.Count > 0)
|
||||
{
|
||||
//RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
//DialogParameters dialogParameters = new DialogParameters();
|
||||
//List<string> msg = new List<string>();
|
||||
//msg.Add("确认");
|
||||
//msg.Add("确认要销毁吗?");
|
||||
//dialogParameters.Add("msgInfo", msg);
|
||||
//DialogServiceExtensions.ShowDialogHost(_dialogService, "ConfirmMessageDialog", dialogParameters, DestoryDialogResult, "RootDialog");
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
for (int i = 0; i < csList.Count; i++)
|
||||
{
|
||||
ChannelStock channelStock = csList[i];
|
||||
channelStock.Quantity = 0;
|
||||
SqlSugarHelper.Db.Updateable(channelStock).ExecuteCommand();
|
||||
MachineRecord machines = SqlSugarHelper.Db.Queryable<MachineRecord>()
|
||||
//.InnerJoin<ChannelStock>((mr, cs) => mr.DrugId == cs.DrugId)
|
||||
//.Where(mr => mr.DrugId.Contains(csList.Select(it => it.DrugId).ToList()) && mr.Type = 32)
|
||||
.Where(mr => mr.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
|
||||
.Where(mr => mr.DrugId == channelStock.DrugId)
|
||||
.Where(mr => mr.Type == 32)
|
||||
.First();
|
||||
SqlSugarHelper.Db.Updateable(machines).ReSetValue(mr =>
|
||||
{
|
||||
mr.IsDestroy = 1;
|
||||
mr.TakeUser = HomeWindowViewModel.Operator?.Id.ToString();
|
||||
mr.DestoryReviewerUser = HomeWindowViewModel.Reviewer?.Id.ToString();
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
//csList.ForEach(it => it.Quantity = 0);
|
||||
//var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
//{
|
||||
// SqlSugarHelper.Db.Updateable(csList).ExecuteCommand();
|
||||
// string[] str = new string[csList.Count];
|
||||
// str = csList.Select(t => t.DrugId).ToArray();
|
||||
// List<MachineRecord> machines = SqlSugarHelper.Db.Queryable<MachineRecord>()
|
||||
// //.InnerJoin<ChannelStock>((mr, cs) => mr.DrugId == cs.DrugId)
|
||||
// //.Where(mr => mr.DrugId.Contains(csList.Select(it => it.DrugId).ToList()) && mr.Type = 32)
|
||||
// .Where(mr => mr.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
|
||||
// .In(mr => mr.DrugId, str)
|
||||
// .Where(mr => mr.Type == 32)
|
||||
// .ToList();
|
||||
// SqlSugarHelper.Db.Updateable(machines).ReSetValue(mr =>
|
||||
// {
|
||||
// mr.IsDestroy = 1;
|
||||
// }).ExecuteCommand();
|
||||
// return true;
|
||||
//});
|
||||
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);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "未勾选要销毁的数据或勾选的数据库存为0",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "没有要操作销毁的数据",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//空瓶销毁(根据还的空瓶)
|
||||
public DelegateCommand DestoryEmptyCommand { get => new DelegateCommand(DestoryEmptyAction); }
|
||||
private void DestoryEmptyAction()
|
||||
{
|
||||
//List<ChannelStock> records = Channels.FindAll(it => it.IsSelected).ToList();
|
||||
//if (records.Count > 0)
|
||||
if (Channel != null && Channel.DrugId != null&&Channel.Quantity>0)
|
||||
{
|
||||
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("channel", Channel);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "DestoryEmptyDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择有库存的数据",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void DoDialogResult(IDialogResult dialogResult)
|
||||
{
|
||||
// 委托 被动执行 被子窗口执行
|
||||
|
@ -69,6 +291,13 @@ namespace DM_Weight.ViewModels
|
|||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||
}
|
||||
|
||||
//导出回收销毁记录
|
||||
public DelegateCommand DownloadRecordCommand { get => new DelegateCommand(() => {
|
||||
|
||||
GridReportUtil.PrintEmptyDestoryReport(StartDate, EndDate);
|
||||
|
||||
}); }
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
|
||||
|
@ -99,9 +328,10 @@ namespace DM_Weight.ViewModels
|
|||
|
||||
Channels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.LeftJoin<DrugInfo>((cs, di) => cs.DrugId == di.DrugId.ToString())
|
||||
.Where((cs) => cs.DrawerType != 1)
|
||||
.Select((cs, di) => new ChannelStock{
|
||||
CanReturnQuantity = SqlFunc.Subqueryable<MachineRecord>().Where(mr => mr.DrugId == cs.DrugId).Where(mr => mr.Type == 2).Where(mr => mr.Status != 2).Select(mr => SqlFunc.IsNull(SqlFunc.AggregateSumNoNull(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2), 0)) ,
|
||||
.Where((cs) => cs.DrawerType != 1).Where(cs => cs.MachineId == ConfigurationManager.AppSettings["machineId"])
|
||||
.Select((cs, di) => new ChannelStock
|
||||
{
|
||||
CanReturnQuantity = SqlFunc.Subqueryable<MachineRecord>().Where(mr => mr.DrugId == cs.DrugId && mr.MachineId == ConfigurationManager.AppSettings["machineId"]).Where(mr => mr.Type == 2).Where(mr => mr.Status != 2).Select(mr => SqlFunc.IsNull(SqlFunc.AggregateSumNoNull(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2), 0)),
|
||||
DrugInfo = new DrugInfo
|
||||
{
|
||||
DrugId = di.DrugId,
|
||||
|
|
|
@ -203,7 +203,7 @@ namespace DM_Weight.ViewModels
|
|||
PremissionName = "多处方取药",
|
||||
PremissionPath = "MultiOrderTakeDrugWindow",
|
||||
};
|
||||
quyaoChild.Add(mulityOrder);
|
||||
//quyaoChild.Add(mulityOrder);
|
||||
}
|
||||
|
||||
quyaoChild.Add(quyao1);
|
||||
|
@ -262,12 +262,19 @@ namespace DM_Weight.ViewModels
|
|||
PremissionName = "药品请领",
|
||||
PremissionPath = "CollectDrugWindow",
|
||||
};
|
||||
jiayaoChild.Add(jiayao6);
|
||||
|
||||
PremissionDm jiayao7 = new PremissionDm
|
||||
{
|
||||
Id = 27,
|
||||
PremissionName = "请领列表",
|
||||
PremissionPath = "ApplyListWindow",
|
||||
};
|
||||
jiayaoChild.Add(jiayao1);
|
||||
jiayaoChild.Add(jiayao2);
|
||||
jiayaoChild.Add(jiayao3);
|
||||
jiayaoChild.Add(jiayao4);
|
||||
jiayaoChild.Add(jiayao6);
|
||||
jiayaoChild.Add(jiayao7);
|
||||
jiayao.Children = jiayaoChild;
|
||||
defaultAll.Add(jiayao);
|
||||
#endregion
|
||||
|
@ -341,10 +348,24 @@ namespace DM_Weight.ViewModels
|
|||
PremissionName = "药品列表",
|
||||
PremissionPath = "DrugListWindow",
|
||||
};
|
||||
PremissionDm kuguan5 = new PremissionDm
|
||||
{
|
||||
Id = 45,
|
||||
PremissionName = "交接班记录",
|
||||
PremissionPath = "ChangeShiftsListWindow",
|
||||
};
|
||||
PremissionDm kuguan6 = new PremissionDm
|
||||
{
|
||||
Id = 46,
|
||||
PremissionName = "账册",
|
||||
PremissionPath = "AccountWindow",
|
||||
};
|
||||
kuguanChild.Add(kuguan1);
|
||||
kuguanChild.Add(kuguan2);
|
||||
kuguanChild.Add(kuguan3);
|
||||
kuguanChild.Add(kuguan4);
|
||||
kuguanChild.Add(kuguan5);
|
||||
kuguanChild.Add(kuguan6);
|
||||
kuguan.Children = kuguanChild;
|
||||
defaultAll.Add(kuguan);
|
||||
#endregion
|
||||
|
@ -368,11 +389,17 @@ namespace DM_Weight.ViewModels
|
|||
PremissionName = "角色管理",
|
||||
PremissionPath = "RoleManagerWindow",
|
||||
};
|
||||
//PremissionDm sysset3 = new PremissionDm
|
||||
//{
|
||||
// Id = 53,
|
||||
// PremissionName = "设置",
|
||||
// PremissionPath = "SettingWindow",
|
||||
//};
|
||||
PremissionDm sysset3 = new PremissionDm
|
||||
{
|
||||
Id = 53,
|
||||
PremissionName = "设置",
|
||||
PremissionPath = "SettingWindow",
|
||||
PremissionPath = "SettingMainWindow",
|
||||
};
|
||||
syssetChild.Add(sysset1);
|
||||
syssetChild.Add(sysset2);
|
||||
|
|
|
@ -18,6 +18,7 @@ using DM_Weight.Port;
|
|||
using DM_Weight.util;
|
||||
using DM_Weight.Views;
|
||||
using System.Threading;
|
||||
using System.Configuration;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -263,9 +264,50 @@ namespace DM_Weight.ViewModels
|
|||
OperationTime = DateTime.Now,
|
||||
Quantity = it.AddQuantity,
|
||||
Type = 1,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 1,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
AddQuantity = it.AddQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock + it.AddQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock + it.AddQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -16,6 +16,8 @@ using DM_Weight.msg;
|
|||
using DM_Weight.Port;
|
||||
using DM_Weight.util;
|
||||
using System.Threading;
|
||||
using System.Configuration;
|
||||
using DM_Weight.HIKVISION;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -34,7 +36,6 @@ namespace DM_Weight.ViewModels
|
|||
|
||||
private PortUtil _portUtil;
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
public SelfTakeDialogViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
|
||||
{
|
||||
_portUtil = portUtil;
|
||||
|
@ -63,7 +64,6 @@ namespace DM_Weight.ViewModels
|
|||
channelStocks.ForEach(it => it.process = 2);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
// 抽屉关闭
|
||||
case EventType.DRAWERCLOSE:
|
||||
|
@ -240,9 +240,50 @@ namespace DM_Weight.ViewModels
|
|||
Quantity = it.TakeQuantity,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId,
|
||||
StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
InvoiceId = InvoiceId
|
||||
//,StockQuantity = nowChannels.Sum(it => it.Quantity)
|
||||
}).ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
//保存账册
|
||||
SqlSugarHelper.Db.Insertable(new AccountBookG2()
|
||||
{
|
||||
DrugId = Convert.ToInt32(it.DrugId),
|
||||
Type = 2,
|
||||
Department = ConfigurationManager.AppSettings["department"].ToString(),
|
||||
InvoiceNo = InvoiceId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
OutQuantity = it.TakeQuantity,
|
||||
UserId1 = HomeWindowViewModel.Operator?.Id,
|
||||
UserId2 = HomeWindowViewModel.Reviewer?.Id,
|
||||
MachineId = ConfigurationManager.AppSettings["machineId"].ToString(),
|
||||
CreateDate = DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
CreateTime = DateTime.Now
|
||||
|
||||
}).ExecuteCommand();
|
||||
//修改凌晨生成的日结存数据
|
||||
AccountBookG2 accountBookG2Day = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 3)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.ManuNo == it.ManuNo)
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
accountBookG2Day.ManuStock = accountBookG2Day.ManuStock - it.TakeQuantity;
|
||||
|
||||
//修改凌晨生成的总结存数据
|
||||
AccountBookG2 accountBookG2Total = SqlSugarHelper.Db.Queryable<AccountBookG2>()
|
||||
.Where(ab => ab.MachineId.Equals(it.MachineId))
|
||||
.Where(ab => ab.Type == 4)
|
||||
.Where(ab => ab.DrugId == Convert.ToInt32(it.DrugId))
|
||||
.Where(ab => ab.CreateDate == DateTime.Now.ToString("yyyy-MM-dd")).First();
|
||||
|
||||
accountBookG2Total.TotalStock = accountBookG2Total.TotalStock - it.TakeQuantity;
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Day).ExecuteCommand();
|
||||
|
||||
SqlSugarHelper.Db.Updateable(accountBookG2Total).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
using DM_Weight.Common;
|
||||
using DM_Weight.Models;
|
||||
using DM_Weight.util;
|
||||
using Prism.Commands;
|
||||
using Prism.Common;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
public class SettingMainWindowViewModel : BindableBase, INavigationAware,IRegionMemberLifetime
|
||||
{
|
||||
//设置页面数据集
|
||||
private ObservableCollection<SettingPage> _settingPages;
|
||||
public ObservableCollection<SettingPage> SettingPages
|
||||
{
|
||||
get => _settingPages;
|
||||
set=>SetProperty(ref _settingPages, value);
|
||||
}
|
||||
//默认加载页面
|
||||
string defaultView = string.Empty;
|
||||
|
||||
IRegionManager _regionManager;
|
||||
|
||||
public SettingMainWindowViewModel(IRegionManager regionManager)
|
||||
{
|
||||
this._regionManager=regionManager;
|
||||
}
|
||||
//选中事件
|
||||
public DelegateCommand<string> NavigateCommand { get => new DelegateCommand<string>(navigateAction); }
|
||||
|
||||
public bool KeepAlive => false;
|
||||
|
||||
private void navigateAction(string obj)
|
||||
{
|
||||
if(obj==null||string.IsNullOrWhiteSpace(obj))
|
||||
{
|
||||
return;
|
||||
}
|
||||
defaultView = obj;
|
||||
_regionManager.RequestNavigate(PrismManager.SettingViewRegionName, defaultView);
|
||||
}
|
||||
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
if(SettingPages is null|| SettingPages.Count<=0)
|
||||
{
|
||||
SettingPages=new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().ToList());
|
||||
if(SettingPages.Count>0)
|
||||
{
|
||||
if(string.IsNullOrEmpty(defaultView))
|
||||
{
|
||||
defaultView = SettingPages[0].ViewName;
|
||||
}
|
||||
_regionManager.RequestNavigate(PrismManager.SettingViewRegionName,defaultView);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,236 @@
|
|||
<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 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.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.5*" />
|
||||
<ColumnDefinition Width="1.5*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</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}"
|
||||
/>
|
||||
<!--<ComboBox
|
||||
Margin="12 0 0 0"
|
||||
Grid.Column="2"
|
||||
materialDesign:HintAssist.Hint="药品名称"
|
||||
IsEditable="True"
|
||||
ItemsSource="{Binding DrugInfos}"
|
||||
SelectedItem="{Binding DrugInfo}"
|
||||
DisplayMemberPath="DrugName"
|
||||
/>-->
|
||||
<ComboBox
|
||||
Margin="6 0 6 0"
|
||||
Grid.Column="2"
|
||||
materialDesign:HintAssist.Hint="药品名称/拼音码/药品编码"
|
||||
ItemsSource="{Binding DrugInfos}"
|
||||
SelectedItem="{Binding DrugInfo}"
|
||||
DisplayMemberPath="DrugName" IsEditable="True" IsTextSearchEnabled="False" KeyUp="ComboBox_KeyUp"
|
||||
/>
|
||||
<ComboBox
|
||||
Margin="12 0 0 0"
|
||||
Grid.Column="3"
|
||||
materialDesign:HintAssist.Hint="账册类型"
|
||||
IsEditable="True"
|
||||
ItemsSource="{Binding AccountTypeList}"
|
||||
SelectedItem="{Binding AccountType}"
|
||||
DisplayMemberPath="AccountTypeName"
|
||||
/>
|
||||
<StackPanel Grid.Column="4" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="导出" Command="{Binding DownloadOrderUser}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<materialDesign:PackIcon Kind="download" />
|
||||
<TextBlock Text="导出发药登记表" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="导出" Command="{Binding DownloadAccountBook}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<materialDesign:PackIcon Kind="download" />
|
||||
<TextBlock Text="导出账册" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon
|
||||
Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
<DataGrid x:Name="dgv1"
|
||||
Grid.Row="1"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||
ItemsSource="{Binding AccountList}"
|
||||
materialDesign:DataGridAssist.EnableEditBoxAssist="False"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
materialDesign:DataGridAssist.CellPadding="13"
|
||||
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="Background" Value="Transparent"/>
|
||||
<!--<Setter Property="HorizontalAlignment" Value="Left"/>-->
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.Resources>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="80"
|
||||
Binding="{Binding CreateDate}"
|
||||
Header="日期"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="150"
|
||||
Binding="{Binding DrugName}"
|
||||
Header="药品名称"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="130"
|
||||
Binding="{Binding DrugSpec}"
|
||||
Header="规格"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="200"
|
||||
Binding="{Binding Manufactory}"
|
||||
Header="厂家"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Binding="{Binding InvoiceNo}"
|
||||
Header="凭证号"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="130"
|
||||
Binding="{Binding ManuNo}"
|
||||
Header="批号"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Binding="{Binding EffDate, StringFormat='yy/MM/dd'}"
|
||||
Header="有效期"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding YQuantity}"
|
||||
Header="上日结存"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding AddQuantity}"
|
||||
Header="借入数"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding OutQuantity}"
|
||||
Header="发出数"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding ManuStock}"
|
||||
Header="批次结存"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding TotalStock}"
|
||||
Header="总结存"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding OperatorName}"
|
||||
Header="发药人"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="75"
|
||||
Binding="{Binding ReviewerName}"
|
||||
Header="复核人"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<!--<DataGridTextColumn Width="100"
|
||||
Binding="{Binding SupplierDept}"
|
||||
Header="供应单位"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Binding="{Binding ReceiveDept}"
|
||||
Header="领用部门"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>-->
|
||||
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<!--<pagination:Pagination Grid.Row="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>-->
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,51 @@
|
|||
using DM_Weight.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// AccountWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class AccountWindow : UserControl
|
||||
{
|
||||
AccountWindowViewModel vms;
|
||||
public AccountWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
/// <summary>
|
||||
/// 药品名称下拉框
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ComboBox_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
ComboBox comboBox = sender as ComboBox;
|
||||
vms.UpdateComboBoxItems(comboBox.Text);
|
||||
if (this.vms.DrugInfos.Count > 0)
|
||||
{
|
||||
comboBox.IsDropDownOpen = true;
|
||||
}
|
||||
TextBox textBox = (TextBox)comboBox.Template.FindName("PART_EditableTextBox", comboBox);
|
||||
textBox.SelectionStart = textBox.Text.Length;
|
||||
}
|
||||
|
||||
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
vms = AccountWindowViewModel.vm;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,282 @@
|
|||
<UserControl x:Class="DM_Weight.Views.ApplyListWindow"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
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:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
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:ApplyListConverter x:Key="ApplyListConverter" />
|
||||
<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 CollectDrugLst}">
|
||||
<CollectionViewSource.GroupDescriptions>
|
||||
<PropertyGroupDescription PropertyName="drugPleaseClaim" />
|
||||
</CollectionViewSource.GroupDescriptions>
|
||||
</CollectionViewSource>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox
|
||||
Grid.Column="0"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"
|
||||
/>
|
||||
<TextBox
|
||||
Grid.Column="1"
|
||||
Text="{Binding SearchValue}"
|
||||
materialDesign:HintAssist.Hint="{Binding SelectedItem.Name}"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
<ComboBox
|
||||
Margin="12 0 0 0"
|
||||
Grid.Column="2"
|
||||
materialDesign:HintAssist.Hint="请领单状态"
|
||||
IsEditable="True"
|
||||
ItemsSource="{Binding DrugPleaseStateList}"
|
||||
SelectedItem="{Binding _DrugPleaseState}"
|
||||
DisplayMemberPath="StateName"
|
||||
/>
|
||||
<StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon
|
||||
Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||
ItemsSource="{Binding Source={StaticResource GroupedDataList}}"
|
||||
SelectedItem="SelectDrugPleaseClaim"
|
||||
materialDesign:DataGridAssist.EnableEditBoxAssist="False"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
materialDesign:DataGridAssist.CellPadding="13"
|
||||
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>
|
||||
<!--GroupStyle to group data-->
|
||||
<DataGrid.GroupStyle>
|
||||
<GroupStyle>
|
||||
<!--Group DataItems into DataGroup-->
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True"
|
||||
materialDesign:ExpanderAssist.HeaderBackground="PaleTurquoise">
|
||||
<Expander.Header >
|
||||
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name.TotalQuantity,StringFormat=请领数量:{0},}" FontWeight="Bold" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.ReturnPrQuantity,StringFormat=处方张数:{0},}" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.DoDate,StringFormat=请领时间:{0},}" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.MachineId,Converter={StaticResource ApplyListConverter},ConverterParameter=machineId,StringFormat=请领药房:{0},}" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.ApplyUser,Converter={StaticResource ApplyListConverter}, ConverterParameter=UserId, StringFormat=申请人:{0},}" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.ReviewUser,Converter={StaticResource ApplyListConverter}, ConverterParameter=UserId,StringFormat=复核人:{0},}" />
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Name.State,Converter={StaticResource ApplyListConverter}, ConverterParameter=PleaseStatus}" />
|
||||
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter/>
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
|
||||
</GroupStyle>
|
||||
</DataGrid.GroupStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="180"
|
||||
Binding="{Binding OrderNo}"
|
||||
Header="处方号"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="180"
|
||||
Binding="{Binding drugInfo.DrugName}"
|
||||
Header="药品名称"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="130"
|
||||
Binding="{Binding drugInfo.DrugSpec}"
|
||||
Header="规格"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="241"
|
||||
Binding="{Binding drugInfo.Manufactory}"
|
||||
Header="厂家"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="80"
|
||||
Binding="{Binding Quantity}"
|
||||
Header="数量"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Binding="{Binding CurrentMachineId}"
|
||||
Header="当前所在"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
|
||||
<!--<DataGridTextColumn Width="80"
|
||||
Binding="{Binding Status,Converter={StaticResource ApplyListConverter}, ConverterParameter=OrderStatus}"
|
||||
Header="状态"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>-->
|
||||
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<!--<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110" />
|
||||
<ColumnDefinition Width="180" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox
|
||||
Grid.Column="0"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"
|
||||
/>
|
||||
<TextBox
|
||||
Grid.Column="1"
|
||||
Text="{Binding SearchValue}"
|
||||
materialDesign:HintAssist.Hint="{Binding SelectedItem.Name}"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon
|
||||
Kind="Refresh" />
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CreateApplyOrder}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}" Content="生成请领单">
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
<ListView
|
||||
Grid.Row="1"
|
||||
ItemsSource="{Binding CollectDrugs}"
|
||||
SelectedItem="{Binding selectCollectDrug}"
|
||||
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="110"
|
||||
Header="请领ID"
|
||||
DisplayMemberBinding="{Binding PatientId}"/>
|
||||
<GridViewColumn Width="130"
|
||||
Header="请领数量"
|
||||
DisplayMemberBinding="{Binding PName}" />
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding Sex}"
|
||||
Header="处方张数"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding Age}"
|
||||
Header="类型"/>
|
||||
<GridViewColumn Width="200"
|
||||
DisplayMemberBinding="{Binding IdNumber}"
|
||||
Header="状态"/>
|
||||
<GridViewColumn Width="200"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="申请人"/>
|
||||
<GridViewColumn Width="240"
|
||||
DisplayMemberBinding="{Binding DeptName}"
|
||||
Header="复核人"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<pagination:Pagination Grid.Row="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>-->
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// ApplyListWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ApplyListWindow : UserControl
|
||||
{
|
||||
public ApplyListWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
<UserControl x:Class="DM_Weight.Views.ChangeShiftsListWindow"
|
||||
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">
|
||||
<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>
|
||||
<convert:ShiftsStateConverter x:Key="ShiftsStateConverter"/>
|
||||
</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="1.5*" />
|
||||
<ColumnDefinition Width="1.5*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</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.Column="3" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="导出" Command="{Binding Download}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<materialDesign:PackIcon Kind="download" />
|
||||
<TextBlock Text="导出记录" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="交接班" Command="{Binding ShiftsCommand}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<materialDesign:PackIcon Kind="CompareVertical" />
|
||||
<TextBlock Text="交接班" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon
|
||||
Kind="Refresh" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
<ListView Grid.Row="1" ItemsSource="{Binding HkcChangeShifts}"
|
||||
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>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="180"
|
||||
Header="日期"
|
||||
DisplayMemberBinding="{Binding OptDate, StringFormat='yyyy-MM-dd HH:mm:ss'}" />
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding FromOperator}"
|
||||
Header="交班人发药人"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding FromRviewer}"
|
||||
Header="交班人审核人"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ToOperator}"
|
||||
Header="接班人发药人"/>
|
||||
<GridViewColumn Width="130"
|
||||
DisplayMemberBinding="{Binding ToReviewer}"
|
||||
Header="接班人审核人"/>
|
||||
<GridViewColumn Width="180"
|
||||
DisplayMemberBinding="{Binding ToDate, StringFormat='yyyy-MM-dd HH:mm:ss'}"
|
||||
Header="接班日期"/>
|
||||
<GridViewColumn Width="100"
|
||||
DisplayMemberBinding="{Binding State,Converter={StaticResource ShiftsStateConverter}}"
|
||||
Header="当班状态"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<pagination:Pagination Grid.Row="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// ChangeShiftsListWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ChangeShiftsListWindow : UserControl
|
||||
{
|
||||
public ChangeShiftsListWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,140 @@
|
|||
<UserControl x:Class="DM_Weight.Views.CollectDrugWindow"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
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:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
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" />
|
||||
<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.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110" />
|
||||
<ColumnDefinition Width="180" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox
|
||||
Grid.Column="0"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"
|
||||
/>
|
||||
<TextBox
|
||||
Grid.Column="1"
|
||||
Text="{Binding SearchValue}"
|
||||
materialDesign:HintAssist.Hint="{Binding SelectedItem.Name}"
|
||||
Margin="6 0 0 0"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="刷新" Command="{Binding Query}">
|
||||
<materialDesign:PackIcon
|
||||
Kind="Refresh" />
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center" Command="{Binding CreateApplyOrder}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}" Content="生成请领单">
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Grid>
|
||||
<ListView
|
||||
Grid.Row="1"
|
||||
ItemsSource="{Binding CollectDrugs}"
|
||||
SelectedItem="{Binding selectCollectDrug}"
|
||||
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="60">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding IsSelected}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="110"
|
||||
Header="患者ID"
|
||||
DisplayMemberBinding="{Binding PatientId}"/>
|
||||
<GridViewColumn Width="130"
|
||||
Header="姓名"
|
||||
DisplayMemberBinding="{Binding PName}" />
|
||||
<GridViewColumn Width="60"
|
||||
DisplayMemberBinding="{Binding Sex}"
|
||||
Header="性别"/>
|
||||
<GridViewColumn Width="60"
|
||||
DisplayMemberBinding="{Binding Age}"
|
||||
Header="年龄"/>
|
||||
<GridViewColumn Width="200"
|
||||
DisplayMemberBinding="{Binding IdNumber}"
|
||||
Header="身份证"/>
|
||||
<GridViewColumn Width="200"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="处方号"/>
|
||||
<GridViewColumn Width="240"
|
||||
DisplayMemberBinding="{Binding DeptName}"
|
||||
Header="科室"/>
|
||||
<GridViewColumn Width="240"
|
||||
DisplayMemberBinding="{Binding DrugName}"
|
||||
Header="药品名称"/>
|
||||
<GridViewColumn Width="60"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<!--<pagination:Pagination Grid.Row="2"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>-->
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CollectDrugWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CollectDrugWindow : UserControl
|
||||
{
|
||||
public CollectDrugWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.ChangeShiftsDialog"
|
||||
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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<convert:BoardTypeConverter x:Key="BoardTypeConverter" />
|
||||
<convert:ForeColorConverter x:Key="ForeColorConverter"/>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</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 0 16 0" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="{Binding Title}" />
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignIconForegroundButton}"
|
||||
Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding BtnCloseCommand}"
|
||||
ToolTip="关闭" Cursor="Hand"
|
||||
>
|
||||
<materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<materialDesign:Card>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Margin="15,10,60,5" Text="验证方式1:账号密码验证" Foreground="#31ccec" FontWeight="Bold" FontSize="14"/>
|
||||
<TextBox Margin="15,5,15,5"
|
||||
Grid.Row="1"
|
||||
x:Name="account" Foreground="Gray"
|
||||
Text="{Binding Username, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"
|
||||
VerticalAlignment="Top"
|
||||
AcceptsReturn="False"
|
||||
TextWrapping="Wrap"
|
||||
materialDesign:HintAssist.Hint="账号" />
|
||||
<PasswordBox Margin="15,5,15,5"
|
||||
Grid.Row="2"
|
||||
x:Name="PasswordBox" Foreground="Gray"
|
||||
materialDesign:PasswordBoxAssist.Password="{Binding Password, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
Style="{StaticResource MaterialDesignOutlinedPasswordBox}"
|
||||
VerticalAlignment="Top"
|
||||
materialDesign:HintAssist.Hint="密码" />
|
||||
<StackPanel Grid.Row="3"
|
||||
Grid.Column="1">
|
||||
<Grid Margin="2,2,2,10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="3*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="3*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource MaterialDesignRaisedButton}"
|
||||
materialDesign:ButtonAssist.CornerRadius="5"
|
||||
Command="{ Binding LoginCommand }"
|
||||
Background="#42a5f5" IsEnabled="{Binding JiaoBanOk}"
|
||||
BorderBrush="#42a5f5" Cursor="Hand" IsDefault="True" Content="验证"/>
|
||||
<Button
|
||||
Grid.Column="3"
|
||||
Style="{StaticResource MaterialDesignRaisedLightButton}"
|
||||
Background="#7986cb"
|
||||
BorderBrush="#7986cb"
|
||||
materialDesign:ButtonAssist.CornerRadius="5" Cursor="Hand" IsCancel="true"
|
||||
Command="{ Binding ClearCommand }" >
|
||||
<TextBlock Foreground="{DynamicResource MaterialDesignPaper}" Text="清空" />
|
||||
</Button>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1" Grid.Column="1" >
|
||||
<materialDesign:Card>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0" Margin="15,10,15,0" Text="验证方式2:屏幕外右侧指纹验证" Foreground="#31ccec" FontWeight="Bold" FontSize="14" />
|
||||
|
||||
<StackPanel Grid.Row="1">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="交班人 发药人:" Grid.Column="0" HorizontalAlignment="Right" Margin="0 15 0 5"
|
||||
FontSize="14" Foreground="#31ccec" FontWeight="Bold"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Margin="5 15 0 5" Foreground="{Binding OperatorLogin,Converter={StaticResource ForeColorConverter}}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Text="{Binding Operator.Nickname, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<TextBlock Grid.Row="1" Text="审核人:" Grid.Column="0" HorizontalAlignment="Right" Margin="0 15 0 5"
|
||||
FontSize="14" Foreground="#31ccec" FontWeight="Bold"/>
|
||||
<TextBlock Grid.Column="1" Margin="5 15 0 5" Foreground="{Binding ReviewerLogin,Converter={StaticResource ForeColorConverter}}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Grid.Row="1" Text="{Binding Reviewer.Nickname, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<TextBlock Grid.Row="2" Text="接班人 发药人:" Grid.Column="0" HorizontalAlignment="Right" Margin="0 15 0 5"
|
||||
FontSize="14" Foreground="#31ccec" FontWeight="Bold"/>
|
||||
<TextBlock Grid.Column="2" Margin="5 15 0 5"
|
||||
FontSize="14"
|
||||
FontWeight="Bold" TextAlignment="Left" HorizontalAlignment="Left"
|
||||
Foreground="#3ECFED"
|
||||
Grid.Row="2" Text="{Binding JieOperator.Nickname, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<TextBlock Grid.Row="3" Text="审核人:" Grid.Column="0" HorizontalAlignment="Right" Margin="0 15 0 5"
|
||||
FontSize="14" Foreground="#31ccec" FontWeight="Bold"/>
|
||||
<TextBlock Grid.Column="1" HorizontalAlignment="Left" Margin="5 15 0 5"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Foreground="#3ECFED"
|
||||
Grid.Row="3" Text="{Binding JieReviewer.Nickname, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</Grid>
|
||||
<materialDesign:Card Grid.Row="2" Grid.ColumnSpan="2" Margin="10">
|
||||
<Button
|
||||
Style="{StaticResource MaterialDesignRaisedButton}"
|
||||
materialDesign:ButtonAssist.CornerRadius="5"
|
||||
Command="{ Binding ShiftsCommand }"
|
||||
Background="#42a5f5"
|
||||
BorderBrush="#42a5f5" Cursor="Hand" IsDefault="True" Content="确认交接"/>
|
||||
</materialDesign:Card>
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// ChangeShiftsDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ChangeShiftsDialog : UserControl
|
||||
{
|
||||
public ChangeShiftsDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.CollectDrugDialog"
|
||||
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
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"
|
||||
mc:Ignorable="d"
|
||||
xmlns:prism="http://prismlibrary.com/">
|
||||
<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>
|
||||
<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 BtnCloseCommand}"
|
||||
ToolTip="关闭"
|
||||
>
|
||||
<materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1" x:Name="Border" Margin="0 10 10 0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource MaterialDesignSubtitle1TextBlock}">
|
||||
<Setter Property="Padding" Value="6" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<TextBlock
|
||||
HorizontalAlignment="Right"
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Text="请领数量:" />
|
||||
<StackPanel
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Left"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding QuantityCount}" />
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock
|
||||
HorizontalAlignment="Right"
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Text="交处方张数:" />
|
||||
<TextBlock
|
||||
HorizontalAlignment="Left"
|
||||
Grid.Row="0"
|
||||
Grid.Column="3"
|
||||
Text="{Binding OrderCount}" />
|
||||
<TextBlock
|
||||
HorizontalAlignment="Right"
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
Text="请领药库:" />
|
||||
<ComboBox Grid.Column="5" Width="80" Height="50" FontFamily="微软雅黑"
|
||||
Margin="0 0 0 5" HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignOutlinedComboBox}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemsSource="{Binding Selects}"/>
|
||||
<Button Width="130" Height="50"
|
||||
Margin="6 0 6 3" Grid.Row="0" Grid.Column="6"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
ToolTip="确认并生成"
|
||||
Content="确认并生成"
|
||||
Command="{Binding CreateApply}" />
|
||||
</Grid>
|
||||
<ListView
|
||||
Grid.Row="2"
|
||||
ItemsSource="{Binding CollectDrugList}"
|
||||
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>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="200"
|
||||
Header="药品名称"
|
||||
DisplayMemberBinding="{Binding DrugName}"/>
|
||||
<GridViewColumn Width="100"
|
||||
Header="规格"
|
||||
DisplayMemberBinding="{Binding DrugSpec}" />
|
||||
<GridViewColumn Width="280"
|
||||
DisplayMemberBinding="{Binding Manufactory}"
|
||||
Header="厂家"/>
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
<!--<GridViewColumn Width="200"
|
||||
DisplayMemberBinding="{Binding OrderNo}"
|
||||
Header="处方号"/>-->
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<!--<pagination:Pagination Grid.Row="3"
|
||||
CurrentPage="{Binding PageNum}"
|
||||
PageSize="{Binding PageSize}"
|
||||
TotalPages="{Binding TotalCount}"
|
||||
InfoTextIsEnabel="True"
|
||||
/>-->
|
||||
</Grid>
|
||||
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// CollectDrugDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CollectDrugDialog : UserControl
|
||||
{
|
||||
public CollectDrugDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,201 @@
|
|||
<UserControl x:Class="DM_Weight.Views.Dialog.DestoryEmptyDialog"
|
||||
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"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<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="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="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.DrugInfo.Manufactory}" />
|
||||
<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>
|
||||
<ListView
|
||||
Grid.Row="2" ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ItemsSource="{Binding _MachineRecords}"
|
||||
SelectedItem="{Binding _MachineRecord}"
|
||||
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="100">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding IsSelected}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Width="100"
|
||||
Header="操作人"
|
||||
DisplayMemberBinding="{Binding User.Nickname}"/>
|
||||
<GridViewColumn Width="150"
|
||||
Header="时间"
|
||||
DisplayMemberBinding="{Binding OperationTime, StringFormat='yyyy-MM-dd HH:mm:ss'}" />
|
||||
<GridViewColumn Width="100"
|
||||
DisplayMemberBinding="{Binding Quantity}"
|
||||
Header="数量"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding ManuNo}"
|
||||
Header="批次"/>
|
||||
<GridViewColumn Width="150"
|
||||
DisplayMemberBinding="{Binding EffDate, StringFormat=yyyy-MM-dd}"
|
||||
Header="效期"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center">
|
||||
|
||||
<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 DestoryEmptyCommand}">
|
||||
</Button>
|
||||
<Button
|
||||
Margin="2"
|
||||
Visibility="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CancelBtn}"
|
||||
Style="{StaticResource MaterialDesignRaisedButton}"
|
||||
Background="Orange"
|
||||
BorderBrush="Orange"
|
||||
Content="取消"
|
||||
Command="{Binding CancleTake}" />
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views.Dialog
|
||||
{
|
||||
/// <summary>
|
||||
/// DestoryEmptyDialog.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DestoryEmptyDialog : UserControl
|
||||
{
|
||||
public DestoryEmptyDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@
|
|||
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
MinWidth="880"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
|
@ -121,8 +122,9 @@
|
|||
Text="{Binding ChannelStock.CanReturnQuantity}" />
|
||||
</Grid>
|
||||
<ListView
|
||||
Grid.Row="2"
|
||||
Grid.Row="2" ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ItemsSource="{Binding MachineRecords}"
|
||||
SelectedItem="{Binding _MachineRecord}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="13">
|
||||
|
@ -131,6 +133,12 @@
|
|||
<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="100">
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<UserControl x:Class="DM_Weight.Views.DrugBaseWindow"
|
||||
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:prism="http://prismlibrary.com/"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// DrugBaseWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DrugBaseWindow : UserControl
|
||||
{
|
||||
public DrugBaseWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -95,7 +95,7 @@
|
|||
/>
|
||||
<GridViewColumn
|
||||
Header="基数"
|
||||
DisplayMemberBinding="{Binding MaxStock}"
|
||||
DisplayMemberBinding="{Binding drugBase.BaseQuantity}"
|
||||
/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
|
@ -152,12 +152,12 @@
|
|||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
<TextBox
|
||||
Grid.Row="5"
|
||||
Text="{Binding SelectedDrug.MaxStock, UpdateSourceTrigger=PropertyChanged}"
|
||||
Text="{Binding SelectedDrug.drugBase.BaseQuantity, UpdateSourceTrigger=PropertyChanged}"
|
||||
materialDesign:HintAssist.Hint="基数"
|
||||
Margin="12 6"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
|
||||
<StackPanel Grid.Row="6" Orientation="Horizontal" HorizontalAlignment="Center" Margin="12">
|
||||
<Button Margin="6" Content="新增" Command="{Binding AddDrugCommand}" />
|
||||
<Button Margin="6" Visibility="Collapsed" Content="新增" Command="{Binding AddDrugCommand}" />
|
||||
<Button Margin="6" Content="修改" Command="{Binding EditDrugCommand}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<UserControl x:Class="DM_Weight.Views.FridgeWindow"
|
||||
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:rules="clr-namespace:DM_Weight.Common"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:behavior="clr-namespace:DM_Weight.Commons.ValidatRules;assembly=DM_Weight.Commons"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<i:Interaction.Behaviors>
|
||||
<behavior:ValidationErrorMappingBehavior HasValidationError="{Binding IsInvalid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</i:Interaction.Behaviors>
|
||||
<Grid Width="400">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="1.2*"/>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Margin="6 0 0 0" Text="冰箱温度区间:" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||
<TextBox Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
materialDesign:HintAssist.Hint="温度区间2-8度以-分隔"
|
||||
Margin="6 0 0 10"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}">
|
||||
<TextBox.Text>
|
||||
<Binding Path="TemperatureRange" Delay="1000" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
|
||||
<Binding.ValidationRules>
|
||||
<rules:TemperatureRangeRule/>
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
<!--<TextBlock Text="冰箱温度:" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||
<TextBox Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
materialDesign:HintAssist.Hint="保留小数点后一位"
|
||||
Margin="6 10 0 10"
|
||||
Style="{StaticResource MaterialDesignOutlinedTextBox}">
|
||||
<TextBox.Text>
|
||||
<Binding Path="TemperatureValue" Delay="1000" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
|
||||
<Binding.ValidationRules>
|
||||
<rules:TemperatureRule/>
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>-->
|
||||
<TextBlock Text="冰箱状态:" Margin="0 18 0 0" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||
<ToggleButton Grid.Row="2" Grid.Column="1" Width="38" Height="38" Margin="6 18 0 0"
|
||||
HorizontalAlignment="Left"
|
||||
x:Name="MaterialDesignFilledTextBoxEnabledComboBox"
|
||||
Style="{StaticResource MaterialDesignActionToggleButton}"
|
||||
IsChecked="{Binding FridgeState}"
|
||||
ToolTip="冰箱状态"
|
||||
Content="打开"
|
||||
materialDesign:ToggleButtonAssist.OnContent="关闭" />
|
||||
<TextBlock Text="报警状态:" Margin="0 18 0 0" Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||
<ToggleButton Grid.Row="3" Grid.Column="1" Width="38" Height="38" Margin="6 18 0 0"
|
||||
HorizontalAlignment="Left"
|
||||
Style="{StaticResource MaterialDesignActionToggleButton}"
|
||||
IsChecked="{Binding AlarmState}"
|
||||
ToolTip="报警状态"
|
||||
Content="打开"
|
||||
materialDesign:ToggleButtonAssist.OnContent="关闭" />
|
||||
<Button Grid.Row="4" Grid.ColumnSpan="2" Content="保存" Command="{Binding SaveCommand}" IsEnabled="{Binding BtnIsEnable}" />
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// FridgeWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FridgeWindow : UserControl
|
||||
{
|
||||
public FridgeWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -118,6 +118,7 @@
|
|||
<Grid Grid.Column="2">
|
||||
<StackPanel Margin="6" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button Content="储物箱" Command="{Binding OpenRecoverCommand}" Visibility="{Binding Is16Drawer, Converter={StaticResource BooleanToVisibilityConverter}}" Style="{StaticResource MaterialDesignFlatSecondaryLightButton}" />
|
||||
<TextBlock Margin="0,10,10,0" Text="{Binding WD}" Foreground="White" FontWeight="Bold" FontSize="14"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
|
|
|
@ -199,6 +199,7 @@
|
|||
<TextBlock Visibility="{Binding CanBusPortMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="can总线串口连接失败" />
|
||||
<TextBlock Visibility="{Binding FingerMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="指纹机连接失败" />
|
||||
<TextBlock Visibility="{Binding HIKMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="录像机登录失败" />
|
||||
<TextBlock Visibility="{Binding FridgePortMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="冰箱串口连接失败" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
/>
|
||||
|
||||
<StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button
|
||||
<!--<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
|
@ -63,7 +63,7 @@
|
|||
<materialDesign:PackIcon Kind="download" />
|
||||
<TextBlock Text="导出账册" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</Button>-->
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
|
|
|
@ -29,8 +29,45 @@
|
|||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 6 0 6" Grid.Row="0">
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.5*" />
|
||||
<ColumnDefinition Width="1.5*" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</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 Orientation="Horizontal" HorizontalAlignment="Right" Grid.Column="3">
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Command="{Binding ReturnEmptyCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="还空瓶" />
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Command="{Binding DestoryEmptyCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="销毁" />
|
||||
<Button
|
||||
Margin="0 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Command="{Binding DownloadRecordCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="导出回收销毁记录" />
|
||||
<Button
|
||||
Margin="0 0 6 0"
|
||||
VerticalAlignment="Center"
|
||||
|
@ -55,13 +92,20 @@
|
|||
<Setter Property="Foreground" Value="White" />
|
||||
</Style>
|
||||
</ListView.Resources>
|
||||
<i:Interaction.Triggers>
|
||||
<!--<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="SelectionChanged">
|
||||
<i:InvokeCommandAction Command="{Binding RowSelected}" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</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="140"
|
||||
Header="库位"
|
||||
DisplayMemberBinding="{Binding Location}"/>
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<UserControl x:Class="DM_Weight.Views.SettingMainWindow"
|
||||
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:prism="http://prismlibrary.com/"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:ext="clr-namespace:DM_Weight.Common"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Margin="20,10" FontSize="26" Text="设置"/>
|
||||
<Border BorderBrush="#DDD" BorderThickness="1,0,0,0.3"/>
|
||||
<Grid Grid.Row="1" Margin="10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="130"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ListBox Grid.Row="0" Grid.Column="0" x:Name="menuBar" ItemsSource="{Binding SettingPages}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="SelectionChanged">
|
||||
<i:InvokeCommandAction Command="{Binding NavigateCommand}" CommandParameter="{Binding ElementName=menuBar,Path=SelectedItem.ViewName}"/>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Background="Transparent" Orientation="Horizontal">
|
||||
<md:PackIcon Margin="10,0" Kind="{Binding Icon}"/>
|
||||
<TextBlock Margin="5,0" Text="{Binding Name}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<Border BorderBrush="#DDD" BorderThickness="0,0,1,0"/>
|
||||
<ContentControl Grid.Row="0" Grid.Column="1" Margin="20,0" prism:RegionManager.RegionName="{x:Static ext:PrismManager.SettingViewRegionName}"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DM_Weight.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// SettingMainWindow.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class SettingMainWindow : UserControl
|
||||
{
|
||||
public SettingMainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue