noview defjob实现

segment2.0
linrf 2 years ago
parent 0857f0b986
commit c9d08e4cb4

@ -15,7 +15,7 @@ import java.util.List;
@Component("httpTBasicCollectorImpl") @Component("httpTBasicCollectorImpl")
public class HttpTBasicCollectorImpl extends AbstractHttpCollector<TBasicDTO> { public class HttpTBasicCollectorImpl extends AbstractHttpCollector<TBasicDTO> {
@Override @Override
public List<TBasicDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<TBasicDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
TBasicDTO deptDTO = new TBasicDTO(); TBasicDTO deptDTO = new TBasicDTO();
TBasicDTO deptDTO1 = new TBasicDTO(); TBasicDTO deptDTO1 = new TBasicDTO();

@ -16,7 +16,7 @@ import java.util.List;
public class WsBasicCollectorImpl extends AbstractWsCollector<TBasicDTO> { public class WsBasicCollectorImpl extends AbstractWsCollector<TBasicDTO> {
@Override @Override
public List<TBasicDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<TBasicDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
TBasicDTO deptDTO = new TBasicDTO(); TBasicDTO deptDTO = new TBasicDTO();
deptDTO.setAdmissDate("1"); deptDTO.setAdmissDate("1");
deptDTO.setAdmissDays("admin"); deptDTO.setAdmissDays("admin");

@ -13,7 +13,7 @@ import java.util.List;
public class HttpDeptCollectorImpl extends AbstractHttpCollector<DeptDTO> { public class HttpDeptCollectorImpl extends AbstractHttpCollector<DeptDTO> {
@Override @Override
public List<DeptDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<DeptDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
DeptDTO deptDTO = new DeptDTO(); DeptDTO deptDTO = new DeptDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -15,7 +15,7 @@ import java.util.List;
@Component("wsDeptCollectorImpl") @Component("wsDeptCollectorImpl")
public class WsDeptCollectorImpl extends AbstractWsCollector<DeptDTO> { public class WsDeptCollectorImpl extends AbstractWsCollector<DeptDTO> {
@Override @Override
public List<DeptDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<DeptDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
DeptDTO deptDTO = new DeptDTO(); DeptDTO deptDTO = new DeptDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -18,4 +18,8 @@ public abstract class AbstractNoViewJobResultImpl<T> implements IJobResult<T> {
return null; return null;
} }
@Override
public void handle(T results, String param) {
}
} }

@ -1,10 +1,13 @@
package com.docus.server.collect.report.noview; package com.docus.server.collect.report.noview;
import com.docus.core.util.Func;
import com.docus.core.util.json.JSON;
import com.docus.server.collect.AbstractJobCollector; import com.docus.server.collect.AbstractJobCollector;
import com.docus.server.collect.web.common.dto.NoViewCollectionDto;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.enums.QueryWayEnum; import com.docus.server.collect.web.enums.QueryWayEnum;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.common.util.ParamsUtils; import com.docus.server.common.util.MapObjUtil;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
@ -16,10 +19,18 @@ public class DefJobNoViewCollectorImpl
extends AbstractJobCollector<Map<String, Object>> { extends AbstractJobCollector<Map<String, Object>> {
@Override @Override
public List<Map<String, Object>> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> page(PeriodTime periodTime, TaskConfig taskConfig) {
NoViewCollectionDto noViewCollectionDto = JSON.fromJSON(taskConfig.getParam(), NoViewCollectionDto.class);
noViewCollectionDto.setStartTime(Func.format(periodTime.getPeriodStartDate(), "yyyy-MM-dd HH:mm:ss"));
noViewCollectionDto.setEndTime(Func.format(periodTime.getPeriodEndDate(), "yyyy-MM-dd HH:mm:ss"));
noViewCollectionDto.setOffset(taskConfig.getOffset());
noViewCollectionDto.setPageSize(taskConfig.getPageSize());
int queryway = noViewCollectionDto.getQueryway();
List<Map<String, Object>> results = new ArrayList<>(); List<Map<String, Object>> results = new ArrayList<>();
Map<String, Object> param = ParamsUtils.addParam("periodTime", periodTime).addParam("taskConfig", taskConfig).param(); Map<String, Object> param = MapObjUtil.object2Map(noViewCollectionDto);
int queryway = taskConfig.getQueryway();
if (queryway == QueryWayEnum.outtime.value()) { if (queryway == QueryWayEnum.outtime.value()) {
results = basicService.getBasicOutData(param); results = basicService.getBasicOutData(param);
} }

@ -2,18 +2,16 @@ package com.docus.server.collect.report.noview;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.docus.core.util.Func; import com.docus.core.util.Func;
import com.docus.log.context.TrackHelper;
import com.docus.server.archivefile.pojo.entity.CollectsysDictionary; import com.docus.server.archivefile.pojo.entity.CollectsysDictionary;
import com.docus.server.archivefile.service.IAfCollectSysDictionary; import com.docus.server.archivefile.service.IAfCollectSysDictionary;
import com.docus.server.collect.web.common.DocusProperties; import com.docus.server.collect.web.common.DocusProperties;
import com.docus.server.collect.web.common.NoViewChNewbornProperties; import com.docus.server.collect.web.common.NoViewChNewbornProperties;
import com.docus.server.collect.web.common.NoViewProperties; import com.docus.server.collect.web.common.NoViewProperties;
import com.docus.server.collect.web.common.dto.NoViewCollectionDto;
import com.docus.server.collect.web.common.dto.NoViewConfig; import com.docus.server.collect.web.common.dto.NoViewConfig;
import com.docus.server.collect.web.common.dto.ViewReportTwoDto; import com.docus.server.collect.web.common.dto.ViewReportTwoDto;
import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.enums.DisposeModeEnum; import com.docus.server.collect.web.enums.DisposeModeEnum;
import com.docus.server.collect.web.enums.HospitalEnum; import com.docus.server.collect.web.enums.HospitalEnum;
import com.docus.server.collect.web.enums.RedisKeyEnum; import com.docus.server.collect.web.enums.RedisKeyEnum;
@ -40,6 +38,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class DefNoViewJobResultImpl public class DefNoViewJobResultImpl
extends AbstractNoViewJobResultImpl<List<Map<String, Object>>> { extends AbstractNoViewJobResultImpl<List<Map<String, Object>>> {
@Resource @Resource
private NoViewProperties noViewProperties; private NoViewProperties noViewProperties;
@Resource @Resource
@ -56,35 +55,34 @@ public class DefNoViewJobResultImpl
MqQueueUtils mqQueueUtils; MqQueueUtils mqQueueUtils;
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, param);
} NoViewCollectionDto collectionDto = com.docus.core.util.json.JSON.fromJSON(param, NoViewCollectionDto.class);
@Override if (Func.isBlank(param)) {
public void handle(List<Map<String, Object>> results, Map<String, Object> param) {
Map<String, Object> params = TrackHelper.getParams();
if (Func.isNull(params)) {
return; return;
} }
TaskConfig taskConfig = (TaskConfig) params.get("taskConfig");
List<ViewReportTwoDto> list = new ArrayList<>(); List<ViewReportTwoDto> list = new ArrayList<>();
for (Map<String, Object> map : results) { for (Map<String, Object> map : results) {
ViewReportTwoDto viewReportTwoDto = MapObjUtil.map2ObjectUnderlined(map, ViewReportTwoDto.class); ViewReportTwoDto viewReportTwoDto = MapObjUtil.map2ObjectUnderlined(map, ViewReportTwoDto.class);
viewReportTwoDto.setIspriority(taskConfig.getPriority()); viewReportTwoDto.setIspriority(collectionDto.getPriority());
list.add(viewReportTwoDto); list.add(viewReportTwoDto);
} }
try { try {
GenerateQueue(list, taskConfig.getSyscodes()); GenerateQueue(list, collectionDto);
} catch (Exception ex) { } catch (Exception ex) {
log.error("发送队列信息失败,错误信息:" + ex.getMessage() + "." + JSON.toJSONString(dto)); log.error("发送队列信息失败,错误信息:" + ex.getMessage() + "." + JSON.toJSONString(collectionDto));
} }
TrackHelper.clear();
} }
private void GenerateQueue(List<ViewReportTwoDto> list, String syscodes) { private void GenerateQueue(List<ViewReportTwoDto> list, NoViewCollectionDto collectionDto) {
// List<NoViewConfig> configs = initNoviewConfig(); String syscodes = collectionDto.getSyscodes();
List<NoViewConfig> configs = collectionDto.getNoviewconfig();
Map<String, Object> queuemerge = collectionDto.getQueuemerge();
List<CollectsysDictionary> collectsysDictionaries = afCollectSysDictionary.findAll(); List<CollectsysDictionary> collectsysDictionaries = afCollectSysDictionary.findAll();
if (!StringUtils.isEmpty(syscodes)) { if (!StringUtils.isEmpty(syscodes)) {
List<String> collectids = Arrays.asList(syscodes.split(",")); List<String> collectids = Arrays.asList(syscodes.split(","));
@ -104,7 +102,7 @@ public class DefNoViewJobResultImpl
k.setCollectorId(o.getSysCode()); k.setCollectorId(o.getSysCode());
if (docusProperties.getMode().equals(DisposeModeEnum.mq)) { if (docusProperties.getMode().equals(DisposeModeEnum.mq)) {
MqMessage mqMessage = new MqMessage(); MqMessage mqMessage = new MqMessage();
String mqKey = String.format("topic_task_%s_queue", getQueueKey(o.getSysCode())); String mqKey = String.format("topic_task_%s_queue", getQueueKey(o.getSysCode(), queuemerge));
mqQueueUtils.DeclareQueue(mqKey); mqQueueUtils.DeclareQueue(mqKey);
mqMessage.setMessageBody(JSON.toJSONString(k, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteMapNullValue)); mqMessage.setMessageBody(JSON.toJSONString(k, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteMapNullValue));
amqpTemplate.convertAndSend("", mqKey, mqMessage); amqpTemplate.convertAndSend("", mqKey, mqMessage);
@ -116,13 +114,11 @@ public class DefNoViewJobResultImpl
} }
} }
private static String getQueueKey(String sysCode) { private static String getQueueKey(String sysCode, Map<String, Object> queuemerge) {
TableJsonRead tableJsonRead = new TableJsonRead(); if (Func.isNull(queuemerge)) {
JSONObject read = tableJsonRead.Read("docus", "queuemerge", JSONObject.class);
if (read == null || read.size() <= 0) {
return sysCode; return sysCode;
} }
for (Map.Entry<String, Object> merge : read.entrySet()) { for (Map.Entry<String, Object> merge : queuemerge.entrySet()) {
if (Arrays.asList(String.valueOf(merge.getKey()).split(StrUtil.COMMA)).contains(sysCode)) { if (Arrays.asList(String.valueOf(merge.getKey()).split(StrUtil.COMMA)).contains(sysCode)) {
if (StrUtil.isBlank(String.valueOf(merge.getValue())) || "null".equals(String.valueOf(merge.getValue()))) { if (StrUtil.isBlank(String.valueOf(merge.getValue())) || "null".equals(String.valueOf(merge.getValue()))) {
return sysCode; return sysCode;

@ -35,7 +35,13 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
@ -485,8 +491,4 @@ public abstract class AbstractViewJobResultImpl<T> implements IJobResult<T> {
return null; return null;
} }
@Override
public void handle(T results, Map<String, Object> param) {
}
} }

@ -13,7 +13,7 @@ public class BlViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class EcgViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class EmrViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class HlViewJobResultImpl extends
AbstractViewJobResultImpl<List<Map<String, Object>>> { AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class IssubmitViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class LisViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class PacsViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class VteViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -13,7 +13,7 @@ public class ZzViewJobResultImpl
extends AbstractViewJobResultImpl<List<Map<String, Object>>> { extends AbstractViewJobResultImpl<List<Map<String, Object>>> {
@Override @Override
public void handle(List<Map<String, Object>> results, String dsKey) { public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, dsKey); super.handle(results, param);
} }
} }

@ -15,7 +15,7 @@ import java.util.List;
@Component("httpUserCollectorImpl") @Component("httpUserCollectorImpl")
public class HttpUserCollectorImpl extends AbstractHttpCollector<UserDTO> { public class HttpUserCollectorImpl extends AbstractHttpCollector<UserDTO> {
@Override @Override
public List<UserDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<UserDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
UserDTO deptDTO = new UserDTO(); UserDTO deptDTO = new UserDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -15,7 +15,7 @@ import java.util.List;
@Component("wsUserCollectorImpl") @Component("wsUserCollectorImpl")
public class WsUserCollectorImpl extends AbstractWsCollector<UserDTO> { public class WsUserCollectorImpl extends AbstractWsCollector<UserDTO> {
@Override @Override
public List<UserDTO> list(PeriodTime periodTime, TaskConfig taskConfig) { public List<UserDTO> page(PeriodTime periodTime, TaskConfig taskConfig) {
UserDTO deptDTO = new UserDTO(); UserDTO deptDTO = new UserDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -3,6 +3,9 @@ package com.docus.server.collect.web.common.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
import java.util.Map;
@Getter @Getter
@Setter @Setter
public class NoViewCollectionDto { public class NoViewCollectionDto {
@ -18,16 +21,20 @@ public class NoViewCollectionDto {
/** /**
* *
*/ */
private String where=""; private String where = "";
private Integer interval=5; private Integer interval = 5;
/** /**
* 0,1: * 0,1:
*/ */
private Integer holiday=0; private Integer holiday = 0;
/** /**
* 0 * 0
*/ */
private int pageNumber=0; private int offset;
/**
* 0
*/
private int pageNumber = 0;
/** /**
* *
*/ */
@ -36,31 +43,41 @@ public class NoViewCollectionDto {
/** /**
* ids, , * ids, ,
*/ */
private String syscodes=""; private String syscodes = "";
/** /**
* , 0:1: * , 0:1:
*/ */
private int queryway=0; private int queryway = 0;
/** /**
* *
*/ */
private int priority=1; private int priority = 1;
/**
*
*/
List<NoViewConfig> noviewconfig;
/**
*
*/
private Map<String, Object> queuemerge;
@Override @Override
public String toString() { public String toString() {
return "NoViewCollectionDto{" + return "NoViewCollectionDto{" +
"startTime='" + startTime + '\'' + "startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' + ", endTime='" + endTime + '\'' +
", where='" + where + '\'' + ", where='" + where + '\'' +
", interval=" + interval + ", interval=" + interval +
", holiday=" + holiday + ", holiday=" + holiday +
", pageNumber=" + pageNumber + ", pageNumber=" + pageNumber +
", pageSize=" + pageSize + ", pageSize=" + pageSize +
", syscodes='" + syscodes + '\'' + ", syscodes='" + syscodes + '\'' +
", queryway=" + queryway + ", queryway=" + queryway +
", priority=" + priority + ", priority=" + priority +
'}'; '}';
} }
} }

@ -13,92 +13,92 @@ spring:
#公司病案的文件服务数据库 #公司病案的文件服务数据库
master: 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 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: root username: docus
password: root password: docus702
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#公司病案的系统服务数据库 #公司病案的系统服务数据库
system: 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 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: root username: docus
password: root password: docus702
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#公司病案的基础服务数据库 #公司病案的基础服务数据库
record: 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 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: root username: docus
password: root password: docus702
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#医院的用户/科室/基础数据的数据库 #医院的用户/科室/基础数据的数据库
his: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#病理数据 #病理数据
bl: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#电生理系统数据 #电生理系统数据
ecg: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#电子病历系统数据 #电子病历系统数据
emr: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#护理文书系统数据 #护理文书系统数据
hl: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#手麻系统数据 #手麻系统数据
issubmit: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#lis系统数据 #lis系统数据
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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#Pacs系统数据视图 #Pacs系统数据视图
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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#vte静脉血栓栓塞症 #vte静脉血栓栓塞症
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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
#重症系统数据 #重症系统数据
zz: 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 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 username: root
password: root password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
# rabbitmq: # rabbitmq:
@ -108,7 +108,7 @@ spring:
# password: guest # password: guest
redis: redis:
host: redis.docus.cn host: redis.docus.cn
# password: JSdocus@702 password: JSdocus@702
cloud: cloud:
nacos: nacos:
discovery: discovery:

@ -13,5 +13,5 @@ public interface ICollector<T> {
* @param taskConfig * @param taskConfig
* @return * @return
*/ */
List<T> list(PeriodTime periodTime, TaskConfig taskConfig); List<T> page(PeriodTime periodTime, TaskConfig taskConfig);
} }

@ -18,6 +18,6 @@ public interface IJob<T> {
/** /**
* *
*/ */
void get(PeriodTime periodTime, TaskConfig taskConfig); void page(PeriodTime periodTime, TaskConfig taskConfig);
} }

@ -1,7 +1,5 @@
package com.docus.server.collect; package com.docus.server.collect;
import java.util.Map;
/** /**
* @author linruifeng * @author linruifeng
* @date 2023/6/14 14:27 * @date 2023/6/14 14:27
@ -9,19 +7,10 @@ import java.util.Map;
public interface IJobResult<T> extends IResult<T> { public interface IJobResult<T> extends IResult<T> {
/** /**
* job * job
*
* @param results
* @param dsKey key
*/
void handle(T results, String dsKey);
/**
* job
* *
* @param results * @param results
* @param param * @param param
*/ */
void handle(T results, Map<String, Object> param); void handle(T results, String param);
} }

@ -40,7 +40,7 @@ public class TBasicHttpCollectJob extends AbstractCollectJob<TBasicDTO> {
@Override @Override
public void doHandle(List<TBasicDTO> results) { public void doHandle(List<TBasicDTO> results, String param) {
basicService.batchSaveBasics(results); basicService.batchSaveBasics(results);
} }
@ -48,6 +48,6 @@ public class TBasicHttpCollectJob extends AbstractCollectJob<TBasicDTO> {
@Override @Override
public List<TBasicDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<TBasicDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -41,7 +41,7 @@ public class TBasicViewCollectJob extends AbstractCollectJob<TBasicDTO> {
} }
@Override @Override
public void doHandle(List<TBasicDTO> results) { public void doHandle(List<TBasicDTO> results,String param) {
basicService.batchSaveBasics(results); basicService.batchSaveBasics(results);
} }

@ -39,7 +39,7 @@ public class TBasicWsCollectJob extends AbstractCollectJob<TBasicDTO> {
} }
@Override @Override
public void doHandle(List<TBasicDTO> results) { public void doHandle(List<TBasicDTO> results, String param) {
basicService.batchSaveBasics(results); basicService.batchSaveBasics(results);
} }
@ -47,7 +47,7 @@ public class TBasicWsCollectJob extends AbstractCollectJob<TBasicDTO> {
@Override @Override
public List<TBasicDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<TBasicDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -40,13 +40,13 @@ public class DeptHttpCollectJob extends AbstractCollectJob<DeptDTO> {
} }
@Override @Override
public void doHandle(List<DeptDTO> results) { public void doHandle(List<DeptDTO> results, String param) {
deptService.batchInsertOrUpdatePowerDept(results); deptService.batchInsertOrUpdatePowerDept(results);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public List<DeptDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<DeptDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -43,7 +43,7 @@ public class DeptViewCollectJob extends AbstractCollectJob<DeptDTO> {
} }
@Override @Override
public void doHandle(List<DeptDTO> results) { public void doHandle(List<DeptDTO> results, String param) {
deptService.batchInsertOrUpdatePowerDept(results); deptService.batchInsertOrUpdatePowerDept(results);
} }

@ -39,7 +39,7 @@ public class DeptWsCollectJob extends AbstractCollectJob<DeptDTO> {
} }
@Override @Override
public void doHandle(List<DeptDTO> results) { public void doHandle(List<DeptDTO> results, String param) {
deptService.batchInsertOrUpdatePowerDept(results); deptService.batchInsertOrUpdatePowerDept(results);
} }
@ -47,6 +47,6 @@ public class DeptWsCollectJob extends AbstractCollectJob<DeptDTO> {
@Override @Override
public List<DeptDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<DeptDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -1,14 +1,11 @@
package com.docus.server.collect.report.noview; package com.docus.server.collect.report.noview;
import com.docus.log.context.TrackContext;
import com.docus.log.context.TrackHelper;
import com.docus.server.collect.ICollector; import com.docus.server.collect.ICollector;
import com.docus.server.collect.IJob; import com.docus.server.collect.IJob;
import com.docus.server.collect.IJobResult; import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.common.util.ParamsUtils;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -43,7 +40,7 @@ public class DefNoViewCollectionJob extends AbstractCollectJob<Map<String, Objec
/** /**
* xxl jobhandler * xxl jobhandler
*/ */
@XxlJob("startIncNoiewCollect") @XxlJob("startIncNoViewCollect")
public void startIncNoViewCollect() { public void startIncNoViewCollect() {
super.startCollectIncrement(getJobParam()); super.startCollectIncrement(getJobParam());
} }
@ -51,15 +48,14 @@ public class DefNoViewCollectionJob extends AbstractCollectJob<Map<String, Objec
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, TrackHelper.getParams()); jobResult.handle(results, param);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。 //每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。
TrackContext.init(ParamsUtils.addParam("taskConfig", taskConfig).param()); return collector.page(periodTime, taskConfig);
return collector.list(periodTime, taskConfig);
} }
} }

@ -1,5 +1,6 @@
package com.docus.server.collect.report.view; package com.docus.server.collect.report.view;
import com.docus.server.bl.common.DSKeyConstants;
import com.docus.server.bl.service.IBlService; import com.docus.server.bl.service.IBlService;
import com.docus.server.collect.ICollector; import com.docus.server.collect.ICollector;
import com.docus.server.collect.IJob; import com.docus.server.collect.IJob;
@ -7,7 +8,6 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class BlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }

@ -6,8 +6,8 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.ecg.common.DSKeyConstants;
import com.docus.server.ecg.service.IEcgService; import com.docus.server.ecg.service.IEcgService;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class EcgViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }

@ -6,8 +6,8 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.emr.common.DSKeyConstants;
import com.docus.server.emr.service.IEmrService; import com.docus.server.emr.service.IEmrService;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class EmrViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }

@ -6,8 +6,8 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.hl.common.DSKeyConstants;
import com.docus.server.hl.service.IHlService; import com.docus.server.hl.service.IHlService;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class HlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }
@Override @Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。 //每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。

@ -6,8 +6,8 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.issubmit.common.DSKeyConstants;
import com.docus.server.issubmit.service.IIssubmitService; import com.docus.server.issubmit.service.IIssubmitService;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class IssubmitViewCollectJob extends AbstractCollectJob<Map<String, Objec
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }
@Override @Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。 //每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。

@ -48,7 +48,7 @@ public class LisViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }

@ -6,7 +6,7 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.lis.common.DSKeyConstants; import com.docus.server.pacs.common.DSKeyConstants;
import com.docus.server.pacs.service.IPacsService; import com.docus.server.pacs.service.IPacsService;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class PacsViewCollectJob extends AbstractCollectJob<Map<String, Object>>
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }
@Override @Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。 //每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。

@ -6,7 +6,7 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.lis.common.DSKeyConstants; import com.docus.server.vte.common.DSKeyConstants;
import com.docus.server.vte.service.IVteService; import com.docus.server.vte.service.IVteService;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class VteViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }
@Override @Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。 //每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。

@ -6,7 +6,7 @@ import com.docus.server.collect.IJobResult;
import com.docus.server.collect.web.common.entity.TaskConfig; import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.job.AbstractCollectJob; import com.docus.server.collect.web.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime; import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.lis.common.DSKeyConstants; import com.docus.server.zz.common.DSKeyConstants;
import com.docus.server.zz.service.IZzService; import com.docus.server.zz.service.IZzService;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class ZzViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void doHandle(List<Map<String, Object>> results) { public void doHandle(List<Map<String, Object>> results, String param) {
jobResult.handle(results, DSKeyConstants.DS_KEY); jobResult.handle(results, DSKeyConstants.DS_KEY);
} }

@ -39,7 +39,7 @@ public class UserHttpCollectJob extends AbstractCollectJob<UserDTO> {
} }
@Override @Override
public void doHandle(List<UserDTO> results) { public void doHandle(List<UserDTO> results,String param) {
userService.batchInsertOrUpdatePowerUser(results); userService.batchInsertOrUpdatePowerUser(results);
} }
@ -47,6 +47,6 @@ public class UserHttpCollectJob extends AbstractCollectJob<UserDTO> {
@Override @Override
public List<UserDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<UserDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -49,7 +49,7 @@ public class UserViewCollectJob extends AbstractCollectJob<UserDTO> {
} }
@Override @Override
public void doHandle(List<UserDTO> results) { public void doHandle(List<UserDTO> results, String param) {
//docus-BasicDataReceive同步user逻辑 //docus-BasicDataReceive同步user逻辑
Collection<Object> userNames = ListUtils.distinctSelect(results, UserDTO::getUserName); Collection<Object> userNames = ListUtils.distinctSelect(results, UserDTO::getUserName);
List<PowerUser> powerUsers = userService.findByList("userName", userNames); List<PowerUser> powerUsers = userService.findByList("userName", userNames);

@ -39,7 +39,7 @@ public class UserWsCollectJob extends AbstractCollectJob<UserDTO> {
} }
@Override @Override
public void doHandle(List<UserDTO> results) { public void doHandle(List<UserDTO> results, String param) {
userService.batchInsertOrUpdatePowerUser(results); userService.batchInsertOrUpdatePowerUser(results);
} }
@ -47,6 +47,6 @@ public class UserWsCollectJob extends AbstractCollectJob<UserDTO> {
@Override @Override
public List<UserDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) { public List<UserDTO> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return collector.list(periodTime, taskConfig); return collector.page(periodTime, taskConfig);
} }
} }

@ -63,38 +63,14 @@ public class TaskConfig {
*/ */
private Long spiltPeriod; private Long spiltPeriod;
/** /**
* *
*/ */
private Date incPointerTime; private Date incPointerTime;
/** /**
* *
*/
private String where = "";
/**
*
*/
private Integer interval = 5;
/**
* 0,1:
*/
private Integer holiday = 0;
/**
* ids, ,
*/ */
private String syscodes = ""; private String param;
/**
* , 0:1:
*/
private int queryway = 0;
/**
*
*/
private int priority = 1;
/** /**
* *
*/ */

@ -41,11 +41,13 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
@Override @Override
public void startCollectAll(String taskConfigId) { public void startCollectAll(String taskConfigId) {
TaskConfig taskConfig = getTaskConfig(taskConfigId); TaskConfig taskConfig = getTaskConfig(taskConfigId);
try { try {
List<PeriodTime> periodTimes = taskConfig.getAllPeriodTimes(); List<PeriodTime> periodTimes = taskConfig.getAllPeriodTimes();
for (PeriodTime periodTime : periodTimes) { for (PeriodTime periodTime : periodTimes) {
get(periodTime, taskConfig);
page(periodTime, taskConfig);
taskConfigService.updateAllPointerDate(taskConfigId, periodTime.getPeriodEndDate()); taskConfigService.updateAllPointerDate(taskConfigId, periodTime.getPeriodEndDate());
} }
} catch (Exception ex) { } catch (Exception ex) {
@ -53,39 +55,39 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
updateTaskState(ex.getMessage(), taskConfig); updateTaskState(ex.getMessage(), taskConfig);
} }
if (StateEnum.FAIL.equals(taskConfig.getState())) { refreshTaskState(taskConfig);
updateTaskState(taskConfig);
}
} }
@Override @Override
public void startCollectIncrement(String taskConfigId) { public void startCollectIncrement(String taskConfigId) {
TaskConfig taskConfig = getTaskConfig(taskConfigId); TaskConfig taskConfig = getTaskConfig(taskConfigId);
try {
try {
List<PeriodTime> periodTimes = taskConfig.getIncPeriodTimes(); List<PeriodTime> periodTimes = taskConfig.getIncPeriodTimes();
periodTimes.forEach(periodTime -> {
get(periodTime, taskConfig);
taskConfigService.updateIncPointerDate(taskConfigId, periodTime.getPeriodEndDate());
});
for (PeriodTime periodTime : periodTimes) {
page(periodTime, taskConfig);
taskConfigService.updateIncPointerDate(taskConfigId, periodTime.getPeriodEndDate());
}
} catch (Exception ex) { } catch (Exception ex) {
log.error(ex.getMessage(), ex); log.error(ex.getMessage(), ex);
updateTaskState(ex.getMessage(), taskConfig); updateTaskState(ex.getMessage(), taskConfig);
} }
if (StateEnum.FAIL.equals(taskConfig.getState())) { refreshTaskState(taskConfig);
updateTaskState(taskConfig);
}
} }
@Override @Override
public void get(PeriodTime periodTime, TaskConfig taskConfig) { public void page(PeriodTime periodTime, TaskConfig taskConfig) {
//考虑到性能,应该把起始时间和结束时间进行切割拆分到每天。按段查询。 //考虑到性能,应该把起始时间和结束时间进行切割拆分到每天。按段查询。
List<T> results; List<T> results;
int pageNum = 1; int pageNum = 1;
for (; true; pageNum++) { for (; true; pageNum++) {
taskConfig.setPageNum(pageNum); taskConfig.setPageNum(pageNum);
@ -99,14 +101,22 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
} }
log.info("本次采集:" + results.size() + "笔" + taskConfig.getType()); log.info("本次采集:" + results.size() + "笔" + taskConfig.getType());
doHandle(results);
doHandle(results, taskConfig.getParam());
} }
} }
public abstract void doHandle(List<T> results); public abstract void doHandle(List<T> results, String param);
public abstract List<T> execute(PeriodTime periodTime, TaskConfig taskConfig); public abstract List<T> execute(PeriodTime periodTime, TaskConfig taskConfig);
private void refreshTaskState(TaskConfig taskConfig) {
if (StateEnum.FAIL.equals(taskConfig.getState())) {
updateTaskState(taskConfig);
}
}
private void updateTaskState(TaskConfig taskConfig) { private void updateTaskState(TaskConfig taskConfig) {
taskConfig.setState(StateEnum.OK); taskConfig.setState(StateEnum.OK);
taskConfigService.updateById(taskConfig); taskConfigService.updateById(taskConfig);

@ -4,7 +4,9 @@ import com.docus.server.archivefile.mapper.AfCollectSysDictionaryMapper;
import com.docus.server.archivefile.pojo.entity.CollectsysDictionary; import com.docus.server.archivefile.pojo.entity.CollectsysDictionary;
import com.docus.server.archivefile.service.IAfCollectSysDictionary; import com.docus.server.archivefile.service.IAfCollectSysDictionary;
import com.docus.server.common.service.impl.BaseServiceImpl; import com.docus.server.common.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class AfCollectSysDictionaryImpl public class AfCollectSysDictionaryImpl
extends BaseServiceImpl<AfCollectSysDictionaryMapper, CollectsysDictionary> implements IAfCollectSysDictionary { extends BaseServiceImpl<AfCollectSysDictionaryMapper, CollectsysDictionary> implements IAfCollectSysDictionary {
} }

@ -198,16 +198,16 @@
AND dis_date IS NOT NULL AND dis_date IS NOT NULL
AND dis_date != '1801-02-03 00:00:00' AND dis_date != '1801-02-03 00:00:00'
AND is_cancel = 0 AND is_cancel = 0
<if test="param.periodTime.periodStartDate != null"> <if test="param.startTime != null">
AND dis_date <![CDATA[ >= ]]> #{param.periodTime.periodStartDate} AND dis_date <![CDATA[ >= ]]> #{param.startTime}
</if> </if>
<if test="param.periodTime.periodEndDate != null"> <if test="param.endTime != null">
AND dis_date <![CDATA[ <= ]]> #{param.periodTime.periodEndDate} AND dis_date <![CDATA[ <= ]]> #{param.endTime}
</if> </if>
<if test="param.taskConfig.where != null"> <if test="param.where != null">
AND #{param.taskConfig.where} AND #{param.where}
</if> </if>
LIMIT #{param.taskConfig.offset}, #{param.taskConfig.pageSize} LIMIT #{param.offset}, #{param.pageSize}
</select> </select>
<!--查询基础创建数据增量数据--> <!--查询基础创建数据增量数据-->
<select id="getBasicData" resultType="java.util.Map"> <select id="getBasicData" resultType="java.util.Map">
@ -227,15 +227,16 @@
1 = 1 1 = 1
AND jzh IS NOT NULL AND jzh IS NOT NULL
AND is_cancel =0 AND is_cancel =0
<if test="param.periodTime.periodStartDate != null">
AND create_time <![CDATA[ >= ]]> #{param.periodTime.periodStartDate} <if test="param.startTime != null">
AND dis_date <![CDATA[ >= ]]> #{param.startTime}
</if> </if>
<if test="param.periodTime.periodEndDate != null"> <if test="param.endTime != null">
AND create_time <![CDATA[ <= ]]> #{param.periodTime.periodEndDate} AND dis_date <![CDATA[ <= ]]> #{param.endTime}
</if> </if>
<if test="param.taskConfig.where != null"> <if test="param.where != null">
AND #{param.taskConfig.where} AND #{param.where}
</if> </if>
LIMIT #{param.taskConfig.offset}, #{param.taskConfig.pageSize} LIMIT #{param.offset}, #{param.pageSize}
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save