StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_MeetingDB.cs

319 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using Newtonsoft.Json;
using SqlSugar;
using System.Data;
namespace HL_FristAidPlatform_DataBase
{
/// <summary>
/// 会议表
/// </summary>
public class T_Service_MeetingDB : BaseDB, IT_Service_Meeting
{
public SqlSugarClient db = GetClient();
#region 增
/// <summary>
/// 新增
/// </summary>
/// <param name="model">实体</param>
/// <returns></returns>
public bool Add(T_Service_Meeting model)
{
return db.Insertable(model).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 新增 仅更新赋值的字段
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int AddNotNullColumns(T_Service_Meeting model)
{
return db.Insertable(model).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
/// <summary>
/// 新增 仅更新赋值的字段
/// 用于移动端
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int AddForApp(T_Service_Meeting model)
{
return db.Insertable(model).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
#endregion
#region 删
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(long ID)
{
return db.Deleteable<T_Service_Meeting>(it => it.ID == ID).ExecuteCommand() == 0 ? false : true; ;
}
/// <summary>
/// 逻辑删除
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int LogicalDelete(T_Service_Meeting model)
{
return db.Updateable(model).UpdateColumns(it => new { it.DeleteFlag, it.EditorID, it.Editor, it.EditTime }).ExecuteCommand();
}
/// <summary>
/// 删除
/// 用于移动端
/// </summary>
/// <param name="model">实体类ID必填</param>
/// <returns></returns>
public int DeleteForApp(T_Service_Meeting model)
{
return db.Updateable(model).UpdateColumns(it => new { it.DeleteFlag, it.EditorID, it.Editor, it.EditTime }).ExecuteCommand();
}
#endregion
#region 改
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(T_Service_Meeting model)
{
return db.Updateable(model).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 仅更新赋值的字段
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int UpdateNotNullColumns(T_Service_Meeting model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
/// <summary>
/// 修改--仅更新赋值的字段
/// 用于移动端
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int UpdateForApp(T_Service_Meeting model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
#endregion
#region 查
/// <summary>
/// 得到一个对象实体
/// </summary>
public T_Service_Meeting GetModel(long ID)
{
return db.Queryable<T_Service_Meeting>().First(it => it.ID == ID);
}
/// <summary>
/// 得到一个对象实体
/// 用于移动端
/// </summary>
/// <param name="id">患者编号</param>
/// <param name="guid">GUID</param>
/// <returns></returns>
public TableModel<T_Service_Meeting> GetModelForApp(long id, string guid)
{
TableModel<T_Service_Meeting> t = new TableModel<T_Service_Meeting>();
var listMode = db.Queryable<T_Service_Meeting>()
.Where(it => it.DeleteFlag == 0)
.WhereIF(id > 0, it => it.ID == id && it.DeleteFlag == 0)
.WhereIF(!string.IsNullOrEmpty(guid), it => it.GUID == guid).ToList();
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据分页获得数据列表
/// </summary>
/// <param name="pageIndex">起始页</param>
/// <param name="pageSize">每页条数</param>
/// <param name="hospitalGuid">院区编号</param>
/// <param name="systemModuleID">所属系统</param>
/// <param name="type">会议类型 -1:全部 1:典型病例讨论会 2:质量分析会 3:联合例会 99:其他会议</param>
/// <param name="keyWord">关键词</param>
/// <returns></returns>
public TableModel<T_Service_Meeting> GetPageList(int pageIndex, int pageSize, string hospitalGuid, long systemModuleID, int type, string keyWord)
{
int TotalNumber = 0;
TableModel<T_Service_Meeting> t = new TableModel<T_Service_Meeting>();
var listMode = db.Queryable<T_Service_Meeting>()
.Where(it => it.HospitalGuid == hospitalGuid && it.SystemModuleID == systemModuleID && it.DeleteFlag == 0)
.WhereIF(type != -1, it => it.Type == type)
.WhereIF(!string.IsNullOrEmpty(keyWord), it => it.Name.Contains(keyWord) || it.Venue.Contains(keyWord) || it.Host.Contains(keyWord) || it.Content.Contains(keyWord) || it.Remark.Contains(keyWord))
.Select(it => new T_Service_Meeting
{
ID = it.ID,
GUID = it.GUID,
Type = it.Type,
Name = it.Name,
Venue = it.Venue,
Host = it.Host,
Content = it.Content,
Remark = it.Remark,
ScheduledDate = it.ScheduledDate,
ActualDate = it.ActualDate,
NoticeNumber = it.NoticeNumber,
NoticeDate = it.NoticeDate,
NotifierID = it.NotifierID,
Notifier = it.Notifier,
DeleteFlag = it.DeleteFlag,
CreationDate = it.CreationDate,
CreatorID = it.CreatorID,
Creator = it.Creator,
EditTime = it.EditTime,
EditorID = it.EditorID,
Editor = it.Editor,
}).OrderBy(it => it.CreationDate, OrderByType.Desc).ToPageList(pageIndex, pageSize, ref TotalNumber);
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = TotalNumber;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据分页获得数据列表
/// 用于移动端
/// </summary>
/// <param name="pageIndex">起始页</param>
/// <param name="pageSize">每页条数</param>
/// <param name="hospitalGuid">院区编号</param>
/// <param name="systemModuleID">所属系统</param>
/// <param name="type">会议类型 -1:全部 1:典型病例讨论会 2:质量分析会 3:联合例会 99:其他会议</param>
/// <param name="keyWord">关键词</param>
/// <returns></returns>
public TableModel<T_Service_Meeting> GetPageListForApp(int pageIndex, int pageSize, string hospitalGuid, long systemModuleID, int type, string keyWord)
{
int TotalNumber = 0;
TableModel<T_Service_Meeting> t = new TableModel<T_Service_Meeting>();
var listMode = db.Queryable<T_Service_Meeting>()
.Where(it => it.HospitalGuid == hospitalGuid && it.SystemModuleID == systemModuleID && it.DeleteFlag == 0)
.WhereIF(type != -1, it => it.Type == type)
.WhereIF(!string.IsNullOrEmpty(keyWord), it => it.Name.Contains(keyWord) || it.Venue.Contains(keyWord) || it.Host.Contains(keyWord) || it.Content.Contains(keyWord) || it.Remark.Contains(keyWord))
.Select(it => new T_Service_Meeting
{
ID = it.ID,
GUID = it.GUID,
Type = it.Type,
Name = it.Name,
Venue = it.Venue,
Host = it.Host,
Content = it.Content,
Remark = it.Remark,
ScheduledDate = it.ScheduledDate,
ActualDate = it.ActualDate,
NoticeNumber = it.NoticeNumber,
NoticeDate = it.NoticeDate,
NotifierID = it.NotifierID,
Notifier = it.Notifier,
DeleteFlag = it.DeleteFlag,
CreationDate = it.CreationDate,
CreatorID = it.CreatorID,
Creator = it.Creator,
EditTime = it.EditTime,
EditorID = it.EditorID,
Editor = it.Editor,
}).OrderBy(it => it.CreationDate, OrderByType.Desc).ToPageList(pageIndex, pageSize, ref TotalNumber);
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = TotalNumber;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获得数据列表
/// </summary>
/// <param name="hospitalGuid">院区编号</param>
/// <param name="systemModuleID">所属系统</param>
/// <param name="type">会议类型 -1:全部 1:典型病例讨论会 2:质量分析会 3:联合例会 99:其他会议</param>
/// <param name="topNumber">取前N条,按预定召开时间排序</param>
/// <param name="keyWord">关键词</param>
/// <returns></returns>
public string GetList(string hospitalGuid, long systemModuleID, int type, int topNumber, string keyWord)
{
string StrWhere = string.Empty;
#region 上报状态
//会议类型 -1:全部 1:典型病例讨论会 2:质量分析会 3:联合例会 99:其他会议
if (type != -1)
{
StrWhere += " AND a.Type =" + type;
}
#endregion
#region 关键词
if (!string.IsNullOrEmpty(keyWord.Trim()))
{
StrWhere += " AND(a.Name LIKE '%" + keyWord + "%' OR a.Venue LIKE '%" + keyWord + "%' OR a.Host LIKE '%" + keyWord + "%' OR a.Content LIKE '%" + keyWord + "%' OR a.Remark LIKE '%" + keyWord + "%')";
}
#endregion
string SqlStr = string.Empty;
if (topNumber >= 0)
{
SqlStr = $"SELECT TOP {topNumber} a.*,CASE ISNULL(ActualDate,'') WHEN '' THEN DATEDIFF(DAY,GETDATE(),a.ScheduledDate) ELSE 9999 END AS SpecifiedDay " +
$"FROM dbo.T_Service_Meeting a " +
$"WHERE a.HospitalGuid = '{hospitalGuid}' AND a.SystemModuleID = '{systemModuleID}' AND a.DeleteFlag = 0 {StrWhere} " +
$"ORDER BY a.ScheduledDate DESC";
}
else
{
SqlStr = $"SELECT a.*,CASE ISNULL(ActualDate,'') WHEN '' THEN DATEDIFF(DAY,GETDATE(),a.ScheduledDate) ELSE 9999 END AS SpecifiedDay " +
$"FROM dbo.T_Service_Meeting a " +
$"WHERE a.HospitalGuid = '{hospitalGuid}' AND a.SystemModuleID = '{systemModuleID}' AND a.DeleteFlag = 0 {StrWhere} " +
$"ORDER BY a.ScheduledDate DESC";
}
DataTable dt = db.Ado.GetDataTable(SqlStr);
string items = "";
if (dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
string row = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
row += JsonConvert.SerializeObject(dt.Columns[i].ColumnName) + ":";
row += JsonConvert.SerializeObject(item[i]) + ",";
}
row = row.Remove(row.Length - 1);
items += "{" + row + "}" + ",";
}
items = items.Remove(items.Length - 1);
}
items = "[" + items + "]";
return items;
}
#endregion
}
}