malz 1 سال پیش
کامیت
da0fc0cb31
32فایلهای تغییر یافته به همراه1529 افزوده شده و 0 حذف شده
  1. 33 0
      .gitignore
  2. 145 0
      pom.xml
  3. 16 0
      src/main/java/com/hgwebservice/HgWebserviceApplication.java
  4. 45 0
      src/main/java/com/hgwebservice/config/BSXmlWsEntryClass.java
  5. 92 0
      src/main/java/com/hgwebservice/config/BSXmlWsEntryClassService.java
  6. 13 0
      src/main/java/com/hgwebservice/config/WebServiceClientConfig.java
  7. 64 0
      src/main/java/com/hgwebservice/controller/OperatorDataController.java
  8. 74 0
      src/main/java/com/hgwebservice/dal/dataobject/data/DispatchDataDO.java
  9. 66 0
      src/main/java/com/hgwebservice/dal/dataobject/data/OperatorDataDO.java
  10. 103 0
      src/main/java/com/hgwebservice/dal/dataobject/data/PatientDataDO.java
  11. 17 0
      src/main/java/com/hgwebservice/dal/mysql/data/DispatchDataMapper.java
  12. 24 0
      src/main/java/com/hgwebservice/dal/mysql/data/OperatorDataMapper.java
  13. 18 0
      src/main/java/com/hgwebservice/dal/mysql/data/PatientDataMapper.java
  14. 17 0
      src/main/java/com/hgwebservice/entity/BaseData.java
  15. 123 0
      src/main/java/com/hgwebservice/entity/histable/MeasureResultData.java
  16. 18 0
      src/main/java/com/hgwebservice/entity/hisview/DispatchData.java
  17. 19 0
      src/main/java/com/hgwebservice/entity/hisview/OperatorData.java
  18. 29 0
      src/main/java/com/hgwebservice/entity/hisview/PatientData.java
  19. 55 0
      src/main/java/com/hgwebservice/entity/server/DeptCareArea.java
  20. 143 0
      src/main/java/com/hgwebservice/entity/server/MeasureData.java
  21. 23 0
      src/main/java/com/hgwebservice/entity/server/SpatientData.java
  22. 12 0
      src/main/java/com/hgwebservice/scheduledTask/ScheduledTask.java
  23. 14 0
      src/main/java/com/hgwebservice/service/HgWebService.java
  24. 159 0
      src/main/java/com/hgwebservice/service/HgWebServiceImpl.java
  25. 5 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCode.java
  26. 33 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCodeImpl.java
  27. 5 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncOperatorData.java
  28. 30 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncOperatorDataImpl.java
  29. 5 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCode.java
  30. 32 0
      src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCodeImpl.java
  31. 23 0
      src/main/resources/application.yml
  32. 74 0
      src/main/resources/mapper/DataMapper.xml

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 145 - 0
pom.xml

@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com</groupId>
+    <artifactId>hg-webservice</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>hg-webservice</name>
+    <description>hg-webservice</description>
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring-boot.version>2.6.13</spring-boot.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <version>2.3.5</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-xjc</artifactId>
+            <version>2.3.5</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.ws</groupId>
+            <artifactId>tools</artifactId>
+            <version>2.3.2-1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.2.11</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.baomidou</groupId>-->
+<!--            <artifactId>dynamic-datasource-spring-boot-starter</artifactId> &lt;!&ndash; 多数据源 &ndash;&gt;-->
+<!--            <version>3.5.0</version>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.20</version>
+        </dependency>
+        <dependency>
+            <groupId>org.dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>2.1.1</version>
+        </dependency>
+        <!--使用简单示例对xml元素进行解析时不需要该依赖,但是使用复杂的selectNodes方法时就一定要该依赖-->
+        <dependency>
+            <groupId>jaxen</groupId>
+            <artifactId>jaxen</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.2</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.16</version>
+        </dependency>
+    </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <configuration>
+                    <mainClass>com.hgwebservice.HgWebserviceApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>repackage</id>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 16 - 0
src/main/java/com/hgwebservice/HgWebserviceApplication.java

@@ -0,0 +1,16 @@
+package com.hgwebservice;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringBootApplication
+@EnableScheduling
+public class HgWebserviceApplication {
+
+    public static void main(String[] args) {
+        System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
+        SpringApplication.run(HgWebserviceApplication.class, args);
+    }
+
+}

+ 45 - 0
src/main/java/com/hgwebservice/config/BSXmlWsEntryClass.java

@@ -0,0 +1,45 @@
+
+package com.hgwebservice.config;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.Action;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.2.9-b130926.1035
+ * Generated source version: 2.2
+ *
+ */
+@WebService(name = "BSXmlWsEntryClass", targetNamespace = "http://ws.access.hai/")
+@SOAPBinding(style = SOAPBinding.Style.RPC)
+public interface BSXmlWsEntryClass {
+
+
+    /**
+     *
+     * @param service
+     * @param parameter
+     * @param pwd
+     * @param urid
+     * @return
+     *     returns java.lang.String
+     */
+    @WebMethod
+    @WebResult(partName = "return")
+    @Action(input = "http://ws.access.hai/BSXmlWsEntryClass/invokeRequest", output = "http://ws.access.hai/BSXmlWsEntryClass/invokeResponse")
+    public String invoke(
+        @WebParam(name = "service", partName = "service")
+        String service,
+        @WebParam(name = "urid", partName = "urid")
+        String urid,
+        @WebParam(name = "pwd", partName = "pwd")
+        String pwd,
+        @WebParam(name = "parameter", partName = "parameter")
+        String parameter);
+
+}

+ 92 - 0
src/main/java/com/hgwebservice/config/BSXmlWsEntryClassService.java

@@ -0,0 +1,92 @@
+
+package com.hgwebservice.config;
+
+import org.springframework.beans.factory.annotation.Configurable;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.*;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.2.9-b130926.1035
+ * Generated source version: 2.2
+ *
+ */
+@Configurable
+@WebServiceClient(name = "BSXmlWsEntryClassService", targetNamespace = "http://ws.access.hai/", wsdlLocation = "http://192.168.200.60:9528/hai/WebServiceEntry?wsdl")
+public class BSXmlWsEntryClassService extends Service
+{
+
+    private final static URL BSXMLWSENTRYCLASSSERVICE_WSDL_LOCATION;
+    private final static WebServiceException BSXMLWSENTRYCLASSSERVICE_EXCEPTION;
+    private final static QName BSXMLWSENTRYCLASSSERVICE_QNAME = new QName("http://ws.access.hai/", "BSXmlWsEntryClassService");
+
+    static {
+        URL url = null;
+        WebServiceException e = null;
+        try {
+            url = new URL("http://192.168.200.60:9528/hai/WebServiceEntry?wsdl");
+        } catch (MalformedURLException ex) {
+            e = new WebServiceException(ex);
+        }
+        BSXMLWSENTRYCLASSSERVICE_WSDL_LOCATION = url;
+        BSXMLWSENTRYCLASSSERVICE_EXCEPTION = e;
+    }
+
+    public BSXmlWsEntryClassService() {
+        super(__getWsdlLocation(), BSXMLWSENTRYCLASSSERVICE_QNAME);
+    }
+
+    public BSXmlWsEntryClassService(WebServiceFeature... features) {
+        super(__getWsdlLocation(), BSXMLWSENTRYCLASSSERVICE_QNAME, features);
+    }
+
+    public BSXmlWsEntryClassService(URL wsdlLocation) {
+        super(wsdlLocation, BSXMLWSENTRYCLASSSERVICE_QNAME);
+    }
+
+    public BSXmlWsEntryClassService(URL wsdlLocation, WebServiceFeature... features) {
+        super(wsdlLocation, BSXMLWSENTRYCLASSSERVICE_QNAME, features);
+    }
+
+    public BSXmlWsEntryClassService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BSXmlWsEntryClassService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
+        super(wsdlLocation, serviceName, features);
+    }
+
+    /**
+     *
+     * @return
+     *     returns BSXmlWsEntryClass
+     */
+    @WebEndpoint(name = "BSXmlWsEntryClassPort")
+    public BSXmlWsEntryClass getBSXmlWsEntryClassPort() {
+        return super.getPort(new QName("http://ws.access.hai/", "BSXmlWsEntryClassPort"), BSXmlWsEntryClass.class);
+    }
+
+    /**
+     *
+     * @param features
+     *     A list of {@link WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
+     * @return
+     *     returns BSXmlWsEntryClass
+     */
+    @WebEndpoint(name = "BSXmlWsEntryClassPort")
+    public BSXmlWsEntryClass getBSXmlWsEntryClassPort(WebServiceFeature... features) {
+        return super.getPort(new QName("http://ws.access.hai/", "BSXmlWsEntryClassPort"), BSXmlWsEntryClass.class, features);
+    }
+
+    private static URL __getWsdlLocation() {
+        if (BSXMLWSENTRYCLASSSERVICE_EXCEPTION!= null) {
+            throw BSXMLWSENTRYCLASSSERVICE_EXCEPTION;
+        }
+        return BSXMLWSENTRYCLASSSERVICE_WSDL_LOCATION;
+    }
+
+}

+ 13 - 0
src/main/java/com/hgwebservice/config/WebServiceClientConfig.java

@@ -0,0 +1,13 @@
+package com.hgwebservice.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class WebServiceClientConfig {
+
+    @Bean
+    public BSXmlWsEntryClassService bsXmlWsEntryClassService() {
+        return new BSXmlWsEntryClassService();
+    }
+}

+ 64 - 0
src/main/java/com/hgwebservice/controller/OperatorDataController.java

@@ -0,0 +1,64 @@
+package com.hgwebservice.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hgwebservice.config.BSXmlWsEntryClass;
+import com.hgwebservice.config.BSXmlWsEntryClassService;
+import com.hgwebservice.dal.dataobject.data.PatientDataDO;
+import com.hgwebservice.dal.mysql.data.PatientDataMapper;
+import com.hgwebservice.service.syncCdm2.SyncDispatchDataByDeptCode;
+import com.hgwebservice.service.syncCdm2.SyncOperatorData;
+import com.hgwebservice.service.syncCdm2.SyncPatientDataByDeptCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.xml.ws.WebServiceException;
+import java.util.List;
+
+@RestController
+@RequestMapping("/test")
+public class OperatorDataController {
+    @Autowired
+    private BSXmlWsEntryClassService service;
+    @Autowired
+    private PatientDataMapper patientDataMapper;
+    @Autowired
+    private SyncDispatchDataByDeptCode syncDispatchDataByDeptCode;
+    @Autowired
+    private SyncOperatorData syncOperatorData;
+    @Autowired
+    private SyncPatientDataByDeptCode syncPatientDataByDeptCode;
+
+    @PostMapping("/service")
+    public String service() {
+        System.out.println(2222);
+        try {
+            // 获取远程Web服务的代理对象
+            BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
+            // 调用远程Web服务的方法
+            String parameter="<![CDATA[\n        <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_operator_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n</BSXml>]]>\n";
+            String result = port.invoke("operator_data_xty", "HGXTY","HGXTY",parameter);
+            return result;
+        } catch (WebServiceException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    @PostMapping("/sync")
+    public String sync() {
+        LambdaQueryWrapper<PatientDataDO> patientDataDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        patientDataDOLambdaQueryWrapper.last("limit 10");
+        List<PatientDataDO> patientDataDOS = patientDataMapper.selectList(patientDataDOLambdaQueryWrapper);
+        return patientDataDOS.toString();
+    }
+
+    @PostMapping("/syncCdm2")
+    public void syncCdm2() {
+        syncOperatorData.saveCdm2();
+        syncPatientDataByDeptCode.saveCdm2();
+        syncDispatchDataByDeptCode.saveCdm2();
+    }
+}

+ 74 - 0
src/main/java/com/hgwebservice/dal/dataobject/data/DispatchDataDO.java

@@ -0,0 +1,74 @@
+package com.hgwebservice.dal.dataobject.data;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * 待执行医嘱 DO
+ *
+ * @author super_admin
+ */
+@TableName("dispatch_data")
+@KeySequence("dispatch_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DispatchDataDO {
+
+    /**
+     * 主键自增
+     */
+    @TableId
+    private Integer id;
+    /**
+     * 医嘱编号
+     */
+    private String dispatchNo;
+    /**
+     * 医嘱类型
+     */
+    private String type;
+    /**
+     * 医嘱详细内容
+     */
+    private String message;
+    /**
+     * 频率
+     */
+    private String frequency;
+    /**
+     * 所属科室
+     */
+    private String deptCode;
+    /**
+     * 病人唯一码 
+     */
+    private String patientNo;
+    /**
+     * 住院号
+     */
+    private String hospitalNo;
+    /**
+     *  血糖或胰岛素医嘱(1,	血糖医嘱; 2, 胰岛素	医嘱)
+     */
+    private String dispatchType;
+
+    private Date createTime;
+
+    private Date updateTime;
+    /**
+     * 医院code
+     */
+    private String hospitalCode;
+    /**
+     * 医院id
+     */
+    private Integer hospitalId;
+
+}

+ 66 - 0
src/main/java/com/hgwebservice/dal/dataobject/data/OperatorDataDO.java

@@ -0,0 +1,66 @@
+package com.hgwebservice.dal.dataobject.data;
+
+import lombok.*;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+/**
+ * 操作员 DO
+ *
+ * @author super_admin
+ */
+@TableName("operator_data")
+@KeySequence("operator_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OperatorDataDO {
+
+    /**
+     * 注解自增
+     */
+    @TableId
+    private Integer id;
+    /**
+     * 护工工号
+     */
+    private String acc;
+    /**
+     * 姓名
+     */
+    private String accName;
+    /**
+     * 是否有效(有效/无效,0/1)
+     */
+    private String isEffective;
+    /**
+     * 病区代码
+     */
+    private String wardCode;
+    /**
+     * 病区名称
+     */
+    private String wardName;
+    /**
+     * 科室代码
+     */
+    private String deptCode;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    private Date createTime;
+
+    private Date updateTime;
+    /**
+     * 医院code
+     */
+    private String hospitalCode;
+    /**
+     * 医院id
+     */
+    private Integer hospitalId;
+
+}

+ 103 - 0
src/main/java/com/hgwebservice/dal/dataobject/data/PatientDataDO.java

@@ -0,0 +1,103 @@
+package com.hgwebservice.dal.dataobject.data;
+
+import lombok.*;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+
+/**
+ * 住院患者信息 DO
+ *
+ * @author super_admin
+ */
+@TableName("patient_data")
+@KeySequence("patient_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PatientDataDO {
+
+    /**
+     * 主键id
+     */
+    @TableId
+    private Integer id;
+    /**
+     * 必填 (每个病人的唯一标记,不可重复)
+     */
+    private String patientNo;
+    /**
+     * 住院号
+     */
+    private String hospitalNo;
+    /**
+     * 腕带号
+     */
+    private String wristbandNo;
+    /**
+     * 住院次数
+     */
+    private Integer hospitalCount;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 性别
+     */
+    private String gender;
+    /**
+     * 出生日期
+     */
+    private String birthday;
+    /**
+     * 年龄
+     */
+    private Integer age;
+    /**
+     * 身份证号
+     */
+    private String identifyNo;
+    /**
+     * 床号
+     */
+    private String bedNo;
+    /**
+     * 病区代码
+     */
+    private String wardCode;
+    /**
+     * 病区名称
+     */
+    private String wardName;
+    /**
+     * 科室代码
+     */
+    private String deptCode;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+    /**
+     * 管床医生姓名
+     */
+    private String doctorName;
+    /**
+     * 入院日期
+     */
+    private Date hospitalDate;
+
+    private Date createTime;
+
+    private Date updateTime;
+    /**
+     * 医疗机构代码
+     */
+    private String hospitalCode;
+    /**
+     * 医院id
+     */
+    private Integer hospitalId;
+
+}

+ 17 - 0
src/main/java/com/hgwebservice/dal/mysql/data/DispatchDataMapper.java

@@ -0,0 +1,17 @@
+package com.hgwebservice.dal.mysql.data;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hgwebservice.dal.dataobject.data.DispatchDataDO;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 待执行医嘱 Mapper
+ *
+ * @author super_admin
+ */
+@Mapper
+public interface DispatchDataMapper extends BaseMapper<DispatchDataDO> {
+
+}

+ 24 - 0
src/main/java/com/hgwebservice/dal/mysql/data/OperatorDataMapper.java

@@ -0,0 +1,24 @@
+package com.hgwebservice.dal.mysql.data;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hgwebservice.dal.dataobject.data.DispatchDataDO;
+import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
+import com.hgwebservice.dal.dataobject.data.PatientDataDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 操作员 Mapper
+ *
+ * @author super_admin
+ */
+@Mapper
+public interface OperatorDataMapper extends BaseMapper<OperatorDataDO> {
+
+    int replaceOperatorData(@Param("list") List<OperatorDataDO> list,@Param("hospitalId")Integer hospitalId);
+    int replacePatientData(@Param("list") List<PatientDataDO> list,@Param("hospitalId")Integer hospitalId);
+    int replaceDispatchData(@Param("list") List<DispatchDataDO> list,@Param("hospitalId")Integer hospitalId);
+}

+ 18 - 0
src/main/java/com/hgwebservice/dal/mysql/data/PatientDataMapper.java

@@ -0,0 +1,18 @@
+package com.hgwebservice.dal.mysql.data;
+
+import java.util.*;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hgwebservice.dal.dataobject.data.PatientDataDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 住院患者信息 Mapper
+ *
+ * @author super_admin
+ */
+@Mapper
+public interface PatientDataMapper extends BaseMapper<PatientDataDO> {
+
+
+}

+ 17 - 0
src/main/java/com/hgwebservice/entity/BaseData.java

@@ -0,0 +1,17 @@
+package com.hgwebservice.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class BaseData {
+  private Long hospitalID;
+  
+  private Long careID;
+  
+  private Date createTime;
+  
+  private Date updateTime;
+  
+  private String mark;
+}

+ 123 - 0
src/main/java/com/hgwebservice/entity/histable/MeasureResultData.java

@@ -0,0 +1,123 @@
+package com.hgwebservice.entity.histable;
+
+public class MeasureResultData {
+  private String patientNO;
+  
+  private String name;
+  
+  private String measureDate;
+  
+  private String measureValue;
+  
+  private String periodCode;
+  
+  private String note;
+  
+  private String acc;
+  
+  private String accName;
+  
+  private String meterSn;
+  
+  private String stripLot;
+  
+  private String dispatchNO;
+  
+  private long testID;
+  
+  public String getPatientNO() {
+    return this.patientNO;
+  }
+  
+  public void setPatientNO(String patientNO) {
+    this.patientNO = patientNO;
+  }
+  
+  public String getName() {
+    return this.name;
+  }
+  
+  public void setName(String name) {
+    this.name = name;
+  }
+  
+  public String getMeasureDate() {
+    return this.measureDate;
+  }
+  
+  public void setMeasureDate(String measureDate) {
+    this.measureDate = measureDate;
+  }
+  
+  public String getMeasureValue() {
+    return this.measureValue;
+  }
+  
+  public void setMeasureValue(String measureValue) {
+    this.measureValue = measureValue;
+  }
+  
+  public String getPeriodCode() {
+    return this.periodCode;
+  }
+  
+  public void setPeriodCode(String periodCode) {
+    this.periodCode = periodCode;
+  }
+  
+  public String getNote() {
+    return this.note;
+  }
+  
+  public void setNote(String note) {
+    this.note = note;
+  }
+  
+  public String getAcc() {
+    return this.acc;
+  }
+  
+  public void setAcc(String acc) {
+    this.acc = acc;
+  }
+  
+  public String getAccName() {
+    return this.accName;
+  }
+  
+  public void setAccName(String accName) {
+    this.accName = accName;
+  }
+  
+  public String getMeterSn() {
+    return this.meterSn;
+  }
+  
+  public void setMeterSn(String meterSn) {
+    this.meterSn = meterSn;
+  }
+  
+  public String getStripLot() {
+    return this.stripLot;
+  }
+  
+  public void setStripLot(String stripLot) {
+    this.stripLot = stripLot;
+  }
+  
+  public String getDispatchNO() {
+    return this.dispatchNO;
+  }
+  
+  public void setDispatchNO(String dispatchNO) {
+    this.dispatchNO = dispatchNO;
+  }
+  
+  public long getTestID() {
+    return this.testID;
+  }
+  
+  public void setTestID(long testID) {
+    this.testID = testID;
+  }
+}

+ 18 - 0
src/main/java/com/hgwebservice/entity/hisview/DispatchData.java

@@ -0,0 +1,18 @@
+package com.hgwebservice.entity.hisview;
+
+import com.hgwebservice.entity.BaseData;
+import lombok.Data;
+
+@Data
+public class DispatchData extends BaseData {
+  private String patientNO;
+  
+  private String dispatchNo;
+
+  private String message;
+  private String frequency;
+
+  private String testingPlanDate;
+  
+  private int count;
+}

+ 19 - 0
src/main/java/com/hgwebservice/entity/hisview/OperatorData.java

@@ -0,0 +1,19 @@
+package com.hgwebservice.entity.hisview;
+
+import com.hgwebservice.entity.BaseData;
+import lombok.Data;
+
+@Data
+public class OperatorData extends BaseData {
+  private Long operatorID;
+  
+  private Long operatorUID;
+  
+  private String acc;
+  
+  private String accName;
+  
+  private String isEffective;
+  
+  private String blackList;
+}

+ 29 - 0
src/main/java/com/hgwebservice/entity/hisview/PatientData.java

@@ -0,0 +1,29 @@
+package com.hgwebservice.entity.hisview;
+
+import com.hgwebservice.entity.BaseData;
+import lombok.Data;
+
+@Data
+public class PatientData extends BaseData {
+  private String patientNO;
+  
+  private String hospitalNO;
+  
+  private String wristbandNO;
+  
+  private String name;
+  
+  private String gender;
+  
+  private String birthday;
+  
+  private String age;
+  
+  private String identificationNo;
+  
+  private String bedNO;
+  
+  private String hospitalDate;
+  
+  private String doctorName;
+}

+ 55 - 0
src/main/java/com/hgwebservice/entity/server/DeptCareArea.java

@@ -0,0 +1,55 @@
+package com.hgwebservice.entity.server;
+
+import com.hgwebservice.entity.BaseData;
+
+public class DeptCareArea extends BaseData {
+  private String deptCode;
+  
+  private String deptName;
+  
+  private String emergencyPatient;
+  
+  private String dispatchSyncEnable;
+  
+  private String deleteTag;
+  
+  public String getDeptCode() {
+    return this.deptCode;
+  }
+  
+  public void setDeptCode(String deptCode) {
+    this.deptCode = deptCode;
+  }
+  
+  public String getDeptName() {
+    return this.deptName;
+  }
+  
+  public void setDeptName(String deptName) {
+    this.deptName = deptName;
+  }
+  
+  public String getEmergencyPatient() {
+    return this.emergencyPatient;
+  }
+  
+  public void setEmergencyPatient(String emergencyPatient) {
+    this.emergencyPatient = emergencyPatient;
+  }
+  
+  public String getDispatchSyncEnable() {
+    return this.dispatchSyncEnable;
+  }
+  
+  public void setDispatchSyncEnable(String dispatchSyncEnable) {
+    this.dispatchSyncEnable = dispatchSyncEnable;
+  }
+  
+  public String getDeleteTag() {
+    return this.deleteTag;
+  }
+  
+  public void setDeleteTag(String deleteTag) {
+    this.deleteTag = deleteTag;
+  }
+}

+ 143 - 0
src/main/java/com/hgwebservice/entity/server/MeasureData.java

@@ -0,0 +1,143 @@
+package com.hgwebservice.entity.server;
+
+public class MeasureData {
+  private String patientNO;
+  
+  private String name;
+  
+  private String measureDate;
+  
+  private String measureValue;
+  
+  private String periodCode;
+  
+  private String note;
+  
+  private String acc;
+  
+  private String accName;
+  
+  private String meterSn;
+  
+  private String stripLot;
+  
+  private String dispatchNO;
+  
+  private long testID;
+  
+  private String mark;
+  
+  private long measureID;
+  
+  public String getPatientNO() {
+    return this.patientNO;
+  }
+  
+  public void setPatientNO(String patientNO) {
+    this.patientNO = patientNO;
+  }
+  
+  public String getName() {
+    return this.name;
+  }
+  
+  public void setName(String name) {
+    this.name = name;
+  }
+  
+  public String getMeasureDate() {
+    return this.measureDate;
+  }
+  
+  public void setMeasureDate(String measureDate) {
+    this.measureDate = measureDate;
+  }
+  
+  public String getMeasureValue() {
+    return this.measureValue;
+  }
+  
+  public void setMeasureValue(String measureValue) {
+    this.measureValue = measureValue;
+  }
+  
+  public String getPeriodCode() {
+    return this.periodCode;
+  }
+  
+  public void setPeriodCode(String periodCode) {
+    this.periodCode = periodCode;
+  }
+  
+  public String getNote() {
+    return this.note;
+  }
+  
+  public void setNote(String note) {
+    this.note = note;
+  }
+  
+  public String getAcc() {
+    return this.acc;
+  }
+  
+  public void setAcc(String acc) {
+    this.acc = acc;
+  }
+  
+  public String getAccName() {
+    return this.accName;
+  }
+  
+  public void setAccName(String accName) {
+    this.accName = accName;
+  }
+  
+  public String getMeterSn() {
+    return this.meterSn;
+  }
+  
+  public void setMeterSn(String meterSn) {
+    this.meterSn = meterSn;
+  }
+  
+  public String getStripLot() {
+    return this.stripLot;
+  }
+  
+  public void setStripLot(String stripLot) {
+    this.stripLot = stripLot;
+  }
+  
+  public String getDispatchNO() {
+    return this.dispatchNO;
+  }
+  
+  public void setDispatchNO(String dispatchNO) {
+    this.dispatchNO = dispatchNO;
+  }
+  
+  public long getTestID() {
+    return this.testID;
+  }
+  
+  public void setTestID(long testID) {
+    this.testID = testID;
+  }
+  
+  public String getMark() {
+    return this.mark;
+  }
+  
+  public void setMark(String mark) {
+    this.mark = mark;
+  }
+  
+  public long getMeasureID() {
+    return this.measureID;
+  }
+  
+  public void setMeasureID(long measureID) {
+    this.measureID = measureID;
+  }
+}

+ 23 - 0
src/main/java/com/hgwebservice/entity/server/SpatientData.java

@@ -0,0 +1,23 @@
+package com.hgwebservice.entity.server;
+
+public class SpatientData {
+  private String patientNO;
+  
+  private String cardId;
+  
+  public String getPatientNO() {
+    return this.patientNO;
+  }
+  
+  public void setPatientNO(String patientNO) {
+    this.patientNO = patientNO;
+  }
+  
+  public String getCardId() {
+    return this.cardId;
+  }
+  
+  public void setCardId(String cardId) {
+    this.cardId = cardId;
+  }
+}

+ 12 - 0
src/main/java/com/hgwebservice/scheduledTask/ScheduledTask.java

@@ -0,0 +1,12 @@
+package com.hgwebservice.scheduledTask;
+
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ScheduledTask {
+//    @Scheduled(cron ="* 0/1 * * * ?")
+//    public void sayHello() {
+//        System.out.println("hello");
+//    }
+}

+ 14 - 0
src/main/java/com/hgwebservice/service/HgWebService.java

@@ -0,0 +1,14 @@
+package com.hgwebservice.service;
+
+import com.hgwebservice.entity.hisview.DispatchData;
+import com.hgwebservice.entity.hisview.OperatorData;
+import com.hgwebservice.entity.hisview.PatientData;
+
+import java.util.List;
+
+public interface HgWebService {
+
+	List<OperatorData> getOperatorData();
+	List<PatientData> getPatientDataByDeptCode(String deptcode);
+	List<DispatchData> getDispatchDataByDeptCode(String deptcode);
+}

+ 159 - 0
src/main/java/com/hgwebservice/service/HgWebServiceImpl.java

@@ -0,0 +1,159 @@
+package com.hgwebservice.service;
+
+import com.hgwebservice.config.BSXmlWsEntryClass;
+import com.hgwebservice.config.BSXmlWsEntryClassService;
+import com.hgwebservice.entity.hisview.DispatchData;
+import com.hgwebservice.entity.hisview.OperatorData;
+import com.hgwebservice.entity.hisview.PatientData;
+import lombok.extern.slf4j.Slf4j;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+@Service
+@Slf4j
+public class HgWebServiceImpl implements HgWebService {
+    private static SimpleDateFormat SDF_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    @Autowired
+    private BSXmlWsEntryClassService service;
+
+    @Override
+    public List<OperatorData> getOperatorData() {
+        List<OperatorData> alloperatorDataList = new ArrayList<>();
+        String paramer = "<![CDATA[\n        <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_operator_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n</BSXml>]]>\n";
+        try {
+            BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
+            String operatorstr = port.invoke("operator_data_xty", "HGXTY","HGXTY",paramer);
+            operatorstr = operatorstr.replaceAll("&lt;", "<");
+            operatorstr = operatorstr.replaceAll("&gt;", ">");
+            if (operatorstr.contains("<Detail>查询成功")) {
+                operatorstr = operatorstr.split("</MsgHeader>")[1];
+                operatorstr = operatorstr.split("</BSXml>")[0];
+                operatorstr = operatorstr.replaceAll(" ", "");
+            } else {
+                log.info("get getOperatorDataList Fail =======");
+                return alloperatorDataList;
+            }
+            Document doc = DocumentHelper.parseText(operatorstr);
+            Element root = doc.getRootElement();
+            List<Element> OperatorList = root.elements();
+            for (Element operator : OperatorList) {
+                OperatorData operatorData = new OperatorData();
+                operatorData.setAcc(operator.element("ACC").getText());
+                operatorData.setAccName(operator.element("ACCNAME").getText());
+                operatorData.setIsEffective(operator.element("ISEFFECTIVE").getText());
+                alloperatorDataList.add(operatorData);
+            }
+            log.info("get getOperatorDataList success =======total:"+alloperatorDataList.size());
+            return alloperatorDataList;
+        } catch (Exception e) {
+            log.error("Get operator info fail ", e);
+            return null;
+        }
+    }
+
+    @Override
+    public List<PatientData> getPatientDataByDeptCode(String deptcode) {
+        List<PatientData> patientDataList = new ArrayList<>();
+        String paramer = "<![CDATA[\n        <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_patient_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n<deptcode>" + deptcode + "</deptcode>\n</BSXml>]]>\n";
+        try {
+            BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
+            String patientstr = port.invoke("patient_data_xty", "HGXTY","HGXTY",paramer);
+            patientstr = patientstr.replaceAll("&lt;", "<");
+            patientstr = patientstr.replaceAll("&gt;", ">");
+            if (patientstr.contains("<Detail>查询成功")) {
+                patientstr = patientstr.split("</MsgHeader>")[1];
+                patientstr = patientstr.split("</BSXml>")[0];
+            } else {
+                log.info("get PatientUrl Fail =======");
+                return patientDataList;
+            }
+            Document doc = DocumentHelper.parseText(patientstr);
+            Element root = doc.getRootElement();
+            List<Element> patientList = root.elements();
+            for (Element element : patientList) {
+                PatientData patientData = new PatientData();
+                patientData.setPatientNO(element.element("PATIENT_NO").getText());
+                patientData.setHospitalNO(element.element("HOSPITAL_NO").getText());
+                patientData.setWristbandNO(element.element("WRISTBAND_NO").getText());
+                patientData.setName(element.element("NAME").getText());
+                String sex = element.element("GENDER").getText();
+                if (!sex.equals("男")) {
+                    sex = "女";
+                }
+                patientData.setGender(sex);
+                String birthday = element.element("BIRTHDAY").getText();
+                if (birthday.length() < 10){
+                    birthday = birthday + " 00:00:00";
+                }
+                patientData.setBirthday(birthday);
+                patientData.setAge(element.element("AGE").getText());
+                patientData.setIdentificationNo(element.element("IDENTIFY_NO").getText());
+                patientData.setBedNO(element.element("BED_NO").getText());
+                String inhosDate = element.element("HOSPITAL_DATE").getText();
+                if (inhosDate.length() < 12) {
+                    Date date = new Date();
+                    inhosDate = SDF_TIME.format(date);
+                } else if (inhosDate.length() < 19) {
+                    Date date1 = SDF_TIME.parse(inhosDate);
+                    inhosDate = SDF_TIME.format(date1);
+                }
+                patientData.setHospitalDate(inhosDate);
+                patientData.setDoctorName(element.element("DOCTOR_NAME").getText());
+                patientDataList.add(patientData);
+            }
+            log.info(deptcode + "getPatinentList==========>" + patientDataList.size());
+            return patientDataList;
+        } catch (Exception e) {
+            log.error("Get Patientall Fail !!! ", e);
+            e.printStackTrace();
+            return null;
+        }
+
+    }
+
+    @Override
+    public List<DispatchData> getDispatchDataByDeptCode(String deptcode) {
+        List<DispatchData> dispatchDataList = new ArrayList<>();
+        String paramer = "<![CDATA[\n        <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_dispatch_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n<dept_Code>" + deptcode + "</dept_Code>\n</BSXml>]]>\n";
+        try {
+            BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
+            String dispatchstr = port.invoke("dispatch_data_xty", "HGXTY","HGXTY",paramer);
+            dispatchstr = dispatchstr.replaceAll("&lt;", "<");
+            dispatchstr = dispatchstr.replaceAll("&gt;", ">");
+            if (dispatchstr.contains("<Detail>查询成功")) {
+                dispatchstr = dispatchstr.split("</MsgHeader>")[1];
+                dispatchstr = dispatchstr.split("</BSXml>")[0];
+                dispatchstr = dispatchstr.replaceAll(" ", "");
+            } else {
+                log.info("get Dispatch Fail =======");
+                return dispatchDataList;
+            }
+            Document doc = DocumentHelper.parseText(dispatchstr);
+            Element root = doc.getRootElement();
+            List<Element> dispatchList = root.elements();
+            for (Element element : dispatchList) {
+                DispatchData dispatchData = new DispatchData();
+                dispatchData.setPatientNO(element.element("PATIENT_NO").getText());
+                dispatchData.setDispatchNo(element.element("DISPATCH_NO").getText());
+                dispatchData.setMessage(element.element("MESSAGE").getText());
+                dispatchData.setFrequency(element.element("FREQUENCY").getText());
+
+                dispatchDataList.add(dispatchData);
+            }
+            log.info(deptcode + "getdispatchDataList==========>" + dispatchDataList.size());
+            return dispatchDataList;
+        } catch (Exception e) {
+            log.error("Get Dispatch Fail !!! ", e);
+            e.printStackTrace();
+            return null;
+        }
+    }
+}

+ 5 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCode.java

@@ -0,0 +1,5 @@
+package com.hgwebservice.service.syncCdm2;
+
+public interface SyncDispatchDataByDeptCode {
+    int saveCdm2();
+}

+ 33 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCodeImpl.java

@@ -0,0 +1,33 @@
+package com.hgwebservice.service.syncCdm2;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.hgwebservice.dal.dataobject.data.DispatchDataDO;
+import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
+import com.hgwebservice.dal.mysql.data.DispatchDataMapper;
+import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
+import com.hgwebservice.entity.hisview.DispatchData;
+import com.hgwebservice.entity.hisview.OperatorData;
+import com.hgwebservice.service.HgWebService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SyncDispatchDataByDeptCodeImpl implements SyncDispatchDataByDeptCode {
+    @Autowired
+    OperatorDataMapper operatorDataMapper;
+    @Autowired
+    HgWebService hgWebService;
+    @Value("${hospital_id}")
+    private Integer hospitalId;
+    @Override
+    public int saveCdm2() {
+        List<DispatchData> dispatchData = hgWebService.getDispatchDataByDeptCode(null);
+        List<DispatchDataDO> dispatchDataDOS = BeanUtil.copyToList(dispatchData, DispatchDataDO.class);
+        operatorDataMapper.replaceDispatchData(dispatchDataDOS,hospitalId);
+        return dispatchDataDOS.size();
+    }
+}

+ 5 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncOperatorData.java

@@ -0,0 +1,5 @@
+package com.hgwebservice.service.syncCdm2;
+
+public interface SyncOperatorData {
+    int saveCdm2();
+}

+ 30 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncOperatorDataImpl.java

@@ -0,0 +1,30 @@
+package com.hgwebservice.service.syncCdm2;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
+import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
+import com.hgwebservice.entity.hisview.OperatorData;
+import com.hgwebservice.service.HgWebService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SyncOperatorDataImpl implements SyncOperatorData {
+    @Autowired
+    OperatorDataMapper operatorDataMapper;
+    @Autowired
+    HgWebService hgWebService;
+    @Value("${hospital_id}")
+    private Integer hospitalId;
+    @Override
+    public int saveCdm2() {
+        List<OperatorData> operatorData = hgWebService.getOperatorData();
+        List<OperatorDataDO> operatorDataDOS = BeanUtil.copyToList(operatorData, OperatorDataDO.class);
+        operatorDataMapper.replaceOperatorData(operatorDataDOS,hospitalId);
+        return operatorDataDOS.size();
+    }
+}

+ 5 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCode.java

@@ -0,0 +1,5 @@
+package com.hgwebservice.service.syncCdm2;
+
+public interface SyncPatientDataByDeptCode {
+    int saveCdm2();
+}

+ 32 - 0
src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCodeImpl.java

@@ -0,0 +1,32 @@
+package com.hgwebservice.service.syncCdm2;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
+import com.hgwebservice.dal.dataobject.data.PatientDataDO;
+import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
+import com.hgwebservice.dal.mysql.data.PatientDataMapper;
+import com.hgwebservice.entity.hisview.OperatorData;
+import com.hgwebservice.entity.hisview.PatientData;
+import com.hgwebservice.service.HgWebService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SyncPatientDataByDeptCodeImpl implements SyncPatientDataByDeptCode {
+    @Autowired
+    OperatorDataMapper operatorDataMapper;
+    @Autowired
+    HgWebService hgWebService;
+    @Value("${hospital_id}")
+    private Integer hospitalId;
+    @Override
+    public int saveCdm2() {
+        List<PatientData> patientData = hgWebService.getPatientDataByDeptCode(null);
+        List<PatientDataDO> patientDataDOS = BeanUtil.copyToList(patientData, PatientDataDO.class);
+        operatorDataMapper.replacePatientData(patientDataDOS,hospitalId);
+        return patientDataDOS.size();
+    }
+}

+ 23 - 0
src/main/resources/application.yml

@@ -0,0 +1,23 @@
+server:
+  port: 8090
+
+db:
+  url: 47.92.147.208
+  username: root
+  password: vD5LPzoXORAF9gE3
+
+hospital_id: 12713
+
+spring:
+  application:
+    name: hg-webService
+
+  datasource:
+    url: jdbc:mysql://${db.url}:3306/jyhis?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+    username: ${db.username}
+    password: ${db.password}
+
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。
+

+ 74 - 0
src/main/resources/mapper/DataMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hgwebservice.dal.mysql.data.OperatorDataMapper">
+
+
+    <insert id="replaceOperatorData">
+        replace into operator_data(acc,acc_name,is_effective,ward_code,ward_name,dept_code,dept_name,create_time,update_time,hospital_id)
+        values
+        <foreach collection="list" item="item" index="index"
+                 separator=",">
+            (
+            #{item.acc},
+            #{item.accName},
+            #{item.isEffective},
+            #{item.wardCode},
+            #{item.wardName},
+            #{item.deptCode},
+            #{item.deptName},
+            now(),
+            now(),
+            #{hospitalId}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="replacePatientData">
+        replace into operator_data(patient_no,hospital_no,wristband_no,hospital_count,name,gender,birthday,age,identify_no,bed_no,bed_no,ward_code,ward_name,dept_code,dept_name,doctor_name,hospital_date,create_time,update_time,hospital_id)
+        values
+        <foreach collection="list" item="item" index="index"
+                 separator=",">
+            (
+            #{item.patientNo},
+            #{item.hospitalNo},
+            #{item.wristbandNo},
+            #{item.hospitalCount},
+            #{item.name},
+            #{item.gender},
+            #{item.birthday},
+            #{item.age},
+            #{item.identifyNo},
+            #{item.bedNo},
+            #{item.wardCode},
+            #{item.wardName},
+            #{item.deptCode},
+            #{item.deptName},
+            #{item.doctorName},
+            #{item.hospitalDate},
+            now(),
+            now(),
+            #{hospitalId}
+            )
+        </foreach>
+    </insert>
+    <insert id="replaceDispatchData">
+        replace into operator_data(dispatch_no,type,message,frequency,dept_code,patient_no,hospital_no,dispatch_type,create_time,update_time,hospital_id)
+        values
+        <foreach collection="list" item="item" index="index"
+                 separator=",">
+            (
+            #{item.dispatchNo},
+            #{item.type},
+            #{item.message},
+            #{item.frequency},
+            #{item.deptCode},
+            #{item.patientNo},
+            #{item.hospitalNo},
+            #{item.dispatchType},
+            now(),
+            now(),
+            #{hospitalId}
+            )
+        </foreach>
+    </insert>
+</mapper>