|
|
|
@ -1,13 +1,56 @@ |
|
|
|
|
namespace SparkClient.ViewModel.Configuration; |
|
|
|
|
using Newtonsoft.Json; |
|
|
|
|
using Newtonsoft.Json.Converters; |
|
|
|
|
using SparkClient.Model.Helper; |
|
|
|
|
using System.Data; |
|
|
|
|
using System.IO; |
|
|
|
|
using System.Windows.Controls; |
|
|
|
|
using System.Windows.Data; |
|
|
|
|
using System.Windows.Input; |
|
|
|
|
|
|
|
|
|
public class LevelConfigVM: BaseViewModel |
|
|
|
|
namespace SparkClient.ViewModel.Configuration; |
|
|
|
|
|
|
|
|
|
public class LevelConfigVM : BaseViewModel |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
public List<String> _levels; |
|
|
|
|
public List<String> Levels { get { return _levels; } set { _levels = value; OnPropertyChanged("Levels"); } } |
|
|
|
|
public LevelConfigVM() |
|
|
|
|
public ICommand ChangeShapeModelCommand { get; } |
|
|
|
|
public ICommand ChangeInstituteModelCommand { get; } |
|
|
|
|
public ICommand LoadLevelConfigCommand { get; } |
|
|
|
|
public ICommand DelLevelConfigCommand { get; } |
|
|
|
|
public ICommand SaveLevelConfigCommand { get; } |
|
|
|
|
|
|
|
|
|
private DataTable _institutes; |
|
|
|
|
public DataTable Institutes { get { return _institutes; } set { _institutes = value; OnPropertyChanged("Institutes"); } } |
|
|
|
|
private DataTable _shapes; |
|
|
|
|
public DataTable Shapes { get { return _shapes; } set { _shapes = value; OnPropertyChanged("Shapes"); } } |
|
|
|
|
|
|
|
|
|
private string _instituteId; |
|
|
|
|
public string InstituteId { get { return _instituteId; } set { _instituteId = value; OnPropertyChanged("InstituteId"); } } |
|
|
|
|
|
|
|
|
|
private string _shapeId; |
|
|
|
|
public string ShapeId { get { return _shapeId; } set { _shapeId = value; OnPropertyChanged("ShapeId"); } } |
|
|
|
|
|
|
|
|
|
private DataTable _standardList; |
|
|
|
|
public DataTable StandardList { get { return _standardList; } set { _standardList = value; OnPropertyChanged("StandardList"); } } |
|
|
|
|
DataGrid dataGrid; |
|
|
|
|
private string GRADE_NAME = string.Empty; |
|
|
|
|
|
|
|
|
|
private string STANDARD_NAME = string.Empty; |
|
|
|
|
|
|
|
|
|
private bool _institutesEnabled = true; |
|
|
|
|
public bool InstitutesEnabled { get { return _institutesEnabled; } set { _institutesEnabled = value; OnPropertyChanged("InstitutesEnabled"); } } |
|
|
|
|
private bool _shapesEnabled = true; |
|
|
|
|
public bool ShapesEnabled { get { return _shapesEnabled; } set { _shapesEnabled = value; OnPropertyChanged("ShapesEnabled"); } } |
|
|
|
|
public LevelConfigVM(DataGrid dataGrid) |
|
|
|
|
{ |
|
|
|
|
_levels = new List<string>(){"12314", "3455623", "4567894"}; |
|
|
|
|
if (dataGrid == null) return; |
|
|
|
|
this.dataGrid = dataGrid; |
|
|
|
|
GRADE_NAME = "GRADE_NAME"; |
|
|
|
|
STANDARD_NAME = "STANDARD_NAME"; |
|
|
|
|
ChangeShapeModelCommand = new RelayCommand(ChangeShapeModel); |
|
|
|
|
ChangeInstituteModelCommand = new RelayCommand(ChangeInstituteModel); |
|
|
|
|
LoadLevelConfigCommand = new RelayCommand(LoadLevelConfig); |
|
|
|
|
DelLevelConfigCommand = new RelayCommand(DelLevelConfig); |
|
|
|
|
SaveLevelConfigCommand = new RelayCommand(SaveLevelConfig); |
|
|
|
|
InitLevelConfig(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
@ -16,9 +59,112 @@ public class LevelConfigVM: BaseViewModel |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void InitLevelConfig(object param) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
dataGrid.Columns.Clear(); |
|
|
|
|
string shapeSql = @"SELECT * FROM SHAPE;"; |
|
|
|
|
_shapes = DataBaseHelper.ExecuteQuery(shapeSql); |
|
|
|
|
if (_shapes!= null) { |
|
|
|
|
_shapeId = _shapes.AsEnumerable().FirstOrDefault()["SHAPE_ID"].ToString(); |
|
|
|
|
_instituteId = setInstitutes(_shapeId); |
|
|
|
|
setDataGrid(_shapeId, _instituteId); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
private string setInstitutes(string id) |
|
|
|
|
{ |
|
|
|
|
string insituteSql = @"SELECT * FROM INSTITUTE WHERE SHAPE_ID = " + id+";"; |
|
|
|
|
_institutes = DataBaseHelper.ExecuteQuery(insituteSql); |
|
|
|
|
return _institutes.AsEnumerable().FirstOrDefault()["INSTITUTE_ID"].ToString(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setDataGrid(string shapeId, string instituteId) |
|
|
|
|
{ |
|
|
|
|
string gradeSql = $"SELECT * FROM GRADE WHERE SHAPE_ID = '{shapeId}' AND INSTITUTE_ID = '{instituteId}' ORDER BY GRADE_ORDER;"; |
|
|
|
|
DataTable columnInfos = DataBaseHelper.ExecuteQuery(gradeSql); |
|
|
|
|
|
|
|
|
|
string standardSql = $"SELECT * FROM STANDARD WHERE SHAPE_ID = '{shapeId}' AND INSTITUTE_ID = '{instituteId}' ORDER BY SORT, GRADE_ID;"; |
|
|
|
|
DataTable rowInfos = DataBaseHelper.ExecuteQuery(standardSql); |
|
|
|
|
setStandardList(columnInfos, rowInfos); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setStandardList(DataTable gradeList, DataTable standardList) |
|
|
|
|
{ |
|
|
|
|
dataGrid.Columns.Clear(); |
|
|
|
|
if (gradeList != null) |
|
|
|
|
{ |
|
|
|
|
StandardList = new DataTable(); |
|
|
|
|
|
|
|
|
|
List<DataColumn> columns = new List<DataColumn>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
{ |
|
|
|
|
if (columns.Count == 0) |
|
|
|
|
{ |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString())); |
|
|
|
|
this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString()) }); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
columns.Insert(0, new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN")); |
|
|
|
|
this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN") }); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX")); |
|
|
|
|
this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX") }); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
columns.Insert(0, new DataColumn("title")); |
|
|
|
|
this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = "参数 \\ 切工等级", Binding = new Binding("title") }); |
|
|
|
|
StandardList.Columns.AddRange(columns.ToArray()); |
|
|
|
|
// 以标准名分组表示每一行 |
|
|
|
|
if (standardList != null) |
|
|
|
|
{ |
|
|
|
|
var standards = standardList.AsEnumerable().GroupBy(r => r[STANDARD_NAME].ToString()); |
|
|
|
|
foreach (var standard in standards) |
|
|
|
|
{ |
|
|
|
|
List<string> rowInfo = new List<string>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
{ |
|
|
|
|
if (rowInfo.Count == 0) |
|
|
|
|
{ |
|
|
|
|
// 每一行单元格内数据 |
|
|
|
|
var row = standard.Where(s => s["GRADE_ID"].ToString() == columnInfo["GRADE_ID"].ToString()).FirstOrDefault(); |
|
|
|
|
rowInfo.Add( |
|
|
|
|
row["MIN_PREFIX"].ToString() + |
|
|
|
|
row["STANDARD_MIN"].ToString() + row["UNIT"].ToString() + "-" |
|
|
|
|
+ row["STANDARD_MAX"].ToString() + row["UNIT"].ToString() |
|
|
|
|
+ row["MIN_SUFFIX"].ToString() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
// 每一行单元格内数据 |
|
|
|
|
var row = standard.Where(s => s["GRADE_ID"].ToString() == columnInfo["GRADE_ID"].ToString()).FirstOrDefault(); |
|
|
|
|
if (row["STANDARD_MIN"] == null || row["STANDARD_MIN"].ToString() == "") |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, row["MIN_PREFIX"].ToString() + row["MIN_NULL_REPALCE"].ToString() + row["MIN_SUFFIX"].ToString()); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, row["MIN_PREFIX"].ToString() + row["STANDARD_MIN"].ToString() + row["UNIT"].ToString() + row["MIN_SUFFIX"].ToString()); |
|
|
|
|
} |
|
|
|
|
if (row["STANDARD_MAX"] == null || row["STANDARD_MAX"].ToString() == "") |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(row["MAX_PREFIX"].ToString() + |
|
|
|
|
row["MAX_NULL_REPALCE"].ToString() |
|
|
|
|
+ row["MAX_SUFFIX"].ToString()); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(row["MAX_PREFIX"].ToString() + |
|
|
|
|
row["STANDARD_MAX"].ToString() + row["UNIT"].ToString() |
|
|
|
|
+ row["MAX_SUFFIX"].ToString()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
rowInfo.Insert(0, standard.Key); |
|
|
|
|
var showRow = StandardList.NewRow(); |
|
|
|
|
showRow.ItemArray = rowInfo.ToArray(); |
|
|
|
|
StandardList.Rows.Add(showRow); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/// <summary> |
|
|
|
|
/// 更新保存响应 |
|
|
|
|
/// </summary> |
|
|
|
@ -33,6 +179,7 @@ public class LevelConfigVM: BaseViewModel |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void DelLevelConfig(object param) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
@ -41,14 +188,130 @@ public class LevelConfigVM: BaseViewModel |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void LoadLevelConfig(object param) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
InstitutesEnabled = false; |
|
|
|
|
ShapesEnabled = false; |
|
|
|
|
Info info = null; |
|
|
|
|
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); |
|
|
|
|
openFileDialog.Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*"; |
|
|
|
|
if (openFileDialog.ShowDialog() == true) |
|
|
|
|
{ |
|
|
|
|
string filename = openFileDialog.FileName; |
|
|
|
|
string content = ""; |
|
|
|
|
if (File.Exists(filename)) |
|
|
|
|
{ |
|
|
|
|
content = AESHelper.DecryptFile(filename, "000000"); |
|
|
|
|
info = JsonConvert.DeserializeObject<Info>(content); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if (info != null) |
|
|
|
|
{ |
|
|
|
|
// 形状列表重新生成 |
|
|
|
|
string shapeSql = $"SELECT * FROM SHAPE WHERE SHAPE_NAME = '{info.SHAPE_NAME}';"; |
|
|
|
|
DataTable shapes = DataBaseHelper.ExecuteQuery(shapeSql); |
|
|
|
|
if (shapes == null || shapes.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
shapes = new DataTable(); |
|
|
|
|
shapes.Columns.Add("SHAPE_NAME"); |
|
|
|
|
shapes.Columns.Add("SHAPE_EN_NAME"); |
|
|
|
|
shapes.Columns.Add("SHAPE_ID"); |
|
|
|
|
shapes.Rows.Add(info.SHAPE_NAME, info.SHAPE_EN_NAME, ""); |
|
|
|
|
Shapes = shapes; |
|
|
|
|
ShapeId = ""; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
ShapeId = shapes.AsEnumerable().FirstOrDefault()["SHAPE_ID"].ToString(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 机构列表重新生成 |
|
|
|
|
string instituteSql = $"SELECT * FROM INSTITUTE WHERE INSTITUTE_NAME = '{info.INSTITUTE_NAME}';"; |
|
|
|
|
DataTable institute = DataBaseHelper.ExecuteQuery(instituteSql); |
|
|
|
|
if (institute == null || institute.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
institute = new DataTable(); |
|
|
|
|
institute.Columns.Add("INSTITUTE_NAME"); |
|
|
|
|
institute.Columns.Add("INSTITUTE_EN_NAME"); |
|
|
|
|
institute.Columns.Add("INSTITUTE_ID"); |
|
|
|
|
institute.Rows.Add(info.INSTITUTE_NAME, info.INSTITUTE_EN_NAME, ""); |
|
|
|
|
Institutes = institute; |
|
|
|
|
InstituteId = ""; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
InstituteId = institute.AsEnumerable().FirstOrDefault()["INSTITUTE_ID"].ToString(); |
|
|
|
|
} |
|
|
|
|
// 表格内容重新生成 |
|
|
|
|
string gradeInfosJson = JsonConvert.SerializeObject(info.gradeInfos); |
|
|
|
|
DataTable gradeInfos = Common.JsonToDataTable(gradeInfosJson); |
|
|
|
|
string standardInfosJson = JsonConvert.SerializeObject(info.standardInfos); |
|
|
|
|
DataTable standardInfos = Common.JsonToDataTable(standardInfosJson); |
|
|
|
|
|
|
|
|
|
setStandardList(gradeInfos, standardInfos); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 切换定级响应 |
|
|
|
|
/// 切换规则响应 |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void ChangeLevelModel(object param) |
|
|
|
|
public void ChangeInstituteModel(object param) |
|
|
|
|
{ |
|
|
|
|
dataGrid.Columns.Clear(); |
|
|
|
|
setDataGrid(ShapeId, InstituteId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 切换形状响应 |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void ChangeShapeModel(object param) |
|
|
|
|
{ |
|
|
|
|
setInstitutes(ShapeId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class Info |
|
|
|
|
{ |
|
|
|
|
public string SHAPE_NAME { get; set; } |
|
|
|
|
|
|
|
|
|
public string SHAPE_EN_NAME { get; set; } |
|
|
|
|
|
|
|
|
|
public string INSTITUTE_NAME { get; set; } |
|
|
|
|
|
|
|
|
|
public string INSTITUTE_EN_NAME { get; set; } |
|
|
|
|
|
|
|
|
|
public List<GradeInfo> gradeInfos { get; set; } |
|
|
|
|
|
|
|
|
|
public List<StandardInfo> standardInfos { get; set; } |
|
|
|
|
} |
|
|
|
|
class GradeInfo |
|
|
|
|
{ |
|
|
|
|
public int GRADE_ID { get; set; } |
|
|
|
|
public string GRADE_NAME { get; set; } |
|
|
|
|
public string GRADE_EN_NAME { get; set; } |
|
|
|
|
public string GRADE_EN_S_NAME { get; set; } |
|
|
|
|
public int GRADE_ORDER { get; set; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class StandardInfo |
|
|
|
|
{ |
|
|
|
|
public int GRADE_ID { get; set; } |
|
|
|
|
public int STANDARD_ID { get; set; } |
|
|
|
|
public string STANDARD_NAME { get; set; } |
|
|
|
|
public string STANDARD_EN_NAME { get; set; } |
|
|
|
|
public string STANDARD_MIN { get; set; } |
|
|
|
|
public string STANDARD_MAX { get; set; } |
|
|
|
|
public string IS_MIN_EXIST { get; set; } = "0"; |
|
|
|
|
public string IS_MAX_EXIST { get; set; } = "0"; |
|
|
|
|
public string UNIT { get; set; } |
|
|
|
|
public string MIN_PREFIX { get; set; } |
|
|
|
|
public string MIN_SUFFIX { get; set; } |
|
|
|
|
public string MAX_PREFIX { get; set; } |
|
|
|
|
public string MAX_SUFFIX { get; set; } |
|
|
|
|
public string MIN_NULL_REPALCE { get; set; } = "←"; |
|
|
|
|
public string MAX_NULL_REPALCE { get; set; } = "→"; |
|
|
|
|
public int SORT { get; set; } |
|
|
|
|
} |
|
|
|
|
} |