using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase.Service;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System.Collections.Generic;
using System.Linq;
namespace HL_FristAidPlatform_DataBase
{
///
/// 事故信息
///
public class T_Base_AccidentInfoDB : BaseDB, IT_Base_AccidentInfo
{
public SqlSugarClient db = GetClient();
///
/// 查询所有的事故 Tree
///
///
public List GetListAccidentInfo()
{
//TableModel t = new TableModel();
var oneClass = db.Queryable().ToList();
var twoClass = db.Queryable().ToList();
List list = new List();
oneClass.ForEach(x =>
{
AccidentInfoModel infoModel = new AccidentInfoModel();
infoModel.Name = x.ParentName;
infoModel.GUID = x.GUID;
infoModel.AccidentLevel = x.AccidentLevel;
infoModel.childrenModel = new List();
twoClass.Where(a => a.AccidentLevel == x.AccidentLevel).ToList().ForEach(m =>
{
AccidentInfoModel model = new AccidentInfoModel();
model.GUID = x.GUID;
model.AccidentLevel = m.AccidentLevel;
model.Describe = m.Describe;
model.NodeGUID = m.GUID;
model.NodeName = m.LevelName;
model.Name = m.LevelName;
model.ParentName = infoModel.Name;
infoModel.childrenModel.Add(model);
});
list.Add(infoModel);
});
return list;
//t.Code = 0;
//t.PageCount = list.Count;
//t.TotalNumber = list.Count;
//t.Data = list;
//t.Msg = "成功";
//return t;
}
///
/// 重大事故/群伤事件数据集合
///
///
public List GetAccidentInfoClass()
{
List list = new List();
return list = db.Queryable().Select(i=>new AccidentInfoClassModel
{
ID=i.ID,
Name=i.ParentName
}).ToList();
}
///
/// 查询所有的事故 Tree eDataTable
///
///
//public TableModel GetListAccidentInfoeDataTable()
//{
// TableModel t = new TableModel();
// var oneClass = db.Queryable().ToList();
// var twoClass = db.Queryable().ToList();
// List list = new List();
// List modelList = new List();
// oneClass.ForEach(x =>
// {
// AccidentInfoModel infoModel = new AccidentInfoModel();
// infoModel.parentModel = new ParentModel();//类是引用类型,会覆盖 每次循环都要实例化
// infoModel.parentModel.Name = x.ParentName;
// infoModel.parentModel.GUID = x.GUID;
// infoModel.parentModel.AccidentLevel = x.AccidentLevel;
// infoModel.parentModel.childrenModel = new List();
// twoClass.Where(a => a.AccidentLevel == x.AccidentLevel).ToList().ForEach(m =>
// {
// ChildrenModel model = new ChildrenModel();
// model.AccidentLevel = m.AccidentLevel;
// model.Describe = m.Describe;
// model.NodeGUID = m.GUID;
// model.NodeName = m.LevelName;
// model.ParentGUID = x.GUID;
// infoModel.parentModel.childrenModel.Add(model);
// });
// list.Add(infoModel);
// });
// t.Code = 0;
// t.PageCount = list.Count;
// t.TotalNumber = list.Count;
// t.Data = list;
// t.Msg = "成功";
// return t;
//}
///
/// 事故集合
///
///
public TableModel GetListAccident()
{
TableModel t = new TableModel();
var list = db.Queryable().Where(it => it.DeleteFlag == 0).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
#region 群伤事件
public List GetList(string name, int accidentLevel)
{
return db.Queryable().Where(i => i.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(name), i => i.ParentName.Contains(name))
.WhereIF(accidentLevel > 0, i => i.AccidentLevel == accidentLevel).ToList();
}
public T_Base_AccidentInfo GetByName(string parentName, int accidentLevel)
{
return db.Queryable().Where(i => i.ParentName == parentName && i.AccidentLevel == accidentLevel && i.DeleteFlag == 0).First();
}
public bool SaveAccidentInfo(T_Base_AccidentInfo department)
{
return db.Insertable(department).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false;
}
public T_Base_AccidentInfo GetById(int iD)
{
return db.Queryable().Where(i => i.ID == iD && i.DeleteFlag == 0).First();
}
public bool UpdateAccidentInfo(T_Base_AccidentInfo department)
{
return db.Updateable(department).UpdateColumns(i => new { i.ParentName ,i.AccidentLevel }).ExecuteCommand() == 1 ? true : false;
}
#endregion
#region 事故等级
public List GetAccidentLevelList(string name, int accidentLevel)
{
return db.Queryable().Where(i => i.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(name), i => i.LevelName.Contains(name))
.WhereIF(accidentLevel > 0, i => i.AccidentLevel == accidentLevel).ToList();
}
public T_Base_AccidentLevel GetAccidentLevelByName(string name, int accidentLevel)
{
return db.Queryable().Where(i => i.LevelName == name && i.AccidentLevel == accidentLevel && i.DeleteFlag == 0).First();
}
public bool SaveAccidentLevel(T_Base_AccidentLevel department)
{
return db.Insertable(department).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false;
}
public T_Base_AccidentLevel GetAccidentLevelById(int iD)
{
return db.Queryable().Where(i => i.ID == iD && i.DeleteFlag == 0).First();
}
public bool UpdateAccidentLevel(T_Base_AccidentLevel department)
{
return db.Updateable(department).UpdateColumns(i => new { i.LevelName, i.AccidentLevel }).ExecuteCommand() == 1 ? true : false;
}
#endregion
}
}