feat(organization): 支持科室分类多选功能

- 修改前端界面组件支持科室分类多选下拉框
- 更新后端接口参数类型从Integer改为String以支持多选值
- 实现FIND_IN_SET查询方式处理多选分类条件
- 添加parseClassEnumValues函数处理字符串或数组格式转换
- 在医院住院对话框中扩展筛选条件支持多选分类
- 优化错误信息显示逻辑提供更详细的错误提示
- 在患者列表组件中添加入院日期和主治医生信息展示
- 修复多个服务调用中科室分类参数传递的数据类型问题
This commit is contained in:
2026-01-18 13:39:57 +08:00
parent 2fe6d45ad4
commit 59157fda56
19 changed files with 216 additions and 47 deletions

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
@@ -40,7 +41,8 @@ public class Organization extends HisBaseEntity {
private Integer typeEnum;
/** 机构分类枚举 */
private Integer classEnum;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private String classEnum;
/** 拼音码 */
private String pyStr;

View File

@@ -37,7 +37,7 @@ public interface IOrganizationService extends IService<Organization> {
* @param organizationClass 机构分类
* @return 机构下拉列表
*/
List<Organization> getList(Integer organizationType, Integer organizationClass);
List<Organization> getList(Integer organizationType, String organizationClass);
/**
* 根据id查询科室集合

View File

@@ -61,12 +61,19 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
* @return 机构下拉列表
*/
@Override
public List<Organization> getList(Integer organizationType, Integer organizationClass) {
return baseMapper.selectList(new LambdaQueryWrapper<Organization>()
public List<Organization> getList(Integer organizationType, String organizationClass) {
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<Organization>()
.select(Organization::getId, Organization::getName, Organization::getDisplayOrder)
.eq(Organization::getTypeEnum, organizationType)
.eq(organizationClass != null, Organization::getClassEnum, organizationClass)
.orderByAsc(Organization::getDisplayOrder)); // 按 displayOrder 升序排序
.orderByAsc(Organization::getDisplayOrder); // 按 displayOrder 升序排序
// 如果organizationClass不为null则添加查询条件
if (organizationClass != null) {
// 支持多选值使用FIND_IN_SET进行查询
queryWrapper.apply("FIND_IN_SET({0}, class_enum)", organizationClass.toString());
}
return baseMapper.selectList(queryWrapper);
}
/**