noview defjob实现

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

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

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

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

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

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

@ -1,10 +1,13 @@
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.web.common.dto.NoViewCollectionDto;
import com.docus.server.collect.web.common.entity.TaskConfig;
import com.docus.server.collect.web.enums.QueryWayEnum;
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 java.util.ArrayList;
@ -16,10 +19,18 @@ public class DefJobNoViewCollectorImpl
extends AbstractJobCollector<Map<String, Object>> {
@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<>();
Map<String, Object> param = ParamsUtils.addParam("periodTime", periodTime).addParam("taskConfig", taskConfig).param();
int queryway = taskConfig.getQueryway();
Map<String, Object> param = MapObjUtil.object2Map(noViewCollectionDto);
if (queryway == QueryWayEnum.outtime.value()) {
results = basicService.getBasicOutData(param);
}

@ -2,18 +2,16 @@ package com.docus.server.collect.report.noview;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
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.service.IAfCollectSysDictionary;
import com.docus.server.collect.web.common.DocusProperties;
import com.docus.server.collect.web.common.NoViewChNewbornProperties;
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.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.HospitalEnum;
import com.docus.server.collect.web.enums.RedisKeyEnum;
@ -40,6 +38,7 @@ import java.util.stream.Collectors;
@Slf4j
public class DefNoViewJobResultImpl
extends AbstractNoViewJobResultImpl<List<Map<String, Object>>> {
@Resource
private NoViewProperties noViewProperties;
@Resource
@ -56,35 +55,34 @@ public class DefNoViewJobResultImpl
MqQueueUtils mqQueueUtils;
@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
public void handle(List<Map<String, Object>> results, Map<String, Object> param) {
Map<String, Object> params = TrackHelper.getParams();
if (Func.isNull(params)) {
if (Func.isBlank(param)) {
return;
}
TaskConfig taskConfig = (TaskConfig) params.get("taskConfig");
List<ViewReportTwoDto> list = new ArrayList<>();
for (Map<String, Object> map : results) {
ViewReportTwoDto viewReportTwoDto = MapObjUtil.map2ObjectUnderlined(map, ViewReportTwoDto.class);
viewReportTwoDto.setIspriority(taskConfig.getPriority());
viewReportTwoDto.setIspriority(collectionDto.getPriority());
list.add(viewReportTwoDto);
}
try {
GenerateQueue(list, taskConfig.getSyscodes());
GenerateQueue(list, collectionDto);
} 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) {
// List<NoViewConfig> configs = initNoviewConfig();
private void GenerateQueue(List<ViewReportTwoDto> list, NoViewCollectionDto collectionDto) {
String syscodes = collectionDto.getSyscodes();
List<NoViewConfig> configs = collectionDto.getNoviewconfig();
Map<String, Object> queuemerge = collectionDto.getQueuemerge();
List<CollectsysDictionary> collectsysDictionaries = afCollectSysDictionary.findAll();
if (!StringUtils.isEmpty(syscodes)) {
List<String> collectids = Arrays.asList(syscodes.split(","));
@ -104,7 +102,7 @@ public class DefNoViewJobResultImpl
k.setCollectorId(o.getSysCode());
if (docusProperties.getMode().equals(DisposeModeEnum.mq)) {
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);
mqMessage.setMessageBody(JSON.toJSONString(k, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteMapNullValue));
amqpTemplate.convertAndSend("", mqKey, mqMessage);
@ -116,13 +114,11 @@ public class DefNoViewJobResultImpl
}
}
private static String getQueueKey(String sysCode) {
TableJsonRead tableJsonRead = new TableJsonRead();
JSONObject read = tableJsonRead.Read("docus", "queuemerge", JSONObject.class);
if (read == null || read.size() <= 0) {
private static String getQueueKey(String sysCode, Map<String, Object> queuemerge) {
if (Func.isNull(queuemerge)) {
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 (StrUtil.isBlank(String.valueOf(merge.getValue())) || "null".equals(String.valueOf(merge.getValue()))) {
return sysCode;

@ -35,7 +35,13 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource;
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;
@Slf4j
@ -485,8 +491,4 @@ public abstract class AbstractViewJobResultImpl<T> implements IJobResult<T> {
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>>> {
@Override
public void handle(List<Map<String, Object>> results, String dsKey) {
super.handle(results, dsKey);
public void handle(List<Map<String, Object>> results, String param) {
super.handle(results, param);
}
}

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

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

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

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

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

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

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

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

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

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

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

@ -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: root
password: root
username: docus
password: docus702
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: root
password: root
username: docus
password: docus702
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: root
password: root
username: docus
password: docus702
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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
password: root@123456
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:

@ -13,5 +13,5 @@ public interface ICollector<T> {
* @param taskConfig
* @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;
import java.util.Map;
/**
* @author linruifeng
* @date 2023/6/14 14:27
@ -9,19 +7,10 @@ import java.util.Map;
public interface IJobResult<T> extends IResult<T> {
/**
* job
*
* @param results
* @param dsKey key
*/
void handle(T results, String dsKey);
/**
* job
* job
*
* @param results
* @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
public void doHandle(List<TBasicDTO> results) {
public void doHandle(List<TBasicDTO> results, String param) {
basicService.batchSaveBasics(results);
}
@ -48,6 +48,6 @@ public class TBasicHttpCollectJob extends AbstractCollectJob<TBasicDTO> {
@Override
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
public void doHandle(List<TBasicDTO> results) {
public void doHandle(List<TBasicDTO> results,String param) {
basicService.batchSaveBasics(results);
}

@ -39,7 +39,7 @@ public class TBasicWsCollectJob extends AbstractCollectJob<TBasicDTO> {
}
@Override
public void doHandle(List<TBasicDTO> results) {
public void doHandle(List<TBasicDTO> results, String param) {
basicService.batchSaveBasics(results);
}
@ -47,7 +47,7 @@ public class TBasicWsCollectJob extends AbstractCollectJob<TBasicDTO> {
@Override
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
public void doHandle(List<DeptDTO> results) {
public void doHandle(List<DeptDTO> results, String param) {
deptService.batchInsertOrUpdatePowerDept(results);
}
@SuppressWarnings("unchecked")
@Override
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
public void doHandle(List<DeptDTO> results) {
public void doHandle(List<DeptDTO> results, String param) {
deptService.batchInsertOrUpdatePowerDept(results);
}

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

@ -1,5 +1,6 @@
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.collect.ICollector;
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.job.AbstractCollectJob;
import com.docus.server.collect.web.utils.PeriodTime;
import com.docus.server.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class BlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}

@ -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.job.AbstractCollectJob;
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.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class EcgViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}

@ -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.job.AbstractCollectJob;
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.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class EmrViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}

@ -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.job.AbstractCollectJob;
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.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class HlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}
@Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写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.job.AbstractCollectJob;
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.lis.common.DSKeyConstants;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class IssubmitViewCollectJob extends AbstractCollectJob<Map<String, Objec
@SuppressWarnings("unchecked")
@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);
}
@Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。

@ -48,7 +48,7 @@ public class LisViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}

@ -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.job.AbstractCollectJob;
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.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class PacsViewCollectJob extends AbstractCollectJob<Map<String, Object>>
@SuppressWarnings("unchecked")
@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);
}
@Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写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.job.AbstractCollectJob;
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.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,10 +48,9 @@ public class VteViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}
@Override
public List<Map<String, Object>> execute(PeriodTime periodTime, TaskConfig taskConfig) {
//每家医院按照固定的格式写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.job.AbstractCollectJob;
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.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@ -48,7 +48,7 @@ public class ZzViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
@SuppressWarnings("unchecked")
@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);
}

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

@ -39,7 +39,7 @@ public class UserWsCollectJob extends AbstractCollectJob<UserDTO> {
}
@Override
public void doHandle(List<UserDTO> results) {
public void doHandle(List<UserDTO> results, String param) {
userService.batchInsertOrUpdatePowerUser(results);
}
@ -47,6 +47,6 @@ public class UserWsCollectJob extends AbstractCollectJob<UserDTO> {
@Override
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 Date incPointerTime;
/**
*
*/
private String where = "";
/**
*
*/
private Integer interval = 5;
/**
* 0,1:
*/
private Integer holiday = 0;
/**
* ids, ,
*
*/
private String syscodes = "";
/**
* , 0:1:
*/
private int queryway = 0;
/**
*
*/
private int priority = 1;
private String param;
/**
*
*/

@ -41,11 +41,13 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
@Override
public void startCollectAll(String taskConfigId) {
TaskConfig taskConfig = getTaskConfig(taskConfigId);
try {
List<PeriodTime> periodTimes = taskConfig.getAllPeriodTimes();
for (PeriodTime periodTime : periodTimes) {
get(periodTime, taskConfig);
page(periodTime, taskConfig);
taskConfigService.updateAllPointerDate(taskConfigId, periodTime.getPeriodEndDate());
}
} catch (Exception ex) {
@ -53,39 +55,39 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
updateTaskState(ex.getMessage(), taskConfig);
}
if (StateEnum.FAIL.equals(taskConfig.getState())) {
updateTaskState(taskConfig);
}
refreshTaskState(taskConfig);
}
@Override
public void startCollectIncrement(String taskConfigId) {
TaskConfig taskConfig = getTaskConfig(taskConfigId);
try {
try {
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) {
log.error(ex.getMessage(), ex);
updateTaskState(ex.getMessage(), taskConfig);
}
if (StateEnum.FAIL.equals(taskConfig.getState())) {
updateTaskState(taskConfig);
}
refreshTaskState(taskConfig);
}
@Override
public void get(PeriodTime periodTime, TaskConfig taskConfig) {
public void page(PeriodTime periodTime, TaskConfig taskConfig) {
//考虑到性能,应该把起始时间和结束时间进行切割拆分到每天。按段查询。
List<T> results;
int pageNum = 1;
for (; true; pageNum++) {
taskConfig.setPageNum(pageNum);
@ -99,14 +101,22 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
}
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);
private void refreshTaskState(TaskConfig taskConfig) {
if (StateEnum.FAIL.equals(taskConfig.getState())) {
updateTaskState(taskConfig);
}
}
private void updateTaskState(TaskConfig taskConfig) {
taskConfig.setState(StateEnum.OK);
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.service.IAfCollectSysDictionary;
import com.docus.server.common.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class AfCollectSysDictionaryImpl
extends BaseServiceImpl<AfCollectSysDictionaryMapper, CollectsysDictionary> implements IAfCollectSysDictionary {
}

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

Loading…
Cancel
Save