@ -2,6 +2,7 @@
using HandyControl.Controls ;
using Newtonsoft.Json ;
using Newtonsoft.Json.Converters ;
using NPOI.SS.Formula.Functions ;
using SharpDX ;
using SparkClient.Model.Helper ;
using System ;
@ -90,17 +91,17 @@ public class LevelConfigVM : BaseViewModel
}
private string setInstitutes ( string id )
{
string insituteSql = $"SELECT * FROM RULE ;" ;
string insituteSql = $"SELECT RULE_ID,RULE_NAME,RULE_EN_NAME FROM RULE WHERE RULE_ID NOT LIKE '%_TA_%' ;" ;
Institutes = DataBaseHelper . ExecuteQuery ( insituteSql ) ;
return Institutes . AsEnumerable ( ) . FirstOrDefault ( ) [ "RULE_ID" ] . ToString ( ) ;
}
private void setDataGrid ( string shapeId , string ruleId )
{
string gradeSql = $"SELECT * FROM GRADE WHERE SHAPE_ID = '{shapeId}' AND RULE_ID = '{ruleId}' ORDER BY GRADE_ORDER;" ;
string gradeSql = $"SELECT GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER FROM GRADE WHERE SHAPE_ID = '{shapeId}' AND RULE_ID LIKE '{ruleId}%' GROUP BY GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER ORDER BY GRADE_ORDER;" ;
DataTable columnInfos = DataBaseHelper . ExecuteQuery ( gradeSql ) ;
string standardSql = $"SELECT * FROM STANDARD WHERE SHAPE_ID = '{shapeId}' AND RULE_ID = '{ruleId}' ORDER BY SUBSTR(0 || SORT, - 2), GRADE_ORDER;" ;
string standardSql = $"SELECT * FROM STANDARD WHERE SHAPE_ID = '{shapeId}' AND RULE_ID like '{ruleId}%' ORDER BY RULE_ID, SUBSTR(0 || SORT, - 2), GRADE_ORDER;" ;
DataTable rowInfos = DataBaseHelper . ExecuteQuery ( standardSql ) ;
setStandardList ( columnInfos , rowInfos ) ;
}
@ -119,7 +120,7 @@ public class LevelConfigVM : BaseViewModel
List < DataColumn > columns = new List < DataColumn > ( ) ;
foreach ( DataRow columnInfo in gradeList . Rows )
{
if ( columns . Count = = 0 )
if ( "1" . Equals ( columnInfo [ "GRADE_ORDER" ] . ToString ( ) ) )
{
columns . Add ( new DataColumn ( columnInfo [ "GRADE_EN_NAME" ] . ToString ( ) ) ) ;
columns . Add ( new DataColumn ( columnInfo [ "GRADE_EN_NAME" ] . ToString ( ) + "_" + 1 ) ) ;
@ -144,79 +145,63 @@ public class LevelConfigVM : BaseViewModel
// 以标准名分组表示每一行
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 )
var standardRules = standardList . AsEnumerable ( ) . GroupBy ( r = > r [ "RULE_ID" ] . ToString ( ) ) ;
foreach ( var ruleStandardList in standardRules ) {
var standards = ruleStandardList . AsEnumerable ( ) . GroupBy ( r = > r [ STANDARD_NAME ] . ToString ( ) ) ;
foreach ( var standard in standards )
{
// 每一行单元格内数据
var row = standard . Where ( s = > s [ "GRADE_ID" ] . ToString ( ) = = columnInfo [ "GRADE_ID" ] . ToString ( ) ) . FirstOrDefault ( ) ;
string value = "" ;
if ( rowInfo . Count = = 0 )
{
value =
getFix ( row , "MIN_PREFIX" ) +
row [ "STANDARD_MIN" ] . ToString ( ) + row [ "UNIT" ] . ToString ( ) + "-"
+ row [ "STANDARD_MAX" ] . ToString ( ) + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" )
;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Add ( arr [ 0 ] ) ;
if ( arr . Length > 1 ) {
rowInfo . Add ( arr [ 1 ] ) ;
}
else
{
rowInfo . Add ( "" ) ;
}
}
else
List < string > rowInfo = new List < string > ( ) ;
foreach ( DataRow columnInfo in gradeList . Rows )
{
// 每一行单元格内数据
if ( row [ "STANDARD_MIN" ] = = null | | row [ "STANDARD_MIN" ] . ToString ( ) = = "" )
var row = standard . Where ( s = > s [ "GRADE_ORDER" ] . ToString ( ) = = columnInfo [ "GRADE_ORDER" ] . ToString ( ) ) . FirstOrDefault ( ) ;
string value = "" ;
if ( row = = null )
{
value = getFix ( row , "MIN_PREFIX" )
+ row [ "MIN_NULL_REPALCE" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Insert ( 0 , arr [ 0 ] ) ;
if ( arr . Length > 1 )
if ( "1" . Equals ( columnInfo [ "GRADE_ORDER" ] . ToString ( ) ) )
{
rowInfo . Insert ( 0 , arr [ 1 ] ) ;
rowInfo . Add ( "-" ) ;
rowInfo . Add ( "" ) ;
}
else
{
rowInfo . Insert ( 0 , "-" ) ;
rowInfo . Insert ( 0 , "" ) ;
rowInfo . Add ( "-" ) ;
rowInfo . Add ( "" ) ;
}
continue ;
}
else
if ( "1" . Equals ( row [ "GRADE_ORDER" ] . ToString ( ) ) )
{
value = getFix ( row , "MIN_PREFIX" )
+ row [ "STANDARD_MIN" ] . ToString ( )
+ row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Insert ( 0 , arr [ 0 ] ) ;
if ( arr . Length > 1 )
string Min = row [ "STANDARD_MIN" ] . ToString ( ) ;
string Max = row [ "STANDARD_MAX" ] . ToString ( ) ;
if ( ! string . IsNullOrEmpty ( Min ) & & ! string . IsNullOrEmpty ( Max ) )
{
rowInfo . Insert ( 0 , arr [ 1 ] ) ;
value = getFix ( row , "MIN_PREFIX" ) +
Min + row [ "UNIT" ] . ToString ( ) + "-"
+ Max + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" )
;
}
else
else if ( ! string . IsNullOrEmpty ( Min ) )
{
rowInfo . Insert ( 0 , "" ) ;
value = getFix ( row , "MIN_PREFIX" ) +
Min + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" )
;
}
}
if ( row [ "STANDARD_MAX" ] = = null | | row [ "STANDARD_MAX" ] . ToString ( ) = = "" )
{
value = getFix ( row , "MAX_PREFIX" ) +
row [ "MAX_NULL_REPALCE" ] . ToString ( )
+ getFix ( row , "MAX_SUFFIX" ) ;
else if ( ! string . IsNullOrEmpty ( Max ) )
{
value = getFix ( row , "MIN_PREFIX" ) +
Max + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" )
;
}
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Add ( arr [ 0 ] ) ;
if ( arr . Length > 1 )
{
if ( arr . Length > 1 ) {
rowInfo . Add ( arr [ 1 ] ) ;
}
else
@ -226,27 +211,99 @@ public class LevelConfigVM : BaseViewModel
}
else
{
value = getFix ( row , "MAX_PREFIX" ) +
row [ "STANDARD_MAX" ] . ToString ( ) + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MAX_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Add ( arr [ 0 ] ) ;
if ( arr . Length > 1 )
// 每一行单元格内数据
if ( row [ "STANDARD_MIN" ] = = null | | row [ "STANDARD_MIN" ] . ToString ( ) = = "" )
{
rowInfo . Add ( arr [ 1 ] ) ;
value = getFix ( row , "MIN_PREFIX" )
+ row [ "MIN_NULL_REPALCE" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Insert ( 0 , arr [ 0 ] ) ;
if ( arr . Length > 1 )
{
rowInfo . Insert ( 0 , arr [ 1 ] ) ;
}
else
{
rowInfo . Insert ( 0 , "" ) ;
}
}
else
{
rowInfo . Add ( "" ) ;
value = getFix ( row , "MIN_PREFIX" )
+ row [ "STANDARD_MIN" ] . ToString ( )
+ row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MIN_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Insert ( 0 , arr [ 0 ] ) ;
if ( arr . Length > 1 )
{
rowInfo . Insert ( 0 , arr [ 1 ] ) ;
}
else
{
rowInfo . Insert ( 0 , "" ) ;
}
}
if ( row [ "STANDARD_MAX" ] = = null | | row [ "STANDARD_MAX" ] . ToString ( ) = = "" )
{
value = getFix ( row , "MAX_PREFIX" ) +
row [ "MAX_NULL_REPALCE" ] . ToString ( )
+ getFix ( row , "MAX_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Add ( arr [ 0 ] ) ;
if ( arr . Length > 1 )
{
rowInfo . Add ( arr [ 1 ] ) ;
}
else
{
rowInfo . Add ( "" ) ;
}
}
else
{
value = getFix ( row , "MAX_PREFIX" ) +
row [ "STANDARD_MAX" ] . ToString ( ) + row [ "UNIT" ] . ToString ( )
+ getFix ( row , "MAX_SUFFIX" ) ;
var arr = value . Split ( "\r\n" , 2 ) ;
rowInfo . Add ( arr [ 0 ] ) ;
if ( arr . Length > 1 )
{
rowInfo . Add ( arr [ 1 ] ) ;
}
else
{
rowInfo . Add ( "" ) ;
}
}
}
}
string ruleId = ruleStandardList . Key ;
string prefix = "" ;
string ta = ruleId . Substring ( ruleId . Length - 2 ) ;
if ( ruleId . StartsWith ( "GB" ) )
{
if ( "49" . Equals ( ta ) )
{
prefix = "[台宽比<" + ruleId . Substring ( ruleId . Length - 2 ) + "] " ;
}
else if ( "71" . Equals ( ta ) )
{
prefix = "[台宽比>" + ruleId . Substring ( ruleId . Length - 2 ) + "] " ;
}
else
{
prefix = "[台宽比=" + ruleId . Substring ( ruleId . Length - 2 ) + "] " ;
}
}
rowInfo . Insert ( 0 , prefix + standard . Key ) ;
var showRow = StandardList . NewRow ( ) ;
showRow . ItemArray = rowInfo . ToArray ( ) ;
StandardList . Rows . Add ( showRow ) ;
}
rowInfo . Insert ( 0 , standard . Key ) ;
var showRow = StandardList . NewRow ( ) ;
showRow . ItemArray = rowInfo . ToArray ( ) ;
StandardList . Rows . Add ( showRow ) ;
}
}
}
@ -343,35 +400,42 @@ public class LevelConfigVM : BaseViewModel
// 标准数据登录
string gradeConfigSql = "" ;
int index = 0 ;
foreach ( var gradeConfig in jsonEntity . GradeConfigs )
{
if ( gradeConfigSql . Length = = 0 )
if ( index = = 0 )
{
gradeConfigSql + = gradeConfig . getDeleteSql ( ) ;
}
gradeConfigSql + = gradeConfig . getInsertSql ( ) ;
index + + ;
}
index = 0 ;
foreach ( var gradeConfigDetail in jsonEntity . GradeConfigDetails )
{
if ( gradeConfigSql . Length = = 0 )
if ( index = = 0 )
{
gradeConfigSql + = gradeConfigDetail . getDeleteSql ( shapeId , ruleId ) ;
}
gradeConfigSql + = gradeConfigDetail . getInsertSql ( ) ;
index + + ;
}
index = 0 ;
foreach ( var gradeConfigParameter in jsonEntity . GradeConfigParameters )
{
if ( gradeConfigSql . Length = = 0 )
if ( index = = 0 )
{
gradeConfigSql + = gradeConfigParameter . getDeleteSql ( shapeId , ruleId ) ;
}
gradeConfigSql + = gradeConfigParameter . getInsertSql ( ) ;
index + + ;
}
count = DataBaseHelper . ExecuteNonQuery ( gradeConfigSql ) ;
if ( count < 0 )
{
DataBaseHelper . rollback ( ) ;
Growl . Error ( save_fail_message ) ;
return ;
}
DataBaseHelper . commit ( ) ;
Growl . Info ( Save_successful_message ) ;
@ -408,6 +472,7 @@ public class LevelConfigVM : BaseViewModel
ShapesEnabled = false ;
Microsoft . Win32 . OpenFileDialog openFileDialog = new Microsoft . Win32 . OpenFileDialog ( ) ;
openFileDialog . Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*" ;
jsonEntity = null ;
if ( openFileDialog . ShowDialog ( ) = = true )
{
string filename = openFileDialog . FileName ;
@ -418,6 +483,12 @@ public class LevelConfigVM : BaseViewModel
jsonEntity = JsonConvert . DeserializeObject < JsonEntity > ( content ) ;
}
}
else
{
InstitutesEnabled = true ;
ShapesEnabled = true ;
return ;
}
if ( jsonEntity ! = null )
{
// 形状列表重新生成