259 lines
6.3 KiB
C#
259 lines
6.3 KiB
C#
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|||
|
|
using CommunityToolkit.Mvvm.Input;
|
|||
|
|
using Models.Const;
|
|||
|
|
using Models.Models;
|
|||
|
|
using SamplePre.ProcessBll.BLL;
|
|||
|
|
using SamplePre.UIWpf.ParamManager.chirld;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.ComponentModel;
|
|||
|
|
using System.Data;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Runtime.CompilerServices;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Windows;
|
|||
|
|
using System.Windows.Controls;
|
|||
|
|
|
|||
|
|
namespace SamplePreSystem.UI.ViewModel.SopManager
|
|||
|
|
{
|
|||
|
|
public partial class ParamManagerViewModel : ObservableObject
|
|||
|
|
{
|
|||
|
|
SysParamBll sysParamBll = new SysParamBll();
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public ParamManagerViewModel()
|
|||
|
|
{
|
|||
|
|
//初始化标准
|
|||
|
|
InitParamData();
|
|||
|
|
|
|||
|
|
BangdingUnit();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 参数列表
|
|||
|
|
/// </summary>
|
|||
|
|
[ObservableProperty]
|
|||
|
|
public List<sys_parm> sysParams = new List<sys_parm>();
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 选中的参数行
|
|||
|
|
/// </summary>
|
|||
|
|
[ObservableProperty]
|
|||
|
|
public sys_parm selectItem = new sys_parm();
|
|||
|
|
|
|||
|
|
List<sys_parm> allSysParams = new List<sys_parm>();
|
|||
|
|
|
|||
|
|
public void InitParamData()
|
|||
|
|
{
|
|||
|
|
allSysParams = sysParamBll.QuerySysParm()?.OrderBy(p => p.plc_type).ToList();
|
|||
|
|
|
|||
|
|
|
|||
|
|
OnFilterTypeChange();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 参数类型
|
|||
|
|
/// </summary>
|
|||
|
|
[ObservableProperty]
|
|||
|
|
public List<string> dataTypes = new List<string> { "通用", "耗材", "液体" };
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 过滤类型
|
|||
|
|
/// </summary>
|
|||
|
|
private string filterType = "通用";
|
|||
|
|
|
|||
|
|
public string FilterType
|
|||
|
|
{
|
|||
|
|
get { return filterType; }
|
|||
|
|
set {
|
|||
|
|
|
|||
|
|
SetProperty(ref filterType, value);
|
|||
|
|
|
|||
|
|
OnFilterTypeChange();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void OnFilterTypeChange()
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(FilterType))
|
|||
|
|
{
|
|||
|
|
SysParams = allSysParams;
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SysParams = allSysParams.Where(p => p.param_type == FilterType).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 单位列表
|
|||
|
|
/// </summary>
|
|||
|
|
[ObservableProperty]
|
|||
|
|
public List<sys_dict> units = new List<sys_dict>();
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void BangdingUnit()
|
|||
|
|
{
|
|||
|
|
Units = SystemConst.dictDatas.Where(p => p.class_id == 4).ToList();
|
|||
|
|
|
|||
|
|
//cmbUnit.BindingData<sys_dict>(units, "data_value", "id");
|
|||
|
|
//cmbUnit.SelectedIndex = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 参数值绑定
|
|||
|
|
/// </summary>
|
|||
|
|
[ObservableProperty]
|
|||
|
|
public sys_parm sysParm = new sys_parm();
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存参数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public bool SaveParam()
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(SysParm.title) || string.IsNullOrEmpty(SysParm.data_value))
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("内容不能为空");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (string.IsNullOrEmpty(SysParm.param_type))
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("参数类型不能为空");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (SysParm.data_type == "数值")
|
|||
|
|
{
|
|||
|
|
string val = SysParm.data_value;
|
|||
|
|
if (float.TryParse(val, out _) == false)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("参数值格式不正确,请重新修改!");
|
|||
|
|
SysParm.data_value = "0";
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (SysParm != null && !string.IsNullOrEmpty(SysParm.id))
|
|||
|
|
{
|
|||
|
|
//修改
|
|||
|
|
sysParamBll.UpdateSysParm(SysParm);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//判断plc编码是否重复
|
|||
|
|
if (sysParamBll.IsExtisPlCcode(SysParm.plc_type))
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("存在相同plc编码,不能保存!");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//新增
|
|||
|
|
SysParm.id = Guid.NewGuid().ToString();
|
|||
|
|
|
|||
|
|
sysParamBll.SaveSysParm(SysParm);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//刷新参数列表
|
|||
|
|
InitParamData();
|
|||
|
|
OnFilterTypeChange();
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除参数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public bool DelParam()
|
|||
|
|
{
|
|||
|
|
sys_parm parm = SelectItem;
|
|||
|
|
string id = parm.id;
|
|||
|
|
string title = parm.title;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (MessageBox.Show($"确定删除:{title}", "提示",MessageBoxButton.OKCancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
//判断该参数是否已经被使用
|
|||
|
|
if (IsDelete(id) == false)
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
sysParamBll.DelSysParm(id);
|
|||
|
|
|
|||
|
|
//刷新参数列表
|
|||
|
|
InitParamData();
|
|||
|
|
OnFilterTypeChange();
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
private bool IsDelete(string parmId)
|
|||
|
|
{
|
|||
|
|
bool isExit = sysParamBll.IsExtisActionParam(parmId);
|
|||
|
|
if (isExit)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("该参数已经被使用,不能删除!");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 新增参数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sender"></param>
|
|||
|
|
/// <param name="e"></param>
|
|||
|
|
[RelayCommand]
|
|||
|
|
public void BtnAddParamClick()
|
|||
|
|
{
|
|||
|
|
SysParm = new sys_parm();
|
|||
|
|
NewStandParmWindow frm = new NewStandParmWindow(this);
|
|||
|
|
frm.ShowDialog();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 编辑参数
|
|||
|
|
/// </summary>
|
|||
|
|
[RelayCommand]
|
|||
|
|
public void BtnEditClick()
|
|||
|
|
{
|
|||
|
|
SysParm = SelectItem;
|
|||
|
|
|
|||
|
|
NewStandParmWindow frm = new NewStandParmWindow(this);
|
|||
|
|
frm.ShowDialog();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除参数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sender"></param>
|
|||
|
|
/// <param name="e"></param>
|
|||
|
|
[RelayCommand]
|
|||
|
|
private void BtnDelParamClick()
|
|||
|
|
{
|
|||
|
|
DelParam();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|