feat(organization): 支持科室分类多选功能
- 修改前端界面组件支持科室分类多选下拉框 - 更新后端接口参数类型从Integer改为String以支持多选值 - 实现FIND_IN_SET查询方式处理多选分类条件 - 添加parseClassEnumValues函数处理字符串或数组格式转换 - 在医院住院对话框中扩展筛选条件支持多选分类 - 优化错误信息显示逻辑提供更详细的错误提示 - 在患者列表组件中添加入院日期和主治医生信息展示 - 修复多个服务调用中科室分类参数传递的数据类型问题
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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查询科室集合
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user