StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_FirstAid_AlarmInf...

168 lines
8.2 KiB
C#
Raw Normal View History

2024-03-11 09:47:34 +08:00
using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System;
namespace HL_FristAidPlatform_DataBase
{
public class T_Service_FirstAid_AlarmInfoDB : BaseDB, IT_Service_FirstAid_AlarmInfo
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 任务历史
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public TableModel<AlarmTaskModel> GetAlarmHistoryList(string guid, int eventId, string time1, string time2, int transport, string platNumber, int pageIndex, int pageSize)
{
int total = 0;
var data = db.Queryable<T_Service_FirstAid_AlarmInfo, T_Service_FirstAid_AlarmTaskInfo, T_Base_Hospital, T_Base_Hospital, T_Base_Ambulance, T_SYS_User, T_Base_AccidentInfo, T_Base_AccidentLevel>
((a, b, c, d, e, f, j, h) => new JoinQueryInfos(
JoinType.Inner, a.GUID == b.AlarmGuid,
JoinType.Left, a.CallHospitalGuid == c.GUID,
JoinType.Left, a.HospitalGuid == d.GUID,
JoinType.Left, b.VehicleGUID == e.GUID,
JoinType.Left, a.PoliceReceiver == f.ID,
JoinType.Left, a.AccidentGUID == j.GUID,
JoinType.Left, a.AccidentLeveGUID == h.GUID))
.Where((a, b, c, d, e, f, j, h) => a.HospitalGuid == guid || a.CallHospitalGuid == guid && a.DispatchDatetime < DateTime.Now)
.WhereIF(eventId>0, (a, b, c, d, e, f, j, h) => j.ID == eventId)
.WhereIF(!SqlFunc.IsNullOrEmpty(time1), (a, b, c, d, e, f, j, h) => a.DispatchDatetime >= Convert.ToDateTime(time1))
.WhereIF(!SqlFunc.IsNullOrEmpty(time2), (a, b, c, d, e, f, j, h) => a.DispatchDatetime <= Convert.ToDateTime(time2).AddDays(1))
.WhereIF(transport != -1, (a, b, c, d, e, f, j, h) => b.IsTransport == transport)
.WhereIF(!SqlFunc.IsNullOrEmpty(platNumber), (a, b, c, d, e, f, j, h) => e.PlateNumber.Contains(platNumber))
.OrderBy((a, b, c, d, e, f, j, h) => a.DispatchDatetime, OrderByType.Desc)
.Select((a, b, c, d, e, f, j, h) => new AlarmTaskModel()
{
GUID = b.GUID,
CallHospitalName = c.Name,
HospitalName = d.Name,
DispatchDatetime = a.DispatchDatetime.ToString("yyyy-MM-dd HH:ss:mm"),
WaitingAddress = a.WaitingAddress,
PoliceReceiverName = f.FullName,
PoliceCall = a.PoliceCall,
ChiefComplaint = a.ChiefComplaint,
AccidentName = j.ParentName,
AccidentLeveName = h.LevelName,
Pathogeny = a.Pathogeny,
PlateNumber = e.PlateNumber,
IsTransport = b.IsTransport == 1 ? "转送" : "未转送",
IsAbnormal = b.IsAbnormal == 1 ? "是" : "否"
})
.ToPageList(pageIndex, pageSize, ref total);
TableModel<AlarmTaskModel> t = new TableModel<AlarmTaskModel>();
t.Code = 0;
t.PageCount = data.Count;
t.TotalNumber = total;
t.Data = data;
t.Msg = "成功";
return t;
}
/// <summary>
/// 派单任务详情PDF
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public TableModel<TaskDetailModel> GetTaskDetail(int id)
{
TableModel<TaskDetailModel> t = new TableModel<TaskDetailModel>();
var info = db.Queryable<T_Service_FirstAid_AlarmTaskInfo, T_Service_FirstAid_AlarmInfo, T_Base_Hospital, T_Base_Ambulance, T_SYS_User, T_SYS_User, T_SYS_User>((a, b, c, d, e, f, g) => new JoinQueryInfos(
JoinType.Inner, a.AlarmGuid == b.GUID,
JoinType.Left, b.HospitalGuid == c.GUID,
JoinType.Left, a.VehicleGUID == d.GUID,
JoinType.Left, a.DoctorGUID == e.GUID,
JoinType.Left, a.DriverGUID == f.GUID,
JoinType.Left, a.NurseGUID == g.GUID))
.Where((a, b, c, d, e, f, g) => b.ID == id)
.Select((a, b, c, d, e, f, g) => new TaskDetailModel()
{
GUID = a.GUID,
HospitalGUID = b.HospitalGuid,
HospitalName = c.Name,
PlateNumber = d.PlateNumber,
DispatchNo = b.DispatchNo,
PatientsNumber = b.PatientsNumber,
WaitingAddress = b.WaitingAddress,
CallAddress = b.CallAddress,
Consciousness = b.IsConsciousness == true ? "有" : "无",
PoliceCall = b.PoliceCall,
ChiefComplaint = b.ChiefComplaint,
DispatchDatetime = Convert.ToDateTime(b.DispatchDatetime).ToString("yyyy-MM-dd HH:mm:ss"),
Pathogeny = b.Pathogeny,
Name = b.Name,
Age = b.Age,
Gender = b.Gender.ToString(),
Address = b.Address,
Phone = b.Phone,
DriverName = f.FullName,
DriverID=f.ID,
DoctorName = e.FullName,
DoctorID=e.ID,
NurseName = g.FullName,
NurseID=g.ID,
ToAddress = a.ToAddress,
AbnormalReason = a.AbnormalReason
}).ToList();
t.Code = 0;
t.PageCount = 1;
t.TotalNumber = 1;
t.Data = info;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获取出警任务详情
/// </summary>
/// <param name="hospitalGuid"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public TableModel<AlarmTaskListModel> GetAlarmTaskList(string hospitalGuid, string startTime, string endTime, int pageIndex, int pageSize)
{
int total = 0;
var data = db.Queryable<T_Service_FirstAid_AlarmInfo, T_Service_FirstAid_AlarmTaskInfo, T_Base_Hospital, T_Base_Ambulance, T_SYS_User, T_SYS_User, T_SYS_User>
((a, b, c, d, e, f, j) => new JoinQueryInfos(
JoinType.Inner, a.GUID == b.AlarmGuid,
JoinType.Inner, a.HospitalGuid == c.GUID,
JoinType.Left, b.VehicleGUID == d.GUID,
JoinType.Left, b.DriverGUID == e.GUID,
JoinType.Left, b.DoctorGUID == f.GUID,
JoinType.Left, b.NurseGUID == j.GUID
)
)
.Where((a, b, c, d, e, f, j) => a.HospitalGuid == hospitalGuid || a.CallHospitalGuid == hospitalGuid)
.WhereIF(!SqlFunc.IsNullOrEmpty(startTime), (a, b, c, d, e, f, j) => b.DrivingTime >= Convert.ToDateTime(startTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c, d, e, f, j) => b.DrivingTime <= Convert.ToDateTime(endTime).AddDays(1))
.OrderBy((a, b, c, d, e, f, j) => b.DrivingTime, OrderByType.Desc)
.Select((a, b, c, d, e, f, j) => new AlarmTaskListModel()
{
DrvingTime=Convert.ToDateTime(b.DrivingTime).ToString("yyyy-MM-dd HH:mm:ss"),
DrvingName=e.FullName,
DoctorName=f.FullName,
NurseName=j.FullName,
PlateNumber=d.PlateNumber,
HospitalName=c.Name
}).ToPageList(pageIndex, pageSize, ref total);
TableModel<AlarmTaskListModel> t = new TableModel<AlarmTaskListModel>();
t.Code = 0;
t.PageCount = data.Count;
t.TotalNumber = total;
t.Data = data;
t.Msg = "成功";
return t;
}
}
}