You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
7.1 KiB
168 lines
7.1 KiB
using BrilliantSightClient.ViewModel.Grading; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Data; |
|
using System.Linq; |
|
using System.Reflection; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows.Documents; |
|
using System.Windows.Shapes; |
|
using BrilliantSightClient.Model.GradeResult.Entity; |
|
|
|
namespace BrilliantSightClient.Model.Entity |
|
{ |
|
/// <summary> |
|
/// 定级配置导入数据 |
|
/// </summary> |
|
public class JsonEntity |
|
{ |
|
public string SHAPE_ID { get; set; } |
|
public string SHAPE_NAME { get; set; } |
|
public string SHAPE_EN_NAME { get; set; } |
|
public string RULE_ID { get; set; } |
|
public string RULE_NAME { get; set; } |
|
public string RULE_EN_NAME { get; set; } |
|
public List<GradeInfo> gradeInfos { get; set; } = new List<GradeInfo>(); |
|
public List<StandardInfo> standardInfos { get; set; } = new List<StandardInfo>(); |
|
public virtual IEnumerable<GradeConfigInfo> GradeConfigs { get; set; } = new List<GradeConfigInfo>(); |
|
public virtual IEnumerable<GradeConfigDetail> GradeConfigDetails { get; set; } = new List<GradeConfigDetail>(); |
|
public virtual IEnumerable<GradeConfigParameter> GradeConfigParameters { get; set; } = new List<GradeConfigParameter>(); |
|
|
|
// 辅助方法:生成插入 SQL 语句 |
|
internal static string GenerateInsertSql(string tableName, string[] columns, string[] values) |
|
{ |
|
var columnList = string.Join(",", columns); |
|
var valueList = string.Join(",", values.Select(v => $"'{EscapeSql(v)}'")); |
|
return $"INSERT INTO {tableName}({columnList}) VALUES({valueList});"; |
|
} |
|
|
|
// 辅助方法:生成删除 SQL 语句 |
|
internal static string GenerateDeleteSql(string tableName, string condition) |
|
{ |
|
return $"DELETE FROM {tableName} WHERE {condition};"; |
|
} |
|
|
|
// 辅助方法:转义 SQL 特殊字符 |
|
internal static string EscapeSql(string input) |
|
{ |
|
return input?.Replace("'", "''") ?? null; |
|
} |
|
} |
|
|
|
public class GradeInfo |
|
{ |
|
public string SHAPE_ID { get; set; } |
|
public string RULE_ID { get; set; } |
|
public string 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; } |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getInsertSql() |
|
{ |
|
return JsonEntity.GenerateInsertSql("GRADE", new[] { "SHAPE_ID", "RULE_ID", "GRADE_ID", "GRADE_NAME", "GRADE_EN_NAME", "GRADE_EN_S_NAME", "GRADE_ORDER", "GUID" }, |
|
new[] { SHAPE_ID, RULE_ID, GRADE_ID, GRADE_NAME, GRADE_EN_NAME, GRADE_EN_S_NAME, GRADE_ORDER.ToString(), Guid.NewGuid().ToString() }); |
|
} |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getDeleteSql() |
|
{ |
|
return JsonEntity.GenerateDeleteSql("GRADE", $"SHAPE_ID='{JsonEntity.EscapeSql(SHAPE_ID)}' AND RULE_ID='{JsonEntity.EscapeSql(RULE_ID)}'"); |
|
} |
|
} |
|
|
|
public class StandardInfo |
|
{ |
|
public string RULE_ID { get; set; } = ""; |
|
public string GRADE_ID { get; set; } |
|
public string GRADE_ORDER { get { return GRADE_ID.Substring(GRADE_ID.Length - 1); } set { } } |
|
public string TEST_ITEM_ID { get; set; } |
|
public string STANDARD_ID { get; set; } |
|
public string STANDARD_NAME { get; set; } |
|
public string STANDARD_EN_NAME { get { return getStandEnName(); } 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; } |
|
|
|
private string getStandEnName() |
|
{ |
|
return Name.getNameById(TEST_ITEM_ID).Trim(); |
|
} |
|
} |
|
|
|
public class GradeConfigInfo |
|
{ |
|
public string GRADE_CONFIG_ID { get; set; } |
|
public string SHAPE_ID { get; set; } |
|
public string RULE_ID { get; set; } |
|
public string TEST_ITEM_ID { get; set; } |
|
public int GRADE_CONFIG_ORDER { get; set; } |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getInsertSql() |
|
{ |
|
return JsonEntity.GenerateInsertSql("GRADE_CONFIG", new[] { "GRADE_CONFIG_ID", "SHAPE_ID", "RULE_ID", "TEST_ITEM_ID", "GRADE_CONFIG_ORDER", "GUID" }, |
|
new[] { GRADE_CONFIG_ID, SHAPE_ID, RULE_ID, TEST_ITEM_ID, GRADE_CONFIG_ORDER.ToString(), Guid.NewGuid().ToString() }); |
|
} |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getDeleteSql() |
|
{ |
|
return JsonEntity.GenerateDeleteSql("GRADE_CONFIG", $"SHAPE_ID='{JsonEntity.EscapeSql(SHAPE_ID)}' AND RULE_ID='{JsonEntity.EscapeSql(RULE_ID)}'"); |
|
} |
|
} |
|
|
|
public class GradeConfigDetail |
|
{ |
|
public string GRADE_CONFIG_ID { get; set; } |
|
public int GRADE_CONFIG_DETAIL_ID { get; set; } |
|
public string GRADE_ID { get; set; } |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getInsertSql() |
|
{ |
|
return JsonEntity.GenerateInsertSql("GRADE_CONFIG_DETAIL", new[] { "GRADE_CONFIG_ID", "GRADE_CONFIG_DETAIL_ID", "GRADE_ID", "GUID" }, |
|
new[] { GRADE_CONFIG_ID, GRADE_CONFIG_DETAIL_ID.ToString(), GRADE_ID, Guid.NewGuid().ToString() }); |
|
} |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getDeleteSql(string shapeId, string ruleId) |
|
{ |
|
return JsonEntity.GenerateDeleteSql("GRADE_CONFIG_DETAIL", $"GRADE_CONFIG_ID LIKE '{JsonEntity.EscapeSql(shapeId + ruleId)}%'"); |
|
} |
|
} |
|
|
|
public class GradeConfigParameter |
|
{ |
|
public string GRADE_CONFIG_ID { get; set; } |
|
public int GRADE_CONFIG_DETAIL_ID { get; set; } |
|
public string PARAMETER_KEY { get; set; } |
|
public string PARAMETER_VALUE { get; set; } |
|
public string PARAMETER_TYPE { get; set; } |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getInsertSql() |
|
{ |
|
return JsonEntity.GenerateInsertSql("GRADE_CONFIG_DETAIL_PARAMETER", new[] { "GRADE_CONFIG_ID", "GRADE_CONFIG_DETAIL_ID", "PARAMETER_KEY", "PARAMETER_VALUE", "PARAMETER_TYPE", "GUID" }, |
|
new[] { GRADE_CONFIG_ID, GRADE_CONFIG_DETAIL_ID.ToString(), PARAMETER_KEY, PARAMETER_VALUE, PARAMETER_TYPE, Guid.NewGuid().ToString() }); |
|
} |
|
|
|
// 声明为 virtual 以便子类重写 |
|
public virtual string getDeleteSql(string shapeId, string ruleId) |
|
{ |
|
return JsonEntity.GenerateDeleteSql("GRADE_CONFIG_DETAIL_PARAMETER", $"GRADE_CONFIG_ID LIKE '{JsonEntity.EscapeSql(shapeId + ruleId)}%'"); |
|
} |
|
} |
|
} |