using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using TProduct.HttpClient; namespace TProduct.DAL { /// /// 测试项目 /// public class TestProjectBase : BaseLiteSqlDAL_DataSync { public override ISqlSugarClient Connection { get { return TProduct.DAL.SQLite.ConfigHelper.MainConn; } } /// /// 插入包含扩展信息 /// public List InsertEx(Entity.TestProjectBase main, List trees) { if (main == null) return default; using (ISqlSugarClient db = Connection) { long project_id = 0; try { if (trees == null || trees.Count() == 0) { db.Ado.BeginTran(); project_id = db.Insertable(main).ExecuteReturnSnowflakeId(); if (project_id < 1) { db.Ado.RollbackTran(); return default; } main.ID = project_id; } else { db.Ado.BeginTran(); project_id = db.Insertable(main).ExecuteReturnSnowflakeId(); if (project_id < 1) { db.Ado.RollbackTran(); return default; } main.ID = project_id; // foreach (var tree in trees) { if (tree.Items == null || tree.Items.Count <= 0) { continue; } tree.Bundle.ProjectID = main.ID; tree.Bundle.ItemCount = tree.Items.Count; tree.Bundle.ID = db.Insertable(tree.Bundle).ExecuteReturnSnowflakeId(); if (tree.Bundle.ID <= 0) { db.Ado.RollbackTran(); return default; } for (int i = 0; i < tree.Items.Count; i++) { tree.Items[i].BundleID = tree.Bundle.ID; tree.Items[i].ID = db.Insertable(tree.Items[i]). ExecuteReturnSnowflakeId(); if (tree.Items[i].ID <= 0) { db.Ado.RollbackTran(); return default; } } } } db.Ado.CommitTran(); if (TProduct.CorpConfig.Instance.RealTimeRemoteService.IsSynMainData) { HttpClientHelper.Build("TestProjectBase", "Insert@V1.0").Post(main); if (trees != null && trees.Count > 0) { var bundles = trees.Select(x => x.Bundle).ToList(); if (bundles != null && bundles.Count > 0) { HttpClientHelper.Build("TestProjectItemBundle", "Inserts@V1.0").Post(bundles); } var items = trees.Where(x => x.Items != null && x.Items.Count > 0).SelectMany(x => x.Items).ToList(); if (items != null && items.Count > 0) { HttpClientHelper.Build("TestProjectItem", "Inserts@V1.0").Post(items); } } } } catch { db.Ado.RollbackTran(); return default; } return db.Queryable().Where(x => x.ProjectID == project_id)?.ToList(); } } /// /// 编号是否存在 /// public bool IsExistCode(string Code) { using (ISqlSugarClient db = Connection) { return db.Queryable().Where(x => x.Code == Code).Any(); } } /// /// /// /// /// /// public bool UpdateJudgeResult(long ID, int JudgeResult) { using (ISqlSugarClient db = Connection) { var result = db. Updateable(new Entity.TestProjectBase() { ID = ID, JudgeResult = JudgeResult }). UpdateColumns(it => new { it.JudgeResult }).ExecuteCommand(); if (result > 0 && TProduct.CorpConfig.Instance.RealTimeRemoteService.IsSynMainData) { var dto = GetByID(ID); HttpClientHelper.Build(this.TableName, "Update@V1.0").Put(dto); } return true; } } /// /// /// /// /// /// public bool UpdateReportFileNO(long ID, string ReportFileNO) { using (ISqlSugarClient db = Connection) { var result = db. Updateable(new Entity.TestProjectBase() { ID = ID, ReportFileNO = ReportFileNO }). UpdateColumns(it => new { it.ReportFileNO }).ExecuteCommand(); if (result > 0 && TProduct.CorpConfig.Instance.RealTimeRemoteService.IsSynMainData) { var dto = GetByID(ID); HttpClientHelper.Build(this.TableName, "Update@V1.0").Put(dto); } return true; } } /// /// 通拓id列表获取 /// /// public List GetByProductType(int ProductType, DateTime StartTime, DateTime EndTime) { using (ISqlSugarClient db = Connection) { return db.Queryable().Where(x => x.ProductType == ProductType && x.CreateTime >= StartTime && x.CreateTime <= EndTime)?.ToList(); } } /// /// 通拓id列表获取 /// /// public List GetByProductType(int ProductType, List ProductID, DateTime StartTime, DateTime EndTime) { if (ProductID == null || ProductID.Count() == 0) { return GetByProductType(ProductType, StartTime, EndTime); } using (ISqlSugarClient db = Connection) { return db.Queryable().Where(x => x.ProductType == ProductType && ProductID.Contains(x.ProductID) && x.CreateTime >= StartTime && x.CreateTime <= EndTime)?.ToList(); } } /// /// 通拓id列表获取 /// /// public List GetBySeriesID(long SeriesID) { using (ISqlSugarClient db = Connection) { return db.Queryable().Where(x => x.SeriesID == SeriesID)?.ToList(); } } /// /// 通拓id列表获取 /// /// public List GetByProductID(long ProductID) { using (ISqlSugarClient db = Connection) { return db.Queryable().Where(x => x.ProductID == ProductID)?.ToList(); } } public void AlertView() { using (ISqlSugarClient db = Connection) { db.Ado.ExecuteCommand("DROP VIEW TestProjectItemView"); db.Ado.ExecuteCommand (@"CREATE VIEW TestProjectItemView AS SELECT TestProjectBase.ProductType, TestProjectBase.SeriesID, TestProjectBase.ProductID, TestProjectBase.PartID, TestProjectBase.UseStatus AS ProjectUseStatus, TestProjectBase.CreateUserID AS ProjectCreateUserID, TestProjectBase.CreateTime AS ProjectCreateTime, TestProjectBase.Code AS ProjectCode, TestProjectBase.Name AS ProjectName, TestProjectBase.IsFixed, TestProjectBase.JudgeResult AS ProjectJudgeResult, TestProjectBase.ReportFileNO, TestProjectBase.ProjectParasStr, TestProjectBase.AlarmSettingStr, TestProjectBase.IStationInfoStr, TestProjectBase.IStationID, TestProjectBase.IStationReportFileNO, TestProjectItemBundle.ProjectID, TestProjectItemBundle.ID AS BundleID, TestProjectItemBundle.ItemCount, TestProjectItemBundle.TestType, TestProjectItemBundle.TestStandardID, TestProjectItemBundle.TestGradeID, TestProjectItemBundle.BenchID, TestProjectItem.ID AS ItemID, TestProjectItem.Code AS ItemCode, TestProjectItem.Name AS ItemName, TestProjectItem.UseStatus AS ItemUseStatus, TestProjectItem.CreateUserID AS ItemCreateUserID, TestProjectItem.CreateTime AS ItemCreateTime, TestProjectItem.LastTestUserID, TestProjectItem.TestStartTime, TestProjectItem.TestEndTime, TestProjectItem.LogContent AS ItemLogContent, TestProjectItem.JudgeResult AS ItemJudgeResult, TestProjectItem.TestTarget AS ItemTestTarget, TestProjectItem.ItemParas, TestProjectItem.CoordinateParas, TestProjectItem.PointNumber, TestProjectItem.AutoTestInfoStr, TestProjectItem.DurabilityTestInfoStr, TestProjectItem.InstrumentInfoStr, TestProjectItem.ElectricInfoStr, TestProjectItem.TestResult AS ItemTestResult, TestProjectItem.ParallelInfoStr FROM TestProjectBase INNER JOIN TestProjectItemBundle ON TestProjectBase.ID = TestProjectItemBundle.ProjectID INNER JOIN TestProjectItem ON TestProjectItemBundle.ID = TestProjectItem.BundleID"); } } } }