DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
846e7f8e87
  1. 9
      src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs
  2. 117
      src/Shentun.Peis.Application/DataMigrations/BaseDataHandleAppService.cs
  3. 2
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  4. 13
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  5. 3
      src/Shentun.Peis.Application/SysParmTypes/SysParmTypeAppService.cs
  6. 32
      src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs
  7. 23
      src/Shentun.Peis.Domain/Patients/PatientManager.cs
  8. 35
      src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs
  9. 19
      src/Shentun.Peis.Domain/ReportTemplates/CustomerOrgReportManager.cs

9
src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs

@ -33,7 +33,7 @@ namespace Shentun.Peis.CustomerReports
/// 客户报表
/// </summary>
[ApiExplorerSettings(GroupName = "Work")]
//[Authorize]
[Authorize]
public class CustomerReportAppService : ApplicationService
{
private readonly IRepository<Patient, Guid> _patientRepository;
@ -1952,8 +1952,9 @@ namespace Shentun.Peis.CustomerReports
sumquery = sumquery.Where(m => m.a.CompleteFlag == PatientRegisterCompleteFlag.PartCheck || m.a.CompleteFlag == PatientRegisterCompleteFlag.SumCheck);
}
// 分组数据
var groupDetails = sumquery.GroupBy(g => g.a.CustomerOrgGroupId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_GroupDetail
var groupDetails = sumquery.ToList().GroupBy(g => g.a.CustomerOrgGroupId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_GroupDetail
{
CustomerOrgGroupName = s.FirstOrDefault().ac != null ? s.FirstOrDefault().ac.DisplayName : "",
CustomerOrgGroupPrice = s.FirstOrDefault().ac != null ? Math.Round(s.FirstOrDefault().ac.Price, 2).ToString() : "0",
@ -1989,7 +1990,7 @@ namespace Shentun.Peis.CustomerReports
query_addItem = query_addItem.Where(m => m.a.PayTypeFlag == PayTypeFlag.OrgPay);
}
var addItems = query_addItem.GroupBy(g => g.a.AsbitemId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_AddItem
var addItems = query_addItem.ToList().GroupBy(g => g.a.AsbitemId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_AddItem
{
AsbitemName = s.FirstOrDefault().ab != null ? s.FirstOrDefault().ab.DisplayName : "",
PatientCount = s.Count(),
@ -2115,7 +2116,7 @@ namespace Shentun.Peis.CustomerReports
ChargeAmount = Math.Round(s.Sum(v => v.c.ChargePrice * v.c.Amount), 2).ToString(),
ChargePrice = Math.Round(s.Sum(v => v.c.ChargePrice * v.c.Amount) / s.Sum(v => v.c.Amount), 2).ToString(),
ItmeTypeName = s.FirstOrDefault().ae.DisplayName,
Discount = ((int)Math.Ceiling(s.Sum(v => v.c.ChargePrice * v.c.Amount) / s.Sum(v => v.c.StandardPrice * v.c.Amount))).ToString()
Discount = s.Sum(v => v.c.StandardPrice * v.c.Amount) == 0 ? "0" : ((int)Math.Ceiling(s.Sum(v => v.c.ChargePrice * v.c.Amount) / s.Sum(v => v.c.StandardPrice * v.c.Amount))).ToString()
}).ToList();
//v.a.ChargePrice.Value* v.a.Amount.Value

117
src/Shentun.Peis.Application/DataMigrations/BaseDataHandleAppService.cs

@ -42,8 +42,8 @@ namespace Shentun.Peis.DataMigrations
/// <summary>
/// 基础数据处理
/// </summary>
//[Authorize]
//[RemoteService(false)]
[Authorize]
[RemoteService(false)]
public class BaseDataHandleAppService : ApplicationService
{
@ -133,6 +133,9 @@ namespace Shentun.Peis.DataMigrations
private readonly IRepository<ReportFormatTemplate, string> _reportFormatTemplateRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleGroupDetail> _sampleGroupDetailRepository;
private readonly IRepository<SysParmType> _sysParmTypeRepository;
private readonly IRepository<SysParm> _sysParmRepository;
private readonly IRepository<SysParmValue> _sysParmValueRepository;
private Dictionary<string, string> veryPatientNo = new Dictionary<string, string>();
@ -184,7 +187,10 @@ namespace Shentun.Peis.DataMigrations
IRepository<ReportFormat, string> reportFormatRepository,
IRepository<ReportFormatTemplate, string> reportFormatTemplateRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository,
IRepository<SampleGroupDetail> sampleGroupDetailRepository)
IRepository<SampleGroupDetail> sampleGroupDetailRepository,
IRepository<SysParmType> sysParmTypeRepository,
IRepository<SysParm> sysParmRepository,
IRepository<SysParmValue> sysParmValueRepository)
{
_deviceTypeRepository = deviceTypeRepository;
_itemTypeRepository = itemTypeRepository;
@ -234,6 +240,9 @@ namespace Shentun.Peis.DataMigrations
_reportFormatTemplateRepository = reportFormatTemplateRepository;
_sampleGroupRepository = sampleGroupRepository;
_sampleGroupDetailRepository = sampleGroupDetailRepository;
_sysParmTypeRepository = sysParmTypeRepository;
_sysParmRepository = sysParmRepository;
_sysParmValueRepository = sysParmValueRepository;
}
@ -3214,6 +3223,108 @@ namespace Shentun.Peis.DataMigrations
#endregion
#region 迁移系统参数
/// <summary>
/// 迁移系统参数类别数据
/// </summary>
/// <returns></returns>
public async Task TransferSysParmTypeData()
{
var oldSysParmType = await PgDb.Ado.GetDataTableAsync("select * from sys_parm_type ");
if (oldSysParmType.Rows.Count > 0)
{
foreach (DataRow row in oldSysParmType.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
SysParmType data = new SysParmType
{
Id = row["id"].ToString(),
DisplayName = row["display_name"].ToString(),
DisplayOrder = Convert.ToInt32(row["display_order"].ToString()),
ParentId = row["parent_id"].ToString(),
SimpleCode = row["simple_code"].ToString()
};
await _sysParmTypeRepository.InsertAsync(data, true);
await uow.CompleteAsync();
}
}
}
}
/// <summary>
/// 迁移系统参数数据
/// </summary>
/// <returns></returns>
public async Task TransferSysParmData()
{
var oldSysParm = await PgDb.Ado.GetDataTableAsync("select * from sys_parm ");
if (oldSysParm.Rows.Count > 0)
{
foreach (DataRow row in oldSysParm.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
SysParm data = new SysParm
{
Id = row["id"].ToString(),
DisplayName = row["display_name"].ToString(),
DisplayOrder = Convert.ToInt32(row["display_order"].ToString()),
IsPublic = Convert.ToChar(row["is_public"].ToString()),
Remark = row["remark"].ToString(),
ValueType = Convert.ToChar(row["value_type"].ToString()),
SysParmTypeId = row["sys_parm_type_id"].ToString(),
SimpleCode = row["simple_code"].ToString()
};
await _sysParmRepository.InsertAsync(data, true);
await uow.CompleteAsync();
}
}
}
}
/// <summary>
/// 迁移系统参数值数据
/// </summary>
/// <returns></returns>
public async Task TransferSysParmValueData()
{
var oldSysParmValue = await PgDb.Ado.GetDataTableAsync("select * from sys_parm_value where medical_center_id='00000000-0000-0000-0000-000000000000' ");
if (oldSysParmValue.Rows.Count > 0)
{
foreach (DataRow row in oldSysParmValue.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
SysParmValue data = new SysParmValue
{
SysParmId = row["sys_parm_id"].ToString(),
Remark = row["remark"].ToString(),
MedicalCenterId = Guid.Empty,
ParmValue = row["parm_value"].ToString()
};
await _sysParmValueRepository.InsertAsync(data, true);
await uow.CompleteAsync();
}
}
}
}
#endregion
private void LoadDLL()
{
// 定义dll文件夹路径

2
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -401,7 +401,7 @@ namespace Shentun.Peis.PatientRegisters
int totalCount = entlist.Count();
entlist = entlist.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
entlist = entlist.OrderBy(o => o.Id).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
var entdto = entlist.Select(s => new PatientRegisterOrNoDto

13
src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

@ -623,10 +623,15 @@ namespace Shentun.Peis.PrintReports
medicalReportRegisterCheckDto.Items.Add(medicalReportCheckItemDto);
}
//小结
medicalReportRegisterCheckDto.Summarys = registerCheckRows.Select(o => new MedicalReportCheckAsbitemSummaryDto()
{
Summary = o.registerCheckSummaryHaveEmpty.Summary,
DisplayOrder = o.registerCheckSummaryHaveEmpty.DisplayOrder
//medicalReportRegisterCheckDto.Summarys = registerCheckRows.Select(o => new MedicalReportCheckAsbitemSummaryDto()
//{
// Summary = o.registerCheckSummaryHaveEmpty.Summary,
// DisplayOrder = o.registerCheckSummaryHaveEmpty.DisplayOrder
//}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
medicalReportRegisterCheckDto.Summarys = registerCheckRows.GroupBy(g=>g.registerCheckSummaryHaveEmpty.Id).Select(o => new MedicalReportCheckAsbitemSummaryDto()
{
Summary = o.FirstOrDefault().registerCheckSummaryHaveEmpty.Summary,
DisplayOrder = o.FirstOrDefault().registerCheckSummaryHaveEmpty.DisplayOrder
}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
//图片
var registerCheckPictures = registerCheckRows.Where(o => o.registerCheckPictureHaveEmpty != null &&

3
src/Shentun.Peis.Application/SysParmTypes/SysParmTypeAppService.cs

@ -64,7 +64,8 @@ namespace Shentun.Peis.SysParmTypes
DisplayOrder = p.DisplayOrder
};
return GetTree(items.ToList(), null);
return GetTree(items.ToList(), "");
}
/// <summary>

32
src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs

@ -778,9 +778,17 @@ namespace Shentun.Peis.PatientRegisters
patient_register_no_rule_coding = spv_tjzx.Where(m => m.SysParmId == "patient_register_no_rule_coding").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(patient_register_no_rule_coding))
{
var patient_register_no_rule_coding_ent = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_coding").FirstOrDefault();
if (patient_register_no_rule_coding_ent == null)
{
throw new UserFriendlyException("全局系统参数patient_register_no_rule_coding未配置");
}
else
{
//获取全局配置
patient_register_no_rule_coding = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_coding").FirstOrDefault().ParmValue;
patient_register_no_rule_coding = patient_register_no_rule_coding_ent.ParmValue;
}
}
if (string.IsNullOrWhiteSpace(patient_register_no_rule_coding))
{
@ -794,9 +802,18 @@ namespace Shentun.Peis.PatientRegisters
patient_register_no_rule_prefix = spv_tjzx.Where(m => m.SysParmId == "patient_register_no_rule_prefix").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(patient_register_no_rule_prefix))
{
var patient_register_no_rule_prefix_ent = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_prefix").FirstOrDefault();
if (patient_register_no_rule_prefix_ent == null)
{
throw new UserFriendlyException("全局系统参数patient_register_no_rule_prefix未配置");
}
else
{
//获取全局配置
patient_register_no_rule_prefix = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_prefix").FirstOrDefault().ParmValue;
patient_register_no_rule_prefix = patient_register_no_rule_prefix_ent.ParmValue;
}
}
if (!string.IsNullOrEmpty(patient_register_no_rule_prefix))
{
@ -810,9 +827,18 @@ namespace Shentun.Peis.PatientRegisters
}
if (string.IsNullOrWhiteSpace(patient_register_no_rule_tail_len))
{
var patient_register_no_rule_tail_len_ent = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_tail_len").FirstOrDefault();
if (patient_register_no_rule_tail_len_ent == null)
{
throw new UserFriendlyException("全局系统参数patient_register_no_rule_tail_len未配置");
}
else
{
//获取全局配置
patient_register_no_rule_tail_len = spv_global.Where(m => m.SysParmId == "patient_register_no_rule_tail_len").FirstOrDefault().ParmValue;
patient_register_no_rule_tail_len = patient_register_no_rule_tail_len_ent.ParmValue;
}
}
if (string.IsNullOrWhiteSpace(patient_register_no_rule_tail_len))

23
src/Shentun.Peis.Domain/Patients/PatientManager.cs

@ -301,9 +301,17 @@ namespace Shentun.Peis.Patients
patient_id_rule_prefix = spv_tjzx.Where(m => m.SysParmId == "patient_id_rule_prefix").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(patient_id_rule_prefix))
{
var patient_id_rule_prefix_ent = spv_global.Where(m => m.SysParmId == "patient_id_rule_prefix").FirstOrDefault();
if (patient_id_rule_prefix_ent == null)
{
throw new UserFriendlyException("全局系统参数patient_id_rule_prefix未配置");
}
else
{
//获取全局配置
patient_id_rule_prefix = spv_global.Where(m => m.SysParmId == "patient_id_rule_prefix").FirstOrDefault().ParmValue;
patient_id_rule_prefix = patient_id_rule_prefix_ent.ParmValue;
}
}
if (spv_tjzx.Where(m => m.SysParmId == "patient_id_rule_tail_len").Count() > 0)
@ -312,9 +320,17 @@ namespace Shentun.Peis.Patients
patient_id_rule_tail_len = spv_tjzx.Where(m => m.SysParmId == "patient_id_rule_tail_len").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(patient_id_rule_tail_len))
{
var patient_id_rule_tail_len_ent = spv_global.Where(m => m.SysParmId == "patient_id_rule_tail_len").FirstOrDefault();
if (patient_id_rule_tail_len_ent == null)
{
throw new UserFriendlyException("全局系统参数patient_id_rule_tail_len未配置");
}
else
{
//获取全局配置
patient_id_rule_tail_len = spv_global.Where(m => m.SysParmId == "patient_id_rule_tail_len").FirstOrDefault().ParmValue;
patient_id_rule_tail_len = patient_id_rule_tail_len_ent.ParmValue;
}
}
if (string.IsNullOrWhiteSpace(patient_id_rule_tail_len))
@ -332,9 +348,6 @@ namespace Shentun.Peis.Patients
}
string maxnum = "1"; //未补位的档案号
var primarykeyBuilderEnt = await _primarykeyBuilderRepository.FirstOrDefaultAsync(f => f.PrimarykeyBuilderId == "patient_no");

35
src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs

@ -394,9 +394,19 @@ namespace Shentun.Peis.RegisterChecks
check_request_no_rule_coding = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_coding").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(check_request_no_rule_coding))
{
var check_request_no_rule_coding_ent = spv_global.Where(m => m.SysParmId == "check_request_no_rule_coding").FirstOrDefault();
if (check_request_no_rule_coding_ent == null)
{
throw new UserFriendlyException("全局系统参数check_request_no_rule_coding未配置");
}
else
{
//获取全局配置
check_request_no_rule_coding = spv_global.Where(m => m.SysParmId == "check_request_no_rule_coding").FirstOrDefault().ParmValue;
check_request_no_rule_coding = check_request_no_rule_coding_ent.ParmValue;
}
}
if (string.IsNullOrWhiteSpace(check_request_no_rule_coding))
@ -410,9 +420,19 @@ namespace Shentun.Peis.RegisterChecks
check_request_no_rule_tail_len = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_tail_len").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(check_request_no_rule_tail_len))
{
var check_request_no_rule_tail_len_ent = spv_global.Where(m => m.SysParmId == "check_request_no_rule_tail_len").FirstOrDefault();
if (check_request_no_rule_tail_len_ent == null)
{
throw new UserFriendlyException("全局系统参数check_request_no_rule_tail_len未配置");
}
else
{
//获取全局配置
check_request_no_rule_tail_len = spv_global.Where(m => m.SysParmId == "check_request_no_rule_tail_len").FirstOrDefault().ParmValue;
check_request_no_rule_tail_len = check_request_no_rule_tail_len_ent.ParmValue;
}
}
@ -422,9 +442,18 @@ namespace Shentun.Peis.RegisterChecks
check_request_no_rule_prefix = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_prefix").FirstOrDefault().ParmValue;
}
if (string.IsNullOrWhiteSpace(check_request_no_rule_prefix))
{
var check_request_no_rule_prefix_ent = spv_global.Where(m => m.SysParmId == "check_request_no_rule_prefix").FirstOrDefault();
if (check_request_no_rule_prefix_ent == null)
{
throw new UserFriendlyException("全局系统参数check_request_no_rule_prefix未配置");
}
else
{
//获取全局配置
check_request_no_rule_prefix = spv_global.Where(m => m.SysParmId == "check_request_no_rule_prefix").FirstOrDefault().ParmValue;
check_request_no_rule_prefix = check_request_no_rule_prefix_ent.ParmValue;
}
}
if (string.IsNullOrWhiteSpace(check_request_no_rule_tail_len))

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

@ -1916,9 +1916,11 @@ namespace Shentun.Peis.ReportTemplates
string Checked_MaleExamineRatio = Register_MaleNumber != 0 ? Math.Round(Checked_MaleNumber * 100M / Register_MaleNumber, 2).ToString() + "%" : "0%";
string Checked_FemaleExamineRatio = Register_FemaleNumber != 0 ? Math.Round(Checked_FemaleNumber * 100M / Register_FemaleNumber, 2).ToString() + "%" : "0%";
string Checked_AverageExamineRatio = Math.Round(
(Register_MaleNumber != 0 ? Math.Round(Checked_MaleNumber * 100M / Register_MaleNumber, 2) : 0
+ Register_FemaleNumber != 0 ? Math.Round(Checked_FemaleNumber * 100M / Register_FemaleNumber, 2) : 0) / 2, 2
).ToString() + "%";
(
(Register_MaleNumber != 0 ? Math.Round(Checked_MaleNumber * 100M / Register_MaleNumber, 2) : 0)
+ (Register_FemaleNumber != 0 ? Math.Round(Checked_FemaleNumber * 100M / Register_FemaleNumber, 2) : 0)
) / 2
, 2).ToString() + "%";
documentData.CheckedDetail = new InspectionPersonnel_Detail
{
@ -1948,8 +1950,11 @@ namespace Shentun.Peis.ReportTemplates
string UnChecked_MaleExamineRatio = Register_MaleNumber != 0 ? Math.Round(UnChecked_MaleNumber * 100M / Register_MaleNumber, 2).ToString() + "%" : "0%";
string UnChecked_FemaleExamineRatio = Register_FemaleNumber != 0 ? Math.Round(UnChecked_FemaleNumber * 100M / Register_FemaleNumber, 2).ToString() + "%" : "0%";
string UnChecked_AverageExamineRatio = Math.Round(
(Register_MaleNumber != 0 ? Math.Round(UnChecked_MaleNumber * 100M / Register_MaleNumber, 2) : 0
+ Register_FemaleNumber != 0 ? Math.Round(UnChecked_FemaleNumber * 100M / Register_FemaleNumber, 2) : 0) / 2, 2).ToString() + "%";
(
(Register_MaleNumber != 0 ? Math.Round(UnChecked_MaleNumber * 100M / Register_MaleNumber, 2) : 0)
+ (Register_FemaleNumber != 0 ? Math.Round(UnChecked_FemaleNumber * 100M / Register_FemaleNumber, 2) : 0)
) / 2, 2
).ToString() + "%";
documentData.UnCheckedDetail = new InspectionPersonnel_Detail
{
@ -2041,8 +2046,8 @@ namespace Shentun.Peis.ReportTemplates
FemaleAsbitemCheckRatio = documentData.CheckedDetail.FemaleNumber != 0 ?
Math.Round(s.Where(m => m.SexId == SexFlag.Female).Count() * 100M / documentData.CheckedDetail.FemaleNumber, 2) + "%" : "0%",
TotalAsbitemCheckRatio = Math.Round(
(documentData.CheckedDetail.MaleNumber != 0 ? Math.Round(s.Where(m => m.SexId == SexFlag.Male).Count() * 100M / documentData.CheckedDetail.MaleNumber, 2) : 0
+ documentData.CheckedDetail.FemaleNumber != 0 ? Math.Round(s.Where(m => m.SexId == SexFlag.Female).Count() * 100M / documentData.CheckedDetail.FemaleNumber, 2) : 0) / 2, 2
((documentData.CheckedDetail.MaleNumber != 0 ? Math.Round(s.Where(m => m.SexId == SexFlag.Male).Count() * 100M / documentData.CheckedDetail.MaleNumber, 2) : 0)
+ (documentData.CheckedDetail.FemaleNumber != 0 ? Math.Round(s.Where(m => m.SexId == SexFlag.Female).Count() * 100M / documentData.CheckedDetail.FemaleNumber, 2) : 0)) / 2, 2
) + "%"
});

Loading…
Cancel
Save