diff --git a/HELP.md b/HELP.md deleted file mode 100644 index 5517db2..0000000 --- a/HELP.md +++ /dev/null @@ -1,16 +0,0 @@ -# Getting Started - -### Reference Documentation -For further reference, please consider the following sections: - -* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) -* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/maven-plugin/) -* [Spring Web](https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications) - -### Guides -The following guides illustrate how to use some features concretely: - -* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) -* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) -* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/) - diff --git a/d2d.pfx b/d2d.pfx deleted file mode 100644 index 15cf0f4..0000000 Binary files a/d2d.pfx and /dev/null differ diff --git a/mvnw b/mvnw deleted file mode 100644 index a16b543..0000000 --- a/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd.folderdownload.crdownload b/mvnw.cmd.folderdownload.crdownload deleted file mode 100644 index 457b7a6..0000000 Binary files a/mvnw.cmd.folderdownload.crdownload and /dev/null differ diff --git a/pom.xml b/pom.xml index 1226589..59d15cd 100644 --- a/pom.xml +++ b/pom.xml @@ -100,6 +100,12 @@ spring-boot-starter-data-jpa + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + diff --git a/src/main/java/com/alihealth/d2d/provtest/controller/ProvTestServerController.java b/src/main/java/com/alihealth/d2d/provtest/controller/ProvTestServerController.java index da29b5b..c00ab12 100644 --- a/src/main/java/com/alihealth/d2d/provtest/controller/ProvTestServerController.java +++ b/src/main/java/com/alihealth/d2d/provtest/controller/ProvTestServerController.java @@ -2,10 +2,11 @@ package com.alihealth.d2d.provtest.controller; import com.alibaba.fastjson.JSON; import com.alihealth.d2d.provtest.domain.DomesticPharmaBaseInfo; -import com.alihealth.d2d.provtest.domain.DomesticProducer; +import com.alihealth.d2d.provtest.domain.ReceiveDataLog; import com.alihealth.d2d.provtest.entity.VTTSBasic; import com.alihealth.d2d.provtest.enums.BuzStatusEnum; import com.alihealth.d2d.provtest.service.IDomesticPharmaBaseInfoService; +import com.alihealth.d2d.provtest.service.IReceiveDataLogService; import com.alihealth.d2d.provtest.service.XmlParserService; import com.alihealth.d2d.provtest.utils.*; import org.slf4j.Logger; @@ -58,6 +59,9 @@ public class ProvTestServerController { @Autowired private XmlParserService xmlParserService; + @Autowired + private IReceiveDataLogService receiveDataLogService; + @RequestMapping("/receive") public @ResponseBody Map receive(HttpServletRequest request) throws IOException { @@ -96,20 +100,41 @@ public class ProvTestServerController { String xml = StreamUtil.getUnStreamContent(de); logger.info("解密之后的文件内容:{}", xml); + //保存数据日志 + ReceiveDataLog log=new ReceiveDataLog(); + log.setEventId(eventId); + log.setProcessId(processId); + log.setEventType(eventType); + log.setSubType(eventPojo.getSubType()); + log.setData(eventPojo.getData()); + log.setVer(ver); + receiveDataLogService.save(log); + //解析xml // List list= XmlStringParser.parseVaccineManufacturers(xml,eventPojo.getSubType()); //解析并保存数据 - XmlStringParser.parseXml(xml, "1011", data -> { - domesticPharmaBaseInfoService.save((DomesticPharmaBaseInfo) data); - }); +// XmlStringParser.parseXml(xml, "1011", data -> { +// domesticPharmaBaseInfoService.save((DomesticPharmaBaseInfo) data); +// }); -// List producers = xmlParserService.parseMultiDataXml( +// List producers = xmlParserService.parseXml1( // xml, -// DomesticProducer.class +// DomesticPharmaBaseInfo.class // ); - - logger.info("解析后的数据条数:{}", ""); + VTTSBasic result = xmlParserService.parseDataXml( + xml, + DomesticPharmaBaseInfo.class + ); + List list = result.getDataset(); + if(list!=null && !list.isEmpty()){ + list.stream() + .forEach(item -> { + item.setEventId(eventId); + }); + domesticPharmaBaseInfoService.saveBatch(list); + } + logger.info("入库的数据条数:{}", list.size()); return ResponseBuilder.success(); }catch (Exception e){ diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.java b/src/main/java/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.java index 0cebafe..19d4112 100644 --- a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.java +++ b/src/main/java/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.java @@ -1,69 +1,134 @@ package com.alihealth.d2d.provtest.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; +import com.alihealth.d2d.provtest.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import lombok.Data; -import java.io.Serializable; -import java.time.LocalDate; -import java.util.Date; +import javax.persistence.Column; +import javax.xml.bind.annotation.*; /** - * @author Jason 境内药品生产企业基本信息实体 - * @date 2025年05月29日 10:28:21 + * @author Jason + * @date 2025年05月30日 09:59:21 */ @Data @TableName("domestic_pharma_base_info") -public class DomesticPharmaBaseInfo implements Serializable { - private static final long serialVersionUID = 1L; +@JacksonXmlRootElement(localName = "data") +public class DomesticPharmaBaseInfo extends BaseEntity{ + @Column(name = "tyshxydm", unique = true) + @JacksonXmlProperty(localName = "TYSHXYDM") + private String tyshxydm; - /** - * 主键id - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + @Column(name = "jnypscqymc") + @JacksonXmlProperty(localName = "JNYPSCQYMC") + private String jnypscqymc; - // 企业基础信息 - private String tyshxydm; // 统一社会信用代码 - private String jnypscqymc; // 疫苗生产企业名称 - private String jnypscqylx; // 企业类型 + @Column(name = "jnypscqylx") + @JacksonXmlProperty(localName = "JNYPSCQYLX") + private String jnypscqylx; - // 注册地址信息 - private String zsdz; // 注册地址 + @Column(name = "zsdz") + @JacksonXmlProperty(localName = "ZSDZ") + private String zsdz; + + @Column(name = "zsdzgjhdq") + @JacksonXmlProperty(localName = "ZSDZGJHDQ") private String zsdzgjhdq; // 注册地址国家/地区代码 + + @Column(name = "zsdzszxszzq") + @JacksonXmlProperty(localName = "ZSDZSZXSZZQ") private String zsdzszxszzq; // 注册地址所在行政区 + + @Column(name = "zsdzsqzzzm") + @JacksonXmlProperty(localName = "ZSDZSQZZZM") private String zsdzsqzzzm; // 注册地址社区/镇/村 + + @Column(name = "zsdzxzzxxjs") + @JacksonXmlProperty(localName = "ZSDZXZZXXJS") private String zsdzxzzxxjs; // 注册地址乡镇/街道 + + @Column(name = "zsdzxzjdbsc") + @JacksonXmlProperty(localName = "ZSDZXZJDBSC") private String zsdzxzjdbsc; // 注册地址详细街道办/社区 + + @Column(name = "zsdzcjlld") + @JacksonXmlProperty(localName = "ZSDZCJLLD") private String zsdzcjlld; // 注册地址村居/路/楼栋 + + @Column(name = "zsdzmphm") + @JacksonXmlProperty(localName = "ZSDZMPHM") private String zsdzmphm; // 注册地址门牌号码 // 企业负责人信息 + @Column(name = "fddbr") + @JacksonXmlProperty(localName = "FDDBR") private String fddbr; // 法定代表人 + + @Column(name = "zczb") + @JacksonXmlProperty(localName = "ZCZB") private String zczb; // 注册资本(万元) // 日期信息 - private LocalDate clrq; // 成立日期 + @Column(name = "clrq") + @JacksonXmlProperty(localName = "CLRQ") + private String clrq; // 成立日期 + + @Column(name = "yyqx") + @JacksonXmlProperty(localName = "YYQX") private String yyqx; // 营业期限 // 经营信息 + @Column(name = "jyfw") + @JacksonXmlProperty(localName = "JYFW") private String jyfw; // 经营范围 + + @Column(name = "djjg") + @JacksonXmlProperty(localName = "DJJG") private String djjg; // 登记机关 // 联系方式 + @Column(name = "gddhhm") + @JacksonXmlProperty(localName = "GDDHHM") private String gddhhm; // 固定电话号码 + + @Column(name = "czhm") + @JacksonXmlProperty(localName = "CZHM") private String czhm; // 传真号码 + + @Column(name = "dzxx") + @JacksonXmlProperty(localName = "DZXX") private String dzxx; // 电子信箱 + + @Column(name = "qywz") + @JacksonXmlProperty(localName = "QYWZ") private String qywz; // 企业网址 + + @Column(name = "lxr") + @JacksonXmlProperty(localName = "LXR") private String lxr; // 联系人 + + @Column(name = "lxdh") + @JacksonXmlProperty(localName = "LXDH") private String lxdh; // 联系电话 // 地理坐标 + @Column(name = "zsgps") + @JacksonXmlProperty(localName = "ZSGPS") private String zsgps; // GPS坐标(经度,纬度) - // 系统字段 - private Date createTime; // 创建时间 - private Date updateTime; // 更新时间 - private Integer isDeleted; // 是否删除(0-否 1-是) + + + @Override + public Class getEntityClass() { + return DomesticPharmaBaseInfo.class; + } + + @Override + public String getDatasetName() { + return "境内药品生产企业基本信息数据子集"; + } + + } diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticProducer.java b/src/main/java/com/alihealth/d2d/provtest/domain/DomesticProducer.java deleted file mode 100644 index 0664632..0000000 --- a/src/main/java/com/alihealth/d2d/provtest/domain/DomesticProducer.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.alihealth.d2d.provtest.domain; - -import com.alihealth.d2d.provtest.entity.BaseEntity; -import com.alihealth.d2d.provtest.entity.XmlEntity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import javax.persistence.Column; -import javax.persistence.Embedded; -import javax.xml.bind.annotation.*; -import java.time.LocalDate; - -/** - * @author Jason - * @date 2025年05月30日 09:59:21 - */ -@Data -@TableName("domestic_pharma_base_info") -@XmlRootElement(name = "data") -@XmlAccessorType(XmlAccessType.FIELD) // 明确指定字段访问 -public class DomesticProducer extends BaseEntity{ - @Column(name = "tyshxydm", unique = true) - @XmlElement(name = "TYSHXYDM") - private String tyshxydm; - - @Column(name = "jnypscqymc") - @XmlElement(name = "JNYPSCQYMC") - private String jnypscqymc; - - @Column(name = "jnypscqylx") - @XmlElement(name = "JNYPSCQYLX") - private String jnypscqylx; - - @Column(name = "zsdz") - @XmlElement(name = "ZSDZ") - private String zsdz; - - @Column(name = "zsdzgjhdq") - @XmlElement(name = "ZSDZGJHDQ") - private String zsdzgjhdq; // 注册地址国家/地区代码 - - @Column(name = "zsdzszxszzq") - @XmlElement(name = "ZSDZSZXSZZQ") - private String zsdzszxszzq; // 注册地址所在行政区 - - @Column(name = "zsdzsqzzzm") - @XmlElement(name = "ZSDZSQZZZM") - private String zsdzsqzzzm; // 注册地址社区/镇/村 - - @Column(name = "zsdzxzzxxjs") - @XmlElement(name = "ZSDZXZZXXJS") - private String zsdzxzzxxjs; // 注册地址乡镇/街道 - - @Column(name = "zsdzxzjdbsc") - @XmlElement(name = "ZSDZXZJDBSC") - private String zsdzxzjdbsc; // 注册地址详细街道办/社区 - - @Column(name = "zsdzcjlld") - @XmlElement(name = "ZSDZCJLLD") - private String zsdzcjlld; // 注册地址村居/路/楼栋 - - @Column(name = "zsdzmphm") - @XmlElement(name = "ZSDZMPHM") - private String zsdzmphm; // 注册地址门牌号码 - - // 企业负责人信息 - @Column(name = "fddbr") - @XmlElement(name = "FDDBR") - private String fddbr; // 法定代表人 - - @Column(name = "zczb") - @XmlElement(name = "ZCZB") - private String zczb; // 注册资本(万元) - - // 日期信息 - @Column(name = "clrq") - @XmlElement(name = "CLRQ") - private LocalDate clrq; // 成立日期 - - @Column(name = "yyqx") - @XmlElement(name = "YYQX") - private String yyqx; // 营业期限 - - // 经营信息 - @Column(name = "jyfw") - @XmlElement(name = "JYFW") - private String jyfw; // 经营范围 - - @Column(name = "djjg") - @XmlElement(name = "DJJG") - private String djjg; // 登记机关 - - // 联系方式 - @Column(name = "gddhhm") - @XmlElement(name = "GDDHHM") - private String gddhhm; // 固定电话号码 - - @Column(name = "czhm") - @XmlElement(name = "CZHM") - private String czhm; // 传真号码 - - @Column(name = "dzxx") - @XmlElement(name = "DZXX") - private String dzxx; // 电子信箱 - - @Column(name = "qywz") - @XmlElement(name = "QYWZ") - private String qywz; // 企业网址 - - @Column(name = "lxr") - @XmlElement(name = "LXR") - private String lxr; // 联系人 - - @Column(name = "lxdh") - @XmlElement(name = "LXDH") - private String lxdh; // 联系电话 - - // 地理坐标 - @Column(name = "zsgps") - @XmlElement(name = "ZSGPS") - private String zsgps; // GPS坐标(经度,纬度) - - - - @Override - public Class getEntityClass() { - return DomesticProducer.class; - } - - @Override - public String getDatasetName() { - return "境内药品生产企业基本信息数据子集1111"; - } - - -} diff --git a/src/main/java/com/alihealth/d2d/provtest/domain/ReceiveDataLog.java b/src/main/java/com/alihealth/d2d/provtest/domain/ReceiveDataLog.java new file mode 100644 index 0000000..a6482da --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/domain/ReceiveDataLog.java @@ -0,0 +1,57 @@ +package com.alihealth.d2d.provtest.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import lombok.Data; + +import javax.persistence.Column; +import java.util.Date; + +/** + * @author Jason 接收数据日志 + * @date 2025年06月03日 15:28:25 + */ +@Data +@TableName("receive_data_log") +public class ReceiveDataLog { + + @Column(name = "event_id", unique = true) + private String eventId; + + + @Column(name = "process_id") + private String processId; + + + @Column(name = "event_type") + private String eventType; + + + + @Column(name = "sub_type") + private String subType; + + + + @Column(name = "data") + private String data; + + + + @Column(name = "ver") + private String ver; + + + @Column(name = "create_time") + private Date createTime; + + + @Column(name = "update_time") + private Date updateTime; + + + @Column(name = "is_deleted") + private Date isDeleted; + + +} diff --git a/src/main/java/com/alihealth/d2d/provtest/entity/BaseEntity.java b/src/main/java/com/alihealth/d2d/provtest/entity/BaseEntity.java index bda5a8b..4386a7e 100644 --- a/src/main/java/com/alihealth/d2d/provtest/entity/BaseEntity.java +++ b/src/main/java/com/alihealth/d2d/provtest/entity/BaseEntity.java @@ -1,5 +1,6 @@ package com.alihealth.d2d.provtest.entity; +import lombok.Data; import org.springframework.data.annotation.Id; import javax.persistence.*; @@ -12,6 +13,7 @@ import java.time.LocalDateTime; */ @MappedSuperclass @XmlTransient +@Data public abstract class BaseEntity> implements XmlEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/alihealth/d2d/provtest/entity/VTTSBasic.java b/src/main/java/com/alihealth/d2d/provtest/entity/VTTSBasic.java index dd430ec..a83025a 100644 --- a/src/main/java/com/alihealth/d2d/provtest/entity/VTTSBasic.java +++ b/src/main/java/com/alihealth/d2d/provtest/entity/VTTSBasic.java @@ -1,30 +1,43 @@ package com.alihealth.d2d.provtest.entity; -import com.alihealth.d2d.provtest.domain.DomesticProducer; -import lombok.Data; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import javax.xml.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** - * @author Jason + * @author Jason 基本信息集公共类 * @date 2025年05月30日 11:45:00 */ -@XmlRootElement(name = "VTTSBasic") -@XmlAccessorType(XmlAccessType.FIELD) -@Data -@XmlSeeAlso({DomesticProducer.class}) +@JacksonXmlRootElement(localName = "VTTSBasic") public class VTTSBasic { - @XmlElement(name = "datasetName") + @JacksonXmlProperty(localName = "datasetName") private String datasetName; - @XmlElementWrapper(name = "dataset") - //@XmlElements(@XmlElement(name = "data")) - @XmlElement(name = "data") - // private List dataset; // 必须初始化集合 - private List dataset; + @JacksonXmlElementWrapper(localName = "dataset") + @JacksonXmlProperty(localName = "data") + private List dataset=new ArrayList<>(); // 必须初始化集合 + // 确保有无参构造器 public VTTSBasic() {} + + + public String getDatasetName() { + return datasetName; + } + + public void setDatasetName(String datasetName) { + this.datasetName = datasetName; + } + + public List getDataset() { + return dataset; + } + + public void setDataset(List dataset) { + this.dataset = dataset; + } } diff --git a/src/main/java/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.java b/src/main/java/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.java index 8c0dd8b..9f28271 100644 --- a/src/main/java/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.java +++ b/src/main/java/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.java @@ -1,7 +1,6 @@ package com.alihealth.d2d.provtest.factory; import com.alihealth.d2d.provtest.domain.DomesticPharmaBaseInfo; -import com.alihealth.d2d.provtest.utils.XmlStringParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Node; @@ -35,34 +34,34 @@ public class DomesticPharmaBaseInfoFactory implements EntityFactory { return; } - DomesticPharmaBaseInfo baseInfo = (DomesticPharmaBaseInfo) entity; - baseInfo.setTyshxydm(getElementText(dataElement, "TYSHXYDM")); - baseInfo.setJnypscqymc(getElementText(dataElement, "JNYPSCQYMC")); - baseInfo.setJnypscqylx(getElementText(dataElement, "JNYPSCQYLX")); - baseInfo.setZsdz(getElementText(dataElement, "ZSDZ")); - baseInfo.setZsdzgjhdq(getElementText(dataElement, "ZSDZGJHDQ")); - baseInfo.setZsdzszxszzq(getElementText(dataElement, "ZSDZSZXSZZQ")); - baseInfo.setJnypscqylx(getElementText(dataElement, "JNYPSCQYLX")); - baseInfo.setZsdzsqzzzm(getElementText(dataElement, "ZSDZSQZZZM")); - baseInfo.setZsdzxzzxxjs(getElementText(dataElement, "ZSDZXZZXXJS")); - baseInfo.setZsdzxzjdbsc(getElementText(dataElement, "ZSDZXZJDBSC")); - - baseInfo.setZsdzcjlld(getElementText(dataElement, "ZSDZCJLLD")); - baseInfo.setZsdzmphm(getElementText(dataElement, "ZSDZMPHM")); - baseInfo.setFddbr(getElementText(dataElement, "FDDBR")); - baseInfo.setZczb(getElementText(dataElement, "ZCZB")); - baseInfo.setClrq(parseDate(getElementText(dataElement, "CLRQ"))); - baseInfo.setYyqx(getElementText(dataElement, "YYQX")); - baseInfo.setJyfw(getElementText(dataElement, "JYFW")); - baseInfo.setDjjg(getElementText(dataElement, "DJJG")); - baseInfo.setGddhhm(getElementText(dataElement, "GDDHHM")); - baseInfo.setCzhm(getElementText(dataElement, "CZHM")); - baseInfo.setDzxx(getElementText(dataElement, "DZXX")); - baseInfo.setQywz(getElementText(dataElement, "QYWZ")); - baseInfo.setLxr(getElementText(dataElement, "LXR")); - - baseInfo.setLxdh(getElementText(dataElement, "LXDH")); - baseInfo.setZsgps(getElementText(dataElement, "ZSGPS")); +// DomesticPharmaBaseInfo baseInfo = (DomesticPharmaBaseInfo) entity; +// baseInfo.setTyshxydm(getElementText(dataElement, "TYSHXYDM")); +// baseInfo.setJnypscqymc(getElementText(dataElement, "JNYPSCQYMC")); +// baseInfo.setJnypscqylx(getElementText(dataElement, "JNYPSCQYLX")); +// baseInfo.setZsdz(getElementText(dataElement, "ZSDZ")); +// baseInfo.setZsdzgjhdq(getElementText(dataElement, "ZSDZGJHDQ")); +// baseInfo.setZsdzszxszzq(getElementText(dataElement, "ZSDZSZXSZZQ")); +// baseInfo.setJnypscqylx(getElementText(dataElement, "JNYPSCQYLX")); +// baseInfo.setZsdzsqzzzm(getElementText(dataElement, "ZSDZSQZZZM")); +// baseInfo.setZsdzxzzxxjs(getElementText(dataElement, "ZSDZXZZXXJS")); +// baseInfo.setZsdzxzjdbsc(getElementText(dataElement, "ZSDZXZJDBSC")); +// +// baseInfo.setZsdzcjlld(getElementText(dataElement, "ZSDZCJLLD")); +// baseInfo.setZsdzmphm(getElementText(dataElement, "ZSDZMPHM")); +// baseInfo.setFddbr(getElementText(dataElement, "FDDBR")); +// baseInfo.setZczb(getElementText(dataElement, "ZCZB")); +// baseInfo.setClrq(parseDate(getElementText(dataElement, "CLRQ"))); +// baseInfo.setYyqx(getElementText(dataElement, "YYQX")); +// baseInfo.setJyfw(getElementText(dataElement, "JYFW")); +// baseInfo.setDjjg(getElementText(dataElement, "DJJG")); +// baseInfo.setGddhhm(getElementText(dataElement, "GDDHHM")); +// baseInfo.setCzhm(getElementText(dataElement, "CZHM")); +// baseInfo.setDzxx(getElementText(dataElement, "DZXX")); +// baseInfo.setQywz(getElementText(dataElement, "QYWZ")); +// baseInfo.setLxr(getElementText(dataElement, "LXR")); +// +// baseInfo.setLxdh(getElementText(dataElement, "LXDH")); +// baseInfo.setZsgps(getElementText(dataElement, "ZSGPS")); } diff --git a/src/main/java/com/alihealth/d2d/provtest/mapper/ReceiveDataLogMapper.java b/src/main/java/com/alihealth/d2d/provtest/mapper/ReceiveDataLogMapper.java new file mode 100644 index 0000000..00da97a --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/mapper/ReceiveDataLogMapper.java @@ -0,0 +1,11 @@ +package com.alihealth.d2d.provtest.mapper; + +import com.alihealth.d2d.provtest.domain.ReceiveDataLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author Jason + * @date 2025年06月03日 15:35:00 + */ +public interface ReceiveDataLogMapper extends BaseMapper { +} diff --git a/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java b/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java new file mode 100644 index 0000000..0b887d2 --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/service/IReceiveDataLogService.java @@ -0,0 +1,7 @@ +package com.alihealth.d2d.provtest.service; + +import com.alihealth.d2d.provtest.domain.ReceiveDataLog; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface IReceiveDataLogService extends IService { +} diff --git a/src/main/java/com/alihealth/d2d/provtest/service/XmlParserService.java b/src/main/java/com/alihealth/d2d/provtest/service/XmlParserService.java index bacdee8..0934b48 100644 --- a/src/main/java/com/alihealth/d2d/provtest/service/XmlParserService.java +++ b/src/main/java/com/alihealth/d2d/provtest/service/XmlParserService.java @@ -1,21 +1,18 @@ package com.alihealth.d2d.provtest.service; -import com.alihealth.d2d.provtest.domain.DomesticProducer; +import com.alihealth.d2d.provtest.domain.DomesticPharmaBaseInfo; import com.alihealth.d2d.provtest.entity.VTTSBasic; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.springframework.stereotype.Service; -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import javax.xml.XMLConstants; import javax.xml.bind.*; -import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.stream.StreamSource; +import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; -import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -29,13 +26,32 @@ public class XmlParserService { private static final Map, JAXBContext> CONTEXT_CACHE = new ConcurrentHashMap<>(); + private static final XmlMapper xmlMapper = new XmlMapper(); + + + /** + * 使用Jackson XML 解析xml + * @param xml + * @param dataType + * @return + * @param + * @throws IOException + */ + public static VTTSBasic parseDataXml(String xml, Class dataType) throws IOException { + JavaType type = xmlMapper.getTypeFactory().constructParametricType( + VTTSBasic.class, + dataType + ); + return xmlMapper.readValue(xml, type); + } + /** * 解析包含多个data节点的XML * @param xml 完整XML内容 * @param dataClass 内部data节点对应的实体类 */ - public List parseMultiDataXml( + public List parseMultiDataXml( String xml, Class dataClass) throws Exception { @@ -57,30 +73,13 @@ public class XmlParserService { // 4. 解析XML try (StringReader reader = new StringReader(xml)) { -// XMLStreamReader xsr = xif.createXMLStreamReader(reader); -// JAXBElement root = unmarshaller.unmarshal(xsr, VTTSBasic.class); -// -// // 5. 获取解析结果 -// VTTSBasic wrapper = root.getValue(); -// List result = wrapper.getDataset(); -// -// // 6. 类型安全检查 -// if (!result.isEmpty() && !dataClass.isInstance(result.get(0))) { -// throw new ClassCastException("XML中包含类型不匹配的数据"); -// } -// -// return result; - // 创建 JAXBContext 时包含所有相关类 - // JAXBContext jc = JAXBContext.newInstance(VTTSBasic.class, Data.class); - //Unmarshaller unmarshaller = jc.createUnmarshaller(); - // 解析 XML XMLStreamReader xsr = xif.createXMLStreamReader(reader); JAXBElement root = unmarshaller.unmarshal(xsr, VTTSBasic.class); // 获取解析结果 VTTSBasic wrapper = root.getValue(); - List result = wrapper.getDataset(); + List result = wrapper.getDataset(); return result; } @@ -100,6 +99,21 @@ public class XmlParserService { return element.getValue(); } + public static VTTSBasic parse(String xml, Class dataType) throws Exception { + // 创建包含具体类型的JAXBContext + JAXBContext context = JAXBContext.newInstance( + VTTSBasic.class, + dataType + ); + + Unmarshaller unmarshaller = context.createUnmarshaller(); + StringReader reader = new StringReader(xml); + + @SuppressWarnings("unchecked") + VTTSBasic result = (VTTSBasic) unmarshaller.unmarshal(reader); + return result; + } + public static String toXml(VTTSBasic vttsBasic, Class dataType) throws Exception { JAXBContext context = getOrCreateContext(VTTSBasic.class, dataType); diff --git a/src/main/java/com/alihealth/d2d/provtest/service/impl/ReceiveDataLogServiceImpl.java b/src/main/java/com/alihealth/d2d/provtest/service/impl/ReceiveDataLogServiceImpl.java new file mode 100644 index 0000000..4140151 --- /dev/null +++ b/src/main/java/com/alihealth/d2d/provtest/service/impl/ReceiveDataLogServiceImpl.java @@ -0,0 +1,15 @@ +package com.alihealth.d2d.provtest.service.impl; + +import com.alihealth.d2d.provtest.domain.ReceiveDataLog; +import com.alihealth.d2d.provtest.mapper.ReceiveDataLogMapper; +import com.alihealth.d2d.provtest.service.IReceiveDataLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @author Jason + * @date 2025年06月03日 15:37:17 + */ +@Service +public class ReceiveDataLogServiceImpl extends ServiceImpl implements IReceiveDataLogService { +} diff --git a/src/main/java/com/alihealth/d2d/provtest/utils/XmlStringParser.java b/src/main/java/com/alihealth/d2d/provtest/utils/XmlStringParser.java index 34b9ae3..aab45f3 100644 --- a/src/main/java/com/alihealth/d2d/provtest/utils/XmlStringParser.java +++ b/src/main/java/com/alihealth/d2d/provtest/utils/XmlStringParser.java @@ -1,6 +1,5 @@ package com.alihealth.d2d.provtest.utils; -import com.alihealth.d2d.provtest.domain.DomesticPharmaBaseInfo; import com.alihealth.d2d.provtest.factory.EntityFactory; import com.alihealth.d2d.provtest.factory.EntityFactoryManager; import org.slf4j.Logger; diff --git a/src/main/resources/mapper/ReceiveDataLogMapper.xml b/src/main/resources/mapper/ReceiveDataLogMapper.xml new file mode 100644 index 0000000..efc1728 --- /dev/null +++ b/src/main/resources/mapper/ReceiveDataLogMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/target/classes/com/alihealth/d2d/provtest/controller/ProvTestServerController.class b/target/classes/com/alihealth/d2d/provtest/controller/ProvTestServerController.class index 1ae921d..e7bdf62 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/controller/ProvTestServerController.class and b/target/classes/com/alihealth/d2d/provtest/controller/ProvTestServerController.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.class b/target/classes/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.class index 5287adb..8ec92ef 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.class and b/target/classes/com/alihealth/d2d/provtest/domain/DomesticPharmaBaseInfo.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/domain/DomesticProducer.class b/target/classes/com/alihealth/d2d/provtest/domain/DomesticProducer.class deleted file mode 100644 index 5fe019f..0000000 Binary files a/target/classes/com/alihealth/d2d/provtest/domain/DomesticProducer.class and /dev/null differ diff --git a/target/classes/com/alihealth/d2d/provtest/entity/BaseEntity.class b/target/classes/com/alihealth/d2d/provtest/entity/BaseEntity.class index 01bae4b..7400de3 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/entity/BaseEntity.class and b/target/classes/com/alihealth/d2d/provtest/entity/BaseEntity.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/entity/VTTSBasic.class b/target/classes/com/alihealth/d2d/provtest/entity/VTTSBasic.class index 8bbf188..f484dfc 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/entity/VTTSBasic.class and b/target/classes/com/alihealth/d2d/provtest/entity/VTTSBasic.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.class b/target/classes/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.class index f08df51..a24a0b5 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.class and b/target/classes/com/alihealth/d2d/provtest/factory/DomesticPharmaBaseInfoFactory.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/service/XmlParserService.class b/target/classes/com/alihealth/d2d/provtest/service/XmlParserService.class index 5db6331..e790179 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/service/XmlParserService.class and b/target/classes/com/alihealth/d2d/provtest/service/XmlParserService.class differ diff --git a/target/classes/com/alihealth/d2d/provtest/utils/XmlStringParser.class b/target/classes/com/alihealth/d2d/provtest/utils/XmlStringParser.class index d230a45..1b50ac5 100644 Binary files a/target/classes/com/alihealth/d2d/provtest/utils/XmlStringParser.class and b/target/classes/com/alihealth/d2d/provtest/utils/XmlStringParser.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index c79b389..e6c29a3 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -2,6 +2,7 @@ com\alihealth\d2d\provtest\entity\BaseEntity.class com\alihealth\d2d\provtest\factory\EntityFactoryManager.class com\alihealth\d2d\provtest\utils\XmlStringParser.class com\alihealth\d2d\provtest\service\impl\DomesticPharmaBaseInfoServiceImpl.class +com\alihealth\d2d\provtest\domain\Test.class com\alihealth\d2d\provtest\service\XmlParserService.class com\alihealth\d2d\provtest\mapper\DomesticPharmaBaseInfoMapper.class com\alihealth\d2d\provtest\service\IDomesticPharmaBaseInfoService.class @@ -20,7 +21,6 @@ com\alihealth\d2d\provtest\entity\XmlEntity.class com\alihealth\d2d\provtest\utils\KeyStoreUtil.class com\alihealth\d2d\provtest\enums\BuzStatusEnum.class com\alihealth\d2d\provtest\enums\StatusEnum.class -com\alihealth\d2d\provtest\domain\DomesticProducer.class com\alihealth\d2d\provtest\ProvtestApplication.class com\alihealth\d2d\provtest\entity\VTTSBasic.class com\alihealth\d2d\provtest\ProvTestClient.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 77b3a0d..9d73f30 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -16,6 +16,7 @@ D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\utils\EntityProce D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\service\XmlParserService.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\utils\KeyStoreUtil.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\service\IDomesticPharmaBaseInfoService.java +D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\domain\Test.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\utils\Base64.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\utils\ResponseBuilder.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\domain\DomesticPharmaBaseInfo.java @@ -23,4 +24,3 @@ D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\factory\EntityFac D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\entity\BaseEntity.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\factory\EntityFactory.java D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\entity\VTTSBasic.java -D:\work-tcct\provtest\src\main\java\com\alihealth\d2d\provtest\domain\DomesticProducer.java