diff --git a/src/main/java/com/alihealth/d2d/provtest/VO/DrugDeliveryNoteInfoVO.java b/src/main/java/com/alihealth/d2d/provtest/VO/DrugDeliveryNoteInfoVO.java index ad9ca2a..bd9307d 100644 --- a/src/main/java/com/alihealth/d2d/provtest/VO/DrugDeliveryNoteInfoVO.java +++ b/src/main/java/com/alihealth/d2d/provtest/VO/DrugDeliveryNoteInfoVO.java @@ -14,6 +14,36 @@ public class DrugDeliveryNoteInfoVO implements Serializable { private static final long serialVersionUID = -6817830718249051422L; + /** + * 药品追溯码 + */ + private String ypzsm; + + /** + * 上一级包装药品追溯码 + */ + private String syjbzypzsm; + + /** + * 国家药品标识码 + */ + private String gjypbsm; + + /** + * 药品通用名称 + */ + private String yptymc; + + /** + * 收货机构名称 + */ + private String shjgmc; + + /** + * 统一社会信用代码(收货机构) + */ + private String tyshxydmshjg; + /** * 收货时间 */ @@ -21,17 +51,19 @@ public class DrugDeliveryNoteInfoVO implements Serializable { private Date shsj; /** - * 收货公司社会信用代码 + * 收货数量 */ - private String tyshxydmshjg; + private Integer shsl; /** - * 收货公司名称 + * 发货机构名称 */ - private String shjgmc; + private String fhjgmc; /** - * 收货单号 + * 统一社会信用代码(发货机构) */ - private String shdbh; + private String tyshxydmfhjg; + + } diff --git a/src/main/java/com/alihealth/d2d/provtest/VO/DrugInvoiceInfoVO.java b/src/main/java/com/alihealth/d2d/provtest/VO/DrugInvoiceInfoVO.java index 56d38ef..adc3d6b 100644 --- a/src/main/java/com/alihealth/d2d/provtest/VO/DrugInvoiceInfoVO.java +++ b/src/main/java/com/alihealth/d2d/provtest/VO/DrugInvoiceInfoVO.java @@ -14,16 +14,55 @@ public class DrugInvoiceInfoVO implements Serializable { private static final long serialVersionUID = 6502538268319598412L; - /** 发货时间 */ + /** + * 药品追溯码 + */ + private String ypzsm; + + /** + * 上一级包装药品追溯码 + */ + private String syjbzypzsm; + + /** + * 国家药品标识码 + */ + private String gjypbsm; + + /** + * 药品通用名称 + */ + private String yptymc; + + /** + * 发货机构名称 + */ + private String fhjgmc; + + /** + * 统一社会信用代码(发货机构) + */ + private String tyshxydmfhjg; + + /** + * 发货时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date fhsj; - /** 发货公司社会信用代码 */ - private String tyshxydmfhjg; + /** + * 发货数量 + */ + private Integer fhsl; - /** 发货公司名称 */ - private String fhjgmc; + /** + * 收货机构名称 + */ + private String shjgmc; + + /** + * 统一社会信用代码(收货机构) + */ + private String tyshxydmshjg; - /** 发货单号 */ - private String fhdbh; } diff --git a/src/main/java/com/alihealth/d2d/provtest/VO/DrugProductionInfoVO.java b/src/main/java/com/alihealth/d2d/provtest/VO/DrugProductionInfoVO.java index 476882b..bee3f98 100644 --- a/src/main/java/com/alihealth/d2d/provtest/VO/DrugProductionInfoVO.java +++ b/src/main/java/com/alihealth/d2d/provtest/VO/DrugProductionInfoVO.java @@ -15,31 +15,19 @@ public class DrugProductionInfoVO implements Serializable { private static final long serialVersionUID = 2214859259608999147L; /** - * 药品生产日期 + * 药品追溯码 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date scrq; + private String ypzsm; /** - * 药品有效期截止日期 + * 上一级包装药品追溯码 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date ymyxqjzrq; + private String syjbzypzsm; /** - * 药品生产批号 + * 国家药品标识码 */ - private String ypscph; - - /** - * 药品生产企业信用代码 - */ - private String tyshxydm; - - /** - * 药品生产企业名称 - */ - private String scqymc; + private String gjypbsm; /** * 药品通用名称 @@ -47,59 +35,29 @@ public class DrugProductionInfoVO implements Serializable { private String yptymc; /** - * 药品商用名称(中文) + * 统一社会信用代码(生产企业) */ - private String ypspmc; + private String tyshxydm; /** - * 国家药品标识码 + * 生产企业名称 */ - private String gjypbsm; - + private String scqymc; /** - * 药品本位码 - */ - private String ypbwm; - - /** - * 剂型 - */ - private String jx; - - /** - * 制剂规格 - */ - private String zjgg; - - /** - * 包装规格 - */ - private String bzgg; - - /** - * 包装转换比 - */ - private Integer bzzhb; - - /** - * 药品有效期 - */ - private Integer ypyxq; - - /** - * 药品有效期单位 - */ - private String ypyxqdw; - - /** - * 药品批准文号 - */ - private String yppzwh; - - /** - * 药品批准文号有效期 + * 生产日期 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date yppzwhyxq; + private Date scrq; + + /** + * 药品生产批号 + */ + private String ypscph; + + /** + * 生产数量 + */ + private Integer scsl; + } diff --git a/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetailAndUseInfoVO.java b/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetailAndUseInfoVO.java index 5ee36c2..db90ad2 100644 --- a/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetailAndUseInfoVO.java +++ b/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetailAndUseInfoVO.java @@ -14,28 +14,58 @@ public class DrugRetailAndUseInfoVO implements Serializable { private static final long serialVersionUID = 8169288349155391871L; - /** 售药时间 */ + /** + * 药品追溯码 + */ + private String ypzsm; + + /** + * 上一级包装药品追溯码 + */ + private String syjbzypzsm; + + /** + * 国家药品标识码 + */ + private String gjypbsm; + + /** + * 药品通用名称 + */ + private String yptymc; + + /** + * 售药数量 + */ + private Integer sysl; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + /** 售出时间 */ private Date scsj; - /** 购买人身份信息 */ + /** + * 购买人身份信息 + */ private String gmrsfxx; - /** 购买人电话号码 */ + /** + * 购买人电话号码 + */ private String gmrdhhm; - /** 互联网订单标识 */ + /** + * 互联网订单标志 + */ private String hlwddbz; - /** 零售药店名称 */ + /** + * 零售药店名称 + */ private String lsydmc; - /** 零售药店编号 */ - private String lsdjbh; - - /** 统一社会信用代码(零售药店) */ + /** + * 统一社会信用代码(零售药店) + */ private String tyshxydmlsyd; - /** 开方医师(非处方药没有该字段) */ - private String kfys; } diff --git a/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetraceVO.java b/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetraceVO.java index 61e3de4..a621a29 100644 --- a/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetraceVO.java +++ b/src/main/java/com/alihealth/d2d/provtest/VO/DrugRetraceVO.java @@ -13,12 +13,17 @@ public class DrugRetraceVO implements Serializable { /** * 药品生产信息 */ - private DrugProductionInfoVO drugProductionInfoVO; + private List drugProductionInfoVOList; /** - * 药品发货单与收货单信息 + * 药品发货单信息 */ - private List drugInvoiceAndDeliveryInfoVOList; + private List drugInvoiceInfoVOList; + + /** + * 收货单信息 + */ + private List drugDeliveryNoteInfoVOList; /** * 药品零售与药品使用信息 diff --git a/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java b/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java index 2c63801..4dbfcf0 100644 --- a/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java +++ b/src/main/java/com/alihealth/d2d/provtest/controller/ResolveTest.java @@ -63,4 +63,23 @@ public class ResolveTest { return AjaxResult.success(true); } + + @PostMapping(value = "/resolve3") + public AjaxResult resolve3() throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, InvalidKeySpecException, BadPaddingException, IOException, InvalidKeyException { + List list = receiveDataLogService.list(new QueryWrapper() + .lambda().eq(ReceiveDataLog::getEventId, "04bfe7514e444bd68458f71c147d0718") + ); + String privateKey = certManager.getPrivateKey(); + for (ReceiveDataLog receiveDataLog : list) { + String eventId = receiveDataLog.getEventId(); + String de = certManager.testDecrypt(privateKey, receiveDataLog.getData()); + String xml = StreamUtil.getUnStreamContent(de); + EventPojo eventPojo = new EventPojo(); + eventPojo.setData(receiveDataLog.getData()); + eventPojo.setSubType(receiveDataLog.getSubType()); + processingService.processEvent(eventPojo, xml, eventId); + } + + return AjaxResult.success(true); + } } diff --git a/src/main/java/com/alihealth/d2d/provtest/mapper/DomesticDrugProductionApplyInfoMapper.java b/src/main/java/com/alihealth/d2d/provtest/mapper/DomesticDrugProductionApplyInfoMapper.java index 8683b5e..fda3fa9 100644 --- a/src/main/java/com/alihealth/d2d/provtest/mapper/DomesticDrugProductionApplyInfoMapper.java +++ b/src/main/java/com/alihealth/d2d/provtest/mapper/DomesticDrugProductionApplyInfoMapper.java @@ -5,12 +5,15 @@ import com.alihealth.d2d.provtest.domain.DomesticDrugProductionApplyInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface DomesticDrugProductionApplyInfoMapper extends BaseMapper { /** * 根据药品追溯码查询药品信息 + * * @param ypzsm * @return */ - DrugProductionInfoVO selectByYpzsm(@Param("ypzsm") String ypzsm); + List selectByYpzsm(@Param("ypzsm") String ypzsm); } diff --git a/src/main/java/com/alihealth/d2d/provtest/mapper/DrugImportApplyInfoMapper.java b/src/main/java/com/alihealth/d2d/provtest/mapper/DrugImportApplyInfoMapper.java index d291664..717f606 100644 --- a/src/main/java/com/alihealth/d2d/provtest/mapper/DrugImportApplyInfoMapper.java +++ b/src/main/java/com/alihealth/d2d/provtest/mapper/DrugImportApplyInfoMapper.java @@ -1,10 +1,12 @@ package com.alihealth.d2d.provtest.mapper; import com.alihealth.d2d.provtest.VO.DrugProductionInfoVO; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.alihealth.d2d.provtest.domain.DrugImportApplyInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 药品进口信息数据子集(DrugImportApplyInfo)表数据库访问层 * @@ -16,6 +18,6 @@ public interface DrugImportApplyInfoMapper extends BaseMapper selectByYpzsm(@Param("ypzsm") String ypzsm); } diff --git a/src/main/java/com/alihealth/d2d/provtest/service/handle/AbstractEventDataHandler.java b/src/main/java/com/alihealth/d2d/provtest/service/handle/AbstractEventDataHandler.java index 915f029..7631430 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/handle/AbstractEventDataHandler.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/handle/AbstractEventDataHandler.java @@ -23,10 +23,10 @@ public abstract class AbstractEventDataHandler implements EventDataHandler { protected abstract IService getService(); - protected abstract T convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail detail,String eventId); + protected abstract T convertToEntity(EventBody eventBody, ItemDetail item, InstanceDetail detail, String eventId); @Override - public void handle(VTTSEventS eventS,String eventId) { + public void handle(VTTSEventS eventS, String eventId) { List entities = new ArrayList<>(); for (EventBody eventBody : eventS.getVttsEvent().getEventBodyList()) { @@ -35,25 +35,25 @@ public abstract class AbstractEventDataHandler implements EventDataHandler { if (item.getInstanceList() != null) { for (InstanceDetail instance : item.getInstanceList()) { try { - entities.add(convertToEntity(eventBody, item, instance,eventId)); + entities.add(convertToEntity(eventBody, item, instance, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } } else { try { - entities.add(convertToEntity(eventBody, item, null,eventId)); + entities.add(convertToEntity(eventBody, item, null, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } } } else { try { - entities.add(convertToEntity(eventBody, null, null,eventId)); + entities.add(convertToEntity(eventBody, null, null, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } } diff --git a/src/main/java/com/alihealth/d2d/provtest/service/handle/EventData2017Handler.java b/src/main/java/com/alihealth/d2d/provtest/service/handle/EventData2017Handler.java index 3ca00a9..a17c759 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/handle/EventData2017Handler.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/handle/EventData2017Handler.java @@ -44,14 +44,14 @@ public abstract class EventData2017Handler implements EventDataHandler { try { entities.add(convertToEntity(eventBody, item, instance, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } } else { try { entities.add(convertToEntity(eventBody, item, null, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } @@ -60,7 +60,7 @@ public abstract class EventData2017Handler implements EventDataHandler { try { entities.add(convertToEntity(eventBody, null, null, eventId)); } catch (Exception e) { - log.error("转换实体失败", e); + log.error("转换实体失败{},对应的eventId是={}", e.getMessage(), eventId); } } } diff --git a/src/main/java/com/alihealth/d2d/provtest/service/impl/DrugRetraceServiceImpl.java b/src/main/java/com/alihealth/d2d/provtest/service/impl/DrugRetraceServiceImpl.java index 697964f..9ae40c3 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/impl/DrugRetraceServiceImpl.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/impl/DrugRetraceServiceImpl.java @@ -8,9 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.List; -import java.util.Objects; @Service("drugRetraceService") public class DrugRetraceServiceImpl implements DrugRetraceService { @@ -35,47 +33,20 @@ public class DrugRetraceServiceImpl implements DrugRetraceService { public DrugRetraceVO retrace(DrugRetraceSearcher searcher) { DrugRetraceVO drugRetraceVO = new DrugRetraceVO(); //先查国内的,要是国内没有查询到,再查询国外的 - DrugProductionInfoVO drugProductionInfoVO = domesticDrugProductionApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); - if (Objects.isNull(drugProductionInfoVO)) { - drugProductionInfoVO = drugImportApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); + List drugProductionInfoVOList = domesticDrugProductionApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); + if (CollectionUtils.isEmpty(drugProductionInfoVOList)) { + drugProductionInfoVOList = drugImportApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); } -// if (Objects.isNull(drugProductionInfoVO)) { -// throw new ServiceException("未查询到该药品!"); -// } - drugRetraceVO.setDrugProductionInfoVO(drugProductionInfoVO); - //统一发货单与收货单,并行排序 - List drugInvoiceAndDeliveryInfoVOList = new ArrayList<>(); + + drugRetraceVO.setDrugProductionInfoVOList(drugProductionInfoVOList); + // 查询发货单 List drugInvoiceInfoVOList = drugInvoiceApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); - if (!CollectionUtils.isEmpty(drugInvoiceInfoVOList)) { - for (DrugInvoiceInfoVO drugInvoiceInfoVO : drugInvoiceInfoVOList) { - DrugInvoiceAndDeliveryInfoVO drugInvoiceAndDeliveryInfoVO = new DrugInvoiceAndDeliveryInfoVO(); - drugInvoiceAndDeliveryInfoVO.setSj(drugInvoiceInfoVO.getFhsj()); - drugInvoiceAndDeliveryInfoVO.setTyshxydm(drugInvoiceInfoVO.getTyshxydmfhjg()); - drugInvoiceAndDeliveryInfoVO.setGsmc(drugInvoiceInfoVO.getFhjgmc()); - drugInvoiceAndDeliveryInfoVO.setDdh(drugInvoiceInfoVO.getFhdbh()); - drugInvoiceAndDeliveryInfoVO.setDjlx("invoice"); - drugInvoiceAndDeliveryInfoVOList.add(drugInvoiceAndDeliveryInfoVO); - } - } + drugRetraceVO.setDrugInvoiceInfoVOList(drugInvoiceInfoVOList); // 查询收货单 List drugDeliveryNoteInfoVOList = drugDeliveryNoteApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); - if (!CollectionUtils.isEmpty(drugDeliveryNoteInfoVOList)) { - for (DrugDeliveryNoteInfoVO drugDeliveryNoteInfoVO : drugDeliveryNoteInfoVOList) { - DrugInvoiceAndDeliveryInfoVO drugInvoiceAndDeliveryInfoVO = new DrugInvoiceAndDeliveryInfoVO(); - drugInvoiceAndDeliveryInfoVO.setSj(drugDeliveryNoteInfoVO.getShsj()); - drugInvoiceAndDeliveryInfoVO.setTyshxydm(drugDeliveryNoteInfoVO.getTyshxydmshjg()); - drugInvoiceAndDeliveryInfoVO.setGsmc(drugDeliveryNoteInfoVO.getShjgmc()); - drugInvoiceAndDeliveryInfoVO.setDdh(drugDeliveryNoteInfoVO.getShdbh()); - drugInvoiceAndDeliveryInfoVO.setDjlx("delivery"); - drugInvoiceAndDeliveryInfoVOList.add(drugInvoiceAndDeliveryInfoVO); - } - } - if (!CollectionUtils.isEmpty(drugInvoiceAndDeliveryInfoVOList)) { - drugInvoiceAndDeliveryInfoVOList.sort((o1, o2) -> o1.getSj().compareTo(o2.getSj())); - } - drugRetraceVO.setDrugInvoiceAndDeliveryInfoVOList(drugInvoiceAndDeliveryInfoVOList); + drugRetraceVO.setDrugDeliveryNoteInfoVOList(drugDeliveryNoteInfoVOList); // 查询零售及使用信息 List drugRetailAndUseInfoVOList = drugRetailAndUseApplyInfoMapper.selectByYpzsm(searcher.getYpzsm()); diff --git a/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java b/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java index 12fd8eb..4f600b8 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/impl/EventProcessingServiceImpl.java @@ -5,6 +5,7 @@ import com.alihealth.d2d.provtest.factory.EventHandlerFactory; import com.alihealth.d2d.provtest.service.handle.EventDataHandler; import com.alihealth.d2d.provtest.utils.EventPojo; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -14,6 +15,7 @@ import org.springframework.stereotype.Service; */ @Service("eventProcessingService") @RequiredArgsConstructor +@Slf4j public class EventProcessingServiceImpl { private final XmlParserServiceImpl xmlParserServiceImpl; @@ -21,14 +23,15 @@ public class EventProcessingServiceImpl { /** * 解析xml并处理接收的事件 + * * @param eventPojo * @param xml * @param eventId */ @Async - public void processEvent(EventPojo eventPojo, String xml,String eventId) { + public void processEvent(EventPojo eventPojo, String xml, String eventId) { EventDataHandler handler = handlerFactory.getHandler(eventPojo.getSubType()); - if(eventPojo.getSubType().startsWith("20")) {//应用数据 + if (eventPojo.getSubType().startsWith("20")) {//应用数据 VTTSEventS eventS = null; try { eventS = xmlParserServiceImpl.parseAppDataXml(xml); @@ -36,9 +39,14 @@ public class EventProcessingServiceImpl { throw new RuntimeException(e); } //处理数据时关联到外层的eventId,方便通过日志排查问题 - handler.handle(eventS,eventId); - }else{ - handler.handleBase(xml,eventId); + try { + handler.handle(eventS, eventId); + } catch (Exception e) { + log.error("数据处理异常{},对应的eventId是={}", e.getMessage(), eventId); + } + + } else { + handler.handleBase(xml, eventId); } } diff --git a/src/main/resources/mapper/DomesticDrugProductionApplyInfoMapper.xml b/src/main/resources/mapper/DomesticDrugProductionApplyInfoMapper.xml index c4bc1b9..7c8bc6e 100644 --- a/src/main/resources/mapper/DomesticDrugProductionApplyInfoMapper.xml +++ b/src/main/resources/mapper/DomesticDrugProductionApplyInfoMapper.xml @@ -6,25 +6,21 @@ \ No newline at end of file diff --git a/src/main/resources/mapper/DrugDeliveryNoteApplyInfoMapper.xml b/src/main/resources/mapper/DrugDeliveryNoteApplyInfoMapper.xml index 4a33449..4a8da1d 100644 --- a/src/main/resources/mapper/DrugDeliveryNoteApplyInfoMapper.xml +++ b/src/main/resources/mapper/DrugDeliveryNoteApplyInfoMapper.xml @@ -5,14 +5,22 @@ diff --git a/src/main/resources/mapper/DrugImportApplyInfoMapper.xml b/src/main/resources/mapper/DrugImportApplyInfoMapper.xml index c57c9a8..3d6d673 100644 --- a/src/main/resources/mapper/DrugImportApplyInfoMapper.xml +++ b/src/main/resources/mapper/DrugImportApplyInfoMapper.xml @@ -4,26 +4,22 @@ diff --git a/src/main/resources/mapper/DrugInvoiceApplyInfoMapper.xml b/src/main/resources/mapper/DrugInvoiceApplyInfoMapper.xml index a47e7a9..15caa6b 100644 --- a/src/main/resources/mapper/DrugInvoiceApplyInfoMapper.xml +++ b/src/main/resources/mapper/DrugInvoiceApplyInfoMapper.xml @@ -5,14 +5,22 @@ diff --git a/src/main/resources/mapper/DrugRetailAndUseApplyInfoMapper.xml b/src/main/resources/mapper/DrugRetailAndUseApplyInfoMapper.xml index 4b01868..4013ab4 100644 --- a/src/main/resources/mapper/DrugRetailAndUseApplyInfoMapper.xml +++ b/src/main/resources/mapper/DrugRetailAndUseApplyInfoMapper.xml @@ -5,18 +5,23 @@