wxd 2 years ago
parent
commit
83f21553a0
  1. 19
      src/Shentun.Peis.Application.Contracts/TransToWebPeiss/UploadPeisReportIuputDto.cs
  2. 6
      src/Shentun.Peis.Application/MyUser/MyUserAppService.cs
  3. 153
      src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs
  4. 2
      src/Shentun.Peis.Domain/ReportTemplates/CustomerOrgReportManager.cs

19
src/Shentun.Peis.Application.Contracts/TransToWebPeiss/UploadPeisReportIuputDto.cs

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.TransToWebPeiss
{
public class UploadPeisReportIuputDto
{
/// <summary>
/// 人员登记ID
/// </summary>
public Guid PatientRegisterId { get; set; }
/// <summary>
/// 报告base64地址
/// </summary>
public string ReportBase64 { get; set; }
}
}

6
src/Shentun.Peis.Application/MyUser/MyUserAppService.cs

@ -445,8 +445,7 @@ namespace Shentun.Peis.MyUser
}
else
{
Random rd = new Random();
fileName = DateTime.Now.ToString("yyMMdd") + rd.Next(100000, 999999);
fileName = Guid.NewGuid().ToString();
}
string imgurl = $"UserPhoto/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}";
@ -474,8 +473,7 @@ namespace Shentun.Peis.MyUser
}
else
{
Random rd = new Random();
fileName = DateTime.Now.ToString("yyMMdd") + rd.Next(100000, 999999);
fileName = Guid.NewGuid().ToString();
}
string imgurl = $"UserSign/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}";

153
src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
@ -12,6 +13,7 @@ using Shentun.Peis.MyUser;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.PlugIns;
using Shentun.Peis.RegisterCheckItems;
using Shentun.Peis.TransToWebPeiss;
using SqlSugar;
using System;
using System.Collections.Generic;
@ -27,6 +29,8 @@ using Volo.Abp.Uow;
namespace Shentun.Peis.TransToWebPeis
{
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
public class TransToWebPeisAppService : ApplicationService
{
private readonly IRepository<DeviceType, Guid> _deviceTypeRepository;
@ -44,6 +48,8 @@ namespace Shentun.Peis.TransToWebPeis
private readonly IRepository<CustomerOrgGroupDetail> _customerOrgGroupDetailRepository;
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
private readonly IRepository<PatientRegisterExter> _patientRegisterExterRepository;
public TransToWebPeisAppService(
IRepository<ItemType, Guid> itemTypeRepository,
ILogger<TransToWebPeisAppService> logger,
@ -58,7 +64,8 @@ namespace Shentun.Peis.TransToWebPeis
IRepository<CustomerOrgGroup, Guid> customerOrgGroupRepository,
IRepository<CustomerOrgGroupDetail> customerOrgGroupDetailRepository,
IRepository<PatientRegister, Guid> patientRegisterRepository,
IRepository<RegisterCheck, Guid> registerCheckRepository)
IRepository<RegisterCheck, Guid> registerCheckRepository,
IRepository<PatientRegisterExter> patientRegisterExterRepository)
{
_itemTypeRepository = itemTypeRepository;
_logger = logger;
@ -74,6 +81,7 @@ namespace Shentun.Peis.TransToWebPeis
_customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
_patientRegisterRepository = patientRegisterRepository;
_registerCheckRepository = registerCheckRepository;
_patientRegisterExterRepository = patientRegisterExterRepository;
}
/// <summary>
/// 上传基础资料
@ -146,27 +154,22 @@ namespace Shentun.Peis.TransToWebPeis
}
///// <summary>
///// 上传单位信息
///// </summary>
///// <returns></returns>
//[HttpPost("api/app/TransToWebPeis/TransCustomerOrg")]
//public async Task TransCustomerOrgWithDetailAsync()
//{
// //customer_org,customer_org_register
//}
///// <summary>
///// 上传人员体检信息
///// </summary>
///// <returns></returns>
//[HttpPost("api/app/TransToWebPeis/TransPatientRegister")]
//public async Task TransPatientRegisterAsync()
//{
// //patient,patient_register,register_check,register_check_asbitem
// //register_check_item,register_check_picture,register_check_summary,register_check_suggestion
// //sum_summary_header,sum_summary_content,sum_suggestion_header,sum_suggestion_content,sum_diagnosis,
//}
/// <summary>
/// 上传体检报告
/// </summary>
/// <returns></returns>
[HttpPost("api/app/TransToWebPeis/UploadPeisReport")]
public async Task UploadPeisReportAsync(UploadPeisReportIuputDto input)
{
//同步数据
await TransPatientRegisterByPatientRegisterIdAsync(new PatientRegisterIdInputDto { PatientRegisterId = input.PatientRegisterId });
//上传报告
}
/// <summary>
/// 根据人员登记ID上传人员体检信息
/// </summary>
@ -190,13 +193,15 @@ namespace Shentun.Peis.TransToWebPeis
});
var IsPatient = (await WebDb.Ado.GetDataTableAsync($"select patient_register_id from patient_register where patient_register_id='{input.PatientRegisterId}'")).Rows.Count;
if (IsPatient > 0)
{
await DeletePatientRegisterWithDetailAsync(WebDb, input.PatientRegisterId);
}
await TransPatientRegisterWithDetailAsync(WebDb, input.PatientRegisterId);
}
}
/// <summary>
/// 撤销上传人员体检信息
@ -206,7 +211,22 @@ namespace Shentun.Peis.TransToWebPeis
[HttpPost("api/app/TransToWebPeis/CancelTransPatientRegisterByPatientRegisterId")]
public async Task CancelTransPatientRegisterByPatientRegisterIdAsync(PatientRegisterIdInputDto input)
{
var thirdInterfaces = await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType ==
ThirdInterfaceTypeFlag.TranToWebPeis);
foreach (var thirdInterface in thirdInterfaces)
{
var connectString = GetConnectionStrings(thirdInterface.ParmValue);
SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = connectString,
DbType = SqlSugar.DbType.PostgreSQL,
IsAutoCloseConnection = true
});
await DeletePatientRegisterWithDetailAsync(WebDb, input.PatientRegisterId);
}
}
/// <summary>
@ -674,6 +694,14 @@ namespace Shentun.Peis.TransToWebPeis
.Where(m => m.Id == PatientRegisterId).FirstOrDefault();
if (patientRegisterEnt != null)
{
if (patientRegisterEnt.CompleteFlag != PatientRegisterCompleteFlag.SumCheck)
throw new UserFriendlyException("人员未总检,不能同步");
var IsPatient = (await WebDb.Ado.GetDataTableAsync($"select patient_id from patient where patient_id='{patientRegisterEnt.PatientId}'")).Rows.Count;
if (IsPatient == 0)
{
@ -713,16 +741,21 @@ namespace Shentun.Peis.TransToWebPeis
#region 插入人员登记信息
string third_register_id = "";
var patientRegisterExterEnt = await _patientRegisterExterRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == PatientRegisterId);
if (patientRegisterExterEnt != null && !string.IsNullOrWhiteSpace(patientRegisterExterEnt.Planuserid))
third_register_id = patientRegisterExterEnt.Planuserid;
await WebDb.Ado.ExecuteCommandAsync("INSERT INTO public.patient_register(patient_register_id, patient_register_no, patient_id, medical_times, customer_org_id, customer_org_group_id, medical_package_id," +
"patient_name,sex_id, birth_date, age, job_card_no, medical_card_no, marital_status_id, medical_type_id, personnel_type_id, job_post, job_title, photo," +
" sex_hormone_term_id, interpose_measure, medical_conclusion_id, complete_flag, is_medical_start, medical_start_date, summary_date, is_audit, audit_date, is_vip, third_info,remark,medical_center_id," +
"customer_org_register_id, concurrency_stamp, creation_time, creator_id, last_modification_time, last_modifier_id, audit_doctor_id,summary_doctor_id, his_patient_id) VALUES " +
"customer_org_register_id, concurrency_stamp, creation_time, creator_id, last_modification_time, last_modifier_id, audit_doctor_id,summary_doctor_id, his_patient_id,third_register_id) VALUES " +
"(@patient_register_id,@patient_register_no,@patient_id,@medical_times,@customer_org_id,@customer_org_group_id::uuid,@medical_package_id::uuid," +
"@patient_name,@sex_id,CAST(@birth_date as timestamp),@age,@job_card_no,@medical_card_no,@marital_status_id,@medical_type_id::uuid,@personnel_type_id::uuid,@job_post,@job_title,@photo," +
"@sex_hormone_term_id::uuid,@interpose_measure,@medical_conclusion_id::uuid,@complete_flag,@is_medical_start,@medical_start_date,CAST(@summary_date as timestamp),@is_audit,CAST(@audit_date as timestamp),@is_vip,@third_info,@remark,@medical_center_id," +
"@customer_org_register_id,@concurrency_stamp,@creation_time,@creator_id,@last_modification_time,@last_modifier_id,@audit_doctor_id::uuid,@summary_doctor_id::uuid,@his_patient_id);",
"@customer_org_register_id,@concurrency_stamp,@creation_time,@creator_id,@last_modification_time,@last_modifier_id,@audit_doctor_id::uuid,@summary_doctor_id::uuid,@his_patient_id,@third_register_id);",
new List<SugarParameter>() {
new SugarParameter("patient_register_id",patientRegisterEnt.Id),
new SugarParameter("patient_register_id",patientRegisterEnt.Id),
new SugarParameter("patient_register_no",patientRegisterEnt.PatientRegisterNo),
new SugarParameter("patient_id",patientRegisterEnt.PatientId),
new SugarParameter("medical_times",patientRegisterEnt.MedicalTimes),
@ -762,7 +795,8 @@ namespace Shentun.Peis.TransToWebPeis
new SugarParameter("last_modifier_id",patientRegisterEnt.LastModifierId),
new SugarParameter("audit_doctor_id",patientRegisterEnt.AuditDoctorId),
new SugarParameter("summary_doctor_id",patientRegisterEnt.SummaryDoctorId),
new SugarParameter("his_patient_id",patientRegisterEnt.HisPatientId)
new SugarParameter("his_patient_id",patientRegisterEnt.HisPatientId),
new SugarParameter("third_register_id",third_register_id)
});
#endregion
@ -1053,6 +1087,63 @@ namespace Shentun.Peis.TransToWebPeis
}
#endregion
}
else
{
throw new UserFriendlyException("数据不存在");
}
await WebDb.Ado.CommitTranAsync();
}
catch (Exception ex)
{
await WebDb.Ado.RollbackTranAsync();
throw new UserFriendlyException(ex.ToString());
}
}
#endregion
#region 撤销、删除
/// <summary>
/// 人员导入
/// </summary>
/// <param name="WebDb"></param>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
private async Task DeletePatientRegisterWithDetailAsync(SqlSugarClient WebDb, Guid PatientRegisterId)
{
try
{
await WebDb.Ado.BeginTranAsync();
await WebDb.Ado.ExecuteCommandAsync($"delete from sum_diagnosis where patient_register_id='{PatientRegisterId}'");
await WebDb.Ado.ExecuteCommandAsync($"delete from sum_summary_content where sum_summary_header_id in (select sum_summary_header_id from sum_summary_header where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from sum_summary_header where patient_register_id='{PatientRegisterId}'");
await WebDb.Ado.ExecuteCommandAsync($"delete from sum_suggestion_content where sum_suggestion_header_id in (select sum_suggestion_header_id from sum_suggestion_header where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from sum_suggestion_header where patient_register_id='{PatientRegisterId}'");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check_asbitem where register_check_id in (select register_check_id from register_check where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check_item where register_check_id in (select register_check_id from register_check where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check_picture where register_check_id in (select register_check_id from register_check where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check_suggestion where register_check_id in (select register_check_id from register_check where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check_summary where register_check_id in (select register_check_id from register_check where patient_register_id='{PatientRegisterId}')");
await WebDb.Ado.ExecuteCommandAsync($"delete from register_check where patient_register_id='{PatientRegisterId}'");
await WebDb.Ado.ExecuteCommandAsync($"delete from patient_register where patient_register_id='{PatientRegisterId}'");
await WebDb.Ado.CommitTranAsync();
}
catch (Exception ex)

2
src/Shentun.Peis.Domain/ReportTemplates/CustomerOrgReportManager.cs

@ -355,7 +355,7 @@ namespace Shentun.Peis.ReportTemplates
#endregion
string documentName = $"{documentData.MedicalTitle}单位体检报告{DateTime.Now.ToString("yyyy_MM_dd_HH_mm")}.docx";
string documentName = $"{documentData.MedicalTitle}单位体检报告_{Guid.NewGuid().ToString()}.docx";
string savaUrl = DirectoryName + $@"\CustomerOrgTemplate\docs\{DateTime.Now.Year}\{DateTime.Now.Month}\{DateTime.Now.Day}";
if (!Directory.Exists(savaUrl))

Loading…
Cancel
Save