java-使用BufferedWriter离线下载csv/Excel文件,使用response在线下载csv/Excel文件

 离线下载:


	   @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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值