using GummingCommon; using GummingControl; using GummingEntity; using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GummingBusiness { public class HardUnitFlowStepDA { public static int ReadTotalCount(PagerEntity se) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT count(*) FROM Hard_Unit_Flow_Step WHERE 1=1 " + se.Conditions; SQLiteDataReader sr = cmd.ExecuteReader(); sr.Read(); int count = sr.GetInt32(0); sr.Close(); conn.Close(); return count; } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return 0; } public static HardUnitFlowStepEntity Load(string recId) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); DataTable dt = SQLiteHelper.ExecuteDataTable(conn, "SELECT * FROM Hard_Unit_Flow_Step WHERE RecId ='" + recId + "' limit 1"); List rows = SQLiteHelper.DataTableToIList(dt) as List; conn.Close(); if (rows.Count > 0) { return rows[0]; } } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return null; } public static RecordEntity Load(PagerEntity se) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { int count = ReadTotalCount(se); //se.OrderBy, se.SortOrder, se.PageIndex, se.Rows SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); DataTable dt = SQLiteHelper.ExecuteDataTable(conn, "SELECT * FROM Hard_Unit_Flow_Step WHERE 1=1 " + se.Conditions + " order by ModifyTime desc limit " + Convert.ToString(se.Rows) + " offset " + Convert.ToString((se.PageIndex - 1) * se.Rows)); List rows = SQLiteHelper.DataTableToIList(dt) as List; conn.Close(); RecordEntity result = new RecordEntity(); result.total = (int)Math.Ceiling(count * 1.0 / se.Rows); result.page = se.PageIndex; result.records = count; result.rows = rows; return result; } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return null; } public static void Save(HardUnitFlowStepEntity segment) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); using (SQLiteTransaction tran = conn.BeginTransaction()) { Save(conn, segment); tran.Commit(); } conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Save(SQLiteConnection conn, HardUnitFlowStepEntity segment) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO Hard_Unit_Flow_Step (RecId,StepIndex,Unit2,Unit3,Unit4,Unit5,Unit6,Unit7,Unit8,Unit9,StepCode,StepName,FlowId,Unit1,OrderBy,CreateBy,CreateTime,ModifyBy,ModifyTime,IsActive) values(@RecId,@StepIndex,@Unit2,@Unit3,@Unit4,@Unit5,@Unit6,@Unit7,@Unit8,@Unit9,@StepCode,@StepName,@FlowId,@Unit1,@OrderBy,@CreateBy,@CreateTime,@ModifyBy,@ModifyTime,@IsActive)"; cmd.Parameters.AddWithValue("@RecId", Guid.NewGuid().ToString()); cmd.Parameters.AddWithValue("@StepIndex", segment.StepIndex); cmd.Parameters.AddWithValue("@Unit2", segment.Unit2Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit3", segment.Unit3Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit4", segment.Unit4Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit5", segment.Unit5Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit6", segment.Unit6Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit7", segment.Unit7Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit8", segment.Unit8Tag?.FormulaId); cmd.Parameters.AddWithValue("@Unit9", segment.Unit9Tag?.FormulaId); cmd.Parameters.AddWithValue("@StepCode", segment.StepCode); cmd.Parameters.AddWithValue("@StepName", segment.StepName); cmd.Parameters.AddWithValue("@FlowId", segment.FlowId); cmd.Parameters.AddWithValue("@Unit1", segment.Unit1Tag?.FormulaId); cmd.Parameters.AddWithValue("@OrderBy", segment.OrderBy); cmd.Parameters.AddWithValue("@CreateBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@CreateTime", DateTime.Now); cmd.Parameters.AddWithValue("@ModifyBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@ModifyTime", DateTime.Now); cmd.Parameters.AddWithValue("@IsActive", 1); cmd.ExecuteNonQuery(); } public static void SaveAs(SQLiteConnection conn, HardUnitFlowStepEntity segment) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO Hard_Unit_Flow_Step (RecId,StepIndex,Unit2,Unit3,Unit4,Unit5,Unit6,Unit7,Unit8,Unit9,StepCode,StepName,FlowId,Unit1,OrderBy,CreateBy,CreateTime,ModifyBy,ModifyTime,IsActive) values(@RecId,@StepIndex,@Unit2,@Unit3,@Unit4,@Unit5,@Unit6,@Unit7,@Unit8,@Unit9,@StepCode,@StepName,@FlowId,@Unit1,@OrderBy,@CreateBy,@CreateTime,@ModifyBy,@ModifyTime,@IsActive)"; cmd.Parameters.AddWithValue("@RecId", Guid.NewGuid().ToString()); cmd.Parameters.AddWithValue("@StepIndex", segment.StepIndex); cmd.Parameters.AddWithValue("@Unit2", segment.Unit2); cmd.Parameters.AddWithValue("@Unit3", segment.Unit3); cmd.Parameters.AddWithValue("@Unit4", segment.Unit4); cmd.Parameters.AddWithValue("@Unit5", segment.Unit5); cmd.Parameters.AddWithValue("@Unit6", segment.Unit6); cmd.Parameters.AddWithValue("@Unit7", segment.Unit7); cmd.Parameters.AddWithValue("@Unit8", segment.Unit8); cmd.Parameters.AddWithValue("@Unit9", segment.Unit9); cmd.Parameters.AddWithValue("@StepCode", segment.StepCode); cmd.Parameters.AddWithValue("@StepName", segment.StepName); cmd.Parameters.AddWithValue("@FlowId", segment.FlowId); cmd.Parameters.AddWithValue("@Unit1", segment.Unit1); cmd.Parameters.AddWithValue("@OrderBy", segment.OrderBy); cmd.Parameters.AddWithValue("@CreateBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@CreateTime", DateTime.Now); cmd.Parameters.AddWithValue("@ModifyBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@ModifyTime", DateTime.Now); cmd.Parameters.AddWithValue("@IsActive", 1); cmd.ExecuteNonQuery(); } public static void Update(HardUnitFlowStepEntity segment) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); using (SQLiteTransaction tran = conn.BeginTransaction()) { Update(conn, segment); tran.Commit(); } conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Update(SQLiteConnection conn, HardUnitFlowStepEntity segment) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "UPDATE Hard_Unit_Flow_Step SET StepIndex = @StepIndex, Unit2 = @Unit2, Unit3 = @Unit3, Unit4 = @Unit4, Unit5 = @Unit5, Unit6 = @Unit6, Unit7 = @Unit7, Unit8 = @Unit8, Unit9 = @Unit9, StepCode = @StepCode, StepName = @StepName, FlowId = @FlowId, Unit1 = @Unit1, OrderBy = @OrderBy, ModifyBy = @ModifyBy, ModifyTime = @ModifyTime, IsActive = @IsActive WHERE RecId = @RecId"; cmd.Parameters.AddWithValue("@RecId", segment.RecId); cmd.Parameters.AddWithValue("@StepIndex", segment.StepIndex); cmd.Parameters.AddWithValue("@Unit2", segment.Unit2); cmd.Parameters.AddWithValue("@Unit3", segment.Unit3); cmd.Parameters.AddWithValue("@Unit4", segment.Unit4); cmd.Parameters.AddWithValue("@Unit5", segment.Unit5); cmd.Parameters.AddWithValue("@Unit6", segment.Unit6); cmd.Parameters.AddWithValue("@Unit7", segment.Unit7); cmd.Parameters.AddWithValue("@Unit8", segment.Unit8); cmd.Parameters.AddWithValue("@Unit9", segment.Unit9); cmd.Parameters.AddWithValue("@StepCode", segment.StepCode); cmd.Parameters.AddWithValue("@StepName", segment.StepName); cmd.Parameters.AddWithValue("@FlowId", segment.FlowId); cmd.Parameters.AddWithValue("@Unit1", segment.Unit1); cmd.Parameters.AddWithValue("@OrderBy", segment.OrderBy); cmd.Parameters.AddWithValue("@ModifyBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@ModifyTime", DateTime.Now); cmd.Parameters.AddWithValue("@IsActive", 1); cmd.ExecuteNonQuery(); } public static void Delete(string flowid) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); Delete(conn, flowid); conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Delete(SQLiteConnection conn, string flowid) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "delete from Hard_Unit_Flow_Step where FlowId ='" + flowid + "'"; cmd.ExecuteNonQuery(); } public static void Clear() { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "delete from Hard_Unit_Flow_Step"; cmd.ExecuteNonQuery(); conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } } }