Compare commits

..

2 Commits

Author SHA1 Message Date
maqiao ed833f7991 添加库存更新失败日志 2024-04-01 16:18:30 +08:00
maqiao ff7716f63d 1调拨入库同一调拨单可多次入
2库存管理页面添加库存为0时库存红色字体
3处方取药同一处方可多次取药
2024-03-29 18:21:28 +08:00
41 changed files with 386 additions and 451 deletions

1
.gitignore vendored
View File

@ -361,4 +361,3 @@ MigrationBackup/
# Fody - auto-generated XML schema # Fody - auto-generated XML schema
FodyWeavers.xsd FodyWeavers.xsd
/readme.txt

View File

@ -3,7 +3,7 @@
<connectionStrings> <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;database=wpf_dm_program;userid=root;password=qq1223" />-->
<add name="database" connectionString="server=127.0.0.1;port=3306;database=hunanxianchang_db;userid=root;password=root;SslMode=none;Command Timeout=61;" /> <add name="database" connectionString="server=127.0.0.1;port=3306;database=hunanxianchang_db;userid=root;password=root;Pooling=false; ConnectionLifeTime=0;" />
</connectionStrings> </connectionStrings>
<!--<runtime> <!--<runtime>
--><!--配置之后Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!-- --><!--配置之后Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
@ -20,13 +20,13 @@
<!--2023/7/13 药房代码 有则写无则空 --> <!--2023/7/13 药房代码 有则写无则空 -->
<add key="storage" value="" /> <add key="storage" value="" />
<!-- 登录模式 1单人登录2双人登录 --> <!-- 登录模式 1单人登录2双人登录 -->
<add key="loginMode" value="2" /> <add key="loginMode" value="1" />
<!-- 登录顺序,指定先登录的人的名称有效值只有在登录模式等于2时才会生效 发药人【operator】审核人【reviewer】 --> <!-- 登录顺序,指定先登录的人的名称有效值只有在登录模式等于2时才会生效 发药人【operator】审核人【reviewer】 -->
<add key="firstLogin" value="operator" /> <add key="firstLogin" value="operator" />
<!-- 按处方还药或者按取药记录还药 1:处方2药品--> <!-- 按处方还药或者按取药记录还药 1:处方2药品-->
<add key="returnDrugMode" value="2" /> <add key="returnDrugMode" value="1" />
<!-- 自动退出时间单位秒为0时不自动退出 --> <!-- 自动退出时间单位秒为0时不自动退出 -->
<add key="autoExit" value="300"/> <add key="autoExit" value="0"/>
<!--报表数据库连接--> <!--报表数据库连接-->
<add key="gridConnectionString" value="MYSQL; Database=hunanxianchang_db; Password=root; Port=3306; Server=127.0.0.1; User=root;"/> <add key="gridConnectionString" value="MYSQL; Database=hunanxianchang_db; Password=root; Port=3306; Server=127.0.0.1; User=root;"/>
<!-- 查询处方是orderNo还是orderGroupNo --> <!-- 查询处方是orderNo还是orderGroupNo -->

View File

@ -38,17 +38,17 @@ namespace DM_Weight
public partial class App : PrismApplication public partial class App : PrismApplication
{ {
#region #region
private static UserList _currentFaUserList = new UserList(); private static UserList _currentFaUserList=new UserList();
public static UserList CurrentFaUserList public static UserList CurrentFaUserList
{ {
get => _currentFaUserList; get => _currentFaUserList;
set => _currentFaUserList = value; set=> _currentFaUserList = value;
} }
#endregion #endregion
#region #region
private static UserList _currentShenUserList = new UserList(); private static UserList _currentShenUserList= new UserList();
public static UserList CurrentShenUserList public static UserList CurrentShenUserList
{ {
get => _currentShenUserList; get => _currentShenUserList;
@ -89,11 +89,7 @@ namespace DM_Weight
foreach (Exception item in e.Exception.InnerExceptions) foreach (Exception item in e.Exception.InnerExceptions)
{ {
logger.Error($"异常类型:{item.StackTrace};{item.GetType()}{Environment.NewLine}来自:{item.Source}{Environment.NewLine}异常内容:{item.Message}"); logger.Error($"异常类型:{item.GetType()}{Environment.NewLine}来自:{item.Source}{Environment.NewLine}异常内容:{item.Message}");
//if (item.GetType() == typeof(SqlSugar.SqlSugarException))
//{
// UserList userList = new UserService().CheckUserByFingerPrinter(1);
//}
} }
//将异常标识为已经观察到 //将异常标识为已经观察到
@ -264,7 +260,7 @@ namespace DM_Weight
//containerRegistry.RegisterSingleton<SqlSugarScope>(() => SqlSugarHelperNew.GetInstance()); //containerRegistry.RegisterSingleton<SqlSugarScope>(() => SqlSugarHelperNew.GetInstance());
//账册页面 //账册页面
containerRegistry.RegisterForNavigation<AccountWindow, AccountWindowViewModel>(); containerRegistry.RegisterForNavigation<AccountWindow,AccountWindowViewModel>();
//账册服务类 //账册服务类
containerRegistry.Register<MachineRecordService>(); containerRegistry.Register<MachineRecordService>();
} }

View File

@ -1,4 +1,4 @@
//using NetTaste; using NetTaste;
using Prism.Commands; using Prism.Commands;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View File

@ -0,0 +1,41 @@
using DM_Weight.Models;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace DM_Weight.Converter
{
internal class ColorCountConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var total = 0;
bool bInt = int.TryParse(value.ToString(), out var count); if (bInt)
{
if (count <= 0)
{
return "Red";
}
else
{
return "black";
}
}
else
{
return "black";
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@ -71,9 +71,10 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2365.46" /> <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2365.46" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" /> <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
<PackageReference Include="MySqlConnector" Version="2.3.6" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Prism.Unity" Version="8.1.97" /> <PackageReference Include="Prism.Unity" Version="8.1.97" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.152" /> <PackageReference Include="SqlSugarCore" Version="5.1.4.67" />
<PackageReference Include="SuperSimpleTcp" Version="3.0.10" /> <PackageReference Include="SuperSimpleTcp" Version="3.0.10" />
<PackageReference Include="System.Drawing.Common" Version="7.0.0" /> <PackageReference Include="System.Drawing.Common" Version="7.0.0" />
<PackageReference Include="System.IO.Ports" Version="7.0.0" /> <PackageReference Include="System.IO.Ports" Version="7.0.0" />

View File

@ -20,7 +20,7 @@ namespace DM_Weight.Finger
{ {
private readonly ILog logger = LogManager.GetLogger(typeof(FingerprintUtil)); private readonly ILog logger = LogManager.GetLogger(typeof(FingerprintUtil));
public zkemkeeper.CZKEMClass axCZKEM1= new zkemkeeper.CZKEMClass(); public zkemkeeper.CZKEMClass axCZKEM1;// = new zkemkeeper.CZKEMClass();
public bool bIsConnected = false; public bool bIsConnected = false;
private string fingerIp = ConfigurationManager.AppSettings["fingerIp"]?.ToString() ?? ""; private string fingerIp = ConfigurationManager.AppSettings["fingerIp"]?.ToString() ?? "";
@ -42,7 +42,7 @@ namespace DM_Weight.Finger
{ {
try try
{ {
//axCZKEM1 = new CZKEMClass(); axCZKEM1 = new CZKEMClass();
bIsConnected = axCZKEM1.Connect_Net(fingerIp, fingerPort); bIsConnected = axCZKEM1.Connect_Net(fingerIp, fingerPort);
logger.Info($"连接指纹机,IP:{fingerIp},端口:{fingerPort},机器号:{machineNumber},连接结果:{bIsConnected}"); logger.Info($"连接指纹机,IP:{fingerIp},端口:{fingerPort},机器号:{machineNumber},连接结果:{bIsConnected}");
if (bIsConnected) if (bIsConnected)

View File

@ -119,6 +119,12 @@ namespace DM_Weight.Models
SetProperty(ref _addQuantity, value); SetProperty(ref _addQuantity, value);
} }
} }
/// <summary>
/// 调拨入库数量
/// </summary>
private int _invoiceQuantity;
[SugarColumn(IsIgnore =true)]
public int InvoiceQuantity { get=>_invoiceQuantity; set=>SetProperty(ref _invoiceQuantity, value); }
private int _takeQuantity = 0; private int _takeQuantity = 0;
@ -136,9 +142,25 @@ namespace DM_Weight.Models
{ {
throw new ArgumentException("取药数量不能小于0"); throw new ArgumentException("取药数量不能小于0");
} }
if(OrderQuantity>0&&value>OrderQuantity)
{
throw new ArgumentException("取药数量不能大于应取数量");
}
SetProperty(ref _takeQuantity, value); SetProperty(ref _takeQuantity, value);
} }
} }
private int _orderQuantity = 0;
/// <summary>
/// 处方取药数量
/// </summary>
[SugarColumn(IsIgnore =true)]
public int OrderQuantity
{
get => _orderQuantity;
set=>SetProperty(ref _orderQuantity, value);
}
//private string _tipMessage=string.Empty; //private string _tipMessage=string.Empty;
//[SugarColumn(IsIgnore = true)] //[SugarColumn(IsIgnore = true)]
//public string TipMessage //public string TipMessage

View File

@ -127,5 +127,10 @@ namespace DM_Weight.Models
///</summary> ///</summary>
[SugarColumn(ColumnName = "use_dosage")] [SugarColumn(ColumnName = "use_dosage")]
public string UseDosage { get; set; } public string UseDosage { get; set; }
/// <summary>
/// 处方中该药品状态是否已全部取出0未取1已取针对处方可取部分药
/// </summary>
[SugarColumn(ColumnName = "dm_status")]
public int? DMStatus { get;set; }
} }
} }

View File

@ -39,10 +39,6 @@ namespace DM_Weight.Port
public SerialPort scanCodeSerial; public SerialPort scanCodeSerial;
// 抽屉串口协议232 | 485 // 抽屉串口协议232 | 485
private int _drawerProtocol = Convert.ToInt32(ConfigurationManager.AppSettings["DrawerProtocol"]); private int _drawerProtocol = Convert.ToInt32(ConfigurationManager.AppSettings["DrawerProtocol"]);
// can总线耗材板地址 // can总线耗材板地址

View File

@ -1,9 +1,7 @@
using DM_Weight.Models; using DM_Weight.Models;
using log4net; using log4net;
using log4net.Repository.Hierarchy; using log4net.Repository.Hierarchy;
//using MySql.Data.MySqlClient; using MySqlConnector;
//using MySql.Data.MySqlClient;
//using MySqlConnector;
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -17,86 +15,91 @@ namespace DM_Weight.Services
{ {
public class UserService public class UserService
{ {
//private readonly ILog logger = LogManager.GetLogger(typeof(UserService)); private readonly ILog logger = LogManager.GetLogger(typeof(UserService));
////public static string connStr = ConfigurationManager.AppSettings["database"].ToString(); //public static string connStr = ConfigurationManager.AppSettings["database"].ToString();
//public static string connStr = ConfigurationManager.ConnectionStrings["database"].ToString(); public static string connStr = ConfigurationManager.ConnectionStrings["database"].ToString();
//public UserList CheckUserByFingerPrinter(int fingerPrinterId) public UserList CheckUserByFingerPrinter(int fingerPrinterId)
{
UserList? user = null;
using (MySqlConnection con = new MySqlConnection(connStr))
{
logger.Info($"connStr{connStr}");
//try
//{ //{
// UserList? user = null; // con.Open();
// //using (MySqlConnection con = new MySqlConnection(connStr))
// //{
// // logger.Info($"connStr{connStr}");
// // try
// // {
// // con.Open();
// // }
// // catch (Exception ex)
// // {
// // con.Close();
// // logger.Info($"Open失败{ex.ToString()};连接状态:{con.State}");
// // logger.Info("再次Open");
// // con.Open();
// // }
// //connOpen(con);
// //Thread.Sleep(10);
// //while (con.State != System.Data.ConnectionState.Open)
// //{
// // logger.Info($"再次Open:{con.State}");
// // connOpen(con);
// // Thread.Sleep(10);
// //}
// //logger.Info($"数据库连接状态{con.State}");
// //string sql = @"select ul.id as id,ul.User_name as userName,r.id,r.role_name,r.permissions,r.machine_id from user_list ul
// // INNER JOIN role r on ul.machine_role_id=r.id where ul.Id=@ID and ul.machine_id=@machine_id and r.machine_id=@machine_id;";
// //MySqlCommand cmd = new MySqlCommand(sql, con);
// //cmd.Parameters.Clear();
// //MySqlParameter[] mySqlParameter = new MySqlParameter[] { new MySqlParameter("ID", fingerPrinterId), new MySqlParameter("machine_id", (ConfigurationManager.AppSettings["machineId"] ?? "DM1")) };
// //cmd.Parameters.AddRange(mySqlParameter);
// ////执行语句
// //MySqlDataReader reader = cmd.ExecuteReader();
// //logger.Info("MySqlDataReader读数据");
// //while (reader.Read())
// //{
// // user = new UserList();
// // user.Id = reader.GetInt32("id");
// // user.UserName = reader["userName"] is DBNull ? "" : reader.GetString("userName");
// // //user.UserName = reader["id"] is DBNull ? "" : reader.GetString("id");
// // user.Nickname = reader["userName"] is DBNull ? "" : reader.GetString("userName");
// // user.MachineId = reader["machine_id"] is DBNull ? "" : reader.GetString("machine_id");
// // RoleDm role = new RoleDm();
// // role.Id = reader.GetInt32("id");
// // //role.Permissions = reader["permissions"] is DBNull ? "" : reader.GetString("permissions");
// // role.RoleName = reader["role_name"] is DBNull ? "" : reader.GetString("role_name");
// // role.Permissions = JsonConvert.DeserializeObject<List<PremissionDm>>(reader["permissions"] is DBNull ? "" : reader.GetString("permissions")); // JsonConvert.SerializeObject(reader.GetString("permissions")).ToList();
// // user.Role = role;
// //}
// //reader.Close();
// //logger.Info($"sql{sql}");
// return user;
// }
//} //}
//private Task connOpen(MySqlConnection con) //catch (Exception ex)
//{ //{
// return Task.Run(() => // logger.Info($"Open失败{ex.ToString()}");
// { // if (con.State == System.Data.ConnectionState.Open)
// if (con.State != System.Data.ConnectionState.Closed)
// { // {
// con.Close(); // con.Close();
// } // }
// try // Thread.Sleep(200);
// { // logger.Info("再次Open");
// con.Open(); // con.Open();
// }
// catch (Exception ex)
// {
// logger.Info($"Open失败{ex.Message}");
// }
// });
//} //}
connOpen(con);
Thread.Sleep(100);
while(con.State != System.Data.ConnectionState.Open)
{
logger.Info($"再次Open:{con.State}");
connOpen(con);
Thread.Sleep(100);
}
logger.Info("数据库连接已打开");
string sql = @"select ul.id as id,ul.User_name as userName,r.id,r.role_name,r.permissions,r.machine_id from user_list ul
INNER JOIN role r on ul.machine_role_id=r.id where ul.Id=@ID and ul.machine_id=@machine_id and r.machine_id=@machine_id;";
MySqlCommand cmd = new MySqlCommand(sql, con);
cmd.Parameters.Clear();
MySqlParameter[] mySqlParameter = new MySqlParameter[] { new MySqlParameter("ID", fingerPrinterId), new MySqlParameter("machine_id", (ConfigurationManager.AppSettings["machineId"] ?? "DM1")) };
cmd.Parameters.AddRange(mySqlParameter);
//执行语句
MySqlDataReader reader = cmd.ExecuteReader();
logger.Info("MySqlDataReader读数据");
while (reader.Read())
{
user = new UserList();
user.Id = reader.GetInt32("id");
user.UserName = reader["userName"] is DBNull ? "" : reader.GetString("userName");
//user.UserName = reader["id"] is DBNull ? "" : reader.GetString("id");
user.Nickname = reader["userName"] is DBNull ? "" : reader.GetString("userName");
user.MachineId = reader["machine_id"] is DBNull ? "" : reader.GetString("machine_id");
RoleDm role = new RoleDm();
role.Id = reader.GetInt32("id");
//role.Permissions = reader["permissions"] is DBNull ? "" : reader.GetString("permissions");
role.RoleName = reader["role_name"] is DBNull ? "" : reader.GetString("role_name");
role.Permissions = JsonConvert.DeserializeObject<List<PremissionDm>>(reader["permissions"] is DBNull ? "" : reader.GetString("permissions")); // JsonConvert.SerializeObject(reader.GetString("permissions")).ToList();
user.Role = role;
}
reader.Close();
logger.Info($"sql{sql}");
return user;
}
}
private Task connOpen(MySqlConnection con)
{
return Task.Run(() =>
{
if (con.State == System.Data.ConnectionState.Open)
{
con.Close();
}
try
{
con.Open();
}
catch (Exception ex)
{
logger.Info($"Open失败{ex.Message}");
}
});
}
} }
} }

View File

@ -252,13 +252,11 @@ namespace DM_Weight.ViewModels
Id = it.Id, Id = it.Id,
DrugId= it.DrugId, DrugId= it.DrugId,
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate,it.DrugId }).ExecuteCommand(); }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate,it.DrugId }).ExecuteCommand();
} }
else else
{ {
//如果批号重复则不让添加 //如果批号重复则不让添加
List<ChannelStock> csCount = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerNo == it.DrawerNo && cs.ManuNo == it.ManuNo && cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList(); List<ChannelStock> csCount = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerNo == it.DrawerNo && cs.ManuNo == it.ManuNo && cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList();
if (csCount.Count > 0) if (csCount.Count > 0)
{ {
//repeatList.Add(it.ManuNo); //repeatList.Add(it.ManuNo);
@ -281,8 +279,6 @@ namespace DM_Weight.ViewModels
Id = Guid.NewGuid().ToString(), Id = Guid.NewGuid().ToString(),
MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1" MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
}).ExecuteCommand(); }).ExecuteCommand();
} }
// 获取更新完库存后的药品库存 // 获取更新完库存后的药品库存
List<ChannelStock> nowChannels = SqlSugarHelper.Db.Queryable<ChannelStock>() List<ChannelStock> nowChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
@ -312,7 +308,6 @@ namespace DM_Weight.ViewModels
} }
return true; return true;
}); });
//ChannelStocks.Clear(); //ChannelStocks.Clear();
if (stockRepeats.Count == record.Count) if (stockRepeats.Count == record.Count)
{ {
@ -393,7 +388,6 @@ namespace DM_Weight.ViewModels
else else
{ {
logger.Info($"多批次抽屉加药,库存更新失败!{f.ErrorMessage}"); logger.Info($"多批次抽屉加药,库存更新失败!{f.ErrorMessage}");
AlertMsg alertMsg = new AlertMsg AlertMsg alertMsg = new AlertMsg
{ {
Message = "更新库存失败", Message = "更新库存失败",
@ -491,9 +485,7 @@ namespace DM_Weight.ViewModels
{ {
//删除ChannelStock表中该批次数据 //删除ChannelStock表中该批次数据
int isOk = SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrugId == cstock.DrugId && cs.ManuNo == cs.ManuNo).ExecuteCommand(); int isOk = SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrugId == cstock.DrugId && cs.ManuNo == cs.ManuNo).ExecuteCommand();
if(isOk>0 )
if (isOk>0 )
{ {
logger.Info($"删除{cstock.DrawerNo}-{cstock.ColNo}抽屉中药品{cstock.DrugId}下的批次{cstock.ManuNo},"); logger.Info($"删除{cstock.DrawerNo}-{cstock.ColNo}抽屉中药品{cstock.DrugId}下的批次{cstock.ManuNo},");
AlertMsg alertMsg = new AlertMsg AlertMsg alertMsg = new AlertMsg
@ -526,8 +518,6 @@ namespace DM_Weight.ViewModels
Is8Drawer = count < 9; Is8Drawer = count < 9;
Is16Drawer = count >= 16; Is16Drawer = count >= 16;
Is17Drawer = count > 16; Is17Drawer = count > 16;
} }
//这个方法用于拦截请求,continuationCallback(true)就是不拦截continuationCallback(false)拦截本次操作 //这个方法用于拦截请求,continuationCallback(true)就是不拦截continuationCallback(false)拦截本次操作

View File

@ -23,7 +23,7 @@ namespace DM_Weight.ViewModels
{ {
public class BindingChannelDialogViewModel : BindableBase, IDialogAware public class BindingChannelDialogViewModel : BindableBase, IDialogAware
{ {
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindowViewModel));
public string Title => "库位绑定"; public string Title => "库位绑定";
public event Action<IDialogResult> RequestClose; public event Action<IDialogResult> RequestClose;
@ -112,8 +112,6 @@ namespace DM_Weight.ViewModels
{ {
//DrugList = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).Where(di => di.PyCode.Contains(pycode)).OrderBy(di => di.DrugId).ToList(); //DrugList = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).Where(di => di.PyCode.Contains(pycode)).OrderBy(di => di.DrugId).ToList();
DrugList = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).Where(di => di.PyCode.Contains(pycode)).OrderBy(di => di.DrugId).ToList(); DrugList = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).Where(di => di.PyCode.Contains(pycode)).OrderBy(di => di.DrugId).ToList();
} }
else else
{ {
@ -215,7 +213,6 @@ namespace DM_Weight.ViewModels
var list = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).OrderBy(di => di.DrugId).ToList(); var list = SqlSugarHelper.Db.Queryable<DrugInfo>().Includes<DrugManuNo>(di => di.DrugManuNos).OrderBy(di => di.DrugId).ToList();
DrugInfos = list; DrugInfos = list;
DrugInfos_PY = list; DrugInfos_PY = list;
} }
private void GetChannelsByDrawerNo() private void GetChannelsByDrawerNo()
@ -238,7 +235,6 @@ namespace DM_Weight.ViewModels
.ToPageList(PageNum, PageSize, ref totalCount); .ToPageList(PageNum, PageSize, ref totalCount);
Channels = list; Channels = list;
TotalCount = totalCount; TotalCount = totalCount;
} }
public void OnDialogOpened(IDialogParameters parameters) public void OnDialogOpened(IDialogParameters parameters)
{ {
@ -273,7 +269,6 @@ namespace DM_Weight.ViewModels
if (DrugInfo != null) if (DrugInfo != null)
{ {
int count = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrugId.Equals(DrugInfo.DrugId.ToString())).Where(cs => cs.DrawerType != 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Count(); int count = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrugId.Equals(DrugInfo.DrugId.ToString())).Where(cs => cs.DrawerType != 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Count();
if (count == 0) if (count == 0)
{ {
var item = SelectChannels[0]; var item = SelectChannels[0];

View File

@ -26,7 +26,6 @@ namespace DM_Weight.ViewModels
{ {
public class BindingChannelNewDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime public class BindingChannelNewDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
{ {
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindowViewModel));
public string Title => "库位绑定"; public string Title => "库位绑定";
@ -146,7 +145,6 @@ namespace DM_Weight.ViewModels
if (string.IsNullOrEmpty(text)) if (string.IsNullOrEmpty(text))
{ {
DrugInfos = SqlSugarHelper.Db.SqlQueryable<DrugInfo>(str).OrderBy(di => di.DrugName).OrderBy(di => di.DrugId).ToList(); DrugInfos = SqlSugarHelper.Db.SqlQueryable<DrugInfo>(str).OrderBy(di => di.DrugName).OrderBy(di => di.DrugId).ToList();
return; return;
} }
if (DrugInfos != null) if (DrugInfos != null)

View File

@ -3,7 +3,6 @@ using DM_Weight.msg;
using DM_Weight.Port; using DM_Weight.Port;
using DM_Weight.Report; using DM_Weight.Report;
using DM_Weight.util; using DM_Weight.util;
using log4net;
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;
@ -23,8 +22,6 @@ namespace DM_Weight.ViewModels
{ {
public class CheckRecordDetailDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime public class CheckRecordDetailDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
{ {
private readonly ILog logger = LogManager.GetLogger(typeof(CheckRecordDetailDialogViewModel));
public string Title => "盘点记录明细"; public string Title => "盘点记录明细";
private int _pageNum = 1; private int _pageNum = 1;
public int PageNum public int PageNum
@ -162,7 +159,6 @@ namespace DM_Weight.ViewModels
List<CheckRecordStock> checkList = SqlSugarHelper.Db.Queryable<CheckRecordStock>() List<CheckRecordStock> checkList = SqlSugarHelper.Db.Queryable<CheckRecordStock>()
.Includes<DrugInfo>(cs => cs.DrugInfo) .Includes<DrugInfo>(cs => cs.DrugInfo)
.Where(cs => cs.optdate == OptDate).OrderByDescending(cs => cs.optdate).ToList(); .Where(cs => cs.optdate == OptDate).OrderByDescending(cs => cs.optdate).ToList();
ICollectionView vw = CollectionViewSource.GetDefaultView(checkList); ICollectionView vw = CollectionViewSource.GetDefaultView(checkList);
vw.GroupDescriptions.Add(new PropertyGroupDescription("DrugInfo")); vw.GroupDescriptions.Add(new PropertyGroupDescription("DrugInfo"));
obsCheckRecordStock = new ObservableCollection<CheckRecordStock>(checkList); obsCheckRecordStock = new ObservableCollection<CheckRecordStock>(checkList);

View File

@ -2,7 +2,6 @@
using DM_Weight.Port; using DM_Weight.Port;
using DM_Weight.Report; using DM_Weight.Report;
using DM_Weight.util; using DM_Weight.util;
using log4net;
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;
@ -22,8 +21,6 @@ namespace DM_Weight.ViewModels
{ {
public class CheckRecordNewWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime public class CheckRecordNewWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
{ {
private readonly ILog logger = LogManager.GetLogger(typeof(CheckRecordNewWindowViewModel));
private int _pageNum = 1; private int _pageNum = 1;
public int PageNum public int PageNum
{ {
@ -171,7 +168,6 @@ namespace DM_Weight.ViewModels
OPTSTARTDATE = StartDate, OPTSTARTDATE = StartDate,
OPTENDDATE = EndDate OPTENDDATE = EndDate
}).ToPageList(PageNum, PageSize, ref totalCount); }).ToPageList(PageNum, PageSize, ref totalCount);
//SqlSugarHelper.Db.ThenMapper(checkList, item => //SqlSugarHelper.Db.ThenMapper(checkList, item =>
//{ //{
// //item.drugDetails = SqlSugarHelper.Db.Queryable<CheckRecordStock>().SetContext(x => x.optdate, () => item.optdate, item).ToList(); // //item.drugDetails = SqlSugarHelper.Db.Queryable<CheckRecordStock>().SetContext(x => x.optdate, () => item.optdate, item).ToList();

View File

@ -590,8 +590,8 @@ namespace DM_Weight.ViewModels
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent); _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
//Task.Factory.StartNew(() => { RequestData(); }); Task.Factory.StartNew(() => { RequestData(); });
RequestData(); //RequestData();
} }

View File

@ -721,6 +721,8 @@ namespace DM_Weight.ViewModels
{ {
ChannelStocks.Clear(); ChannelStocks.Clear();
ChannelStocks.Clear();
List<ChannelStock> q = SqlSugarHelper.Db.Queryable<ChannelStock>() List<ChannelStock> q = SqlSugarHelper.Db.Queryable<ChannelStock>()
.Includes<DrugInfo>(cs => cs.DrugInfo) .Includes<DrugInfo>(cs => cs.DrugInfo)
.InnerJoin<ChannelList>((cs, cl) => cs.Chnguid == cl.Id && cs.DrugId == cl.DrugId) .InnerJoin<ChannelList>((cs, cl) => cs.Chnguid == cl.Id && cs.DrugId == cl.DrugId)
@ -744,8 +746,8 @@ namespace DM_Weight.ViewModels
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent); _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
//Task.Factory.StartNew(() => { RequestData(); }); Task.Factory.StartNew(() => { RequestData(); });
RequestData(); //RequestData();
} }

View File

@ -385,7 +385,6 @@ namespace DM_Weight.ViewModels
return cs; return cs;
}).ToList(); }).ToList();
//obChannelStock = new ObservableCollection<ChannelStock>(ChannelStocks); //obChannelStock = new ObservableCollection<ChannelStock>(ChannelStocks);
} }

View File

@ -382,7 +382,6 @@ namespace DM_Weight.ViewModels
.OrderBy(cs => cs.EffDate) .OrderBy(cs => cs.EffDate)
.ToList(); .ToList();
ChannelStocks = queryData; ChannelStocks = queryData;
} }
//接收导航传过来的参数 现在是在此处初始化了表格数据 //接收导航传过来的参数 现在是在此处初始化了表格数据

View File

@ -35,8 +35,6 @@ namespace DM_Weight.ViewModels
private UserList? _userList; private UserList? _userList;
private UserList? _userList2; private UserList? _userList2;
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1"); private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
public bool MultiLogin public bool MultiLogin
{ {
@ -391,16 +389,9 @@ namespace DM_Weight.ViewModels
// 30秒内无人操作鼠标键盘 // 30秒内无人操作鼠标键盘
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit) if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
{ {
if (Operator is null) logger.Info($"设备30秒内无人操作用户【{Operator?.Nickname}】自动退出登录");
{
timer.Stop();
}
else
{
logger.Info($"设备{autoExit}秒内无人操作,用户【{Operator?.Nickname}】自动退出登录");
Operator = null; Operator = null;
Reviewer = null; Reviewer = null;
timer.Stop();
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>
{ {
_regionManager.RequestNavigate("MainRegion", "LoginWindow"); _regionManager.RequestNavigate("MainRegion", "LoginWindow");
@ -408,7 +399,6 @@ namespace DM_Weight.ViewModels
}); });
} }
} }
}
}; };
timer.Start(); timer.Start();
} }

View File

@ -291,7 +291,7 @@ namespace DM_Weight.ViewModels
if (SelectedInvoice != null) if (SelectedInvoice != null)
{ {
//先查询有几种药 //先查询有几种药
string strSql = @"SELECT sum(Quantity) AS SumQuantity, COUNT(ID) AS CountNum,INVOICE_NO AS InvoiceNo,drug_id AS DrugId,QUANTITY AS quantity,drug_manu_no AS drugManuNo FROM IN_OUT_INVOICE WHERE INVOICE_NO=@INVOICE_NO GROUP BY INVOICE_NO,DRUG_ID"; string strSql = @"SELECT sum(Quantity) AS SumQuantity, COUNT(ID) AS CountNum,INVOICE_NO AS InvoiceNo,drug_id AS DrugId,QUANTITY AS quantity,drug_manu_no AS drugManuNo FROM IN_OUT_INVOICE WHERE STATUS=0 AND INVOICE_NO=@INVOICE_NO GROUP BY INVOICE_NO,DRUG_ID";
var invoices = SqlSugarHelper.Db.SqlQueryable<InOutInvoice>(strSql) var invoices = SqlSugarHelper.Db.SqlQueryable<InOutInvoice>(strSql)
.AddParameters(new .AddParameters(new
@ -308,7 +308,7 @@ namespace DM_Weight.ViewModels
//.Includes(cl => cl.channelStocks, dr => dr.DrugInfo, d => d.DrugManuNos) //.Includes(cl => cl.channelStocks, dr => dr.DrugInfo, d => d.DrugManuNos)
.Where(cl => cl.DrugId == invoices[i].DrugId && cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList(); .Where(cl => cl.DrugId == invoices[i].DrugId && cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList();
ChannelList channelLst = channelL.Count > 0 ? channelL[0] : null; ChannelList channelLst = channelL.Count > 0 ? channelL[0] : null;
if (channelL.Count <= 0) if (channelLst == null || channelLst.Id is null)
{ {
//药品未绑定库位,需要先绑药 //药品未绑定库位,需要先绑药
//AlertMsg alertMsg = new AlertMsg //AlertMsg alertMsg = new AlertMsg
@ -343,46 +343,20 @@ namespace DM_Weight.ViewModels
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
continue; continue;
} }
//没有根据药品绑定库位写入数据
for (int k = 0; k < channelL.Count; k++)
{
ChannelStock stock = new ChannelStock(); ChannelStock stock = new ChannelStock();
//没有库存写入一条数据
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"; stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelL[k].DrawerNo; stock.DrawerNo = channelLst.DrawerNo;
stock.BoardType = channelL[k].BoardType; stock.BoardType = channelLst.BoardType;
stock.DrawerType = channelL[k].DrawerType; stock.DrawerType = channelLst.DrawerType;
stock.ColNo = channelL[k].ColNo; stock.ColNo = channelLst.ColNo;
stock.DrugId = channelL[k].DrugId; stock.DrugId = channelLst.DrugId;
stock.ManuNo = invoicesManuNo[j].DrugManuNo; stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate; stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelL[k].Id; stock.Chnguid = channelLst.Id;
stock.InvoiceQuantity = invoicesManuNo[j].quantity;
stockList.Add(stock); stockList.Add(stock);
} }
}
else
{
//药品有库存,则除了将对应药品批次数据列出来外,还要将当前已绑定的药品下添加上该批次
for (int k = 0; k < channelL.Count; k++)
{
//有库存且批次抽屉库位与将要插入的批次抽屉库位一致则跳过
if(stockList.Where(t=>t.ManuNo== invoicesManuNo[j].DrugManuNo&&t.ColNo== channelL[k].ColNo&&t.DrawerNo== channelL[k].DrawerNo).FirstOrDefault()!=null)
{
continue;
}
ChannelStock stock = new ChannelStock();
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelL[k].DrawerNo;
stock.BoardType = channelL[k].BoardType;
stock.DrawerType = channelL[k].DrawerType;
stock.ColNo = channelL[k].ColNo;
stock.DrugId = channelL[k].DrugId;
stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelL[k].Id;
stockList.Add(stock);
}
}
//stock.AddQuantity = invoicesManuNo[j].quantity; //stock.AddQuantity = invoicesManuNo[j].quantity;
//stockList.ForEach(s => s.AddQuantity = invoicesManuNo[j].quantity); //stockList.ForEach(s => s.AddQuantity = invoicesManuNo[j].quantity);
stockList.GroupBy(x => x.ManuNo) stockList.GroupBy(x => x.ManuNo)
@ -390,6 +364,7 @@ namespace DM_Weight.ViewModels
{ {
var ret = it.First(); var ret = it.First();
ret.AddQuantity = invoicesManuNo[j].quantity; ret.AddQuantity = invoicesManuNo[j].quantity;
ret.InvoiceQuantity = invoicesManuNo[j].quantity;
return ret; return ret;
}) })
.ToList(); .ToList();
@ -417,7 +392,8 @@ namespace DM_Weight.ViewModels
ChannelStocks.Clear(); ChannelStocks.Clear();
foreach (ChannelList lst in ChannelLsts) foreach (ChannelList lst in ChannelLsts)
{ {
ChannelStocks.AddRange(lst.channelStocks);
ChannelStocks.AddRange(lst.channelStocks.Where(cs => cs.AddQuantity > 9));
} }
AddChannels = ChannelStocks.FindAll(it => it.AddQuantity != 0); AddChannels = ChannelStocks.FindAll(it => it.AddQuantity != 0);
@ -441,17 +417,17 @@ namespace DM_Weight.ViewModels
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return; return;
} }
int totalNum = AddChannels.Sum(add => add.AddQuantity); //int totalNum = AddChannels.Sum(add => add.AddQuantity);
if (totalNum != SelectedInvoice.Quantity) //if (totalNum != SelectedInvoice.Quantity)
{ //{
AlertMsg alertMsg = new AlertMsg // AlertMsg alertMsg = new AlertMsg
{ // {
Message = "各批次添加数量要与调拨单药品总数一致!", // Message = "各批次添加数量要与调拨单药品总数一致!",
Type = MsgType.ERROR, // Type = MsgType.ERROR,
}; // };
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); // _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return; // return;
} //}
enumerator.MoveNext(); enumerator.MoveNext();
Status = 1; Status = 1;
OpenOneByOne(); OpenOneByOne();
@ -533,18 +509,48 @@ namespace DM_Weight.ViewModels
if (!_isFinishClick) if (!_isFinishClick)
{ {
_isFinishClick = true; _isFinishClick = true;
List<ChannelStock> record = ChannelStocks.Where(it=>it.AddQuantity>0).ToList(); List<ChannelStock> record = ChannelStocks;//.ToList();
string InvoiceId = SelectedInvoice.InvoiceNo; string InvoiceId = SelectedInvoice.InvoiceNo;
var f = SqlSugarHelper.Db.UseTran(() => var f = SqlSugarHelper.Db.UseTran(() =>
{
for (int i = 0; i < record.Count; i++)
{
//添加数量不能大于入库单上要加的数量
if (record[i].AddQuantity > record[i].InvoiceQuantity)
{
AlertMsg alertMsg = new AlertMsg
{
Message = "添加数量不能大于调拨单中药品数量!",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return false;
}
//添加数量等于入库单上要加的数量则更新入库单状态
if (record[i].AddQuantity == record[i].InvoiceQuantity)
{ {
SqlSugarHelper.Db.Updateable(new InOutInvoice() SqlSugarHelper.Db.Updateable(new InOutInvoice()
{ {
Status = 1, Status = 1,
InvoiceNo = SelectedInvoice.InvoiceNo InvoiceNo = SelectedInvoice.InvoiceNo,
}).UpdateColumns(it => new { it.Status }).WhereColumns(it => new { it.InvoiceNo }).ExecuteCommand(); DrugManuNo = record[i].ManuNo,
DrugId = record[i].DrugId
for (int i = 0; i < record.Count; i++) }).UpdateColumns(it => new { it.Status }).WhereColumns(it => new { it.InvoiceNo, it.DrugId, it.DrugManuNo }).ExecuteCommand();
}
else
{ {
//添加数量小于入库单上要加的数量则更新入库单中的数量
SqlSugarHelper.Db.Updateable(new InOutInvoice()
{
quantity= record[i].InvoiceQuantity- record[i].AddQuantity,
InvoiceNo = SelectedInvoice.InvoiceNo,
DrugManuNo = record[i].ManuNo,
DrugId = record[i].DrugId
}).UpdateColumns(it => new { it.Status }).WhereColumns(it => new { it.InvoiceNo, it.DrugId, it.DrugManuNo }).ExecuteCommand();
}
ChannelStock it = record[i]; ChannelStock it = record[i];
@ -569,7 +575,6 @@ namespace DM_Weight.ViewModels
List<ChannelStock> csCount = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerNo == it.DrawerNo && cs.ColNo == it.ColNo && cs.ManuNo == it.ManuNo && cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.Quantity > 0).ToList(); List<ChannelStock> csCount = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerNo == it.DrawerNo && cs.ColNo == it.ColNo && cs.ManuNo == it.ManuNo && cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.Quantity > 0).ToList();
if (csCount.Count > 0) if (csCount.Count > 0)
{ {
logger.Info($"批号重复:{it.DrawerNo}-{it.ColNo}-{it.ManuNo}");
//repeatList.Add(it.ManuNo); //repeatList.Add(it.ManuNo);
//stockRepeats.Add(it); //stockRepeats.Add(it);
continue; continue;
@ -692,6 +697,7 @@ namespace DM_Weight.ViewModels
Type = MsgType.SUCCESS, Type = MsgType.SUCCESS,
}; };
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
RequestData();
} }
if (!f.IsSuccess) if (!f.IsSuccess)
{ {
@ -707,7 +713,6 @@ namespace DM_Weight.ViewModels
_isFinishClick = false; _isFinishClick = false;
} }
RequestData();
}); });
} }
// 取消按钮 // 取消按钮

View File

@ -1,6 +1,6 @@
using log4net; using log4net;
using Microsoft.Xaml.Behaviors; using Microsoft.Xaml.Behaviors;
//using NetTaste; using NetTaste;
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;

View File

@ -150,7 +150,7 @@ _exitCommand ??= new DelegateCommand(Exit);
.Includes<RoleDm>(u => u.Role) .Includes<RoleDm>(u => u.Role)
.First(u => u.UserName == username && ConfigurationManager.AppSettings["machineId"].ToString().Equals(u.MachineId)); .First(u => u.UserName == username && ConfigurationManager.AppSettings["machineId"].ToString().Equals(u.MachineId));
//UserList userList =new UserService().CheckUserByFingerPrinter(msg.Id);
//UserList userList = SqlSugarHelper.Db.Queryable<UserList>() //UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
// .Includes<RoleDm>(u => u.Role) // .Includes<RoleDm>(u => u.Role)
// .InnerJoin<RoleDm>((u, r) => u.RoleId == r.Id) // .InnerJoin<RoleDm>((u, r) => u.RoleId == r.Id)
@ -339,11 +339,11 @@ _exitCommand ??= new DelegateCommand(Exit);
logger.Info($"msg.Message.Equals:{msg.Message}"); logger.Info($"msg.Message.Equals:{msg.Message}");
if (msg.Message.Equals("LOGIN")) if (msg.Message.Equals("LOGIN"))
{ {
UserList userList = SqlSugarHelper.Db.Queryable<UserList>() //UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
.Includes<RoleDm>(u => u.Role) //.Includes<RoleDm>(u => u.Role)
.First(u => u.Id == msg.Id); //.First(u => u.Id == msg.Id);
//UserList userList = new UserService().CheckUserByFingerPrinter(msg.Id); UserList userList = new UserService().CheckUserByFingerPrinter(msg.Id);
logger.Info($"userList是空{userList == null}"); logger.Info($"userList是空{userList == null}");
if (userList == null) if (userList == null)
@ -378,11 +378,7 @@ _exitCommand ??= new DelegateCommand(Exit);
} }
catch (Exception e) catch (Exception e)
{ {
logger.Info($"LoginEvent存在异常:{e.Message};数据库连接字符串:{ConfigurationManager.ConnectionStrings["database"].ToString()}"); logger.Info($"LoginEvent存在异常:{e.Message}");
//if(e.GetType().Name== "SqlSugarException")
//{
// UserList userList = new UserService().CheckUserByFingerPrinter(1);
//}
} }
} }

View File

@ -85,7 +85,7 @@ namespace DM_Weight.ViewModels
})); }));
//Task.Factory.StartNew(() => BindStock()); Task.Factory.StartNew(() => BindStock());
} }
void doMyPrismEvent2(AlertMsg msg) void doMyPrismEvent2(AlertMsg msg)

View File

@ -1,7 +1,7 @@
using log4net; using log4net;
using log4net.Repository.Hierarchy; using log4net.Repository.Hierarchy;
using Microsoft.Xaml.Behaviors; using Microsoft.Xaml.Behaviors;
//using NetTaste; using NetTaste;
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;

View File

@ -1,6 +1,6 @@
using log4net; using log4net;
using Microsoft.Xaml.Behaviors; using Microsoft.Xaml.Behaviors;
//using NetTaste; using NetTaste;
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;
@ -21,7 +21,6 @@ using DM_Weight.Port;
using DM_Weight.select; using DM_Weight.select;
using DM_Weight.util; using DM_Weight.util;
using System.Threading; using System.Threading;
using System.Windows.Controls.Primitives;
namespace DM_Weight.ViewModels namespace DM_Weight.ViewModels
{ {
@ -172,10 +171,10 @@ namespace DM_Weight.ViewModels
public void RequestData() public void RequestData()
{ {
//
orderDetails = SqlSugarHelper.Db.Queryable<OrderDetail>() orderDetails = SqlSugarHelper.Db.Queryable<OrderDetail>()
.Includes<DrugInfo>(od => od.DrugInfo) .Includes<DrugInfo>(od => od.DrugInfo)
.InnerJoin(SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrugId), (od, t) => od.DrugId == t.DrugId) .InnerJoin(SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrugId), (od, t) => od.DrugId == t.DrugId)
.Where(od=>od.DMStatus==0)
.Where(od => od.OrderNo == OrderInfo.OrderNo) .Where(od => od.OrderNo == OrderInfo.OrderNo)
.ToList(); .ToList();
@ -208,12 +207,14 @@ namespace DM_Weight.ViewModels
ChannelStock stock = HasQChannels[j]; ChannelStock stock = HasQChannels[j];
if (TakeQ > stock.Quantity) if (TakeQ > stock.Quantity)
{ {
stock.OrderQuantity= orderDetail.Quantity;
stock.TakeQuantity = stock.Quantity; stock.TakeQuantity = stock.Quantity;
channelStocks.Add(stock); channelStocks.Add(stock);
TakeQ -= stock.Quantity; TakeQ -= stock.Quantity;
} }
else else
{ {
stock.OrderQuantity = orderDetail.Quantity;
stock.TakeQuantity = TakeQ; stock.TakeQuantity = TakeQ;
channelStocks.Add(stock); channelStocks.Add(stock);
TakeQ = 0; TakeQ = 0;
@ -222,7 +223,16 @@ namespace DM_Weight.ViewModels
} }
else else
{ {
msg.Add($"药品【{orderDetail.DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】"); //msg.Add($"药品【{orderDetail.DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
//数量不够就把全部数量取出
for (int n = 0; n < HasQChannels.Count; n++)
{
ChannelStock stock = HasQChannels[n];
stock.OrderQuantity = TakeQ;
stock.TakeQuantity = stock.Quantity;
channelStocks.Add(stock);
}
} }
} }
if (msg.Count > 0) if (msg.Count > 0)
@ -334,19 +344,50 @@ namespace DM_Weight.ViewModels
try try
{ {
SqlSugarHelper.Db.BeginTran(); SqlSugarHelper.Db.BeginTran();
//如果处方下全部药品都取完则更新orderInfo,order_detail中的dm_status
if (ChannelStocks.Sum(cs => cs.TakeQuantity) == ChannelStocks.Sum(cs => cs.OrderQuantity))
{
logger.Info($"更新OrderInfo:{InvoiceId}"); logger.Info($"更新OrderInfo:{InvoiceId}");
SqlSugarHelper.Db.Updateable(new OrderInfo() SqlSugarHelper.Db.Updateable(new OrderInfo()
{ {
DmStatus = 1, DmStatus = 1,
OrderNo = OrderInfo.OrderNo OrderNo = OrderInfo.OrderNo
}).UpdateColumns(it => new { it.DmStatus }).WhereColumns(it => new { it.OrderNo }).ExecuteCommand(); }).UpdateColumns(it => new { it.DmStatus }).WhereColumns(it => new { it.OrderNo }).ExecuteCommand();
logger.Info($"Task.Delay前:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); SqlSugarHelper.Db.Updateable(new OrderDetail()
Task.Delay(4000).Wait(); {
logger.Info($"Task.Delay后:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); DMStatus = 1,
OrderNo = OrderInfo.OrderNo
}).UpdateColumns(it => new { it.DMStatus }).WhereColumns(it => new { it.OrderNo }).ExecuteCommand();
}
logger.Info("进入record循环"); logger.Info("进入record循环");
for (int i = 0; i < record.Count; i++) for (int i = 0; i < record.Count; i++)
{ {
ChannelStock it = record[i]; ChannelStock it = record[i];
//该药品下的所有取出数量
int alTakeQuantity=record.Where(rd=>rd.DrugId==it.DrugId).Sum(rd=>rd.TakeQuantity);
//处方下某一个药品都取完则更新order_detail
if(it.OrderQuantity==it.TakeQuantity|| it.OrderQuantity == alTakeQuantity)
{
SqlSugarHelper.Db.Updateable(new OrderDetail()
{
DMStatus = 1,
OrderNo = OrderInfo.OrderNo,
DrugId= it.DrugId,
}).UpdateColumns(it => new { it.DMStatus }).WhereColumns(it => new { it.OrderNo,it.DrugId }).ExecuteCommand();
}
else
{
//处方下某一个药品没有取完则更新order_detail中的取药数量应取-已取)
SqlSugarHelper.Db.Updateable(new OrderDetail()
{
Quantity = it.OrderQuantity- alTakeQuantity,
OrderNo = OrderInfo.OrderNo,
DrugId = it.DrugId,
}).UpdateColumns(it => new { it.Quantity }).WhereColumns(it => new { it.OrderNo, it.DrugId }).ExecuteCommand();
}
logger.Info($"更新ChannelStock:{it.Id}"); logger.Info($"更新ChannelStock:{it.Id}");
// 更新数据 库存信息 // 更新数据 库存信息
@ -393,8 +434,8 @@ namespace DM_Weight.ViewModels
logger.Info("事务已提交"); logger.Info("事务已提交");
// 更新屏显库存 // 更新屏显库存
//List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1); //List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 1);
//Task.Run(() => Task.Factory.StartNew(() =>
//{ {
List<ChannelStock> singleChannels = record.Where(it => it.BoardType == 5) List<ChannelStock> singleChannels = record.Where(it => it.BoardType == 5)
.GroupBy(it => new { it.DrawerNo, it.ColNo }) .GroupBy(it => new { it.DrawerNo, it.ColNo })
.Select(it => .Select(it =>
@ -443,7 +484,7 @@ namespace DM_Weight.ViewModels
}; };
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
})); }));
//}); });
} }
catch (Exception ex) catch (Exception ex)
@ -456,7 +497,6 @@ namespace DM_Weight.ViewModels
Type = MsgType.ERROR, Type = MsgType.ERROR,
}; };
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
_isFinishClick = false;
} }
//var f = SqlSugarHelper.Db.UseTran(() => //var f = SqlSugarHelper.Db.UseTran(() =>

View File

@ -225,8 +225,6 @@ namespace DM_Weight.ViewModels
logger.Info("开始OrderTakeDrugWindowViewModel_查询数据"); logger.Info("开始OrderTakeDrugWindowViewModel_查询数据");
OrderInfos.Clear(); OrderInfos.Clear();
int totalCount = 0; int totalCount = 0;
//logger.Info($"SqlSugarHelper.Db.Ado.Connection.GetHashCode():{_db.Ado.Connection.GetHashCode()}");
List<OrderInfo> queryData = SqlSugarHelper.Db.Queryable<OrderInfo>() List<OrderInfo> queryData = SqlSugarHelper.Db.Queryable<OrderInfo>()
.InnerJoin<OrderDetail>((oi, od) => oi.OrderNo == od.OrderNo) .InnerJoin<OrderDetail>((oi, od) => oi.OrderNo == od.OrderNo)
.InnerJoin(SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrugId), (oi, od, t) => od.DrugId == t.DrugId) .InnerJoin(SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrugId), (oi, od, t) => od.DrugId == t.DrugId)
@ -244,7 +242,7 @@ namespace DM_Weight.ViewModels
OrderInfos = queryData; OrderInfos = queryData;
TotalCount = totalCount; TotalCount = totalCount;
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize); PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
logger.Info($"_db.Ado.Connection.GetHashCode():{SqlSugarHelper.Db.Ado.Connection.GetHashCode()};{SqlSugarHelper.Db.Ado.GetHashCode()}");
logger.Info("结束OrderTakeDrugWindowViewModel_查询数据"); logger.Info("结束OrderTakeDrugWindowViewModel_查询数据");
} }
@ -253,8 +251,8 @@ namespace DM_Weight.ViewModels
{ {
logger.Info("进入OrderTakeDrugWindowViewModel_OnNavigatedTo"); logger.Info("进入OrderTakeDrugWindowViewModel_OnNavigatedTo");
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent); _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
RequestData(); //RequestData();
//Task.Factory.StartNew(() => RequestData()); Task.Factory.StartNew(() => RequestData());
logger.Info("结束OrderTakeDrugWindowViewModel_OnNavigatedTo"); logger.Info("结束OrderTakeDrugWindowViewModel_OnNavigatedTo");
//Task t = new Task(() => { RequestData(); }); //Task t = new Task(() => { RequestData(); });

View File

@ -238,8 +238,7 @@ namespace DM_Weight.ViewModels
//接收导航传过来的参数 现在是在此处初始化了表格数据 //接收导航传过来的参数 现在是在此处初始化了表格数据
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
//Task.Factory.StartNew(() => RequestData()); Task.Factory.StartNew(() => RequestData());
RequestData();
} }
//每次导航的时候该实列用不用重新创建true是不重新创建,false是重新创建 //每次导航的时候该实列用不用重新创建true是不重新创建,false是重新创建

View File

@ -192,8 +192,7 @@ namespace DM_Weight.ViewModels
//接收导航传过来的参数 现在是在此处初始化了表格数据 //接收导航传过来的参数 现在是在此处初始化了表格数据
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
//Task.Factory.StartNew(() => RequestData()); Task.Factory.StartNew(() => RequestData());
RequestData();
} }
//每次导航的时候该实列用不用重新创建true是不重新创建,false是重新创建 //每次导航的时候该实列用不用重新创建true是不重新创建,false是重新创建

View File

@ -192,8 +192,7 @@ namespace DM_Weight.ViewModels
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
logger.Info("进入SelfAddWindowViewModel_OnNavigatedTo"); logger.Info("进入SelfAddWindowViewModel_OnNavigatedTo");
//Task.Factory.StartNew(() => RequestChannelData()); Task.Factory.StartNew(() => RequestChannelData());
RequestChannelData();
logger.Info("结束SelfAddWindowViewModel_OnNavigatedTo"); logger.Info("结束SelfAddWindowViewModel_OnNavigatedTo");
} }

View File

@ -21,48 +21,6 @@ namespace DM_Weight.ViewModels
{ {
public class SelfAddWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime public class SelfAddWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime
{ {
private int _pageNum = 1;
public int PageNum
{
get => _pageNum;
set
{
SetProperty(ref _pageNum, value);
RequestChannelData();
}
}
private int _pageCount = 1;
public int PageCount
{
get => _pageCount;
set
{
SetProperty(ref _pageCount, value);
}
}
private int _pageSize = 3;
public int PageSize
{
get => _pageSize;
set
{
SetProperty(ref _pageSize, value);
}
}
private int _totalCount = 0;
public int TotalCount
{
get => _totalCount;
set
{
SetProperty(ref _totalCount, value);
}
}
IDialogService _dialogService; IDialogService _dialogService;
IEventAggregator _eventAggregator; IEventAggregator _eventAggregator;
@ -252,28 +210,24 @@ namespace DM_Weight.ViewModels
// .OrderBy(cs => cs.ColNo) // .OrderBy(cs => cs.ColNo)
// .ToList(); // .ToList();
//ChannelStocks = queryData; //ChannelStocks = queryData;
int totalCount = 0;
List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>() List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>()
.Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList()) .Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList())
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugId"), (cs) => cs.DrugId.Contains(SearchValue))
.Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null)).WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugId"), (cs) => cs.DrugId.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (cs) => cs.DrugName.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (cs) => cs.DrugName.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (cs) => cs.PyCode.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (cs) => cs.PyCode.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue))
.Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null))
.OrderBy(cs => cs.DrugId) .OrderBy(cs => cs.DrugId)
.ToPageList(PageNum, PageSize, ref totalCount); .ToList();
Drugs = q; Drugs = q;
TotalCount = totalCount;
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
logger.Info("结束SelfAddWindowViewModel_查询数据"); logger.Info("结束SelfAddWindowViewModel_查询数据");
} }
//接收导航传过来的参数 现在是在此处初始化了表格数据 //接收导航传过来的参数 现在是在此处初始化了表格数据
public void OnNavigatedTo(NavigationContext navigationContext) public void OnNavigatedTo(NavigationContext navigationContext)
{ {
logger.Info("进入SelfAddWindowViewModel_OnNavigatedTo"); logger.Info("进入SelfAddWindowViewModel_OnNavigatedTo");
RequestChannelData(); Task.Factory.StartNew(() => RequestChannelData());
logger.Info("结束SelfAddWindowViewModel_OnNavigatedTo"); logger.Info("结束SelfAddWindowViewModel_OnNavigatedTo");
} }

View File

@ -14,59 +14,14 @@ using DM_Weight.util;
using DM_Weight.msg; using DM_Weight.msg;
using Prism.Events; using Prism.Events;
using SqlSugar; using SqlSugar;
using log4net;
using System.Drawing.Printing;
namespace DM_Weight.ViewModels namespace DM_Weight.ViewModels
{ {
public class SelfTakeDrugWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime public class SelfTakeDrugWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime
{ {
private int _pageNum = 1;
public int PageNum
{
get => _pageNum;
set
{
SetProperty(ref _pageNum, value);
RequestChannelData();
}
}
private int _pageCount = 1;
public int PageCount
{
get => _pageCount;
set
{
SetProperty(ref _pageCount, value);
}
}
private int _pageSize = 3;
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 readonly ILog logger = LogManager.GetLogger(typeof(SelfTakeDrugWindowViewModel));
IDialogService _dialogService; IDialogService _dialogService;
IEventAggregator _eventAggregator; IEventAggregator _eventAggregator;
public static List<OrderTakeSelect> StaticSelects = new() public static List<OrderTakeSelect> StaticSelects = new()
{ {
new OrderTakeSelect new OrderTakeSelect
@ -94,7 +49,7 @@ namespace DM_Weight.ViewModels
public SelfTakeDrugWindowViewModel(IDialogService DialogService, IEventAggregator eventAggregator, SqlSugarScope sqlSugarScope) public SelfTakeDrugWindowViewModel(IDialogService DialogService, IEventAggregator eventAggregator, SqlSugarScope sqlSugarScope)
{ {
_dialogService = DialogService; _dialogService = DialogService;
_eventAggregator = eventAggregator; _eventAggregator= eventAggregator;
//this.SqlSugarHelper.Db = sqlSugarScope; //this.SqlSugarHelper.Db = sqlSugarScope;
} }
@ -240,7 +195,6 @@ namespace DM_Weight.ViewModels
// .OrderBy(cs => cs.ColNo) // .OrderBy(cs => cs.ColNo)
// .ToList(); // .ToList();
//ChannelStocks = queryData; //ChannelStocks = queryData;
int totalCount = 0;
List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>() List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>()
.Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1) .Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1)
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null&&cs.Quantity>0).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList()) .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null&&cs.Quantity>0).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList())
@ -248,16 +202,11 @@ namespace DM_Weight.ViewModels
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (cs) => cs.DrugName.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugName"), (cs) => cs.DrugName.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (cs) => cs.PyCode.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PyCode"), (cs) => cs.PyCode.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue))
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue))
.Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null)) .Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null))
.OrderBy(cs => cs.DrugId) .OrderBy(cs => cs.DrugId)
.ToPageList(PageNum, PageSize, ref totalCount); .ToList();
//.ToList();
Drugs = q.Where(di => di.channelStocks.Count() > 0).ToList(); Drugs = q.Where(di => di.channelStocks.Count() > 0).ToList();
TotalCount = totalCount;
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
logger.Info($"_db.Ado.Connection.GetHashCode():{SqlSugarHelper.Db.Ado.Connection.GetHashCode()};{SqlSugarHelper.Db.Ado.GetHashCode()}");
} }
//接收导航传过来的参数 现在是在此处初始化了表格数据 //接收导航传过来的参数 现在是在此处初始化了表格数据

View File

@ -25,47 +25,6 @@ namespace DM_Weight.ViewModels
{ {
public class StockListWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime public class StockListWindowViewModel : 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 = 3;
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 StockListWindowViewModel vm; //public static StockListWindowViewModel vm;
public string drugId; public string drugId;
public static List<OrderTakeSelect> StaticSelects = new() public static List<OrderTakeSelect> StaticSelects = new()
@ -281,7 +240,7 @@ namespace DM_Weight.ViewModels
// .OrderBy(cs => cs.DrugId) // .OrderBy(cs => cs.DrugId)
// .ToList(); // .ToList();
//Drugs = q; //Drugs = q;
int totalCount = 0;
List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>() List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>()
.Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1) .Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1)
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList()) .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList())
@ -291,10 +250,9 @@ namespace DM_Weight.ViewModels
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue)) .WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("DrugBarcode"), (cs) => cs.DrugBarcode.Contains(SearchValue))
.Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null)) .Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null))
.OrderBy(cs => cs.DrugId) .OrderBy(cs => cs.DrugId)
.ToPageList(PageNum, PageSize, ref totalCount); .ToList();
Drugs = q; Drugs = q;
TotalCount = totalCount;
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
logger.Info("结束StockListWindowViewModel_查询数据"); logger.Info("结束StockListWindowViewModel_查询数据");
} }
@ -303,7 +261,7 @@ namespace DM_Weight.ViewModels
{ {
logger.Info("进入StockListWindowViewModel_OnNavigatedTo"); logger.Info("进入StockListWindowViewModel_OnNavigatedTo");
//RequestData(); //RequestData();
RequestData(); Task.Factory.StartNew(() => RequestData());
logger.Info("结束StockListWindowViewModel_OnNavigatedTo"); logger.Info("结束StockListWindowViewModel_OnNavigatedTo");
} }

View File

@ -144,13 +144,6 @@
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
/> />
<DataGridTextColumn Width="100"
Header="数量"
IsReadOnly="True"
Binding="{Binding Quantity}"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
/>
<DataGridTextColumn Width="130" <DataGridTextColumn Width="130"
Header="批次" Header="批次"
IsReadOnly="True" IsReadOnly="True"
@ -166,12 +159,35 @@
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
/> />
<DataGridTextColumn Width="100" <DataGridTextColumn Width="100"
Header="取出数量" Header="库存数量"
IsReadOnly="True" IsReadOnly="True"
Binding="{Binding TakeQuantity}" Binding="{Binding Quantity}"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
/> />
<DataGridTextColumn Width="100"
Header="应取数量"
IsReadOnly="True"
Binding="{Binding OrderQuantity}"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
/>
<DataGridTemplateColumn Width="100"
Header="取出数量">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Width="100" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
<TextBox.Text>
<Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
<Grid Grid.Row="3"> <Grid Grid.Row="3">

View File

@ -8,7 +8,6 @@
xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:convert="clr-namespace:DM_Weight.Converter" xmlns:convert="clr-namespace:DM_Weight.Converter"
xmlns:prism="http://prismlibrary.com/" xmlns:prism="http://prismlibrary.com/"
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid> <Grid>
<Grid.Resources> <Grid.Resources>
@ -21,7 +20,6 @@
<convert:TotalCountConverter x:Key="TotalCountConverter" /> <convert:TotalCountConverter x:Key="TotalCountConverter" />
</Grid.Resources> </Grid.Resources>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
@ -256,12 +254,7 @@
</ListView> </ListView>
</Grid>--> </Grid>-->
<pagination:Pagination Grid.Row="2"
CurrentPage="{Binding PageNum}"
PageSize="{Binding PageSize}"
TotalPages="{Binding TotalCount}"
InfoTextIsEnabel="True"
/>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -9,7 +9,6 @@
xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:convert="clr-namespace:DM_Weight.Converter" xmlns:convert="clr-namespace:DM_Weight.Converter"
xmlns:prism="http://prismlibrary.com/" xmlns:prism="http://prismlibrary.com/"
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid> <Grid>
<Grid.Resources> <Grid.Resources>
@ -23,7 +22,6 @@
</Grid.Resources> </Grid.Resources>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto"/>
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Margin="0 6 0 6" Grid.Row="0"> <Grid Margin="0 6 0 6" Grid.Row="0">
@ -105,9 +103,7 @@
<!--GroupStyle to group data--> <!--GroupStyle to group data-->
<!--<DataGrid.GroupStyle> <!--<DataGrid.GroupStyle>
<GroupStyle> <GroupStyle>
--> --><!--Group DataItems into DataGroup--><!--
<!--Group DataItems into DataGroup-->
<!--
<GroupStyle.ContainerStyle> <GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}"> <Style TargetType="{x:Type GroupItem}">
<Setter Property="Template"> <Setter Property="Template">
@ -191,11 +187,6 @@
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
<pagination:Pagination Grid.Row="2"
CurrentPage="{Binding PageNum}"
PageSize="{Binding PageSize}"
TotalPages="{Binding TotalCount}"
InfoTextIsEnabel="True"
/>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -10,7 +10,6 @@
xmlns:convert="clr-namespace:DM_Weight.Converter" xmlns:convert="clr-namespace:DM_Weight.Converter"
xmlns:prism="http://prismlibrary.com/" xmlns:prism="http://prismlibrary.com/"
mc:Ignorable="d" mc:Ignorable="d"
xmlns:pagination="clr-namespace:DM_Weight.Components.pagination"
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<Grid> <Grid>
<Grid.Resources> <Grid.Resources>
@ -23,9 +22,9 @@
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" /> <convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
<convert:StatusConverter x:Key="StatusConverter" />--> <convert:StatusConverter x:Key="StatusConverter" />-->
<convert:TotalCountConverter x:Key="TotalCountConverter" /> <convert:TotalCountConverter x:Key="TotalCountConverter" />
<convert:ColorCountConverter x:Key="ColorCountConverter" />
</Grid.Resources> </Grid.Resources>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
@ -122,7 +121,9 @@
<!--GroupStyle to group data--> <!--GroupStyle to group data-->
<!--<DataGrid.GroupStyle> <!--<DataGrid.GroupStyle>
<GroupStyle> <GroupStyle>
--><!--Group DataItems into DataGroup--><!-- -->
<!--Group DataItems into DataGroup-->
<!--
<GroupStyle.ContainerStyle> <GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}"> <Style TargetType="{x:Type GroupItem}">
<Setter Property="Template"> <Setter Property="Template">
@ -186,6 +187,20 @@
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--<DataGridTemplateColumn Header="库存" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding channelStocks}" materialDesign:ListBoxItemAssist.ShowSelection="False" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Quantity}" Foreground="{Binding Path=Quantity,Converter={StaticResource ColorCountConverter} }" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
<!--<ListView Grid.Row="1" <!--<ListView Grid.Row="1"
@ -257,12 +272,6 @@
</GridView> </GridView>
</ListView.View> </ListView.View>
</ListView>--> </ListView>-->
<pagination:Pagination Grid.Row="2"
CurrentPage="{Binding PageNum}"
PageSize="{Binding PageSize}"
TotalPages="{Binding TotalCount}"
InfoTextIsEnabel="True"
/>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -11,7 +11,7 @@ namespace DM_Weight.util
ConnectionString = ConfigurationManager.ConnectionStrings["database"].ToString(), ConnectionString = ConfigurationManager.ConnectionStrings["database"].ToString(),
DbType = DbType.MySql, DbType = DbType.MySql,
IsAutoCloseConnection = false IsAutoCloseConnection = true
}, },
db => db =>
{ {

1
readme.txt Normal file
View File

@ -0,0 +1 @@
湖南省儿童医院16个抽屉每个抽屉2个库位带两个三色灯标签