fix(ui): 修复多个功能模块的验证和数据处理问题

- 在医生工作站退费功能中添加患者选择验证
- 统一药品管理中的仓库类型选择逻辑,移除重复代码
- 修复统计管理页面清空按钮的数据重置问题
- 修正西药管理页面处方打印按钮的功能绑定
- 完善库存报表查询的SQL过滤条件实现
- 更新多个控制器接口参数类型以支持业务流程
- 优化退费列表对话框的数据加载和错误处理
This commit is contained in:
2026-03-02 18:36:22 +08:00
parent 25c266babb
commit 208b8fc41d
14 changed files with 233 additions and 196 deletions

View File

@@ -66,7 +66,10 @@ public class OutpatientRefundController {
* @return 患者账单列表 * @return 患者账单列表
*/ */
@GetMapping(value = "/patient-payment") @GetMapping(value = "/patient-payment")
public R<?> getEncounterPatientPayment(@RequestParam Long encounterId) { public R<?> getEncounterPatientPayment(@RequestParam(required = false) Long encounterId) {
if (encounterId == null) {
return R.fail(null, "请先选择患者后再进行退费操作");
}
return outpatientRefundAppService.getEncounterPatientPayment(encounterId); return outpatientRefundAppService.getEncounterPatientPayment(encounterId);
} }

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.ILossReportFormAppService; import com.openhis.web.inventorymanage.appservice.ILossReportFormAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.LossReportFormDto; import com.openhis.web.inventorymanage.dto.LossReportFormDto;
import com.openhis.web.inventorymanage.dto.LossReportSearchParam; import com.openhis.web.inventorymanage.dto.LossReportSearchParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -104,23 +105,23 @@ public class LossReportFormController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return lossReportFormAppService.submitApproval(busNo); return lossReportFormAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return lossReportFormAppService.withdrawApproval(busNo); return lossReportFormAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IProductStocktakingAppService; import com.openhis.web.inventorymanage.appservice.IProductStocktakingAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.ProductStocktakingDto; import com.openhis.web.inventorymanage.dto.ProductStocktakingDto;
import com.openhis.web.inventorymanage.dto.ProductStocktakingSearchParam; import com.openhis.web.inventorymanage.dto.ProductStocktakingSearchParam;
import com.openhis.web.inventorymanage.dto.StocktakingBatchSearchParam; import com.openhis.web.inventorymanage.dto.StocktakingBatchSearchParam;
@@ -140,23 +141,23 @@ public class ProductStocktakingController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return productStocktakingAppService.submitApproval(busNo); return productStocktakingAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return productStocktakingAppService.withdrawApproval(busNo); return productStocktakingAppService.withdrawApproval(request.getBusNo());
} }
/** /**

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IProductTransferAppService; import com.openhis.web.inventorymanage.appservice.IProductTransferAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.BatchTransferSearchParam; import com.openhis.web.inventorymanage.dto.BatchTransferSearchParam;
import com.openhis.web.inventorymanage.dto.ProductTransferDto; import com.openhis.web.inventorymanage.dto.ProductTransferDto;
import com.openhis.web.inventorymanage.dto.SupplySearchParam; import com.openhis.web.inventorymanage.dto.SupplySearchParam;
@@ -151,23 +152,23 @@ public class ProductTransferController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return productTransferAppService.submitApproval(busNo); return productTransferAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return productTransferAppService.withdrawApproval(busNo); return productTransferAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService; import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.InventorySearchParam; import com.openhis.web.inventorymanage.dto.InventorySearchParam;
import com.openhis.web.inventorymanage.dto.PurchaseInventoryDto; import com.openhis.web.inventorymanage.dto.PurchaseInventoryDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -104,23 +105,23 @@ public class PurchaseInventoryController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return purchaseInventoryAppService.submitApproval(busNo); return purchaseInventoryAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return purchaseInventoryAppService.withdrawApproval(busNo); return purchaseInventoryAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**
// * 采购入库单据详情 // * 采购入库单据详情

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IPurchaseReturnAppService; import com.openhis.web.inventorymanage.appservice.IPurchaseReturnAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.PurchaseReturnDetailDto; import com.openhis.web.inventorymanage.dto.PurchaseReturnDetailDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -96,23 +97,23 @@ public class PurchaseReturnController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/return-submit-approval") @PutMapping("/return-submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return purchaseReturnAppService.submitApproval(busNo); return purchaseReturnAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/return-withdraw-approval") @PutMapping("/return-withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return purchaseReturnAppService.withdrawApproval(busNo); return purchaseReturnAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IRequisitionIssueAppService; import com.openhis.web.inventorymanage.appservice.IRequisitionIssueAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.IssueDto; import com.openhis.web.inventorymanage.dto.IssueDto;
import com.openhis.web.inventorymanage.dto.IssueSearchParam; import com.openhis.web.inventorymanage.dto.IssueSearchParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -104,23 +105,23 @@ public class RequisitionIssueController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return requisitionIssueAppService.submitApproval(busNo); return requisitionIssueAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return requisitionIssueAppService.withdrawApproval(busNo); return requisitionIssueAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**

View File

@@ -5,6 +5,7 @@ package com.openhis.web.inventorymanage.controller;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IReturnIssueAppService; import com.openhis.web.inventorymanage.appservice.IReturnIssueAppService;
import com.openhis.web.inventorymanage.dto.BusNoRequest;
import com.openhis.web.inventorymanage.dto.IssueDto; import com.openhis.web.inventorymanage.dto.IssueDto;
import com.openhis.web.inventorymanage.dto.IssueSearchParam; import com.openhis.web.inventorymanage.dto.IssueSearchParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -104,23 +105,23 @@ public class ReturnIssueController {
/** /**
* 提交审批 * 提交审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/submit-approval") @PutMapping("/submit-approval")
public R<?> submitApproval(@RequestBody String busNo) { public R<?> submitApproval(@RequestBody BusNoRequest request) {
return returnIssueAppService.submitApproval(busNo); return returnIssueAppService.submitApproval(request.getBusNo());
} }
/** /**
* 撤回审批 * 撤回审批
* *
* @param busNo 单据号 * @param request 单据号请求
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/withdraw-approval") @PutMapping("/withdraw-approval")
public R<?> withdrawApproval(@RequestBody String busNo) { public R<?> withdrawApproval(@RequestBody BusNoRequest request) {
return returnIssueAppService.withdrawApproval(busNo); return returnIssueAppService.withdrawApproval(request.getBusNo());
} }
// /** // /**

View File

@@ -4,6 +4,7 @@
<select id="selectProductReportPage" <select id="selectProductReportPage"
resultType="com.openhis.web.reportmanage.dto.InventoryProductReportPageDto"> resultType="com.openhis.web.reportmanage.dto.InventoryProductReportPageDto">
SELECT * FROM (
SELECT T8.id, --ID SELECT T8.id, --ID
T8.bus_no, --药品编码 T8.bus_no, --药品编码
T8.name, --药品名称 T8.name, --药品名称
@@ -128,6 +129,27 @@
ON T1.location_store_id = T7.id ON T1.location_store_id = T7.id
AND T7.delete_flag = '0' AND T7.delete_flag = '0'
WHERE T1.delete_flag = '0') AS T10 WHERE T1.delete_flag = '0') AS T10
${ew.customSqlSegment} ) AS combined_result
<where>
<if test="inventoryScope != null">
<choose>
<when test="inventoryScope == 2">
item_quantity = 0
</when>
<when test="inventoryScope == 3">
item_quantity > 0
</when>
<when test="inventoryScope == 4">
item_quantity &lt;= 20
</when>
<when test="inventoryScope == 5">
item_quantity &lt;= 50
</when>
</choose>
</if>
<if test="ew != null and ew.sqlSegment != null and ew.sqlSegment != ''">
AND ${ew.sqlSegment}
</if>
</where>
</select> </select>
</mapper> </mapper>

View File

@@ -123,15 +123,23 @@ function openDialog() {
getList(); getList();
} }
function getList() { function getList() {
// 检查 encounterId 是否为空
if (!props.encounterId) {
proxy.$modal.msgWarning('请先选择患者');
refundList.value = [];
total.value = 0;
tableLoading.value = false;
return;
}
refundList.value = []; refundList.value = [];
tableLoading.value = true; tableLoading.value = true;
getEncounterPatientPayment(props.encounterId).then((res) => { getEncounterPatientPayment(props.encounterId).then((res) => {
refundList.value = res.data; refundList.value = res.data;
total.value = res.data ? res.data.length : 0; total.value = res.data ? res.data.length : 0;
// expandOrder.value = refundList.value.map((item) => {
// return item.paymentNo;
// });
tableLoading.value = false; tableLoading.value = false;
}).catch((error) => {
tableLoading.value = false;
console.error('获取退费账单失败:', error);
}); });
} }

View File

@@ -527,6 +527,11 @@ function getEnPrescription(encounterId) {
} }
function handleRefund(encounterId) { function handleRefund(encounterId) {
// 校验是否选择了患者
if (!encounterId) {
ElMessage.warning('请先选择患者后再进行退费操作');
return;
}
currentEncounterId.value = encounterId; currentEncounterId.value = encounterId;
openRefundListDialog.value = true; openRefundListDialog.value = true;
} }

View File

@@ -857,15 +857,10 @@ function handleBlur(row, index) {
row.applicantId = userStore.id; row.applicantId = userStore.id;
} }
function handleChangeSourceTypeEnum(value) { function handleChangeSourceTypeEnum(value) {
if (value == 16) { // 无论选择哪种仓库类型,都显示药房、药库、耗材库的选项
getPharmacyList().then((res) => { getPharmacyCabinetList().then((res) => {
sourceTypeListOptions.value = res.data; sourceTypeListOptions.value = res.data;
}); });
} else if (value == 11) {
getDispensaryList().then((res) => {
sourceTypeListOptions.value = res.data;
});
}
} }
// 获取详情 // 获取详情
function getTransferProductDetails() { function getTransferProductDetails() {
@@ -1247,21 +1242,13 @@ function handleChangePurposeTypeEnum(value) {
} }
// 源仓库切换 // 源仓库切换
function handleChangelossTypeEnum(value) { function handleChangelossTypeEnum(value) {
if (value == 16) { // 无论选择哪种仓库类型,都显示药房、药库、耗材库的选项
getPharmacyList().then((res) => { getPharmacyCabinetList().then((res) => {
sourceTypeListOptions.value = res.data; sourceTypeListOptions.value = res.data;
if (!route.query.supplyBusNo) { if (!route.query.supplyBusNo) {
receiptHeaderForm.lossLocationId = ''; receiptHeaderForm.lossLocationId = '';
} }
}); });
} else if (value == 11) {
getDispensaryList().then((res) => {
sourceTypeListOptions.value = res.data;
if (!route.query.supplyBusNo) {
receiptHeaderForm.lossLocationId = '';
}
});
}
} }
// 单位处理 // 单位处理
function handleUnitCodeChange(row, index, value) { function handleUnitCodeChange(row, index, value) {

View File

@@ -734,6 +734,11 @@ function handleExport() {
function handleClear() { function handleClear() {
// 清空查询条件 // 清空查询条件
proxy.resetForm('queryRef'); proxy.resetForm('queryRef');
// 清空不在 queryParams 中的字段
locationId.value = [];
supplierId.value = [];
// 清空 prop 与 v-model 不匹配的字段
queryParams.value.inventoryStatusEnum = undefined;
getList(); getList();
} }

View File

@@ -218,7 +218,7 @@
<el-button type="primary" @click="handleScan()" style="margin-left: 30px"> <el-button type="primary" @click="handleScan()" style="margin-left: 30px">
扫码 扫码
</el-button> </el-button>
<el-button type="primary" @click="previewAndPrint()" style="margin-left: 30px"> <el-button type="primary" @click="printPrescription()" style="margin-left: 30px">
处方打印 处方打印
</el-button> </el-button>
<div style="position: absolute; top: 30px; right: 25px"> <div style="position: absolute; top: 30px; right: 25px">