挂号退款加退款记录

This commit is contained in:
2025-11-17 10:59:22 +08:00
parent b886726ecc
commit 491d8f8930
8 changed files with 268 additions and 29 deletions

View File

@@ -267,6 +267,17 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra
new HashSet<>(Arrays.asList("patient_name", "organization_name", "practitioner_name", "healthcare_name")),
request);
// 手动处理 statusEnum 参数(用于过滤退号记录)
String statusEnumParam = request.getParameter("statusEnum");
if (statusEnumParam != null && !statusEnumParam.isEmpty()) {
try {
Integer statusEnum = Integer.parseInt(statusEnumParam);
queryWrapper.eq("status_enum", statusEnum);
} catch (NumberFormatException e) {
// 忽略无效的参数值
}
}
IPage<CurrentDayEncounterDto> currentDayEncounter = outpatientRegistrationAppMapper.getCurrentDayEncounter(
new Page<>(pageNo, pageSize), EncounterClass.AMB.getValue(), ParticipantType.ADMITTER.getCode(),
queryWrapper, ChargeItemContext.REGISTER.getValue(), PaymentStatus.SUCCESS.getValue());

View File

@@ -131,4 +131,40 @@ public class CurrentDayEncounterDto {
*/
private Date birthDate;
/**
* 退号日期/时间
*/
private Date returnDate;
/**
* 退号原因
*/
private String returnReason;
/**
* 退号操作人
*/
private String operatorName;
/**
* 退号操作工号
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long operatorId;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 合同编码(费用性质代码)
*/
private String contractNo;
/**
* 退款方式(多个支付方式用逗号分隔)
*/
private String refundMethod;
}

View File

@@ -597,7 +597,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
// 全退
String ybSettleIds = paymentReconciliation.getYbSettleIds();
PaymentReconciliation unPaymentReconciliation = normalUnCharge(paymentReconciliation, PaymentRecDetails, null);
PaymentReconciliation unPaymentReconciliation = normalUnCharge(paymentReconciliation, PaymentRecDetails, null, null);
if (!StringUtils.isEmpty(ybSettleIds)) {
// 医保结算信息
List<String> ybSettleIdList = Arrays.asList(ybSettleIds.split(","));
@@ -734,7 +734,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
}
PaymentReconciliation unPaymentReconciliation =
normalUnCharge(paymentReconciliation, paymentRecDetails, cancelPaymentDto.getSetlId());
normalUnCharge(paymentReconciliation, paymentRecDetails, cancelPaymentDto.getSetlId(), cancelPaymentDto.getReason());
return R.ok(unPaymentReconciliation);
}
@@ -792,10 +792,12 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
*
* @param paymentReconciliation 付款实体
* @param paymentRecDetails 付款详情
* @param setlIds 医保结算ID
* @param reason 退号/退费原因
* @return 结果
*/
private PaymentReconciliation normalUnCharge(PaymentReconciliation paymentReconciliation,
List<PaymentRecDetail> paymentRecDetails, String setlIds) {
List<PaymentRecDetail> paymentRecDetails, String setlIds, String reason) {
// 获取原ID
Long id = paymentReconciliation.getId();
@@ -805,7 +807,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
.setEntererId(SecurityUtils.getLoginUser().getPractitionerId()).setBillDate(new Date())
.setTenderedAmount(paymentReconciliation.getTenderedAmount().negate())
.setReturnedAmount(paymentReconciliation.getReturnedAmount().negate())
.setDisplayAmount(paymentReconciliation.getDisplayAmount().negate());
.setDisplayAmount(paymentReconciliation.getDisplayAmount().negate())
.setRefundReason(reason); // 保存退号/退费原因
if (setlIds != null) {
paymentReconciliation.setYbSettleIds(setlIds);
}
@@ -2232,7 +2235,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
}
// 全退
PaymentReconciliation unPaymentReconciliation = normalUnCharge(paymentReconciliation, paymentRecDetails, null);
PaymentReconciliation unPaymentReconciliation = normalUnCharge(paymentReconciliation, paymentRecDetails, null, null);
// 取医保结算数据
String ybSettleIds = paymentReconciliation.getYbSettleIds();