拆分按需采集 新增:采集接口
commit
c33e938d79
@ -0,0 +1 @@
|
||||
lombok.var.flagUsage = ALLOW
|
@ -0,0 +1,132 @@
|
||||
<?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>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.5.6</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.docus</groupId>
|
||||
<artifactId>demo</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>docus-active-query-service</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>2.1.1</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/jaxen/jaxen -->
|
||||
<dependency>
|
||||
<groupId>jaxen</groupId>
|
||||
<artifactId>jaxen</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.75</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.15</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.16.14</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.spring4all</groupId>
|
||||
<artifactId>swagger-spring-boot-starter</artifactId>
|
||||
<version>1.9.0.RELEASE</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpcore</artifactId>
|
||||
<version>4.4.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpmime</artifactId>
|
||||
<version>4.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.axis</groupId>
|
||||
<artifactId>axis</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.axis/axis-jaxrpc -->
|
||||
<dependency>
|
||||
<groupId>org.apache.axis</groupId>
|
||||
<artifactId>axis-jaxrpc</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery -->
|
||||
<dependency>
|
||||
<groupId>commons-discovery</groupId>
|
||||
<artifactId>commons-discovery</artifactId>
|
||||
<version>0.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
|
||||
<dependency>
|
||||
<groupId>wsdl4j</groupId>
|
||||
<artifactId>wsdl4j</artifactId>
|
||||
<version>1.6.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,14 @@
|
||||
package com.docus.bgts;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class DemoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
|
||||
SpringApplication.run(DemoApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.docus.bgts.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.experimental.var;
|
||||
import org.apache.ibatis.logging.nologging.NoLoggingImpl;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.Objects;
|
||||
|
||||
@Configuration
|
||||
@RequiredArgsConstructor
|
||||
@EnableTransactionManagement
|
||||
@MapperScan("com.docus.bgts.mapper")
|
||||
@ConditionalOnClass(value = {PaginationInterceptor.class})
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
|
||||
private final MybatisPlusProperties mybatisPlusProperties;
|
||||
@Bean
|
||||
public PaginationInterceptor paginationInterceptor() {
|
||||
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
|
||||
return paginationInterceptor;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void initMybatisConfig(){
|
||||
mybatisPlusProperties.setMapperLocations(new String[]{"classpath*:/mapper/*Mapper.xml"});
|
||||
mybatisPlusProperties.setTypeAliasesPackage("com.docus.bgts.entity");
|
||||
|
||||
MybatisConfiguration configuration = mybatisPlusProperties.getConfiguration();
|
||||
if(Objects.isNull(configuration)){
|
||||
configuration=new MybatisConfiguration();
|
||||
}
|
||||
configuration.setMapUnderscoreToCamelCase(true);
|
||||
configuration.setCacheEnabled(true);
|
||||
configuration.setLogImpl(NoLoggingImpl.class);
|
||||
mybatisPlusProperties.setConfiguration(configuration);
|
||||
|
||||
var globalConfig = mybatisPlusProperties.getGlobalConfig();
|
||||
if(Objects.isNull(globalConfig)){
|
||||
globalConfig=new GlobalConfig();
|
||||
}
|
||||
GlobalConfig.DbConfig dbConfig = globalConfig.getDbConfig();
|
||||
if(Objects.isNull(dbConfig)){
|
||||
dbConfig=new GlobalConfig.DbConfig();
|
||||
}
|
||||
configuration.setCallSettersOnNulls(true);
|
||||
dbConfig.setIdType(IdType.ASSIGN_ID);
|
||||
dbConfig.setTableUnderline(true);
|
||||
dbConfig.setLogicDeleteValue("1");
|
||||
dbConfig.setLogicNotDeleteValue("0");
|
||||
dbConfig.setLogicDeleteField("def_flag");
|
||||
globalConfig.setDbConfig(dbConfig);
|
||||
globalConfig.setBanner(false);
|
||||
}
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
package com.docus.bgts.controller;
|
||||
|
||||
|
||||
import com.docus.bgts.entity.CommonResult;
|
||||
import com.docus.bgts.facade.IAfCollectTaskService;
|
||||
import com.docus.bgts.facade.IBgtsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@Api(value = "采集接口", tags = "采集接口")
|
||||
@RestController
|
||||
public class BgtsController {
|
||||
|
||||
Logger logger= LogManager.getLogger(BgtsController.class);
|
||||
|
||||
@Autowired
|
||||
IBgtsService bgtsService;
|
||||
|
||||
@Autowired
|
||||
IAfCollectTaskService afCollectTaskService;
|
||||
|
||||
@ApiOperation("采集接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "empId",value = "患者主索引号",required = true,dataTypeClass = String.class),
|
||||
@ApiImplicitParam(name = "collectSubId",value = "af_interface_collect_sub表id",required = true)
|
||||
})
|
||||
@GetMapping("/collect")
|
||||
public CommonResult<String> collect(@RequestParam("empId") String empId, @Param("collectSubId") String collectSubId) {
|
||||
try {
|
||||
logger.info("采集接口接收到参数:\nempId--"+empId+"\ncollectSubId--"+collectSubId);
|
||||
bgtsService.collect(empId,collectSubId);
|
||||
afCollectTaskService.updateInterfaceCollect(collectSubId, 1);
|
||||
} catch (RuntimeException e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
afCollectTaskService.updateInterfaceCollect(collectSubId, 0);
|
||||
}catch (Exception e1){
|
||||
return CommonResult.failed(e1.getMessage());
|
||||
}
|
||||
return CommonResult.failed(e.getMessage());
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return CommonResult.success("ok");
|
||||
}
|
||||
|
||||
/**
|
||||
* 按需采集
|
||||
* @param emamNo
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("按需采集接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "emamNo",value = "报告单号",required = true,dataTypeClass = String.class),
|
||||
@ApiImplicitParam(name = "empId",value = "患者主索引号",required = true,dataTypeClass = String.class),
|
||||
@ApiImplicitParam(name = "collectSubId",value = "af_interface_collect_sub表id",required = true)
|
||||
})
|
||||
@GetMapping("/collectByExamNo")
|
||||
public CommonResult<String> collectByExamNo(@RequestParam("emamNo") String emamNo,
|
||||
@RequestParam("empId") String empId,
|
||||
@Param("collectSubId") String collectSubId){
|
||||
try {
|
||||
logger.info("按需采集接口接受参数:\nempId--"+empId+"\ncollectSubId--"+collectSubId+"\nemamNo--"+emamNo);
|
||||
bgtsService.collectByExamNo(emamNo,empId,collectSubId);
|
||||
afCollectTaskService.updateInterfaceCollect(collectSubId, 1);
|
||||
}catch (RuntimeException e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
afCollectTaskService.updateInterfaceCollect(collectSubId, 0);
|
||||
}catch (Exception e1){
|
||||
return CommonResult.failed(e1.getMessage());
|
||||
}
|
||||
return CommonResult.failed(e.getMessage());
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return CommonResult.success("ok");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("文件库中的省中医病案采集表")
|
||||
public class AfInterfaceCollect implements Serializable {
|
||||
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "任务流水号")
|
||||
private String serialnum;
|
||||
@ApiModelProperty(value = "记账号")
|
||||
private String jzh;
|
||||
@ApiModelProperty(value = "任务数")
|
||||
private Integer taskCount;
|
||||
@ApiModelProperty(value = "完成数")
|
||||
private Integer completeCount;
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
}
|
@ -0,0 +1,152 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author docus
|
||||
* @date 2020/3/28 16:23
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("响应")
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CommonResult<T> {
|
||||
@ApiModelProperty("响应码")
|
||||
private Integer code;
|
||||
@ApiModelProperty("响应消息")
|
||||
private String msg;
|
||||
@ApiModelProperty("响应实体")
|
||||
private T data;
|
||||
|
||||
public CommonResult(Integer code, String msg) {
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 成功返回结果
|
||||
*
|
||||
* @param data 获取的数据
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> success(T data) {
|
||||
return new CommonResult<T>(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 成功返回结果
|
||||
*
|
||||
* @param data 获取的数据
|
||||
* @param message 提示信息
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> success(T data, String message) {
|
||||
return new CommonResult<T>(ResultCode.SUCCESS.getCode(), message, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 失败返回结果
|
||||
*
|
||||
* @param errorCode 错误码
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> failed(IErrorCode errorCode) {
|
||||
return new CommonResult<T>(errorCode.getCode(), errorCode.getMessage(), null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 失败返回结果
|
||||
*
|
||||
* @param errorCode 错误码
|
||||
* @param message 提示信息
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> failed(IErrorCode errorCode, String message) {
|
||||
return new CommonResult<T>(errorCode.getCode(), message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 失败返回结果
|
||||
*
|
||||
* @param message 提示信息
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> failed(String message) {
|
||||
return new CommonResult<T>(ResultCode.FAILED.getCode(), message, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 失败返回结果
|
||||
*
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> failed() {
|
||||
return failed(ResultCode.FAILED);
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数验证失败返回结果
|
||||
*
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> validateFailed() {
|
||||
return failed(ResultCode.VALIDATE_FAILED);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提示信息
|
||||
*
|
||||
* @param message 提示信息
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> validateFailed(String message) {
|
||||
return new CommonResult<T>(ResultCode.VALIDATE_FAILED.getCode(), message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 未登录返回结果
|
||||
*
|
||||
* @param data 获取的数据
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> unauthorized(T data) {
|
||||
return new CommonResult<T>(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重防及重复请求
|
||||
*
|
||||
* @param data 获取的数据
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> preventreplay(T data) {
|
||||
return new CommonResult<T>(ResultCode.PREVENT_REPLAY.getCode(), ResultCode.PREVENT_REPLAY.getMessage(), data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 未授权返回结果
|
||||
*
|
||||
* @param data 获取的数据
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> CommonResult<T> forbidden(T data) {
|
||||
return new CommonResult<T>(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data);
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
/**
|
||||
* @Description 封装API的错误码
|
||||
* @Author JacksonTu
|
||||
* @Date 2020/3/28 16:26
|
||||
*/
|
||||
public interface IErrorCode {
|
||||
Integer getCode();
|
||||
|
||||
String getMessage();
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ReportDownDto {
|
||||
@ApiModelProperty(value = "采集器id")
|
||||
private String collectorid;
|
||||
|
||||
@ApiModelProperty(value = "采集器ip")
|
||||
private String ip;
|
||||
|
||||
@ApiModelProperty(value = "文件信息")
|
||||
private List<ReportDownScanFileDto> scanfiles;
|
||||
|
||||
private ReportDownPatientDto patient;
|
||||
|
||||
@ApiModelProperty(value = "分类id")
|
||||
private String assortid;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ReportDownPatientDto {
|
||||
@ApiModelProperty(value = "记帐号")
|
||||
private String jzh;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.docus.bgts.entity;
|
||||
|
||||
|
||||
/**
|
||||
* @Description 枚举一些常用API操作码
|
||||
* @Author JacksonTu
|
||||
* @Date 2020/3/28 16:26
|
||||
*/
|
||||
public enum ResultCode implements IErrorCode {
|
||||
|
||||
SUCCESS(0, "操作成功"),
|
||||
FAILED(500, "操作失败"),
|
||||
VALIDATE_FAILED(404, "参数检验失败"),
|
||||
UNAUTHORIZED(401, "暂未登录或token已经过期"),
|
||||
FORBIDDEN(403, "没有相关权限"),
|
||||
PREVENT_REPLAY(405,"重复请求"),
|
||||
NOT_EXIST(601,"数据不存在"),
|
||||
NOT_ENABLE(600,"数据未启用");
|
||||
|
||||
|
||||
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
private ResultCode(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.docus.bgts.enums;
|
||||
|
||||
/**
|
||||
* 代码库
|
||||
*/
|
||||
public enum Codes {
|
||||
//接口成功
|
||||
SUCCESS("0", "成功"),
|
||||
//接口失败
|
||||
ERROR("1", "失败"),
|
||||
//web service返回根节点
|
||||
RESPONSE("100","Response"),
|
||||
//web service返回二级节点
|
||||
RET_INFO("101","RetInfo"),
|
||||
//web service 返回代码
|
||||
RET_CODE("102","RetCode"),
|
||||
//web service返回描述部分
|
||||
RET_CON("103","RetCon"),
|
||||
//web service 服务名
|
||||
EXTERNAL("9202","201_P_WS_JYBGTS"),
|
||||
//静态文件存放位置
|
||||
JSON_ADDRESS("999","\\dataConfig\\homeQualitySet.json"),
|
||||
//接收二级节点
|
||||
MSG("201","Msg"),
|
||||
//节点根
|
||||
DIRECTORY("1000","directory"),
|
||||
//上传接口地址
|
||||
UPLOAD("0","uploadConnector"),
|
||||
//患者主索引号
|
||||
EMP_ID("0","indexFlag"),
|
||||
//错误日志编号
|
||||
ERROR_CODE("500","12"),
|
||||
//接收三级节点
|
||||
// PAT_INFO("202","PatInfo"),
|
||||
//静态文件根元素名
|
||||
SELECT_COLUMNS("10000","selectColumns")
|
||||
;
|
||||
//代码
|
||||
private String code;
|
||||
//描述
|
||||
private String message;
|
||||
|
||||
private Codes(String code, String messgae) {
|
||||
this.code = code;
|
||||
this.message = messgae;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.docus.bgts.facade;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.docus.bgts.entity.AfCollectTask;
|
||||
import com.docus.bgts.entity.ReportDownDto;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 病案采集任务 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 曾文和
|
||||
* @since 2021-05-07
|
||||
*/
|
||||
public interface IAfCollectTaskService extends IService<AfCollectTask> {
|
||||
/**
|
||||
* 获取病案id通过报告唯一单号
|
||||
*/
|
||||
String getpatientIdByEmpId(String empId);
|
||||
|
||||
void insert(ReportDownDto reportDownDto);
|
||||
|
||||
void updateInterfaceCollect(String collectSubId, int state);
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.docus.bgts.facade;
|
||||
|
||||
import javax.xml.rpc.ServiceException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.rmi.RemoteException;
|
||||
|
||||
public interface IBgtsService {
|
||||
/**
|
||||
* 采集
|
||||
* @param empId
|
||||
*/
|
||||
void collect(String empId, String collectSubId) throws Exception;
|
||||
|
||||
/**
|
||||
* 按需采集
|
||||
* @param emamNo
|
||||
* @param empId
|
||||
* @throws UnsupportedEncodingException
|
||||
* @throws RemoteException
|
||||
* @throws ServiceException
|
||||
*/
|
||||
void collectByExamNo(String emamNo, String empId, String collectSubId) throws UnsupportedEncodingException, RemoteException, ServiceException, Exception;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.docus.bgts.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.docus.bgts.entity.AfCollectTask;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 病案采集任务 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 曾文和
|
||||
* @since 2021-05-07
|
||||
*/
|
||||
public interface AfCollectTaskMapper extends BaseMapper<AfCollectTask> {
|
||||
/**
|
||||
* 获取病案id通过报告唯一单号
|
||||
* @param empId
|
||||
* @return
|
||||
*/
|
||||
String getpatientIdByEmpId(@Param("jzh") String empId);
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.docus.bgts.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.docus.bgts.entity.AfInterfaceCollect;
|
||||
|
||||
public interface AfInterfaceCollectMapper extends BaseMapper<AfInterfaceCollect> {
|
||||
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.docus.bgts.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.docus.bgts.entity.AfInterfaceCollectSub;
|
||||
|
||||
public interface AfInterfaceCollectSubMapper extends BaseMapper<AfInterfaceCollectSub> {
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
package com.docus.bgts.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.docus.bgts.entity.*;
|
||||
import com.docus.bgts.facade.IAfCollectTaskService;
|
||||
import com.docus.bgts.mapper.AfCollectTaskMapper;
|
||||
import com.docus.bgts.mapper.AfInterfaceCollectMapper;
|
||||
import com.docus.bgts.mapper.AfInterfaceCollectSubMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 病案采集任务 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 曾文和
|
||||
* @since 2021-05-07
|
||||
*/
|
||||
@Service
|
||||
public class AfCollectTaskServiceImpl extends ServiceImpl<AfCollectTaskMapper, AfCollectTask> implements IAfCollectTaskService {
|
||||
|
||||
@Autowired
|
||||
AfCollectTaskMapper afCollectTaskMapper;
|
||||
|
||||
@Autowired
|
||||
AfInterfaceCollectMapper afInterfaceCollectMapper;
|
||||
|
||||
@Autowired
|
||||
AfInterfaceCollectSubMapper afInterfaceCollectSubMapper;
|
||||
|
||||
@Override
|
||||
public String getpatientIdByEmpId(String empId) {
|
||||
String patientId = afCollectTaskMapper.getpatientIdByEmpId(empId);
|
||||
return patientId;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void insert(ReportDownDto reportDownDto) {
|
||||
AfCollectTask afCollectTask;
|
||||
String patientId = getpatientIdByEmpId(reportDownDto.getPatient().getJzh());
|
||||
if (StringUtils.isBlank(patientId)) {
|
||||
throw new RuntimeException("操作的病案信息不存在");
|
||||
}
|
||||
Date date = new Date();
|
||||
Integer save = null;
|
||||
List<ReportDownScanFileDto> scanfiles = reportDownDto.getScanfiles();
|
||||
for (ReportDownScanFileDto scanfile : scanfiles) {
|
||||
// 判断任务是否已存在
|
||||
afCollectTask = afCollectTaskMapper.selectOne(new QueryWrapper<AfCollectTask>().eq("C1", scanfile.getSerialnum()).eq("sysflag", reportDownDto.getCollectorid()));
|
||||
if (afCollectTask == null) {
|
||||
//不存在 新增
|
||||
afCollectTask = new AfCollectTask();
|
||||
afCollectTask.setPatientId(patientId);
|
||||
afCollectTask.setSysflag(reportDownDto.getCollectorid());
|
||||
afCollectTask.setState("0");
|
||||
afCollectTask.setSyncTime(date);
|
||||
afCollectTask.setC1(scanfile.getSerialnum());
|
||||
afCollectTask.setC2(scanfile.getFiletitle());
|
||||
save = afCollectTaskMapper.insert(afCollectTask);
|
||||
} else {
|
||||
//存在就修改
|
||||
afCollectTask.setPatientId(patientId);
|
||||
afCollectTask.setSysflag(reportDownDto.getCollectorid());
|
||||
afCollectTask.setState("0");
|
||||
afCollectTask.setSyncTime(date);
|
||||
afCollectTask.setC1(scanfile.getSerialnum());
|
||||
afCollectTask.setC2(scanfile.getFiletitle());
|
||||
save = afCollectTaskMapper.updateById(afCollectTask);
|
||||
}
|
||||
|
||||
if (save <= 0) {
|
||||
throw new RuntimeException("插入病案任务表数据出错");
|
||||
}
|
||||
scanfile.setTaskid(afCollectTask.getId());
|
||||
}
|
||||
reportDownDto.setScanfiles(scanfiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateInterfaceCollect(String collectSubId, int state) {
|
||||
AfInterfaceCollectSub afInterfaceCollectSub = afInterfaceCollectSubMapper.selectById(collectSubId);
|
||||
if (afInterfaceCollectSub == null) {
|
||||
throw new RuntimeException("afInterfaceCollectSub表数据为空");
|
||||
}
|
||||
int i;
|
||||
afInterfaceCollectSub.setState(state);
|
||||
i = afInterfaceCollectSubMapper.updateById(afInterfaceCollectSub);
|
||||
if (i <= 0) {
|
||||
throw new RuntimeException("记录任务数时出错");
|
||||
}
|
||||
if (state == 1) {
|
||||
AfInterfaceCollect afInterfaceCollect = afInterfaceCollectMapper.selectById(afInterfaceCollectSub.getAfInterfaceCollectId());
|
||||
afInterfaceCollect.setCompleteCount(afInterfaceCollect.getCompleteCount() + 1);
|
||||
i = afInterfaceCollectMapper.updateById(afInterfaceCollect);
|
||||
if (i <= 0) {
|
||||
throw new RuntimeException("记录任务数时出错");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package com.docus.bgts.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.docus.bgts.enums.Codes;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
public class FileUtils {
|
||||
/**
|
||||
* 获取jar包所在位置
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String currentPath() {
|
||||
File dir = new File(".");
|
||||
String currentpath = "";
|
||||
try {
|
||||
currentpath = dir.getCanonicalPath();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return currentpath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取静态文件中的内容
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static Object getJsonByName(String name){
|
||||
//获取目录结构
|
||||
String path = FileUtils.currentPath();
|
||||
//解析json映射文件
|
||||
String json = JsonUtils.readJsonFile(path + Codes.JSON_ADDRESS.getMessage());
|
||||
Map jsonMap = JSON.parseObject(json, Map.class);
|
||||
return jsonMap.get(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,139 @@
|
||||
package com.docus.bgts.utils;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.docus.bgts.enums.Codes;
|
||||
import org.dom4j.Document;
|
||||
import org.dom4j.DocumentException;
|
||||
import org.dom4j.Element;
|
||||
import org.dom4j.io.SAXReader;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class XmlUtils {
|
||||
//定义解析器和文档对象
|
||||
private SAXReader saxReader;
|
||||
private Document document;
|
||||
|
||||
public XmlUtils(String path) {
|
||||
//获取解析器
|
||||
saxReader = new SAXReader();
|
||||
try {
|
||||
//获取文档对象
|
||||
document = saxReader.read(path);
|
||||
} catch (DocumentException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public XmlUtils(InputStream path) {
|
||||
//获取解析器
|
||||
saxReader = new SAXReader();
|
||||
try {
|
||||
//获取文档对象
|
||||
document = saxReader.read(path);
|
||||
} catch (DocumentException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 动态获取节点内容
|
||||
* @return
|
||||
*/
|
||||
public String getElement(String name){
|
||||
//获取根节点
|
||||
Element root = document.getRootElement();
|
||||
Object directory = FileUtils.getJsonByName(Codes.DIRECTORY.getMessage());
|
||||
Element current=root;
|
||||
if(directory==null){
|
||||
throw new RuntimeException("没有定义目录结构");
|
||||
}
|
||||
List<String> directoryArr=(List<String>)directory;
|
||||
for (String dire : directoryArr) {
|
||||
current=current.element(dire);
|
||||
}
|
||||
return current.element(name)==null?"":current.element(name).getText();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据路径动态获取节点
|
||||
* @return
|
||||
*/
|
||||
public Element getElement(List<String> directory){
|
||||
//获取根节点
|
||||
Element root = document.getRootElement();
|
||||
|
||||
Element current=root;
|
||||
List<String> directoryArr=directory;
|
||||
for (String dire : directoryArr) {
|
||||
current=current.element(dire);
|
||||
}
|
||||
if(current==null){
|
||||
throw new RuntimeException("未找到对应节点");
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回存在的根节点
|
||||
*/
|
||||
public List<Element> getJsonByName(){
|
||||
//获取目录结构
|
||||
String path = FileUtils.currentPath();
|
||||
//解析json映射文件
|
||||
String json = JsonUtils.readJsonFile(path + Codes.JSON_ADDRESS.getMessage());
|
||||
Map jsonMap = JSON.parseObject(json, Map.class);
|
||||
//判断是否多条
|
||||
List<String> basicArr= (List<String>) jsonMap.get("doubleBasic");
|
||||
List<String> directory= (List<String>) jsonMap.get("basicDirectory");
|
||||
List<Element> elements=null;
|
||||
Element root=this.getElement(directory);
|
||||
for (String basic : basicArr) {
|
||||
elements=root.elements(basic);
|
||||
if(elements!=null&&elements.size()>0){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(elements==null||elements.size()==0){
|
||||
//只有一条
|
||||
List<String> rootDirectory= (List<String>) jsonMap.get("directory");
|
||||
root = this.getElement(rootDirectory);
|
||||
elements=new ArrayList<>();
|
||||
elements.add(root);
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据节点名称获取内容
|
||||
*
|
||||
* @param name 节点名称
|
||||
* @return 节点内容
|
||||
*/
|
||||
public String getElementText(String name) {
|
||||
//定位根节点
|
||||
Element root = document.getRootElement();
|
||||
//根据名称定位节点
|
||||
Element msg = root.element(Codes.MSG.getMessage());
|
||||
if(msg==null){
|
||||
throw new RuntimeException("没有"+ Codes.MSG.getMessage()+"节点");
|
||||
}
|
||||
// Element patInfo = msg.element(Codes.PAT_INFO.getMessage());
|
||||
// if(patInfo==null){
|
||||
// throw new RuntimeException("没有"+Codes.PAT_INFO.getMessage()+"节点");
|
||||
// }
|
||||
Element element = msg.element(name);
|
||||
if(element==null){
|
||||
return null;
|
||||
}
|
||||
//返回节点内容
|
||||
return element.getText();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1,32 @@
|
||||
server:
|
||||
port: 9302
|
||||
# http
|
||||
|
||||
mybatis-plus:
|
||||
configuration:
|
||||
map-underscore-to-camel-case: true
|
||||
call-setters-on-nulls: true
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
global-config:
|
||||
db-config:
|
||||
field-strategy: NOT_EMPTY
|
||||
db-type: MYSQL
|
||||
|
||||
system:
|
||||
code: "201_P_WS_JYBGTS"
|
||||
prop: 9202
|
||||
# web service
|
||||
|
||||
ws:
|
||||
url: http://localhost:8010/ws_server/weather?wsdl
|
||||
namespaceUrl: http://service.serviceserver.nanmeishu.com/
|
||||
localPart: TestServiceService
|
||||
localPort: TestServicePort
|
||||
localMethod: OperationA
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
username: docus
|
||||
password: docus702
|
||||
url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
|
@ -0,0 +1,11 @@
|
||||
<?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.docus.bgts.mapper.AfCollectTaskMapper">
|
||||
<select id="getpatientIdByEmpId" resultType="string">
|
||||
select patient_id
|
||||
from docus_medicalrecord.t_basic
|
||||
where jzh=#{jzh}
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue