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