You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.3 KiB
Java
133 lines
4.3 KiB
Java
package com.docus.bgts.config;
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.docus.bgts.entity.TableJsonRead;
|
|
import com.docus.bgts.facade.IBgtsService;
|
|
import com.docus.bgts.service.CheckIntegrityService;
|
|
import com.docus.bgts.utils.FileUtils;
|
|
import com.docus.bgts.utils.HttpUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
@Component
|
|
public class MyScheduling {
|
|
@Value("${beat.url}")
|
|
private String beatUrl;
|
|
|
|
public static String syncFlag;
|
|
private final String tempfilePrefix="dataConfig\\temp";
|
|
private final String tempDataFileName="collectTimeTemp";
|
|
private final String lastTimeStr="lastTime";
|
|
|
|
static {
|
|
syncFlag=FileUtils.getJsonByName("syncFlag").toString();
|
|
}
|
|
|
|
@Autowired
|
|
IBgtsService bgtsService;
|
|
|
|
@Autowired
|
|
CheckIntegrityService checkIntegrityService;
|
|
|
|
private Logger logger = LogManager.getLogger(MyScheduling.class);
|
|
|
|
//5分钟执行一次心跳
|
|
/*@Scheduled(fixedRate = 1000 * 60 * 5)
|
|
public void beat() {
|
|
Map<String, String> params = new HashMap<>();
|
|
params.put("code", String.valueOf(FileUtils.getJsonByName("collectorid")));
|
|
try {
|
|
HttpUtils.get(beatUrl, params);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.info("心跳推送出错,可能是住院服务没有开启");
|
|
}
|
|
}*/
|
|
|
|
|
|
/**
|
|
* 手麻/重症采集器
|
|
* 10分钟执行一次
|
|
*/
|
|
// @Scheduled(fixedRate = 1000 * 60 * 10)
|
|
// public void collect() {
|
|
// String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
|
|
// String isStartCollect = String.valueOf(FileUtils.getJsonByName("isStartCollect"));
|
|
// if (isStartCollect.equals("0")) {
|
|
// return;
|
|
// }
|
|
// if ((!collectorid.equals(Codes.SMCODE.getCode())) && (!collectorid.equals(Codes.ZZCODE.getCode()))) {
|
|
// return;
|
|
// }
|
|
// bgtsService.timerCollect();
|
|
// }
|
|
|
|
/**
|
|
* 批量按需采集
|
|
* 5分钟执行一次
|
|
*/
|
|
@Scheduled(fixedRate = 1000 * 5 )
|
|
public void collectByExamNo(){
|
|
String collectOpen = String.valueOf(FileUtils.getJsonByName("collectOpen"));
|
|
if (collectOpen.equals("1")){
|
|
logger.info("按需采集开始----------");
|
|
String collectStartDate = String.valueOf(FileUtils.getJsonByName("collectStartDate"));
|
|
String collectEndDate = String.valueOf(FileUtils.getJsonByName("collectEndDate"));
|
|
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
|
|
bgtsService.collectByDate(collectStartDate,collectEndDate,collectorid);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 完整性校验
|
|
*/
|
|
@Scheduled(fixedRate = 1000 * 5 * 60)
|
|
public void syncIntegrality() {
|
|
if (null == syncFlag || "0".equals(syncFlag)) {
|
|
|
|
} else {
|
|
//获取最后时间
|
|
String lastDate = getLastDate();
|
|
if(StringUtils.isNotBlank(lastDate)) {
|
|
Date date = new Date();
|
|
boolean flag = checkIntegrityService.addSyncIntegrality(lastDate, null);
|
|
if(flag) {
|
|
refreshLastDate(date);
|
|
}
|
|
}else{
|
|
logger.info("采集时间为空");
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* 上次采集时间
|
|
* @return
|
|
*/
|
|
private String getLastDate(){
|
|
TableJsonRead tableJsonRead = new TableJsonRead();
|
|
Map<String,String> map = tableJsonRead.Read(tempfilePrefix, tempDataFileName,Map.class);
|
|
return map.get(lastTimeStr);
|
|
}
|
|
|
|
/**
|
|
* 刷新上次采集时间
|
|
*/
|
|
private void refreshLastDate(Date lastDate){
|
|
String lastTime = DateUtil.format(lastDate, "yyyy-MM-dd HH:mm:ss");
|
|
TableJsonRead tableJsonRead = new TableJsonRead();
|
|
Map<String, String> map = new HashMap<>();
|
|
map.put(lastTimeStr, lastTime);
|
|
tableJsonRead.Save(tempfilePrefix, tempDataFileName, JSON.toJSONString(map));
|
|
}
|
|
}
|