diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index 5226ede8..8a3f855f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; +import com.core.common.core.redis.RedisCache; import com.core.common.enums.TenantOptionDict; import com.core.common.exception.ServiceException; import com.core.common.utils.AssignSeqUtil; @@ -99,6 +100,14 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp @Resource DoctorStationSendApplyUtil doctorStationSendApplyUtil; + @Resource + RedisCache redisCache; + + // 缓存 key 前缀 + private static final String ADVICE_BASE_INFO_CACHE_PREFIX = "advice:base:info:"; + // 缓存过期时间(小时) + private static final long CACHE_EXPIRE_HOURS = 24; + /** * 查询医嘱信息 @@ -132,14 +141,40 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp String safePageNo = pageNo != null ? pageNo.toString() : ""; String safePageSize = pageSize != null ? pageSize.toString() : ""; - log.info("从数据库查询医嘱基础信息"); - // 设置默认科室:仅当前端/调用方未传 organizationId 时才回退到登录人科室 // 否则会导致门诊划价等场景(按患者挂号科室查询)返回空 if (organizationId == null) { organizationId = SecurityUtils.getLoginUser().getOrgId(); } + // 只有在没有搜索关键字时才尝试使用缓存 + boolean useCache = (searchKey == null || searchKey.trim().isEmpty()) + && (adviceDefinitionIdParamList == null || adviceDefinitionIdParamList.isEmpty()); + + String cacheKey = null; + if (useCache) { + // 生成缓存 key:无搜索关键字时按科室缓存 + cacheKey = ADVICE_BASE_INFO_CACHE_PREFIX + organizationId + ":" + safeAdviceTypesStr + ":" + safePageNo + ":" + safePageSize; + + // 先清除可能存在的无效缓存(JSONObject类型) + if (redisCache.hasKey(cacheKey)) { + Object cachedObj = redisCache.getCacheObject(cacheKey); + if (cachedObj instanceof com.alibaba.fastjson2.JSONObject) { + redisCache.deleteObject(cacheKey); + log.info("清除无效缓存, key: {}", cacheKey); + } else if (cachedObj instanceof com.baomidou.mybatisplus.extension.plugins.pagination.Page) { + log.info("从缓存获取医嘱基础信息, key: {}, records: {}", cacheKey, ((IPage)cachedObj).getRecords().size()); + return (IPage) cachedObj; + } + } + + log.info("缓存未命中,准备查询数据库, key: {}", cacheKey); + } else { + log.info("不使用缓存条件: searchKey={}, adviceDefinitionIdParamList={}", searchKey, adviceDefinitionIdParamList); + } + + log.info("从数据库查询医嘱基础信息"); + // 医嘱定价来源 String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE); if (StringUtils.isEmpty(orderPricingSource) && StringUtils.isEmpty(orderPricing)) { @@ -160,7 +195,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp new Page<>(pageNo, pageSize), PublicationStatus.ACTIVE.getValue(), organizationId, CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION, CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, pricingFlag, adviceDefinitionIdParamList, - adviceTypes, + adviceTypes, searchKey, queryWrapper); List adviceBaseDtoList = adviceBaseInfo.getRecords(); @@ -390,6 +425,15 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp } } + // 缓存结果(只有无搜索关键字时才缓存) + if (useCache && cacheKey != null && adviceBaseInfo != null) { + // 确保是 IPage 类型再缓存,避免缓存无效数据 + if (adviceBaseInfo instanceof com.baomidou.mybatisplus.extension.plugins.pagination.Page) { + redisCache.setCacheObject(cacheKey, adviceBaseInfo, (int) CACHE_EXPIRE_HOURS, java.util.concurrent.TimeUnit.HOURS); + log.info("缓存医嘱基础信息, key: {}, 过期时间: {} 小时", cacheKey, CACHE_EXPIRE_HOURS); + } + } + return adviceBaseInfo; } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationChineseMedicalController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationChineseMedicalController.java index 90a6efca..5864da78 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationChineseMedicalController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationChineseMedicalController.java @@ -4,6 +4,7 @@ package com.openhis.web.doctorstation.controller; import com.core.common.core.domain.R; +import com.core.common.utils.SecurityUtils; import com.openhis.common.enums.AdviceOpType; import com.openhis.common.enums.Whether; import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService; @@ -109,9 +110,13 @@ public class DoctorStationChineseMedicalController { @RequestParam(value = "searchKey", defaultValue = "") String searchKey, @RequestParam(value = "locationId", required = false) Long locationId, @RequestParam(value = "adviceDefinitionIdParamList", required = false) List adviceDefinitionIdParamList, - @RequestParam(value = "organizationId") Long organizationId, + @RequestParam(value = "organizationId", required = false) Long organizationId, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + // 从当前登录用户获取科室 ID 作为默认值 + if (organizationId == null) { + organizationId = SecurityUtils.getLoginUser().getOrgId(); + } return R.ok(iDoctorStationChineseMedicalAppService.getTcmAdviceBaseInfo(adviceBaseDto, searchKey, locationId, adviceDefinitionIdParamList, organizationId, pageNo, pageSize, Whether.NO.getValue())); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java index 1ff53bff..a0fa057d 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java @@ -37,6 +37,7 @@ public interface DoctorStationAdviceAppMapper { @Param("activityTableName") String activityTableName, @Param("pricingFlag") Integer pricingFlag, @Param("adviceDefinitionIdParamList") List adviceDefinitionIdParamList, @Param("adviceTypes") List adviceTypes, + @Param("searchKey") String searchKey, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); /** diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/IOrdersGroupPackageAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/IOrdersGroupPackageAppService.java index 35a72b6a..cd7abffc 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/IOrdersGroupPackageAppService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/IOrdersGroupPackageAppService.java @@ -30,9 +30,10 @@ public interface IOrdersGroupPackageAppService { * * @param packageTypeEnum 类型枚举 * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 组合套餐 */ - List getGroupPackage(Integer packageTypeEnum, String searchKey); + List getGroupPackage(Integer packageTypeEnum, String searchKey, Integer tcmFlag); /** * 查询组合套餐明细 @@ -54,8 +55,9 @@ public interface IOrdersGroupPackageAppService { * 查询组合套餐,供开立医嘱使用 * * @param organizationId 患者挂号对应的科室id + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 组合套餐 */ - OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId); + OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId, Integer tcmFlag); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java index c604d956..72d401b3 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/appservice/impl/OrdersGroupPackageAppServiceImpl.java @@ -1,8 +1,16 @@ package com.openhis.web.personalization.appservice.impl; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; -import com.core.common.exception.ServiceException; import com.core.common.utils.MessageUtils; import com.core.common.utils.SecurityUtils; import com.openhis.common.constant.PromptMsgConstant; @@ -18,13 +26,8 @@ import com.openhis.web.doctorstation.dto.AdviceBaseDto; import com.openhis.web.personalization.appservice.IOrdersGroupPackageAppService; import com.openhis.web.personalization.dto.*; import com.openhis.web.personalization.mapper.OrdersGroupPackageAppMapper; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import static com.core.framework.datasource.DynamicDataSourceContextHolder.log; /** * 组合套餐 实现类 @@ -61,10 +64,12 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS if (BindingType.PERSONAL.getValue().equals(packageTypeEnum) && ordersGroupPackageSaveDto.getPractitionerId() == null) { - throw new ServiceException("个人组套需选择人员"); + // throw new ServiceException("个人组套需选择人员"); + ordersGroupPackageSaveDto.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId()); } else if (BindingType.ORGANIZATION.getValue().equals(packageTypeEnum) && ordersGroupPackageSaveDto.getOrganizationId() == null) { - throw new ServiceException("科室组套需选择科室"); + // throw new ServiceException("科室组套需选择科室"); + ordersGroupPackageSaveDto.setOrganizationId(SecurityUtils.getLoginUser().getOrgId()); } // 保存主表 OrdersGroupPackage ordersGroupPackage = new OrdersGroupPackage(); @@ -73,6 +78,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS ordersGroupPackage.setPackageTypeEnum(packageTypeEnum);// 组套包类型 ordersGroupPackage.setOrganizationId(ordersGroupPackageSaveDto.getOrganizationId()); // 科室id ordersGroupPackage.setPractitionerId(ordersGroupPackageSaveDto.getPractitionerId()); // 参与者id + ordersGroupPackage.setTcmFlag(ordersGroupPackageSaveDto.getTcmFlag()); // 中医标识 ordersGroupPackageService.saveOrUpdate(ordersGroupPackage); // 编辑场景时,先删除原有的明细再新增 @@ -96,6 +102,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS ordersGroupPackageDetail.setMethodCode(ordersGroupPackageDetailSaveDto.getMethodCode()); // 给药途径 ordersGroupPackageDetail.setDoseQuantity(ordersGroupPackageDetailSaveDto.getDoseQuantity()); // 小单位单次剂量 ordersGroupPackageDetail.setGroupId(ordersGroupPackageDetailSaveDto.getGroupId()); // 组号 + ordersGroupPackageDetail.setTherapyEnum(ordersGroupPackageDetailSaveDto.getTherapyEnum()); // 治疗类型 ordersGroupPackageDetailService.save(ordersGroupPackageDetail); } @@ -107,12 +114,14 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS * * @param packageTypeEnum 类型枚举 * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识 * @return 组合套餐 */ @Override - public List getGroupPackage(Integer packageTypeEnum, String searchKey) { + public List getGroupPackage(Integer packageTypeEnum, String searchKey, + Integer tcmFlag) { List groupPackage = - ordersGroupPackageAppMapper.getGroupPackage(packageTypeEnum, null, null, searchKey); + ordersGroupPackageAppMapper.getGroupPackage(packageTypeEnum, null, null, searchKey, tcmFlag); for (OrdersGroupPackageQueryDto ordersGroupPackageQueryDto : groupPackage) { ordersGroupPackageQueryDto.setPackageTypeEnum_enumText( EnumUtils.getInfoByValue(BindingType.class, ordersGroupPackageQueryDto.getPackageTypeEnum())); @@ -151,19 +160,23 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS * 查询组合套餐,供开立医嘱使用 * * @param organizationId 患者挂号对应的科室id + * @param tcmFlag 中医标识 * @return 组合套餐 */ @Override - public OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId) { + public OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId, Integer tcmFlag) { OrdersGroupPackageUseDto ordersGroupPackageUseDto = new OrdersGroupPackageUseDto(); // 当前参参与者id Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId(); // 当前登录账号的科室id Long orgId = SecurityUtils.getLoginUser().getOrgId(); + + log.info("[getGroupPackageForOrder] 当前登录用户 practitionerId: {}, orgId: {}", practitionerId, orgId); // 个人组套 - List personalGroupPackage = - ordersGroupPackageAppMapper.getGroupPackage(BindingType.PERSONAL.getValue(), null, practitionerId, null); + List personalGroupPackage = ordersGroupPackageAppMapper + .getGroupPackage(BindingType.PERSONAL.getValue(), null, practitionerId, null, tcmFlag); + log.info("[getGroupPackageForOrder] 个人组套查询结果数: {}", personalGroupPackage.size()); if (!personalGroupPackage.isEmpty()) { List personalList = personalGroupPackage.stream().map(queryDto -> { OrdersGroupPackageDto dto = new OrdersGroupPackageDto(); @@ -208,10 +221,13 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS }); } ordersGroupPackageUseDto.setPersonalList(personalList); + log.info("[getGroupPackageForOrder] 个人组套已设置,数量: {}", personalList.size()); + } else { + log.info("[getGroupPackageForOrder] 个人组套查询结果为空"); } // 科室组套 - List organizationGroupPackage = - ordersGroupPackageAppMapper.getGroupPackage(BindingType.ORGANIZATION.getValue(), orgId, null, null); + List organizationGroupPackage = ordersGroupPackageAppMapper + .getGroupPackage(BindingType.ORGANIZATION.getValue(), orgId, null, null, tcmFlag); if (!organizationGroupPackage.isEmpty()) { List organizationList = organizationGroupPackage.stream().map(queryDto -> { OrdersGroupPackageDto dto = new OrdersGroupPackageDto(); @@ -260,7 +276,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS // 全院组套 List hospitalGroupPackage = - ordersGroupPackageAppMapper.getGroupPackage(BindingType.HOSPITAL.getValue(), null, null, null); + ordersGroupPackageAppMapper.getGroupPackage(BindingType.HOSPITAL.getValue(), null, null, null, tcmFlag); if (!hospitalGroupPackage.isEmpty()) { List hospitalList = hospitalGroupPackage.stream().map(queryDto -> { OrdersGroupPackageDto dto = new OrdersGroupPackageDto(); diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/controller/OrdersGroupPackageController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/controller/OrdersGroupPackageController.java index 6dda9552..beb48a8e 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/controller/OrdersGroupPackageController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/controller/OrdersGroupPackageController.java @@ -65,33 +65,39 @@ public class OrdersGroupPackageController { * 查询个人组套 * * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 个人组套 */ @GetMapping(value = "/get-personal") - public R getPersonal(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) { - return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.PERSONAL.getValue(), searchKey)); + public R getPersonal(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) { + return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.PERSONAL.getValue(), searchKey, tcmFlag)); } /** * 查询科室组套 * * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 科室组套 */ @GetMapping(value = "/get-organization") - public R getOrganization(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) { - return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.ORGANIZATION.getValue(), searchKey)); + public R getOrganization(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) { + return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.ORGANIZATION.getValue(), searchKey, tcmFlag)); } /** * 查询全院组套 * * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 全院组套 */ @GetMapping(value = "/get-hospital") - public R getHospital(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) { - return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.HOSPITAL.getValue(), searchKey)); + public R getHospital(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) { + return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.HOSPITAL.getValue(), searchKey, tcmFlag)); } /** @@ -120,12 +126,13 @@ public class OrdersGroupPackageController { * 查询组合套餐,供开立医嘱使用 * * @param organizationId 患者挂号对应的科室id + * @param tcmFlag 中医标识:0-西医 1-中医,不传则不过滤 * @return 组合套餐 */ @GetMapping(value = "/group-package-for-order") - public R - getGroupPackageForOrder(@RequestParam(value = "organizationId", defaultValue = "0") Long organizationId) { - return R.ok(ordersGroupPackageAppService.getGroupPackageForOrder(organizationId)); + public R getGroupPackageForOrder(@RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam(value = "tcmFlag", required = false) Integer tcmFlag) { + return R.ok(ordersGroupPackageAppService.getGroupPackageForOrder(organizationId, tcmFlag)); } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java index c4fc065f..1ef0d09d 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageDetailSaveDto.java @@ -63,4 +63,9 @@ public class OrdersGroupPackageDetailSaveDto { */ private Long groupId; + /** + * 治疗类型:1-长期 2-临时 + */ + private Integer therapyEnum; + } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageSaveDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageSaveDto.java index edb2c0c7..cc5f0722 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageSaveDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/dto/OrdersGroupPackageSaveDto.java @@ -48,6 +48,11 @@ public class OrdersGroupPackageSaveDto { @JsonSerialize(using = ToStringSerializer.class) private Long practitionerId; + /** + * 中医标识:0-西医 1-中医 + */ + private Integer tcmFlag; + /** * 明细集合 */ diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/mapper/OrdersGroupPackageAppMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/mapper/OrdersGroupPackageAppMapper.java index 0f0a77cd..77b3808d 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/mapper/OrdersGroupPackageAppMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/personalization/mapper/OrdersGroupPackageAppMapper.java @@ -26,11 +26,12 @@ public interface OrdersGroupPackageAppMapper { * @param organizationId 科室id * @param practitionerId 参与者id * @param searchKey 模糊查询关键字 + * @param tcmFlag 中医标识:0-西医 1-中医 * @return 组合套餐 */ List getGroupPackage(@Param("packageTypeEnum") Integer packageTypeEnum, @Param("organizationId") Long organizationId, @Param("practitionerId") Long practitionerId, - @Param("searchKey") String searchKey); + @Param("searchKey") String searchKey, @Param("tcmFlag") Integer tcmFlag); /** * 查询组合套餐明细 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml index 29e2ccbd..5167aaca 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml @@ -230,7 +230,7 @@ WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum = #{typeEnum} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -292,7 +292,7 @@ WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum = #{typeEnum} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml index 90aa26d0..6a21eabf 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml @@ -442,7 +442,7 @@ AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' @@ -515,7 +515,7 @@ AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml index 89430ec9..86f4e128 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml @@ -419,7 +419,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -499,7 +499,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml index 9c922bc2..884ad571 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml @@ -229,7 +229,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -280,7 +280,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml index e023bc6e..69d386ff 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml @@ -384,7 +384,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -478,7 +478,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml index 9f603318..d122c178 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml @@ -268,7 +268,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -343,7 +343,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml index f1fe861a..e1b8904b 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml @@ -266,7 +266,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' UNION @@ -341,7 +341,7 @@ #{item} - AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml index 87053af5..c67fdff4 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml @@ -49,7 +49,7 @@ - (SELECT + (SELECT DISTINCT ON (T1.ID) T1.tenant_id, 1 AS advice_type, @@ -81,7 +81,7 @@ CAST(T2.dose AS TEXT) AS dose, T2.dose_unit_code AS dose_unit_code, T3.NAME AS supplier, - T3.id AS supplier_id, + t3.id AS supplier_id, T1.manufacturer_text AS manufacturer, T5.id AS charge_item_definition_id, T5.instance_table AS advice_table_name, @@ -91,24 +91,21 @@ T1.dosage_instruction AS dosage_instruction, T1.chrgitm_lv as chrgitm_lv FROM med_medication_definition AS t1 - INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID + INNER JOIN med_medication AS T2 ON T2.medication_def_id = t1.ID AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum} - LEFT JOIN adm_supplier AS T3 - ON T3.ID = T1.supply_id - AND T3.delete_flag = '0' - LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID - AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum} - LEFT JOIN adm_organization_location AS T6 - ON T6.distribution_category_code = T1.category_code - AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND - (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time) - WHERE T1.delete_flag = '0' + LEFT JOIN adm_supplier AS T3 ON T3.ID = t1.supply_id AND T3.delete_flag = '0' + LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = t1.ID AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum} + LEFT JOIN adm_organization_location AS T6 ON T6.distribution_category_code = t1.category_code AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time) + WHERE t1.delete_flag = '0' AND T2.status_enum = #{statusEnum} AND 1 = 2 + + AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%') + - AND T1.id IN + AND t1.id IN #{itemId} @@ -151,7 +148,7 @@ '' AS dose, '' AS dose_unit_code, T2.NAME AS supplier, - T2.id AS supplier_id, + t2.id AS supplier_id, T1.manufacturer_text AS manufacturer, T4.id AS charge_item_definition_id, T4.instance_table AS advice_table_name, @@ -161,17 +158,16 @@ '' AS dosage_instruction, T1.chrgitm_lv as chrgitm_lv FROM adm_device_definition AS T1 - LEFT JOIN adm_supplier AS T2 - ON T2.ID = T1.supply_id - AND T2.delete_flag = '0' - LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID - AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum} - LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code - AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND - (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time) - WHERE T1.delete_flag = '0' + LEFT JOIN adm_supplier AS T2 ON T2.ID = t1.supply_id AND T2.delete_flag = '0' + LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = t1.ID AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum} + LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = t1.category_code AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time) + WHERE t1.delete_flag = '0' + AND t1.status_enum = #{statusEnum} + + AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%') + - AND T1.id IN + AND t1.id IN #{itemId} @@ -236,19 +232,18 @@ '' AS dosage_instruction, T1.chrgitm_lv as chrgitm_lv FROM wor_activity_definition AS T1 - LEFT JOIN adm_charge_item_definition AS T2 - ON T2.instance_id = T1.ID - AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum} - AND T2.instance_table = #{activityTableName} - LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID - AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time) + LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = t1.ID AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum} AND T2.instance_table = #{activityTableName} + LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = t1.ID AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time) AND T3.organization_id = #{organizationId} - WHERE T1.delete_flag = '0' - AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL) + WHERE t1.delete_flag = '0' + AND (t1.pricing_flag = 1 OR t1.pricing_flag IS NULL) + + AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%') + - AND T1.id IN + AND t1.id IN #{itemId} diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml index 496db5ea..e9ec9b62 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/personalization/OrdersGroupPackageAppMapper.xml @@ -28,6 +28,10 @@ AND togp.practitioner_id = #{practitionerId} + + AND togp.tcm_flag = #{tcmFlag} + + ORDER BY togp.create_time DESC @@ -56,7 +56,7 @@ AND T1.type_enum IN (#{productTransfer} ,#{productBatchTransfer} ) AND T1.status_enum = #{agree}--同意 AND T2.status_enum = #{completed}--已完成 - AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.delete_flag = '0' @@ -72,7 +72,7 @@ AND T1.type_enum IN (#{productStocktaking} ,#{productBatchStocktaking} ) AND T1.status_enum = #{agree}--同意 AND T2.status_enum = #{completed}--已完成 - AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.delete_flag = '0' @@ -88,7 +88,7 @@ AND T1.type_enum = #{lossReportForm} AND T1.status_enum = #{agree}--同意 AND T2.status_enum = #{completed}--已完成 - AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.delete_flag = '0' @@ -114,7 +114,7 @@ AND T1.status_enum = #{completed}--请求状态:已完成 AND T2.status_enum = #{agree}--请求状态:已发药 AND T1.delete_flag = '0' - AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T2.dispense_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') GROUP BY T3.name, T7.total_volume, @@ -139,7 +139,7 @@ AND T4.status_enum = #{completed}--请求状态:已完成 AND T5.status_enum = #{agree}--请求状态:已发药 AND T4.delete_flag = '0' - AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T5.dispense_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') GROUP BY T6.name, T6.size, diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportStatisticsMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportStatisticsMapper.xml index a04ffca6..6a4a589d 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportStatisticsMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportStatisticsMapper.xml @@ -75,7 +75,7 @@ ON T1.encounter_id = T3.id AND T3.delete_flag = '0' WHERE T1.status_enum = #{billed} - AND TO_CHAR(T1.update_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime} + AND T1.update_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss') AND T1.delete_flag = '0'