ExportCenterController.java 2.66 KB
package com.taover.bazhuayun.analysis.web.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.taover.bazhuayun.analysis.util.FileContentTypeUtils;
import com.taover.bazhuayun.analysis.web.service.ExportCenterService;
import com.taover.util.UtilLog;

@RestController("exportcenter")
@RequestMapping("/exportcenter")
public class ExportCenterController {
	@Resource
	private ExportCenterService exportCenterService;
	
	@GetMapping("/wareorderfile")
	public void wareOrderFile(@RequestParam(name="tenantId", required=true) Integer tenantId,
			@RequestParam(name="startDate", defaultValue = "") String startDateStr,
			@RequestParam(name="endDate", defaultValue = "") String endDateStr,
			HttpServletResponse response) {
		Date startDate = new Date();
		Date endDate = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		if(StringUtils.isNotBlank(startDateStr)) {
			try {
				startDate = sdf.parse(startDateStr.substring(0, 10));
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		if(StringUtils.isNotBlank(endDateStr)) {
			try {
				endDate = sdf.parse(endDateStr.substring(0, 10));
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		
		File orderFile = null;
		try {
			orderFile = this.exportCenterService.wareOrderFile(tenantId, startDate, endDate);
		} catch (IOException e1) {
			UtilLog.errorForException(e1, this.getClass());
			return;
		}
		try {
			this.writeFielToResponse(response, orderFile);
		} catch (IOException e) {
			UtilLog.errorForException(e, this.getClass());
		}
	}
	
	private void writeFielToResponse(HttpServletResponse response, File file) throws IOException {
		OutputStream stream = response.getOutputStream();
        FileInputStream reader = new FileInputStream(file);
        byte[] data= new byte[(int)file.length()];
        reader.read(data);
        reader.close();

        //记得设置ContentType
        String fileName = file.getName();
        response.setContentType(FileContentTypeUtils.contentType(fileName.substring(fileName.lastIndexOf("."))));
        response.setHeader("Content-Dis", "filename="+file.getName());
        stream.write(data);
        stream.flush();
	}
}