离线下载:
@Scheduled(cron = "${dmp.task.download-task.cron}")
public void isRun() throws IOException {
if (null != isDownload && isDownload.equals("1")){
log.info("############开始调用离线下载程序!");
String excelOrCsv = dmpSysConfigService.getSegmentDownloadExcelOrCsv();
if ("1".equals(excelOrCsv)){
consoleInfo();
}else {
log.info("#########excelOrCsv:"+excelOrCsv+"csv下载模式");
consoleInfoCsv();
}
}else {
log.info("############不执行下载任务!");
}
}
public File consoleInfoCsv()throws IOException {
File csvFile = null;
BufferedWriter csvWtriter = null;
if (taskFlag) {//如果正在执行
log.info("#######有正在执行的任务--退出,等待下次执行");
return csvFile;//退出,等下下次执行
} else {
log.info("#######锁住程序");
taskFlag = true;//锁住程序
}
DownLoadTaskEntity downLoadTask = new DownLoadTaskEntity();
downLoadTask.setStatus(1);
//查询所有待处理的任务
List<DownLoadTaskEntity> taskList = this.getAllDownLoadTask(downLoadTask);
log.info("############待处理的条数为:"+taskList.size());
if (taskList != null && taskList.size() > 0) {
log.info("#########csv下载模式");
String csvFilePath = downloadPath;
log.info(">>>>>>>>>>离线下载任务 csvFilePath=" + csvFilePath);
for (DownLoadTaskEntity task : taskList) {//循环处理任务
log.info(">>>>>>>>>>执行离线下载任务,taskId=" + task.getTaskId() + "start");
task.setStatus(2);//设置状态为正在执行
task.setUpdateTime(new Date());
int num = this.updateTask(task);
if (num > 0) {//状态锁定成功
//查询数据
String conditions = task.getConditions();
JSONObject json = new JSONObject();
json = json.fromObject(conditions);
JSONArray downCols = json.optJSONArray("downCols");//es下载列
JSONArray downHeaders = json.optJSONArray("downHeaders");//抬头
String expression = json.optString("expression") == "" ? null : json.optString("expression");//标签ID
String segmentId = json.optString("segmentId") == "" ? null : json.optString("segmentId");
Long userId = json.optLong("userId");
Long deptId = json.optLong("deptId");
String deptCode = json.optString("deptCode");
int type = json.optInt("type");
String keyWord = json.optString("keyWord") == "" ? null : json.optString("keyWord");
String productIdStr = json.optString("productIdStr") == "" ? null : json.optString("productIdStr");
String last = json.optString("last") == "" ? null : json.optString("last");
String start = json.optStr