交接柜补药时列出所有要补药的批次让补药人选择对应批次
This commit is contained in:
parent
88b97e213f
commit
c971e9d1bc
|
@ -3,7 +3,7 @@
|
|||
<connectionStrings>
|
||||
<!-- 数据库连接字符串 -->
|
||||
<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
|
||||
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike;userid=root;password=root" />
|
||||
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike_xx;userid=root;password=root" />
|
||||
</connectionStrings>
|
||||
<!--<runtime>
|
||||
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
||||
|
@ -54,7 +54,7 @@
|
|||
<!-- 抽屉串口使用的协议232或者485 -->
|
||||
<add key="DrawerProtocol" value="485" />
|
||||
<!-- 抽屉串口的串口号 -->
|
||||
<add key="DrawerPortPath" value="COM5" />
|
||||
<add key="DrawerPortPath" value="COM1" />
|
||||
<!-- can总线串口的串口号 -->
|
||||
<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.util;
|
||||
using log4net;
|
||||
using MaterialDesignThemes.Wpf;
|
||||
using Prism.Commands;
|
||||
using Prism.Events;
|
||||
using Prism.Mvvm;
|
||||
|
@ -16,6 +17,7 @@ using System.Text;
|
|||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace DM_Weight.ViewModels
|
||||
{
|
||||
|
@ -41,6 +43,8 @@ namespace DM_Weight.ViewModels
|
|||
get => _jiaojie_channelStocks;
|
||||
set => SetProperty(ref _jiaojie_channelStocks, value);
|
||||
}
|
||||
//交接柜所在药箱下的所有药品id
|
||||
List<string> drugIdLst = new List<string>();
|
||||
//交接柜中无该批次添加实体
|
||||
public List<ChannelStock> AddJJStock = new List<ChannelStock>();
|
||||
//交接柜中有该批次更新实体
|
||||
|
@ -61,6 +65,20 @@ namespace DM_Weight.ViewModels
|
|||
private IEnumerable<IGrouping<int, ChannelStock>> enumerable;
|
||||
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 => "交接柜补药";
|
||||
|
||||
|
@ -82,18 +100,19 @@ namespace DM_Weight.ViewModels
|
|||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
_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++)
|
||||
{
|
||||
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(Jiaojie_ChannelStocks[i]);
|
||||
ChannelStocks.Add(copy);
|
||||
}
|
||||
ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId, cs.ManuNo }).Select(g => new
|
||||
{
|
||||
Key = g.Key,
|
||||
AddQuantity = g.Sum(s => s.AddQuantity)
|
||||
}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
|
||||
//ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId }).Select(g => new
|
||||
//{
|
||||
// Key = g.Key,
|
||||
// AddQuantity = g.Sum(s => s.AddQuantity)
|
||||
//}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
|
||||
RequestData();
|
||||
}
|
||||
|
||||
|
@ -199,9 +218,9 @@ namespace DM_Weight.ViewModels
|
|||
.Where(cs => cs.Quantity > 0)
|
||||
.Where(cs => cs.DrawerType == 1)
|
||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
.Where(cs => cs.DrugId == ChannelStocks[i].DrugId && cs.ManuNo == ChannelStocks[i].ManuNo)
|
||||
.OrderBy(cs => cs.EffDate)
|
||||
.OrderBy(cs => cs.DrawerNo)
|
||||
.Where(cs => cs.DrugId == ChannelStocks[i].DrugId)
|
||||
//.OrderBy(cs => cs.EffDate)
|
||||
.OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo })
|
||||
.ToList();
|
||||
if (HasQChannels == null || HasQChannels.Count <= 0)
|
||||
{
|
||||
|
@ -213,22 +232,37 @@ namespace DM_Weight.ViewModels
|
|||
// 说明数量足够
|
||||
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 (TakeQ > stock.Quantity)
|
||||
if ((ChannelStocks[i].AddQuantity - hadTakeQ) > HasQChannels[j].Quantity)
|
||||
{
|
||||
stock.TakeQuantity = stock.Quantity;
|
||||
channelStocks.Add(stock);
|
||||
TakeQ -= stock.Quantity;
|
||||
HasQChannels[j].TakeQuantity = HasQChannels[j].Quantity;
|
||||
hadTakeQ += HasQChannels[j].Quantity;
|
||||
}
|
||||
else
|
||||
{
|
||||
stock.TakeQuantity = TakeQ;
|
||||
channelStocks.Add(stock);
|
||||
TakeQ = 0;
|
||||
HasQChannels[j].TakeQuantity = ChannelStocks[i].AddQuantity - hadTakeQ;
|
||||
break;
|
||||
}
|
||||
}
|
||||
channelStocks.AddRange(HasQChannels);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -247,14 +281,14 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
else
|
||||
{
|
||||
channelStocks.Sort((a, b) =>
|
||||
{
|
||||
if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||
{
|
||||
return a.ColNo - b.ColNo;
|
||||
}
|
||||
return a.DrawerNo - b.DrawerNo;
|
||||
});
|
||||
//channelStocks.Sort((a, b) =>
|
||||
//{
|
||||
// if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||
// {
|
||||
// return a.ColNo - b.ColNo;
|
||||
// }
|
||||
// return a.DrawerNo - b.DrawerNo;
|
||||
//});
|
||||
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.MoveNext();
|
||||
Status = 1;
|
||||
|
@ -337,11 +371,36 @@ namespace DM_Weight.ViewModels
|
|||
{
|
||||
if (!_isFinishClick)
|
||||
{
|
||||
|
||||
_isFinishClick = true;
|
||||
|
||||
List<ChannelStock> record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
||||
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();
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
|
@ -357,35 +416,6 @@ namespace DM_Weight.ViewModels
|
|||
Id = it.Id,
|
||||
}).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()
|
||||
{
|
||||
|
@ -409,30 +439,30 @@ namespace DM_Weight.ViewModels
|
|||
for (int i = 0; i < Jiaojie_ChannelStocks.Count; 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();
|
||||
List<ChannelStock> csStockList = record.Where(cs => cs.DrugId == jiaoStock.DrugId && cs.TakeQuantity > 0).ToList();
|
||||
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 == Jiaojie_ChannelStocks[i].DrugId && cs.TakeQuantity > 0).ToList();
|
||||
if (csStockList != null && csStockList.Count > 0)
|
||||
{
|
||||
for (int j = 0; j < csStockList.Count; j++)
|
||||
{
|
||||
ChannelStock csStock = (ChannelStock)csStockList[j].Clone();
|
||||
ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
|
||||
logger.Info($"库中{jiaoStock.DrawerNo}号手术间,{jiaoStock.DrugId},{csStock.ManuNo};有该批次{jjStockManuNo!=null};jjStockManuNo是空:{jjStockManuNo==null}");
|
||||
.Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
|
||||
logger.Info($"库中{Jiaojie_ChannelStocks[i].DrawerNo}号手术间,{Jiaojie_ChannelStocks[i].DrugId},{csStock.ManuNo};有该批次{jjStockManuNo != null};jjStockManuNo是空:{jjStockManuNo == null}");
|
||||
if (jjStockManuNo != null)
|
||||
{
|
||||
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();
|
||||
//newStock.Chnguid = jiaoStock.Chnguid;
|
||||
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||
newStock.ManuNo = jiaoStock.ManuNo;
|
||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
||||
newStock.DrugId = jiaoStock.DrugId;
|
||||
newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
|
||||
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||
newStock.AddToJJNum = addNum;
|
||||
newStock.Id = jjStockManuNo.Id;
|
||||
//newStock.MachineId = jiaoStock.MachineId;
|
||||
|
@ -440,7 +470,7 @@ namespace DM_Weight.ViewModels
|
|||
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
||||
UpdateJJStock.Add(newStock);
|
||||
csStockList[j].TakeQuantity = 0;
|
||||
jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
|
||||
Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -454,53 +484,53 @@ namespace DM_Weight.ViewModels
|
|||
ChannelStock newStock = new ChannelStock();
|
||||
//newStock.Chnguid = jiaoStock.Chnguid;
|
||||
//newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||
newStock.ManuNo = jiaoStock.ManuNo;
|
||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
||||
newStock.DrugId = jiaoStock.DrugId;
|
||||
newStock.AddToJJNum = jiaoStock.NeedNum;
|
||||
newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
|
||||
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||
newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
|
||||
newStock.Id = jjStockManuNo.Id;
|
||||
//newStock.MachineId = jiaoStock.MachineId;
|
||||
//newStock.NeedNum = 0;
|
||||
//newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
|
||||
UpdateJJStock.Add(newStock);
|
||||
csStockList[j].TakeQuantity = csStock.TakeQuantity - jiaoStock.NeedNum;
|
||||
jiaoStock.NeedNum = 0;
|
||||
csStockList[j].TakeQuantity = csStock.TakeQuantity - Jiaojie_ChannelStocks[i].NeedNum;
|
||||
Jiaojie_ChannelStocks[i].NeedNum = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else //没有该批次
|
||||
{
|
||||
if (jiaoStock.NeedNum > csStock.TakeQuantity)
|
||||
if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity)
|
||||
{
|
||||
//不够取
|
||||
ChannelStock newStock = new ChannelStock();
|
||||
newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||
newStock.Chnguid = jiaoStock.Chnguid;
|
||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
||||
newStock.DrugId = jiaoStock.DrugId;
|
||||
newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
|
||||
newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
|
||||
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||
newStock.ManuNo = csStock.ManuNo;
|
||||
newStock.AddToJJNum = csStock.TakeQuantity;
|
||||
newStock.Id = Guid.NewGuid().ToString();
|
||||
newStock.MachineId = jiaoStock.MachineId;
|
||||
newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
|
||||
newStock.DrawerType = 1;
|
||||
newStock.NeedNum = 0;
|
||||
AddJJStock.Add(newStock);
|
||||
jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
|
||||
Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
|
||||
csStockList[j].TakeQuantity = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
//够取
|
||||
ChannelStock newStock = new ChannelStock();
|
||||
newStock.Chnguid = jiaoStock.Chnguid;
|
||||
newStock.BaseQuantity = jiaoStock.BaseQuantity;
|
||||
newStock.DrawerNo = jiaoStock.DrawerNo;
|
||||
newStock.DrugId = jiaoStock.DrugId;
|
||||
newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
|
||||
newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
|
||||
newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
|
||||
newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
|
||||
newStock.ManuNo = csStock.ManuNo;
|
||||
newStock.AddToJJNum = jiaoStock.NeedNum;
|
||||
newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
|
||||
newStock.NeedNum = 0;
|
||||
newStock.Id = Guid.NewGuid().ToString();
|
||||
newStock.MachineId = jiaoStock.MachineId;
|
||||
newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
|
||||
newStock.DrawerType = 1;
|
||||
AddJJStock.Add(newStock);
|
||||
csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
|
||||
|
@ -511,7 +541,7 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
SqlSugarHelper.Db.Updateable<ChannelStock>()
|
||||
.SetColumns(cs => new ChannelStock() { NeedNum = 0 })
|
||||
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo)
|
||||
.Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo)
|
||||
.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 != null && jiaojie.Count > 0)
|
||||
if (Jiaojie_ChannelStocks != null)
|
||||
{
|
||||
for (int j = 0; j < jiaojie.Count; j++)
|
||||
Jiaojie_ChannelStocks.ForEach(jj =>
|
||||
{
|
||||
ChannelStock jiaojie_it = jiaojie[j];
|
||||
//更新交接柜状态为 已取药未入库
|
||||
SqlSugarHelper.Db.Updateable(new ChannelList()
|
||||
{
|
||||
State = 1,
|
||||
Id = jiaojie_it.ChannelLst.Id
|
||||
Id = jj.ChannelLst.Id
|
||||
}).UpdateColumns(it => it.State).ExecuteCommand();
|
||||
|
||||
}
|
||||
|
||||
);
|
||||
}
|
||||
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)
|
||||
{
|
||||
// 取消消息订阅
|
||||
_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||
_eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
|
||||
//_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||
//_eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
|
||||
}
|
||||
|
||||
|
||||
private List<ChannelStock> channelStocks;
|
||||
public List<ChannelStock> ChannelStocks
|
||||
private List<ChannelStock>? channelStocks;
|
||||
public List<ChannelStock>? ChannelStocks
|
||||
{
|
||||
get => channelStocks;
|
||||
set => SetProperty(ref channelStocks, value);
|
||||
}
|
||||
|
||||
private ChannelStock _channelStock;
|
||||
public ChannelStock _ChannelStock
|
||||
{
|
||||
get => _channelStock;
|
||||
set => SetProperty(ref _channelStock, value);
|
||||
}
|
||||
|
||||
private 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)
|
||||
{
|
||||
_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
||||
_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
|
||||
//_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
||||
//_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
|
||||
RequestData();
|
||||
}
|
||||
private PortUtil _portUtil;
|
||||
|
@ -70,26 +90,85 @@ namespace DM_Weight.ViewModels
|
|||
}
|
||||
private void RequestData()
|
||||
{
|
||||
//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.BaseQuantity > cs.Quantity)
|
||||
// .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();
|
||||
//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.BaseQuantity > cs.Quantity)
|
||||
.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();
|
||||
ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
|
||||
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;
|
||||
|
||||
|
@ -108,304 +187,304 @@ namespace DM_Weight.ViewModels
|
|||
get => new DelegateCommand(() => RequestData());
|
||||
}
|
||||
//一键补药
|
||||
public DelegateCommand OpenDragCommand
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
Status = 1;
|
||||
IsEnable = false;
|
||||
//public DelegateCommand OpenDragCommand
|
||||
//{
|
||||
// get => new DelegateCommand(() =>
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// Status = 1;
|
||||
// IsEnable = false;
|
||||
|
||||
var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
.GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
|
||||
// var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
// .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
// .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
|
||||
|
||||
iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
|
||||
CurrentNum = 0;
|
||||
_portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
|
||||
// iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
|
||||
// CurrentNum = 0;
|
||||
// _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
|
||||
|
||||
|
||||
_portUtil.WindowName = "AddToJiaoJieWindow";
|
||||
_portUtil.Operate = true;
|
||||
//_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
|
||||
//_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
|
||||
_portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||
_portUtil.OpenAllDrawer();
|
||||
// _portUtil.WindowName = "AddToJiaoJieWindow";
|
||||
// _portUtil.Operate = true;
|
||||
// //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
|
||||
// //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
|
||||
// _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||
// _portUtil.OpenAllDrawer();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = $"补药异常{ex.Message}",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
|
||||
_portUtil.Operate = false;
|
||||
}
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = $"补药异常{ex.Message}",
|
||||
// Type = MsgType.ERROR,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
|
||||
// _portUtil.Operate = false;
|
||||
// }
|
||||
|
||||
});
|
||||
}
|
||||
void DoMyPrismEvent(DeviceMsg msg)
|
||||
{
|
||||
if (msg.WindowName == "AddToJiaoJieWindow")
|
||||
{
|
||||
switch (msg.EventType)
|
||||
{
|
||||
// 抽屉打开
|
||||
case EventType.DRAWEROPEN:
|
||||
if (Status == 1)
|
||||
{
|
||||
Status = 2;
|
||||
}
|
||||
CurrentNum += 1;
|
||||
if (CurrentNum < iDrawerNoLst.Count)
|
||||
{
|
||||
_portUtil.WindowName = "AddToJiaoJieWindow";
|
||||
_portUtil.Operate = true;
|
||||
_portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||
_portUtil.OpenAllDrawer();
|
||||
}
|
||||
else
|
||||
{
|
||||
_portUtil.GetAllDrawerLockState();
|
||||
}
|
||||
break;
|
||||
// 抽屉关闭
|
||||
case EventType.DRAWERCLOSE:
|
||||
if (Status == 2)
|
||||
{
|
||||
Status = 3;
|
||||
}
|
||||
_portUtil.Operate = false;
|
||||
IsEnable = true;
|
||||
CurrentNum = 0;
|
||||
// });
|
||||
//}
|
||||
//void DoMyPrismEvent(DeviceMsg msg)
|
||||
//{
|
||||
// if (msg.WindowName == "AddToJiaoJieWindow")
|
||||
// {
|
||||
// switch (msg.EventType)
|
||||
// {
|
||||
// // 抽屉打开
|
||||
// case EventType.DRAWEROPEN:
|
||||
// if (Status == 1)
|
||||
// {
|
||||
// Status = 2;
|
||||
// }
|
||||
// CurrentNum += 1;
|
||||
// if (CurrentNum < iDrawerNoLst.Count)
|
||||
// {
|
||||
// _portUtil.WindowName = "AddToJiaoJieWindow";
|
||||
// _portUtil.Operate = true;
|
||||
// _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
|
||||
// _portUtil.OpenAllDrawer();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// _portUtil.GetAllDrawerLockState();
|
||||
// }
|
||||
// break;
|
||||
// // 抽屉关闭
|
||||
// case EventType.DRAWERCLOSE:
|
||||
// if (Status == 2)
|
||||
// {
|
||||
// Status = 3;
|
||||
// }
|
||||
// _portUtil.Operate = false;
|
||||
// IsEnable = true;
|
||||
// CurrentNum = 0;
|
||||
|
||||
break;
|
||||
// 数量变化
|
||||
case EventType.UPDATEQUANTITY:
|
||||
if (Status == 2)
|
||||
{
|
||||
ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
|
||||
}
|
||||
break;
|
||||
// 打开失败
|
||||
case EventType.OPENERROR:
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = msg.Message,
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
Status = 0;
|
||||
_portUtil.Operate = false;
|
||||
IsEnable = false;
|
||||
CurrentNum = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// break;
|
||||
// // 数量变化
|
||||
// case EventType.UPDATEQUANTITY:
|
||||
// if (Status == 2)
|
||||
// {
|
||||
// ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
|
||||
// }
|
||||
// break;
|
||||
// // 打开失败
|
||||
// case EventType.OPENERROR:
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = msg.Message,
|
||||
// Type = MsgType.ERROR,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// Status = 0;
|
||||
// _portUtil.Operate = false;
|
||||
// IsEnable = false;
|
||||
// CurrentNum = 0;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
//}
|
||||
//完成按钮
|
||||
public DelegateCommand AddFinish
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
|
||||
{
|
||||
//public DelegateCommand AddFinish
|
||||
//{
|
||||
// get => new DelegateCommand(() =>
|
||||
// {
|
||||
// if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
|
||||
// {
|
||||
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "请选择药箱",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
return;
|
||||
}
|
||||
List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
|
||||
List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
||||
for (int i = 0; i < cs.Count; i++)
|
||||
{
|
||||
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
|
||||
jiaojieStocks.Add(copy);
|
||||
}
|
||||
csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
|
||||
{
|
||||
DrugId = g.Key,
|
||||
AddQuantity = g.Sum(s => s.AddQuantity)
|
||||
}).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "请选择药箱",
|
||||
// Type = MsgType.SUCCESS,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// return;
|
||||
// }
|
||||
// List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
|
||||
// List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
|
||||
// for (int i = 0; i < cs.Count; i++)
|
||||
// {
|
||||
// ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
|
||||
// jiaojieStocks.Add(copy);
|
||||
// }
|
||||
// csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
|
||||
// {
|
||||
// DrugId = g.Key,
|
||||
// AddQuantity = g.Sum(s => s.AddQuantity)
|
||||
// }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
|
||||
|
||||
List<ChannelStock> channelStocks = new List<ChannelStock>();
|
||||
List<string> msg = new List<string>();
|
||||
for (int i = 0; i < csList.Count; i++)
|
||||
{
|
||||
List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
.Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||
.Where(cs => cs.Quantity > 0)
|
||||
.Where(cs => cs.DrawerType == 1)
|
||||
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
.Where(cs => cs.DrugId == csList[i].DrugId)
|
||||
.OrderBy(cs => cs.EffDate)
|
||||
.OrderBy(cs => cs.DrawerNo)
|
||||
.ToList();
|
||||
int total = HasQChannels.Sum(it => it.Quantity);
|
||||
int TakeQ = csList[i].AddQuantity;
|
||||
// 说明数量足够
|
||||
if (total >= TakeQ)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
|
||||
}
|
||||
// List<ChannelStock> channelStocks = new List<ChannelStock>();
|
||||
// List<string> msg = new List<string>();
|
||||
// for (int i = 0; i < csList.Count; i++)
|
||||
// {
|
||||
// List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
|
||||
// .Includes<DrugInfo>(cs => cs.DrugInfo)
|
||||
// .Where(cs => cs.Quantity > 0)
|
||||
// .Where(cs => cs.DrawerType == 1)
|
||||
// .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
|
||||
// .Where(cs => cs.DrugId == csList[i].DrugId)
|
||||
// .OrderBy(cs => cs.EffDate)
|
||||
// .OrderBy(cs => cs.DrawerNo)
|
||||
// .ToList();
|
||||
// int total = HasQChannels.Sum(it => it.Quantity);
|
||||
// int TakeQ = csList[i].AddQuantity;
|
||||
// // 说明数量足够
|
||||
// if (total >= TakeQ)
|
||||
// {
|
||||
// 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;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
|
||||
// }
|
||||
|
||||
}
|
||||
if (msg.Count > 0)
|
||||
{
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("msgInfo", msg);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
|
||||
return;
|
||||
// }
|
||||
// if (msg.Count > 0)
|
||||
// {
|
||||
// DialogParameters dialogParameters = new DialogParameters();
|
||||
// dialogParameters.Add("msgInfo", msg);
|
||||
// DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
|
||||
// return;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
channelStocks.Sort((a, b) =>
|
||||
{
|
||||
if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||
{
|
||||
return a.ColNo - b.ColNo;
|
||||
}
|
||||
return a.DrawerNo - b.DrawerNo;
|
||||
});
|
||||
}
|
||||
List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
||||
if (record.Count > 0)
|
||||
{
|
||||
string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
||||
var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
{
|
||||
for (int i = 0; i < record.Count; i++)
|
||||
{
|
||||
ChannelStock it = record[i];
|
||||
// 更新数据 库存信息
|
||||
SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
{
|
||||
Quantity = it.Quantity - it.TakeQuantity,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = it.EffDate,
|
||||
Id = it.Id,
|
||||
}).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// channelStocks.Sort((a, b) =>
|
||||
// {
|
||||
// if ((a.DrawerNo - b.DrawerNo) == 0)
|
||||
// {
|
||||
// return a.ColNo - b.ColNo;
|
||||
// }
|
||||
// return a.DrawerNo - b.DrawerNo;
|
||||
// });
|
||||
// }
|
||||
// List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
|
||||
// if (record.Count > 0)
|
||||
// {
|
||||
// string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
|
||||
// var f = SqlSugarHelper.Db.UseTran(() =>
|
||||
// {
|
||||
// for (int i = 0; i < record.Count; i++)
|
||||
// {
|
||||
// ChannelStock it = record[i];
|
||||
// // 更新数据 库存信息
|
||||
// SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
// {
|
||||
// Quantity = it.Quantity - it.TakeQuantity,
|
||||
// ManuNo = it.ManuNo,
|
||||
// EffDate = it.EffDate,
|
||||
// Id = it.Id,
|
||||
// }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
|
||||
|
||||
//更新 交接柜 库存信息
|
||||
List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
|
||||
if (jiaojie != null && jiaojie.Count > 0)
|
||||
{
|
||||
for (int j = 0; j < jiaojie.Count; j++)
|
||||
{
|
||||
// 更新数据 交接柜 库存信息
|
||||
ChannelStock jiaojie_it = jiaojie[j];
|
||||
SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
{
|
||||
Quantity = jiaojie_it.BaseQuantity,
|
||||
//ManuNo = it.ManuNo,
|
||||
//EffDate = it.EffDate,
|
||||
Id = jiaojie_it.Id,
|
||||
}).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
// //更新 交接柜 库存信息
|
||||
// List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
|
||||
// if (jiaojie != null && jiaojie.Count > 0)
|
||||
// {
|
||||
// for (int j = 0; j < jiaojie.Count; j++)
|
||||
// {
|
||||
// // 更新数据 交接柜 库存信息
|
||||
// ChannelStock jiaojie_it = jiaojie[j];
|
||||
// SqlSugarHelper.Db.Updateable(new ChannelStock()
|
||||
// {
|
||||
// Quantity = jiaojie_it.BaseQuantity,
|
||||
// //ManuNo = it.ManuNo,
|
||||
// //EffDate = it.EffDate,
|
||||
// Id = jiaojie_it.Id,
|
||||
// }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// 保存数据 出库记录
|
||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
{
|
||||
MachineId = it.MachineId,
|
||||
DrawerNo = it.DrawerNo,
|
||||
ColNo = it.ColNo,
|
||||
DrugId = it.DrugId,
|
||||
ManuNo = it.ManuNo,
|
||||
EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
Operator = HomeWindowViewModel.Operator?.Id,
|
||||
Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
OperationTime = DateTime.Now,
|
||||
Quantity = it.TakeQuantity,
|
||||
Type = 2,
|
||||
InvoiceId = InvoiceId
|
||||
}).ExecuteCommand();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (f.Data)
|
||||
{
|
||||
// 更新屏显库存
|
||||
List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
|
||||
if (singleChannels.Count > 0)
|
||||
{
|
||||
singleChannels.ForEach(it =>
|
||||
{
|
||||
_portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
|
||||
});
|
||||
}
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "补药完成,库存已更新",
|
||||
Type = MsgType.SUCCESS,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
RequestData();
|
||||
}
|
||||
if (!f.IsSuccess)
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "补药操作失败,库存更新失败!",
|
||||
Type = MsgType.ERROR,
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertMsg alertMsg = new AlertMsg
|
||||
{
|
||||
Message = "补药数量有误",
|
||||
Type = MsgType.ERROR
|
||||
};
|
||||
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
// // 保存数据 出库记录
|
||||
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||
// {
|
||||
// MachineId = it.MachineId,
|
||||
// DrawerNo = it.DrawerNo,
|
||||
// ColNo = it.ColNo,
|
||||
// DrugId = it.DrugId,
|
||||
// ManuNo = it.ManuNo,
|
||||
// EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
||||
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||
// Reviewer = HomeWindowViewModel.Reviewer?.Id,
|
||||
// OperationTime = DateTime.Now,
|
||||
// Quantity = it.TakeQuantity,
|
||||
// Type = 2,
|
||||
// InvoiceId = InvoiceId
|
||||
// }).ExecuteCommand();
|
||||
// }
|
||||
// return true;
|
||||
// });
|
||||
// if (f.Data)
|
||||
// {
|
||||
// // 更新屏显库存
|
||||
// List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
|
||||
// if (singleChannels.Count > 0)
|
||||
// {
|
||||
// singleChannels.ForEach(it =>
|
||||
// {
|
||||
// _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
|
||||
// });
|
||||
// }
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "补药完成,库存已更新",
|
||||
// Type = MsgType.SUCCESS,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// RequestData();
|
||||
// }
|
||||
// if (!f.IsSuccess)
|
||||
// {
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "补药操作失败,库存更新失败!",
|
||||
// Type = MsgType.ERROR,
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AlertMsg alertMsg = new AlertMsg
|
||||
// {
|
||||
// Message = "补药数量有误",
|
||||
// Type = MsgType.ERROR
|
||||
// };
|
||||
// _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||
// }
|
||||
// });
|
||||
//}
|
||||
|
||||
//取消
|
||||
public DelegateCommand CancleAdd
|
||||
{
|
||||
get => new DelegateCommand(() =>
|
||||
{
|
||||
_portUtil.ResetData();
|
||||
Status = 0;
|
||||
IsEnable = true;
|
||||
CurrentNum = 0;
|
||||
});
|
||||
}
|
||||
//public DelegateCommand CancleAdd
|
||||
//{
|
||||
// get => new DelegateCommand(() =>
|
||||
// {
|
||||
// _portUtil.ResetData();
|
||||
// Status = 0;
|
||||
// IsEnable = true;
|
||||
// CurrentNum = 0;
|
||||
// });
|
||||
//}
|
||||
|
||||
|
||||
public DelegateCommand RejectReport_Download
|
||||
|
@ -437,14 +516,16 @@ namespace DM_Weight.ViewModels
|
|||
// DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity)
|
||||
//}).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)
|
||||
{
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
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");
|
||||
|
||||
}
|
||||
|
@ -470,38 +551,61 @@ namespace DM_Weight.ViewModels
|
|||
//}
|
||||
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
|
||||
}
|
||||
int AddToJiaoJieClickNum = 1;
|
||||
//设置选中药箱的复选框状态
|
||||
private void SetIsSelected(ChannelStock channelStock)
|
||||
//int AddToJiaoJieClickNum = 1;
|
||||
////设置选中药箱的复选框状态
|
||||
//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;
|
||||
if (channelStock.ChannelLst.State == 0)
|
||||
{
|
||||
channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
|
||||
}
|
||||
else
|
||||
{
|
||||
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"));
|
||||
// 此处延时1毫秒,等待页面渲染
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(1));
|
||||
//选中药箱号下的所有药品id
|
||||
DialogParameters dialogParameters = new DialogParameters();
|
||||
dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks);
|
||||
DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,21 @@
|
|||
xmlns:prism="http://prismlibrary.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<Style x:Key="st" TargetType="GridViewColumnHeader">
|
||||
<Style.Setters>
|
||||
<Setter Property="Height">
|
||||
<Setter.Value>55</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>#31ccec</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>white</Setter.Value>
|
||||
</Setter>
|
||||
</Style.Setters>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.Resources>
|
||||
<!--<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
|
||||
|
@ -21,6 +36,19 @@
|
|||
<convert:TotalCountConverter x:Key="TotalCountConverter" />
|
||||
<convert:StatusConverter x:Key="StatusConverter" />
|
||||
<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.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
|
@ -73,12 +101,12 @@
|
|||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="账册报表" />
|
||||
|
||||
<Button
|
||||
<!--<Button
|
||||
Margin="3 0 3 0"
|
||||
VerticalAlignment="Center"
|
||||
Command="{Binding TakeDrugCommand}"
|
||||
Style="{StaticResource MaterialDesignOutlinedLightButton}"
|
||||
Content="取药" />
|
||||
Content="取药" />-->
|
||||
|
||||
<Button
|
||||
Margin="6 0 6 0"
|
||||
|
@ -92,7 +120,7 @@
|
|||
|
||||
|
||||
</Grid>
|
||||
<DataGrid
|
||||
<!--<DataGrid
|
||||
Grid.Row="1"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="15"
|
||||
ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
|
@ -110,6 +138,7 @@
|
|||
<Setter Property="BorderThickness" Value="0.6"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
</Style>
|
||||
-->
|
||||
<!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsReadOnly" Value="True">
|
||||
|
@ -119,6 +148,7 @@
|
|||
</Style.Triggers>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
</Style>-->
|
||||
<!--
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
|
@ -166,12 +196,94 @@
|
|||
<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 ManuNo}"/>-->
|
||||
<!--
|
||||
<DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
|
||||
<DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
|
||||
<DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
|
||||
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</DataGrid>-->
|
||||
<ListView Grid.ColumnSpan="2"
|
||||
Padding="0 6 0 0" Grid.Row="1"
|
||||
ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
|
||||
SelectedItem="{Binding _ChannelList}"
|
||||
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
|
||||
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
|
||||
materialDesign:ListViewAssist.ListViewItemPadding="13">
|
||||
<ListView.Resources>
|
||||
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</Style>
|
||||
</ListView.Resources>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="SelectionChanged">
|
||||
<i:InvokeCommandAction Command="{Binding RowSelected}" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
|
||||
<GridViewColumn Width="80"
|
||||
DisplayMemberBinding="{Binding DrawerNo}"
|
||||
Header="药箱号"/>
|
||||
|
||||
<GridViewColumn Header="药品名称" Width="150">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="厂家" Width="150">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.Manufactory" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="规格" Width="100">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugSpec" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="基数" Width="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>
|
||||
</UserControl>
|
||||
|
|
|
@ -23,42 +23,42 @@ namespace DM_Weight.Views
|
|||
/// </summary>
|
||||
public partial class AddToJiaoJieWindow : UserControl
|
||||
{
|
||||
IEventAggregator _eventAggregator;
|
||||
public AddToJiaoJieWindow(IEventAggregator eventAggregator)
|
||||
//IEventAggregator _eventAggregator;
|
||||
public AddToJiaoJieWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_eventAggregator = eventAggregator;
|
||||
//_eventAggregator = eventAggregator;
|
||||
}
|
||||
//展开
|
||||
private void Expander_Expanded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//Expander expander = sender as Expander;
|
||||
//if (expander != null)
|
||||
//private void Expander_Expanded(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// // 假设你的数据在DataContext中
|
||||
// List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
|
||||
// if (data != null&&data.Count>0)
|
||||
// //Expander expander = sender as Expander;
|
||||
// //if (expander != null)
|
||||
// //{
|
||||
// // // 假设你的数据在DataContext中
|
||||
// // List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
|
||||
// // if (data != null&&data.Count>0)
|
||||
// // {
|
||||
// // // 使用data做你需要的操作
|
||||
// // }
|
||||
// //}
|
||||
//}
|
||||
//收起
|
||||
//private void Expander_Collapsed(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// Expander expander = sender as Expander;
|
||||
// if (expander != null)
|
||||
// {
|
||||
// // 使用data做你需要的操作
|
||||
// // 假设你的数据在DataContext中
|
||||
// CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
|
||||
// if (group != null)
|
||||
// {
|
||||
// ChannelStock internalGroup = group.Items[0] as ChannelStock;
|
||||
|
||||
// _eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
//收起
|
||||
private void Expander_Collapsed(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Expander expander = sender as Expander;
|
||||
if (expander != null)
|
||||
{
|
||||
// 假设你的数据在DataContext中
|
||||
CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
|
||||
if (group != null)
|
||||
{
|
||||
ChannelStock internalGroup = group.Items[0] as ChannelStock;
|
||||
|
||||
_eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
||||
/>
|
||||
<DataGridTextColumn Width="100"
|
||||
Header="数量"
|
||||
Header="库存"
|
||||
IsReadOnly="True"
|
||||
Binding="{Binding Quantity}"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||
|
@ -95,13 +95,25 @@
|
|||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
|
||||
/>
|
||||
<DataGridTextColumn Width="100"
|
||||
<!--<DataGridTextColumn Width="100"
|
||||
Header="取出数量"
|
||||
IsReadOnly="True"
|
||||
Binding="{Binding TakeQuantity}"
|
||||
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
|
||||
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>
|
||||
<Grid Grid.Row="2">
|
||||
|
@ -147,6 +159,9 @@
|
|||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
<materialDesign:Snackbar
|
||||
Background="{Binding SnackbarBackground}"
|
||||
MessageQueue="{Binding SnackbarMessageQueue}"/>
|
||||
</Grid>
|
||||
</materialDesign:Card>
|
||||
</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