From 62c2a8ac9237cd635db2e0c926d2a6732399698c Mon Sep 17 00:00:00 2001 From: "Zhang.WH" Date: Thu, 20 Feb 2025 19:00:33 +0800 Subject: [PATCH] =?UTF-8?q?demo=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assembler/PurchaseInventoryAssembler.java | 65 ++++++++++++++++ .../PurchaseInventoryController.java | 69 +++++++++++++++-- .../dto/InventoryReceiptDto.java | 74 ++++++++++++++++++- .../dto/SupplySearchParam.java | 6 +- .../common/constant/MessageConstants.java | 15 ++++ .../com/openhis/common/enums/DelFlag.java | 12 ++- .../service/IMedicationService.java | 11 +++ .../service/impl/MedicationServiceImpl.java | 26 +++++++ .../service/ISupplyRequestService.java | 8 ++ .../impl/SupplyRequestServiceImpl.java | 34 ++++++++- 10 files changed, 308 insertions(+), 12 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/assembler/PurchaseInventoryAssembler.java create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/constant/MessageConstants.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/assembler/PurchaseInventoryAssembler.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/assembler/PurchaseInventoryAssembler.java new file mode 100644 index 00000000..bb70daa5 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/assembler/PurchaseInventoryAssembler.java @@ -0,0 +1,65 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.inventoryManage.assembler; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.administration.domain.Patient; +import com.openhis.medication.domain.Medication; +import com.openhis.web.inventoryManage.dto.InventoryReceiptDto; +import com.openhis.workflow.domain.SupplyRequest; + +/** + * 采购入库相关dto转换器 + * + * @author zwh + * @date 2025-02-20 + */ +public class PurchaseInventoryAssembler { + + /** + * 装配【入库单据分页列表DTO】分页 + * + * @param supplyRequestPage 【供应申请管理Entity实体】分页 + * @param medicationList 【药品基本信息管理Entity实体】列表 + * @param patientList【患者管理Entity实体】列表 + * @return 【入库单据分页列表DTO】分页 + */ + public static Page assembleInventoryReceiptDto(Page supplyRequestPage, + List medicationList, List patientList) { + + // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map + Map medicationMap = + medicationList.stream().collect(Collectors.toMap(Medication::getId, Function.identity())); + + // 将查询到的【患者管理】列表,作成以ID为Key的Map + Map patientMap = + patientList.stream().collect(Collectors.toMap(Patient::getId, Function.identity())); + + // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】 + Page returnPage = + new Page<>(supplyRequestPage.getCurrent(), supplyRequestPage.getSize(), supplyRequestPage.getTotal()); + + // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页 + returnPage.setRecords(supplyRequestPage.getRecords().stream().map(entity -> { + // 定义【入库单据分页列表DTO】 + InventoryReceiptDto dto = new InventoryReceiptDto(); + // 从主表COPY需要的字段 + dto.setId(entity.getId()); + dto.setCategoryEnum(1); + // 从【药品基本信息管理】Map取值,设置【药品基本信息管理】返回实体 + dto.setMedication(medicationMap.getOrDefault(entity.getDispenseId(), null)); + // 从【患者管理】Map取值,设置【患者管理】返回实体 + dto.setPatient(patientMap.getOrDefault(entity.getPatientId(), null)); + return dto; + }).collect(Collectors.toList())); + + // 返回【入库单据分页列表DTO】分页 + return returnPage; + } +} 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 a12d3aa9..074fcf0f 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 @@ -3,17 +3,27 @@ */ package com.openhis.web.inventoryManage.controller; +import java.util.List; +import java.util.stream.Collectors; + import javax.servlet.http.HttpServletRequest; -import com.openhis.workflow.service.ISupplyRequestService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.core.common.utils.bean.BeanUtils; +import com.openhis.administration.domain.Patient; +import com.openhis.administration.service.IPatientService; +import com.openhis.medication.domain.Medication; +import com.openhis.medication.service.IMedicationService; +import com.openhis.web.inventoryManage.assembler.PurchaseInventoryAssembler; import com.openhis.web.inventoryManage.dto.SupplySearchParam; import com.openhis.workflow.domain.SupplyRequest; +import com.openhis.workflow.service.ISupplyRequestService; -import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; /** @@ -23,12 +33,15 @@ import lombok.extern.slf4j.Slf4j; * @date 2025-02-18 */ @RestController -@RequestMapping("/purchase-inventory") +@RequestMapping("/inventory-manage-purchase") @Slf4j -@AllArgsConstructor public class PurchaseInventoryController { - - private final ISupplyRequestService supplyRequestService; + @Autowired + private ISupplyRequestService supplyRequestService; + @Autowired + private IMedicationService medicationService; + @Autowired + private IPatientService patientService; /** * 入库单据分页列表 @@ -83,9 +96,53 @@ public class PurchaseInventoryController { * * @param supplyRequest 供应请求信息 */ + @PutMapping("/submit-examine") public void submitExamine(SupplyRequest supplyRequest) { // 更改供应请求单据状态 // 生成供应分发supply_delivery } + + /** + * 入库单据详情列表 + * + * @param supplySearchParam 查询条件 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param request 请求数据 + * @return 入库单据分页列表 + */ + @GetMapping(value = "/inventory-receipt-page") + public R getDetailPage(SupplySearchParam supplySearchParam, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + + // 数据初始化 + Medication medication = new Medication(); + BeanUtils.copyProperties(supplySearchParam, medication); + + SupplyRequest supplyRequest = new SupplyRequest(); + BeanUtils.copyProperties(supplySearchParam, supplyRequest); + + // 获取供应请求信息 + + // ==================================================================================== + + // 查询【供应申请管理】分页列表 + Page supplyRequestPage = supplyRequestService.getPage(supplyRequest, pageNo, pageSize); + + // 根据【发放id】查询【药品基本信息管理】列表 + List medicationList = medicationService.listByIds( + supplyRequestPage.getRecords().stream().map(SupplyRequest::getDispenseId).collect(Collectors.toList())); + + // 根据【患者id】查询【患者管理】列表 + List patientList = patientService.listByIds( + supplyRequestPage.getRecords().stream().map(SupplyRequest::getPatientId).collect(Collectors.toList())); + + // 装配并返回【入库单据分页列表DTO】分页 + return R.ok( + PurchaseInventoryAssembler.assembleInventoryReceiptDto(supplyRequestPage, medicationList, patientList), + "查询成功"); + + } } 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 07a1a179..c0229305 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 @@ -3,6 +3,13 @@ */ package com.openhis.web.inventoryManage.dto; +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.openhis.administration.domain.Patient; +import com.openhis.medication.domain.Medication; import lombok.Data; import lombok.experimental.Accessors; @@ -14,5 +21,70 @@ import lombok.experimental.Accessors; */ @Data @Accessors(chain = true) -public class InventoryReceiptDto { +public class InventoryReceiptDto implements Serializable { + + /** ID */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** 类型 */ + private Integer typeEnum; + + /** 状态 */ + private Integer statusEnum; + + /** 意图 */ + private Integer intentEnum; + + /** 分类 */ + private Integer categoryEnum; + + /** 优先权 */ + private Integer priorityEnum; + + /** 汇总编号 */ + private Long summaryId; + + /** 交付 */ + private Long deliverId; + + /** 患者id */ + private Long patientId; + + /** 发放实体表名 */ + private String dispenseTable; + + /** 发放id */ + private Long dispenseId; + + /** 期望时间 */ + private Date occurrenceTime; + + /** 供应人 */ + private Long practitionerId; + + /** 供应商 */ + private Long supplierId; + + /** 理由 */ + private String reason; + + /** 源仓库类型 */ + private Integer sourceType; + + /** 源仓库 */ + private Long sourceLocationId; + + /** 源仓位 */ + private Long sourceLocationStoreId; + + /** 目的类型 */ + private Integer purposeType; + + /** 药品基本信息管理Entity实体 */ + private Medication medication; + + /** 患者管理Entity实体 */ + private Patient patient; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/dto/SupplySearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/dto/SupplySearchParam.java index b4d0b194..711cd6e9 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/dto/SupplySearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/InventoryManage/dto/SupplySearchParam.java @@ -3,6 +3,8 @@ */ package com.openhis.web.inventoryManage.dto; +import java.io.Serializable; + import lombok.Data; import lombok.experimental.Accessors; @@ -14,4 +16,6 @@ import lombok.experimental.Accessors; */ @Data @Accessors(chain = true) -public class SupplySearchParam {} +public class SupplySearchParam implements Serializable { + +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/MessageConstants.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/MessageConstants.java new file mode 100644 index 00000000..de7517a0 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/MessageConstants.java @@ -0,0 +1,15 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.common.constant; + +/** + * 共同文言 + * + * @author zwh + * @date 2025-02-20 + */ +public class MessageConstants { + + +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java index 0dab1092..50c69358 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java @@ -9,16 +9,18 @@ public enum DelFlag { /** * 未删除 */ - NO("0", "未删除"), + NO(0, "0", "未删除"), /** * 已删除 */ - YES("1", "已删除"); + YES(1, "1", "已删除"); + private final Integer value; private final String code; private final String info; - DelFlag(String code, String info) { + DelFlag(Integer value, String code, String info) { + this.value = value; this.code = code; this.info = info; } @@ -30,4 +32,8 @@ public enum DelFlag { public String getInfo() { return info; } + + public Integer getValue() { + return value; + } } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationService.java index 082774d7..7db98470 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/IMedicationService.java @@ -1,7 +1,11 @@ package com.openhis.medication.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.core.common.core.domain.R; import com.openhis.medication.domain.Medication; +import com.openhis.workflow.domain.SupplyRequest; + +import java.util.List; /** * 药品基本信息管理Service接口 @@ -11,4 +15,11 @@ import com.openhis.medication.domain.Medication; */ public interface IMedicationService extends IService { + /** + * 查询药品信息列表 + * + * @param medicationIdList 药品id列表 + * @return 药品信息列表 + */ + List getList(List medicationIdList); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java index 32acbdae..7b59a921 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java @@ -1,19 +1,45 @@ package com.openhis.medication.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.common.enums.DelFlag; import com.openhis.medication.domain.Medication; import com.openhis.medication.mapper.MedicationMapper; import com.openhis.medication.service.IMedicationService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + /** * 药品基本信息管理Service业务层处理 * * @author system * @date 2025-02-20 */ +@Slf4j @Service +@AllArgsConstructor public class MedicationServiceImpl extends ServiceImpl implements IMedicationService { + /** + * 查询药品信息列表 + * + * @param medicationIdList 药品id列表 + * @return 药品信息列表 + */ + @Override + public List getList(List medicationIdList) { + + // 判断是否为空 + if (!medicationIdList.isEmpty()) { + // 查询药品相关信息列表并返回 + return baseMapper.selectList(new LambdaQueryWrapper() + .eq(Medication::getDeleteFlag, DelFlag.NO.getValue()).in(Medication::getId, medicationIdList)); + } + return null; + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java index 4962d11e..e132289d 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java @@ -1,5 +1,6 @@ package com.openhis.workflow.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.workflow.domain.SupplyRequest; @@ -11,4 +12,11 @@ import com.openhis.workflow.domain.SupplyRequest; */ public interface ISupplyRequestService extends IService { + /** + * 查询供应申请分页列表 + * + * @param supplyRequest 查询条件 + * @return 供应申请列表 + */ + Page getPage(SupplyRequest supplyRequest, Integer pageNo, Integer pageSize); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestServiceImpl.java index d14ca952..96753e78 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestServiceImpl.java @@ -2,18 +2,50 @@ package com.openhis.workflow.service.impl; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.common.enums.DelFlag; import com.openhis.workflow.domain.SupplyRequest; import com.openhis.workflow.mapper.SupplyRequestMapper; import com.openhis.workflow.service.ISupplyRequestService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + /** * 供应申请管理Service业务层处理 * * @author system * @date 2025-02-20 */ +@Slf4j @Service -public class SupplyRequestServiceImpl extends ServiceImpl implements ISupplyRequestService { +@AllArgsConstructor +public class SupplyRequestServiceImpl extends ServiceImpl + implements ISupplyRequestService { + private final SupplyRequestMapper supplyRequestMapper; + + /** + * 查询供应申请列表 + * + * @param supplyRequest 查询条件 + * @return 供应申请列表 + */ + @Override + public Page getPage(SupplyRequest supplyRequest, Integer pageNo, Integer pageSize) { + + Page supplyRequestList; + // 判断入库数量 + if (supplyRequest.getItemQuantity() != 0) { + // 查询供应申请信息列表 + supplyRequestList = supplyRequestMapper.selectPage(new Page<>(pageNo, pageSize), + new LambdaQueryWrapper().eq(SupplyRequest::getDeleteFlag, DelFlag.NO.getValue())); + } else { + return null; + } + // 返回入库信息列表 + return supplyRequestList; + } } \ No newline at end of file