添加2013,优化代码

This commit is contained in:
chuanxingchao 2025-06-12 17:58:24 +08:00
parent b3985ac62c
commit bd3a79da15
8 changed files with 136 additions and 9 deletions

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
/**
* 发货单信息数据子集(DrugInvoiceApplyInfo)表实体类
@ -85,7 +86,7 @@ public class DrugInvoiceApplyInfo {
private String zjgg;
//包装转换比
@Column(name = "bzzhb")
private Double bzzhb;
private BigDecimal bzzhb;
//包装转换比单位
@Column(name = "bzzhbdw")
private String bzzhbdw;

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
/**
* 药品自检信息数据子集(DrugSelfInspectionApplyInfo)表实体类
@ -55,7 +56,7 @@ public class DrugSelfInspectionApplyInfo {
private String bzgg;
//包装转换比
@Column(name = "bzzhb")
private Double bzzhb;
private BigDecimal bzzhb;
//药品有效期
@Column(name = "ypyxq")
private Integer ypyxq;

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
/**
* 进口药品基本信息数据子集(ImportedDrugBaseInfo)表实体类
@ -49,7 +50,7 @@ public class ImportedDrugBaseInfo {
private String bzgg;
//包装转换比
@Column(name = "bzzhb")
private Double bzzhb;
private BigDecimal bzzhb;
//包装转换比单位
@Column(name = "bzzhbdw")
private String bzzhbdw;

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
/**
* 库存上报基本信息数据子集(可选)(WarehouseStockApplyInfo)表实体类
@ -73,7 +74,7 @@ public class WarehouseStockApplyInfo {
private String zjgg;
//包装转换比
@Column(name = "bzzhb")
private Double bzzhb;
private BigDecimal bzzhb;
//包装转换比单位
@Column(name = "bzzhbdw")
private String bzzhbdw;

View File

@ -3,6 +3,7 @@ package com.alihealth.d2d.provtest.entity;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.JsonNode;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedHashMap;
@ -72,4 +73,12 @@ public class DynamicFieldsEntity {
// 实现日期转换逻辑
return null;
}
public BigDecimal getBigDecimal(String name) {
try {
return new BigDecimal(getString(name));
} catch (Exception e) {
return null;
}
}
}

View File

@ -16,12 +16,14 @@ import java.util.List;
* @author Jason
* @date 2025年06月05日 11:11:15
*/
public abstract class AbstractEventDataHandler <T> implements EventDataHandler {
public abstract class AbstractEventDataHandler<T> implements EventDataHandler {
protected final Logger log = LoggerFactory.getLogger(getClass());
protected abstract Class<T> getEntityClass();
protected abstract IService<T> getService();
protected abstract T convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail detail);
@Override
@ -30,13 +32,22 @@ public abstract class AbstractEventDataHandler <T> implements EventDataHandler {
for (EventBody eventBody : eventS.getVttsEvent().getEventBodyList()) {
for (ItemDetail item : eventBody.getItemList()) {
for (InstanceDetail instance : item.getInstanceList()) {
if (item.getInstanceList() != null) {
for (InstanceDetail instance : item.getInstanceList()) {
try {
entities.add(convertToEntity(eventBody, item, instance));
} catch (Exception e) {
log.error("转换实体失败", e);
}
}
} else {
try {
entities.add(convertToEntity(eventBody, item, instance));
entities.add(convertToEntity(eventBody, item, null));
} catch (Exception e) {
log.error("转换实体失败", e);
}
}
}
}

View File

@ -1,11 +1,114 @@
package com.alihealth.d2d.provtest.service.handle.business;
import com.alihealth.d2d.provtest.domain.DrugImportApplyInfo;
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.IDrugImportApplyInfoService;
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("2013")
@Service
public class SubType2013Handler {
public class SubType2013Handler extends AbstractEventDataHandler<DrugSelfInspectionApplyInfo> {
@Autowired
private IDrugSelfInspectionApplyInfoService service;
@Override
protected Class<DrugSelfInspectionApplyInfo> getEntityClass() {
return DrugSelfInspectionApplyInfo.class;
}
@Override
protected IService<DrugSelfInspectionApplyInfo> getService() {
return service;
}
@Override
protected DrugSelfInspectionApplyInfo 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 DrugSelfInspectionApplyInfo.builder()
.eventId(eventBody.getEventID())
.recTime(formatterDatetime.parse(eventBody.getRecTime()))
.ypjybgsbh(evtBasic.getString("YPJYBGSBH"))
.ymjyrq(formatterDate.parse(evtBasic.getString("YMJYRQ")))
.ypjybgsmj(evtBasic.getString("YPJYBGSMJ"))
.gjypbsm(item.getString("GJYPBSM"))
.gjjbywbs(item.getString("GJJBYWBS"))
.yptymc(item.getString("YPTYMC"))
.ypywmc(item.getString("YPYWMC"))
.jkypzwym(item.getString("JKYPZWYM"))
.jkyppjh(item.getString("JKYPPJH"))
.jkyppjyxq(formatterDate.parse(item.getString("JKYPPJYXQ")))
.ypspmc(item.getString("YPSPMC"))
.ypbwm(item.getString("YPBWM"))
.jx(item.getString("JX"))
.zjgg(item.getString("ZJGG"))
.bzgg(item.getString("BZGG"))
.bzzhb(item.getBigDecimal("BZZHB"))
.ypyxq(item.getInt("YPYXQ"))
.ypyxqdw(item.getString("YPYXQDW"))
.yppzwh(item.getString("YPPZWH"))
.yppzwhyxq(formatterDate.parse(item.getString("YPPZWHYXQ")))
.jkypzczh(item.getString("JKYPZCZH"))
.jkypzczyxq(formatterDate.parse(item.getString("JKYPZCZYXQ")))
.ypzcfl(item.getString("YPZCFL"))
.gjjbywbs(item.getString("GJJBYWBS"))
.tsypglfl(item.getString("TSYPGLFL"))
.cfybs(item.getString("CFYBS"))
.jnypssxkcyrmc(item.getString("JNYPSSXKCYRMC"))
.tyshxydmjnypssxkcyr(item.getString("TYSHXYDMJNYPSSXKCYR"))
.jwypssxkcyrmczw(item.getString("JWYPSSXKCYRMCZW"))
.jwypssxkcyrmcyw(item.getString("JWYPSSXKCYRMCYW"))
.jwypssxkcyrdm(item.getString("JWYPSSXKCYRDM"))
.jnypscqymc(item.getString("JNYPSCQYMC"))
.tyshxydmjnypscqy(item.getString("TYSHXYDMJNYPSCQY"))
.jwypscqymczw(item.getString("JWYPSCQYMCZW"))
.jwypscqymcyw(item.getString("JWYPSCQYMCYW"))
.jwypscqydm(item.getString("JWYPSCQYDM"))
.fbzcmc(item.getString("FBZCMC"))
.tyshxydmfbzc(item.getString("TYSHXYDMFBZC"))
.ypscrq(formatterDate.parse(item.getString("YPSCRQ")))
// .ypyxqjzrq(formatterDate.parse(item.getString("YPYXQJZRQ"))) //值为暂无不保存
.ypscph(item.getString("YPSCPH"))
.bgrq(formatterDate.parse(item.getString("BGRQ")))
.gzrq(formatterDatetime.parse(item.getString("GZRQ")))
.build();
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public String getSubType() {
return "2013";
}
@Override
public void handleBase(String xml, String eventId) {
}
}

View File

@ -73,7 +73,7 @@ public class SubType2015Handler extends AbstractEventDataHandler<DrugInvoiceAppl
.jx(item.getString("JX"))
.bzgg(item.getString("BZGG"))
.zjgg(item.getString("ZJGG"))
.bzzhb(item.getDouble("BZZHB"))
.bzzhb(item.getBigDecimal("BZZHB"))
.bzzhbdw(item.getString("BZZHBDW"))
.ypzcfl(item.getString("YPZCFL"))
.tsypglfl(item.getString("TSYPGLFL"))