feat: 合并 upstream/v1.3 新增功能模块(安全合并策略)

新增功能模块:
- 药房管理:住院退药、处方审核功能
- 报表管理:门诊管理报表、药房结算报表、医嘱统计报表
- 支付管理:三方对账功能
- 新增枚举类:电子处方类型、频次类型、病历状态等10个
- 新增实体类:处方审核记录、第三方支付请求、中医结算目录
- 工具类增强:年龄计算、Excel工具

合并策略:仅合并低风险新增文件,保留现有业务功能
上游版本:v1.3 (2025-03-06发版)
合并分支:merge-upstream-v1.3-0310

🤖 Auto-generated by Claude Code
This commit is contained in:
2026-03-10 18:16:23 +08:00
parent 39b608dfd0
commit fe07cee58c
116 changed files with 5406 additions and 330 deletions

View File

@@ -0,0 +1,64 @@
package com.openhis.administration.domain;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 处方点评记录实体类
*
* @author swb
* @date 2026/1/29
*/
@Data
@TableName("prescription_review_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PrescriptionReviewRecord extends HisBaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 处方号
*/
private String prescriptionNo;
/**
* 就诊ID
*/
private Long encounterId;
/**
* 药品请求ids
*/
private String medRequestIds;
/**
* 是否合理标识(0:不合理1合理2待点评)
*/
private Integer reasonableFlag;
/**
* 存在问题
*/
private String reasonEnum;
/**
* 其他问题
*/
private String reasonText;
/**
* 点评药师ID
*/
private Long practitionerId;
}

View File

@@ -0,0 +1,112 @@
package com.openhis.administration.dto;
import java.util.Date;
import com.core.common.annotation.Excel;
import liquibase.pro.packaged.E;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 门诊就诊记录Dto
*
* @author swb
* @date 2026/2/27
*/
@Data
@Accessors(chain = true)
public class OutpatientManageDto {
/**
* 患者姓名
*/
@Excel(name = "患者姓名",sort = 1, width = 20)
private String name;
/**
* 患者身份证号
*/
@Excel(name = "患者身份证号",sort = 2, width = 20)
private String idCard;
/**
* 疾病(主诊断)
*/
@Excel(name = "疾病(主诊断)",sort = 3, width = 20)
private String description;
/**
* 患者ID
*/
@Excel(name = "患者ID",sort = 4, width = 20)
private String patientBusNo;
/**
* 门诊号
*/
@Excel(name = "门诊号",sort = 5, width = 20)
private String encounterBusNo;
/**
* 性别枚举
*/
private Integer genderEnum;
@Excel(name = "性别",sort = 6, width = 20)
private String genderEnum_enumText;
/**
* 出生日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthDate;
/**
* 年龄
*/
private String age;
/**
* 患者手机号
*/
@Excel(name = "患者手机号",sort = 7, width = 20)
private String phone;
/**
* 就诊时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "就诊时间",sort = 8, width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date encounterTime;
/**
* 就诊状态
*/
private Integer subjectStatusEnum;
@Excel(name = "就诊状态",sort = 9, width = 20)
private String subjectStatusEnum_enumText;
/**
* 医院名称
*/
@Excel(name = "医院名称",sort = 10, width = 20)
private String organizationName;
/**
* 接诊医生姓名
*/
@Excel(name = "接诊医生姓名",sort = 11, width = 20)
private String doctorName;
/**
* 医生ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private String doctorId;
}

View File

@@ -0,0 +1,72 @@
package com.openhis.financial.domain;
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;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 第三方支付请求实体
*/
@Data
@TableName("fin_three_part_pay_request")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ThreePartPayRequest extends HisBaseEntity {
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private BigDecimal id;
/**
* payment表主键Id
*/
private Long paymentId;
/**
* 请求金额
*/
private BigDecimal amount;
/**
* 扫码信息
*/
private String scanKey;
/**
* 请求时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date requestDate;
/**
* 请求费用类型1.挂号2.门诊3住院4.预交金5其他暂时用不上这个字段
*/
private String payType;
/**
* 请求类型暂时用PaymentType枚举
*/
private String requestType;
/**
* 请求人ID
*/
private Long requestPersonId;
/**
* pos机号码
*/
private String posNo;
}

View File

@@ -0,0 +1,76 @@
package com.openhis.ybcatalog.domain;
import java.io.Serializable;
import java.util.Date;
import com.alibaba.fastjson2.annotation.JSONField;
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 lombok.Data;
import lombok.experimental.Accessors;
/**
* 医保住院结算上传记录
*
* @author swb
* @date 2026/2/2
*/
@Data
@TableName("yb_catalog_zy_settle_up")
@Accessors(chain = true)
public class CatalogZySettleUp extends HisBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ASSIGN_ID)
@JSONField(serialize = false)
private Long id;
/**
* 院内就诊ID
*/
private Long encounterId;
/**
* 人员编号
*/
private String psnNo;
/**
* 就诊ID
*/
private String mdtrtId;
/**
* 结算ID
*/
private String setlId;
/**
* 结算开始日期
*/
private Date setlBegnDate;
/**
* 结算结束日期
*/
private Date setlEndDate;
/**
* 4101A入参
*/
private String param4101A;
/**
* 4101A出参
*/
private String result4101A;
/**
* 结算上传状态
*/
private String settleUpStatus;
}