From 9f2067745f2edcfdf433f3ee7e63e072979265c0 Mon Sep 17 00:00:00 2001 From: Zhuangxingyu Date: Tue, 25 Feb 2025 17:14:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AE=9A=E4=BB=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ItemDefinitionController.java | 62 +++--- .../dto/ChargeItemDefPageDto.java | 15 ++ .../mapper/ChargeItemDefSearchMapper.java | 44 ++--- .../ChargeItemDefSearchMapper.xml | 186 +++++++----------- 4 files changed, 134 insertions(+), 173 deletions(-) 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 3a1c11c4..e068e18a 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 @@ -10,11 +10,15 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; +import org.apache.ibatis.builder.MapperBuilderAssistant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -22,6 +26,7 @@ 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.ChargeItemDefApp; import com.openhis.administration.domain.ChargeItemDefinition; @@ -124,51 +129,44 @@ public class ItemDefinitionController { /** * 项目定价列表 * - * @param itemDefSearchParam 查询条件 + * @param chargeItemDefPageDto 查询条件 * @param pageNo 当前页码 * @param pageSize 查询条数 * @param request 请求数据 * @return 项目定价列表 */ @GetMapping(value = "/item-definition-page") - public R getDefinitionPage(ItemDefSearchParam itemDefSearchParam, + public R getDefinitionPage(ChargeItemDefPageDto chargeItemDefPageDto, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(value = "searchKey", required = false) String searchKey, HttpServletRequest request) { IPage chargeItemDefinitionPage = new Page<>(); - List chargeItemDefinitionList; - - // 跳过的数量 - int skipCount = 0; - if (pageNo > 0) { - skipCount = (pageNo - 1) * pageSize; + // 初始化表格配置并构建查询条件 + TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), ""), + ChargeItemDefPageDto.class); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 构造查询条件 + if (StringUtils.isNotEmpty(searchKey)) { + queryWrapper.and(q -> q.like(ChargeItemDefPageDto::getChargeName, searchKey).or() + .like(ChargeItemDefPageDto::getItemNo, searchKey).or().like(ChargeItemDefPageDto::getPyStr, searchKey)); } - // 通过 DefinitionType 区分药品定价/器具定价/手术定价 - if (DefinitionTypeEnum.MEDICATION.getCode().equals(itemDefSearchParam.getDefinitionType())) { - // 获取定价列表 - chargeItemDefinitionList = - chargeItemDefSearchMapper.getMedList(itemDefSearchParam, pageNo, pageSize, searchKey, skipCount); - } else if (DefinitionTypeEnum.DEVICE.getCode().equals(itemDefSearchParam.getDefinitionType())) { - // 获取定价列表 - chargeItemDefinitionList = - chargeItemDefSearchMapper.getDevList(itemDefSearchParam, pageNo, pageSize, searchKey, skipCount); - } else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(itemDefSearchParam.getDefinitionType())) { - // 获取定价列表 - chargeItemDefinitionList = - chargeItemDefSearchMapper.getActList(itemDefSearchParam, pageNo, pageSize, searchKey, skipCount); - } else { - chargeItemDefinitionList = new ArrayList<>(); + if (chargeItemDefPageDto.getChargeItem() != null) { + queryWrapper.eq(ChargeItemDefPageDto::getCategoryCode, chargeItemDefPageDto.getChargeItem()); } - // 设置分页条件 - chargeItemDefinitionPage.setSize(pageSize); - chargeItemDefinitionPage.setCurrent(pageNo); - if (chargeItemDefinitionList.size() > 0) { - chargeItemDefinitionPage.setTotal(chargeItemDefinitionList.get(0).getTotalCount()); - chargeItemDefinitionPage.setRecords(chargeItemDefinitionList); - } else { - chargeItemDefinitionPage.setTotal(0); - chargeItemDefinitionPage.setRecords(new ArrayList<>()); + // 通过 DefinitionType 区分药品定价/器具定价/活动定价 + if (DefinitionTypeEnum.MEDICATION.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, "med_medication_definition"); + chargeItemDefinitionPage = + chargeItemDefSearchMapper.getMedList(new Page<>(pageNo, pageSize), queryWrapper); + } else if (DefinitionTypeEnum.DEVICE.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, "adm_device_definition"); + chargeItemDefinitionPage = + chargeItemDefSearchMapper.getDevList(new Page<>(pageNo, pageSize), queryWrapper); + } else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(chargeItemDefPageDto.getDefinitionType())) { + queryWrapper.eq(ChargeItemDefPageDto::getInstanceTable, "wor_activity_definition"); + chargeItemDefinitionPage = + chargeItemDefSearchMapper.getActList(new Page<>(pageNo, pageSize), queryWrapper); } return R.ok(chargeItemDefinitionPage, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, null)); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ChargeItemDefPageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ChargeItemDefPageDto.java index ea0057e4..1b076786 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ChargeItemDefPageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ChargeItemDefPageDto.java @@ -87,4 +87,19 @@ public class ChargeItemDefPageDto { /** 总条数 */ private Integer totalCount; + + /** 拼音助记码 */ + private String pyStr; + + /** 收费项目 */ + private Integer categoryCode; + + /** 编码 */ + private String instanceTable; + + /** 定价类型 */ + private String definitionType; + + /** 定价项目 */ + private Integer chargeItem; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/ChargeItemDefSearchMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/ChargeItemDefSearchMapper.java index 9bdaa3da..a2fc70b2 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/ChargeItemDefSearchMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/ChargeItemDefSearchMapper.java @@ -5,7 +5,11 @@ import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.administration.domain.ChargeItemDefinition; import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto; import com.openhis.web.datadictionary.dto.ItemDefSearchParam; @@ -21,43 +25,31 @@ public interface ChargeItemDefSearchMapper extends BaseMapper getMedList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam, - @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("searchKey") String searchKey, - @Param("skipCount") Integer skipCount); + IPage getMedList(@Param("page") Page page, + @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper); /** * 器具费用定价分页查询 - * - * @param itemDefSearchParam 查询条件 - * @param pageNo 页码 - * @param pageSize 页面大小 - * @param searchKey 模糊搜索条件 - * @param skipCount 跳过条数 + * + * @param page 分页条件 + * @param queryWrapper 查询条件 * @return 分页查询 */ - List getDevList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam, - @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("searchKey") String searchKey, - @Param("skipCount") int skipCount); + IPage getDevList(@Param("page") Page page, + @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper); /** * 活动费用定价分页查询 * - * @param itemDefSearchParam 查询条件 - * @param pageNo 页码 - * @param pageSize 页面大小 - * @param searchKey 模糊搜索条件 - * @param skipCount 跳过条数 + * @param page 分页条件 + * @param queryWrapper 查询条件 * @return 分页查询 */ - List getActList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam, - @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("searchKey") String searchKey, - @Param("skipCount") int skipCount); + IPage getActList(@Param("page") Page page, + @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper); } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/ChargeItemDefSearchMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/ChargeItemDefSearchMapper.xml index 30820ae0..dfdce334 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/ChargeItemDefSearchMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/ChargeItemDefSearchMapper.xml @@ -1,84 +1,69 @@ - - - \ No newline at end of file