diff --git a/openhis-server/core-common/src/main/java/com/core/common/enums/DefinitionTypeEnum.java b/openhis-server/core-common/src/main/java/com/core/common/enums/DefinitionTypeEnum.java deleted file mode 100644 index 9fa51072..00000000 --- a/openhis-server/core-common/src/main/java/com/core/common/enums/DefinitionTypeEnum.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright ©2023 CJB-CNIT Team. All rights reserved - */ -package com.core.common.enums; - -/** - * 定价类型 - * - * @author zxy - * @date 2025-02-21 - */ -public enum DefinitionTypeEnum { - - /** - * 药品 - */ - MEDICATION("1", "药品"), - /** - * 耗材 - */ - DEVICE("2", "耗材"), - /** - * 手术 - */ - ACTIVITY("3", "手术"); - - private final String code; - private final String info; - - DefinitionTypeEnum(String code, String info) { - this.code = code; - this.info = info; - } - - public String getCode() { - return code; - } - - public String getInfo() { - return info; - } -} \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientChargeAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientChargeAppServiceImpl.java index 9f6b63a6..14afe3eb 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientChargeAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientChargeAppServiceImpl.java @@ -91,7 +91,8 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi public R getEncounterPatientPrescription(Long encounterId) { return R.ok(outpatientChargeAppMapper.selectEncounterPatientPrescription(encounterId, ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.MEDICATION.getValue(), - ChargeItemContext.DEVICE.getValue())); + ChargeItemContext.DEVICE.getValue(), ChargeItemStatus.PLANNED.getValue(), + ChargeItemStatus.BILLABLE.getValue(), ChargeItemStatus.BILLED.getValue())); } /** 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 33f8bbec..8dfd14ae 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,12 +4,20 @@ 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.mapper.OutpatientRefundAppMapper; @@ -25,6 +33,10 @@ public class OutpatientRefundAppServiceImpl implements IOutpatientRefundAppServi @Autowired private OutpatientRefundAppMapper outpatientRefundAppMapper; + @Autowired + private IPaymentReconciliationService paymentReconciliationService; + @Autowired + private IChargeItemService chargeItemService; /** * 根据就诊id查询患者的账单 @@ -49,10 +61,28 @@ 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); + + List prescriptionNoList = + chargeItemList.stream().map(ChargeItem::getPrescriptionNo).collect(Collectors.toList()); + + } return null; } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPaymentDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPaymentDto.java index 18a4365a..c2f95817 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPaymentDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPaymentDto.java @@ -73,6 +73,4 @@ public class EncounterPatientPaymentDto implements Serializable { /** 合同编码 */ private String contractNo; - /** 处方号集合 */ - private String chargeItemIds; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPrescriptionDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPrescriptionDto.java index 4b71f9c0..b0d80b58 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPrescriptionDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/EncounterPatientPrescriptionDto.java @@ -51,6 +51,9 @@ public class EncounterPatientPrescriptionDto implements Serializable { /** 处方号 */ private String prescriptionNo; + /** 业务编码 */ + private String busNo; + /** 开立人ID */ private Long entererId; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/RefundItemDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/RefundItemDto.java new file mode 100644 index 00000000..cf9fb746 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/dto/RefundItemDto.java @@ -0,0 +1,22 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.chargemanage.dto; + +import java.io.Serializable; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 退款项目 dto + * + * @author zwh + * @date 2025-03-18 + */ +@Data +@Accessors(chain = true) +public class RefundItemDto implements Serializable { + + private static final long serialVersionUID = 1L; +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientChargeAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientChargeAppMapper.java index 7cd73443..17e8e812 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientChargeAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/chargemanage/mapper/OutpatientChargeAppMapper.java @@ -41,8 +41,12 @@ public interface OutpatientChargeAppMapper { * @param activity 项目 * @param medication 药品 * @param device 耗材 + * @param planned 收费状态:待收费 + * @param billable 收费状态:待结算 + * @param billed 收费状态:已结算 * @return 患者处方列表 */ List selectEncounterPatientPrescription(@Param("encounterId") Long encounterId, - @Param("activity") Integer activity, @Param("medication") Integer medication, @Param("device") Integer device); + @Param("activity") Integer activity, @Param("medication") Integer medication, @Param("device") Integer device, + @Param("planned") Integer planned, @Param("billable") Integer billable, @Param("billed") Integer billed); } 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 5d564943..aa0eab06 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 @@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto; +import com.openhis.web.chargemanage.dto.RefundItemDto; /** * 门诊退费 appMapper @@ -31,4 +32,19 @@ public interface OutpatientRefundAppMapper { List selectEncounterPatientPayment(@Param("encounterId") Long encounterId, @Param("success") Integer success, @Param("refundAll") Integer refundAll, @Param("refundPart") Integer refundPart); + + /** + * 查询退费项目 + * + * @param paymentIdList 支付编号列表 + * @param medMedicationRequest 药品请求表 + * @param worServiceRequest 服务请求表 + * @param worDeviceRequest 耗材请求表 + * @param three 用于字符截位 + * @return 退费项目列表 + */ + List selectRefundItem(@Param("paymentIdList") List paymentIdList, + @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/datadictionary/controller/ItemDefinitionController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/ItemDefinitionController.java index f21256a6..828c0121 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/ItemDefinitionController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/ItemDefinitionController.java @@ -3,12 +3,13 @@ */ package com.openhis.web.datadictionary.controller; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; -import com.openhis.administration.domain.ChargeItemDefDetail; import org.apache.ibatis.builder.MapperBuilderAssistant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -20,18 +21,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; -import com.core.common.enums.AssignSeqEnum; -import com.core.common.enums.ChargeItemEnum; -import com.core.common.enums.DefinitionTypeEnum; import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.MessageUtils; import com.core.common.utils.StringUtils; import com.core.common.utils.bean.BeanUtils; +import com.openhis.administration.domain.ChargeItemDefDetail; import com.openhis.administration.domain.ChargeItemDefinition; import com.openhis.administration.service.IChargeItemDefDetailService; import com.openhis.administration.service.IChargeItemDefinitionService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.ChargeItemEnum; +import com.openhis.common.enums.ItemType; import com.openhis.common.enums.PublicationStatus; import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto; import com.openhis.web.datadictionary.dto.ChargeItemOptionDto; @@ -71,7 +72,7 @@ public class ItemDefinitionController { public R getInitDefinitionOptions(ItemDefSearchParam itemDefSearchParam) { /// TODO: 2025/2/26 收费项目下拉框 暂未做成用枚举代替,后续替换 List chargeItemOptions = new ArrayList<>(); - if (DefinitionTypeEnum.MEDICATION.getCode().equals(itemDefSearchParam.getDefinitionType())) { + if (ItemType.MEDICINE.getCode().equals(itemDefSearchParam.getDefinitionType())) { // 西药 chargeItemOptions.add(new ChargeItemOptionDto(ChargeItemEnum.WEST_MEDICINE.getCode(), ChargeItemEnum.WEST_MEDICINE.getInfo())); @@ -84,14 +85,14 @@ public class ItemDefinitionController { // 其他 chargeItemOptions .add(new ChargeItemOptionDto(ChargeItemEnum.OTHER_FEE.getCode(), ChargeItemEnum.OTHER_FEE.getInfo())); - } else if (DefinitionTypeEnum.DEVICE.getCode().equals(itemDefSearchParam.getDefinitionType())) { + } else if (ItemType.DEVICE.getCode().equals(itemDefSearchParam.getDefinitionType())) { // 卫生材料 chargeItemOptions.add(new ChargeItemOptionDto(ChargeItemEnum.SANITARY_MATERIALS_FEE.getCode(), ChargeItemEnum.SANITARY_MATERIALS_FEE.getInfo())); // 其他 chargeItemOptions .add(new ChargeItemOptionDto(ChargeItemEnum.OTHER_FEE.getCode(), ChargeItemEnum.OTHER_FEE.getInfo())); - } else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(itemDefSearchParam.getDefinitionType())) { + } else if (ItemType.ACTIVITY.getCode().equals(itemDefSearchParam.getDefinitionType())) { // 床位 chargeItemOptions .add(new ChargeItemOptionDto(ChargeItemEnum.BED_FEE.getCode(), ChargeItemEnum.BED_FEE.getInfo())); @@ -155,14 +156,14 @@ public class ItemDefinitionController { queryWrapper.eq(ChargeItemDefPageDto::getCategoryCode, chargeItemDefPageDto.getChargeItem()); } // 通过 DefinitionType 区分药品定价/器具定价/活动定价 - if (DefinitionTypeEnum.MEDICATION.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + if (ItemType.MEDICINE.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION); chargeItemDefinitionPage = chargeItemDefSearchMapper.getMedList(new Page<>(pageNo, pageSize), queryWrapper); - } else if (DefinitionTypeEnum.DEVICE.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + } else if (ItemType.DEVICE.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION); chargeItemDefinitionPage = chargeItemDefSearchMapper.getDevList(new Page<>(pageNo, pageSize), queryWrapper); - } else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + } else if (ItemType.ACTIVITY.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, CommonConstants.TableName.WOR_ACTIVITY_DEFINITION); chargeItemDefinitionPage = chargeItemDefSearchMapper.getActList(new Page<>(pageNo, pageSize), queryWrapper); } @@ -204,45 +205,4 @@ public class ItemDefinitionController { return R.ok(Arrays.stream(PublicationStatus.values()) .map(status -> new ChargeItemOptionDto(status.getValue(), status.getInfo())).collect(Collectors.toList())); } - - /** - * 采番测试(例子,非常规代码,请勿调用) - * - * @return 采番测试结果 - */ - @GetMapping(value = "/test-assign") - public R getTestAssign() { - // 基础采番 - String code = assignSeqUtil.getSeq(AssignSeqEnum.TEST.getPrefix()); - // 控制长度采番(seqLength: 总长度) - String code1 = assignSeqUtil.getSeq(AssignSeqEnum.TEST.getPrefix(), 8); - // 控制长度批量采番 - List code2 = assignSeqUtil.getSeq(AssignSeqEnum.TEST.getPrefix(), 8, 3); - // 获取编号 - Integer code3 = assignSeqUtil.getSeqNo(AssignSeqEnum.TEST.getPrefix()); - // 批量获取编号 - List code4 = assignSeqUtil.getSeqNo(AssignSeqEnum.TEST.getPrefix(), 3); - // 每日采番 - String code5 = assignSeqUtil.getSeqByDay(AssignSeqEnum.TEST.getPrefix()); - // 每日按长度采番(seqLength: 日期后的数字位数) - String code6 = assignSeqUtil.getSeqByDay(AssignSeqEnum.TEST.getPrefix(), 8); - // 每日批量采番 - List code7 = assignSeqUtil.getSeqByDay(AssignSeqEnum.TEST.getPrefix(), 8, 3); - // 每日获取编号 - Integer code8 = assignSeqUtil.getSeqNoByDay(AssignSeqEnum.TEST.getPrefix()); - // 每日批量获取编号 - List code9 = assignSeqUtil.getSeqNoByDay(AssignSeqEnum.TEST.getPrefix(), 3); - Map map = new HashMap<>(); - map.put("code", code); - map.put("code1", code1); - map.put("code2", code2); - map.put("code3", code3); - map.put("code4", code4); - map.put("code5", code5); - map.put("code6", code6); - map.put("code7", code7); - map.put("code8", code8); - map.put("code9", code9); - return R.ok(map); - } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index a3a7041f..ffa188be 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -98,14 +98,14 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp // 匹配包装单位 List advicePrice1 = childCharge.stream() .filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue() - .equals(String.format(CommonConstants.Common.COMMA, finalUnitCode, + .equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalUnitCode, adviceInventoryDto.getLotNumber()))) .peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode .collect(Collectors.toList()); // 匹配最小单位 List advicePrice2 = childCharge.stream() .filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue() - .equals(String.format(CommonConstants.Common.COMMA, finalMinUnitCode, + .equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalMinUnitCode, adviceInventoryDto.getLotNumber()))) .peek(e -> e.setUnitCode(finalMinUnitCode)) // 设置 unitCode .collect(Collectors.toList()); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/IPurchaseInventoryAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/IPurchaseInventoryAppService.java index 112b0918..e91f640d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/IPurchaseInventoryAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/IPurchaseInventoryAppService.java @@ -69,4 +69,11 @@ public interface IPurchaseInventoryAppService { * @return 操作结果 */ R withdrawApproval(String busNo); + + /** + * 入库单据页面初始化 + * + * @return 初始化信息 + */ + R purchaseInventoryInit(); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java index 964378f1..0e742636 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java @@ -4,6 +4,9 @@ package com.openhis.web.inventorymanage.appservice.impl; import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; @@ -13,20 +16,25 @@ 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; +import com.openhis.common.enums.AssignSeqEnum; +import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.DateUtils; import com.core.common.utils.MessageUtils; import com.core.common.utils.bean.BeanUtils; +import com.openhis.administration.domain.Practitioner; +import com.openhis.administration.domain.Supplier; +import com.openhis.administration.service.IPractitionerService; +import com.openhis.administration.service.ISupplierService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.ItemType; import com.openhis.common.enums.SupplyCategory; import com.openhis.common.enums.SupplyStatus; import com.openhis.common.enums.SupplyType; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService; -import com.openhis.web.inventorymanage.dto.InventoryReceiptDto; -import com.openhis.web.inventorymanage.dto.InventoryReceiptPageDto; -import com.openhis.web.inventorymanage.dto.InventorySearchParam; +import com.openhis.web.inventorymanage.dto.*; import com.openhis.web.inventorymanage.mapper.PurchaseInventoryMapper; import com.openhis.workflow.domain.SupplyRequest; import com.openhis.workflow.service.ISupplyRequestService; @@ -46,6 +54,55 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer @Autowired private ISupplyRequestService supplyRequestService; + @Autowired + private ISupplierService supplierService; + + @Autowired + private IPractitionerService practitionerService; + + @Autowired + private AssignSeqUtil assignSeqUtil; + + /** + * 入库单据页面初始化 + * + * @return 初始化信息 + */ + @Override + public R purchaseInventoryInit() { + + InventoryReceiptInitDto initDto = new InventoryReceiptInitDto(); + // 单据号 + initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.PURCHASE_NUM.getPrefix(), 12)); + // 查询供应商列表 + List supplierList = supplierService.getList(); + // 查询经手人列表 + List practitionerList = practitionerService.getList(); + // 供应商信息 + List practitionerListOptions = practitionerList.stream() + .map(practitioner -> new InventoryReceiptInitDto.practitionerListOption(practitioner.getId(), + practitioner.getName())) + .collect(Collectors.toList()); + // 经手人信息 + List supplierListOptions = supplierList.stream() + .map(supplier -> new InventoryReceiptInitDto.supplierListOption(supplier.getId(), supplier.getName())) + .collect(Collectors.toList()); + // 入库项目类型 + List itemTypeOptions = Stream.of(ItemType.values()) + .map(itemType -> new InventoryReceiptInitDto.itemTypeOption(itemType.getValue(), itemType.getInfo())) + .collect(Collectors.toList()); + // 审批状态 + List supplyStatusOptions = Stream.of(SupplyStatus.values()) + .map(supplyStatus -> new InventoryReceiptInitDto.supplyStatusOption(supplyStatus.getValue(), + supplyStatus.getInfo())) + .collect(Collectors.toList()); + + initDto.setSupplierListOptions(supplierListOptions).setItemTypeOptions(itemTypeOptions) + .setPractitionerListOptions(practitionerListOptions).setSupplyStatusOptions(supplyStatusOptions); + + return R.ok(initDto); + } + /** * 入库单据列表 * @@ -86,6 +143,7 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer */ @Override public R getDetail(String busNo) { + List receiptDetailList = purchaseInventoryMapper.selectDetail(busNo); return null; } @@ -102,13 +160,6 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer SupplyRequest supplyRequest = new SupplyRequest(); BeanUtils.copyProperties(inventoryReceiptDto, supplyRequest); - // // 业务校验 - // R result = purchaseInventoryService.verifyInventoryReceipt(supplyRequest); - // // 校验失败返回提示信息 - // if (result.getCode() == HttpStatus.ERROR) { - // return result; - // } - if (inventoryReceiptDto.getId() != null) { // 更新单据信息 supplyRequestService.updateById(supplyRequest); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java index 71e7f5b3..bd79df77 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java @@ -220,8 +220,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService continue; // 生成请求的命中值 - String lotUnitCondition = - String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(), supplyRequest.getUnitCode()); + String lotUnitCondition = String.format(CommonConstants.Common.COMMA_FORMAT, supplyRequest.getLotNumber(), + supplyRequest.getUnitCode()); for (ItemChargeDetailDto detail : details) { @@ -238,7 +238,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService // 判断入库单位是大单位还是小单位 if (supplyRequest.getUnitCode().equals(detail.getUnitCode())) { resultList.add(this.addChargeItemDefApp( - String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(), + String.format(CommonConstants.Common.COMMA_FORMAT, supplyRequest.getLotNumber(), detail.getMinUnitCode()), supplyRequest.getMinSellPrice(), detail.getDefinitionId())); resultList.add(this.addChargeItemDefApp(lotUnitCondition, supplyRequest.getSellPrice(), @@ -246,7 +246,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService } else { resultList .add(this.addChargeItemDefApp( - String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(), + String.format(CommonConstants.Common.COMMA_FORMAT, supplyRequest.getLotNumber(), detail.getUnitCode()), supplyRequest.getMinSellPrice(), detail.getDefinitionId())); resultList.add(this.addChargeItemDefApp(lotUnitCondition, supplyRequest.getMinSellPrice(), diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/controller/PurchaseInventoryController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/controller/PurchaseInventoryController.java index a40938d6..35b9e92f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/controller/PurchaseInventoryController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/controller/PurchaseInventoryController.java @@ -5,7 +5,6 @@ package com.openhis.web.inventorymanage.controller; import javax.servlet.http.HttpServletRequest; -import com.openhis.web.inventorymanage.dto.InventoryReceiptInitDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -31,25 +30,15 @@ public class PurchaseInventoryController { @Autowired private IPurchaseInventoryAppService purchaseInventoryAppService; - // @GetMapping(value = "/init") - // public R init() { - // // 采番 - // - // InventoryReceiptInitDto initDto = new InventoryReceiptInitDto(); - // // 设置供应商列表 - // initDto.setSupplier(supplierService.list()) - // // 设置药房列表 - // .setLocation(locationService.list(new LambdaQueryWrapper().in(Location::getFormEnum, 1))) - // // 药品详细 - // .setMedicationDetail(medicationService.getDetailList()); - // return R.ok(initDto); - // } - - // 添加入库单据之前需要 - // 1.supplier供应商信息列表 - // 2.location信息列表包括(药房,药库,材料柜,护理站) - // 3.practitioner_role与practitioner联查获取对应location的管理员列表 - // 4.查询选定对应药品类型的药品信息列表 + /** + * 入库单据页面初始化 + * + * @return 初始化信息 + */ + @GetMapping(value = "/init") + public R purchaseInventoryInit() { + return purchaseInventoryAppService.purchaseInventoryInit(); + } /** * 入库单据列表 diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptDto.java index 1865c975..000b2fc5 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptDto.java @@ -58,18 +58,6 @@ public class InventoryReceiptDto implements Serializable { @NotNull private Long supplierId; - /** 源仓库类型 */ - @NotNull - private Integer sourceTypeEnum; - - /** 源仓库 */ - @NotNull - private Long sourceLocationId; - - /** 源仓位 */ - @NotNull - private Long sourceLocationStoreId; - /** 目的仓库类型 */ @NotNull private Integer purposeTypeEnum; @@ -86,6 +74,10 @@ public class InventoryReceiptDto implements Serializable { @NotNull private Long applicantId; + /** 经手人 */ + @NotNull + private Long practitionerId; + /** 申请时间 */ private Date applyTime; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptInitDto.java index dfe766d8..30b55e70 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptInitDto.java @@ -5,11 +5,6 @@ package com.openhis.web.inventorymanage.dto; import java.util.List; -import com.openhis.administration.domain.Location; -import com.openhis.administration.domain.Supplier; -import com.openhis.medication.domain.MedicationDetail; - -import com.openhis.web.basedatamanage.dto.LocationQueryDto; import lombok.Data; import lombok.experimental.Accessors; @@ -23,14 +18,84 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class InventoryReceiptInitDto { - // 返回前台的应是dto 懒得定义请勿学习 + /** + * 单据号 + */ + private String busNo; - /** 药房信息 */ - private List location; + /** + * 供应商 + */ + private List supplierListOptions; - /** 供应商信息 */ - private List supplier; + /** + * 经手人 + */ + private List practitionerListOptions; - /** 药品详细信息 */ - private List medicationDetail; + /** + * 入库项目类型 + */ + private List itemTypeOptions; + + /** + * 审批状态 + */ + private List supplyStatusOptions; + + /** + * 供应商 + */ + @Data + public static class supplierListOption { + private Long value; + private String label; + + public supplierListOption(Long value, String label) { + this.value = value; + this.label = label; + } + } + + /** + * 经手人 + */ + @Data + public static class practitionerListOption { + private Long value; + private String label; + + public practitionerListOption(Long value, String label) { + this.value = value; + this.label = label; + } + } + + /** + * 入库项目类型 + */ + @Data + public static class itemTypeOption { + private Integer value; + private String label; + + public itemTypeOption(Integer value, String label) { + this.value = value; + this.label = label; + } + } + + /** + * 入库项目类型 + */ + @Data + public static class supplyStatusOption { + private Integer value; + private String label; + + public supplyStatusOption(Integer value, String label) { + this.value = value; + this.label = label; + } + } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptPageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptPageDto.java index 3b59f0d1..808e6098 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptPageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventoryReceiptPageDto.java @@ -33,7 +33,7 @@ public class InventoryReceiptPageDto implements Serializable { private Long id; /** 单据号 */ - private String busNo; + private String supplyBusNo; /** 状态 */ private Integer statusEnum; @@ -42,9 +42,9 @@ public class InventoryReceiptPageDto implements Serializable { /** 供应商 */ private Long supplierId; - /** 目的仓库 */ - @Dict(dictCode = "id", dictText = "name", dictTable = "adm_location") - private Long purposeLocationId; + /** 经手人 */ + @Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner") + private Long practitionerId; /** 审批人 */ @Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner") diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventorySearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventorySearchParam.java index 44017c78..e9ccbf5b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventorySearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/InventorySearchParam.java @@ -28,9 +28,6 @@ public class InventorySearchParam implements Serializable { /** 状态 */ private Integer statusEnum; - /** 分类 */ - private Integer categoryEnum; - /** 供应商 */ private Long supplierId; @@ -40,9 +37,6 @@ public class InventorySearchParam implements Serializable { /** 申请结束时间 */ private Date applyTimeEnd; - /** 目的仓库 */ - private Long purposeLocationId; - - /** 申请人 */ - private Long applicantId; + /** 经手人 */ + private Long practitionerId; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/ReceiptDetailDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/ReceiptDetailDto.java index 6e3a3925..c4173960 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/ReceiptDetailDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/dto/ReceiptDetailDto.java @@ -4,6 +4,14 @@ package com.openhis.web.inventorymanage.dto; import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.annotation.Dict; import lombok.Data; import lombok.experimental.Accessors; @@ -19,4 +27,77 @@ import lombok.experimental.Accessors; public class ReceiptDetailDto implements Serializable { private static final long serialVersionUID = 1L; + + /** ID */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 单据号 */ + private String busNo; + + /** 当前库存总数 */ + private BigDecimal totalQuantity; + + /** 数量 */ + private BigDecimal itemQuantity; + + /** 物品名称 */ + private String itemName; + + /** 规格 */ + private String totalVolume; + + /** 物品计量单位 */ + @Dict(dictCode = "unit_code") + private String unitCode; + private String unitCode_dictText; + + /** 请求细节 */ + private String detailJson; + + /** 供应人名称 */ + private String practitionerName; + + /** 供应商名称 */ + private String supplierName; + + /** 目的仓库类型 */ + private Integer purposeTypeEnum; + + /** 目的仓库名称 */ + private String purposeLocationName; + + /** 目的货位名称 */ + private String purposeLocationStoreName; + + /** 申请时间 */ + private Date applyTime; + + /** 产品批号 */ + private String lotNumber; + + /** 追溯码 */ + private String traceNo; + + /** 发票号 */ + private String invoiceNo; + + /** 开始时间 */ + private Date startTime; + + /** 结束时间 */ + private Date endTime; + + /** 单价 */ + private BigDecimal price; + + /** 总价 */ + private BigDecimal totalPrice; + + /** 售价 */ + private BigDecimal sellPrice; + + /** 拆零售价 */ + private BigDecimal minSellPrice; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/mapper/PurchaseInventoryMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/mapper/PurchaseInventoryMapper.java index d17560dc..ab176c0b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/mapper/PurchaseInventoryMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/mapper/PurchaseInventoryMapper.java @@ -3,6 +3,8 @@ */ package com.openhis.web.inventorymanage.mapper; +import java.util.List; + import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.web.inventorymanage.dto.InventoryReceiptPageDto; import com.openhis.web.inventorymanage.dto.InventorySearchParam; +import com.openhis.web.inventorymanage.dto.ReceiptDetailDto; /** * 采购入库查询用 mapper @@ -32,4 +35,12 @@ public interface PurchaseInventoryMapper { Page selectInventoryReceiptPage(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("purchaseInventory") Integer purchaseInventory); + + /** + * 查询单据详情 + * + * @param busNo 单据号 + * @return 单据详情 + */ + List selectDetail(@Param("busNo") String busNo); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java index bb0a23bd..b4cfacdb 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/appservice/impl/PatientInformationServiceImpl.java @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; -import com.core.common.enums.AssignSeqEnum; +import com.openhis.common.enums.AssignSeqEnum; import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.ChineseConvertUtils; import com.core.common.utils.DateUtils; diff --git a/openhis-server/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml index cf7732a9..686d4d2d 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml @@ -8,23 +8,21 @@ T2.bus_no AS supply_bus_no, T2.status_enum, T2.supplier_id, - T2.purpose_location_id, T2.approver_id, T2.approval_time, T2.applicant_id, T2.apply_time, - T2.purpose_location_id, + T2.practitioner_id, T2.tenant_id FROM (SELECT T1.id, T1.bus_no, T1.status_enum, T1.supplier_id, - T1.purpose_location_id, T1.approver_id, T1.approval_time, T1.applicant_id, T1.apply_time, - T1.purpose_location_id, + T1.practitioner_id, T1.tenant_id FROM wor_supply_request AS T1 WHERE type_enum = #{purchaseInventory} @@ -32,15 +30,47 @@ T1.bus_no, T1.status_enum, T1.supplier_id, - T1.purpose_location_id, T1.approver_id, T1.approval_time, T1.applicant_id, T1.apply_time, - T1.purpose_location_id, + T1.practitioner_id, T1.tenant_id ORDER BY T1.bus_no desc ) AS T2 ${ew.customSqlSegment} + \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml index 9595d9ab..8a322737 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml @@ -50,6 +50,7 @@ T1.unit_price, T1.total_price, T1.prescription_no, + T1.bus_no, T1.enterer_id, T1.entered_date, T1.account_id, @@ -72,7 +73,7 @@ ON T1.context_enum = #{device} AND T1.product_id = T4.id WHERE T1.encounter_id = #{encounterId} - AND T1.status_enum IN (1 , 2 , 5) + AND T1.status_enum IN (#{planned} , #{billable} , #{billed}) AND T1.delete_flag = '0' \ No newline at end of file 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 fe75422f..6cb71a77 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 @@ -14,7 +14,6 @@ T1.tendered_amount, T1.returned_amount, T1.contract_no, - T1.charge_item_ids, T2.prescription_no, T2.account_id FROM fin_payment_reconciliation AS T1 @@ -24,4 +23,48 @@ AND T1.status_enum IN (#{success},#{refundAll},#{refundPart}) AND T1.delete_flag = '0' + \ No newline at end of file diff --git a/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java similarity index 78% rename from openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java rename to openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java index 929bc5df..ba72f8e8 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java @@ -1,7 +1,7 @@ /* * Copyright ©2023 CJB-CNIT Team. All rights reserved */ -package com.core.common.enums; +package com.openhis.common.enums; /** * 采番前缀枚举 @@ -12,15 +12,19 @@ package com.core.common.enums; public enum AssignSeqEnum { /** - * 例子 + * 患者编号 */ - TEST("1", "例子", "TE"), - // 患者编号 PATIENT_NUM("1", "患者编号", "PN"), + + /** + * 采购单据号 + */ + PURCHASE_NUM("2", "采购单据号", "SIN"), + /** * 就诊编号 */ - ENCOUNTER_NUM("1", "就诊编号", "EN"); + ENCOUNTER_NUM("3", "就诊编号", "EN"); private final String code; private final String info; diff --git a/openhis-server/core-common/src/main/java/com/core/common/enums/ChargeItemEnum.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemEnum.java similarity index 97% rename from openhis-server/core-common/src/main/java/com/core/common/enums/ChargeItemEnum.java rename to openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemEnum.java index ee7f0efc..adb9e858 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/enums/ChargeItemEnum.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemEnum.java @@ -1,7 +1,7 @@ /* * Copyright ©2023 CJB-CNIT Team. All rights reserved */ -package com.core.common.enums; +package com.openhis.common.enums; /** * 收费项目 diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemType.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemType.java index e66b023a..9c7d0f8b 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemType.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemType.java @@ -23,9 +23,9 @@ public enum ItemType implements HisEnumInterface { MEDICINE(1, "1", "中药"), /** - * 西药 + * 耗材 */ - DEVICE(2, "2", "西药"), + DEVICE(2, "2", "耗材"), /** * 医疗活动 diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java index cf3e326a..47c75e6d 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java @@ -9,26 +9,21 @@ import lombok.Getter; @AllArgsConstructor public enum LocationForm implements HisEnumInterface { - SITE(1, "si", "集合点A collection of buildings or other locations such as a site or a campus."), - BUILDING(2, "bu", - "建筑Any Building or structure. This may contain rooms, corridors, wings, etc. It might not have walls, or a roof, but is considered a defined/allocated space."), - WING(3, "wi", "连廊A Wing within a Building, this often contains levels, rooms and corridors."), - WARD(4, "wa", "病区A Ward is a section of a medical facility that may contain rooms and other types of location."), - LEVEL(5, "lvl", "楼层A Level in a multi-level Building/Structure."), - CORRIDOR(6, "co", "走廊Any corridor within a Building, that may connect rooms."), - ROOM(7, "ro", "诊室A space that is allocated as a room, it may have walls/roof etc., but does not require these."), - BED(8, "bd", - "床A space that is allocated for sleeping/laying on. This is not the physical bed/trolley that may be moved about, but the space it may occupy."), - VEHICLE(9, "ve", "运输工具A means of transportation."), - HOUSE(10, "ho", "病房A residential dwelling. Usually used to reference a location that a person/patient may reside."), - CABINET(11, "ca", "库房A container that can store goods, equipment, medications or other items."), - ROAD(12, "rd", "路A defined path to travel between 2 points that has a known name."), - AREA(13, "area", "区域A defined physical boundary of something, such as a flood risk zone, region, postcode"), - JURISDICTION(14, "jdn", - "适用范围A wide scope that covers a conceptual domain, such as a Nation (Country wide community or Federal Government - e.g. Ministry of Health), Province or State (community or Government), Business (throughout the enterprise), Nation with a business scope of an agency (e.g. CDC, FDA etc.) or a Business segment (UK Pharmacy), not just an physical boundary"), - VIRTUAL(15, "vi", "虚拟A location that is virtual in nature, such as a conference call or virtual meeting space"); - - // PHARMACY(16, "ph", "药房"), + SITE(1, "si", "集合点"), + BUILDING(2, "bu", "建筑"), + WING(3, "wi", "连廊"), + WARD(4, "wa", "病区"), + LEVEL(5, "lvl", "楼层"), + CORRIDOR(6, "co", "走廊"), + ROOM(7, "ro", "诊室"), + BED(8, "bd", "床"), + VEHICLE(9, "ve", "运输工具"), + HOUSE(10, "ho", "病房"), + CABINET(11, "ca", "库房"), + ROAD(12, "rd", "路"), + AREA(13, "area", "区域"), + VIRTUAL(15, "vi", "虚拟"), + PHARMACY(16, "ph", "药房"); // PHARMACY_WINDOW(17, "phw", "发药窗口"), // PHARMACY_TABLE(18, "dt", "摆药台"), // NURSE_STATION(19, "ns", "护士站"), diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java index 981ec0fd..5b7b3600 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java @@ -35,4 +35,12 @@ public interface IChargeItemService extends IService { * @return 更新结果 */ boolean updateAccountType(Long encounterId, Long accountId); + + /** + * 根据收费项目id列表获取收费信息 + * + * @param chargeItemIdList 收费项目id列表 + * @return 收费信息 + */ + List getChargeItemInfo(List chargeItemIdList); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java index a420c78a..41366e23 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java @@ -3,6 +3,8 @@ package com.openhis.administration.service; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.Location; +import java.util.List; + /** * 位置管理Service接口 * @@ -11,4 +13,17 @@ import com.openhis.administration.domain.Location; */ public interface ILocationService extends IService { + /** + * 获取药房列表 + * + * @return 药房列表 + */ + List getPharmacyList(); + + /** + * 获取药库列表 + * + * @return 药库列表 + */ + List getCabinetList(); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPractitionerService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPractitionerService.java index 71249572..e910b312 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPractitionerService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPractitionerService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.Practitioner; import com.openhis.administration.domain.PractitionerRole; +import java.util.List; + /** * 医疗参与者管理Service接口 * @@ -20,4 +22,10 @@ public interface IPractitionerService extends IService { */ Practitioner getPractitionerByUserId(long userId); + /** + * 查询医疗参与者列表 + * + * @return 医疗参与者列表 + */ + List getList(); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ISupplierService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ISupplierService.java index 52d2f9aa..f8dbc9bd 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ISupplierService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/ISupplierService.java @@ -9,6 +9,7 @@ import com.openhis.workflow.domain.SupplyRequest; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 供应商管理Service接口 @@ -24,4 +25,11 @@ public interface ISupplierService extends IService { * @return */ boolean addSupplier(Supplier supplier); + + /** + * 查询供应商下拉列表 + * + * @return 供应商下拉列表 + */ + List getList(); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java index 677f3209..d673a38f 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java @@ -60,4 +60,15 @@ public class ChargeItemServiceImpl extends ServiceImpl 0; } + + /** + * 根据收费项目id列表获取收费信息 + * + * @param chargeItemIdList 收费项目id列表 + * @return 收费信息 + */ + @Override + public List getChargeItemInfo(List chargeItemIdList) { + return baseMapper.selectBatchIds(chargeItemIdList); + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java index dabe3750..cf338c17 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java @@ -2,7 +2,7 @@ package com.openhis.administration.service.impl; import javax.annotation.Resource; -import com.core.common.enums.AssignSeqEnum; +import com.openhis.common.enums.AssignSeqEnum; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java index a8906145..4b840829 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java @@ -1,11 +1,15 @@ 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.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Location; import com.openhis.administration.mapper.LocationMapper; import com.openhis.administration.service.ILocationService; +import com.openhis.common.enums.LocationForm; /** * 位置管理Service业务层处理 @@ -16,4 +20,25 @@ import com.openhis.administration.service.ILocationService; @Service public class LocationServiceImpl extends ServiceImpl implements ILocationService { + /** + * 获取药房列表 + * + * @return 药房列表 + */ + @Override + public List getPharmacyList() { + return baseMapper + .selectList(new LambdaQueryWrapper().eq(Location::getFormEnum, LocationForm.PHARMACY.getValue())); + } + + /** + * 获取药库列表 + * + * @return 药库列表 + */ + @Override + public List getCabinetList() { + return baseMapper + .selectList(new LambdaQueryWrapper().eq(Location::getFormEnum, LocationForm.CABINET.getValue())); + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java index c9153a96..310e6423 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java @@ -1,13 +1,13 @@ package com.openhis.administration.service.impl; -import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; + import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.core.common.utils.SecurityUtils; import com.openhis.administration.domain.Practitioner; -import com.openhis.administration.mapper.PatientMapper; import com.openhis.administration.mapper.PractitionerMapper; import com.openhis.administration.service.IPractitionerService; @@ -21,9 +21,6 @@ import com.openhis.administration.service.IPractitionerService; public class PractitionerServiceImpl extends ServiceImpl implements IPractitionerService { - @Autowired - PractitionerMapper practitionerMapper; - /** * 根据执行人ID查询 * @@ -35,6 +32,16 @@ public class PractitionerServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId); - return practitionerMapper.selectOne(queryWrapper); + return baseMapper.selectOne(queryWrapper); + } + + /** + * 查询医疗参与者列表 + * + * @return 医疗参与者列表 + */ + @Override + public List getList() { + return baseMapper.selectList(new LambdaQueryWrapper<>()); } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java index 136dcb90..09ecb94b 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java @@ -1,24 +1,19 @@ package com.openhis.administration.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.core.common.utils.StringUtils; -import com.core.common.utils.bean.BeanUtils; -import com.openhis.clinical.domain.ConditionDefinition; -import com.openhis.clinical.mapper.ConditionDefinitionMapper; -import com.openhis.common.enums.DelFlag; -import com.openhis.workflow.domain.SupplyRequest; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; +import java.util.List; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Supplier; import com.openhis.administration.mapper.SupplierMapper; import com.openhis.administration.service.ISupplierService; -import org.springframework.transaction.annotation.Transactional; +import com.openhis.common.enums.SupplierType; -import java.util.List; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * 供应商管理Service业务层处理 @@ -30,7 +25,7 @@ import java.util.List; @Service @AllArgsConstructor public class SupplierServiceImpl extends ServiceImpl implements ISupplierService { - private final SupplierMapper supplierMapper; + /** * 新增供应商 * @@ -42,16 +37,26 @@ public class SupplierServiceImpl extends ServiceImpl i public boolean addSupplier(Supplier supplier) { // 根据病种编码判断病种是否存在 List suppliers = - supplierMapper.selectList(new LambdaQueryWrapper() - .eq(Supplier::getBusNo, supplier.getBusNo())); + baseMapper.selectList(new LambdaQueryWrapper().eq(Supplier::getBusNo, supplier.getBusNo())); if (suppliers.size() > 0) { return false; } // 新增供应商 - int insert = supplierMapper.insert(supplier); + int insert = baseMapper.insert(supplier); if (insert != 1) { return false; } return true; } + + /** + * 查询供应商下拉列表 + * + * @return 供应商下拉列表 + */ + @Override + public List getList() { + return baseMapper.selectList(new LambdaQueryWrapper().select(Supplier::getId, Supplier::getName) + .eq(Supplier::getTypeEnum, SupplierType.ACTIVE.getValue())); + } } \ 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 fe600a87..090ff014 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 @@ -3,6 +3,8 @@ package com.openhis.financial.service; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.financial.domain.PaymentReconciliation; +import java.util.List; + /** * 付款管理Service接口 * @@ -11,4 +13,11 @@ import com.openhis.financial.domain.PaymentReconciliation; */ public interface IPaymentReconciliationService extends IService { + /** + * 根据支付id获取对应收费项目的id列表 + * + * @param paymentId 支付id + * @return 收费项目的id列表 + */ + List getChargeItemIdListByPayment(Long paymentId); } \ 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 9c6e070e..c9e49c4b 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,8 +1,15 @@ package com.openhis.financial.service.impl; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.common.constant.CommonConstants; import com.openhis.financial.domain.PaymentReconciliation; import com.openhis.financial.mapper.PaymentReconciliationMapper; import com.openhis.financial.service.IPaymentReconciliationService; @@ -14,6 +21,30 @@ import com.openhis.financial.service.IPaymentReconciliationService; * @date 2025-02-20 */ @Service -public class PaymentReconciliationServiceImpl extends ServiceImpl implements IPaymentReconciliationService { +public class PaymentReconciliationServiceImpl extends ServiceImpl + implements IPaymentReconciliationService { + @Autowired + private PaymentReconciliationMapper paymentReconciliationMapper; + + /** + * 根据支付id获取对应收费项目的id列表 + * + * @param paymentId 支付id + * @return 收费项目的id列表 + */ + @Override + public List getChargeItemIdListByPayment(Long paymentId) { + + // 根据支付id获取支付信息 + PaymentReconciliation paymentReconciliation = + paymentReconciliationMapper.selectOne(new LambdaQueryWrapper() + .select(PaymentReconciliation::getChargeItemIds).eq(PaymentReconciliation::getId, paymentId)); + if (paymentReconciliation == null) { + return null; + } + // 将收费项目集合转换成列表 + return Arrays.stream(paymentReconciliation.getChargeItemIds().split(CommonConstants.Common.COMMA)) + .map(Long::parseLong).collect(Collectors.toList()); + } } \ No newline at end of file