This commit is contained in:
huzhengkao 2025-06-06 22:42:35 +08:00
parent 2e261dc774
commit 8e77492b4b
6 changed files with 68 additions and 18 deletions

View File

@ -1,18 +1,26 @@
package com.alihealth.d2d.provtest.domain; package com.alihealth.d2d.provtest.domain;
import com.alihealth.d2d.provtest.domain.eto.BASQXQ;
import com.alihealth.d2d.provtest.utils.LocalDateDeserializer; import com.alihealth.d2d.provtest.utils.LocalDateDeserializer;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Getter; import lombok.Data;
import lombok.Setter;
import javax.persistence.Transient;
/** /**
* <p> * <p>
@ -22,8 +30,7 @@ import lombok.Setter;
* @author Jason * @author Jason
* @since 2025-06-06 * @since 2025-06-06
*/ */
@Getter @Data
@Setter
@TableName("domestic_drug_base_info") @TableName("domestic_drug_base_info")
public class DomesticDrugBaseInfo implements Serializable { public class DomesticDrugBaseInfo implements Serializable {
@ -176,9 +183,15 @@ public class DomesticDrugBaseInfo implements Serializable {
/** /**
* 子集bzbl-包装比例 bzjb-包装级别 ypbsm-药品标识码 * 子集bzbl-包装比例 bzjb-包装级别 ypbsm-药品标识码
*/ */
@JacksonXmlProperty(localName = "BASQXQS") //@JacksonXmlProperty(localName = "BASQXQS")
private String basqxqs; private String basqxqs;
// XML映射字段不直接存入数据库
@TableField(exist = false)
@JacksonXmlElementWrapper(localName = "BASQXQS")
@JacksonXmlProperty(localName = "BASQXQ")
private List<BASQXQ> basqxqList;
/** /**
* 创建时间 * 创建时间
*/ */
@ -194,5 +207,16 @@ public class DomesticDrugBaseInfo implements Serializable {
*/ */
private Integer isDeleted; private Integer isDeleted;
// 在setter方法中完成转换
public void setBasqxqList(List<BASQXQ> basqxqList) {
this.basqxqList = basqxqList;
try {
this.basqxqs = new ObjectMapper().writeValueAsString(basqxqList);
} catch (JsonProcessingException e) {
throw new RuntimeException("转换BASQXQS为JSON失败", e);
}
}
} }

View File

@ -1,6 +1,8 @@
package com.alihealth.d2d.provtest.domain; package com.alihealth.d2d.provtest.domain;
import com.alihealth.d2d.provtest.entity.BaseEntity; import com.alihealth.d2d.provtest.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@ -8,6 +10,8 @@ import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import javax.xml.bind.annotation.*; import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* @author Jason * @author Jason
@ -16,7 +20,20 @@ import javax.xml.bind.annotation.*;
@Data @Data
@TableName("domestic_pharma_base_info") @TableName("domestic_pharma_base_info")
@JacksonXmlRootElement(localName = "data") @JacksonXmlRootElement(localName = "data")
public class DomesticPharmaBaseInfo extends BaseEntity<DomesticPharmaBaseInfo>{ public class DomesticPharmaBaseInfo implements Serializable {
@TableId(value = "id", type = IdType.AUTO) // 明确指定使用数据库自增
private Long id;
@Column(name = "event_id")
private String eventId;//事件流水号
@Column(name = "create_time", updatable = false)
// 仅数据库字段
private LocalDateTime createTime = LocalDateTime.now();
@Column(name = "update_time")
private LocalDateTime updateTime;
@Column(name = "tyshxydm", unique = true) @Column(name = "tyshxydm", unique = true)
@JacksonXmlProperty(localName = "TYSHXYDM") @JacksonXmlProperty(localName = "TYSHXYDM")
private String tyshxydm; private String tyshxydm;
@ -119,16 +136,4 @@ public class DomesticPharmaBaseInfo extends BaseEntity<DomesticPharmaBaseInfo>{
private String zsgps; // GPS坐标(经度,纬度) private String zsgps; // GPS坐标(经度,纬度)
@Override
public Class<DomesticPharmaBaseInfo> getEntityClass() {
return DomesticPharmaBaseInfo.class;
}
@Override
public String getDatasetName() {
return "境内药品生产企业基本信息数据子集";
}
} }

View File

@ -0,0 +1,21 @@
package com.alihealth.d2d.provtest.domain.eto;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Data;
/**
* @author Jason 1018扩展类
* @date 2025年06月06日 22:06:17
*/
@Data
public class BASQXQ {
@JacksonXmlProperty(localName = "BZBL")
private String bzbl;
@JacksonXmlProperty(localName = "BZJB")
private String bzjb;
@JacksonXmlProperty(localName = "YPBSM")
private String ypbsm;
}