322 lines
12 KiB
C#
322 lines
12 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_Base_HospitalDB : BaseDB, IT_Base_Hospital
|
|
{
|
|
public SqlSugarClient db = GetClient();
|
|
|
|
#region 增
|
|
/// <summary>
|
|
/// 增
|
|
/// </summary>
|
|
/// <param name="hospital"></param>
|
|
/// <returns></returns>
|
|
public bool Add(T_Base_Hospital hospital)
|
|
{
|
|
return db.Insertable(hospital).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增 仅更新赋值的字段
|
|
/// </summary>
|
|
/// <param name="model">实体类</param>
|
|
/// <returns></returns>
|
|
public int AddNotNullColumns(T_Base_Hospital model)
|
|
{
|
|
return db.Insertable(model).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
|
|
}
|
|
#endregion 增
|
|
|
|
#region 删
|
|
public bool Dels(dynamic[] ids)
|
|
{
|
|
return db.Deleteable<T_Base_Hospital>().In(new dynamic[] { ids }).ExecuteCommand() == 1 ? true : false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 逻辑删除
|
|
/// </summary>
|
|
/// <param name="id">编号</param>
|
|
/// <param name="deleteFlag">标记:0取消删除 1删除</param>
|
|
/// <returns></returns>
|
|
public int LogicalDelete(long id, int deleteFlag)
|
|
{
|
|
return db.Updateable<T_Base_Hospital>().SetColumns(it => new T_Base_Hospital() { DeleteFlag = deleteFlag }).Where(it => it.ID == id).ExecuteCommand();
|
|
}
|
|
#endregion 删
|
|
|
|
#region 改
|
|
/// <summary>
|
|
/// 修改
|
|
/// </summary>
|
|
/// <param name="hospital"></param>
|
|
/// <returns></returns>
|
|
public bool Update(T_Base_Hospital hospital)
|
|
{
|
|
return db.Updateable(hospital).ExecuteCommand() == 0 ? false : true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 仅更新赋值的字段
|
|
/// </summary>
|
|
/// <param name="model">实体类</param>
|
|
/// <returns></returns>
|
|
public int UpdateNotNullColumns(T_Base_Hospital model)
|
|
{
|
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
}
|
|
#endregion 改
|
|
|
|
#region 查
|
|
public T_Base_Hospital Get(long id)
|
|
{
|
|
return db.Queryable<T_Base_Hospital>().First(it => it.ID == id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据GUID获取医院配置信息
|
|
/// </summary>
|
|
/// <param name="guid">GUID</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_Hospital> GetByGuid(string guid)
|
|
{
|
|
List<T_Base_Hospital> data = db.Queryable<T_Base_Hospital>().Where(it => it.GUID == guid && it.DeleteFlag == 0).ToList();
|
|
TableModel<T_Base_Hospital> menu = new TableModel<T_Base_Hospital>();
|
|
menu.Code = 0;
|
|
menu.TotalNumber = data.Count;
|
|
menu.Data = data;
|
|
menu.Msg = "成功";
|
|
return menu;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取列表-分页
|
|
/// </summary>
|
|
/// <param name="pageIndex">起始页</param>
|
|
/// <param name="pageSize">每页大小</param>
|
|
/// <param name="parentGUID">上级院区编号</param>
|
|
/// <param name="attributeTag">院区属性标记 空:全部 1:分院 2:网络医院 3:胸痛救治单元 99:其他</param>
|
|
/// <param name="keyWord">关键词</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_HospitalModel> GetPageList(int pageIndex, int pageSize, string parentGUID, string attributeTag, string keyWord)
|
|
{
|
|
int TotalNumber = 0;
|
|
TableModel<T_Base_HospitalModel> t = new TableModel<T_Base_HospitalModel>();
|
|
|
|
var listMode = db.Queryable<T_Base_Hospital>()
|
|
.Where(it => it.DeleteFlag == 0)
|
|
.WhereIF(!string.IsNullOrEmpty(parentGUID), it => it.ParentGUID == parentGUID)
|
|
.WhereIF(!string.IsNullOrEmpty(attributeTag), it => it.AttributeTag == attributeTag)
|
|
.WhereIF(!string.IsNullOrEmpty(keyWord), it => it.Name.Contains(keyWord) || it.ShortName.Contains(keyWord) || it.AliasName.Contains(keyWord) || it.ContactNumber.Contains(keyWord) || it.ContactAddress.Contains(keyWord))
|
|
.Select(it => new T_Base_HospitalModel
|
|
{
|
|
ID = it.ID,
|
|
GUID = it.GUID,
|
|
ParentGUID = it.ParentGUID,
|
|
Name = it.Name,
|
|
ShortName = it.ShortName,
|
|
EnglishName = it.EnglishName,
|
|
AliasName = it.AliasName,
|
|
LogoUrl = it.LogoUrl,
|
|
BgImageUrl = it.BgImageUrl,
|
|
Nature = it.Nature,
|
|
Grade = it.Grade,
|
|
ContactNumber = it.ContactNumber,
|
|
Fax = it.Fax,
|
|
Website = it.Website,
|
|
ZipCode = it.ZipCode,
|
|
BusRoute = it.BusRoute,
|
|
ContactAddress = it.ContactAddress,
|
|
Introduce = it.Introduce,
|
|
CCPC_AppID = it.CCPC_AppID,
|
|
CCPC_SecretKey = it.CCPC_SecretKey,
|
|
CCPC_HospitalID = it.CCPC_HospitalID,
|
|
Longitude = it.Longitude,
|
|
Latitude = it.Latitude,
|
|
DefaultAmbulanceGuid = it.DefaultAmbulanceGuid,
|
|
CreatorID = it.CreatorID,
|
|
Creator = it.Creator,
|
|
CreationDate = it.CreationDate,
|
|
OrderBy = it.OrderBy,
|
|
DeleteFlag = it.DeleteFlag,
|
|
DeleteFlagCase = it.DeleteFlag.ToString(),
|
|
Ecg_OrgCode = it.Ecg_OrgCode,
|
|
Ecg_URL = it.Ecg_URL,
|
|
Ecg_RecordNumPer = it.Ecg_RecordNumPer,
|
|
Ecg_AuthorKey = it.Ecg_AuthorKey,
|
|
Ecg_AppId = it.Ecg_AppId,
|
|
Ecg_Token = it.Ecg_Token,
|
|
Ecg_Summary = it.Ecg_Summary,
|
|
CP_CertificationVersion = it.CP_CertificationVersion,
|
|
CP_CertificationStatus = it.CP_CertificationStatus,
|
|
CP_First_Reperfusion = it.CP_First_Reperfusion,
|
|
CP_Second_Reperfusion = it.CP_Second_Reperfusion,
|
|
AP_CertificationVersion = it.AP_CertificationVersion,
|
|
AP_CertificationStatus = it.AP_CertificationStatus,
|
|
AttributeTag = it.AttributeTag,
|
|
}).OrderBy((Hospital) => Hospital.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>
|
|
/// <param name="parentGUID">上级医院GUID,为空时查询全部</param>
|
|
/// <param name="attributeTag">院区属性标记集合 空:全部 1:主院区 2:分院 3:网络医院 4:胸痛救治单元 99:其他</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_Hospital> GetList(string parentGUID, string attributeTag)
|
|
{
|
|
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
|
|
|
|
var listMode = db.Queryable<T_Base_Hospital>()
|
|
.Where(it => it.DeleteFlag == 0)
|
|
.WhereIF(!string.IsNullOrEmpty(parentGUID), it => it.ParentGUID == parentGUID)
|
|
.WhereIF(!string.IsNullOrEmpty(attributeTag), it => attributeTag.Contains(it.AttributeTag)).ToList();
|
|
|
|
t.Code = 0;
|
|
t.PageCount = listMode.Count;
|
|
t.TotalNumber = listMode.Count;
|
|
t.Data = listMode;
|
|
t.Msg = "成功";
|
|
return t;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据用户编号获取拥有的院区列表
|
|
/// </summary>
|
|
/// <param name="userID">用户编号</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_Hospital> GetHospitalListByUserID(long userID)
|
|
{
|
|
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
|
|
|
|
string SqlStr = @"SELECT DISTINCT a.ID,a.Name,a.GUID
|
|
FROM T_Base_Hospital a
|
|
LEFT JOIN T_SYS_UserHospital b ON b.HospitalGUID=a.GUID
|
|
LEFT JOIN T_SYS_User c ON c.ID = b.UserID
|
|
WHERE c.ID={0} and a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0";
|
|
SqlStr = string.Format(SqlStr, userID);
|
|
|
|
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).OrderBy(it => it.ID).ToList();
|
|
|
|
t.Code = 0;
|
|
t.PageCount = list.Count;
|
|
t.TotalNumber = list.Count;
|
|
t.Data = list;
|
|
t.Msg = "成功";
|
|
return t;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 根据用户账号密码获取拥有的院区列表
|
|
/// </summary>
|
|
/// <param name="userID">用户编号</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_Hospital> GetHospitalListByUserInfo(string username,string password)
|
|
{
|
|
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
|
|
|
|
string SqlStr = @"SELECT DISTINCT a.ID,a.Name,a.GUID
|
|
FROM T_Base_Hospital a
|
|
LEFT JOIN T_SYS_UserHospital b ON b.HospitalGUID=a.GUID
|
|
LEFT JOIN T_SYS_User c ON c.ID = b.UserID
|
|
WHERE c.Nickname ={0} and c.Password={1} and a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0";
|
|
SqlStr = string.Format(SqlStr, username, password);
|
|
|
|
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).OrderBy(it => it.ID).ToList();
|
|
|
|
t.Code = 0;
|
|
t.PageCount = list.Count;
|
|
t.TotalNumber = list.Count;
|
|
t.Data = list;
|
|
t.Msg = "成功";
|
|
return t;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取用户未拥有的院区列表
|
|
/// </summary>
|
|
/// <param name="userID">用户编号</param>
|
|
/// <param name="keyWord">关键词</param>
|
|
/// <returns></returns>
|
|
public TableModel<T_Base_Hospital> GetHospitalListNotHaveByUserID(long userID, string keyWord)
|
|
{
|
|
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
|
|
|
|
string SqlStr = "SELECT * FROM T_Base_Hospital WHERE GUID NOT IN(SELECT HospitalGUID FROM T_SYS_UserHospital WHERE UserID = {0} AND DeleteFlag = 0) AND DeleteFlag = 0";
|
|
|
|
if (!string.IsNullOrEmpty(keyWord))
|
|
SqlStr += " And (Name LIKE '%" + keyWord + "%' OR ShortName LIKE '%" + keyWord + "%')";
|
|
|
|
SqlStr = string.Format(SqlStr, userID);
|
|
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).ToList();
|
|
|
|
t.Code = 0;
|
|
t.PageCount = list.Count;
|
|
t.TotalNumber = list.Count;
|
|
t.Data = list;
|
|
t.Msg = "成功";
|
|
return t;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hostpitalGUID"></param>
|
|
/// <returns></returns>
|
|
public T_Base_Hospital GethospitalGUID(string hostpitalGUID)
|
|
{
|
|
return db.Queryable<T_Base_Hospital>().First(it => it.GUID == hostpitalGUID);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hostpitalGUID"></param>
|
|
/// <returns></returns>
|
|
public List<HospitalModel> GetNameByHospitalGUID(string hostpitalGUID)
|
|
{
|
|
return db.Queryable<T_Base_Hospital>()
|
|
.Where(it => it.GUID == hostpitalGUID)
|
|
.Select(it => new HospitalModel
|
|
{
|
|
Name = SqlFunc.Subqueryable<T_Base_Hospital>().Where(i => i.GUID == it.ParentGUID).Select(i => i.Name),
|
|
GUID = it.ParentGUID
|
|
|
|
}).ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询该父节点下所有的医院
|
|
/// </summary>
|
|
/// <param name="parentGUID">父级医院GUID</param>
|
|
/// <returns></returns>
|
|
public TableModel<HospitalModel> GetHospitalOfParentGUID(string parentGUID)
|
|
{
|
|
TableModel<HospitalModel> t = new TableModel<HospitalModel>();
|
|
string sql = "SELECT Name,GUID FROM T_Base_Hospital WHERE DeleteFlag=0 AND ParentGUID='" + parentGUID + "'";
|
|
List<HospitalModel> list = db.SqlQueryable<HospitalModel>(sql).ToList();
|
|
t.Code = 0;
|
|
t.PageCount = list.Count;
|
|
t.TotalNumber = list.Count;
|
|
t.Data = list;
|
|
t.Msg = "成功";
|
|
return t;
|
|
}
|
|
|
|
#endregion 查
|
|
}
|
|
}
|