843 【门诊收费-收费项目】待收费患者的收费明细列表混入“已收费”项目,且错误计入合计金额
This commit is contained in:
@@ -35,9 +35,10 @@ public interface IOutpatientChargeAppService {
|
||||
* 根据就诊id查询患者处方列表
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param statusEnum 收费状态过滤(可选,不传则返回全部状态)
|
||||
* @return 患者处方列表
|
||||
*/
|
||||
List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId);
|
||||
List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId, Integer statusEnum);
|
||||
|
||||
/**
|
||||
* 根据就诊id查询患者处方列表并新增字段:实收金额、应收金额、优惠金额、折扣率
|
||||
|
||||
@@ -111,10 +111,11 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
||||
* 根据就诊id查询患者处方列表
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param statusEnum 收费状态过滤(可选,不传则返回全部状态)
|
||||
* @return 患者处方列表
|
||||
*/
|
||||
@Override
|
||||
public List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId) {
|
||||
public List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId, Integer statusEnum) {
|
||||
List<EncounterPatientPrescriptionDto> prescriptionDtoList
|
||||
= outpatientChargeAppMapper.selectEncounterPatientPrescription(encounterId,
|
||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.MEDICATION.getValue(),
|
||||
@@ -123,7 +124,7 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
||||
ChargeItemStatus.PLANNED.getValue(), ChargeItemStatus.BILLABLE.getValue(),
|
||||
ChargeItemStatus.BILLED.getValue(), ChargeItemStatus.REFUNDING.getValue(),
|
||||
ChargeItemStatus.REFUNDED.getValue(), ChargeItemStatus.PART_REFUND.getValue(),
|
||||
CommonConstants.TableName.WOR_DEVICE_REQUEST);
|
||||
CommonConstants.TableName.WOR_DEVICE_REQUEST, statusEnum);
|
||||
prescriptionDtoList.forEach(e -> {
|
||||
// 收费状态枚举
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(ChargeItemStatus.class, e.getStatusEnum()));
|
||||
|
||||
@@ -61,11 +61,13 @@ public class OutpatientChargeController {
|
||||
* 根据就诊id查询患者处方列表
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param statusEnum 收费状态过滤(可选,不传则返回全部状态)
|
||||
* @return 患者处方列表
|
||||
*/
|
||||
@GetMapping(value = "/patient-prescription")
|
||||
public R<?> getEncounterPatientPrescription(@RequestParam Long encounterId) {
|
||||
return R.ok(outpatientChargeAppService.getEncounterPatientPrescription(encounterId));
|
||||
public R<?> getEncounterPatientPrescription(@RequestParam Long encounterId,
|
||||
@RequestParam(required = false) Integer statusEnum) {
|
||||
return R.ok(outpatientChargeAppService.getEncounterPatientPrescription(encounterId, statusEnum));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,7 +59,8 @@ public interface OutpatientChargeAppMapper {
|
||||
@Param("chinesePatentMedicine") Integer chinesePatentMedicine,
|
||||
@Param("planned") Integer planned, @Param("billable") Integer billable,
|
||||
@Param("billed") Integer billed, @Param("refunding") Integer refunding, @Param("refunded") Integer refunded,
|
||||
@Param("partRefund") Integer partRefund, @Param("worDeviceRequest") String worDeviceRequest);
|
||||
@Param("partRefund") Integer partRefund, @Param("worDeviceRequest") String worDeviceRequest,
|
||||
@Param("filterStatus") Integer filterStatus);
|
||||
|
||||
/**
|
||||
* 根据就诊id查询患者处方列表并新增字段:应收金额,实收金额,优惠金额,折扣率
|
||||
|
||||
@@ -173,13 +173,20 @@
|
||||
AND T9sr.delete_flag = '0'
|
||||
LEFT JOIN wor_service_request AS wsrp ON wsrp.id = wsr.parent_id AND wsrp.delete_flag = '0'
|
||||
WHERE T1.encounter_id = #{encounterId}
|
||||
AND T1.status_enum IN (0
|
||||
, #{planned}
|
||||
, #{billable}
|
||||
, #{billed}
|
||||
, #{refunding}
|
||||
, #{refunded}
|
||||
, #{partRefund})
|
||||
<choose>
|
||||
<when test="filterStatus != null">
|
||||
AND T1.status_enum = #{filterStatus}
|
||||
</when>
|
||||
<otherwise>
|
||||
AND T1.status_enum IN (0
|
||||
, #{planned}
|
||||
, #{billable}
|
||||
, #{billed}
|
||||
, #{refunding}
|
||||
, #{refunded}
|
||||
, #{partRefund})
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND T1.context_enum != #{register}
|
||||
AND (
|
||||
-- 若能关联到请求表,则必须是“已签发”后才允许收费端展示
|
||||
|
||||
@@ -14,9 +14,13 @@ export function getList(queryParams) {
|
||||
/**
|
||||
* 患者处方列表
|
||||
*/
|
||||
export function getChargeList(encounterId, config = {}) {
|
||||
export function getChargeList(encounterId, statusEnum, config = {}) {
|
||||
let url = '/charge-manage/charge/patient-prescription?encounterId=' + encounterId
|
||||
if (statusEnum !== undefined && statusEnum !== null) {
|
||||
url += '&statusEnum=' + statusEnum
|
||||
}
|
||||
return request({
|
||||
url: '/charge-manage/charge/patient-prescription?encounterId=' + encounterId,
|
||||
url: url,
|
||||
method: 'get',
|
||||
...config
|
||||
})
|
||||
|
||||
@@ -466,9 +466,11 @@ function handleSelectionChange(selection) {
|
||||
}
|
||||
function handleTotalAmount() {
|
||||
if (selectedRows.value.length == 0) {
|
||||
totalAmounts.value = chargeList.value.reduce((accumulator, currentRow) => {
|
||||
return new Decimal(accumulator).add(currentRow.totalPrice.toFixed(2) || 0);
|
||||
}, new Decimal(0));
|
||||
totalAmounts.value = chargeList.value
|
||||
.filter((row) => row.statusEnum === 1)
|
||||
.reduce((accumulator, currentRow) => {
|
||||
return new Decimal(accumulator).add(currentRow.totalPrice.toFixed(2) || 0);
|
||||
}, new Decimal(0));
|
||||
} else {
|
||||
totalAmounts.value = selectedRows.value.reduce((accumulator, currentRow) => {
|
||||
return new Decimal(accumulator).add(currentRow.totalPrice.toFixed(2) || 0);
|
||||
@@ -530,7 +532,7 @@ function clickRow(params) {
|
||||
patientInfo.value = { ...row, encounterId: encId };
|
||||
chargeLoading.value = true;
|
||||
encounterId.value = encId;
|
||||
getChargeList(encId).then((res) => {
|
||||
getChargeList(encId, queryParams.value.statusEnum).then((res) => {
|
||||
chargeList.value = res.data;
|
||||
setTimeout(() => {
|
||||
chargeLoading.value = false;
|
||||
@@ -544,7 +546,7 @@ function handleClose(value, msg) {
|
||||
if (value == 'success') {
|
||||
proxy.$modal.msgSuccess(msg);
|
||||
chargeLoading.value = true;
|
||||
getChargeList(patientInfo.value.encounterId, { skipErrorMsg: true }).then((res) => {
|
||||
getChargeList(patientInfo.value.encounterId, queryParams.value.statusEnum, { skipErrorMsg: true }).then((res) => {
|
||||
chargeList.value = res.data;
|
||||
setTimeout(() => {
|
||||
chargeLoading.value = false;
|
||||
|
||||
Reference in New Issue
Block a user