StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_120FirstAidDB.cs

194 lines
8.1 KiB
C#
Raw Permalink Normal View History

2024-03-11 09:47:34 +08:00
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>
/// 120急救信息
/// </summary>
public class T_Service_120FirstAidDB : BaseDB, IT_Service_120FirstAid
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 增加一条数据
/// </summary>
public T_Service_120FirstAid Add(T_Service_120FirstAid model)
{
return db.Insertable(model).IgnoreColumns(it => new { it.ID }).ExecuteReturnEntity();
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(T_Service_120FirstAid model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(long ID)
{
return db.Deleteable<T_Service_120FirstAid>(ID).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 获得数据列表
/// </summary>
/// <param name="pageIndex">起始页</param>
/// <param name="pageSize">每页大小</param>
/// <param name="hospitalGuid">所属院区GUID</param>
/// <param name="startTime">开始时间(创建)</param>
/// <param name="endTime">结束时间(创建)</param>
/// <param name="status">任务状态1派发任务2已出发3到达现场4离开现场5任务完成 -1查询全部</param>
/// <param name="keyWord">关键词</param>
/// <returns></returns>
public string GetPageList(int pageIndex, int pageSize, string hospitalGuid, string startTime, string endTime, int status, string keyWord)
{
string StrWhere = string.Empty;
#region 所属院区
if (!string.IsNullOrEmpty(hospitalGuid.Trim()))
{
StrWhere += " AND b.HospitalGuid = '" + hospitalGuid + "'";
}
#endregion
#region 任务状态1派发任务2已出发3到达现场4离开现场5任务完成
if (status > -1)
{
StrWhere += "And b.EmergencyState =" + status;
}
#endregion
#region 关键词
if (!string.IsNullOrEmpty(keyWord.Trim()))
{
StrWhere += " AND(b.Name LIKE '%" + keyWord + "%' OR b.MobilePhone LIKE '%" + keyWord + "%' OR b.IdentityCard LIKE '%" + keyWord + "%' OR b.Attack_Address LIKE '%" + keyWord + "%' OR d.PlateNumber LIKE '%" + keyWord + "%' OR e.Code LIKE '%" + keyWord + "%' OR b.EqmtNo LIKE '%" + keyWord + "%')";
}
#endregion
string SqlStr = string.Format(@"SELECT b.ID,a.PatientGuid,a.[GUID],b.Name,b.Age,c.GenderName,b.MobilePhone,b.Attack_Address,a.CallHelpTime,a.DiseaseTime,b.IdentityCard,d.PlateNumber,e.Code,b.EqmtNo AS EquipmentNumber,b.Note,a.SendAmbulanceTime,a.AmbulanceDepartureTime,a.ArrivalTime,a.LeaveTime,a.ArrivesHospitalTime,a.CreationDate,b.Creator,b.Creator,b.RegisterTime,f.Name AS HospitalName,a.Property,a.[Status]
FROM T_Service_120FirstAid a
LEFT JOIN T_Service_Patient b ON a.PatientGuid=b.[GUID]
LEFT JOIN T_Base_Gender c ON c.GenderCode=b.Gender
LEFT JOIN T_Base_Ambulance d ON b.AmbulanceGuid=d.[GUID]
LEFT JOIN T_Base_WristStrap e ON b.WristStrapID=e.ID
LEFT JOIN T_Base_Hospital f ON b.HospitalGuid=f.[GUID]
WHERE b.RegisterTime BETWEEN '{0}' AND '{1}' AND a.DeleteFlag=0 {2} order by a.ID DESC", startTime, endTime, StrWhere);
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;
}
/// <summary>
/// 获得前几行数据
/// </summary>
public T_Service_120FirstAid Get(long id)
{
return db.Queryable<T_Service_120FirstAid>().First(it => it.ID == id);
}
/// <summary>
/// 根据患者编号(GUID)+所属报表类型 获取数据信息
/// </summary>
/// <param name="patientGuid">病人编号(GUID)</param>
/// <returns></returns>
public TableModel<T_Service_120FirstAid> GetByPatientGuid(string patientGuid)
{
TableModel<T_Service_120FirstAid> t = new TableModel<T_Service_120FirstAid>();
var listMode = db.Queryable<T_Service_120FirstAid>().Where(it => it.PatientGuid == patientGuid && it.DeleteFlag == 0)
.Select(it => new T_Service_120FirstAid
{
ID = it.ID,
GUID = it.GUID,
PatientGuid = it.PatientGuid,
DiseaseTime = it.DiseaseTime,
TimeOfOnset = it.TimeOfOnset,
OnsetTimeInterval = it.OnsetTimeInterval,
CallHelpTime = it.CallHelpTime,
Property = it.Property,
Status = it.Status,
Summary = it.Summary,
DeleteFlag = it.DeleteFlag,
CreationDate = it.CreationDate,
CreatorID = it.CreatorID,
Creator = it.Creator,
EditTime = it.EditTime,
EditorID = it.EditorID,
Editor = it.Editor,
}).OrderBy(it => it.ID, OrderByType.Desc).ToList();
t.Code = 0;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获取急救调度任务单信息
/// </summary>
/// <param name="patientGuid">患者编号(GUID)</param>
/// <returns></returns>
public string GetDispatchOrderInfo(string patientGuid)
{
string SqlStr = string.Format(@"SELECT a.PatientGuid,a.[GUID],b.Name,b.Age,c.GenderName,b.MobilePhone,b.Attack_Address,a.CallHelpTime,a.DiseaseTime,b.IdentityCard,d.PlateNumber as AmbulanceNumber,e.Code as WristStrapNumber,b.EqmtNo AS EquipmentNumber,b.Note,a.SendAmbulanceTime,a.CreationDate,b.Creator,f.Name AS HospitalName
FROM T_Service_120FirstAid a
LEFT JOIN T_Service_Patient b ON a.PatientGuid=b.[GUID]
LEFT JOIN T_Base_Gender c ON c.GenderCode=b.Gender
LEFT JOIN T_Base_Ambulance d ON b.AmbulanceGuid=d.[GUID]
LEFT JOIN T_Base_WristStrap e ON b.WristStrapID=e.ID
LEFT JOIN T_Base_Hospital f ON b.HospitalGuid=f.[GUID]
WHERE a.PatientGuid='{0}' AND a.DeleteFlag=0 AND b.DeleteFlag=0", patientGuid);
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;
}
}
}