This commit is contained in:
huzhengkao 2025-06-12 17:05:21 +08:00
commit b3985ac62c
4 changed files with 323 additions and 77 deletions

View File

@ -1,11 +1,15 @@
package com.alihealth.d2d.provtest.domain; package com.alihealth.d2d.provtest.domain;
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 lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
* 药品零售与药品使用信息数据子集(DrugRetailAndUseApplyInfo)表实体类 * 药品零售与药品使用信息数据子集(DrugRetailAndUseApplyInfo)表实体类
* *
@ -17,148 +21,148 @@ import java.util.Date;
@Builder @Builder
@TableName("drug_retail_and_use_apply_info") @TableName("drug_retail_and_use_apply_info")
public class DrugRetailAndUseApplyInfo { public class DrugRetailAndUseApplyInfo {
//主键ID //主键ID
@Column(name = "id") @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
//事件流水号 //事件流水号
@Column(name = "event_id") @Column(name = "event_id")
private String eventId; private String eventId;
//事件响应时间 //事件响应时间
@Column(name = "rec_time") @Column(name = "rec_time")
private Date recTime; private Date recTime;
//药品追溯码 //药品追溯码
@Column(name = "ypzsm") @Column(name = "ypzsm")
private String ypzsm; private String ypzsm;
//上一级包装药品追溯码 //上一级包装药品追溯码
@Column(name = "bzcj") @Column(name = "bzcj")
private String bzcj; private String bzcj;
//包装层级 //包装层级
@Column(name = "syjbzypzsm") @Column(name = "syjbzypzsm")
private String syjbzypzsm; private String syjbzypzsm;
//暂无 //暂无
@Column(name = "ymzt") @Column(name = "ymzt")
private String ymzt; private String ymzt;
//统一社会信用代码境内药品生产企业 //统一社会信用代码境内药品生产企业
@Column(name = "tyshxydmjnypscqy") @Column(name = "tyshxydmjnypscqy")
private String tyshxydmjnypscqy; private String tyshxydmjnypscqy;
//境内药品生产企业名称 //境内药品生产企业名称
@Column(name = "jnypscqymc") @Column(name = "jnypscqymc")
private String jnypscqymc; private String jnypscqymc;
//境外药品生产企业代码 //境外药品生产企业代码
@Column(name = "jwypscqydm") @Column(name = "jwypscqydm")
private String jwypscqydm; private String jwypscqydm;
//境外药品生产企业名称中文 //境外药品生产企业名称中文
@Column(name = "jwypscqymczw") @Column(name = "jwypscqymczw")
private String jwypscqymczw; private String jwypscqymczw;
//药品通用名称 //药品通用名称
@Column(name = "yptymc") @Column(name = "yptymc")
private String yptymc; private String yptymc;
//国家药品标识码 //国家药品标识码
@Column(name = "gjypbsm") @Column(name = "gjypbsm")
private String gjypbsm; private String gjypbsm;
//药品批准文号 //药品批准文号
@Column(name = "yppzwh") @Column(name = "yppzwh")
private String yppzwh; private String yppzwh;
//药品批准文号有效期 //药品批准文号有效期
@Column(name = "yppzwhyxq") @Column(name = "yppzwhyxq")
private Date yppzwhyxq; private Date yppzwhyxq;
//疫苗生产批号 //疫苗生产批号
@Column(name = "ymscph") @Column(name = "ymscph")
private String ymscph; private String ymscph;
//生产日期 //生产日期
@Column(name = "scrq") @Column(name = "scrq")
private Date scrq; private Date scrq;
//药品有效期截止日期 //药品有效期截止日期
@Column(name = "ypyxqjzrq") @Column(name = "ypqjzrq")
private Date ypyxqjzrq; private Date ypqjzrq;
//售药日期 //售药日期
@Column(name = "syrq") @Column(name = "syrq")
private Date syrq; private Date syrq;
//统一社会信用代码进口疫苗代理企业 //统一社会信用代码进口疫苗代理企业
@Column(name = "tyshxydmjkymdlqy") @Column(name = "tyshxydmjkymdlqy")
private String tyshxydmjkymdlqy; private String tyshxydmjkymdlqy;
//进口疫苗代理企业名称 //进口疫苗代理企业名称
@Column(name = "jkymdlqymc") @Column(name = "jkymdlqymc")
private String jkymdlqymc; private String jkymdlqymc;
//售药数量 //售药数量
@Column(name = "sysl") @Column(name = "sysl")
private Integer sysl; private Integer sysl;
//售出时间 //售出时间
@Column(name = "scsj") @Column(name = "scsj")
private Date scsj; private Date scsj;
//购买人身份信息 //购买人身份信息
@Column(name = "gmrsfxx") @Column(name = "gmrsfxx")
private String gmrsfxx; private String gmrsfxx;
//购买人电话号码 //购买人电话号码
@Column(name = "gmrdhhm") @Column(name = "gmrdhhm")
private String gmrdhhm; private String gmrdhhm;
//互联网订单标志 //互联网订单标志
@Column(name = "hlwddbz") @Column(name = "hlwddbz")
private String hlwddbz; private String hlwddbz;
//剂型 //剂型
@Column(name = "jx") @Column(name = "jx")
private String jx; private String jx;
//包装规格 //包装规格
@Column(name = "bzgg") @Column(name = "bzgg")
private String bzgg; private String bzgg;
//制剂规格 //制剂规格
@Column(name = "zjgg") @Column(name = "zjgg")
private String zjgg; private String zjgg;
//包装转换比 //包装转换比
@Column(name = "bzzhb") @Column(name = "bzzhb")
private Double bzzhb; private BigDecimal bzzhb;
//包装转换比单位 //包装转换比单位
@Column(name = "bzzhbdw") @Column(name = "bzzhbdw")
private String bzzhbdw; private String bzzhbdw;
//药品注册分类 //药品注册分类
@Column(name = "ypzcfl") @Column(name = "ypzcfl")
private String ypzcfl; private String ypzcfl;
//特殊药品管理分类 //特殊药品管理分类
@Column(name = "tsypglfl") @Column(name = "tsypglfl")
private String tsypglfl; private String tsypglfl;
//统一社会信用代码零售药店 //统一社会信用代码零售药店
@Column(name = "tyshxydmlsyd") @Column(name = "tyshxydmlsyd")
private String tyshxydmlsyd; private String tyshxydmlsyd;
//执业许可证登记号 //执业许可证登记号
@Column(name = "zyxkzdjh") @Column(name = "zyxkzdjh")
private String zyxkzdjh; private String zyxkzdjh;
//零售药店名称 //零售药店名称
@Column(name = "lsydmc") @Column(name = "lsydmc")
private String lsydmc; private String lsydmc;
//售药单位类型 //售药单位类型
@Column(name = "sydwlx") @Column(name = "sydwlx")
private String sydwlx; private String sydwlx;
//售药单位类型小类 //售药单位类型小类
@Column(name = "sydwlxxl") @Column(name = "sydwlxxl")
private String sydwlxxl; private String sydwlxxl;
//零售药店编号 //零售药店编号
@Column(name = "lsdjbh") @Column(name = "lsdjbh")
private String lsdjbh; private String lsdjbh;
//经营许可证编号 //经营许可证编号
@Column(name = "jyxkzbh") @Column(name = "jyxkzbh")
private String jyxkzbh; private String jyxkzbh;
//卫生机构代码 //卫生机构代码
@Column(name = "wsjgdm") @Column(name = "wsjgdm")
private String wsjgdm; private String wsjgdm;
//开方医师 //开方医师
@Column(name = "kfys") @Column(name = "kfys")
private String kfys; private String kfys;
//药品发药人 //药品发药人
@Column(name = "ypfyr") @Column(name = "ypfyr")
private String ypfyr; private String ypfyr;
//药品使用者 //药品使用者
@Column(name = "ypsyz") @Column(name = "ypsyz")
private String ypsyz; private String ypsyz;
//药品使用者代理人 //药品使用者代理人
@Column(name = "ypsyzdlr") @Column(name = "ypsyzdlr")
private String ypsyzdlr; private String ypsyzdlr;
//创建时间 //创建时间
@Column(name = "create_time") @Column(name = "create_time")
private Date createTime; private Date createTime;
//更新时间 //更新时间
@Column(name = "update_time") @Column(name = "update_time")
private Date updateTime; private Date updateTime;
//是否删除(0- 1-) //是否删除(0- 1-)
@Column(name = "is_deleted") @Column(name = "is_deleted")
private Integer isDeleted; private Integer isDeleted;

View File

@ -18,6 +18,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Date;
/** /**
* @author Jason * @author Jason
@ -43,39 +44,38 @@ public class SubType2012Handler extends AbstractEventDataHandler<DrugImportApply
@Override @Override
protected DrugImportApplyInfo convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail instance) { protected DrugImportApplyInfo convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail instance) {
EventBasic evtBasic = eventBody.getEvtBasic(); EventBasic evtBasic = eventBody.getEvtBasic();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //时间格式
String formattedDate = LocalDate.parse( SimpleDateFormat formatterDatetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
item.getString("SCRQ"), //日期格式
DateTimeFormatter.ofPattern("yyyyMMdd") SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
).format(DateTimeFormatter.ISO_LOCAL_DATE); //
try { try {
return DrugImportApplyInfo.builder() return DrugImportApplyInfo.builder()
.eventId(eventBody.getEventID()) .eventId(eventBody.getEventID())
.rksj(evtBasic.getDate("RKSJ"))
.recTime(formatter.parse(eventBody.getRecTime())) .rksj(evtBasic.getString("RKSJ") != null ? formatterDatetime.parse(evtBasic.getString("RKSJ")) : null)
.recTime(formatterDatetime.parse(eventBody.getRecTime()))
.rkdbh(evtBasic.getString("RKDBH")) .rkdbh(evtBasic.getString("RKDBH"))
.ypzsm(instance.getString("YPZSM")) .ypzsm(instance.getString("YPZSM"))
.syjbzypzsm(instance.getString("SYJBZYPZSM")) .syjbzypzsm(instance.getString("SYJBZYPZSM"))
.bzcj(instance.getString("BZCJ")) .bzcj(instance.getString("BZCJ"))
.ymzt(instance.getString("YMZT")) .ymzt(instance.getString("YMZT"))
.tyshxydmjkymdlqy(instance.getString("TYSHXYDMJKYMDLQY"))
.jkymdlqymc(instance.getString("JKYMDLQYMC")) .tyshxydmjkymdlqy(item.getString("TYSHXYDMJKYMDLQY"))
.jwypssxkcyrdm(instance.getString("JWYPPSSXKCYRDM")) .jkymdlqymc(item.getString("JKYMDLQYMC"))
.jwypssxkcyrmczw(instance.getString("JWYPPSSXKCYRMCZW")) .jwypssxkcyrdm(item.getString("JWYPSSXKCYRDM"))
.jwypscqydm(instance.getString("JWYPPSCQYDM")) .jwypssxkcyrmczw(item.getString("JWYPSSXKCYRMCZW"))
.jwypscqymczw(instance.getString("JWYPPSCQYMCZW")) .jwypscqydm(item.getString("JWYPSCQYDM"))
.jwypscqymczw(instance.getString("JWYPPSCQYMCZW")) .jwypscqymczw(item.getString("JWYPSCQYMCZW"))
.tyshxydmfbzc(instance.getString("TYSHXYDMFBZC")) .tyshxydmfbzc(item.getString("TYSHXYDMFBZC"))
.fbzcmc(instance.getString("FBZCMC")) .fbzcmc(item.getString("FBZCMC"))
.yptymc(instance.getString("YPTYMC")) .yptymc(item.getString("YPTYMC"))
.gjypbsm(instance.getString("GJYPBSM")) .gjypbsm(item.getString("GJYPBSM"))
.ymscph(instance.getString("YMSCPH")) .ymscph(item.getString("YMSCPH"))
.scrq(instance.getDate("SCRQ")) .scrq(formatterDate.parse(item.getString("SCRQ")))
.ymyxqjzrq(instance.getDate("YMYXQJZRQ")) .ymyxqjzrq(formatterDate.parse(item.getString("YMYXQJZRQ")))
.scsl(instance.getInt("SCSL"))
.createTime(instance.getDate("CREATETIME")) .scsl(item.getInt("SCSL"))
.updateTime(instance.getDate("UPDATETIME"))
.isDeleted(instance.getInt("ISDELETE"))
.build(); .build();
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@ -0,0 +1,133 @@
package com.alihealth.d2d.provtest.service.handle.business;
import com.alihealth.d2d.provtest.domain.DrugInvoiceApplyInfo;
import com.alihealth.d2d.provtest.domain.DrugSelfInspectionApplyInfo;
import com.alihealth.d2d.provtest.entity.EventBasic;
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.service.IDrugInvoiceApplyInfoService;
import com.alihealth.d2d.provtest.service.IDrugSelfInspectionApplyInfoService;
import com.alihealth.d2d.provtest.service.handle.AbstractEventDataHandler;
import com.alihealth.d2d.provtest.service.handle.EventSubType;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
* @author Jason
* @date 2025年06月05日 11:37:52
*/
@EventSubType("2015")
@Service
public class SubType2015Handler extends AbstractEventDataHandler<DrugInvoiceApplyInfo> {
@Autowired
private IDrugInvoiceApplyInfoService service;
@Override
protected Class<DrugInvoiceApplyInfo> getEntityClass() {
return DrugInvoiceApplyInfo.class;
}
@Override
protected IService<DrugInvoiceApplyInfo> getService() {
return service;
}
@Override
protected DrugInvoiceApplyInfo convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail instance) {
EventBasic evtBasic = eventBody.getEvtBasic();
SimpleDateFormat formatterDatetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//日期格式
SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
try {
return
DrugInvoiceApplyInfo.builder()
.eventId(eventBody.getEventID())
.recTime(formatterDatetime.parse(eventBody.getRecTime()))
.ypzsm(instance.getString("YPZSM"))
.syjbzypzsm(instance.getString("SYJBZYPZSM"))
.bzcj(instance.getString("BZCJ"))
.ymzt(instance.getString("YMZT"))
.tyshxydmscqy(item.getString("TYSHXYDMSCQY"))
.scqymc(item.getString("SCQYMC"))
.yptymc(item.getString("YPTYMC"))
.gjypbsm(item.getString("GJYPBSM"))
.ymscph(item.getString("YMSCPH"))
.tyshxydmjkymdlqy(item.getString("TYSHXYDMJKYMDLQY"))
.jkymdlqymc(item.getString("JKYMDLQYMC"))
.scrq(formatterDate.parse(item.getString("SCRQ")))
.ymyxqjzrq(formatterDate.parse(item.getString("YMYXQJZRQ")))
.fhsl(item.getInt("FHSL"))
.yppzwh(item.getString("YPPZWH"))
.yppzwhyxq(formatterDate.parse(item.getString("YPPZWHYXQ")))
.jx(item.getString("JX"))
.bzgg(item.getString("BZGG"))
.zjgg(item.getString("ZJGG"))
.bzzhb(item.getDouble("BZZHB"))
.bzzhbdw(item.getString("BZZHBDW"))
.ypzcfl(item.getString("YPZCFL"))
.tsypglfl(item.getString("TSYPGLFL"))
.yjbgqszt(item.getString("YJBGQSZT"))
.yjbggzzt(item.getString("YJBGGZZT"))
.fhdbh(evtBasic.getString("FHDBH"))
.dhdbh(evtBasic.getString("DHDBH"))
.tyshxydmfhjg(evtBasic.getString("TYSHXYDMFHJG"))
.jzdwbmfhjg(evtBasic.getString("JZDWBMFHJG"))
.fhjgmc(evtBasic.getString("FHJGMC"))
.fhdz(evtBasic.getString("FHDZ"))
.fhlx(evtBasic.getString("FHLX"))
.fhsj(formatterDatetime.parse(evtBasic.getString("FHSJ")))
.tyshxydmshjg(evtBasic.getString("TYSHXYDMSHJG"))
.jzdwbmshjg(evtBasic.getString("JZDWBMSHJG"))
.shdz(evtBasic.getString("SHDZ"))
.shjgmc(evtBasic.getString("SHJGMC"))
.tyshxydmympsdw(evtBasic.getString("TYSHXYDMYMPSDW"))
.ympsdwmc(evtBasic.getString("YMPSDWMC"))
.djyzzt(evtBasic.getString("DJYZZT"))
.djyzrq(formatterDate.parse(evtBasic.getString("DJYZRQ")))
.djyzwtgyy(evtBasic.getString("DJYZWTGYY"))
.fhdczr(evtBasic.getString("FHDCZR"))
.fhdscsj(formatterDate.parse(evtBasic.getString("FHDSCSJ")))
.fhr(evtBasic.getString("FHR"))
.fhjglx(evtBasic.getString("FHJGLX"))
.shjglx(evtBasic.getString("SHJGLX"))
.fhjgxl(evtBasic.getString("FHJGXL"))
.shjgxl(evtBasic.getString("SHJGXL"))
.wsjgdmshjg(evtBasic.getString("WSJGDMSHJG"))
.wsjgdmfhjg(evtBasic.getString("WSJGDMFHJG"))
.zyxkzdjhfhjg(evtBasic.getString("ZYXKZDJHFHJG"))
.zyxkzdjhshjg(evtBasic.getString("ZYXKZDJHSHJG"))
// .wtdwmc(evtBasic.getString("WTDWMC"))
// .wtdwtyshxydm(evtBasic.getString("WTDWTYSHXYDM"))
.jsbs(evtBasic.getString("JSBS"))
// .jsyy(evtBasic.getString("JSYY"))
// .jssj(evtBasic.getDate("JSSJ"))
.build();
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public String getSubType() {
return "2015";
}
@Override
public void handleBase(String xml, String eventId) {
}
}

View File

@ -0,0 +1,109 @@
package com.alihealth.d2d.provtest.service.handle.business;
import com.alihealth.d2d.provtest.domain.DrugRetailAndUseApplyInfo;
import com.alihealth.d2d.provtest.entity.EventBasic;
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.service.IDrugRetailAndUseApplyInfoService;
import com.alihealth.d2d.provtest.service.handle.AbstractEventDataHandler;
import com.alihealth.d2d.provtest.service.handle.EventSubType;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@Service
@EventSubType("2017")
public class SubType2017Handler extends AbstractEventDataHandler<DrugRetailAndUseApplyInfo> {
@Autowired
private IDrugRetailAndUseApplyInfoService service;
@Override
protected Class<DrugRetailAndUseApplyInfo> getEntityClass() {
return DrugRetailAndUseApplyInfo.class;
}
@Override
protected IService<DrugRetailAndUseApplyInfo> getService() {
return service;
}
@Override
protected DrugRetailAndUseApplyInfo convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail instance) {
EventBasic evtBasic = eventBody.getEvtBasic();
//时间格式
SimpleDateFormat formatterDatetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//日期格式
SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
try {
return DrugRetailAndUseApplyInfo.builder()
.eventId(eventBody.getEventID())
.recTime(formatterDatetime.parse(eventBody.getRecTime()))
.ypzsm(instance.getString("YPZSM"))
.bzcj(instance.getString("BZCJ"))
.syjbzypzsm(instance.getString("SYJBZYPZSM"))
.ymzt(instance.getString(("YMZT")))
.tyshxydmjnypscqy(item.getString("TYSHXYDMJNYPSCQY"))
.jnypscqymc(item.getString("JNYPSCQYMC"))
.jwypscqydm(item.getString("JWYPSCQYDM"))
.jwypscqymczw(item.getString("JWYPSCQYMCZW"))
.yptymc(item.getString("YPTYMC"))
.gjypbsm(item.getString("GJYPBSM"))
.yppzwh(item.getString("YPPZWH"))
.yppzwhyxq(formatterDate.parse(item.getString("YPPZWHYXQ")))
.ymscph(item.getString("YMSCPH"))
.scrq(formatterDate.parse(item.getString("SCRQ")))
.ypqjzrq(formatterDate.parse(item.getString("YPQJZRQ")))
.syrq(formatterDate.parse(item.getString("SYRQ")))
.tyshxydmjkymdlqy(item.getString("TYSHXYDMJKYMDLQY"))
.jkymdlqymc(item.getString("JKYMDLQYMC"))
.sysl(item.getInt("SYSL"))
.scsj(formatterDatetime.parse(item.getString("SCSJ")))
.gmrsfxx(item.getString("GMRSFXX"))
.gmrdhhm(item.getString("GMRDHHM"))
.hlwddbz(item.getString("HLWDDBZ"))
.jx(item.getString("JX"))
.bzgg(item.getString("BZGG"))
.zjgg(item.getString("ZJGG"))
.bzzhb(new BigDecimal(item.getString("BZZHB")))
.bzzhbdw(item.getString("BZZHBDW"))
.ypzcfl(item.getString("YPZCFL"))
.tsypglfl(item.getString("TSYPGLFL"))
.tyshxydmlsyd(evtBasic.getString("TYSHXYDMLSYD"))
.zyxkzdjh(evtBasic.getString("ZYXKZDJH"))
.lsydmc(evtBasic.getString("LSYDMC"))
.sydwlx(evtBasic.getString("SYDWLX"))
.sydwlxxl(evtBasic.getString("SYDWLXXL"))
.lsdjbh(evtBasic.getString("LSDJBH"))
.jyxkzbh(evtBasic.getString("JYXKZBH"))
.wsjgdm(evtBasic.getString("WSJGDM"))
.kfys(evtBasic.getString("KFYS"))
.ypfyr(evtBasic.getString("YPFYR"))
.ypsyz(evtBasic.getString("YPSYZ"))
.ypsyzdlr(evtBasic.getString("YPSYZDLR"))
.build();
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public String getSubType() {
return "2017";
}
@Override
public void handleBase(String xml, String eventId) {
}
}