using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using TProduct.HttpClient;
namespace TProduct.DAL
{
///
/// 设备生产商
///
public class TestProjectItem : BaseLiteSqlDAL_DataSync
{
///
///
///
public override ISqlSugarClient Connection
{
get { return TProduct.DAL.SQLite.ConfigHelper.MainConn; }
}
///
///
///
///
///
public int GetCountByDay(DateTime day)
{
using (ISqlSugarClient db = Connection)
{
return db.Queryable().
Where(x => x.CreateTime.Day == day.Day).Count();
}
}
///
/// 插入包含扩展信息
///
public long InsertEx(Entity.TestProjectItemBundle bundle, List items)
{
if (bundle == null)
return default;
using (ISqlSugarClient db = Connection)
{
try
{
db.Ado.BeginTran();
bundle.ID = db.Insertable(bundle).ExecuteReturnSnowflakeId();
if (bundle.ID <= 0)
{
db.Ado.RollbackTran();
return default;
}
for (int i = 0; i < items.Count; i++)
{
items[i].BundleID = bundle.ID;
items[i].ID = db.Insertable(items[i]).ExecuteCommand();
if (items[i].ID <= 0)
{
db.Ado.RollbackTran();
return default;
}
}
db.Ado.CommitTran();
if (TProduct.CorpConfig.Instance.RealTimeRemoteService.IsSynMainData)
{
HttpClientHelper.Build("TestProjectItemBundle", "Insert@V1.0").Post(bundle);
if (items != null && items.Count > 0)
{
HttpClientHelper.Build("TestProjectItem", "Inserts@V1.0").Post(items);
}
}
return bundle.ID;
}
catch
{
db.Ado.RollbackTran();
return default;
}
}
}
///
/// 更新对象属性到数据库中
///
public virtual bool UpdateEx(Entity.TestProjectItemBundle map, Entity.TestProjectItem item)
{
if (map == null)
return default;
using (ISqlSugarClient db = Connection)
{
try
{
db.Ado.BeginTran();
db.Updateable(map).ExecuteCommand();
db.Updateable(item).ExecuteCommand();
if (TProduct.CorpConfig.Instance.RealTimeRemoteService.IsSynMainData)
{
HttpClientHelper.Build("TestProjectItemBundle", "Update@V1.0").Put(map);
HttpClientHelper.Build("TestProjectItem", "Update@V1.0").Put(item);
}
db.Ado.CommitTran();
return true;
}
catch
{
db.Ado.RollbackTran();
return default;
}
}
}
///
/// 编号是否存在
///
public bool IsExistCode(string Code)
{
using (ISqlSugarClient db = Connection)
{
return db.Queryable().Where(x => x.Code == Code).Any();
}
}
///
/// 通拓id列表获取
///
///
public List GetByItemIDs(List item_ids)
{
using (ISqlSugarClient db = Connection)
{
return db.Queryable().Where(x => item_ids.Contains(x.ID))?.ToList();
}
}
///
///
///
///
///
///
public bool UpdateLogContent(long ID, string Content)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, LogContent = Content }).
UpdateColumns(it => new { it.LogContent }).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 UpdateItemName(long ID, string ItemName)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, Name = ItemName }).
UpdateColumns(it => new { it.Name }).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 RefreshTestStartTime(long ID)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, TestStartTime = DateTime.Now }).
UpdateColumns(it => new { it.TestStartTime }).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 RefreshTestEndTime(long ID)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem()
{
ID = ID,
TestEndTime = DateTime.Now
}).
UpdateColumns(it => new { it.TestEndTime }).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 UpdatePointNumberAndTime(long ID, int PointNumber)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem()
{
ID = ID,
PointNumber = PointNumber,
TestEndTime = DateTime.Now
}).
UpdateColumns(it => new { it.PointNumber, it.TestEndTime }).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 UpdatePointNumberOnly(long ID, int PointNumber)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem()
{
ID = ID,
PointNumber = PointNumber
}).
UpdateColumns(it => new { it.PointNumber, it.TestEndTime }).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 UpdateCoordinateParas(long ID, string CoordinateParas)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, CoordinateParas = CoordinateParas }).
UpdateColumns(it => new { it.CoordinateParas }).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 UpdateJudgeResult(long ID, int JudgeResult)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { 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 UpdateTestResult(long ID, string TestResult)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, TestResult = TestResult }).
UpdateColumns(it => new { it.TestResult }).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 UpdateItemParas(long ID, string ItemParas)
{
using (ISqlSugarClient db = Connection)
{
var result = db.
Updateable(new Entity.TestProjectItem() { ID = ID, ItemParas = ItemParas }).
UpdateColumns(it => new { it.ItemParas }).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 void ReCalcPointNumberAll(int Year)
{
var allItems = GetAll();
var allRecords_pump = new DAL.PumpFeatTestRecord().GetAllByYear(Year);
var allRecords_valve = new DAL.ValveFeatTestRecord().GetAllByYear(Year);
foreach (var item in allItems)
{
if (item.CreateTime.Year != Year)
{
continue;
}
if (item.TestType == 1)
{//性能测试
var record_count = allRecords_pump.Where(x => x.TestItemID == item.ID).Count();
if (record_count != item.PointNumber)
{
item.PointNumber = record_count;
UpdatePointNumberOnly(item.ID, record_count);
}
}
if (item.TestType == 8)
{//阀门测试
var record_count = allRecords_valve.Where(x => x.TestItemID == item.ID).Count();
if (record_count != item.PointNumber)
{
item.PointNumber = record_count;
UpdatePointNumberOnly(item.ID, record_count);
}
}
}
}
}
}