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:
@@ -28,9 +28,9 @@ import com.openhis.web.consultation.dto.ConsultationRequestDto;
|
|||||||
import com.openhis.web.consultation.dto.DepartmentTreeDto;
|
import com.openhis.web.consultation.dto.DepartmentTreeDto;
|
||||||
import com.openhis.web.consultation.dto.InvitedObjectDto;
|
import com.openhis.web.consultation.dto.InvitedObjectDto;
|
||||||
import com.openhis.web.consultation.dto.PhysicianNodeDto;
|
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.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.domain.ConsultationInvited;
|
||||||
import com.openhis.web.consultation.enums.ConsultationStatusEnum;
|
import com.openhis.web.consultation.enums.ConsultationStatusEnum;
|
||||||
import com.openhis.web.consultation.enums.InvitedStatusEnum;
|
import com.openhis.web.consultation.enums.InvitedStatusEnum;
|
||||||
@@ -153,7 +153,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
entity = new ConsultationRequest();
|
entity = new ConsultationRequest();
|
||||||
entity.setConsultationId(generateConsultationId());
|
entity.setConsultationId(generateConsultationId());
|
||||||
entity.setTenantId(SecurityUtils.getLoginUser().getTenantId().longValue());
|
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.setConsultationStatus(ConsultationStatusEnum.SUBMITTED.getCode());
|
||||||
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
|
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||||
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
|
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
|
||||||
entity.setConfirmingDate(new Date());
|
entity.setConfirmingDate(LocalDateTime.now());
|
||||||
} else {
|
} else {
|
||||||
entity.setConsultationStatus(ConsultationStatusEnum.NEW.getCode());
|
entity.setConsultationStatus(ConsultationStatusEnum.NEW.getCode());
|
||||||
}
|
}
|
||||||
@@ -262,7 +262,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
// 设置提交会诊的医生信息
|
// 设置提交会诊的医生信息
|
||||||
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
|
entity.setConfirmingPhysician(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||||
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
|
entity.setConfirmingPhysicianId(SecurityUtils.getLoginUser().getPractitionerId());
|
||||||
entity.setConfirmingDate(new Date());
|
entity.setConfirmingDate(LocalDateTime.now());
|
||||||
|
|
||||||
consultationRequestMapper.updateById(entity);
|
consultationRequestMapper.updateById(entity);
|
||||||
|
|
||||||
@@ -307,7 +307,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
// 作废:将状态改为"已取消"
|
// 作废:将状态改为"已取消"
|
||||||
entity.setConsultationStatus(ConsultationStatusEnum.CANCELLED.getCode());
|
entity.setConsultationStatus(ConsultationStatusEnum.CANCELLED.getCode());
|
||||||
entity.setCancelReason(cancelReason);
|
entity.setCancelReason(cancelReason);
|
||||||
entity.setCancelNatureDate(new Date());
|
entity.setCancelNatureDate(LocalDateTime.now());
|
||||||
consultationRequestMapper.updateById(entity);
|
consultationRequestMapper.updateById(entity);
|
||||||
|
|
||||||
// 更新门诊医嘱表状态为已作废
|
// 更新门诊医嘱表状态为已作废
|
||||||
@@ -622,8 +622,8 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
sleepUntilNextSecond(nowMillis);
|
sleepUntilNextSecond(nowMillis);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
|
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||||
String dateTime = sdf.format(new Date());
|
String dateTime = java.time.LocalDateTime.now().format(formatter);
|
||||||
|
|
||||||
String sequenceStr = String.format("%04d", sequence);
|
String sequenceStr = String.format("%04d", sequence);
|
||||||
return "CS" + dateTime + sequenceStr;
|
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) {
|
if (birthDate == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
java.util.Calendar now = java.util.Calendar.getInstance();
|
|
||||||
java.util.Calendar birth = java.util.Calendar.getInstance();
|
java.time.LocalDate birthLocalDate = birthDate.toInstant()
|
||||||
birth.setTime(birthDate);
|
.atZone(java.time.ZoneId.systemDefault())
|
||||||
|
.toLocalDate();
|
||||||
int age = now.get(java.util.Calendar.YEAR) - birth.get(java.util.Calendar.YEAR);
|
java.time.LocalDate now = java.time.LocalDate.now();
|
||||||
if (now.get(java.util.Calendar.DAY_OF_YEAR) < birth.get(java.util.Calendar.DAY_OF_YEAR)) {
|
|
||||||
age--;
|
int age = java.time.Period.between(birthLocalDate, now).getYears();
|
||||||
}
|
|
||||||
return age;
|
return age;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -766,12 +765,12 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
serviceRequest.setContentJson(JSON.toJSONString(contentMap));
|
serviceRequest.setContentJson(JSON.toJSONString(contentMap));
|
||||||
|
|
||||||
// 时间信息
|
// 时间信息
|
||||||
serviceRequest.setAuthoredTime(new Date());
|
serviceRequest.setAuthoredTime(new java.util.Date());
|
||||||
|
|
||||||
// 审计字段
|
// 审计字段
|
||||||
serviceRequest.setTenantId(SecurityUtils.getLoginUser().getTenantId().intValue());
|
serviceRequest.setTenantId(SecurityUtils.getLoginUser().getTenantId().intValue());
|
||||||
serviceRequest.setCreateBy(SecurityUtils.getUsername());
|
serviceRequest.setCreateBy(SecurityUtils.getUsername());
|
||||||
serviceRequest.setCreateTime(new Date());
|
serviceRequest.setCreateTime(new java.util.Date());
|
||||||
|
|
||||||
// 保存到数据库
|
// 保存到数据库
|
||||||
iServiceRequestService.save(serviceRequest);
|
iServiceRequestService.save(serviceRequest);
|
||||||
@@ -829,12 +828,12 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
// 开立信息
|
// 开立信息
|
||||||
chargeItem.setEntererId(consultationRequest.getRequestingPhysicianId());
|
chargeItem.setEntererId(consultationRequest.getRequestingPhysicianId());
|
||||||
chargeItem.setRequestingOrgId(consultationRequest.getDepartmentId());
|
chargeItem.setRequestingOrgId(consultationRequest.getDepartmentId());
|
||||||
chargeItem.setEnteredDate(new Date());
|
chargeItem.setEnteredDate(new java.util.Date());
|
||||||
|
|
||||||
// 审计字段
|
// 审计字段
|
||||||
chargeItem.setTenantId(SecurityUtils.getLoginUser().getTenantId());
|
chargeItem.setTenantId(SecurityUtils.getLoginUser().getTenantId());
|
||||||
chargeItem.setCreateBy(SecurityUtils.getUsername());
|
chargeItem.setCreateBy(SecurityUtils.getUsername());
|
||||||
chargeItem.setCreateTime(new Date());
|
chargeItem.setCreateTime(new java.util.Date());
|
||||||
|
|
||||||
iChargeItemService.save(chargeItem);
|
iChargeItemService.save(chargeItem);
|
||||||
|
|
||||||
@@ -872,19 +871,19 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
// 更新医嘱内容
|
// 更新医嘱内容
|
||||||
serviceRequest.setContentJson(JSON.toJSONString(consultationRequest));
|
serviceRequest.setContentJson(JSON.toJSONString(consultationRequest));
|
||||||
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
|
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
|
||||||
serviceRequest.setUpdateTime(new Date());
|
serviceRequest.setUpdateTime(new java.util.Date());
|
||||||
|
|
||||||
iServiceRequestService.updateById(serviceRequest);
|
iServiceRequestService.updateById(serviceRequest);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("更新会诊医嘱失败", e);
|
log.error("更新会诊医嘱失败", e);
|
||||||
throw new RuntimeException("更新会诊医嘱失败: " + e.getMessage());
|
throw new RuntimeException("更新会诊医嘱失败: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新门诊医嘱状态
|
* 更新门诊医嘱状态
|
||||||
*
|
*
|
||||||
* @param orderId 医嘱ID
|
* @param orderId 医嘱ID
|
||||||
* @param status 新状态
|
* @param status 新状态
|
||||||
*/
|
*/
|
||||||
@@ -894,19 +893,19 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
|
|||||||
log.warn("医嘱ID为空,跳过状态更新");
|
log.warn("医嘱ID为空,跳过状态更新");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ServiceRequest serviceRequest = iServiceRequestService.getById(orderId);
|
ServiceRequest serviceRequest = iServiceRequestService.getById(orderId);
|
||||||
if (serviceRequest == null) {
|
if (serviceRequest == null) {
|
||||||
log.warn("未找到医嘱记录,OrderId: {}", orderId);
|
log.warn("未找到医嘱记录,OrderId: {}", orderId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
serviceRequest.setStatusEnum(status);
|
serviceRequest.setStatusEnum(status);
|
||||||
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
|
serviceRequest.setUpdateBy(SecurityUtils.getUsername());
|
||||||
serviceRequest.setUpdateTime(new Date());
|
serviceRequest.setUpdateTime(new java.util.Date());
|
||||||
|
|
||||||
iServiceRequestService.updateById(serviceRequest);
|
iServiceRequestService.updateById(serviceRequest);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("更新医嘱状态失败", e);
|
log.error("更新医嘱状态失败", e);
|
||||||
throw new RuntimeException("更新医嘱状态失败: " + e.getMessage());
|
throw new RuntimeException("更新医嘱状态失败: " + e.getMessage());
|
||||||
|
|||||||
@@ -3,18 +3,20 @@ package com.openhis.web.consultation.domain;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.apache.ibatis.type.Alias;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会诊申请单实体类
|
* 会诊申请单实体类
|
||||||
*
|
*
|
||||||
* @author system
|
* @author system
|
||||||
* @date 2026-01-29
|
* @date 2026-01-29
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("consultation_request")
|
@TableName("consultation_request")
|
||||||
|
@Alias("webConsultationRequest")
|
||||||
public class ConsultationRequest implements Serializable {
|
public class ConsultationRequest implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|||||||
@@ -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> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"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" />
|
<id column="id" property="id" />
|
||||||
<result column="consultation_id" property="consultationId" />
|
<result column="consultation_id" property="consultationId" />
|
||||||
<result column="patient_id" property="patientId" />
|
<result column="patient_id" property="patientId" />
|
||||||
@@ -22,8 +22,6 @@
|
|||||||
<result column="requesting_physician_id" property="requestingPhysicianId" />
|
<result column="requesting_physician_id" property="requestingPhysicianId" />
|
||||||
<result column="consultation_request_date" property="consultationRequestDate" />
|
<result column="consultation_request_date" property="consultationRequestDate" />
|
||||||
<result column="invited_object" property="invitedObject" />
|
<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_date" property="consultationDate" />
|
||||||
<result column="consultation_purpose" property="consultationPurpose" />
|
<result column="consultation_purpose" property="consultationPurpose" />
|
||||||
<result column="provisional_diagnosis" property="provisionalDiagnosis" />
|
<result column="provisional_diagnosis" property="provisionalDiagnosis" />
|
||||||
@@ -45,6 +43,11 @@
|
|||||||
<result column="tenant_id" property="tenantId" />
|
<result column="tenant_id" property="tenantId" />
|
||||||
<result column="is_deleted" property="isDeleted" />
|
<result column="is_deleted" property="isDeleted" />
|
||||||
<result column="remark" property="remark" />
|
<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>
|
</resultMap>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user