Browse Source

增加通过任务号下载耳标数据、通过耳标号下载耳标数据

zhuoning 3 năm trước cách đây
mục cha
commit
1aad472ba3

+ 2 - 2
huimv-manage/src/main/java/com/huimv/manage/common/config/InterceptorConfig.java

@@ -20,7 +20,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
 
 
     @Override
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(jwtInterceptor()).
-                excludePathPatterns("/my/*");
+//        registry.addInterceptor(jwtInterceptor()).
+//                excludePathPatterns("/my/*");
     }
     }
 }
 }

+ 3 - 1
huimv-manage/src/main/java/com/huimv/manage/eartag/controller/ApplyController.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.util.Date;
 
 
@@ -114,7 +115,6 @@ public class ApplyController {
         // Step1.构造请求字串
         // Step1.构造请求字串
         // Step2.发送请求传
         // Step2.发送请求传
         // Step3.请求结果入库
         // Step3.请求结果入库
-
         String stateBln = produceMissionTask.parseReturnSetMissionHasDownStateXML(soap.callSoap(produceMissionTask.getSetMissionHasDownloadXML(applyId), webServiceUrl));
         String stateBln = produceMissionTask.parseReturnSetMissionHasDownStateXML(soap.callSoap(produceMissionTask.getSetMissionHasDownloadXML(applyId), webServiceUrl));
         if (stateBln.trim().equalsIgnoreCase("true")) {
         if (stateBln.trim().equalsIgnoreCase("true")) {
             // 修改状态
             // 修改状态
@@ -123,4 +123,6 @@ public class ApplyController {
             return new Result(Const.CODE_UPDATE_STATE_FAIL, Const.UPDATE_STATE_FAIL, false);
             return new Result(Const.CODE_UPDATE_STATE_FAIL, Const.UPDATE_STATE_FAIL, false);
         }
         }
     }
     }
+
+
 }
 }

+ 37 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/controller/EarmarkController.java

@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.util.Date;
@@ -137,5 +138,41 @@ public class EarmarkController {
         return earmarkService.setPrintState(ids,state);
         return earmarkService.setPrintState(ids,state);
     }
     }
 
 
+    /**
+     * @Method      : exportEarmarkByApply
+     * @Description : 通过任务号下载耳标号
+     * @Params      : [applyId, printState, response]
+     * @Return      : void
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/9
+     * @Time        : 14:37
+     */
+    @RequestMapping(value = "/exportEarmarkByApply",method = RequestMethod.GET)
+    public void exportEarmarkByApply(@RequestParam(value = "applyId",required = true) Integer applyId,
+                                     @RequestParam(value = "printState",required = false) Integer printState,
+                                     @RequestParam(value = "quantity",required = true) Integer quantity,
+                                     HttpServletResponse response) throws IOException {
+        //
+        earmarkService.exportEarmarkByApply(applyId,printState,quantity,response);
+    }
 
 
+    /**
+     * @Method      : exportEarmarkByEarmark
+     * @Description : 通过耳标号下载耳标数据
+     * @Params      : [ids, printState, quantity, response]
+     * @Return      : void
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/9       
+     * @Time        : 19:05
+     */
+    @RequestMapping(value = "/exportEarmarkByEarmark",method = RequestMethod.GET)
+    public void exportEarmarkByEarmark(@RequestParam(value = "ids",required = true) String ids,
+                                     @RequestParam(value = "printState",required = false) Integer printState,
+                                     @RequestParam(value = "quantity",required = true) Integer quantity,
+                                     HttpServletResponse response) throws IOException {
+        //
+        earmarkService.exportEarmarkByEarmark(ids,printState,quantity,response);
+    }
 }
 }

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/service/IApplyService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.huimv.manage.dao.entity.EtApplyEntity;
 import com.huimv.manage.dao.entity.EtApplyEntity;
 import com.huimv.manage.util.Result;
 import com.huimv.manage.util.Result;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
@@ -22,4 +23,5 @@ public interface IApplyService {
 
 
     // 展示任务列表(带分页)
     // 展示任务列表(带分页)
     Result listApply(Integer applyId, Date startDate, Date endDate, Integer returnState, Integer deliverState, Integer pageSize, Integer pageNo);
     Result listApply(Integer applyId, Date startDate, Date endDate, Integer returnState, Integer deliverState, Integer pageSize, Integer pageNo);
+
 }
 }

+ 6 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/service/IEarmarkService.java

@@ -2,6 +2,7 @@ package com.huimv.manage.eartag.service;
 
 
 import com.huimv.manage.util.Result;
 import com.huimv.manage.util.Result;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.util.Date;
@@ -26,4 +27,9 @@ public interface IEarmarkService {
     //设置打码状态
     //设置打码状态
     Result setPrintState(String ids, int state);
     Result setPrintState(String ids, int state);
 
 
+    // 通过任务号导出耳标数据
+    void exportEarmarkByApply(Integer applyId, Integer printState,Integer quantity, HttpServletResponse response) throws IOException;
+
+    // 通过耳标号导出耳标数据
+    void exportEarmarkByEarmark(String ids, Integer printState, Integer quantity, HttpServletResponse response) throws IOException;
 }
 }

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/service/impl/ApplyServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
 import javax.persistence.criteria.*;
 import javax.persistence.criteria.*;
+import javax.servlet.http.HttpServletResponse;
 import java.sql.Timestamp;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
@@ -174,6 +175,7 @@ public class ApplyServiceImpl implements IApplyService {
             return new Result(Const.CODE_NO_RECORD, Const.NO_RECORD, false);
             return new Result(Const.CODE_NO_RECORD, Const.NO_RECORD, false);
         }
         }
     }
     }
+    
 
 
 
 
 }
 }

+ 83 - 8
huimv-manage/src/main/java/com/huimv/manage/eartag/service/impl/EarmarkServiceImpl.java

@@ -6,10 +6,7 @@ import com.huimv.manage.dao.entity.EtApplyEntity;
 import com.huimv.manage.dao.entity.EtEarmarkEntity;
 import com.huimv.manage.dao.entity.EtEarmarkEntity;
 import com.huimv.manage.dao.repo.EarmarkRepo;
 import com.huimv.manage.dao.repo.EarmarkRepo;
 import com.huimv.manage.eartag.service.IEarmarkService;
 import com.huimv.manage.eartag.service.IEarmarkService;
-import com.huimv.manage.util.CodeUtil;
-import com.huimv.manage.util.Const;
-import com.huimv.manage.util.Result;
-import com.huimv.manage.util.ResultCode;
+import com.huimv.manage.util.*;
 import com.huimv.manage.webservice.Soap;
 import com.huimv.manage.webservice.Soap;
 import com.huimv.manage.webservice.task.EarmarkTask;
 import com.huimv.manage.webservice.task.EarmarkTask;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,13 +20,11 @@ import org.springframework.stereotype.Service;
 
 
 import javax.persistence.criteria.Order;
 import javax.persistence.criteria.Order;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.sql.Timestamp;
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 
 /**
 /**
  * @Project : huimv.shiwan
  * @Project : huimv.shiwan
@@ -51,6 +46,8 @@ public class EarmarkServiceImpl implements IEarmarkService {
     private Soap soap;
     private Soap soap;
     @Autowired
     @Autowired
     private CodeUtil codeUtil;
     private CodeUtil codeUtil;
+    @Autowired
+    private ExcelUtil excelUtil;
 
 
     /**
     /**
      * @Method      : listEarmark
      * @Method      : listEarmark
@@ -289,4 +286,82 @@ public class EarmarkServiceImpl implements IEarmarkService {
         }
         }
         return newEarmarkJa;
         return newEarmarkJa;
     }
     }
+
+    /**
+     * @Method      : exportEarmarkByApply
+     * @Description : 通过任务号导出耳标号
+     * @Params      : [applyId]
+     * @Return      : void
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/9
+     * @Time        : 14:11
+     */
+    @Override
+    public void exportEarmarkByApply(Integer applyId,Integer printState,Integer quantity, HttpServletResponse response) throws IOException {
+        Specification<EtEarmarkEntity> specific = (Specification<EtEarmarkEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            if (null != applyId) {
+                predList.add(criteriaBuilder.equal(root.get("applyId").as(Integer.class), applyId));
+            }
+            if (null != printState) {
+                predList.add(criteriaBuilder.equal(root.get("printState").as(Integer.class), printState));
+            }
+            //
+            Predicate[] pred = new Predicate[predList.size()];
+            Predicate and = criteriaBuilder.and(predList.toArray(pred));
+            criteriaQuery.where(and);
+            //
+            List<Order> orders = new ArrayList<>();
+            orders.add(criteriaBuilder.asc(root.get("id")));
+            return criteriaQuery.orderBy(orders).getRestriction();
+        };
+        //
+        List<EtEarmarkEntity> dataList = earmarkRepo.findAll(specific);
+        //
+        excelUtil.exportEarmarkExcel(response,Const.EXPORT_EARMARK_EXCEL,String.valueOf(applyId),dataList,quantity);
+        // test
+//        excelUtil.exportEarmarkExcel(applyId,dataList,quantity);
+    }
+
+    @Override
+    public void exportEarmarkByEarmark(String ids, Integer printState, Integer quantity, HttpServletResponse response) throws IOException {
+        Specification<EtEarmarkEntity> specific = (Specification<EtEarmarkEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+
+            //
+            List<Predicate> predList = new ArrayList<>();
+            if (null != ids && !ids.trim().equalsIgnoreCase("null")) {
+                String[] idsArray =  ids.split(",");
+                Integer[] idArrInt = new Integer[idsArray.length];
+                for(int a=0;a<idsArray.length;a++){
+                    idArrInt[a]=Integer.parseInt(idsArray[a]);
+                }
+//                predList.add(criteriaBuilder.equal(root.get("id").as(Integer.class), applyId));
+                predList.add(root.get("id").as(Integer.class).in(idArrInt));
+            }
+            if (null != printState) {
+                predList.add(criteriaBuilder.equal(root.get("printState").as(Integer.class), printState));
+            }
+            //
+            Predicate[] pred = new Predicate[predList.size()];
+            Predicate and = criteriaBuilder.and(predList.toArray(pred));
+            criteriaQuery.where(and);
+            //
+            List<Order> orders = new ArrayList<>();
+            orders.add(criteriaBuilder.asc(root.get("id")));
+            return criteriaQuery.orderBy(orders).getRestriction();
+        };
+        //
+        List<EtEarmarkEntity> dataList = earmarkRepo.findAll(specific);
+        String applyId = null;
+        if(dataList.size() > 0){
+            EtEarmarkEntity earmarkEntity = dataList.get(0);
+            applyId = earmarkEntity.getApplyId();
+        }
+        //
+        excelUtil.exportEarmarkExcel(response,Const.EXPORT_EARMARK_EXCEL,applyId,dataList,quantity);
+        // test
+//        excelUtil.exportEarmarkExcel(applyId,dataList,quantity);
+    }
 }
 }

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/util/Const.java

@@ -37,4 +37,6 @@ public final class Const {
 
 
     public static final Integer CODE_UPDATE_EARMARK_DOWN_STATE_FAIL = 10008;
     public static final Integer CODE_UPDATE_EARMARK_DOWN_STATE_FAIL = 10008;
     public static final String UPDATE_EARMARK_DOWN_STATE_FAIL = "设置指定耳标号为已下载状态失败.";
     public static final String UPDATE_EARMARK_DOWN_STATE_FAIL = "设置指定耳标号为已下载状态失败.";
+
+    public static final String EXPORT_EARMARK_EXCEL = "耳标号二维码打码数据.xlsx";
 }
 }

+ 317 - 0
huimv-manage/src/main/java/com/huimv/manage/util/ExcelUtil.java

@@ -0,0 +1,317 @@
+package com.huimv.manage.util;
+
+import com.huimv.manage.dao.entity.EtEarmarkEntity;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.streaming.SXSSFSheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFDataFormat;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class ExcelUtil {
+
+    /**
+     * @Method      : uploadExcelAboutUser
+     * @Description : 导出excel的耳标号二维码数据
+     * @Params      : [response, fileName, dataList]
+     * @Return      : void
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/9       
+     * @Time        : 14:47
+     */
+    public void exportEarmarkExcel(HttpServletResponse response, String fileName,String applyId, List<EtEarmarkEntity> dataList,Integer quantity) throws IOException {
+        List<String> titleList = Arrays.asList("序号","耳标编号", "耳标编码号", "申请ID", "耳标二维码数据","打码状态");
+        System.out.println("开始导出数据......");
+        //声明输出流
+        OutputStream os = null;
+        //设置响应头
+        setResponseHeader(response,fileName);
+        try {
+            //获取输出流
+            os = response.getOutputStream();
+            //内存中保留1000条数据,以免内存溢出,其余写入硬盘
+            SXSSFWorkbook wb = new SXSSFWorkbook(quantity);
+            /** 设置格式* */
+            wb.setCompressTempFiles(true);
+            // 设置并获取到需要的样式
+            XSSFCellStyle cellStyleHeader = getAndSetXSSFCellStyleHeader(wb);
+            XSSFCellStyle cellStyleOne = getAndSetXSSFCellStyleOne(wb);
+            //获取该工作区的第一个sheet
+            SXSSFSheet sheet1 = wb.createSheet(String.valueOf(applyId)+"("+String.valueOf(dataList.size())+")");
+            sheet1.createFreezePane(0, 1);
+            // 在后面设置sheet
+            setSheet(sheet1);
+            int excelRow = 0;
+            //创建标题行
+            Row titleRow = sheet1.createRow(excelRow);
+            for(int i = 0;i<titleList.size();i++){
+                //创建该行下的每一列,并写入标题数据
+                Cell cell = titleRow.createCell(i);
+                cell.setCellValue(titleList.get(i));
+                cell.setCellStyle(cellStyleHeader);
+            }
+            //设置内容行
+            if(dataList!=null && dataList.size()>0){
+                //序号是从1开始的
+                int count = 0;
+                for(int a=0;a<dataList.size();a++){
+                    EtEarmarkEntity earmarkEntity = dataList.get(a);
+                    count = 0;
+                    Row dataRow = sheet1.createRow(++excelRow);
+                    Cell cell0 = dataRow.createCell(count++);
+                    cell0.setCellValue(excelRow);
+                    cell0.setCellStyle(cellStyleOne);
+                    Cell cell1 = dataRow.createCell(count++);
+                    cell1.setCellValue(earmarkEntity.getEarmarkId());
+                    cell1.setCellStyle(cellStyleOne);
+                    Cell cell2 = dataRow.createCell(count++);
+                    cell2.setCellValue(earmarkEntity.getEarmarkNumber());
+                    cell2.setCellStyle(cellStyleOne);
+                    Cell cell3 = dataRow.createCell(count++);
+                    cell3.setCellValue(earmarkEntity.getApplyId());
+                    cell3.setCellStyle(cellStyleOne);
+                    Cell cell4 = dataRow.createCell(count++);
+                    cell4.setCellValue(earmarkEntity.getEarmarkData());
+                    cell4.setCellStyle(cellStyleOne);
+                    Cell cell5 = dataRow.createCell(count++);
+                    if(earmarkEntity.getSetPrintState() == null){
+                        cell5.setCellValue("0");
+                    }else{
+                        cell5.setCellValue(earmarkEntity.getSetPrintState());
+                    }
+                    cell5.setCellStyle(cellStyleOne);
+                }
+            }
+            // test
+//            fos = new FileOutputStream(excelExportDestfilepath);
+//            wb.write(fos);
+            //将整理好的excel数据写入流中
+            wb.write(os);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                // 关闭输出流
+                if (os != null) {
+                    os.close();
+                }
+                System.out.println("导出完成.");
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    // test
+    public void exportEarmarkExcel(String applyId,List<EtEarmarkEntity> dataList,Integer quantity){
+        List<String> titleList = Arrays.asList("序号","耳标编号", "耳标编码号", "申请ID", "耳标二维码数据","打码状态");
+        System.out.println("开始导出数据......");
+        // test
+        String excelExportDestfilepath = "C:\\Users\\huimv\\Desktop\\3\\abc.xlsx";
+        //声明输出流
+        OutputStream os = null;
+        FileOutputStream fos = null;
+        //设置响应头
+//        setResponseHeader(response,fileName);
+        try {
+            //获取输出流
+//            os = response.getOutputStream();
+            //内存中保留1000条数据,以免内存溢出,其余写入硬盘
+            SXSSFWorkbook wb = new SXSSFWorkbook(quantity);
+            /** 设置格式* */
+//            wb.setCompressTempFiles(true);
+            // 设置并获取到需要的样式
+            XSSFCellStyle cellStyleHeader = getAndSetXSSFCellStyleHeader(wb);
+            XSSFCellStyle cellStyleOne = getAndSetXSSFCellStyleOne(wb);
+            //获取该工作区的第一个sheet
+            SXSSFSheet sheet1 = wb.createSheet(String.valueOf(applyId)+"("+String.valueOf(dataList.size())+")");
+            sheet1.createFreezePane(0, 1);
+            // 在后面设置sheet
+            setSheet(sheet1);
+            int excelRow = 0;
+            //创建标题行
+            Row titleRow = sheet1.createRow(excelRow);
+            for(int i = 0;i<titleList.size();i++){
+                //创建该行下的每一列,并写入标题数据
+                Cell cell = titleRow.createCell(i);
+                cell.setCellValue(titleList.get(i));
+                cell.setCellStyle(cellStyleHeader);
+            }
+            //设置内容行
+            if(dataList!=null && dataList.size()>0){
+                //序号是从1开始的
+                int count = 0;
+                for(int a=0;a<dataList.size();a++){
+                    EtEarmarkEntity earmarkEntity = dataList.get(a);
+                    count = 0;
+                    Row dataRow = sheet1.createRow(++excelRow);
+                    Cell cell0 = dataRow.createCell(count++);
+                    cell0.setCellValue(excelRow);
+                    cell0.setCellStyle(cellStyleOne);
+                    Cell cell1 = dataRow.createCell(count++);
+                    cell1.setCellValue(earmarkEntity.getEarmarkId());
+                    cell1.setCellStyle(cellStyleOne);
+                    Cell cell2 = dataRow.createCell(count++);
+                    cell2.setCellValue(earmarkEntity.getEarmarkNumber());
+                    cell2.setCellStyle(cellStyleOne);
+                    Cell cell3 = dataRow.createCell(count++);
+                    cell3.setCellValue(earmarkEntity.getApplyId());
+                    cell3.setCellStyle(cellStyleOne);
+                    Cell cell4 = dataRow.createCell(count++);
+                    cell4.setCellValue(earmarkEntity.getEarmarkData());
+                    cell4.setCellStyle(cellStyleOne);
+                    Cell cell5 = dataRow.createCell(count++);
+                    if(earmarkEntity.getSetPrintState() == null){
+                        cell5.setCellValue("0");
+                    }else{
+                        cell5.setCellValue(earmarkEntity.getSetPrintState());
+                    }
+                    cell5.setCellStyle(cellStyleOne);
+                }
+            }
+            // test
+            fos = new FileOutputStream(excelExportDestfilepath);
+            wb.write(fos);
+            //将整理好的excel数据写入流中
+//            wb.write(os);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                // 关闭输出流
+                if (os != null) {
+                    os.close();
+                }
+                System.out.println("导出完成.");
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    /**
+     * 获取并设置header样式
+     */
+    private XSSFCellStyle getAndSetXSSFCellStyleHeader(SXSSFWorkbook sxssfWorkbook) {
+        XSSFCellStyle xssfCellStyle = (XSSFCellStyle) sxssfWorkbook.createCellStyle();
+        Font font = sxssfWorkbook.createFont();
+        // 字体大小
+        font.setFontHeightInPoints((short) 13);
+        // 字体粗细
+//        font.setBoldweight((short) 20);
+        font.setBold(true);
+        // 将字体应用到样式上面
+        xssfCellStyle.setFont(font);
+        // 是否自动换行
+        xssfCellStyle.setWrapText(false);
+        // 水平居中
+        xssfCellStyle.setAlignment(HorizontalAlignment.CENTER);
+        // 垂直居中
+        xssfCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        return xssfCellStyle;
+    }
+    /**
+     * 获取并设置样式一
+     */
+    private XSSFCellStyle getAndSetXSSFCellStyleOne(SXSSFWorkbook sxssfWorkbook) {
+        XSSFCellStyle xssfCellStyle = (XSSFCellStyle) sxssfWorkbook.createCellStyle();
+        XSSFDataFormat format = (XSSFDataFormat)sxssfWorkbook.createDataFormat();
+        // 是否自动换行
+        xssfCellStyle.setWrapText(false);
+        // 水平居中
+        xssfCellStyle.setAlignment(HorizontalAlignment.CENTER);
+        // 垂直居中
+        xssfCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 前景颜色
+//        xssfCellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
+//        xssfCellStyle.setFillForegroundColor(IndexedColors.AQUA.getIndex());
+        // 边框
+//        xssfCellStyle.setBorderBottom(BorderStyle.THIN);
+//        xssfCellStyle.setBorderRight(BorderStyle.THIN);
+//        xssfCellStyle.setBorderTop(BorderStyle.THIN);
+//        xssfCellStyle.setBorderLeft(BorderStyle.THIN);
+//        xssfCellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
+//        xssfCellStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
+//        xssfCellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());
+//        xssfCellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
+        // 防止数字过长,excel导出后,显示为科学计数法,如:防止8615192053888被显示为8.61519E+12
+        xssfCellStyle.setDataFormat(format.getFormat("0"));
+        return xssfCellStyle;
+    }
+
+    /**
+     * 获取并设置样式二
+     */
+    private XSSFCellStyle getAndSetXSSFCellStyleTwo(SXSSFWorkbook sxssfWorkbook) {
+        XSSFCellStyle xssfCellStyle = (XSSFCellStyle) sxssfWorkbook.createCellStyle();
+        XSSFDataFormat format = (XSSFDataFormat)sxssfWorkbook.createDataFormat();
+        // 是否自动换行
+        xssfCellStyle.setWrapText(false);
+        // 水平居中
+        xssfCellStyle.setAlignment(HorizontalAlignment.CENTER);
+        // 边框
+        xssfCellStyle.setBorderBottom(BorderStyle.THIN);
+        xssfCellStyle.setBorderRight(BorderStyle.THIN);
+        xssfCellStyle.setBorderTop(BorderStyle.THIN);
+        xssfCellStyle.setBorderLeft(BorderStyle.THIN);
+        xssfCellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
+        xssfCellStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
+        xssfCellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());
+        xssfCellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
+        // 垂直居中
+        xssfCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 防止数字过长,excel导出后,显示为科学计数法,如:防止8615192053888被显示为8.61519E+12
+        xssfCellStyle.setDataFormat(format.getFormat("0"));
+        return xssfCellStyle;
+    }
+    /**
+     * 设置sheet
+     */
+    private void setSheet(Sheet sheet) {
+        // 设置各列宽度(单位为:字符宽度的1/256)
+        sheet.setColumnWidth(0, 10 * 256);
+        sheet.setColumnWidth(1, 15 * 256);
+        sheet.setColumnWidth(2, 20 * 256);
+        sheet.setColumnWidth(3, 10 * 256);
+        sheet.setColumnWidth(4, 70 * 256);
+        sheet.setColumnWidth(5, 12 * 256);
+    }
+    /*
+        设置浏览器下载响应头
+     */
+    private static void setResponseHeader(HttpServletResponse response, String fileName) {
+        try {
+            try {
+//                fileName = new String(fileName.getBytes(),"ISO8859-1");
+                fileName = new String(fileName.getBytes(),"UTF-8");
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
+            response.addHeader("Pargam", "no-cache");
+            response.addHeader("Cache-Control", "no-cache");
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+}