整理项目

segment2.0
beeajax 2 years ago
parent 00de049698
commit fefdadc58c

@ -1,6 +1,5 @@
package com.docus.server;
import com.docus.log.EnableTrackGroup;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;

@ -13,92 +13,92 @@ spring:
#公司病案的文件服务数据库
master:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#公司病案的系统服务数据库
system:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_system?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#公司病案的基础服务数据库
record:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#医院的用户/科室/基础数据的数据库
his:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#病理数据
bl:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#电生理系统数据
ecg:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#电子病历系统数据
emr:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#护理文书系统数据
hl:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#手麻系统数据
issubmit:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#lis系统数据
lis:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/lis?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#Pacs系统数据视图
pacs:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#vte静脉血栓栓塞症
vte:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
#重症系统数据
zz:
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
# rabbitmq:
@ -108,7 +108,7 @@ spring:
# password: guest
redis:
host: redis.docus.cn
password: JSdocus@702
# password: JSdocus@702
cloud:
nacos:
discovery:

@ -15,6 +15,7 @@ import com.docus.server.sys.service.IPowerThirdLoginService;
import com.docus.server.sys.service.IPowerUserService;
import com.xxl.job.core.context.XxlJobHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@ -116,12 +117,14 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
}
}
private void updateTaskState(TaskConfig taskConfig) {
@Transactional
public void updateTaskState(TaskConfig taskConfig) {
taskConfig.setState(StateEnum.OK);
taskConfigService.updateById(taskConfig);
}
private void updateTaskState(String message, TaskConfig taskConfig) {
@Transactional
public void updateTaskState(String message, TaskConfig taskConfig) {
taskConfig.setState(StateEnum.FAIL);
taskConfig.setLastErrorMsg(message.length() > 1000 ? message.substring(0, 1000) : message);
taskConfigService.updateById(taskConfig);

@ -6,9 +6,9 @@ import com.docus.server.common.service.IBaseService;
import java.util.Date;
public interface ITaskConfigService extends IBaseService<TaskConfig> {
void updateAllPointerDate(String id, Date date);
void updateIncPointerDate(String id, Date date);
}

@ -1,25 +0,0 @@
<!-- 报告接收 webservice 需要的数据对应下载服务,标签内有 xpath 路径,则取 接收xml中的数据否则取 标签 value值 -->
<REPORT>
<!--住院号-->
<INPATIENT_NO>/Request/Msg/INHOSP_INDEX_NO</INPATIENT_NO>
<!--住院流水号-->
<JZH>/Request/Msg/INHOSP_NO</JZH>
<!--住院次数-->
<ADMISS_TIMES>/Request/Msg/INHOSP_NUM</ADMISS_TIMES>
<!--采集流水号/报告唯一单号-->
<SERIALNUM>/Request/Msg/UNIQUE_FILE</SERIALNUM>
<!--文件标题-->
<FILE_TITLE>/Request/Msg/FILE_NAME</FILE_TITLE>
<!--下载地址-->
<DOWNURL>/Request/Msg/PDF_PATH</DOWNURL>
<!--表单类型 -->
<TABLE_TYPE>/Request/Msg/TABLE_TYPE</TABLE_TYPE>
<!--文件分类 无则取 TABLE_TYPE 在js-table-type中 取文件分类-->
<ASSORT_ID value="123456"> </ASSORT_ID>
<!--采集系统 文件表的source-->
<SYSTEM_FLAG>/Request/Msg/TABLE_TYPE</SYSTEM_FLAG>
<!--采集类型(文件来源 1:采集器2扫描生产软件)-->
<FILESOURCE value="1"> </FILESOURCE>
<!--文件保存位置类型 1:服务器本地2ftp服务器3共享文件夹-->
<FILE_STORAGE_TYPE value="1"> </FILE_STORAGE_TYPE>
</REPORT>

@ -1,6 +0,0 @@
{
"icu": "重症文件分段id",
"sa": "手麻文件分段id",
"examination": "检验报告文件分段id",
"other": "其他文件分段id"
}

@ -1,25 +0,0 @@
<!--嘉时软件webservice接收模板-->
<Request>
<Msg>
<!-- 消息ID号-->
<ID>123456</ID>
<!--住院号-->
<INHOSP_INDEX_NO>012345</INHOSP_INDEX_NO>
<!--住院流水号-->
<INHOSP_NO>012345</INHOSP_NO>
<!--住院次数-->
<INHOSP_NUM>2</INHOSP_NUM>
<!--表单类型-->
<TABLE_TYPE>icu</TABLE_TYPE>
<!--提交时间-->
<SUBMIT_TIME>20220303111800</SUBMIT_TIME>
<!--审核时间-->
<PROOF_TIME>20220303111801</PROOF_TIME>
<!-- 文件路径-->
<PDF_PATH>http://192.168.1.108:9012/file/0123_01.pdf</PDF_PATH>
<!--文件名-->
<FILE_NAME>0123_01</FILE_NAME>
<!--文件唯一值-->
<UNIQUE_FILE>AESHASHMD5DEFIND</UNIQUE_FILE>
</Msg>
</Request>

@ -1,11 +0,0 @@
<!--嘉时软件webservice响应模板-->
<Response>
<Result>
<!--响应状态码 0代表成功 500 代表失败-->
<Code>0</Code>
<!--消息id 请求的 /Request/Msg/ID-->
<MsgId>123456</MsgId>
<!--成功消息 / 失败异常消息-->
<Msg>成功!</Msg>
</Result>
</Response>

@ -1,10 +0,0 @@
/.gradle
/.idea
classes/
/.settings
/build
/.classpath
/.project
*.iml
**/target

@ -1,22 +0,0 @@
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.docus</groupId>
<artifactId>docus-bom</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>docus-starter-log</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
</project>

@ -1,12 +0,0 @@
package com.docus.log;
import org.springframework.context.annotation.Import;
import java.lang.annotation.*;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Import({EnableTrackGroupSelector.class})
@Inherited
public @interface EnableTrackGroup {
}

@ -1,15 +0,0 @@
package com.docus.log;
import com.docus.log.aspect.TrackGroupAspect;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class EnableTrackGroupConfiguration {
@Bean
public TrackGroupAspect logTrackGroupAspect() {
return new TrackGroupAspect();
}
}

@ -1,19 +0,0 @@
package com.docus.log;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.util.Assert;
public class EnableTrackGroupSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
AnnotationAttributes annotationAttributes = AnnotationAttributes.fromMap(importingClassMetadata.getAnnotationAttributes(EnableTrackGroup.class.getName(), false));
Assert.notNull(annotationAttributes, String.format(
"@EnableTrackGroup is not present on importing class '%s' as expected",
importingClassMetadata.getClassName()));
return new String[]{EnableTrackGroupConfiguration.class.getName()};
}
}

@ -1,5 +0,0 @@
package com.docus.log;
public class EnableTrackGroupSettings {
}

@ -1,21 +0,0 @@
package com.docus.log.annotation;
import com.docus.log.processor.ITrackProcessor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface LogTrackGroup {
String group();
String desc() default "";
String action();
Class<? extends ITrackProcessor> processor();
}

@ -1,38 +0,0 @@
package com.docus.log.annotation;
import com.docus.log.processor.ITrackProcessor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface TrackGroup {
/**
*
*/
String group() default "";
/**
*
*/
String desc() default "";
/**
*
*/
String action() default "";
/**
* bean
*/
String[] beanNames() default {};
/**
*
*/
Class<? extends ITrackProcessor> processor();
}

@ -1,112 +0,0 @@
package com.docus.log.aspect;
import com.docus.log.annotation.LogTrackGroup;
import com.docus.log.annotation.TrackGroup;
import com.docus.log.context.TrackContext;
import com.docus.log.context.TrackHelper;
import com.docus.log.processor.ITrackProcessor;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import java.util.HashMap;
/**
* @author linruifeng
*/
@Aspect
@Slf4j
public class TrackGroupAspect {
@Autowired
private ApplicationContext applicationContext;
/**
*
*/
@Around("@annotation(trackGroup)")
public Object execute(final ProceedingJoinPoint joinPoint, TrackGroup trackGroup) throws Throwable {
log.info("=== AOP @TrackGroup 切面启动器监听处理事件开始 ===");
TrackContext context = getContext(joinPoint, trackGroup);
ITrackProcessor processor = applicationContext.getAutowireCapableBeanFactory().createBean(trackGroup.processor());
try {
Object beforeResult = processor.beforeProcess(context);
context.setBeforeResult(beforeResult);
TrackContext.init(context.getParams());
Object afterReturnResult = joinPoint.proceed();
context.setAfterReturnResult(afterReturnResult);
TrackHelper.setParams(context.getParams());
return processor.process(context);
} catch (Exception ex) {
context.setError(true);
context.setExMessageResult(ex.getMessage());
return processor.process(context);
} finally {
processor.afterProcess(context);
TrackContext.clear();
log.info("=== AOP @TrackGroup 切面启动器监听处理事件结束 ===");
}
}
/**
*
*/
@Around("@annotation(logTrackGroup)")
public Object execute(final ProceedingJoinPoint joinPoint, LogTrackGroup logTrackGroup) throws Throwable {
log.info("=== AOP @LogTrackGroup 切面启动器监听处理事件开始 ===");
final Object result;
TrackContext context = getContext(joinPoint, logTrackGroup);
ITrackProcessor processor = applicationContext.getAutowireCapableBeanFactory().createBean(logTrackGroup.processor());
try {
result = joinPoint.proceed();
context.setAfterReturnResult(result);
processor.process(context);
} catch (Exception ex) {
context.setError(true);
context.setExMessageResult(ex.getMessage());
processor.process(context);
throw new RuntimeException(ex.getMessage());
}
log.info("=== AOP @LogTrackGroup 切面启动器监听处理事件结束 ===");
return result;
}
private TrackContext getContext(final ProceedingJoinPoint joinPoint, TrackGroup logTrackGroup) {
TrackContext context = new TrackContext();
Signature signature = joinPoint.getSignature();
context.setClassType(signature.getDeclaringType());
context.setClassName(signature.getDeclaringTypeName());
context.setMethodName(signature.getName());
context.setArgs(joinPoint.getArgs());
context.setGroup(logTrackGroup.group());
context.setDesc(logTrackGroup.desc());
context.setAction(logTrackGroup.action());
context.setBeanNames(logTrackGroup.beanNames());
context.setProcessor(logTrackGroup.processor());
context.setParams(new HashMap<>());
return context;
}
private TrackContext getContext(final ProceedingJoinPoint joinPoint, LogTrackGroup logTrackGroup) {
TrackContext context = new TrackContext();
Signature signature = joinPoint.getSignature();
context.setClassType(signature.getDeclaringType());
context.setClassName(signature.getDeclaringTypeName());
context.setMethodName(signature.getName());
context.setArgs(joinPoint.getArgs());
context.setGroup(logTrackGroup.group());
context.setDesc(logTrackGroup.desc());
context.setAction(logTrackGroup.action());
context.setProcessor(logTrackGroup.processor());
context.setParams(new HashMap<>());
return context;
}
}

@ -1,45 +0,0 @@
package com.docus.log.context;
import com.docus.log.processor.ITrackProcessor;
import lombok.Data;
import java.util.Map;
@Data
public class TrackContext {
private static final ThreadLocal<TrackContext> CONTEXT_HOLDER = new ThreadLocal<>();
private Class classType;
private String className;
private String methodName;
private Object[] args;
private Object beforeResult;
private Object afterReturnResult;
private boolean error = false;
private String exMessageResult;
private String group;
private String desc;
private String action;
private String[] beanNames;
private Class<? extends ITrackProcessor> processor;
private Map<String, Object> params;
//初始化
public static void init(Map<String, Object> params) {
CONTEXT_HOLDER.remove();
TrackContext context = new TrackContext();
context.setParams(params);
CONTEXT_HOLDER.set(context);
}
public static TrackContext get() {
return CONTEXT_HOLDER.get();
}
//清除线程变量
public static void clear() {
CONTEXT_HOLDER.remove();
}
}

@ -1,56 +0,0 @@
package com.docus.log.context;
import java.util.Map;
/**
* helper for xxl-job
*
* @author xuxueli 2020-11-05
*/
public final class TrackHelper {
// ---------------------- base info ----------------------
/**
* current JobId
*
* @return
*/
public static Object getValue(String key) {
TrackContext trackContext = TrackContext.get();
if (trackContext == null) {
return null;
}
return trackContext.getParams().get(key);
}
/**
* current JobParam
*
* @return
*/
public static Map<String, Object> getParams() {
TrackContext trackContext = TrackContext.get();
if (trackContext == null) {
return null;
}
return trackContext.getParams();
}
public static void setParams(Map<String, Object> params) {
TrackContext trackContext = TrackContext.get();
if (trackContext == null) {
return;
}
trackContext.getParams().putAll(params);
}
public static void clear() {
TrackContext.clear();
}
}

@ -1,51 +0,0 @@
package com.docus.log.processor;
import com.docus.log.context.TrackContext;
import com.docus.log.context.TrackHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class AbstractProcessor implements ITrackProcessor {
private final Logger logger = LoggerFactory.getLogger(AbstractProcessor.class);
public boolean validate(TrackContext context) {
return context != null
&& context.getGroup() != null
&& context.getProcessor() != null;
}
/**
*
*/
@Override
public Object beforeProcess(TrackContext context) {
logger.info("=== AOP 前置通知 ===");
return null;
}
/**
*
*/
@Override
public Object process(TrackContext context) {
if (validate(context)) {
Object o = doProcess(context);
TrackHelper.setParams(context.getParams());
return o;
}
return null;
}
protected abstract Object doProcess(TrackContext context);
/**
*
*/
@Override
public Object afterProcess(TrackContext context) {
logger.info("=== AOP 最后通知 ===");
return null;
}
}

@ -1,12 +0,0 @@
package com.docus.log.processor;
import com.docus.log.context.TrackContext;
public interface ITrackProcessor {
Object beforeProcess(TrackContext context);
Object process(TrackContext context);
Object afterProcess(TrackContext context);
}

@ -138,7 +138,11 @@
<artifactId>docus-excel-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.docus</groupId>
<artifactId>docus-log-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.docus</groupId>
<artifactId>docus-base-starter</artifactId>
@ -213,11 +217,6 @@
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.docus</groupId>
<artifactId>docus-starter-log</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>

Loading…
Cancel
Save