From f81a553c21300dfaf7f141c86776824365202330 Mon Sep 17 00:00:00 2001 From: "Zhang.WH" Date: Fri, 28 Mar 2025 13:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=8D=AF=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OutpatientRefundAppServiceImpl.java | 27 ++-- .../mapper/OutpatientRefundAppMapper.java | 4 +- .../appservice/IDispenseAddAppService.java | 22 ---- .../IWesternMedicineDispenseAppService.java | 18 ++- .../impl/IDispenseAddAppServiceImpl.java | 88 ------------- ...esternMedicineDispenseAppServiceImpl.java} | 118 +++++++++--------- .../WesternMedicineDispenseController.java | 29 +++-- .../dto/DispenseInventoryDto.java | 4 +- .../dto/EncounterInfoPageDto.java | 4 +- .../dto/EncounterInfoSearchParam.java | 4 +- .../web/pharmacymanage/dto/PageInitDto.java | 4 +- .../dto/PrescriptionInfoDto.java | 6 +- .../dto/PrescriptionMedicineInfoDto.java | 6 +- .../dto/PrescriptionPatientInfoDto.java | 6 +- .../mapper/WesternMedicineDispenseMapper.java | 21 ++-- .../OutpatientRefundAppMapper.xml | 63 +++++----- .../openhis/common/enums/DispenseStatus.java | 96 ++++++++++++++ .../common/enums/DispenseStatusEnum.java | 71 ----------- .../openhis/common/enums/RequestStatus.java | 27 ++-- .../service/impl/OrganizationServiceImpl.java | 11 +- .../IPaymentReconciliationService.java | 4 +- .../PaymentReconciliationServiceImpl.java | 24 ++-- .../service/IMedicationDispenseService.java | 9 ++ .../impl/MedicationDispenseServiceImpl.java | 60 ++++++++- 24 files changed, 358 insertions(+), 368 deletions(-) delete mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IDispenseAddAppService.java delete mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IDispenseAddAppServiceImpl.java rename openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/{IWesternMedicineDispenseAppServiceImpl.java => WesternMedicineDispenseAppServiceImpl.java} (73%) create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java delete mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatusEnum.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java index 8dfd14ae..fdc0baaf 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java @@ -4,22 +4,18 @@ package com.openhis.web.chargemanage.appservice.impl; import java.util.List; -import java.util.stream.Collectors; -import com.openhis.web.chargemanage.dto.RefundItemDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.core.common.core.domain.R; -import com.core.common.utils.MessageUtils; -import com.openhis.administration.domain.ChargeItem; import com.openhis.administration.service.IChargeItemService; import com.openhis.common.constant.CommonConstants; -import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.PaymentStatus; import com.openhis.financial.service.IPaymentReconciliationService; import com.openhis.web.chargemanage.appservice.IOutpatientRefundAppService; import com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto; +import com.openhis.web.chargemanage.dto.RefundItemDto; import com.openhis.web.chargemanage.mapper.OutpatientRefundAppMapper; /** @@ -61,28 +57,19 @@ public class OutpatientRefundAppServiceImpl implements IOutpatientRefundAppServi @Override public R refundPayment(List paymentIdList) { - List refundItemList = outpatientRefundAppMapper.selectRefundItem(paymentIdList, CommonConstants.TableName.MED_MEDICATION_REQUEST, - CommonConstants.TableName.WOR_SERVICE_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST, - CommonConstants.Common.THREE); - // 医生同意退费 // 查询所有的chargeid,对应生成一个负的chargeitem // 根据每个 chargeitem判断对应的服务,药品,耗材是否已发放执行 // 若已发放/执行需要对应的发药人/执行人审批(药品耗材需要先退药) - for (Long paymentId : paymentIdList) { - // 根据支付id获取对应收费项目的id列表 - List chargeItemIdList = paymentReconciliationService.getChargeItemIdListByPayment(paymentId); - if (chargeItemIdList == null) { - return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); - } - // 根据收费项目id列表获取收费信息 - List chargeItemList = chargeItemService.getChargeItemInfo(chargeItemIdList); + // 根据支付id获取对应收费项目的id列表 + List chargeItemIdList = paymentReconciliationService.getChargeItemIdListByPayment(paymentIdList); - List prescriptionNoList = - chargeItemList.stream().map(ChargeItem::getPrescriptionNo).collect(Collectors.toList()); + //根据收费项目id列表查询退费项 + List refundItemList = outpatientRefundAppMapper.selectRefundItem(chargeItemIdList, + CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_SERVICE_REQUEST, + CommonConstants.TableName.WOR_DEVICE_REQUEST, CommonConstants.Common.THREE); - } return null; } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientRefundAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientRefundAppMapper.java index aa0eab06..a4e7132c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientRefundAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientRefundAppMapper.java @@ -36,14 +36,14 @@ public interface OutpatientRefundAppMapper { /** * 查询退费项目 * - * @param paymentIdList 支付编号列表 + * @param chargeItemIdList 收费项列表 * @param medMedicationRequest 药品请求表 * @param worServiceRequest 服务请求表 * @param worDeviceRequest 耗材请求表 * @param three 用于字符截位 * @return 退费项目列表 */ - List selectRefundItem(@Param("paymentIdList") List paymentIdList, + List selectRefundItem(@Param("chargeItemIdList") List chargeItemIdList, @Param("medMedicationRequest") String medMedicationRequest, @Param("worServiceRequest") String worServiceRequest, @Param("worDeviceRequest") String worDeviceRequest, @Param("three") Integer three); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IDispenseAddAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IDispenseAddAppService.java deleted file mode 100644 index abd8b1b0..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IDispenseAddAppService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.openhis.web.pharmacymanage.appservice; - -import com.openhis.medication.domain.MedicationRequest; - -import java.util.List; - -/** - * 新增药品发放草稿 应用实现接口 - * - * @author wangyang - * @date 2025/3/14 - */ -public interface IDispenseAddAppService { - - /** - * 新增药品发放草稿 - * - * @param medicationRequestList - * @return 无 - */ - boolean addMedicationDispense(List medicationRequestList); -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IWesternMedicineDispenseAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IWesternMedicineDispenseAppService.java index 8978f2e4..c4b75ec5 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IWesternMedicineDispenseAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/IWesternMedicineDispenseAppService.java @@ -1,10 +1,10 @@ package com.openhis.web.pharmacymanage.appservice; +import javax.servlet.http.HttpServletRequest; + import com.core.common.core.domain.R; import com.openhis.web.pharmacymanage.dto.EncounterInfoSearchParam; -import javax.servlet.http.HttpServletRequest; - /** * 处方管理 应用实现接口 * @@ -29,14 +29,12 @@ public interface IWesternMedicineDispenseAppService { * @param request 请求数据 * @return 就诊病人分页列表 */ - R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, - Integer pageNo, - Integer pageSize, - HttpServletRequest request); - + R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, Integer pageNo, Integer pageSize, + HttpServletRequest request); /** * 查询处方单列表 + * * @param encounterId 就诊号 * @return 处方单列表 */ @@ -44,18 +42,18 @@ public interface IWesternMedicineDispenseAppService { /** * 处方单核对发药 + * * @param prescriptionNo 处方号 * @return 处理结果 */ R medicineDispense(String prescriptionNo); - /** * 处方单作废 + * * @param prescriptionNo 处方号 * @param notPerformedReasonEnum 未发药原因 * @return 处理结果 */ - R medicineCancel(String prescriptionNo, - Integer notPerformedReasonEnum); + R medicineCancel(String prescriptionNo, Integer notPerformedReasonEnum); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IDispenseAddAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IDispenseAddAppServiceImpl.java deleted file mode 100644 index f91cbb41..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IDispenseAddAppServiceImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.openhis.web.pharmacymanage.appservice.impl; - -import com.core.common.utils.DateUtils; -import com.openhis.common.enums.DispenseStatusEnum; -import com.openhis.medication.domain.MedicationDispense; -import com.openhis.medication.domain.MedicationRequest; -import com.openhis.medication.service.IMedicationDispenseService; -import com.openhis.web.pharmacymanage.appservice.IDispenseAddAppService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; - -/** - * 西药发放 应用实现类 - * - * @author wangyang - * @date 2025/3/14 - */ -@Service -public class IDispenseAddAppServiceImpl implements IDispenseAddAppService { - - @Resource - IMedicationDispenseService iMedicationDispenseService; - - /** - * 新增药品发放草稿 - * - * @param medicationRequestList 药品请求数据 - * @return 无 - */ - @Override - public boolean addMedicationDispense(List medicationRequestList) { - - List medicationDispenseList = new ArrayList<>(); - MedicationDispense medicationDispense; - - for (MedicationRequest medicationRequest : medicationRequestList) { - - medicationDispense = new MedicationDispense(); - - // 药品发放id - medicationDispense.setBusNo(medicationRequest.getBusNo()); - // 药品发放状态 - medicationDispense.setStatusEnum(DispenseStatusEnum.DRAFT.getValue()); - // 状态变更时间 - medicationDispense.setStatusChangedTime(DateUtils.getNowDate()); - // 发药类型 - medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum()); - // 药品编码 - medicationDispense.setMedicationId(medicationRequest.getMedicationId()); - // 请求数量 - medicationDispense.setQuantity(medicationRequest.getQuantity()); - // 请求单位编码 - medicationDispense.setUnitCode(medicationRequest.getUnitCode()); - // 产品批号 - medicationDispense.setLotNumber(medicationRequest.getLotNumber()); - // 患者id - medicationDispense.setPatientId(medicationRequest.getPatientId()); - // 就诊id - medicationDispense.setEncounterId(medicationRequest.getEncounterId()); - // 支持用药信息 - medicationDispense.setSupportInfo(medicationRequest.getSupportInfo()); - // 发药人 - medicationDispense.setPractitionerId(0L); - // 发放药房 - medicationDispense.setLocationId(medicationRequest.getPerformOrg()); - // 药品请求id - medicationDispense.setMedReqId(medicationRequest.getId()); - // 已发药数量 - medicationDispense.setDispenseQuantity(0); - // 用法 - medicationDispense.setMethodCode(medicationRequest.getMethodCode()); - // 用药频次 - medicationDispense.setFrequencyCode(medicationRequest.getRateCode()); - // 单次剂量 - medicationDispense.setDose(medicationRequest.getDose()); - // 剂量单位 - medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode()); - // 单次最大剂量 - medicationDispense.setMaxUnit(medicationRequest.getMaxDose()); - - medicationDispenseList.add(medicationDispense); - } - return iMedicationDispenseService.saveBatch(medicationDispenseList); - } -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java similarity index 73% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java index a819ef33..e49323c3 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java @@ -1,5 +1,19 @@ package com.openhis.web.pharmacymanage.appservice.impl; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; @@ -9,7 +23,7 @@ import com.core.common.utils.SecurityUtils; import com.openhis.administration.domain.Organization; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.enums.DispenseStatusEnum; +import com.openhis.common.enums.DispenseStatus; import com.openhis.common.enums.NotPerformedReasonEnum; import com.openhis.common.enums.OrganizationClass; import com.openhis.common.utils.HisQueryUtils; @@ -20,18 +34,6 @@ import com.openhis.web.pharmacymanage.dto.*; import com.openhis.web.pharmacymanage.mapper.WesternMedicineDispenseMapper; import com.openhis.workflow.domain.InventoryItem; import com.openhis.workflow.service.IInventoryItemService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletRequest; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 西药发放 应用实现类 @@ -40,7 +42,7 @@ import java.util.stream.Stream; * @date 2025/3/14 */ @Service -public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService { +public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService { @Autowired private IOrganizationService iOrganizationService; @@ -67,14 +69,15 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 获取科室下拉选列表 List organizationList = iOrganizationService.getList(OrganizationClass.CLINIC.getValue()); List organizationOptions = organizationList.stream() - .map(organization -> new PageInitDto.DepartmentOption(organization.getId(), - organization.getName())).collect(Collectors.toList()); + .map(organization -> new PageInitDto.DepartmentOption(organization.getId(), organization.getName())) + .collect(Collectors.toList()); // 未发药原因下拉选列表 List notPerformedReasonOptions = - Stream.of(NotPerformedReasonEnum.values()).map(notPerformedReason -> - new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(), - notPerformedReason.getInfo())).collect(Collectors.toList()); + Stream.of(NotPerformedReasonEnum.values()) + .map(notPerformedReason -> new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(), + notPerformedReason.getInfo())) + .collect(Collectors.toList()); initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions); return R.ok(initDto); @@ -90,33 +93,32 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD * @return 就诊病人列表 */ @Override - public R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, - Integer pageNo, - Integer pageSize, - HttpServletRequest request) { + public R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, Integer pageNo, + Integer pageSize, HttpServletRequest request) { // 查询条件设定 String condition = encounterInfoSearchParam.getCondition(); - if (!condition.isEmpty()){ + if (!condition.isEmpty()) { Pattern pattern = Pattern.compile(".*\\d.*"); Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition()); - encounterInfoSearchParam.setIdCard(matcher.find() ? condition:""); - encounterInfoSearchParam.setPatientName(!matcher.find() ? condition:""); + encounterInfoSearchParam.setIdCard(matcher.find() ? condition : ""); + encounterInfoSearchParam.setPatientName(!matcher.find() ? condition : ""); } // 构建查询条件 QueryWrapper queryWrapper = - HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam,null,null, request); + HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, null, null, request); // 查询就诊病人列表 - Page encounterInfoPageDto = westernMedicineDispenseMapper.selectEncounterInfoListPage( - new Page<>(pageNo, pageSize), queryWrapper); + Page encounterInfoPageDto = + westernMedicineDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper); return R.ok(encounterInfoPageDto); } /** * 查询处方单列表 + * * @param encounterId 就诊号 * @return 处方单列表 */ @@ -124,15 +126,15 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD public R getPrescriptionInfo(Long encounterId) { // 患者基本信息查询 - PrescriptionPatientInfoDto prescriptionPatientInfoDto = westernMedicineDispenseMapper. - selectPrescriptionPatientInfo(encounterId); + PrescriptionPatientInfoDto prescriptionPatientInfoDto = + westernMedicineDispenseMapper.selectPrescriptionPatientInfo(encounterId); // 处方单信息查询 - List prescriptionMedicineInfoList = westernMedicineDispenseMapper. - selectPrescriptionMedicineInfoList(encounterId); + List prescriptionMedicineInfoList = + westernMedicineDispenseMapper.selectPrescriptionMedicineInfoList(encounterId); // 计算合计金额 - if(!prescriptionMedicineInfoList.isEmpty()) { + if (!prescriptionMedicineInfoList.isEmpty()) { BigDecimal totalPrice = new BigDecimal(0); for (PrescriptionMedicineInfoDto item : prescriptionMedicineInfoList) { totalPrice.add(item.getTotal_price()); @@ -149,6 +151,7 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD /** * 处方单核对发药 + * * @param prescriptionNo 处方号 * @return 处理结果 */ @@ -161,9 +164,9 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD boolean iInventoryItemUpdFlg = true; // 获取药品待发放和库存信息 - List dispenseInventoryList = westernMedicineDispenseMapper. - selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); - if(!dispenseInventoryList.isEmpty()){ + List dispenseInventoryList = + westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); + if (!dispenseInventoryList.isEmpty()) { MedicationDispense medicationDispense; InventoryItem inventoryItem; for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { @@ -173,7 +176,7 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // id medicationDispense.setId(dispenseInventoryDto.getDispenseId()); // 药品发放状态 - medicationDispense.setStatusEnum(DispenseStatusEnum.COMPLETED.getValue()); + medicationDispense.setStatusEnum(DispenseStatus.COMPLETED.getValue()); // 状态变更时间 medicationDispense.setStatusChangedTime(DateUtils.getNowDate()); // 发药人 @@ -189,23 +192,23 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 库存表项目设定 inventoryItem = new InventoryItem(); // 库存数量 - if (dispenseInventoryDto.getDispenseUnitCode().equals(dispenseInventoryDto. - getInventoryBaseUnitCode())) { + if (dispenseInventoryDto.getDispenseUnitCode() + .equals(dispenseInventoryDto.getInventoryBaseUnitCode())) { // id inventoryItem.setId(dispenseInventoryDto.getInventoryId()); // 包装数量 inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())); // 拆零数量(拆零比×包装数量) - inventoryItem.setMinQuantity(dispenseInventoryDto.getPartPercent(). - multiply(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); - } else if (dispenseInventoryDto.getDispenseUnitCode().equals(dispenseInventoryDto. - getInventoryMinUnitCode())) { + inventoryItem.setMinQuantity(dispenseInventoryDto.getPartPercent() + .multiply(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); + } else if (dispenseInventoryDto.getDispenseUnitCode() + .equals(dispenseInventoryDto.getInventoryMinUnitCode())) { // 拆零数量 inventoryItem.setMinQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())); // 包装数量(拆零数量÷拆零比) - inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()). - divide(dispenseInventoryDto.getPartPercent(),RoundingMode.HALF_UP)); + inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()) + .divide(dispenseInventoryDto.getPartPercent(), RoundingMode.HALF_UP)); } inventoryItemList.add(inventoryItem); } @@ -215,28 +218,28 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 库存更新 iInventoryItemUpdFlg = iInventoryItemService.updateBatchById(inventoryItemList); } - return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg ? - R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) - : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); + return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) + : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } /** * 作废 + * * @param prescriptionNo 处方号 * @param notPerformedReasonEnum 未发药原因 * @return 处理结果 */ @Override - public R medicineCancel(String prescriptionNo, - Integer notPerformedReasonEnum) { + public R medicineCancel(String prescriptionNo, Integer notPerformedReasonEnum) { List medicationDispenseList = new ArrayList<>(); boolean iMedicationDispenseUpdFlg = true; // 获取药品待发放记录 - List dispenseInventoryList = westernMedicineDispenseMapper. - selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); - if(!dispenseInventoryList.isEmpty()){ + List dispenseInventoryList = + westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); + if (!dispenseInventoryList.isEmpty()) { MedicationDispense medicationDispense; for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { @@ -245,7 +248,7 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // id medicationDispense.setId(dispenseInventoryDto.getDispenseId()); // 药品发放状态 - medicationDispense.setStatusEnum(DispenseStatusEnum.DECLINED.getValue()); + medicationDispense.setStatusEnum(DispenseStatus.DECLINED.getValue()); // 未发药原因 medicationDispense.setNotPerformedReasonEnum(notPerformedReasonEnum); // 状态变更时间 @@ -257,8 +260,7 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 药品发放更新 iMedicationDispenseUpdFlg = iMedicationDispenseService.updateBatchById(medicationDispenseList); } - return iMedicationDispenseUpdFlg? - R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) - : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); + return iMedicationDispenseUpdFlg ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) + : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java index 63701cb3..db9063ac 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java @@ -1,17 +1,19 @@ package com.openhis.web.pharmacymanage.controller; -import com.core.common.core.domain.R; -import com.openhis.web.pharmacymanage.appservice.IWesternMedicineDispenseAppService; -import com.openhis.web.pharmacymanage.dto.EncounterInfoSearchParam; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import javax.servlet.http.HttpServletRequest; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; +import com.core.common.core.domain.R; +import com.openhis.web.pharmacymanage.appservice.IWesternMedicineDispenseAppService; +import com.openhis.web.pharmacymanage.dto.EncounterInfoSearchParam; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * 西药发药 @@ -49,11 +51,10 @@ public class WesternMedicineDispenseController { */ @GetMapping("/encounter-list") public R getEncounterInfoList(EncounterInfoSearchParam encounterInfoSearchParam, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest request) { - return iWesternMedicineDispenseService.getEncounterInfoListPage(encounterInfoSearchParam, - pageNo, pageSize, request); + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + return iWesternMedicineDispenseService.getEncounterInfoListPage(encounterInfoSearchParam, pageNo, pageSize, + request); } /** @@ -66,6 +67,8 @@ public class WesternMedicineDispenseController { return iWesternMedicineDispenseService.getPrescriptionInfo(encounterId); } + // todo:配药逻辑 + /** * 核对发药 * @@ -84,7 +87,7 @@ public class WesternMedicineDispenseController { */ @GetMapping("/medicine-cancel") public R medicineCancel(@RequestParam(value = "prescriptionNo") String prescriptionNo, - @RequestParam(value = "prescriptionNo") Integer notPerformedReasonEnum) { - return iWesternMedicineDispenseService.medicineCancel(prescriptionNo,notPerformedReasonEnum); + @RequestParam(value = "prescriptionNo") Integer notPerformedReasonEnum) { + return iWesternMedicineDispenseService.medicineCancel(prescriptionNo, notPerformedReasonEnum); } } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/DispenseInventoryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/DispenseInventoryDto.java index 1e0e470f..8f545de7 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/DispenseInventoryDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/DispenseInventoryDto.java @@ -3,11 +3,11 @@ */ package com.openhis.web.pharmacymanage.dto; +import java.math.BigDecimal; + import lombok.Data; import lombok.experimental.Accessors; -import java.math.BigDecimal; - /** * 药品发放和库存表连接信息 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java index d8cb007f..dc1eeed6 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java @@ -3,11 +3,11 @@ */ package com.openhis.web.pharmacymanage.dto; +import java.io.Serializable; + import lombok.Data; import lombok.experimental.Accessors; -import java.io.Serializable; - /** * 就诊人员列表 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java index e9ca23a1..d46515c4 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java @@ -3,11 +3,11 @@ */ package com.openhis.web.pharmacymanage.dto; +import java.io.Serializable; + import lombok.Data; import lombok.experimental.Accessors; -import java.io.Serializable; - /** * 处方列表查询条件 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java index 2ec69933..d5dd601a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java @@ -3,11 +3,11 @@ */ package com.openhis.web.pharmacymanage.dto; +import java.util.List; + import lombok.Data; import lombok.experimental.Accessors; -import java.util.List; - /** * * @author wangyang diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionInfoDto.java index aa11d25d..0272c80a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionInfoDto.java @@ -3,12 +3,12 @@ */ package com.openhis.web.pharmacymanage.dto; -import lombok.Data; -import lombok.experimental.Accessors; - import java.io.Serializable; import java.util.List; +import lombok.Data; +import lombok.experimental.Accessors; + /** * 处方信息 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java index 90c8d618..c89af2d4 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java @@ -3,12 +3,12 @@ */ package com.openhis.web.pharmacymanage.dto; -import lombok.Data; -import lombok.experimental.Accessors; - import java.io.Serializable; import java.math.BigDecimal; +import lombok.Data; +import lombok.experimental.Accessors; + /** * 就诊人员列表 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java index 69182e78..e22cdea8 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java @@ -3,13 +3,13 @@ */ package com.openhis.web.pharmacymanage.dto; -import lombok.Data; -import lombok.experimental.Accessors; - import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; +import lombok.Data; +import lombok.experimental.Accessors; + /** * 患者基本信息 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/mapper/WesternMedicineDispenseMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/mapper/WesternMedicineDispenseMapper.java index 5e367ae9..0fcabf4c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/mapper/WesternMedicineDispenseMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/mapper/WesternMedicineDispenseMapper.java @@ -3,37 +3,40 @@ */ package com.openhis.web.pharmacymanage.mapper; +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.web.pharmacymanage.dto.*; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - -import java.util.List; @Repository public interface WesternMedicineDispenseMapper { /** * 就诊病人列表分页查询 + * * @param page 分页 * @param queryWrapper 查询条件 * @return 就诊病人列表 */ Page selectEncounterInfoListPage(@Param("page") Page page, - @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); /** * 患者基本信息查询 + * * @param encounterId 就诊号 * @return 患者基本信息 */ PrescriptionPatientInfoDto selectPrescriptionPatientInfo(@Param("encounterId") Long encounterId); - /** * 处方单查询 + * * @param encounterId 就诊号 * @return 处方单列表 */ @@ -41,8 +44,10 @@ public interface WesternMedicineDispenseMapper { /** * 待发药和库存信息查询 - * @param prescriptionNo 处方号 + * + * @param prescriptionNo 处方号 * @return 待发药信息 */ - List selectDispenseInventoryInfoByPrescriptionNo(@Param("prescriptionNo") String prescriptionNo); + List + selectDispenseInventoryInfoByPrescriptionNo(@Param("prescriptionNo") String prescriptionNo); } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml index 6cb71a77..93fbf507 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml @@ -24,47 +24,46 @@ AND T1.delete_flag = '0' \ No newline at end of file diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java new file mode 100644 index 00000000..5e949485 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java @@ -0,0 +1,96 @@ +package com.openhis.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 药品请求状态 + * + * @author wangyang + * @date 2025-03-14 + */ +@Getter +@AllArgsConstructor +public enum DispenseStatus implements HisEnumInterface { + + /** + * 草稿 + */ + DRAFT(1, "DR", "草稿"), + + /** + * 待配药 + */ + PREPARATION(2, "PR", "待配药"), + + /** + * 待发药 + */ + IN_PROGRESS(3, "IN", "待发药"), + + /** + * 已发药 + */ + COMPLETED(4, "CO", "已发药"), + + /** + * 暂停 + */ + ON_HOLD(5, "ON", "暂停"), + + /** + * 停止 + */ + STOPPED(6, "ST", "停止"), + + /** + * 拒绝发药 + */ + DECLINED(7, "DE", "拒绝发药 已退药"), + + /** + * 已汇总 + */ + SUMMARIZED(8, "SR", "已汇总"), + + /** + * 部分发药 + */ + PART_COMPLETED(9, "PC", "部分发药"), + + /** + * 部分退药 + */ + PART_REFUND(10, "PR", "部分退药"), + + /** + * 退药中 + */ + IN_REFUND(11, "IR", "退药中"), + + /** + * 已退药 + */ + REFUNDED(12, "RE", "已退药"), + + /** + * 未知 + */ + UNKNOWN(13, "UN", "未知"); + + private Integer value; + private String code; + private String info; + + public static DispenseStatus getByValue(Integer value) { + if (value == null) { + return null; + } + for (DispenseStatus val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatusEnum.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatusEnum.java deleted file mode 100644 index 07943141..00000000 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatusEnum.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.openhis.common.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 药品请求状态 - * - * @author wangyang - * @date 2025-03-14 - */ -@Getter -@AllArgsConstructor -public enum DispenseStatusEnum implements HisEnumInterface { - - /** - * 草稿 - */ - DRAFT(0, "DR", "草稿"), - - /** - * 待配药 - */ - PREPARATION(1, "PR", "待配药"), - - /** - * 待发药 - */ - IN_PROGRESS(2, "IN", "待发药"), - - /** - * 已发药 - */ - COMPLETED(3, "CO", "已发药"), - - /** - * 暂停 - */ - ON_HOLD(4, "ON", "暂停"), - - /** - * 停止 - */ - STOPPED(5, "ST", "停止"), - - /** - * 未知 - */ - UNKNOWN(6, "UN", "未知"), - - /** - * 拒绝发药 已汇总,部分发药,部分退药,已退药 - */ - DECLINED(7, "DE", "拒绝发药 已汇总,部分发药,部分退药,已退药"); - - private Integer value; - private String code; - private String info; - - public static DispenseStatusEnum getByValue(Integer value) { - if (value == null) { - return null; - } - for (DispenseStatusEnum val : values()) { - if (val.getValue().equals(value)) { - return val; - } - } - return null; - } -} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java index 8fb13339..71abcc59 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/RequestStatus.java @@ -23,37 +23,42 @@ public enum RequestStatus implements HisEnumInterface { /** * 已发送 */ - COMPLETED(2, "completed", "已发送"), + ACTIVE(2, "active", "已发送"), + + /** + * 已完成 + */ + COMPLETED(3, "completed", "已完成"), /** * 暂停 */ - ON_HOLD(3, "on_hold", "暂停"), + ON_HOLD(4, "on_hold", "暂停"), /** * 撤回 */ - CANCELLED(4, "cancelled", "撤回"), + CANCELLED(5, "cancelled", "撤回"), /** * 停止 */ - STOPPED(5, "stopped", "停止"), + STOPPED(6, "stopped", "停止"), /** * 不可用 */ - ENDED(6, "ended", "不可用"), - - /** - * 未知 - */ - UNKNOWN(7, "unknown", "未知"), + ENDED(7, "ended", "不可用"), /** * 已汇总 */ - SUMMARIZED(8, "summarized", "已汇总"); + SUMMARIZED(8, "summarized", "已汇总"), + + /** + * 未知 + */ + UNKNOWN(9, "unknown", "未知"); @EnumValue private final Integer value; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java index af19a220..0c0288d3 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java @@ -1,5 +1,9 @@ package com.openhis.administration.service.impl; +import java.util.List; + +import org.springframework.stereotype.Service; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -7,9 +11,6 @@ import com.openhis.administration.domain.Organization; import com.openhis.administration.mapper.OrganizationMapper; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.enums.AccountStatus; -import org.springframework.stereotype.Service; - -import java.util.List; /** * 机构管理Service业务层处理 @@ -55,7 +56,7 @@ public class OrganizationServiceImpl extends ServiceImpl getList(Integer classEnum) { - return baseMapper.selectList(new LambdaQueryWrapper().select(Organization::getId, Organization::getName) - .eq(Organization::getClassEnum, classEnum)); + return baseMapper.selectList(new LambdaQueryWrapper() + .select(Organization::getId, Organization::getName).eq(Organization::getClassEnum, classEnum)); } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentReconciliationService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentReconciliationService.java index 090ff014..25e3eb15 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentReconciliationService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentReconciliationService.java @@ -16,8 +16,8 @@ public interface IPaymentReconciliationService extends IService getChargeItemIdListByPayment(Long paymentId); + List getChargeItemIdListByPayment(List paymentIdList); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java index c9e49c4b..639fb487 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java @@ -1,5 +1,6 @@ package com.openhis.financial.service.impl; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -30,21 +31,28 @@ public class PaymentReconciliationServiceImpl extends ServiceImpl getChargeItemIdListByPayment(Long paymentId) { + public List getChargeItemIdListByPayment(List paymentIdList) { // 根据支付id获取支付信息 - PaymentReconciliation paymentReconciliation = - paymentReconciliationMapper.selectOne(new LambdaQueryWrapper() - .select(PaymentReconciliation::getChargeItemIds).eq(PaymentReconciliation::getId, paymentId)); - if (paymentReconciliation == null) { + List paymentReconciliationList = + paymentReconciliationMapper.selectList(new LambdaQueryWrapper() + .select(PaymentReconciliation::getChargeItemIds).in(PaymentReconciliation::getId, paymentIdList)); + if (paymentReconciliationList.isEmpty()) { return null; } + // 拆解所有的chargeItemId,拼装成一个集合 + List chargeItemIdList = paymentReconciliationList.stream().map(PaymentReconciliation::getChargeItemIds) + .collect(Collectors.toList()); + List chargeItemIds = new ArrayList<>(); + for (String chargeItemId : chargeItemIdList) { + chargeItemIds.addAll(Arrays.stream(chargeItemId.split(CommonConstants.Common.COMMA)).map(Long::parseLong) + .collect(Collectors.toList())); + } // 将收费项目集合转换成列表 - return Arrays.stream(paymentReconciliation.getChargeItemIds().split(CommonConstants.Common.COMMA)) - .map(Long::parseLong).collect(Collectors.toList()); + return chargeItemIds; } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationDispenseService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationDispenseService.java index 0b7d859b..c8d090b1 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationDispenseService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationDispenseService.java @@ -1,7 +1,10 @@ package com.openhis.medication.service; +import java.util.List; + import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.medication.domain.MedicationDispense; +import com.openhis.medication.domain.MedicationRequest; /** * 药品发放管理Service接口 @@ -11,4 +14,10 @@ import com.openhis.medication.domain.MedicationDispense; */ public interface IMedicationDispenseService extends IService { + /** + * 新增草稿状态的药品发放信息 + * + * @param medicationRequestList 药品请求信息 + */ + void addMedicationDispense(List medicationRequestList); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java index 64495b73..a8da42f2 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java @@ -1,9 +1,14 @@ package com.openhis.medication.service.impl; +import java.util.List; + import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.utils.DateUtils; +import com.openhis.common.enums.DispenseStatus; import com.openhis.medication.domain.MedicationDispense; +import com.openhis.medication.domain.MedicationRequest; import com.openhis.medication.mapper.MedicationDispenseMapper; import com.openhis.medication.service.IMedicationDispenseService; @@ -14,6 +19,59 @@ import com.openhis.medication.service.IMedicationDispenseService; * @date 2025-02-20 */ @Service -public class MedicationDispenseServiceImpl extends ServiceImpl implements IMedicationDispenseService { +public class MedicationDispenseServiceImpl extends ServiceImpl + implements IMedicationDispenseService { + /** + * 新增草稿状态的药品发放信息 + * + * @param medicationRequestList 药品请求信息 + */ + @Override + public void addMedicationDispense(List medicationRequestList) { + for (MedicationRequest medicationRequest : medicationRequestList) { + MedicationDispense medicationDispense = new MedicationDispense(); + // 药品发放id + medicationDispense.setBusNo(medicationRequest.getBusNo()); + // 药品发放状态 + medicationDispense.setStatusEnum(DispenseStatus.DRAFT.getValue()); + // 状态变更时间 + medicationDispense.setStatusChangedTime(DateUtils.getNowDate()); + // 发药类型 + medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum()); + // 药品编码 + medicationDispense.setMedicationId(medicationRequest.getMedicationId()); + // 请求数量 + medicationDispense.setQuantity(medicationRequest.getQuantity()); + // 请求单位编码 + medicationDispense.setUnitCode(medicationRequest.getUnitCode()); + // 产品批号 + medicationDispense.setLotNumber(medicationRequest.getLotNumber()); + // 患者id + medicationDispense.setPatientId(medicationRequest.getPatientId()); + // 就诊id + medicationDispense.setEncounterId(medicationRequest.getEncounterId()); + // 支持用药信息 + medicationDispense.setSupportInfo(medicationRequest.getSupportInfo()); + // 发药人 + medicationDispense.setPractitionerId(medicationRequest.getPractitionerId()); + // 发放药房 + medicationDispense.setLocationId(medicationRequest.getPerformOrg()); + // 药品请求id + medicationDispense.setMedReqId(medicationRequest.getId()); + // 已发药数量 + medicationDispense.setDispenseQuantity(0); + // 用法 + medicationDispense.setMethodCode(medicationRequest.getMethodCode()); + // 用药频次 + medicationDispense.setFrequencyCode(medicationRequest.getRateCode()); + // 单次剂量 + medicationDispense.setDose(medicationRequest.getDose()); + // 剂量单位 + medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode()); + // 单次最大剂量 + medicationDispense.setMaxUnit(medicationRequest.getMaxDose()); + baseMapper.insert(medicationDispense); + } + } } \ No newline at end of file