StableVersion4.3/HL_FristAidPlatform_DataBase/SYS/T_SYS_DepartmentsDB.cs

127 lines
5.2 KiB
C#

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System.Collections.Generic;
namespace HL_FristAidPlatform_DataBase
{
public class T_SYS_DepartmentsDB : BaseDB, IT_SYS_Departments
{
public SqlSugarClient db = GetClient();
public bool Add(T_SYS_Departments entity)
{
return db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false;
}
public bool Dels(dynamic[] ids)
{
return db.Deleteable<T_SYS_Departments>().In(new dynamic[] { ids }).ExecuteCommand() == 1 ? true : false;
}
public T_SYS_Departments Get(long id)
{
return db.Queryable<T_SYS_Departments>().First(it => it.ID == id);
}
public TableModel<T_SYS_DepartmentsModel> GetPageList(int pageIndex, int pageSize, string keyWord)
{
//PageModel p = new PageModel() { PageIndex = pageIndex, PageSize = pageSize };
//Expression<Func<T_SYS_Departments, bool>> ex = null;
//if (string.IsNullOrEmpty(keyWord))
// ex = (it => it.DeleteFlag == 0);
//else
// ex = (it => it.DeleteFlag == 0 && it.DepartmentName.Contains(keyWord));
//List<T_SYS_Departments> data = db.GetPageList(ex, p);
//TableModel<T_SYS_Departments> t = new TableModel<T_SYS_Departments>();
//t.Code = 0;
//t.PageCount = data.Count;
//t.TotalNumber = p.PageCount;
//t.Data = data;
//t.Msg = "成功";
//return t;
int TotalNumber = 0;
TableModel<T_SYS_DepartmentsModel> t = new TableModel<T_SYS_DepartmentsModel>();
var listMode = db.Queryable<T_SYS_Departments, T_SYS_Departments, T_Base_Hospital>((Departments, Parent, Hospital) => new object[] {
JoinType.Left,Departments.ParentID == Parent.ID,
JoinType.Left,Departments.HospitalGuid == Hospital.GUID,
}).Where((Departments, Parent, Hospital) => Departments.DeleteFlag == 0).WhereIF(!string.IsNullOrEmpty(keyWord), (Departments, Parent) => Departments.DepartmentName.Contains(keyWord))
.Select((Departments, Parent, Hospital) => new T_SYS_DepartmentsModel
{
ID = Departments.ID,
GUID = Departments.GUID.ToString(),
ParentID = Departments.ParentID,
DepartmentName = Departments.DepartmentName,
DeleteFlag = Departments.DeleteFlag,
CreationDate = Departments.CreationDate,
Description = Departments.Description,
OrderBy = Departments.OrderBy,
HospitalGuid = Departments.HospitalGuid,
HospitalName = Hospital.Name,
ParentName = Parent.DepartmentName.ToString()
}).OrderBy((Departments) => Departments.OrderBy).ToPageList(pageIndex, pageSize, ref TotalNumber);
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = TotalNumber;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获取所有
/// </summary>
/// <returns></returns>
public TableModel<T_SYS_Departments> GetList()
{
List<T_SYS_Departments> data = db.Queryable<T_SYS_Departments>().Where(iterator => iterator.DeleteFlag == 0).ToList();
TableModel<T_SYS_Departments> menu = new TableModel<T_SYS_Departments>();
menu.Code = 0;
menu.TotalNumber = data.Count;
menu.Data = data;
menu.Msg = "成功";
return menu;
}
/// <summary>
/// 获取指定院区拥有的所有科室
/// </summary>
/// <param name="hospitalGuid">医院编号(GUID)</param>
/// <returns></returns>
public TableModel<T_SYS_Departments> GetListByHospitalGuid(string hospitalGuid)
{
List<T_SYS_Departments> data = db.Queryable<T_SYS_Departments>().Where(it => it.HospitalGuid == hospitalGuid && it.DeleteFlag == 0).ToList();
TableModel<T_SYS_Departments> menu = new TableModel<T_SYS_Departments>();
menu.Code = 0;
menu.TotalNumber = data.Count;
menu.Data = data;
menu.Msg = "成功";
return menu;
}
public int LogicalDelete(long id, int deleteFlag)
{
return db.Updateable<T_SYS_Departments>().SetColumns(it => new T_SYS_Departments() { DeleteFlag = deleteFlag }).Where(it => it.ID == id).ExecuteCommand();
}
public bool Update(T_SYS_Departments entity)
{
return db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 获取所有随访科室
/// </summary>
/// <returns></returns>
public List<string> GetListForFollowUp()
{
List<string> data = db.Queryable<T_SYS_Departments>().Where(iterator => iterator.DeleteFlag == 0 && iterator.isFollowUp == 0).Select(i => i.DepartmentName).ToList();
return data;
}
}
}