refactor(consultation): 重构会诊模块包结构和日期时间处理

- 将ConsultationRequest相关类从web包移动到consultation包
- 替换java.util.Date为java.time.LocalDateTime进行日期时间处理
- 统一日期时间格式化方式,使用DateTimeFormatter替代SimpleDateFormat
- 优化年龄计算逻辑,使用Java 8时间API替代Calendar
- 在ConsultationRequest实体上添加MyBatis别名注解
- 更新MyBatis映射文件中的命名空间和类型引用
- 调整数据库字段映射,移除无效字段并添加新字段
This commit is contained in:
2026-02-06 13:26:28 +08:00
parent b936654a11
commit fc32b83980
4 changed files with 40 additions and 53 deletions

View File

@@ -28,9 +28,9 @@ import com.openhis.web.consultation.dto.ConsultationRequestDto;
import com.openhis.web.consultation.dto.DepartmentTreeDto;
import com.openhis.web.consultation.dto.InvitedObjectDto;
import com.openhis.web.consultation.dto.PhysicianNodeDto;
import com.openhis.web.consultation.mapper.ConsultationRequestMapper;
import com.openhis.web.consultation.mapper.ConsultationInvitedMapper;
import com.openhis.web.consultation.domain.ConsultationRequest;
import com.openhis.consultation.mapper.ConsultationRequestMapper;
import com.openhis.consultation.domain.ConsultationRequest;
import com.openhis.web.consultation.domain.ConsultationInvited;
import com.openhis.web.consultation.enums.ConsultationStatusEnum;
import com.openhis.web.consultation.enums.InvitedStatusEnum;
@@ -153,7 +153,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
entity = new ConsultationRequest();
entity.setConsultationId(generateConsultationId());
entity.setTenantId(SecurityUtils.getLoginUser().getTenantId().longValue());
entity.setConsultationRequestDate(new Date());
entity.setConsultationRequestDate(LocalDateTime.now());
}
// 复制基本属性(现在字段名已统一,可以直接复制)
@@ -187,7 +187,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
entity.setConsultationStatus(ConsultationStatusEnum.SUBMITTED.getCode());
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
entity.setConfirmingDate(new Date());
entity.setConfirmingDate(LocalDateTime.now());
} else {
entity.setConsultationStatus(ConsultationStatusEnum.NEW.getCode());
}
@@ -262,7 +262,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 设置提交会诊的医生信息
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
entity.setConfirmingDate(new Date());
entity.setConfirmingDate(LocalDateTime.now());
consultationRequestMapper.updateById(entity);
@@ -307,7 +307,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 作废:将状态改为"已取消"
entity.setConsultationStatus(ConsultationStatusEnum.CANCELLED.getCode());
entity.setCancelReason(cancelReason);
entity.setCancelNatureDate(new Date());
entity.setCancelNatureDate(LocalDateTime.now());
consultationRequestMapper.updateById(entity);
// 更新门诊医嘱表状态为已作废
@@ -622,8 +622,8 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
sleepUntilNextSecond(nowMillis);
continue;
}
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = sdf.format(new Date());
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
String dateTime = java.time.LocalDateTime.now().format(formatter);
String sequenceStr = String.format("%04d", sequence);
return "CS" + dateTime + sequenceStr;
@@ -691,18 +691,17 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
/**
* 计算年龄
*/
private Integer calculateAge(Date birthDate) {
private Integer calculateAge(java.util.Date birthDate) {
if (birthDate == null) {
return null;
}
java.util.Calendar now = java.util.Calendar.getInstance();
java.util.Calendar birth = java.util.Calendar.getInstance();
birth.setTime(birthDate);
int age = now.get(java.util.Calendar.YEAR) - birth.get(java.util.Calendar.YEAR);
if (now.get(java.util.Calendar.DAY_OF_YEAR) < birth.get(java.util.Calendar.DAY_OF_YEAR)) {
age--;
}
java.time.LocalDate birthLocalDate = birthDate.toInstant()
.atZone(java.time.ZoneId.systemDefault())
.toLocalDate();
java.time.LocalDate now = java.time.LocalDate.now();
int age = java.time.Period.between(birthLocalDate, now).getYears();
return age;
}
@@ -766,12 +765,12 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
serviceRequest.setContentJson(JSON.toJSONString(contentMap));
// 时间信息
serviceRequest.setAuthoredTime(new Date());
serviceRequest.setAuthoredTime(new java.util.Date());
// 审计字段
serviceRequest.setTenantId(SecurityUtils.getLoginUser().getTenantId().intValue());
serviceRequest.setCreateBy(SecurityUtils.getUsername());
serviceRequest.setCreateTime(new Date());
serviceRequest.setCreateTime(new java.util.Date());
// 保存到数据库
iServiceRequestService.save(serviceRequest);
@@ -829,12 +828,12 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 开立信息
chargeItem.setEntererId(consultationRequest.getRequestingPhysicianId());
chargeItem.setRequestingOrgId(consultationRequest.getDepartmentId());
chargeItem.setEnteredDate(new Date());
chargeItem.setEnteredDate(new java.util.Date());
// 审计字段
chargeItem.setTenantId(SecurityUtils.getLoginUser().getTenantId());
chargeItem.setCreateBy(SecurityUtils.getUsername());
chargeItem.setCreateTime(new Date());
chargeItem.setCreateTime(new java.util.Date());
iChargeItemService.save(chargeItem);
@@ -872,19 +871,19 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 更新医嘱内容
serviceRequest.setContentJson(JSON.toJSONString(consultationRequest));
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
serviceRequest.setUpdateTime(new Date());
serviceRequest.setUpdateTime(new java.util.Date());
iServiceRequestService.updateById(serviceRequest);
} catch (Exception e) {
log.error("更新会诊医嘱失败", e);
throw new RuntimeException("更新会诊医嘱失败: " + e.getMessage());
}
}
/**
* 更新门诊医嘱状态
*
*
* @param orderId 医嘱ID
* @param status 新状态
*/
@@ -894,19 +893,19 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
log.warn("医嘱ID为空跳过状态更新");
return;
}
ServiceRequest serviceRequest = iServiceRequestService.getById(orderId);
if (serviceRequest == null) {
log.warn("未找到医嘱记录OrderId: {}", orderId);
return;
}
serviceRequest.setStatusEnum(status);
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
serviceRequest.setUpdateTime(new Date());
serviceRequest.setUpdateTime(new java.util.Date());
iServiceRequestService.updateById(serviceRequest);
} catch (Exception e) {
log.error("更新医嘱状态失败", e);
throw new RuntimeException("更新医嘱状态失败: " + e.getMessage());

View File

@@ -3,18 +3,20 @@ package com.openhis.web.consultation.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.util.Date;
/**
* 会诊申请单实体类
*
*
* @author system
* @date 2026-01-29
*/
@Data
@TableName("consultation_request")
@Alias("webConsultationRequest")
public class ConsultationRequest implements Serializable {
private static final long serialVersionUID = 1L;

View File

@@ -1,17 +0,0 @@
package com.openhis.web.consultation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.web.consultation.domain.ConsultationRequest;
import org.apache.ibatis.annotations.Mapper;
/**
* 会诊申请Mapper接口
*
* @author system
* @date 2026-01-29
*/
@Mapper
public interface ConsultationRequestMapper extends BaseMapper<ConsultationRequest> {
}

View File

@@ -2,10 +2,10 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.consultation.mapper.ConsultationRequestMapper">
<mapper namespace="com.openhis.consultation.mapper.ConsultationRequestMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.openhis.web.consultation.domain.ConsultationRequest">
<resultMap id="BaseResultMap" type="com.openhis.consultation.domain.ConsultationRequest">
<id column="id" property="id" />
<result column="consultation_id" property="consultationId" />
<result column="patient_id" property="patientId" />
@@ -22,8 +22,6 @@
<result column="requesting_physician_id" property="requestingPhysicianId" />
<result column="consultation_request_date" property="consultationRequestDate" />
<result column="invited_object" property="invitedObject" />
<result column="invited_department_id" property="invitedDepartmentId" />
<result column="invited_physician_id" property="invitedPhysicianId" />
<result column="consultation_date" property="consultationDate" />
<result column="consultation_purpose" property="consultationPurpose" />
<result column="provisional_diagnosis" property="provisionalDiagnosis" />
@@ -45,6 +43,11 @@
<result column="tenant_id" property="tenantId" />
<result column="is_deleted" property="isDeleted" />
<result column="remark" property="remark" />
<result column="consultation_activity_id" property="consultationActivityId" />
<result column="consultation_activity_name" property="consultationActivityName" />
<result column="confirming_physician_name" property="confirmingPhysicianName" />
<result column="confirming_department_name" property="confirmingDepartmentName" />
<result column="confirming_physician_participation" property="confirmingPhysicianParticipation" />
</resultMap>
</mapper>