diff --git a/openhis-server-new/openhis-application/pom.xml b/openhis-server-new/openhis-application/pom.xml
index 2c60a5c1..da4f5578 100644
--- a/openhis-server-new/openhis-application/pom.xml
+++ b/openhis-server-new/openhis-application/pom.xml
@@ -112,6 +112,13 @@
17
17
UTF-8
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java
index 9d6c3782..0fac92e3 100644
--- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java
+++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java
@@ -5,6 +5,7 @@ import com.core.common.core.domain.R;
import com.openhis.web.basedatamanage.dto.OrganizationDto;
import javax.servlet.http.HttpServletRequest;
+import java.util.List;
/**
* Organization 应该服务类
@@ -17,13 +18,13 @@ public interface IOrganizationAppService {
* @param pageSize 查询条数
* @param name 科室名称
* @param typeEnum 科室类型
- * @param classEnum 科室分类
+ * @param classEnumList 科室分类列表(逗号分隔的值)
* @param sortField 排序字段
* @param sortOrder 排序方向
* @param request 请求数据
* @return 机构树分页列表
*/
- Page getOrganizationTree(Integer pageNo, Integer pageSize, String name, Integer typeEnum, String classEnum,
+ Page getOrganizationTree(Integer pageNo, Integer pageSize, String name, Integer typeEnum, List classEnumList,
String sortField, String sortOrder, HttpServletRequest request);
/**
diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationAppServiceImpl.java
index 3b77e874..a78af066 100644
--- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationAppServiceImpl.java
+++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationAppServiceImpl.java
@@ -39,50 +39,69 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
private AssignSeqUtil assignSeqUtil;
@Override
- public Page getOrganizationTree(Integer pageNo, Integer pageSize, String name, Integer typeEnum, String classEnum,
+ public Page getOrganizationTree(Integer pageNo, Integer pageSize, String name, Integer typeEnum, List classEnumList,
String sortField, String sortOrder, HttpServletRequest request) {
+
+ // 使用Page对象进行分页查询
+ Page page = new Page<>(pageNo, pageSize);
+
// 创建查询条件
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Organization::getDeleteFlag, "0"); // 只查询未删除的记录
- // 添加查询条件
if (StringUtils.isNotEmpty(name)) {
queryWrapper.like(Organization::getName, name);
}
if (typeEnum != null) {
queryWrapper.eq(Organization::getTypeEnum, typeEnum);
}
- if (StringUtils.isNotEmpty(classEnum)) {
- // 对于多选,需要处理逗号分隔的值
+ if (classEnumList != null && !classEnumList.isEmpty()) {
+ // 使用OR条件来匹配class_enum字段中包含任一值的记录
queryWrapper.and(wrapper -> {
- String[] classEnums = classEnum.split(",");
- for (String cls : classEnums) {
- String trimmedCls = cls.trim();
- // 使用OR连接多个条件来匹配逗号分隔的值
- wrapper.or().and(subWrapper -> {
- subWrapper.eq(Organization::getClassEnum, trimmedCls)
- .or()
- .likeRight(Organization::getClassEnum, trimmedCls + ",")
- .or()
- .likeLeft(Organization::getClassEnum, "," + trimmedCls)
- .or()
- .like(Organization::getClassEnum, "," + trimmedCls + ",");
- });
+ for (int i = 0; i < classEnumList.size(); i++) {
+ String classEnum = classEnumList.get(i);
+ if (i == 0) {
+ // 第一个条件
+ wrapper.and(subWrapper -> {
+ subWrapper.eq(Organization::getClassEnum, classEnum) // 精确匹配
+ .or() // 或者
+ .likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
+ .or() // 或者
+ .likeLeft(Organization::getClassEnum, "," + classEnum) // 以",值"结尾
+ .or() // 或者
+ .like(Organization::getClassEnum, "," + classEnum + ","); // 在中间,被逗号包围
+ });
+ } else {
+ // 后续条件使用OR连接
+ wrapper.or(subWrapper -> {
+ subWrapper.eq(Organization::getClassEnum, classEnum) // 精确匹配
+ .or() // 或者
+ .likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
+ .or() // 或者
+ .likeLeft(Organization::getClassEnum, "," + classEnum) // 以",值"结尾
+ .or() // 或者
+ .like(Organization::getClassEnum, "," + classEnum + ","); // 在中间,被逗号包围
+ });
+ }
}
});
}
- // 创建Page对象
- Page page = new Page<>(pageNo, pageSize);
-
// 执行分页查询
- page = organizationService.page(page, queryWrapper);
+ Page resultPage = organizationService.page(page, queryWrapper);
- List organizationList = page.getRecords();
- // 将机构列表转为树结构
+ // 将查询结果转为DTO并构建树结构
+ List organizationList = resultPage.getRecords();
List orgTree = buildTree(organizationList);
- Page orgQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal());
- orgQueryDtoPage.setRecords(orgTree);
- return orgQueryDtoPage;
+
+ // 创建结果分页对象
+ Page result = new Page<>();
+ result.setRecords(orgTree);
+ result.setTotal(resultPage.getTotal());
+ result.setSize(resultPage.getSize());
+ result.setCurrent(resultPage.getCurrent());
+
+ return result;
}
/**
diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java
index 27d98990..481412d3 100644
--- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java
+++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java
@@ -5,6 +5,7 @@ package com.openhis.web.basedatamanage.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
+import com.core.common.utils.StringUtils;
import com.core.common.utils.MessageUtils;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.web.basedatamanage.appservice.IOrganizationAppService;
@@ -16,6 +17,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.List;
/**
* 机构管理controller
@@ -43,7 +46,7 @@ public class OrganizationController {
* @param pageSize 查询条数
* @param name 科室名称
* @param typeEnum 科室类型
- * @param classEnum 科室分类
+ * @param classEnum 科室分类(支持多选,逗号分隔)
* @param sortField 排序字段
* @param sortOrder 排序方向
* @param request 请求对象
@@ -57,8 +60,15 @@ public class OrganizationController {
@RequestParam(value = "classEnum", required = false) String classEnum,
@RequestParam(value = "sortField", required = false) String sortField,
@RequestParam(value = "sortOrder", required = false) String sortOrder, HttpServletRequest request) {
+
+ // 解析classEnum参数,支持逗号分隔的多个值
+ List classEnumList = null;
+ if (StringUtils.isNotBlank(classEnum)) {
+ classEnumList = Arrays.asList(classEnum.split(","));
+ }
+
Page organizationTree =
- iOrganizationAppService.getOrganizationTree(pageNo, pageSize, name, typeEnum, classEnum, sortField, sortOrder, request);
+ iOrganizationAppService.getOrganizationTree(pageNo, pageSize, name, typeEnum, classEnumList, sortField, sortOrder, request);
return R.ok(organizationTree,
MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"}));
}
diff --git a/openhis-server-new/openhis-domain/pom.xml b/openhis-server-new/openhis-domain/pom.xml
index 945bf489..d216f6cb 100644
--- a/openhis-server-new/openhis-domain/pom.xml
+++ b/openhis-server-new/openhis-domain/pom.xml
@@ -23,6 +23,14 @@
17
17
+ UTF-8
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/OrganizationMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/OrganizationMapper.java
index 820ea0b1..db8266ad 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/OrganizationMapper.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/OrganizationMapper.java
@@ -3,6 +3,7 @@ package com.openhis.administration.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.dto.OrgDataDto;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -24,4 +25,5 @@ public interface OrganizationMapper extends BaseMapper {
**/
List searchOrgDataByHealth();
+
}
\ No newline at end of file
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterDiagnosisService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterDiagnosisService.java
index 52aa0b84..9847de00 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterDiagnosisService.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterDiagnosisService.java
@@ -45,13 +45,13 @@ public interface IEncounterDiagnosisService extends IService
List getDiagnosisList(Long encounterId);
/**
- * 查询 EncounterDiagnosis
- *
+ * 查询特定类型的诊断
+ *
* @param encounterId 就诊id
* @param ybIptDiseTypeCode 诊断类型
* @return 诊断集合
*/
- List getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode);
+ List getDiagnosisListByType(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode);
/**
* 查询 EncounterDiagnosis
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationService.java
index 136e054f..c6ab79b2 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationService.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IOrganizationService.java
@@ -55,4 +55,5 @@ public interface IOrganizationService extends IService {
* @return List
**/
List searchOrgDataByHealth();
+
}
\ No newline at end of file
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterDiagnosisServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterDiagnosisServiceImpl.java
index 8b9875b8..bf3ff206 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterDiagnosisServiceImpl.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterDiagnosisServiceImpl.java
@@ -95,14 +95,14 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode) {
+ public List getDiagnosisListByType(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode) {
LambdaQueryWrapper queryWrapper =
new LambdaQueryWrapper().eq(EncounterDiagnosis::getEncounterId, encounterId);
if (ybIptDiseTypeCode != null) {
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java
index 417d714e..77666648 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java
@@ -101,4 +101,5 @@ public class OrganizationServiceImpl extends ServiceImpl searchOrgDataByHealth() {
return this.organizationMapper.searchOrgDataByHealth();
}
+
}
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java
index 4f57106a..6e58fd81 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java
@@ -2032,7 +2032,7 @@ public class YbDao {
}
}
Yb2301InputFeeDetail yb2301InputFeeDetail;
- List yb2301InputFeeDetailList = new ArrayList();
+ List yb2301InputFeeDetailList = new ArrayList<>();
// int i = 1;
for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) {
yb2301InputFeeDetail = new Yb2301InputFeeDetail();
@@ -2378,7 +2378,7 @@ public class YbDao {
// throw new ServiceException("未查询到患者的医保信息");
// }
List diagnosisList
- = iEncounterDiagnosisService.getDiagnosisList(encounterId, YbIptDiseTypeCode.DISCHARGE_DIAGNOSIS);
+ = iEncounterDiagnosisService.getDiagnosisListByType(encounterId, YbIptDiseTypeCode.DISCHARGE_DIAGNOSIS);
if (diagnosisList.isEmpty()) {
throw new ServiceException("未查询到出院诊断信息");
}
@@ -2558,7 +2558,7 @@ public class YbDao {
// throw new ServiceException("未查询到患者的医保信息");
// }
List diagnosisList
- = iEncounterDiagnosisService.getDiagnosisList(encounterId, YbIptDiseTypeCode.DISCHARGE_DIAGNOSIS);
+ = iEncounterDiagnosisService.getDiagnosisListByType(encounterId, YbIptDiseTypeCode.DISCHARGE_DIAGNOSIS);
if (diagnosisList.isEmpty()) {
throw new ServiceException("未查询到出院诊断信息");
}
diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java
index c482dba6..b149fd85 100644
--- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java
+++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java
@@ -920,7 +920,7 @@ public class YbManager {
}
Yb2301InputFeeDetail yb2301InputFeeDetail;
- List yb2301InputFeeDetailList = new ArrayList();
+ List yb2301InputFeeDetailList = new ArrayList<>();
BigDecimal quantity = BigDecimal.ZERO;
// 分组分类
Map> groupByTable
diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/OrganizationMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/OrganizationMapper.xml
index a40d0260..dcd00ea0 100644
--- a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/OrganizationMapper.xml
+++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/OrganizationMapper.xml
@@ -14,4 +14,5 @@
GROUP BY heal.offered_org_id)
+
\ No newline at end of file