feat(login): 添加租户名称获取功能并优化前端布局
- 在登录控制器中注入租户服务并获取租户名称信息 - 添加租户名称到登录响应结果中 - 更新样式变量定义侧边栏宽度和Logo高度 - 重构公告面板组件统一公告通知显示逻辑 - 简化公告类型图标和样式映射关系 - 更新侧边栏为垂直菜单布局并添加折叠功能 - 优化Logo组件显示租户名称和系统标题 - 调整导航栏布局结构和响应式样式 - 重构主应用容器样式和标签页显示逻辑
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
package com.openhis.clinical.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.core.common.core.domain.HisBaseEntity;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 手术管理Entity实体
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-12-30
|
||||
*/
|
||||
@Data
|
||||
@TableName("cli_surgery")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Surgery extends HisBaseEntity {
|
||||
|
||||
/** ID */
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 手术编号 */
|
||||
private String surgeryNo;
|
||||
|
||||
/** 患者ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/** 就诊ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long encounterId;
|
||||
|
||||
/** 手术名称 */
|
||||
private String surgeryName;
|
||||
|
||||
/** 手术编码 */
|
||||
private String surgeryCode;
|
||||
|
||||
/** 手术类型编码 */
|
||||
private Integer surgeryTypeEnum;
|
||||
|
||||
/** 手术等级 */
|
||||
private Integer surgeryLevel;
|
||||
|
||||
/** 手术状态 */
|
||||
private Integer statusEnum;
|
||||
|
||||
/** 计划手术时间 */
|
||||
private Date plannedTime;
|
||||
|
||||
/** 实际开始时间 */
|
||||
private Date actualStartTime;
|
||||
|
||||
/** 实际结束时间 */
|
||||
private Date actualEndTime;
|
||||
|
||||
/** 主刀医生ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long mainSurgeonId;
|
||||
|
||||
/** 主刀医生姓名 */
|
||||
private String mainSurgeonName;
|
||||
|
||||
/** 助手1 ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long assistant1Id;
|
||||
|
||||
/** 助手1 姓名 */
|
||||
private String assistant1Name;
|
||||
|
||||
/** 助手2 ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long assistant2Id;
|
||||
|
||||
/** 助手2 姓名 */
|
||||
private String assistant2Name;
|
||||
|
||||
/** 麻醉医生ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long anesthetistId;
|
||||
|
||||
/** 麻醉医生姓名 */
|
||||
private String anesthetistName;
|
||||
|
||||
/** 巡回护士ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long scrubNurseId;
|
||||
|
||||
/** 巡回护士姓名 */
|
||||
private String scrubNurseName;
|
||||
|
||||
/** 麻醉方式编码 */
|
||||
private Integer anesthesiaTypeEnum;
|
||||
|
||||
/** 手术部位 */
|
||||
private String bodySite;
|
||||
|
||||
/** 手术切口等级 */
|
||||
private Integer incisionLevel;
|
||||
|
||||
/** 手术切口愈合等级 */
|
||||
private Integer healingLevel;
|
||||
|
||||
/** 手术室 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long operatingRoomId;
|
||||
|
||||
/** 手术室名称 */
|
||||
private String operatingRoomName;
|
||||
|
||||
/** 执行科室ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
|
||||
/** 执行科室名称 */
|
||||
private String orgName;
|
||||
|
||||
/** 术前诊断 */
|
||||
private String preoperativeDiagnosis;
|
||||
|
||||
/** 术后诊断 */
|
||||
private String postoperativeDiagnosis;
|
||||
|
||||
/** 手术经过描述 */
|
||||
private String surgeryDescription;
|
||||
|
||||
/** 术后医嘱 */
|
||||
private String postoperativeAdvice;
|
||||
|
||||
/** 并发症描述 */
|
||||
private String complications;
|
||||
|
||||
/** 手术费用 */
|
||||
private BigDecimal surgeryFee;
|
||||
|
||||
/** 麻醉费用 */
|
||||
private BigDecimal anesthesiaFee;
|
||||
|
||||
/** 总费用 */
|
||||
private BigDecimal totalFee;
|
||||
|
||||
/** 备注信息 */
|
||||
private String remark;
|
||||
|
||||
/** 租户ID(表不存在此字段,仅用于继承基类) */
|
||||
@TableField(exist = false)
|
||||
private Integer tenantId;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.openhis.clinical.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.openhis.clinical.domain.Surgery;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 手术管理Mapper接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-12-30
|
||||
*/
|
||||
@Mapper
|
||||
public interface SurgeryMapper extends BaseMapper<Surgery> {
|
||||
|
||||
/**
|
||||
* 根据患者ID查询手术列表
|
||||
*
|
||||
* @param patientId 患者ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
List<Surgery> selectByPatientId(@Param("patientId") Long patientId);
|
||||
|
||||
/**
|
||||
* 根据就诊ID查询手术列表
|
||||
*
|
||||
* @param encounterId 就诊ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
List<Surgery> selectByEncounterId(@Param("encounterId") Long encounterId);
|
||||
|
||||
/**
|
||||
* 根据手术编号查询
|
||||
*
|
||||
* @param surgeryNo 手术编号
|
||||
* @return 手术信息
|
||||
*/
|
||||
Surgery selectBySurgeryNo(@Param("surgeryNo") String surgeryNo);
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.openhis.clinical.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.openhis.clinical.domain.Surgery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 手术管理Service接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-12-30
|
||||
*/
|
||||
public interface ISurgeryService extends IService<Surgery> {
|
||||
|
||||
/**
|
||||
* 新增手术信息
|
||||
*
|
||||
* @param surgery 手术信息
|
||||
* @return 手术ID
|
||||
*/
|
||||
Long insertSurgery(Surgery surgery);
|
||||
|
||||
/**
|
||||
* 修改手术信息
|
||||
*
|
||||
* @param surgery 手术信息
|
||||
* @return 结果
|
||||
*/
|
||||
boolean updateSurgery(Surgery surgery);
|
||||
|
||||
/**
|
||||
* 删除手术信息
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @return 结果
|
||||
*/
|
||||
boolean deleteSurgery(Long id);
|
||||
|
||||
/**
|
||||
* 根据ID查询手术信息
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @return 手术信息
|
||||
*/
|
||||
Surgery getSurgeryById(Long id);
|
||||
|
||||
/**
|
||||
* 根据患者ID查询手术列表
|
||||
*
|
||||
* @param patientId 患者ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
List<Surgery> getSurgeryListByPatientId(Long patientId);
|
||||
|
||||
/**
|
||||
* 根据就诊ID查询手术列表
|
||||
*
|
||||
* @param encounterId 就诊ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
List<Surgery> getSurgeryListByEncounterId(Long encounterId);
|
||||
|
||||
/**
|
||||
* 更新手术状态
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @param statusEnum 状态
|
||||
* @return 结果
|
||||
*/
|
||||
boolean updateSurgeryStatus(Long id, Integer statusEnum);
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
package com.openhis.clinical.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.openhis.clinical.domain.Surgery;
|
||||
import com.openhis.clinical.mapper.SurgeryMapper;
|
||||
import com.openhis.clinical.service.ISurgeryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 手术管理Service业务层处理
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-12-30
|
||||
*/
|
||||
@Service
|
||||
public class SurgeryServiceImpl extends ServiceImpl<SurgeryMapper, Surgery> implements ISurgeryService {
|
||||
|
||||
@Resource
|
||||
private SurgeryMapper surgeryMapper;
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
/**
|
||||
* 新增手术信息
|
||||
*
|
||||
* @param surgery 手术信息
|
||||
* @return 手术ID
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long insertSurgery(Surgery surgery) {
|
||||
// 生成手术编号
|
||||
String surgeryNo = assignSeqUtil.getSeq("SS", 10);
|
||||
surgery.setSurgeryNo(surgeryNo);
|
||||
surgery.setCreateTime(new Date());
|
||||
surgery.setUpdateTime(new Date());
|
||||
surgery.setDeleteFlag("0");
|
||||
|
||||
// 默认状态为待排期
|
||||
if (surgery.getStatusEnum() == null) {
|
||||
surgery.setStatusEnum(0);
|
||||
}
|
||||
|
||||
surgeryMapper.insert(surgery);
|
||||
return surgery.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改手术信息
|
||||
*
|
||||
* @param surgery 手术信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean updateSurgery(Surgery surgery) {
|
||||
surgery.setUpdateTime(new Date());
|
||||
return surgeryMapper.updateById(surgery) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除手术信息
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteSurgery(Long id) {
|
||||
return surgeryMapper.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询手术信息
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @return 手术信息
|
||||
*/
|
||||
@Override
|
||||
public Surgery getSurgeryById(Long id) {
|
||||
return surgeryMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据患者ID查询手术列表
|
||||
*
|
||||
* @param patientId 患者ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
@Override
|
||||
public List<Surgery> getSurgeryListByPatientId(Long patientId) {
|
||||
LambdaQueryWrapper<Surgery> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(Surgery::getPatientId, patientId)
|
||||
.eq(Surgery::getDeleteFlag, "0")
|
||||
.orderByDesc(Surgery::getCreateTime);
|
||||
return surgeryMapper.selectList(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据就诊ID查询手术列表
|
||||
*
|
||||
* @param encounterId 就诊ID
|
||||
* @return 手术列表
|
||||
*/
|
||||
@Override
|
||||
public List<Surgery> getSurgeryListByEncounterId(Long encounterId) {
|
||||
return surgeryMapper.selectByEncounterId(encounterId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新手术状态
|
||||
*
|
||||
* @param id 手术ID
|
||||
* @param statusEnum 状态
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean updateSurgeryStatus(Long id, Integer statusEnum) {
|
||||
Surgery surgery = new Surgery();
|
||||
surgery.setId(id);
|
||||
surgery.setStatusEnum(statusEnum);
|
||||
surgery.setUpdateTime(new Date());
|
||||
|
||||
// 如果状态为手术中,更新开始时间
|
||||
if (statusEnum == 2) {
|
||||
surgery.setActualStartTime(new Date());
|
||||
}
|
||||
|
||||
// 如果状态为已完成,更新结束时间
|
||||
if (statusEnum == 3) {
|
||||
surgery.setActualEndTime(new Date());
|
||||
}
|
||||
|
||||
return surgeryMapper.updateById(surgery) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user