using DataEntity.Share;
|
using DataRWDAL;
|
using DataRWDalDrive.DB;
|
using DriverLib.Engine;
|
using NPOI.SS.Formula.Functions;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
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;
|
using XCommon;
|
using XHandler.Class;
|
using XHandler.Class.DataEx;
|
using XHandler.View.Consumables;
|
using XHandler.View.Liquids;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
using XCoreBLL;
|
using System.Collections;
|
using DataRWDalDrive.Model;
|
//using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
|
namespace XHandler.View
|
{
|
|
/// <summary>
|
/// LiquidManagement.xaml 的交互逻辑
|
/// </summary>
|
public partial class LiquidManagement : UserControl
|
{
|
|
ObservableCollection<LiquidItem> liquidCollection = new ObservableCollection<LiquidItem>();
|
List<DeviceArm> armList;
|
ObservableCollection<LiquidType> liquidTypes;
|
ObservableCollection<LiquidRange> liquidRanges;
|
public LiquidCaretaker liquidCaretaker = new LiquidCaretaker();
|
public OperateAuditLogBll operateAuditLogBll = new OperateAuditLogBll();
|
public LogAduitHelper logAduitHelper = new LogAduitHelper();
|
|
AspirateParam aspirateParam;
|
DispenseParam dispenseParam;
|
CalibrationParam calibrationParam;
|
|
TreeViewItem menuFocusItem;
|
LiquidItem copyLiquid;
|
|
List<RoleMenu> roleMenuAllList = null;
|
Liquid selectedLiquid { get; set; }
|
|
public delegate void LiquidsDelegate(string liquid_id, bool IsDelete);
|
public static event LiquidsDelegate loadLiquidsEvent;
|
|
public bool CanPaset { get; set; }
|
|
public LiquidManagement(List<RoleMenu> roleMenuAllList)
|
{
|
InitializeComponent();
|
|
GetLiquidTree();
|
|
armList = DataModule.getInstance().GetDeviceArm();
|
liquidTypes = DataModule.getInstance().GetLiquidTypes();
|
liquidRanges = DataModule.getInstance().GetLiquidRanges();
|
|
cbLiquidType.ItemsSource = liquidTypes;
|
cbLiquidRange.ItemsSource = liquidRanges;
|
cbLiquidArm.ItemsSource = armList;
|
|
this.roleMenuAllList = roleMenuAllList;
|
}
|
public void GetLiquidTree()
|
{
|
List<Liquid> liquidAlls = new List<Liquid>();
|
liquidCollection.Clear();
|
List<DeviceArm> deviceArms = DeviceArmDB.GetDeviceArmFromdb(Shared.SoftwareInformation.software_information_id);
|
ObservableCollection<LiquidType> liquidTypeList = LiquidTypeDB.GetLiquidTypeFromdb(2);
|
ObservableCollection<LiquidRange> liquidRangeList = LiquidRangeDB.GetLiquidRangeFromdb();
|
foreach (var type in liquidTypeList)
|
{
|
LiquidItem typeItem = new LiquidItem(LiquidNodeType.Type, type.liquid_type_id, type.liquid_type_name, (object)type, null);
|
foreach (var arm in deviceArms)
|
{
|
if (arm.channels == 0)
|
continue;
|
LiquidItem headItem = new LiquidItem(LiquidNodeType.Head, arm.device_arm_id.ToString(), arm.head_type, (object)arm, typeItem);
|
|
foreach (var range in liquidRangeList)
|
{
|
LiquidItem rangeItem = new LiquidItem(LiquidNodeType.Range, range.liquid_range_id, range.liquid_range_name, (object)range, headItem);
|
|
ObservableCollection<Liquid> liquids = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(type.liquid_type_id, range.liquid_range_id, arm.device_arm_id.ToString());
|
liquidAlls.AddRange(liquids);
|
foreach (var liquid in liquids)
|
{
|
LiquidItem liquidItem = new LiquidItem(LiquidNodeType.Liquid, liquid.liquid_id, liquid.liquid_name, (object)liquid, rangeItem);
|
liquidItem.nDefault = liquid.is_default_type;
|
if (item != null)
|
{
|
if (item.ID.Equals(liquidItem.ID))
|
{
|
liquidItem.IsSelected = true;
|
if(liquidItem.Parent!=null)
|
{
|
liquidItem.Parent.IsExpanded = true;
|
if(liquidItem.Parent.Parent!=null)
|
{
|
liquidItem.Parent.Parent.IsExpanded = true;
|
}
|
}
|
}
|
}
|
rangeItem.Children.Add(liquidItem);
|
}
|
if (headItem.Children.Count == 0)
|
rangeItem.IsExpanded = true;
|
if (rangeItem.Children.Count > 0)
|
{
|
rangeItem.IsExpanded = true;
|
headItem.Children.Add(rangeItem);
|
}
|
}
|
if (typeItem.Children.Count == 0)
|
headItem.IsExpanded = true;
|
typeItem.Children.Add(headItem);
|
}
|
if (liquidCollection.Count == 0)
|
typeItem.IsExpanded = true;
|
liquidCollection.Add(typeItem);
|
}
|
|
treeviewLiquid.ItemsSource = liquidCollection;
|
|
//添加耗材集合进入备忘录
|
LiquidMemento liquidMemento = new LiquidMemento(new ObservableCollection<Liquid>(liquidAlls));
|
liquidCaretaker.LiquidMementoDic.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), liquidMemento);
|
}
|
|
#region 获取最新的一条液体集备份
|
/// <summary>
|
/// 获取最新的一条液体集备份
|
/// </summary>
|
/// <returns></returns>
|
public LiquidMemento GetMaxKeyLiquidMemento(out string maxKey)
|
{
|
LiquidMemento oldLabwares = new LiquidMemento(null);
|
List<DateTime> dateKeys = new List<DateTime>();
|
foreach (KeyValuePair<string, LiquidMemento> d in liquidCaretaker.LiquidMementoDic)
|
{
|
dateKeys.Add(Convert.ToDateTime(d.Key.ToString()));
|
}
|
maxKey = dateKeys.Max().ToString("yyyy-MM-dd HH:mm:ss");
|
|
if (liquidCaretaker.LiquidMementoDic.TryGetValue(maxKey, out oldLabwares))
|
{
|
return oldLabwares;
|
}
|
return null;
|
}
|
#endregion
|
|
#region 观察者模式更新所有应用的液体参数
|
// 保存观察者液体参数列表
|
public List<ILiquidObserver> observers = new List<ILiquidObserver>();
|
|
public void AddObserver(ILiquidObserver ob)
|
{
|
observers.Add(ob);
|
}
|
|
public void RemoveObserver(ILiquidObserver ob)
|
{
|
observers.Remove(ob);
|
}
|
public void Update()
|
{
|
// 遍历订阅者列表进行通知
|
foreach (ILiquidObserver ob in observers)
|
{
|
if (ob != null)
|
{
|
ob.ReceiveAndUpdate(this);
|
}
|
}
|
}
|
#endregion
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
rbAspirateParam.IsChecked = true;
|
|
if (Shared.SoftwareInformation.software_device_number.Equals(DeviceCategory.DeviceHXELEC))
|
{
|
rbCelibrate.Visibility = Visibility.Hidden;
|
}
|
else
|
{
|
rbCelibrate.Visibility = Visibility.Visible;
|
}
|
|
string userid = UserDB.GetUserInfByUserName(Shared.User.username).id;
|
//所有菜单
|
List<RoleMenu> roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid);
|
//权限控制
|
var MenuLiquidManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuLiquidManage));
|
if (MenuLiquidManage != null)
|
{
|
var MenuLiquidEdit = MenuLiquidManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuEdit));
|
if (MenuLiquidEdit != null)
|
{
|
gdBaseLiquid.IsEnabled = true;
|
}
|
else
|
{
|
gdBaseLiquid.IsEnabled = false;
|
}
|
}
|
}
|
|
#region 吸液参数
|
private void rbAspirateParam_Checked(object sender, RoutedEventArgs e)
|
{
|
gridParam.Children.Clear();
|
if (aspirateParam == null)
|
{
|
aspirateParam = new AspirateParam(selectedLiquid);
|
}
|
else
|
{
|
if (selectedLiquid == null)
|
{
|
gridParam.Children.Add(aspirateParam);
|
return;
|
}
|
aspirateParam.SetLiquid(selectedLiquid);
|
}
|
gridParam.Children.Add(aspirateParam);
|
}
|
#endregion
|
|
#region 加液参数
|
private void rbDispenseParam_Checked(object sender, RoutedEventArgs e)
|
{
|
gridParam.Children.Clear();
|
if (dispenseParam == null)
|
dispenseParam = new DispenseParam(selectedLiquid);
|
else
|
{
|
if (selectedLiquid == null)
|
{
|
gridParam.Children.Add(dispenseParam);
|
return;
|
}
|
dispenseParam.SetLiquid(selectedLiquid);
|
}
|
gridParam.Children.Add(dispenseParam);
|
}
|
#endregion
|
|
#region 校准
|
private void rbCelibrate_Checked(object sender, RoutedEventArgs e)
|
{
|
gridParam.Children.Clear();
|
if (calibrationParam == null)
|
calibrationParam = new CalibrationParam(selectedLiquid);
|
else
|
{
|
if (selectedLiquid == null)
|
{
|
gridParam.Children.Add(calibrationParam);
|
return;
|
}
|
calibrationParam.SetLiquid(selectedLiquid);
|
}
|
gridParam.Children.Add(calibrationParam);
|
}
|
#endregion
|
|
private void treeviewLiquid_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
|
{
|
LiquidItem li = e.NewValue as LiquidItem;
|
if (li == null)
|
{
|
return;
|
}
|
|
if (li.nodeType == LiquidNodeType.Liquid)
|
{
|
if (selectedLiquid != null)
|
{
|
//li.data = selectedLiquid;
|
}
|
else
|
{
|
|
}
|
Liquid liquid = li.data as Liquid;
|
selectedLiquid = DeepCopyByReflection.Copy(liquid);
|
|
this.DataContext = selectedLiquid;
|
|
LiquidType type = liquidTypes.Where(x => x.liquid_type_id == selectedLiquid.liquid_type_id).FirstOrDefault();
|
cbLiquidType.SelectedItem = type;
|
LiquidRange range = liquidRanges.Where(x => x.liquid_range_id == selectedLiquid.liquid_range_id).FirstOrDefault();
|
cbLiquidRange.SelectedItem = range;
|
DeviceArm arm = armList.Where(x => (x.device_arm_id.ToString() == selectedLiquid.device_arm_id)).FirstOrDefault();
|
cbLiquidArm.SelectedItem = arm;
|
//判断是否是泵,如果是则只有加液参数
|
if(cbLiquidArm.SelectedValue.Equals(arm.device_arm_id)&& arm.head_type.Equals("泵"))
|
{
|
rbAspirateParam.Visibility= Visibility.Collapsed;
|
rbDispenseParam.IsChecked = true;
|
rbDispenseParam_Checked(sender, e);
|
}
|
else
|
{
|
rbAspirateParam.Visibility = Visibility.Visible;
|
rbAspirateParam.IsChecked = true;
|
aspirateParam.SetLiquid(selectedLiquid);
|
}
|
|
}
|
|
string userid = UserDB.GetUserInfByUserName(Shared.User.username).id;
|
//所有菜单
|
List<RoleMenu> roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid);
|
//权限控制
|
var MenuLiquidManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuLiquidManage));
|
if (MenuLiquidManage != null)
|
{
|
var MenuLiquidEdit = MenuLiquidManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuEdit));
|
if (MenuLiquidEdit != null)
|
{
|
aspirateParam.gdContent.IsEnabled = true;
|
}
|
else
|
{
|
aspirateParam.gdContent.IsEnabled = false;
|
}
|
}
|
}
|
|
private void menuCopy_Click(object sender, RoutedEventArgs e)
|
{
|
if (treeviewLiquid.SelectedItem == null)
|
return;
|
LiquidItem item = treeviewLiquid.SelectedItem as LiquidItem;
|
if (item.nodeType == LiquidNodeType.Liquid)
|
{
|
copyLiquid = treeviewLiquid.SelectedItem as LiquidItem;
|
|
MenuItem mi = e.Source as MenuItem;
|
ContextMenu menu = mi.Parent as ContextMenu;
|
MenuItem menuItem = menu.Items[1] as MenuItem;
|
menuItem.IsEnabled = true;
|
}
|
}
|
|
private void menuPaste_Click(object sender, RoutedEventArgs e)
|
{
|
if (treeviewLiquid.SelectedItem == null)
|
return;
|
|
if (copyLiquid == null)
|
return;
|
|
LiquidItem item = treeviewLiquid.SelectedItem as LiquidItem;
|
if (item.nodeType == LiquidNodeType.Liquid)
|
{
|
LiquidItem newItem = DeepCopyByReflection.Copy(copyLiquid);
|
Liquid liquid = newItem.data as Liquid;
|
liquid.liquid_name = copyLiquid.Name + " " + Properties.Resources.strCopy;
|
liquid.is_default_type = 0;
|
liquid.liquid_id = Guid.NewGuid().ToString();
|
liquid.timestamp = DateTime.Now;
|
|
newItem.Name = copyLiquid.Name + " " + Properties.Resources.strCopy;
|
newItem.nDefault = 0;
|
int iresult = LiquidDB.AddLiquidIntodb(liquid);
|
|
Hashtable hashtable = logAduitHelper.AddObj(liquid);
|
string operateContent = string.Empty;
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
|
if (iresult == 1)
|
{
|
LiquidTypeRSRange liquidTypeRSRange = new LiquidTypeRSRange();
|
liquidTypeRSRange.liquid_range_id = item.Parent.ID;
|
liquidTypeRSRange.liquid_type_id = item.ID;
|
liquidTypeRSRange.device_arm_id = Convert.ToInt32(item.Parent.Parent.ID);
|
liquidTypeRSRange.liquid_id = liquid.liquid_id;
|
liquidTypeRSRange.liquid_rs_status = 1;
|
int i = LiquidTypeRSRangeDB.AddLiquidTypeRSRangeIntodb(liquidTypeRSRange);
|
if (i == 1)
|
{
|
item.Children.Add(newItem);
|
|
if (loadLiquidsEvent != null)
|
{
|
loadLiquidsEvent("", false);
|
}
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加", operateContent, Shared.User.username,"液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "成功"));
|
}
|
}
|
else
|
{
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "失败"));
|
}
|
}
|
else if (item.nodeType == LiquidNodeType.Range)
|
{
|
LiquidItem newItem = DeepCopyByReflection.Copy(copyLiquid);
|
Liquid liquid = newItem.data as Liquid;
|
liquid.liquid_id = ComUtility.GetGuid();
|
liquid.liquid_name = copyLiquid.Name + " " + Properties.Resources.strCopy;
|
liquid.is_default_type = 0;
|
liquid.liquid_status = 1;
|
newItem.Name = copyLiquid.Name + " " + Properties.Resources.strCopy;
|
int iresult = LiquidDB.AddLiquidIntodb(liquid);
|
|
Hashtable hashtable = logAduitHelper.AddObj(liquid);
|
string operateContent = string.Empty;
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
newItem.nDefault = 0;
|
if (iresult == 1)
|
{
|
LiquidTypeRSRange liquidTypeRSRange = new LiquidTypeRSRange();
|
liquidTypeRSRange.liquid_range_id = item.ID;
|
liquidTypeRSRange.liquid_type_id = item.Parent.Parent.ID;
|
liquidTypeRSRange.device_arm_id = Convert.ToInt32(item.Parent.ID);
|
liquidTypeRSRange.liquid_id = liquid.liquid_id;
|
liquidTypeRSRange.liquid_rs_status = 1;
|
int i = LiquidTypeRSRangeDB.AddLiquidTypeRSRangeIntodb(liquidTypeRSRange);
|
if (i == 1)
|
{
|
item.Children.Add(newItem);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "成功"));
|
if (loadLiquidsEvent != null)
|
{
|
loadLiquidsEvent("", false);
|
}
|
}
|
}
|
else
|
{
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "失败"));
|
}
|
}
|
|
|
}
|
|
|
private void menuDelete_Click(object sender, RoutedEventArgs e)
|
{
|
if (selectedLiquid == null)
|
return;
|
PlsToolTipWin plsToolTipWin;
|
if (Shared.SoftwareInformation.currentculture== "zh-CN")
|
{
|
plsToolTipWin = new PlsToolTipWin("确定删除选中的液体参数吗? ");
|
}
|
else
|
{
|
plsToolTipWin = new PlsToolTipWin("Do you want to delete this liquid? ");
|
}
|
plsToolTipWin.Height = ActualHeight;
|
plsToolTipWin.Width = ActualWidth;
|
plsToolTipWin.btnClearData.Visibility = Visibility.Hidden;
|
plsToolTipWin.lauchView = null;
|
|
SolidColorBrush mybtn1_Brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0, 0, 0, 0));
|
plsToolTipWin.Background = (System.Windows.Media.Brush)mybtn1_Brush;
|
plsToolTipWin.ShowDialog();
|
if (plsToolTipWin.DialogResult == true)
|
{
|
//liquidCollection.Remove((LiquidItem)treeviewLiquid.SelectedItem);
|
int flag = LiquidDB.DeleteLiquidIntodb(selectedLiquid);
|
|
LiquidMemento oldLiquids = new LiquidMemento(null);
|
string maxKey = "";
|
oldLiquids = GetMaxKeyLiquidMemento(out maxKey);
|
string operateContent = string.Empty;
|
if (oldLiquids != null)
|
{
|
Liquid oldLiquid = oldLiquids.LiquidBack.SingleOrDefault(x => x.liquid_id.Equals(selectedLiquid.liquid_id));
|
Hashtable hashtable = logAduitHelper.LiquidDelObj(selectedLiquid);
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
if (flag > 0)
|
{
|
oldLiquids.LiquidBack.Remove(oldLiquid);
|
}
|
}
|
|
if (flag > 0)
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"液体:{((LiquidItem)treeviewLiquid.SelectedItem).Name}删除成功", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("删除", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + selectedLiquid.liquid_id + "]", "成功"));
|
GetLiquidTree();
|
if (loadLiquidsEvent != null)
|
{
|
loadLiquidsEvent(selectedLiquid.liquid_id, true);
|
}
|
}
|
else
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"液体:{((LiquidItem)treeviewLiquid.SelectedItem).Name}删除失败", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("删除", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + selectedLiquid.liquid_id + "]", "失败"));
|
}
|
MainWindow mainWindow = ((MainWindow)Application.Current.MainWindow);
|
mainWindow.liquidManagement.Update();
|
}
|
}
|
|
private void menuEdit_Click(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void PlsSetProperty_closeEvent(object sender, EventArgs e)
|
{
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
UIElement element = sender as UIElement;
|
grid.Children.Remove(element);
|
}
|
|
/*
|
private void menuNew_Click(object sender, RoutedEventArgs e)
|
{
|
if (menuFocusItem == null)
|
return;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
|
LiquidItem li = menuFocusItem.DataContext as LiquidItem;
|
if (li.nodeType == LiquidNodeType.Type)
|
{
|
NewLiquidType newLiquidType = new NewLiquidType();
|
newLiquidType.closeEvent += NewLiquidType_closeEvent; ;
|
newLiquidType.OKEvent += NewLiquidType_OKEvent;
|
parent.Children.Add(newLiquidType);
|
}
|
}
|
|
private void NewLiquidType_OKEvent(object sender, CustomRoutedEventArgs<string> e)
|
{
|
string name = e.param as string;
|
LiquidType lt = new LiquidType();
|
lt.liquid_type_id = Guid.NewGuid().ToString();
|
lt.liquid_type_name = name;
|
lt.liquid_type_name_en = name;
|
lt.is_default_type = 0;
|
lt.liquid_type_status = "1";
|
int ret = LiquidTypeDB.AddLiquidTypeIntodb(lt);
|
if(ret>0)
|
{
|
LiquidItem typeItem = new LiquidItem(LiquidNodeType.Type, lt.liquid_type_id, name, lt);
|
liquidCollection.Add(typeItem);
|
|
foreach (var arm in armList)
|
{
|
if (arm.channels == 0)
|
continue;
|
LiquidItem headItem = new LiquidItem(LiquidNodeType.Head, arm.device_arm_id.ToString(), arm.head_type, (object)arm);
|
|
foreach (var range in liquidRanges)
|
{
|
LiquidItem rangeItem = new LiquidItem(LiquidNodeType.Range, range.liquid_range_id, range.liquid_range_name, (object)range);
|
headItem.Children.Add(rangeItem);
|
}
|
typeItem.Children.Add(headItem);
|
}
|
}
|
}
|
|
private void NewLiquidType_closeEvent(object sender, EventArgs e)
|
{
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
UIElement element = sender as UIElement;
|
grid.Children.Remove(element);
|
}
|
*/
|
|
|
private void TreeViewItem_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
|
{
|
TreeViewItem item = GetTemplatedAncestor<TreeViewItem>(e.OriginalSource as FrameworkElement);
|
if (item == null)
|
return;
|
|
item.IsSelected = true;
|
LiquidItem li = item.DataContext as LiquidItem;
|
ContextMenu menu = FindResource("liquidMenu") as ContextMenu;
|
if (li.nodeType == LiquidNodeType.Liquid)
|
{
|
MenuItem mi = menu.Items[0] as MenuItem;
|
//权限控制
|
var MenuLiquidManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuLiquidManage));
|
if (MenuLiquidManage != null)
|
{
|
var MenuLiquidCopy = MenuLiquidManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuCopy));
|
if (MenuLiquidCopy != null)
|
{
|
mi.IsEnabled = true;
|
}
|
else
|
{
|
mi.IsEnabled = false;
|
}
|
}
|
|
mi = menu.Items[1] as MenuItem;
|
if (copyLiquid == null)
|
mi.IsEnabled = false;
|
else
|
mi.IsEnabled = true;
|
|
Liquid liquid = li.data as Liquid;
|
if (liquid.is_default_type == 1)
|
{
|
mi = menu.Items[2] as MenuItem;
|
mi.IsEnabled = false;
|
}
|
else
|
{
|
mi = menu.Items[2] as MenuItem;
|
//权限控制
|
if (MenuLiquidManage != null)
|
{
|
var MenuLiquidDelete = MenuLiquidManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuDelete));
|
if (MenuLiquidDelete != null)
|
{
|
mi.IsEnabled = true;
|
}
|
else
|
{
|
mi.IsEnabled = false;
|
}
|
}
|
selectedLiquid = liquid;
|
}
|
|
}
|
else if (li.nodeType == LiquidNodeType.Range)
|
{
|
MenuItem mi = menu.Items[0] as MenuItem;
|
mi.IsEnabled = false;
|
mi = menu.Items[1] as MenuItem;
|
if (copyLiquid == null)
|
mi.IsEnabled = false;
|
else
|
mi.IsEnabled = true;
|
mi = menu.Items[2] as MenuItem;
|
mi.IsEnabled = false;
|
}
|
else
|
{
|
MenuItem mi = menu.Items[0] as MenuItem;
|
mi.IsEnabled = false;
|
mi = menu.Items[1] as MenuItem;
|
mi.IsEnabled = false;
|
mi = menu.Items[2] as MenuItem;
|
mi.IsEnabled = false;
|
}
|
}
|
|
private static T GetTemplatedAncestor<T>(FrameworkElement element) where T : FrameworkElement
|
{
|
if (element is T)
|
{
|
return element as T;
|
}
|
|
FrameworkElement templatedParent = element.TemplatedParent as FrameworkElement;
|
if (templatedParent != null)
|
{
|
return GetTemplatedAncestor<T>(templatedParent);
|
}
|
|
return null;
|
}
|
|
private void cbLiquidType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (selectedLiquid == null)
|
return;
|
selectedLiquid.liquid_type_id = cbLiquidType.SelectedValue.ToString();
|
}
|
|
private void cbLiquidRange_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (selectedLiquid == null)
|
return;
|
selectedLiquid.liquid_range_id = cbLiquidRange.SelectedValue.ToString();
|
}
|
|
private void cbLiquidArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (selectedLiquid == null)
|
return;
|
selectedLiquid.device_arm_id = cbLiquidArm.SelectedValue.ToString();
|
}
|
|
LiquidItem item = null;
|
public void SaveLiquid()
|
{
|
if (selectedLiquid == null)
|
return;
|
if (selectedLiquid.is_default_type == 1)
|
return;
|
selectedLiquid.liquid_category = selectedLiquid.liquid_type_id;
|
selectedLiquid.liquid_volume_type = selectedLiquid.liquid_range_id;
|
Liquid liquid = selectedLiquid as Liquid;
|
//liquid.Copy(selectedLiquid);
|
int flag = LiquidDB.UpdateLiquidIntodb(liquid);
|
|
LiquidMemento oldLiquids = new LiquidMemento(null);
|
string maxKey = "";
|
oldLiquids = GetMaxKeyLiquidMemento(out maxKey);
|
string operateContent = string.Empty;
|
if (oldLiquids != null)
|
{
|
Liquid oldLiquid = oldLiquids.LiquidBack.SingleOrDefault(x => x.liquid_id.Equals(liquid.liquid_id));
|
if (oldLiquid != null)
|
{
|
Hashtable hashtable = logAduitHelper.diffObj(oldLiquid, liquid);
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
if (flag > 0)
|
{
|
oldLiquids.LiquidBack.Remove(oldLiquid);
|
Liquid newliquid = new Liquid();
|
newliquid = DeepCopyByReflection.Copy(liquid);
|
oldLiquids.LiquidBack.Add(newliquid);
|
}
|
}
|
}
|
if (flag > 0)
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"液体:{liquid.liquid_name} 保存成功", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
System.Windows.Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("修改", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "成功"));
|
}
|
else
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"液体:{liquid.liquid_name} 保存失败", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
System.Windows.Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("修改", operateContent, Shared.User.username, "液体管理", "", "", "液体[id:" + liquid.liquid_id + "]", "失败"));
|
}
|
|
LiquidTypeRSRange liquidTypeRSRange = new LiquidTypeRSRange();
|
liquidTypeRSRange.liquid_rs_status = 1;
|
liquidTypeRSRange.liquid_id = selectedLiquid.liquid_id;
|
liquidTypeRSRange.liquid_range_id = selectedLiquid.liquid_range_id;
|
liquidTypeRSRange.liquid_type_id = selectedLiquid.liquid_type_id;
|
liquidTypeRSRange.device_arm_id = Convert.ToInt32(selectedLiquid.device_arm_id);
|
//LiquidTypeRSRangeDB.UpdateLiquidTypeRSRangeByLiquidIdIntodb(liquidTypeRSRange);
|
//GetLiquidTree();
|
if (treeviewLiquid.SelectedItem != null)
|
{
|
((LiquidItem)treeviewLiquid.SelectedItem).Name = selectedLiquid.liquid_name;
|
|
LiquidItem i = (LiquidItem)treeviewLiquid.SelectedItem;
|
item = i;
|
|
Liquid liquid01 = i.data as Liquid;
|
if (liquid01 != null)
|
{
|
if (liquid01.liquid_id == liquid.liquid_id)
|
{
|
i.data = selectedLiquid;//i.Copy(liquid);
|
}
|
}
|
}
|
if (calibrationParam != null)
|
{
|
calibrationParam.saveCalibrationParam();
|
}
|
|
GetLiquidTree();
|
}
|
|
}
|
}
|