diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticDrugBaseInfo.java b/src/main/java/com/alihealth/d2d/provtest/domain/DomesticDrugBaseInfo.java index e93c8f0..17d37e4 100644 --- a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticDrugBaseInfo.java +++ b/src/main/java/com/alihealth/d2d/provtest/domain/DomesticDrugBaseInfo.java @@ -188,6 +188,12 @@ public class DomesticDrugBaseInfo implements Serializable { @JacksonXmlProperty(localName = "BASQXQ") private List basqxqList; + @JacksonXmlProperty(localName = "JNYPSCQYMC") + private String jnypscqymc; + + @JacksonXmlProperty(localName = "JNYPSSXKCYRMC") + private String jnypssxkcyrmc; + /** * 创建时间 */ diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/ImportedDrugBaseInfo.java b/src/main/java/com/alihealth/d2d/provtest/domain/ImportedDrugBaseInfo.java index ec25834..997b300 100644 --- a/src/main/java/com/alihealth/d2d/provtest/domain/ImportedDrugBaseInfo.java +++ b/src/main/java/com/alihealth/d2d/provtest/domain/ImportedDrugBaseInfo.java @@ -1,14 +1,19 @@ package com.alihealth.d2d.provtest.domain; +import com.alihealth.d2d.provtest.domain.eto.BASQXQ; 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.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import lombok.Builder; import lombok.Data; -import javax.persistence.Column; -import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 进口药品基本信息数据子集(ImportedDrugBaseInfo)表实体类 @@ -25,113 +30,179 @@ public class ImportedDrugBaseInfo { @TableId(value = "id", type = IdType.AUTO) private Long id; //事件流水号 - @Column(name = "event_id") private String eventId; + //国家药品标识码 - @Column(name = "gjypbsm") + @JacksonXmlProperty(localName = "GJYPBSM") private String gjypbsm; //药品英文名称 - @Column(name = "ypywmc") + + @JacksonXmlProperty(localName = "YPYWMC") private String ypywmc; //进口药品中文译名 - @Column(name = "jkypzwym") + + @JacksonXmlProperty(localName = "JKYPZWYM") private String jkypzwym; //药品商品名称 - @Column(name = "ypspmc") + + @JacksonXmlProperty(localName = "YPSPMC") private String ypspmc; //药品本位码 - @Column(name = "ypbwm") + + @JacksonXmlProperty(localName = "YPBWM") private String ypbwm; //剂型 - @Column(name = "jx") + + @JacksonXmlProperty(localName = "JX") private String jx; //制剂规格 - @Column(name = "zjgg") + + @JacksonXmlProperty(localName = "ZJGG") private String zjgg; //包装规格 - @Column(name = "bzgg") + + @JacksonXmlProperty(localName = "BZGG") private String bzgg; //包装转换比 - @Column(name = "bzzhb") + + @JacksonXmlProperty(localName = "BZZHB") private Integer bzzhb; //包装转换比单位 - @Column(name = "bzzhbdw") + + @JacksonXmlProperty(localName = "BZZHBDW") private String bzzhbdw; //药品有效期 - @Column(name = "ypyxq") + + @JacksonXmlProperty(localName = "YPYXQ") private Integer ypyxq; //药品有效期单位 - @Column(name = "ypyxqdw") + + @JacksonXmlProperty(localName = "YPYXQDW") private String ypyxqdw; //药品批准文号 - @Column(name = "yppzwh") + + @JacksonXmlProperty(localName = "YPPZWH") private String yppzwh; //药品批准文号有效期 - @Column(name = "yppzwhyxq") + + @JacksonXmlProperty(localName = "YPPZWHYXQ") private Date yppzwhyxq; //进口药品注册证号 - @Column(name = "jkypzczh") + + @JacksonXmlProperty(localName = "JKYPZCZH") private String jkypzczh; //进口药品注册证有效期 - @Column(name = "jkypzczyxq") + + @JacksonXmlProperty(localName = "JKYPZCZYXQ") private Date jkypzczyxq; //进口药品批件号 - @Column(name = "jkyppjh") + + @JacksonXmlProperty(localName = "JKYPPJH") private String jkyppjh; //进口药品批件有效期 - @Column(name = "jkyppjyxq") + + @JacksonXmlProperty(localName = "JKYPPJYXQ") private Date jkyppjyxq; //药品注册分类 - @Column(name = "ypzcfl") + + @JacksonXmlProperty(localName = "YPZCFL") private String ypzcfl; //国家基本药物标识 - @Column(name = "gjjbywbs") + + @JacksonXmlProperty(localName = "GJJBYWBSM") private String gjjbywbs; //特殊药品管理分类 - @Column(name = "tsypglfl") + + @JacksonXmlProperty(localName = "TSYPGLFL") private String tsypglfl; //处方药标识 - @Column(name = "cfybs") + + @JacksonXmlProperty(localName = "CFYBS") private String cfybs; //境外药品上市许可持有人代码 - @Column(name = "jwypssxkcyrdm") + + @JacksonXmlProperty(localName = "JWYPSSXKCYRDM") private String jwypssxkcyrdm; //境外药品生产企业代码 - @Column(name = "jwypscqydm") + + @JacksonXmlProperty(localName = "JWYPSCQYDM") private String jwypscqydm; //分包装厂名称 - @Column(name = "fbzcmc") + + @JacksonXmlProperty(localName = "FBZCMC") private String fbzcmc; //统一社会信用代码(分包装厂) - @Column(name = "tyshxydmfbzc") + + @JacksonXmlProperty(localName = "TYSHXYDMFBZC") private String tyshxydmfbzc; //分包装厂地址 - @Column(name = "fbzcdz") + + @JacksonXmlProperty(localName = "FBZCDZ") private String fbzcdz; //进口药品代理企业名称 - @Column(name = "jkypdlqymc") + + @JacksonXmlProperty(localName = "JKYPDLQYMC") private String jkypdlqymc; //统一社会信用代码(进口药品代理企业) - @Column(name = "tyshxydmjkypdlqy") + + @JacksonXmlProperty(localName = "TYSHXYDMJKYPDLQY") private String tyshxydmjkypdlqy; - //暂无 - @Column(name = "sczt") + + @JacksonXmlProperty(localName = "SCZT") + //生产状态:1-有效,2-无效 private String sczt; //包装规格标识 - @Column(name = "bzggbs") + + @JacksonXmlProperty(localName = "BZGGBS") private String bzggbs; //子集:bzbl-包装比例 、bzjb-包装级别 、ypbsm-药品标识码 - @Column(name = "basqxqs") private String basqxqs; + + // XML映射字段(不直接存入数据库) + @TableField(exist = false) + @JacksonXmlElementWrapper(localName = "BASQXQS") + @JacksonXmlProperty(localName = "BASQXQ") + private List basqxqList; + + @JacksonXmlProperty(localName = "JWYPSSXKCYRMCZW") + private String jwypssxkcyrmczw; + + @JacksonXmlProperty(localName = "JWYPSSXKCYRMCYW") + private String jwypssxkcyrmcyw; + + @JacksonXmlProperty(localName = "JWYPSSXKCYRDZZW") + private String jwypssxkcyrdzzw; + + @JacksonXmlProperty(localName = "JWYPSCQYMCZW") + private String jwypscqymczw; + + @JacksonXmlProperty(localName = "JWYPSCQYMCYW") + private String jwypscqymcyw; + + @JacksonXmlProperty(localName = "JWYPSCQYDZZW") + private String jwypscqydzzw; + + @JacksonXmlProperty(localName = "JWYPSCQYDZYW") + private String jwypscqydzyw; + //创建时间 - @Column(name = "create_time") private Date createTime; + //更新时间 - @Column(name = "update_time") private Date updateTime; + //是否删除(0-否 1-是) - @Column(name = "is_deleted") private Integer isDeleted; + // 在setter方法中完成转换 + public void setBasqxqList(List basqxqList) { + this.basqxqList = basqxqList; + try { + this.basqxqs = new ObjectMapper().writeValueAsString(basqxqList); + } catch (JsonProcessingException e) { + throw new RuntimeException("转换BASQXQS为JSON失败", e); + } + } + } diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalProductionLicenseBaseInfo.java b/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalProductionLicenseBaseInfo.java index 82fc9b8..3d91baa 100644 --- a/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalProductionLicenseBaseInfo.java +++ b/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalProductionLicenseBaseInfo.java @@ -134,8 +134,8 @@ public class PharmaceuticalProductionLicenseBaseInfo implements Serializable { /** * 投诉举报电话 */ - @JacksonXmlProperty(localName = "SCJBDH") - private String scjbdh; + @JacksonXmlProperty(localName = "TSJBDH") + private String tsjbdh; /** * 创建时间 diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalTradingEnterprisesBaseInfo.java b/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalTradingEnterprisesBaseInfo.java index ed67453..0b9ea18 100644 --- a/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalTradingEnterprisesBaseInfo.java +++ b/src/main/java/com/alihealth/d2d/provtest/domain/PharmaceuticalTradingEnterprisesBaseInfo.java @@ -7,14 +7,11 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import lombok.Builder; import lombok.Data; -import javax.persistence.Column; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.Date; /** * 药品经营企业基本信息数据子集(PharmaceuticalTradingEnterprisesBaseInfo)表实体类 @@ -185,11 +182,6 @@ public class PharmaceuticalTradingEnterprisesBaseInfo implements Serializable { @JacksonXmlProperty(localName = "LXDH") private String lxdh; - /** - * 暂无 - */ - @JacksonXmlProperty(localName = "ZSGPS") - private String zsgps; /** * 创建时间 diff --git a/src/main/java/com/alihealth/d2d/provtest/service/handle/business/SubType1019Handler.java b/src/main/java/com/alihealth/d2d/provtest/service/handle/business/SubType1019Handler.java new file mode 100644 index 0000000..4a9155a --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/service/handle/business/SubType1019Handler.java @@ -0,0 +1,72 @@ +package com.alihealth.d2d.provtest.service.handle.business; + +import com.alihealth.d2d.provtest.domain.ImportedDrugBaseInfo; +import com.alihealth.d2d.provtest.entity.EventBody; +import com.alihealth.d2d.provtest.entity.InstanceDetail; +import com.alihealth.d2d.provtest.entity.ItemDetail; +import com.alihealth.d2d.provtest.entity.VTTSBasic; +import com.alihealth.d2d.provtest.service.ImportedDrugBaseInfoService; +import com.alihealth.d2d.provtest.service.handle.AbstractEventDataHandler; +import com.alihealth.d2d.provtest.service.handle.EventSubType; +import com.alihealth.d2d.provtest.service.impl.XmlParserServiceImpl; +import com.baomidou.mybatisplus.extension.service.IService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author Jason 进口药品基本信息数据子集 + * @date 2025年06月05日 11:14:43 + */ +@Service +@EventSubType("1019") +public class SubType1019Handler extends AbstractEventDataHandler { + + protected final Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + private ImportedDrugBaseInfoService service; + + @Autowired + private XmlParserServiceImpl xmlParserServiceImpl; + + @Override + protected Class getEntityClass() { + return ImportedDrugBaseInfo.class; + } + + @Override + protected IService getService() { + return service; + } + + @Override + protected ImportedDrugBaseInfo convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail instance, String eventId) { + return null; + } + + @Override + public String getSubType() { + return "1019"; + } + + @Override + public void handleBase(String xml,String eventId) { + VTTSBasic result = xmlParserServiceImpl.parseDataXml( + xml, + ImportedDrugBaseInfo.class + ); + List list = result.getDataset(); + if(list!=null && !list.isEmpty()){ + list.stream() + .forEach(item -> { + item.setEventId(eventId); + }); + getService().saveBatch(list); + log.info("数据类型:"+getSubType()+",入库的数据条数:{}", list.size()); + } + } +}