修改门诊挂号和费用支付上的费用性质不一致的问题,并且将解决无法收费的问题

This commit is contained in:
Auora
2025-11-05 14:09:06 +08:00
committed by wzk
parent e42d990304
commit 41791c9ccc
5 changed files with 47 additions and 8 deletions

View File

@@ -172,13 +172,13 @@ public class PaymentReconciliationController {
/** /**
* 挂号收费(挂号收费先医保挂号,收费成功后再本系统挂号) * 挂号收费(挂号收费先医保挂号,收费成功后再本系统挂号)
* *
* @param outpatientRegistrationAddParam 挂号信息 * @param outpatientRegistrationSettleParam 挂号信息
* @return 操做结果 * @return 操做结果
*/ */
@PostMapping("/reg-pay") @PostMapping("/reg-pay")
public R<?> regPay(@Valid @RequestBody OutpatientRegistrationSettleParam outpatientRegistrationAddParam) { public R<?> regPay(@Valid @RequestBody OutpatientRegistrationSettleParam outpatientRegistrationSettleParam) {
R<?> result = paymentReconciliationService.regPay(outpatientRegistrationAddParam, R<?> result = paymentReconciliationService.regPay(outpatientRegistrationSettleParam,
outpatientRegistrationAddParam.getChrgBchno(), outpatientRegistrationAddParam.getPaymentDetails()); outpatientRegistrationSettleParam.getChrgBchno(), outpatientRegistrationSettleParam.getPaymentDetails());
// 付款成功后,开具发票 // 付款成功后,开具发票
if (result.getCode() == 200) { if (result.getCode() == 200) {
PaymentReconciliation paymentRecon = null; PaymentReconciliation paymentRecon = null;

View File

@@ -9,7 +9,7 @@
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/> />
<!-- <link rel="icon" href="src/assets/images/ccu.png" /> --> <!-- <link rel="icon" href="src/assets/images/ccu.png" /> -->
<link rel="stylesheet" type="text/css" media="print" href="/public/print-lock.css"> <link rel="stylesheet" type="text/css" media="print" href="/print-lock.css">
<title>医院信息管理系统</title> <title>医院信息管理系统</title>
<!--[if lt IE 11 <!--[if lt IE 11
]><script> ]><script>

View File

@@ -182,6 +182,8 @@
:paymentId="paymentId" :paymentId="paymentId"
:details="details" :details="details"
:chargedItems="chargedItems" :chargedItems="chargedItems"
:feeType="patientInfo.medfeePaymtdCode"
:medfee_paymtd_code="medfee_paymtd_code"
@refresh="getPatientList" @refresh="getPatientList"
/> />
</div> </div>
@@ -203,11 +205,13 @@ import useUserStore from '@/store/modules/user';
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const userStore = useUserStore(); const userStore = useUserStore();
const { medfee_paymtd_code } = proxy.useDict('medfee_paymtd_code');
const queryParams = ref({ const queryParams = ref({
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50,
statusEnum: 1, statusEnum: 1,
}); });
const totalAmounts = ref(0); const totalAmounts = ref(0);
const selectedRows = ref([]); const selectedRows = ref([]);
const patientList = ref([]); const patientList = ref([]);

View File

@@ -4,7 +4,7 @@
<el-text size="large" style="display: block; margin-bottom: 15px"> <el-text size="large" style="display: block; margin-bottom: 15px">
收费日期{{ currentDate }} 收费日期{{ currentDate }}
</el-text> </el-text>
<el-text size="large">费用性质{{ '自费' }}</el-text> <el-text size="large">费用性质{{ getFeeTypeText }}</el-text>
<div class="amount-row"> <div class="amount-row">
<el-text size="large">应收金额</el-text> <el-text size="large">应收金额</el-text>
<el-text size="large" type="primary" class="amount"> <el-text size="large" type="primary" class="amount">
@@ -97,6 +97,23 @@ import { computed, watch, reactive, ref, getCurrentInstance, nextTick } from 'vu
import { Delete } from '@element-plus/icons-vue'; import { Delete } from '@element-plus/icons-vue';
import { debounce } from 'lodash-es'; import { debounce } from 'lodash-es';
// 获取费用性质文本
const getFeeTypeText = computed(() => {
if (!props.medfee_paymtd_code || !Array.isArray(props.medfee_paymtd_code)) {
return '';
}
// 如果有feeType根据feeType查找对应的文本
if (props.feeType) {
const dict = props.medfee_paymtd_code.find(item => item.value === props.feeType);
return dict ? dict.label : '';
}
// 如果只有一个选项,直接返回第一个选项的文本
if (props.medfee_paymtd_code.length === 1) {
return props.medfee_paymtd_code[0].label || '';
}
return '';
});
const props = defineProps({ const props = defineProps({
open: { open: {
type: Boolean, type: Boolean,
@@ -130,6 +147,14 @@ const props = defineProps({
type: Object, type: Object,
default: undefined, default: undefined,
}, },
medfee_paymtd_code: {
type: Array,
default: () => [],
},
feeType: {
type: String,
default: '',
}
}); });
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
@@ -271,6 +296,10 @@ function submit() {
return; return;
} }
dialogLoading.value = true; dialogLoading.value = true;
// 确保设置默认合同编号,避免非医保结算时查询合同信息
if (props.transformedData && props.transformedData.accountFormData) {
props.transformedData.accountFormData.contractNo = '0000';
}
savePayment({ savePayment({
// paymentEnum: 0, // paymentEnum: 0,
// kindEnum: 1, // kindEnum: 1,

View File

@@ -395,7 +395,7 @@
/> />
<el-table-column label="年龄" align="center" key="age" prop="age" width="120"> <el-table-column label="年龄" align="center" key="age" prop="age" width="120">
<template #default="scope"> <template #default="scope">
{{ scope.row.age ? `${scope.row.age}` : '-' }} {{ scope.row.age ? `${scope.row.age}` : '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -551,6 +551,8 @@
:transformedData="transformedData" :transformedData="transformedData"
:chrgBchno="chrgBchno" :chrgBchno="chrgBchno"
:registerBusNo="registerBusNo" :registerBusNo="registerBusNo"
:feeType="(patientInfo && patientInfo.medfeePaymtdCode) || (form && form.value && form.value.contractNo) || ''"
:medfee_paymtd_code="medfee_paymtd_code"
/> />
<RefundDialog <RefundDialog
:open="openRefundDialog" :open="openRefundDialog"
@@ -1097,6 +1099,7 @@ function handleAdd() {
console.log(transformedData, 'transformedData门诊挂号'); console.log(transformedData, 'transformedData门诊挂号');
chargeItemIdList.value = []; chargeItemIdList.value = [];
patientInfo.value.patientId = form.value.patientId; patientInfo.value.patientId = form.value.patientId;
patientInfo.value.medfeePaymtdCode = form.value.contractNo; // 设置费用性质
proxy.$refs['outpatientRegistrationRef'].validate((valid) => { proxy.$refs['outpatientRegistrationRef'].validate((valid) => {
if (valid) { if (valid) {
readCardLoading.value = true; readCardLoading.value = true;
@@ -1107,7 +1110,10 @@ function handleAdd() {
addOutpatientRegistration(transformedData.value) addOutpatientRegistration(transformedData.value)
.then((res) => { .then((res) => {
if (res.code == 200) { if (res.code == 200) {
// proxy.$modal.msgSuccess('挂号成功'); console.log('挂号成功,返回数据:', res.data);
// 立即刷新列表,确保挂号信息显示在当日已挂号列表中
getList();
chrgBchno.value = res.data.chrgBchno; chrgBchno.value = res.data.chrgBchno;
registerBusNo.value = res.data.busNo; registerBusNo.value = res.data.busNo;
totalAmount.value = res.data.psnCashPay; totalAmount.value = res.data.psnCashPay;