diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java index 77ec2fa2..0fb7b150 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java @@ -3,6 +3,18 @@ */ package com.openhis.web.basicservice.controller; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -22,18 +34,9 @@ import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.web.basicservice.dto.*; import com.openhis.web.basicservice.mapper.HealthcareServiceBizMapper; + import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 服务管理 controller @@ -57,11 +60,12 @@ public class HealthcareServiceController { HealthcareServiceInitDto healthcareServiceInitDto = new HealthcareServiceInitDto(); // 活动标记 List activeFlagOptions = Stream.of(AccountStatus.values()) - .map(status -> new HealthcareServiceInitDto.activeFlagOption(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); + .map(status -> new HealthcareServiceInitDto.activeFlagOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); healthcareServiceInitDto.setActiveFlagOptions(activeFlagOptions); // 是否需要预约 - List appointmentRequiredFlagOptions = Stream.of(WhetherContainUnknown.values()) + List appointmentRequiredFlagOptions = + Stream.of(WhetherContainUnknown.values()) .map(wh -> new HealthcareServiceInitDto.appointmentRequiredFlagOption(wh.getValue(), wh.getInfo())) .collect(Collectors.toList()); healthcareServiceInitDto.setAppointmentRequiredFlagOptions(appointmentRequiredFlagOptions); @@ -74,9 +78,11 @@ public class HealthcareServiceController { @PostMapping(value = "/healthcare-service") public R add(@Validated @RequestBody HealthcareServiceAddOrUpdateParam healthcareServiceAddOrUpdateParam) { // 服务管理-表单数据 - HealthcareServiceFormData healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); + HealthcareServiceFormData healthcareServiceFormData = + healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); // 费用定价-表单数据 - ChargeItemDefinitionFormData chargeItemDefinitionFormData = healthcareServiceAddOrUpdateParam.getChargeItemDefinitionFormData(); + ChargeItemDefinitionFormData chargeItemDefinitionFormData = + healthcareServiceAddOrUpdateParam.getChargeItemDefinitionFormData(); // 服务管理-新增 HealthcareService healthcareService = new HealthcareService(); BeanUtils.copyProperties(healthcareServiceFormData, healthcareService); @@ -84,38 +90,39 @@ public class HealthcareServiceController { // 同时保存费用定价 ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition(); BeanUtils.copyProperties(chargeItemDefinitionFormData, chargeItemDefinition); - boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareServiceAfterAdd, chargeItemDefinition); - return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"服务管理"})) : - R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); + boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareServiceAfterAdd, + chargeItemDefinition); + return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"服务管理"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } /** * 服务管理 分页查询 * * @param healthcareServiceDto 查询条件 - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param request 请求数据 + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param request 请求数据 * @return 列表信息 */ @GetMapping(value = "/healthcare-service-page") public R getHealthcareServicePage(HealthcareServiceDto healthcareServiceDto, - @RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(healthcareServiceDto, searchKey, - new HashSet<>(Arrays.asList("name", "charge_name")), request); + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(healthcareServiceDto, + searchKey, new HashSet<>(Arrays.asList("name", "charge_name")), request); IPage healthcareServicePage = healthcareServiceBizMapper.getHealthcareServicePage( - new Page<>(pageNo, pageSize), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); + new Page<>(pageNo, pageSize), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); healthcareServicePage.getRecords().forEach(e -> { - // 活动标记-枚举类回显赋值 - e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); - // 预约要求-枚举类回显赋值 - e.setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAppointmentRequiredFlag())); - } - ); + // 活动标记-枚举类回显赋值 + e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); + // 预约要求-枚举类回显赋值 + e.setAppointmentRequiredFlag_enumText( + EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAppointmentRequiredFlag())); + }); return R.ok(healthcareServicePage, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, null)); } @@ -130,18 +137,20 @@ public class HealthcareServiceController { HealthcareServiceDto healthcareServiceDto = new HealthcareServiceDto(); healthcareServiceDto.setId(id); // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(healthcareServiceDto, null, - null, null); - IPage healthcareServicePage = healthcareServiceBizMapper.getHealthcareServicePage( - new Page<>(1, 1), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); + QueryWrapper queryWrapper = + HisQueryUtils.buildQueryWrapper(healthcareServiceDto, null, null, null); + IPage healthcareServicePage = healthcareServiceBizMapper + .getHealthcareServicePage(new Page<>(1, 1), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); HealthcareServiceDto healthcareServiceDtoDetail = healthcareServicePage.getRecords().get(0); // 枚举赋值 - healthcareServiceDtoDetail.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, healthcareServiceDtoDetail.getActiveFlag())) - .setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, healthcareServiceDtoDetail.getAppointmentRequiredFlag())); + healthcareServiceDtoDetail + .setActiveFlag_enumText( + EnumUtils.getInfoByValue(AccountStatus.class, healthcareServiceDtoDetail.getActiveFlag())) + .setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, + healthcareServiceDtoDetail.getAppointmentRequiredFlag())); return R.ok(healthcareServiceDtoDetail); } - /** * 服务管理 编辑 * @@ -151,12 +160,13 @@ public class HealthcareServiceController { @PutMapping(value = "/healthcare-service") public R edit(@Validated @RequestBody HealthcareServiceAddOrUpdateParam healthcareServiceAddOrUpdateParam) { // 服务管理-表单数据 - HealthcareServiceFormData healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); + HealthcareServiceFormData healthcareServiceFormData = + healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); HealthcareService healthcareService = new HealthcareService(); BeanUtils.copyProperties(healthcareServiceFormData, healthcareService); boolean res = iHealthcareServiceService.updateHealthcareService(healthcareService); - return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"服务管理"})) : - R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"服务管理"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } /** @@ -175,13 +185,12 @@ public class HealthcareServiceController { // 同时删除非同定价 for (Long id : idsList) { LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); - QueryWrapper.eq(ChargeItemDefinition::getInstanceId, id). - eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_HEALTHCARE_SERVICE); + QueryWrapper.eq(ChargeItemDefinition::getInstanceId, id).eq(ChargeItemDefinition::getInstanceTable, + CommonConstants.TableName.ADM_HEALTHCARE_SERVICE); iChargeItemDefinitionService.remove(QueryWrapper); } - return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[]{"服务管理"})) : - R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); + return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"服务管理"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); } - } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/mapper/HealthcareServiceBizMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/mapper/HealthcareServiceBizMapper.java index 7f4e1b22..77e6152a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/mapper/HealthcareServiceBizMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/mapper/HealthcareServiceBizMapper.java @@ -1,12 +1,13 @@ package com.openhis.web.basicservice.mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.web.basicservice.dto.HealthcareServiceDto; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; /** * 服务管理 自定义Mapper @@ -17,13 +18,13 @@ public interface HealthcareServiceBizMapper { /** * 服务管理 分页查询 * - * @param page 分页参数 - * @param tableName 定价表名 + * @param page 分页参数 + * @param tableName 定价表名 * @param queryWrapper 查询条件 * @return 列表信息 */ IPage getHealthcareServicePage(@Param("page") Page page, - @Param("tableName") String tableName, - @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + @Param("tableName") String tableName, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java index 3edf2977..64bbe5c0 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java @@ -1,18 +1,20 @@ package com.openhis.common.aspectj; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.core.common.core.domain.R; -import com.openhis.common.annotation.Dict; +import java.lang.reflect.Field; +import java.util.List; + import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.lang.reflect.Field; -import java.util.List; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.openhis.common.annotation.Dict; @Aspect @Component @@ -21,19 +23,19 @@ public class DictAspect { @Autowired private JdbcTemplate jdbcTemplate; // 使用 JdbcTemplate 执行 SQL - @Around("@annotation(org.springframework.web.bind.annotation.GetMapping) || " + - "@annotation(org.springframework.web.bind.annotation.PostMapping)") + @Around("@annotation(org.springframework.web.bind.annotation.GetMapping) || " + + "@annotation(org.springframework.web.bind.annotation.PostMapping)") public Object aroundController(ProceedingJoinPoint joinPoint) throws Throwable { Object result = joinPoint.proceed(); // 执行原方法 if (result instanceof R) { // 如果返回值是 R,提取其中的数据 - R response = (R) result; + R response = (R)result; Object data = response.getData(); // 获取 R 中的实际数据 if (data instanceof Page) { // 如果数据是 Page 类型,处理分页数据 - Page page = (Page) data; + Page page = (Page)data; List records = page.getRecords(); if (!records.isEmpty()) { for (Object obj : records) { @@ -42,7 +44,7 @@ public class DictAspect { } } else if (data instanceof List) { // 如果数据是 List 类型,处理列表数据 - List list = (List) data; + List list = (List)data; if (!list.isEmpty()) { for (Object obj : list) { processDict(obj); // 处理每个 DTO 对象 @@ -99,11 +101,21 @@ public class DictAspect { if (StringUtils.isEmpty(dictTable)) { // 场景 1:默认查询 sys_dict_data 表 sql = "SELECT dict_label FROM sys_dict_data WHERE dict_type = ? AND dict_value::varchar = ? LIMIT 1"; - return jdbcTemplate.queryForObject(sql, String.class, dictCode, dictValue); + try { + return jdbcTemplate.queryForObject(sql, String.class, dictCode, dictValue); + } catch (DataAccessException e) { + // 如果查询结果为空,返回 空字符串 + return ""; + } } else { // 场景 2:查询指定表 sql = String.format("SELECT %s FROM %s WHERE %s::varchar = ? LIMIT 1", dictText, dictTable, dictCode); - return jdbcTemplate.queryForObject(sql, String.class, dictValue); + try { + return jdbcTemplate.queryForObject(sql, String.class, dictValue); + } catch (DataAccessException e) { + // 如果查询结果为空,返回 空字符串 + return ""; + } } } } \ No newline at end of file