116 lines
5.5 KiB
C#
116 lines
5.5 KiB
C#
using HL_FristAidPlatform_Help;
|
|
using HL_FristAidPlatform_IDataBase;
|
|
using HL_FristAidPlatform_Models;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace HL_FristAidPlatform_DataBase
|
|
{
|
|
/// <summary>
|
|
/// 接警至派单
|
|
/// </summary>
|
|
public class CallAndDispatchTranService : BaseDB, ICallAndDispatchTranService
|
|
{
|
|
public SqlSugarClient db = GetClient();
|
|
|
|
|
|
/// <summary>
|
|
/// 保存并打印派车单
|
|
/// </summary>
|
|
/// <param name="patient"></param>
|
|
/// <param name="call"></param>
|
|
/// <param name="perList"></param>
|
|
/// <param name="recordList"></param>
|
|
/// <param name="dringCensus"></param>
|
|
/// <param name="accidentCensus"></param>
|
|
/// <param name="wristStrap"></param>
|
|
/// <param name="ambulance"></param>
|
|
/// <returns></returns>
|
|
public bool SaveDispatchListTran(T_Service_FirstAid_Call call, List<T_Service_FirstAid_Personnel> perList,
|
|
T_Service_FirstAid_DrivingCensus dringCensus, List<T_Service_FirstAid_DrivingRecord> recordList, T_Base_WristStrap wristStrap, List<T_Base_Ambulance> ambulance)
|
|
{
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
//院前表新增
|
|
call.TaskState = -1;
|
|
db.Insertable(call).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
|
|
//人员状态修改
|
|
db.Updateable(perList).SetColumns(t => t.CurrentState == 2).ExecuteCommand();
|
|
//查询当天是否存在统计数据,有则更新统计数,无则新增 dbo.T_Service_FirstAid_DrivingCensus
|
|
var data = db.Queryable<T_Service_FirstAid_DrivingCensus>()
|
|
.Where(t => t.HospitalGuid == call.CallHospitalGuid && t.DrivingTime == DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00.000").First();
|
|
if (SqlFunc.IsNullOrEmpty(data))//当天没有数据
|
|
{
|
|
//出车统计新增
|
|
db.Insertable(dringCensus).IgnoreColumns(it => new { it.ID }).ExecuteCommand();
|
|
}
|
|
else
|
|
{
|
|
//出车统计修改
|
|
data.PatientSum = dringCensus.PatientSum + data.PatientSum;
|
|
data.PersonnelSum = dringCensus.PersonnelSum + data.PatientSum;
|
|
data.DrivingSum = data.DrivingSum + 1;
|
|
db.Updateable(data).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
}
|
|
|
|
//出车记录新增
|
|
db.Insertable(recordList).IgnoreColumns(it => new { it.ID }).ExecuteCommand();
|
|
|
|
//标签卡修改
|
|
if (wristStrap.ID > 0)
|
|
{
|
|
db.Updateable(wristStrap).SetColumns(t => t.Status == 1).Where(t => t.ID == wristStrap.ID).ExecuteCommand();
|
|
}
|
|
//车辆修改
|
|
db.Updateable(ambulance).SetColumns(t => t.State == 2).ExecuteCommand();
|
|
|
|
if (!string.IsNullOrEmpty(call.AccidentGUID))
|
|
{
|
|
string d = DateTime.Now.ToString("yyyy-MM-dd");
|
|
// 重大事故统计
|
|
var accident = db.Queryable<T_Service_FirstAid_AccidentCensus>().Where(it => it.AccidentTime == d && it.AccidentGUID == call.AccidentGUID && it.HospitalGuid == call.CallHospitalGuid).First();
|
|
T_Service_FirstAid_AccidentCensus accidentCensus = new T_Service_FirstAid_AccidentCensus();
|
|
if (SqlFunc.IsNullOrEmpty(accident))//当天没有数据
|
|
{
|
|
accidentCensus.GUID = Guid.NewGuid().ToString();
|
|
accidentCensus.AccidentGUID = call.AccidentGUID;
|
|
accidentCensus.AccidentCensus = 1;
|
|
accidentCensus.CreateUser = call.CreateUser;
|
|
accidentCensus.DeleteFlag = 0;
|
|
accidentCensus.PatientNumber = call.PatientNumber;
|
|
accidentCensus.AccidentTime = DateTime.Now.ToString("yyy-MM-dd");
|
|
accidentCensus.CreateTime = DateTime.Now;
|
|
accidentCensus.HospitalGuid = call.HospitalGuid;
|
|
//新增
|
|
db.Insertable(accidentCensus).IgnoreColumns(it => new { it.ID }).ExecuteCommand();
|
|
}
|
|
else
|
|
{
|
|
//修改
|
|
accident.AccidentCensus = accident.AccidentCensus + 1;
|
|
accident.PatientNumber = accident.PatientNumber + call.PatientNumber;
|
|
db.Updateable(accident).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
}
|
|
}
|
|
//T_Service_FirstAid_WorkLoadCensus work = new T_Service_FirstAid_WorkLoadCensus();
|
|
// work.GUID = Guid.NewGuid().ToString();
|
|
// work.CalllGUID = call.GUID;
|
|
// //work.FrequencyMark = 0.5m;
|
|
// //work.CensusMark = work.CensusMark + work.FrequencyMark;
|
|
// db.Insertable(work).IgnoreColumns(it => new { it.ID }).ExecuteCommand();
|
|
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:接警(SaveDispatchListTran)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|