交接柜补药时列出所有要补药的批次让补药人选择对应批次
This commit is contained in:
parent
88b97e213f
commit
c971e9d1bc
|
@ -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=xiangtan_mazuike;userid=root;password=root" />
|
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike_xx;userid=root;password=root" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<!--<runtime>
|
<!--<runtime>
|
||||||
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<!-- 抽屉串口使用的协议232或者485 -->
|
<!-- 抽屉串口使用的协议232或者485 -->
|
||||||
<add key="DrawerProtocol" value="485" />
|
<add key="DrawerProtocol" value="485" />
|
||||||
<!-- 抽屉串口的串口号 -->
|
<!-- 抽屉串口的串口号 -->
|
||||||
<add key="DrawerPortPath" value="COM5" />
|
<add key="DrawerPortPath" value="COM1" />
|
||||||
<!-- can总线串口的串口号 -->
|
<!-- can总线串口的串口号 -->
|
||||||
<add key="CanBusPortPath" value="COM3" />
|
<add key="CanBusPortPath" value="COM3" />
|
||||||
<!-- 条码枪串口的串口号 -->
|
<!-- 条码枪串口的串口号 -->
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DM_Weight.Models
|
||||||
|
{
|
||||||
|
public class StringVSIntModels
|
||||||
|
{
|
||||||
|
public string StringId { get; set; }
|
||||||
|
public int IntQuantity { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ using DM_Weight.msg;
|
||||||
using DM_Weight.Port;
|
using DM_Weight.Port;
|
||||||
using DM_Weight.util;
|
using DM_Weight.util;
|
||||||
using log4net;
|
using log4net;
|
||||||
|
using MaterialDesignThemes.Wpf;
|
||||||
using Prism.Commands;
|
using Prism.Commands;
|
||||||
using Prism.Events;
|
using Prism.Events;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
|
@ -16,6 +17,7 @@ using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
|
||||||
namespace DM_Weight.ViewModels
|
namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
|
@ -41,6 +43,8 @@ namespace DM_Weight.ViewModels
|
||||||
get => _jiaojie_channelStocks;
|
get => _jiaojie_channelStocks;
|
||||||
set => SetProperty(ref _jiaojie_channelStocks, value);
|
set => SetProperty(ref _jiaojie_channelStocks, value);
|
||||||
}
|
}
|
||||||
|
//交接柜所在药箱下的所有药品id
|
||||||
|
List<string> drugIdLst = new List<string>();
|
||||||
//交接柜中无该批次添加实体
|
//交接柜中无该批次添加实体
|
||||||
public List<ChannelStock> AddJJStock = new List<ChannelStock>();
|
public List<ChannelStock> AddJJStock = new List<ChannelStock>();
|
||||||
//交接柜中有该批次更新实体
|
//交接柜中有该批次更新实体
|
||||||
|
@ -61,6 +65,20 @@ namespace DM_Weight.ViewModels
|
||||||
private IEnumerable<IGrouping<int, ChannelStock>> enumerable;
|
private IEnumerable<IGrouping<int, ChannelStock>> enumerable;
|
||||||
private IEnumerator<IGrouping<int, ChannelStock>> enumerator;
|
private IEnumerator<IGrouping<int, ChannelStock>> enumerator;
|
||||||
|
|
||||||
|
private SolidColorBrush _colorBrush;
|
||||||
|
|
||||||
|
public SolidColorBrush SnackbarBackground
|
||||||
|
{
|
||||||
|
get => _colorBrush;
|
||||||
|
set => SetProperty(ref _colorBrush, value);
|
||||||
|
}
|
||||||
|
private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3));
|
||||||
|
|
||||||
|
public ISnackbarMessageQueue SnackbarMessageQueue
|
||||||
|
{
|
||||||
|
get => _snackbarMessageQueue;
|
||||||
|
set => SetProperty(ref _snackbarMessageQueue, value);
|
||||||
|
}
|
||||||
|
|
||||||
public string Title => "交接柜补药";
|
public string Title => "交接柜补药";
|
||||||
|
|
||||||
|
@ -82,18 +100,19 @@ namespace DM_Weight.ViewModels
|
||||||
public void OnDialogOpened(IDialogParameters parameters)
|
public void OnDialogOpened(IDialogParameters parameters)
|
||||||
{
|
{
|
||||||
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
||||||
Jiaojie_ChannelStocks = parameters.GetValue<List<ChannelStock>>("ChannelStocks");
|
Jiaojie_ChannelStocks = parameters.GetValue<List<ChannelStock>>("_ChannelStock");
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
|
for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
|
||||||
{
|
{
|
||||||
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(Jiaojie_ChannelStocks[i]);
|
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(Jiaojie_ChannelStocks[i]);
|
||||||
ChannelStocks.Add(copy);
|
ChannelStocks.Add(copy);
|
||||||
}
|
}
|
||||||
ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId, cs.ManuNo }).Select(g => new
|
//ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId }).Select(g => new
|
||||||
{
|
//{
|
||||||
Key = g.Key,
|
// Key = g.Key,
|
||||||
AddQuantity = g.Sum(s => s.AddQuantity)
|
// AddQuantity = g.Sum(s => s.AddQuantity)
|
||||||
}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
|
//}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
|
||||||
RequestData();
|
RequestData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,9 +218,9 @@ namespace DM_Weight.ViewModels
|
||||||
.Where(cs => cs.Quantity > 0)
|
.Where(cs => cs.Quantity > 0)
|
||||||
.Where(cs => cs.DrawerType == 1)
|
.Where(cs => cs.DrawerType == 1)
|
||||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||||
.Where(cs => cs.DrugId == ChannelStocks[i].DrugId && cs.ManuNo == ChannelStocks[i].ManuNo)
|
.Where(cs => cs.DrugId == ChannelStocks[i].DrugId)
|
||||||
.OrderBy(cs => cs.EffDate)
|
//.OrderBy(cs => cs.EffDate)
|
||||||
.OrderBy(cs => cs.DrawerNo)
|
.OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo })
|
||||||
.ToList();
|
.ToList();
|
||||||
if (HasQChannels == null || HasQChannels.Count <= 0)
|
if (HasQChannels == null || HasQChannels.Count <= 0)
|
||||||
{
|
{
|
||||||
|
@ -213,22 +232,37 @@ namespace DM_Weight.ViewModels
|
||||||
// 说明数量足够
|
// 说明数量足够
|
||||||
if (total >= TakeQ)
|
if (total >= TakeQ)
|
||||||
{
|
{
|
||||||
for (int j = 0; TakeQ > 0; j++)
|
//for (int j = 0; TakeQ > 0; j++)
|
||||||
|
//{
|
||||||
|
// ChannelStock stock = HasQChannels[j];
|
||||||
|
// if (TakeQ > stock.Quantity)
|
||||||
|
// {
|
||||||
|
// stock.TakeQuantity = stock.Quantity;
|
||||||
|
// channelStocks.Add(stock);
|
||||||
|
// TakeQ -= stock.Quantity;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// stock.TakeQuantity = TakeQ;
|
||||||
|
// channelStocks.Add(stock);
|
||||||
|
// TakeQ = 0;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
int hadTakeQ = 0;
|
||||||
|
for (int j = 0; j < HasQChannels.Count; j++)
|
||||||
{
|
{
|
||||||
ChannelStock stock = HasQChannels[j];
|
if ((ChannelStocks[i].AddQuantity - hadTakeQ) > HasQChannels[j].Quantity)
|
||||||
if (TakeQ > stock.Quantity)
|
|
||||||
{
|
{
|
||||||
stock.TakeQuantity = stock.Quantity;
|
HasQChannels[j].TakeQuantity = HasQChannels[j].Quantity;
|
||||||
channelStocks.Add(stock);
|
hadTakeQ += HasQChannels[j].Quantity;
|
||||||
TakeQ -= stock.Quantity;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
stock.TakeQuantity = TakeQ;
|
HasQChannels[j].TakeQuantity = ChannelStocks[i].AddQuantity - hadTakeQ;
|
||||||
channelStocks.Add(stock);
|
break;
|
||||||
TakeQ = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
channelStocks.AddRange(HasQChannels);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -247,14 +281,14 @@ namespace DM_Weight.ViewModels
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
channelStocks.Sort((a, b) =>
|
//channelStocks.Sort((a, b) =>
|
||||||
{
|
//{
|
||||||
if ((a.DrawerNo - b.DrawerNo) == 0)
|
// if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||||
{
|
// {
|
||||||
return a.ColNo - b.ColNo;
|
// return a.ColNo - b.ColNo;
|
||||||
}
|
// }
|
||||||
return a.DrawerNo - b.DrawerNo;
|
// return a.DrawerNo - b.DrawerNo;
|
||||||
});
|
//});
|
||||||
ChannelStocks = channelStocks;
|
ChannelStocks = channelStocks;
|
||||||
|
|
||||||
|
|
||||||
|
@ -282,7 +316,7 @@ namespace DM_Weight.ViewModels
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
enumerable = ChannelStocks.GroupBy(cs => cs.DrawerNo, cs => cs);
|
enumerable = ChannelStocks.Where(cs=>cs.TakeQuantity>0).GroupBy(cs => cs.DrawerNo, cs => cs);
|
||||||
enumerator = enumerable.GetEnumerator();
|
enumerator = enumerable.GetEnumerator();
|
||||||
enumerator.MoveNext();
|
enumerator.MoveNext();
|
||||||
Status = 1;
|
Status = 1;
|
||||||
|
@ -337,11 +371,36 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
if (!_isFinishClick)
|
if (!_isFinishClick)
|
||||||
{
|
{
|
||||||
|
|
||||||
_isFinishClick = true;
|
_isFinishClick = true;
|
||||||
|
|
||||||
List<ChannelStock> record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
List<ChannelStock> record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
||||||
if (record.Count > 0)
|
if (record.Count > 0)
|
||||||
{
|
{
|
||||||
|
//交接柜需要补药数量与加药数量对比,数量不一致则提示
|
||||||
|
|
||||||
|
var jjSum = from item in Jiaojie_ChannelStocks orderby item.DrugId group item by item.DrugId into g select new { DrugId = g.Key, Quantity = g.Sum(item => item.NeedNum) };
|
||||||
|
|
||||||
|
var csSum = from item in record orderby item.DrugId group item by item.DrugId into g select new { DrugId = g.Key, Quantity = g.Sum(item => item.TakeQuantity) };
|
||||||
|
foreach (var jjItem in jjSum)
|
||||||
|
{
|
||||||
|
foreach (var csItem in csSum)
|
||||||
|
{
|
||||||
|
if (jjItem.DrugId == csItem.DrugId)
|
||||||
|
{
|
||||||
|
if (jjItem.Quantity != csItem.Quantity)
|
||||||
|
{
|
||||||
|
SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
|
||||||
|
SnackbarMessageQueue.Enqueue("输入药品数量与需要补药品数不一致!");
|
||||||
|
_isFinishClick = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
||||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||||
{
|
{
|
||||||
|
@ -357,35 +416,6 @@ namespace DM_Weight.ViewModels
|
||||||
Id = it.Id,
|
Id = it.Id,
|
||||||
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
||||||
|
|
||||||
////更新 交接柜 批次信息
|
|
||||||
//List<ChannelStock> jiaojieStock = Jiaojie_ChannelStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
|
|
||||||
////交接柜中有该药品及批次的数据则更新;没有则插入一条
|
|
||||||
//if (jiaojieStock != null)
|
|
||||||
//{
|
|
||||||
// for (int j = 0; j < jiaojieStock.Count; j++)
|
|
||||||
// {
|
|
||||||
// if(it.Quantity> jiaojieStock[j].Quantity)
|
|
||||||
// {
|
|
||||||
// //取的数量够不够被
|
|
||||||
// }
|
|
||||||
// List<ChannelStock> searchStock = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
|
||||||
// .Where(cs => cs.DrawerNo == jiaojieStock[j].DrawerNo
|
|
||||||
// && cs.DrugId == jiaojieStock[j].DrugId
|
|
||||||
// && cs.DrugId == it.DrugId
|
|
||||||
// && cs.ManuNo == it.ManuNo
|
|
||||||
// &&cs.MachineId==(ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5"))
|
|
||||||
// .ToList();
|
|
||||||
// //List<ChannelStock> stockManuList = jiaojieStock.Where(cs => cs.ManuNo == it.ManuNo).ToList();
|
|
||||||
// if (searchStock == null || searchStock.Count <= 0)
|
|
||||||
// {
|
|
||||||
// SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs=>cs.DrawerNo== jiaojieStock[j].DrawerNo&&cs.DrugId== jiaojieStock[j].DrugId&&cs.Quantity<=0).ExecuteCommand();
|
|
||||||
// jiaojieStock[j].ManuNo = it.ManuNo;
|
|
||||||
// jiaojieStock[j].Id = Guid.NewGuid().ToString();
|
|
||||||
// SqlSugarHelper.Db.Insertable(jiaojieStock[j]).ExecuteCommand();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// 保存数据 出库记录
|
// 保存数据 出库记录
|
||||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||||
{
|
{
|
||||||
|
@ -408,31 +438,31 @@ namespace DM_Weight.ViewModels
|
||||||
//更新 交接柜 批次信息
|
//更新 交接柜 批次信息
|
||||||
for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
|
for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
|
||||||
{
|
{
|
||||||
ChannelStock jiaoStock = Jiaojie_ChannelStocks[i];
|
ChannelStock jiaoStock = Jiaojie_ChannelStocks[i];
|
||||||
SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.MachineId == jiaoStock.MachineId && cs.Quantity <= 0).ExecuteCommand();
|
SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.MachineId == Jiaojie_ChannelStocks[i].MachineId && cs.Quantity <= 0).ExecuteCommand();
|
||||||
List<ChannelStock> csStockList = record.Where(cs => cs.DrugId == jiaoStock.DrugId && cs.TakeQuantity > 0).ToList();
|
List<ChannelStock> csStockList = record.Where(cs => cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.TakeQuantity > 0).ToList();
|
||||||
if (csStockList != null && csStockList.Count > 0)
|
if (csStockList != null && csStockList.Count > 0)
|
||||||
{
|
{
|
||||||
for (int j = 0; j < csStockList.Count; j++)
|
for (int j = 0; j < csStockList.Count; j++)
|
||||||
{
|
{
|
||||||
ChannelStock csStock = (ChannelStock)csStockList[j].Clone();
|
ChannelStock csStock = (ChannelStock)csStockList[j].Clone();
|
||||||
ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||||
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
|
.Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
|
||||||
logger.Info($"库中{jiaoStock.DrawerNo}号手术间,{jiaoStock.DrugId},{csStock.ManuNo};有该批次{jjStockManuNo!=null};jjStockManuNo是空:{jjStockManuNo==null}");
|
logger.Info($"库中{Jiaojie_ChannelStocks[i].DrawerNo}号手术间,{Jiaojie_ChannelStocks[i].DrugId},{csStock.ManuNo};有该批次{jjStockManuNo != null};jjStockManuNo是空:{jjStockManuNo == null}");
|
||||||
if (jjStockManuNo != null)
|
if (jjStockManuNo != null)
|
||||||
{
|
{
|
||||||
int addNum = csStock.TakeQuantity;
|
int addNum = csStock.TakeQuantity;
|
||||||
logger.Info($"需补药数{jiaoStock.NeedNum},该批次取药数{csStock.TakeQuantity}");
|
logger.Info($"需补药数{Jiaojie_ChannelStocks[i].NeedNum},该批次取药数{csStock.TakeQuantity}");
|
||||||
//有该批次
|
//有该批次
|
||||||
if (jiaoStock.NeedNum > csStock.TakeQuantity)
|
if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity)
|
||||||
{
|
{
|
||||||
//不够取
|
//不够取
|
||||||
ChannelStock newStock = new ChannelStock();
|
ChannelStock newStock = new ChannelStock();
|
||||||
//newStock.Chnguid = jiaoStock.Chnguid;
|
//newStock.Chnguid = jiaoStock.Chnguid;
|
||||||
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||||
newStock.ManuNo = jiaoStock.ManuNo;
|
newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
|
||||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||||
newStock.DrugId = jiaoStock.DrugId;
|
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||||
newStock.AddToJJNum = addNum;
|
newStock.AddToJJNum = addNum;
|
||||||
newStock.Id = jjStockManuNo.Id;
|
newStock.Id = jjStockManuNo.Id;
|
||||||
//newStock.MachineId = jiaoStock.MachineId;
|
//newStock.MachineId = jiaoStock.MachineId;
|
||||||
|
@ -440,7 +470,7 @@ namespace DM_Weight.ViewModels
|
||||||
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
||||||
UpdateJJStock.Add(newStock);
|
UpdateJJStock.Add(newStock);
|
||||||
csStockList[j].TakeQuantity = 0;
|
csStockList[j].TakeQuantity = 0;
|
||||||
jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
|
Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -454,53 +484,53 @@ namespace DM_Weight.ViewModels
|
||||||
ChannelStock newStock = new ChannelStock();
|
ChannelStock newStock = new ChannelStock();
|
||||||
//newStock.Chnguid = jiaoStock.Chnguid;
|
//newStock.Chnguid = jiaoStock.Chnguid;
|
||||||
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||||
newStock.ManuNo = jiaoStock.ManuNo;
|
newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
|
||||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||||
newStock.DrugId = jiaoStock.DrugId;
|
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||||
newStock.AddToJJNum = jiaoStock.NeedNum;
|
newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
|
||||||
newStock.Id = jjStockManuNo.Id;
|
newStock.Id = jjStockManuNo.Id;
|
||||||
//newStock.MachineId = jiaoStock.MachineId;
|
//newStock.MachineId = jiaoStock.MachineId;
|
||||||
//newStock.NeedNum = 0;
|
//newStock.NeedNum = 0;
|
||||||
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
||||||
UpdateJJStock.Add(newStock);
|
UpdateJJStock.Add(newStock);
|
||||||
csStockList[j].TakeQuantity = csStock.TakeQuantity - jiaoStock.NeedNum;
|
csStockList[j].TakeQuantity = csStock.TakeQuantity - Jiaojie_ChannelStocks[i].NeedNum;
|
||||||
jiaoStock.NeedNum = 0;
|
Jiaojie_ChannelStocks[i].NeedNum = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //没有该批次
|
else //没有该批次
|
||||||
{
|
{
|
||||||
if (jiaoStock.NeedNum > csStock.TakeQuantity)
|
if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity)
|
||||||
{
|
{
|
||||||
//不够取
|
//不够取
|
||||||
ChannelStock newStock = new ChannelStock();
|
ChannelStock newStock = new ChannelStock();
|
||||||
newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
|
||||||
newStock.Chnguid = jiaoStock.Chnguid;
|
newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
|
||||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||||
newStock.DrugId = jiaoStock.DrugId;
|
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||||
newStock.ManuNo = csStock.ManuNo;
|
newStock.ManuNo = csStock.ManuNo;
|
||||||
newStock.AddToJJNum = csStock.TakeQuantity;
|
newStock.AddToJJNum = csStock.TakeQuantity;
|
||||||
newStock.Id = Guid.NewGuid().ToString();
|
newStock.Id = Guid.NewGuid().ToString();
|
||||||
newStock.MachineId = jiaoStock.MachineId;
|
newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
|
||||||
newStock.DrawerType = 1;
|
newStock.DrawerType = 1;
|
||||||
newStock.NeedNum = 0;
|
newStock.NeedNum = 0;
|
||||||
AddJJStock.Add(newStock);
|
AddJJStock.Add(newStock);
|
||||||
jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
|
Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
|
||||||
csStockList[j].TakeQuantity = 0;
|
csStockList[j].TakeQuantity = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//够取
|
//够取
|
||||||
ChannelStock newStock = new ChannelStock();
|
ChannelStock newStock = new ChannelStock();
|
||||||
newStock.Chnguid = jiaoStock.Chnguid;
|
newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
|
||||||
newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
|
||||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||||
newStock.DrugId = jiaoStock.DrugId;
|
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||||
newStock.ManuNo = csStock.ManuNo;
|
newStock.ManuNo = csStock.ManuNo;
|
||||||
newStock.AddToJJNum = jiaoStock.NeedNum;
|
newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
|
||||||
newStock.NeedNum = 0;
|
newStock.NeedNum = 0;
|
||||||
newStock.Id = Guid.NewGuid().ToString();
|
newStock.Id = Guid.NewGuid().ToString();
|
||||||
newStock.MachineId = jiaoStock.MachineId;
|
newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
|
||||||
newStock.DrawerType = 1;
|
newStock.DrawerType = 1;
|
||||||
AddJJStock.Add(newStock);
|
AddJJStock.Add(newStock);
|
||||||
csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
|
csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
|
||||||
|
@ -511,7 +541,7 @@ namespace DM_Weight.ViewModels
|
||||||
}
|
}
|
||||||
SqlSugarHelper.Db.Updateable<ChannelStock>()
|
SqlSugarHelper.Db.Updateable<ChannelStock>()
|
||||||
.SetColumns(cs => new ChannelStock() { NeedNum = 0 })
|
.SetColumns(cs => new ChannelStock() { NeedNum = 0 })
|
||||||
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo)
|
.Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo)
|
||||||
.ExecuteCommand();
|
.ExecuteCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,19 +598,20 @@ namespace DM_Weight.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
|
//更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
|
||||||
List<ChannelStock> jiaojie = Jiaojie_ChannelStocks.GroupBy(cs => cs.DrawerNo).Select(cs => cs.FirstOrDefault()).ToList();
|
if (Jiaojie_ChannelStocks != null)
|
||||||
if (jiaojie != null && jiaojie.Count > 0)
|
|
||||||
{
|
{
|
||||||
for (int j = 0; j < jiaojie.Count; j++)
|
Jiaojie_ChannelStocks.ForEach(jj =>
|
||||||
{
|
{
|
||||||
ChannelStock jiaojie_it = jiaojie[j];
|
|
||||||
//更新交接柜状态为 已取药未入库
|
//更新交接柜状态为 已取药未入库
|
||||||
SqlSugarHelper.Db.Updateable(new ChannelList()
|
SqlSugarHelper.Db.Updateable(new ChannelList()
|
||||||
{
|
{
|
||||||
State = 1,
|
State = 1,
|
||||||
Id = jiaojie_it.ChannelLst.Id
|
Id = jj.ChannelLst.Id
|
||||||
}).UpdateColumns(it => it.State).ExecuteCommand();
|
}).UpdateColumns(it => it.State).ExecuteCommand();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DM_Weight.ViewModels
|
||||||
|
{
|
||||||
|
public class AddToJiaoJieNewDialogViewModel
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -39,24 +39,44 @@ namespace DM_Weight.ViewModels
|
||||||
public void OnNavigatedFrom(NavigationContext navigationContext)
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||||
{
|
{
|
||||||
// 取消消息订阅
|
// 取消消息订阅
|
||||||
_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
//_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||||
_eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
|
//_eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<ChannelStock> channelStocks;
|
private List<ChannelStock>? channelStocks;
|
||||||
public List<ChannelStock> ChannelStocks
|
public List<ChannelStock>? ChannelStocks
|
||||||
{
|
{
|
||||||
get => channelStocks;
|
get => channelStocks;
|
||||||
set => SetProperty(ref channelStocks, value);
|
set => SetProperty(ref channelStocks, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ChannelStock _channelStock;
|
||||||
|
public ChannelStock _ChannelStock
|
||||||
|
{
|
||||||
|
get => _channelStock;
|
||||||
|
set => SetProperty(ref _channelStock, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ChannelList>? _channelLists;
|
||||||
|
public List<ChannelList>? _ChannelLists
|
||||||
|
{
|
||||||
|
get => _channelLists;
|
||||||
|
set => SetProperty(ref _channelLists, value);
|
||||||
|
}
|
||||||
|
private ChannelList _channelList;
|
||||||
|
public ChannelList _ChannelList
|
||||||
|
{
|
||||||
|
get => _channelList;
|
||||||
|
set => SetProperty(ref _channelList, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||||
{
|
{
|
||||||
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
//_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
||||||
_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
|
//_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
|
||||||
RequestData();
|
RequestData();
|
||||||
}
|
}
|
||||||
private PortUtil _portUtil;
|
private PortUtil _portUtil;
|
||||||
|
@ -70,26 +90,85 @@ namespace DM_Weight.ViewModels
|
||||||
}
|
}
|
||||||
private void RequestData()
|
private void RequestData()
|
||||||
{
|
{
|
||||||
ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
//ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||||
.Includes<ChannelList>(cs => cs.ChannelLst)
|
// .Includes<ChannelList>(cs => cs.ChannelLst)
|
||||||
.Includes<DrugInfo>(cs => cs.DrugInfo)
|
// .Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||||
.Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity)
|
// .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity)
|
||||||
.OrderBy(cs => cs.Chnguid)
|
// .OrderBy(cs => cs.Chnguid)
|
||||||
.OrderBy(cs => cs.DrawerNo)
|
// .OrderBy(cs => cs.DrawerNo)
|
||||||
.ToList();
|
// .ToList();
|
||||||
//ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
|
////ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
|
||||||
// .Select(it =>
|
//// .Select(it =>
|
||||||
// {
|
//// {
|
||||||
// var ret = it.First();
|
//// var ret = it.First();
|
||||||
// ret.Quantity = it.Sum(itx => itx.Quantity);
|
//// ret.Quantity = it.Sum(itx => itx.Quantity);
|
||||||
// ret.NeedNum=it.Sum(itx => itx.NeedNum);
|
//// ret.NeedNum=it.Sum(itx => itx.NeedNum);
|
||||||
// return ret;
|
//// return ret;
|
||||||
// }).Where(it=>it.BaseQuantity>it.Quantity)
|
//// }).Where(it=>it.BaseQuantity>it.Quantity)
|
||||||
// .ToList();
|
//// .ToList();
|
||||||
ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
|
//ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
|
||||||
|
|
||||||
|
//ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks);
|
||||||
|
//vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
|
||||||
|
|
||||||
|
//_ChannelLists = SqlSugarHelper.Db.Queryable<ChannelList>()
|
||||||
|
// .Includes<ChannelStock>(cl => cl.channelStocks)
|
||||||
|
// .Includes<DrugInfo>(cl => cl.Drug)
|
||||||
|
// .InnerJoin<ChannelStock>((cl, cs) => cl.Id == cs.Chnguid && cs.BaseQuantity > cs.Quantity)
|
||||||
|
// .Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5"))
|
||||||
|
// .OrderBy(cl => cl.Id)
|
||||||
|
// .OrderBy(cl => cl.DrawerNo)
|
||||||
|
// .ToList();
|
||||||
|
ChannelStocks?.Clear();
|
||||||
|
_ChannelLists?.Clear();
|
||||||
|
//1)查询channel_stock所有要补药的药箱
|
||||||
|
ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||||
|
.Includes<ChannelList>(cs => cs.ChannelLst)
|
||||||
|
.Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||||
|
.Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.NeedNum > 0)
|
||||||
|
.OrderBy(cs => cs.Chnguid)
|
||||||
|
.OrderBy(cs => cs.DrawerNo)
|
||||||
|
.ToList();
|
||||||
|
ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
|
||||||
|
.Select(it =>
|
||||||
|
{
|
||||||
|
var ret = it.First();
|
||||||
|
ret.Quantity = it.Sum(itx => itx.Quantity);
|
||||||
|
ret.NeedNum = it.Sum(itx => itx.NeedNum);
|
||||||
|
return ret;
|
||||||
|
}).Where(it => it.BaseQuantity > it.Quantity)
|
||||||
|
.ToList();
|
||||||
|
if (ChannelStocks != null && ChannelStocks.Count > 0)
|
||||||
|
{
|
||||||
|
ChannelStocks.ForEach(cs => cs.AddQuantity = cs.NeedNum);
|
||||||
|
|
||||||
|
//2)查询channel_list将1)中查询的添加到channel_list的channel_stock里供页面呈现显示
|
||||||
|
List<int> DrawerNoList = ChannelStocks.Select(cs => cs.DrawerNo).Distinct().ToList();
|
||||||
|
List<ChannelList> channelLists = new List<ChannelList>();
|
||||||
|
for (int i = 0; i < DrawerNoList.Count; i++)
|
||||||
|
{
|
||||||
|
var channelList = SqlSugarHelper.Db.Queryable<ChannelList>()
|
||||||
|
.Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cl.DrawerNo == DrawerNoList[i])
|
||||||
|
.OrderBy(cl => cl.Id)
|
||||||
|
.OrderBy(cl => cl.DrawerNo)
|
||||||
|
.First();
|
||||||
|
if (channelList.channelStocks == null)
|
||||||
|
{
|
||||||
|
channelList.channelStocks = new List<ChannelStock>();
|
||||||
|
}
|
||||||
|
channelList.channelStocks.AddRange(ChannelStocks.Where(cs => cs.DrawerNo == DrawerNoList[i]&&(cs.NeedNum>0||cs.AddToJJNum>0)).ToList());
|
||||||
|
if (channelList != null)
|
||||||
|
{
|
||||||
|
channelLists.Add(channelList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ChannelLists = channelLists;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_ChannelLists.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks);
|
|
||||||
vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
|
|
||||||
}
|
}
|
||||||
private int _status = 0;
|
private int _status = 0;
|
||||||
|
|
||||||
|
@ -108,304 +187,304 @@ namespace DM_Weight.ViewModels
|
||||||
get => new DelegateCommand(() => RequestData());
|
get => new DelegateCommand(() => RequestData());
|
||||||
}
|
}
|
||||||
//一键补药
|
//一键补药
|
||||||
public DelegateCommand OpenDragCommand
|
//public DelegateCommand OpenDragCommand
|
||||||
{
|
//{
|
||||||
get => new DelegateCommand(() =>
|
// get => new DelegateCommand(() =>
|
||||||
{
|
// {
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
Status = 1;
|
// Status = 1;
|
||||||
IsEnable = false;
|
// IsEnable = false;
|
||||||
|
|
||||||
var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
// var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||||
.Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
// .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||||
.GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
|
// .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
|
||||||
|
|
||||||
iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
|
// iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
|
||||||
CurrentNum = 0;
|
// CurrentNum = 0;
|
||||||
_portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
|
// _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
|
||||||
|
|
||||||
|
|
||||||
_portUtil.WindowName = "AddToJiaoJieWindow";
|
// _portUtil.WindowName = "AddToJiaoJieWindow";
|
||||||
_portUtil.Operate = true;
|
// _portUtil.Operate = true;
|
||||||
//_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
|
// //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
|
||||||
//_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
|
// //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
|
||||||
_portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
// _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||||
_portUtil.OpenAllDrawer();
|
// _portUtil.OpenAllDrawer();
|
||||||
|
|
||||||
}
|
// }
|
||||||
catch (Exception ex)
|
// catch (Exception ex)
|
||||||
{
|
// {
|
||||||
|
|
||||||
AlertMsg alertMsg = new AlertMsg
|
// AlertMsg alertMsg = new AlertMsg
|
||||||
{
|
// {
|
||||||
Message = $"补药异常{ex.Message}",
|
// Message = $"补药异常{ex.Message}",
|
||||||
Type = MsgType.ERROR,
|
// Type = MsgType.ERROR,
|
||||||
};
|
// };
|
||||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
|
// logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
|
||||||
_portUtil.Operate = false;
|
// _portUtil.Operate = false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
void DoMyPrismEvent(DeviceMsg msg)
|
//void DoMyPrismEvent(DeviceMsg msg)
|
||||||
{
|
//{
|
||||||
if (msg.WindowName == "AddToJiaoJieWindow")
|
// if (msg.WindowName == "AddToJiaoJieWindow")
|
||||||
{
|
// {
|
||||||
switch (msg.EventType)
|
// switch (msg.EventType)
|
||||||
{
|
// {
|
||||||
// 抽屉打开
|
// // 抽屉打开
|
||||||
case EventType.DRAWEROPEN:
|
// case EventType.DRAWEROPEN:
|
||||||
if (Status == 1)
|
// if (Status == 1)
|
||||||
{
|
// {
|
||||||
Status = 2;
|
// Status = 2;
|
||||||
}
|
// }
|
||||||
CurrentNum += 1;
|
// CurrentNum += 1;
|
||||||
if (CurrentNum < iDrawerNoLst.Count)
|
// if (CurrentNum < iDrawerNoLst.Count)
|
||||||
{
|
// {
|
||||||
_portUtil.WindowName = "AddToJiaoJieWindow";
|
// _portUtil.WindowName = "AddToJiaoJieWindow";
|
||||||
_portUtil.Operate = true;
|
// _portUtil.Operate = true;
|
||||||
_portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
// _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||||
_portUtil.OpenAllDrawer();
|
// _portUtil.OpenAllDrawer();
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
_portUtil.GetAllDrawerLockState();
|
// _portUtil.GetAllDrawerLockState();
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
// 抽屉关闭
|
// // 抽屉关闭
|
||||||
case EventType.DRAWERCLOSE:
|
// case EventType.DRAWERCLOSE:
|
||||||
if (Status == 2)
|
// if (Status == 2)
|
||||||
{
|
// {
|
||||||
Status = 3;
|
// Status = 3;
|
||||||
}
|
// }
|
||||||
_portUtil.Operate = false;
|
// _portUtil.Operate = false;
|
||||||
IsEnable = true;
|
// IsEnable = true;
|
||||||
CurrentNum = 0;
|
// CurrentNum = 0;
|
||||||
|
|
||||||
break;
|
// break;
|
||||||
// 数量变化
|
// // 数量变化
|
||||||
case EventType.UPDATEQUANTITY:
|
// case EventType.UPDATEQUANTITY:
|
||||||
if (Status == 2)
|
// if (Status == 2)
|
||||||
{
|
// {
|
||||||
ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
|
// ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
// 打开失败
|
// // 打开失败
|
||||||
case EventType.OPENERROR:
|
// case EventType.OPENERROR:
|
||||||
AlertMsg alertMsg = new AlertMsg
|
// AlertMsg alertMsg = new AlertMsg
|
||||||
{
|
// {
|
||||||
Message = msg.Message,
|
// Message = msg.Message,
|
||||||
Type = MsgType.ERROR,
|
// Type = MsgType.ERROR,
|
||||||
};
|
// };
|
||||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
Status = 0;
|
// Status = 0;
|
||||||
_portUtil.Operate = false;
|
// _portUtil.Operate = false;
|
||||||
IsEnable = false;
|
// IsEnable = false;
|
||||||
CurrentNum = 0;
|
// CurrentNum = 0;
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
//}
|
||||||
//完成按钮
|
//完成按钮
|
||||||
public DelegateCommand AddFinish
|
//public DelegateCommand AddFinish
|
||||||
{
|
//{
|
||||||
get => new DelegateCommand(() =>
|
// get => new DelegateCommand(() =>
|
||||||
{
|
// {
|
||||||
if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
|
// if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
|
||||||
{
|
// {
|
||||||
|
|
||||||
AlertMsg alertMsg = new AlertMsg
|
// AlertMsg alertMsg = new AlertMsg
|
||||||
{
|
// {
|
||||||
Message = "请选择药箱",
|
// Message = "请选择药箱",
|
||||||
Type = MsgType.SUCCESS,
|
// Type = MsgType.SUCCESS,
|
||||||
};
|
// };
|
||||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
|
// List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
|
||||||
List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
// List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
||||||
for (int i = 0; i < cs.Count; i++)
|
// for (int i = 0; i < cs.Count; i++)
|
||||||
{
|
// {
|
||||||
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
|
// ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
|
||||||
jiaojieStocks.Add(copy);
|
// jiaojieStocks.Add(copy);
|
||||||
}
|
// }
|
||||||
csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
|
// csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
|
||||||
{
|
// {
|
||||||
DrugId = g.Key,
|
// DrugId = g.Key,
|
||||||
AddQuantity = g.Sum(s => s.AddQuantity)
|
// AddQuantity = g.Sum(s => s.AddQuantity)
|
||||||
}).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
|
// }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
|
||||||
|
|
||||||
List<ChannelStock> channelStocks = new List<ChannelStock>();
|
// List<ChannelStock> channelStocks = new List<ChannelStock>();
|
||||||
List<string> msg = new List<string>();
|
// List<string> msg = new List<string>();
|
||||||
for (int i = 0; i < csList.Count; i++)
|
// for (int i = 0; i < csList.Count; i++)
|
||||||
{
|
// {
|
||||||
List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
// List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||||
.Includes<DrugInfo>(cs => cs.DrugInfo)
|
// .Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||||
.Where(cs => cs.Quantity > 0)
|
// .Where(cs => cs.Quantity > 0)
|
||||||
.Where(cs => cs.DrawerType == 1)
|
// .Where(cs => cs.DrawerType == 1)
|
||||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
// .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||||
.Where(cs => cs.DrugId == csList[i].DrugId)
|
// .Where(cs => cs.DrugId == csList[i].DrugId)
|
||||||
.OrderBy(cs => cs.EffDate)
|
// .OrderBy(cs => cs.EffDate)
|
||||||
.OrderBy(cs => cs.DrawerNo)
|
// .OrderBy(cs => cs.DrawerNo)
|
||||||
.ToList();
|
// .ToList();
|
||||||
int total = HasQChannels.Sum(it => it.Quantity);
|
// int total = HasQChannels.Sum(it => it.Quantity);
|
||||||
int TakeQ = csList[i].AddQuantity;
|
// int TakeQ = csList[i].AddQuantity;
|
||||||
// 说明数量足够
|
// // 说明数量足够
|
||||||
if (total >= TakeQ)
|
// if (total >= TakeQ)
|
||||||
{
|
// {
|
||||||
for (int j = 0; TakeQ > 0; j++)
|
// for (int j = 0; TakeQ > 0; j++)
|
||||||
{
|
// {
|
||||||
ChannelStock stock = HasQChannels[j];
|
// ChannelStock stock = HasQChannels[j];
|
||||||
if (TakeQ > stock.Quantity)
|
// if (TakeQ > stock.Quantity)
|
||||||
{
|
// {
|
||||||
stock.TakeQuantity = stock.Quantity;
|
// stock.TakeQuantity = stock.Quantity;
|
||||||
channelStocks.Add(stock);
|
// channelStocks.Add(stock);
|
||||||
TakeQ -= stock.Quantity;
|
// TakeQ -= stock.Quantity;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
stock.TakeQuantity = TakeQ;
|
// stock.TakeQuantity = TakeQ;
|
||||||
channelStocks.Add(stock);
|
// channelStocks.Add(stock);
|
||||||
TakeQ = 0;
|
// TakeQ = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
|
// msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
if (msg.Count > 0)
|
// if (msg.Count > 0)
|
||||||
{
|
// {
|
||||||
DialogParameters dialogParameters = new DialogParameters();
|
// DialogParameters dialogParameters = new DialogParameters();
|
||||||
dialogParameters.Add("msgInfo", msg);
|
// dialogParameters.Add("msgInfo", msg);
|
||||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
|
// DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
channelStocks.Sort((a, b) =>
|
// channelStocks.Sort((a, b) =>
|
||||||
{
|
// {
|
||||||
if ((a.DrawerNo - b.DrawerNo) == 0)
|
// if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||||
{
|
// {
|
||||||
return a.ColNo - b.ColNo;
|
// return a.ColNo - b.ColNo;
|
||||||
}
|
// }
|
||||||
return a.DrawerNo - b.DrawerNo;
|
// return a.DrawerNo - b.DrawerNo;
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
// List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
||||||
if (record.Count > 0)
|
// if (record.Count > 0)
|
||||||
{
|
// {
|
||||||
string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
// string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
||||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
// var f = SqlSugarHelper.Db.UseTran(() =>
|
||||||
{
|
// {
|
||||||
for (int i = 0; i < record.Count; i++)
|
// for (int i = 0; i < record.Count; i++)
|
||||||
{
|
// {
|
||||||
ChannelStock it = record[i];
|
// ChannelStock it = record[i];
|
||||||
// 更新数据 库存信息
|
// // 更新数据 库存信息
|
||||||
SqlSugarHelper.Db.Updateable(new ChannelStock()
|
// SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||||
{
|
// {
|
||||||
Quantity = it.Quantity - it.TakeQuantity,
|
// Quantity = it.Quantity - it.TakeQuantity,
|
||||||
ManuNo = it.ManuNo,
|
// ManuNo = it.ManuNo,
|
||||||
EffDate = it.EffDate,
|
// EffDate = it.EffDate,
|
||||||
Id = it.Id,
|
// Id = it.Id,
|
||||||
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
// }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
||||||
|
|
||||||
//更新 交接柜 库存信息
|
// //更新 交接柜 库存信息
|
||||||
List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
|
// List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
|
||||||
if (jiaojie != null && jiaojie.Count > 0)
|
// if (jiaojie != null && jiaojie.Count > 0)
|
||||||
{
|
// {
|
||||||
for (int j = 0; j < jiaojie.Count; j++)
|
// for (int j = 0; j < jiaojie.Count; j++)
|
||||||
{
|
// {
|
||||||
// 更新数据 交接柜 库存信息
|
// // 更新数据 交接柜 库存信息
|
||||||
ChannelStock jiaojie_it = jiaojie[j];
|
// ChannelStock jiaojie_it = jiaojie[j];
|
||||||
SqlSugarHelper.Db.Updateable(new ChannelStock()
|
// SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||||
{
|
// {
|
||||||
Quantity = jiaojie_it.BaseQuantity,
|
// Quantity = jiaojie_it.BaseQuantity,
|
||||||
//ManuNo = it.ManuNo,
|
// //ManuNo = it.ManuNo,
|
||||||
//EffDate = it.EffDate,
|
// //EffDate = it.EffDate,
|
||||||
Id = jiaojie_it.Id,
|
// Id = jiaojie_it.Id,
|
||||||
}).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
|
// }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
// 保存数据 出库记录
|
// // 保存数据 出库记录
|
||||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||||
{
|
// {
|
||||||
MachineId = it.MachineId,
|
// MachineId = it.MachineId,
|
||||||
DrawerNo = it.DrawerNo,
|
// DrawerNo = it.DrawerNo,
|
||||||
ColNo = it.ColNo,
|
// ColNo = it.ColNo,
|
||||||
DrugId = it.DrugId,
|
// DrugId = it.DrugId,
|
||||||
ManuNo = it.ManuNo,
|
// ManuNo = it.ManuNo,
|
||||||
EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
// EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||||
Operator = HomeWindowViewModel.Operator?.Id,
|
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
// Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||||
OperationTime = DateTime.Now,
|
// OperationTime = DateTime.Now,
|
||||||
Quantity = it.TakeQuantity,
|
// Quantity = it.TakeQuantity,
|
||||||
Type = 2,
|
// Type = 2,
|
||||||
InvoiceId = InvoiceId
|
// InvoiceId = InvoiceId
|
||||||
}).ExecuteCommand();
|
// }).ExecuteCommand();
|
||||||
}
|
// }
|
||||||
return true;
|
// return true;
|
||||||
});
|
// });
|
||||||
if (f.Data)
|
// if (f.Data)
|
||||||
{
|
// {
|
||||||
// 更新屏显库存
|
// // 更新屏显库存
|
||||||
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
|
// List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
|
||||||
if (singleChannels.Count > 0)
|
// if (singleChannels.Count > 0)
|
||||||
{
|
// {
|
||||||
singleChannels.ForEach(it =>
|
// singleChannels.ForEach(it =>
|
||||||
{
|
// {
|
||||||
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
|
// _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
AlertMsg alertMsg = new AlertMsg
|
// AlertMsg alertMsg = new AlertMsg
|
||||||
{
|
// {
|
||||||
Message = "补药完成,库存已更新",
|
// Message = "补药完成,库存已更新",
|
||||||
Type = MsgType.SUCCESS,
|
// Type = MsgType.SUCCESS,
|
||||||
};
|
// };
|
||||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
RequestData();
|
// RequestData();
|
||||||
}
|
// }
|
||||||
if (!f.IsSuccess)
|
// if (!f.IsSuccess)
|
||||||
{
|
// {
|
||||||
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);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
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);
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
|
|
||||||
//取消
|
//取消
|
||||||
public DelegateCommand CancleAdd
|
//public DelegateCommand CancleAdd
|
||||||
{
|
//{
|
||||||
get => new DelegateCommand(() =>
|
// get => new DelegateCommand(() =>
|
||||||
{
|
// {
|
||||||
_portUtil.ResetData();
|
// _portUtil.ResetData();
|
||||||
Status = 0;
|
// Status = 0;
|
||||||
IsEnable = true;
|
// IsEnable = true;
|
||||||
CurrentNum = 0;
|
// CurrentNum = 0;
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
public DelegateCommand RejectReport_Download
|
public DelegateCommand RejectReport_Download
|
||||||
|
@ -437,14 +516,16 @@ namespace DM_Weight.ViewModels
|
||||||
// DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity)
|
// DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity)
|
||||||
//}).Select(cs=>new ChannelStock() { DrugId=cs.DrugId,AddQuantity=cs.AddQuantity }).ToList();
|
//}).Select(cs=>new ChannelStock() { DrugId=cs.DrugId,AddQuantity=cs.AddQuantity }).ToList();
|
||||||
|
|
||||||
csList = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
csList = _ChannelList.channelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
||||||
|
|
||||||
if (csList != null && csList.Count > 0)
|
if (csList != null && csList.Count > 0)
|
||||||
{
|
{
|
||||||
// 此处延时1毫秒,等待页面渲染
|
// 此处延时1毫秒,等待页面渲染
|
||||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||||
DialogParameters dialogParameters = new DialogParameters();
|
DialogParameters dialogParameters = new DialogParameters();
|
||||||
dialogParameters.Add("ChannelStocks", csList);
|
dialogParameters.Add("_ChannelStock", csList);
|
||||||
|
//List<string> drugIdLst = ChannelStocks.FindAll(cs => cs.DrawerNo == _ChannelStock.DrawerNo).Select(cs => cs.DrugId).ToList();
|
||||||
|
//dialogParameters.Add("drugIdLst", drugIdLst);
|
||||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -470,38 +551,61 @@ namespace DM_Weight.ViewModels
|
||||||
//}
|
//}
|
||||||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||||
}
|
}
|
||||||
int AddToJiaoJieClickNum = 1;
|
//int AddToJiaoJieClickNum = 1;
|
||||||
//设置选中药箱的复选框状态
|
////设置选中药箱的复选框状态
|
||||||
private void SetIsSelected(ChannelStock channelStock)
|
//private void SetIsSelected(ChannelStock channelStock)
|
||||||
|
//{
|
||||||
|
// if (channelStock != null)
|
||||||
|
// {
|
||||||
|
// //channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
||||||
|
// if (channelStock.ChannelLst.State == 0)
|
||||||
|
// {
|
||||||
|
// channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// if (_ChannelList.channelStocks != null && _ChannelList.channelStocks != null)
|
||||||
|
// {
|
||||||
|
// _ChannelList.channelStocks = _ChannelList.channelStocks.Select(x =>
|
||||||
|
// {
|
||||||
|
// for (int i = 0; i < _ChannelList.channelStocks.Count; i++)
|
||||||
|
// {
|
||||||
|
// if (_ChannelList.channelStocks[i].DrawerNo == channelStock.DrawerNo)
|
||||||
|
// {
|
||||||
|
// _ChannelList.channelStocks[i].ChannelLst = channelStock.ChannelLst;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// _ChannelList.channelStocks[i].ChannelLst.IsSelected = false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return x;
|
||||||
|
// }).ToList();
|
||||||
|
// }
|
||||||
|
// ICollectionView vw = CollectionViewSource.GetDefaultView(_ChannelList.channelStocks);
|
||||||
|
// vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
private DelegateCommand _rowSelected;
|
||||||
|
|
||||||
|
public DelegateCommand RowSelected => _rowSelected ??= new DelegateCommand(OpenOrderDialog);
|
||||||
|
public async void OpenOrderDialog()
|
||||||
{
|
{
|
||||||
if (channelStock != null)
|
if (_ChannelList != null && _ChannelList.channelStocks != null && _ChannelList.State == 0)
|
||||||
{
|
{
|
||||||
//channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
// 此处延时1毫秒,等待页面渲染
|
||||||
if (channelStock.ChannelLst.State == 0)
|
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||||
{
|
//选中药箱号下的所有药品id
|
||||||
channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
DialogParameters dialogParameters = new DialogParameters();
|
||||||
}
|
dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks);
|
||||||
else
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (channelStock != null && ChannelStocks != null)
|
|
||||||
{
|
|
||||||
ChannelStocks = ChannelStocks.Select(x =>
|
|
||||||
{
|
|
||||||
for (int i = 0; i < ChannelStocks.Count; i++)
|
|
||||||
{
|
|
||||||
if (ChannelStocks[i].DrawerNo == channelStock.DrawerNo)
|
|
||||||
{
|
|
||||||
ChannelStocks[i].ChannelLst = channelStock.ChannelLst;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return x;
|
|
||||||
}).ToList();
|
|
||||||
}
|
|
||||||
ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks);
|
|
||||||
vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,21 @@
|
||||||
xmlns:prism="http://prismlibrary.com/"
|
xmlns:prism="http://prismlibrary.com/"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800">
|
d:DesignHeight="450" d:DesignWidth="800">
|
||||||
|
<UserControl.Resources>
|
||||||
|
<Style x:Key="st" TargetType="GridViewColumnHeader">
|
||||||
|
<Style.Setters>
|
||||||
|
<Setter Property="Height">
|
||||||
|
<Setter.Value>55</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Background">
|
||||||
|
<Setter.Value>#31ccec</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Foreground">
|
||||||
|
<Setter.Value>white</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style.Setters>
|
||||||
|
</Style>
|
||||||
|
</UserControl.Resources>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.Resources>
|
<Grid.Resources>
|
||||||
<!--<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
|
<!--<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
|
||||||
|
@ -21,6 +36,19 @@
|
||||||
<convert:TotalCountConverter x:Key="TotalCountConverter" />
|
<convert:TotalCountConverter x:Key="TotalCountConverter" />
|
||||||
<convert:StatusConverter x:Key="StatusConverter" />
|
<convert:StatusConverter x:Key="StatusConverter" />
|
||||||
<convert:StockStatusConverter x:Key="StockStatusConverter" />
|
<convert:StockStatusConverter x:Key="StockStatusConverter" />
|
||||||
|
<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>
|
||||||
</Grid.Resources>
|
</Grid.Resources>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@ -73,12 +101,12 @@
|
||||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||||
Content="账册报表" />
|
Content="账册报表" />
|
||||||
|
|
||||||
<Button
|
<!--<Button
|
||||||
Margin="3 0 3 0"
|
Margin="3 0 3 0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Command="{Binding TakeDrugCommand}"
|
Command="{Binding TakeDrugCommand}"
|
||||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||||
Content="取药" />
|
Content="取药" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
Margin="6 0 6 0"
|
Margin="6 0 6 0"
|
||||||
|
@ -92,7 +120,7 @@
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
<DataGrid
|
<!--<DataGrid
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||||
ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
@ -110,7 +138,8 @@
|
||||||
<Setter Property="BorderThickness" Value="0.6"/>
|
<Setter Property="BorderThickness" Value="0.6"/>
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||||
</Style>
|
</Style>
|
||||||
<!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
|
-->
|
||||||
|
<!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<Trigger Property="IsReadOnly" Value="True">
|
<Trigger Property="IsReadOnly" Value="True">
|
||||||
<Setter Property="BorderBrush" Value="Transparent" />
|
<Setter Property="BorderBrush" Value="Transparent" />
|
||||||
|
@ -119,6 +148,7 @@
|
||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||||
</Style>-->
|
</Style>-->
|
||||||
|
<!--
|
||||||
<Style TargetType="DataGridCell">
|
<Style TargetType="DataGridCell">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
|
@ -166,12 +196,94 @@
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
|
-->
|
||||||
|
<!--<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>-->
|
||||||
|
<!--
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
|
||||||
<DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
|
<DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
|
||||||
|
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>-->
|
||||||
|
<ListView Grid.ColumnSpan="2"
|
||||||
|
Padding="0 6 0 0" Grid.Row="1"
|
||||||
|
ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||||
|
SelectedItem="{Binding _ChannelList}"
|
||||||
|
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||||
|
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
|
||||||
|
materialDesign:ListViewAssist.ListViewItemPadding="13">
|
||||||
|
<ListView.Resources>
|
||||||
|
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
|
||||||
|
<Setter Property="Foreground" Value="White" />
|
||||||
|
</Style>
|
||||||
|
</ListView.Resources>
|
||||||
|
<i:Interaction.Triggers>
|
||||||
|
<i:EventTrigger EventName="SelectionChanged">
|
||||||
|
<i:InvokeCommandAction Command="{Binding RowSelected}" />
|
||||||
|
</i:EventTrigger>
|
||||||
|
</i:Interaction.Triggers>
|
||||||
|
<ListView.View>
|
||||||
|
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||||
|
<GridViewColumn Width="80"
|
||||||
|
DisplayMemberBinding="{Binding DrawerNo}"
|
||||||
|
Header="药箱号"/>
|
||||||
|
|
||||||
|
<GridViewColumn Header="药品名称" Width="150">
|
||||||
|
<GridViewColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</GridViewColumn.CellTemplate>
|
||||||
|
</GridViewColumn>
|
||||||
|
<GridViewColumn Header="厂家" Width="150">
|
||||||
|
<GridViewColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.Manufactory" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</GridViewColumn.CellTemplate>
|
||||||
|
</GridViewColumn>
|
||||||
|
<GridViewColumn Header="规格" Width="100">
|
||||||
|
<GridViewColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugSpec" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</GridViewColumn.CellTemplate>
|
||||||
|
</GridViewColumn>
|
||||||
|
<GridViewColumn Header="基数" Width="100">
|
||||||
|
<GridViewColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="BaseQuantity" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</GridViewColumn.CellTemplate>
|
||||||
|
</GridViewColumn>
|
||||||
|
<GridViewColumn Header="需补药数" Width="100">
|
||||||
|
<GridViewColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="NeedNum" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</GridViewColumn.CellTemplate>
|
||||||
|
</GridViewColumn>
|
||||||
|
<GridViewColumn Width="100"
|
||||||
|
DisplayMemberBinding="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"
|
||||||
|
Header="状态"/>
|
||||||
|
|
||||||
|
<!--<GridViewColumn Width="200"
|
||||||
|
DisplayMemberBinding="{Binding Drug.DrugName}"
|
||||||
|
Header="药品名称"/>
|
||||||
|
<GridViewColumn Width="200"
|
||||||
|
DisplayMemberBinding="{Binding Drug.Manufactory}"
|
||||||
|
Header="厂家"/>
|
||||||
|
<GridViewColumn Width="200"
|
||||||
|
DisplayMemberBinding="{Binding Drug.DrugSpec}"
|
||||||
|
Header="规格"/>
|
||||||
|
<GridViewColumn Width="100"
|
||||||
|
DisplayMemberBinding="{Binding BaseQuantity}"
|
||||||
|
Header="药品基数"/>
|
||||||
|
<GridViewColumn Width="100"
|
||||||
|
DisplayMemberBinding="{Binding BaseQuantity}"
|
||||||
|
Header="需补药数量"/>-->
|
||||||
|
</GridView>
|
||||||
|
</ListView.View>
|
||||||
|
</ListView>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -23,42 +23,42 @@ namespace DM_Weight.Views
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class AddToJiaoJieWindow : UserControl
|
public partial class AddToJiaoJieWindow : UserControl
|
||||||
{
|
{
|
||||||
IEventAggregator _eventAggregator;
|
//IEventAggregator _eventAggregator;
|
||||||
public AddToJiaoJieWindow(IEventAggregator eventAggregator)
|
public AddToJiaoJieWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
_eventAggregator = eventAggregator;
|
//_eventAggregator = eventAggregator;
|
||||||
}
|
}
|
||||||
//展开
|
//展开
|
||||||
private void Expander_Expanded(object sender, RoutedEventArgs e)
|
//private void Expander_Expanded(object sender, RoutedEventArgs e)
|
||||||
{
|
//{
|
||||||
//Expander expander = sender as Expander;
|
// //Expander expander = sender as Expander;
|
||||||
//if (expander != null)
|
// //if (expander != null)
|
||||||
//{
|
// //{
|
||||||
// // 假设你的数据在DataContext中
|
// // // 假设你的数据在DataContext中
|
||||||
// List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
|
// // List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
|
||||||
// if (data != null&&data.Count>0)
|
// // if (data != null&&data.Count>0)
|
||||||
// {
|
// // {
|
||||||
// // 使用data做你需要的操作
|
// // // 使用data做你需要的操作
|
||||||
// }
|
// // }
|
||||||
//}
|
// //}
|
||||||
}
|
//}
|
||||||
//收起
|
//收起
|
||||||
private void Expander_Collapsed(object sender, RoutedEventArgs e)
|
//private void Expander_Collapsed(object sender, RoutedEventArgs e)
|
||||||
{
|
//{
|
||||||
Expander expander = sender as Expander;
|
// Expander expander = sender as Expander;
|
||||||
if (expander != null)
|
// if (expander != null)
|
||||||
{
|
// {
|
||||||
// 假设你的数据在DataContext中
|
// // 假设你的数据在DataContext中
|
||||||
CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
|
// CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
|
||||||
if (group != null)
|
// if (group != null)
|
||||||
{
|
// {
|
||||||
ChannelStock internalGroup = group.Items[0] as ChannelStock;
|
// ChannelStock internalGroup = group.Items[0] as ChannelStock;
|
||||||
|
|
||||||
_eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
|
// _eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
||||||
/>
|
/>
|
||||||
<DataGridTextColumn Width="100"
|
<DataGridTextColumn Width="100"
|
||||||
Header="数量"
|
Header="库存"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
Binding="{Binding Quantity}"
|
Binding="{Binding Quantity}"
|
||||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||||
|
@ -95,13 +95,25 @@
|
||||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||||
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
||||||
/>
|
/>
|
||||||
<DataGridTextColumn Width="100"
|
<!--<DataGridTextColumn Width="100"
|
||||||
Header="取出数量"
|
Header="取出数量"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
Binding="{Binding TakeQuantity}"
|
Binding="{Binding TakeQuantity}"
|
||||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||||
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
||||||
/>
|
/>-->
|
||||||
|
<DataGridTemplateColumn Header="取出数量">
|
||||||
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
|
||||||
|
<TextBox.Text>
|
||||||
|
<Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||||
|
</Binding>
|
||||||
|
</TextBox.Text>
|
||||||
|
</TextBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
|
</DataGridTemplateColumn>
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
<Grid Grid.Row="2">
|
<Grid Grid.Row="2">
|
||||||
|
@ -147,6 +159,9 @@
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<materialDesign:Snackbar
|
||||||
|
Background="{Binding SnackbarBackground}"
|
||||||
|
MessageQueue="{Binding SnackbarMessageQueue}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</materialDesign:Card>
|
</materialDesign:Card>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
<UserControl x:Class="DM_Weight.Views.Dialog.AddToJiaoJieNewDialog"
|
||||||
|
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/"
|
||||||
|
prism:ViewModelLocator.AutoWireViewModel="True"
|
||||||
|
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||||
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
|
MinWidth="880"
|
||||||
|
Width="Auto"
|
||||||
|
Height="Auto">
|
||||||
|
<UserControl.Resources>
|
||||||
|
<convert:StatusConverter x:Key="StatusConverter" />
|
||||||
|
</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="交接柜补药" />
|
||||||
|
<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>
|
||||||
|
<DataGrid
|
||||||
|
Grid.Row="1"
|
||||||
|
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||||
|
ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
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="DataGridCell">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="DataGridCell">
|
||||||
|
<TextBlock TextAlignment="Center" VerticalAlignment="Center" >
|
||||||
|
<ContentPresenter Margin="13" />
|
||||||
|
</TextBlock>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
<Style.Triggers>
|
||||||
|
<Trigger Property="IsSelected" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="Black"/>
|
||||||
|
<Setter Property="BorderBrush" Value="Transparent" />
|
||||||
|
</Trigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</DataGrid.Resources>
|
||||||
|
<!--<DataGrid.GroupStyle>
|
||||||
|
<GroupStyle>
|
||||||
|
<GroupStyle.ContainerStyle>
|
||||||
|
<Style TargetType="{x:Type GroupItem}">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||||
|
<Expander IsExpanded="True"
|
||||||
|
materialDesign:ExpanderAssist.HeaderBackground="PaleTurquoise" Expanded="Expander_Expanded" Collapsed="Expander_Collapsed">
|
||||||
|
<Expander.Header >
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Text="{Binding Path=Name.DrawerNo,StringFormat={}{0}号药箱}" FontWeight="Bold" />
|
||||||
|
</StackPanel>
|
||||||
|
</Expander.Header>
|
||||||
|
<ItemsPresenter/>
|
||||||
|
</Expander>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
</GroupStyle.ContainerStyle>
|
||||||
|
</GroupStyle>
|
||||||
|
</DataGrid.GroupStyle>-->
|
||||||
|
<DataGrid.Columns>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="库位" Binding="{Binding AddQuantity}"/>
|
||||||
|
<DataGridTextColumn IsReadOnly="True" Header="库存数量" Binding="{Binding AddQuantity}"/>
|
||||||
|
<DataGridTemplateColumn Header="补药数量" IsReadOnly="True">
|
||||||
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ListBox ItemsSource="{Binding channelStocks}">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
|
||||||
|
<TextBox.Text>
|
||||||
|
<Binding Path="AddQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||||
|
<Binding.ValidationRules>
|
||||||
|
<ExceptionValidationRule />
|
||||||
|
</Binding.ValidationRules>
|
||||||
|
</Binding>
|
||||||
|
</TextBox.Text>
|
||||||
|
</TextBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
</DataTemplate>
|
||||||
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
|
</DataGridTemplateColumn>
|
||||||
|
</DataGrid.Columns>
|
||||||
|
</DataGrid>
|
||||||
|
<Grid Grid.Row="2">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<StackPanel Orientation="Horizontal" 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 OpenDrawer}">
|
||||||
|
</Button>-->
|
||||||
|
<Button
|
||||||
|
Margin="2"
|
||||||
|
Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||||
|
Visibility="{Binding Status,Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnVisible}"
|
||||||
|
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||||
|
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||||
|
Content="取药"
|
||||||
|
Command="{Binding OpenDrawer}">
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
Margin="2"
|
||||||
|
Visibility="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CompleteBtn}"
|
||||||
|
Style="{StaticResource MaterialDesignRaisedAccentButton}"
|
||||||
|
Content="完成"
|
||||||
|
Command="{Binding TakeFinish}"/>
|
||||||
|
<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>
|
||||||
|
/// AddToJiaoJieNewDialog.xaml 的交互逻辑
|
||||||
|
/// </summary>
|
||||||
|
public partial class AddToJiaoJieNewDialog : UserControl
|
||||||
|
{
|
||||||
|
public AddToJiaoJieNewDialog()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue