StableVersion4.3/HL_FristAidPlatform_Bussiness/TranService/AlarmInfoBLL.cs

178 lines
6.7 KiB
C#

using HL_FristAidPlatform_DataBase;
using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
namespace HL_FristAidPlatform_Bussiness
{
public class AlarmInfoBLL
{
IAlarmInfoService IService = new AlarmInfoService();
private IT_SYS_User IPerService = new T_SYS_UserDB();
private IT_Service_FirstAid_AlarmTaskInfo ITask = new T_Service_FirstAid_AlarmTaskInfoDB();
/// <summary>
/// 保存接警信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int SaveAlarmInfoTran(AlarmInfoModel model)
{
//1.接警信息
T_Service_FirstAid_AlarmInfo info = new T_Service_FirstAid_AlarmInfo();
info.GUID = Guid.NewGuid().ToString();
info.CallHospitalGuid = model.CallHospitalGuid;
//info.ToAddress = model.ToAddress;
info.HospitalGuid = model.HospitalGuid;
info.WaitingAddress = model.WaitingAddress;
info.CallAddress = model.CallAddress;
info.CallType = model.CallType;
info.CallTime = model.CallTime;
info.PoliceReceiver = model.PoliceReceiver;
info.PatientsNumber = model.PatientsNumber;
info.IsConsciousness = model.IsConsciousness;
info.PoliceCall = model.PoliceCall;
info.ChiefComplaint = model.ChiefComplaint;
info.Pathogeny = model.Pathogeny;
info.AccidentGUID = model.AccidentGUID;
info.AccidentLeveGUID = model.AccidentLeveGUID;
info.IsAccident = model.AccidentLeveGUID != null ? 1 : 0;
info.Name = model.Name;
info.Age = model.Age;
info.Gender = model.Gender;
info.Phone = model.Phone;
info.Address = model.Address;
info.CreationID = model.PoliceReceiver;
info.DispatchNo = model.DispatchNo;
//出动车辆===> 多个车辆多个任务 ;出车人员
List<T_Base_Ambulance> ambulanceList = new List<T_Base_Ambulance>();
List<T_Service_FirstAid_AlarmTaskInfo> taskList = new List<T_Service_FirstAid_AlarmTaskInfo>();
List<T_SYS_User> perList = new List<T_SYS_User>();
if (!SqlFunc.IsNullOrEmpty(model.AmbulanceGUID))
{
string[] arry = model.AmbulanceGUID.Split(new char[] { ',' });
for (int i = 0; i < arry.Length; i++)
{
T_Base_Ambulance ambulance = new T_Base_Ambulance();
ambulance.GUID = arry[i];
ambulanceList.Add(ambulance);
T_Service_FirstAid_AlarmTaskInfo task = new T_Service_FirstAid_AlarmTaskInfo();
task.AlarmGuid = info.GUID;
task.CallTime = info.CallTime;
task.VehicleGUID = arry[i];
if (model.Falg == 1)
{
task.TaskState = 1;
task.TaskProgress = 0;
task.ConfirmDatetime = DateTime.Now;
}
else
{
task.TaskState = 0;
task.TaskProgress = -1;
}
task.GUID = Guid.NewGuid().ToString();
var res = IPerService.GetPerofAmbulance(arry[i]).ToList();
res.ForEach(i =>
{
T_SYS_User per = new T_SYS_User();
per.State = 2;
per.GUID = i.GUID;
per.VehicleGUID = ambulance.GUID;
perList.Add(per);
if (i.Position == 3) task.DriverGUID = i.GUID;
if (i.Position == 2) task.DoctorGUID = i.GUID;
if (i.Position == 1) task.NurseGUID = i.GUID;
});
taskList.Add(task);
}
}
return IService.SaveAlarmInfoTran(info, ambulanceList, taskList, perList);
}
/// <summary>
/// 更改出警任务出车人员
/// </summary>
/// <param name="info"></param>
/// <param name="user"></param>
/// <returns></returns>
public MessageModel<bool> UpdateDrvingpPersonnel(UpdateDrvingpPersonnelModel model)
{
var taks = ITask.GetTaskInfoByGuid(model.GUID);
if (taks == null)
{
return new MessageModel<bool> { Success = false, Msg = "没有找该任务GUID的数据" };
}
if (taks.DrivingTime != null)
{
return new MessageModel<bool> { Success = false, Msg = "该任务已经开始无法更改人员" };
}
T_SYS_User user1 = new T_SYS_User();
switch (model.Type)
{
case 0:
user1 = IPerService.GetUserByGuid(taks.DriverGUID);
break;
case 1:
user1 = IPerService.GetUserByGuid(taks.DoctorGUID);
break;
case 2:
user1 = IPerService.GetUserByGuid(taks.NurseGUID);
break;
}
var userinfo = IPerService.GetUserByGuid(model.DrvingUserGUID);
if (userinfo == null)
{
return new MessageModel<bool> { Success = false, Msg = "没有找该用户GUID的数据" };
}
T_Service_FirstAid_AlarmTaskInfo info = new T_Service_FirstAid_AlarmTaskInfo();
info.GUID = taks.GUID;
switch (model.Type)
{
case 0:
info.DriverGUID = model.DrvingUserGUID;
break;
case 1:
info.DoctorGUID = model.DrvingUserGUID;
break;
case 2:
info.NurseGUID = model.DrvingUserGUID;
break;
}
T_SYS_User user = new T_SYS_User();
user.ID = userinfo.ID;
user.VehicleGUID = taks.VehicleGUID;
user.State = 2;
if (user1 != null)
{
user1.State = 1;
user1.VehicleGUID = "";
}
if (IService.UpdateDrvingpPersonnel(info, user, user1))
{
return new MessageModel<bool> { Success = true, Msg = "操作成功" };
}
else
{
return new MessageModel<bool> { Success = false, Msg = "操作失败" };
}
}
}
}