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(); } }