ExcelServiceImpl.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package com.fdkankan.manage.service.impl;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.alibaba.excel.ExcelWriter;
  4. import com.alibaba.excel.write.metadata.WriteSheet;
  5. import com.fdkankan.common.exception.BusinessException;
  6. import com.fdkankan.manage.constant.CameraOutTypeEnum;
  7. import com.fdkankan.manage.entity.Company;
  8. import com.fdkankan.manage.service.ICameraService;
  9. import com.fdkankan.manage.service.ICompanyService;
  10. import com.fdkankan.manage.service.IExcelService;
  11. import com.fdkankan.manage.util.ExcelUtil;
  12. import com.fdkankan.manage.vo.request.CameraInOutParam;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.io.IOException;
  19. import java.net.URLEncoder;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. /**
  24. * <p>
  25. * TODO
  26. * </p>
  27. *
  28. * @author dengsixing
  29. * @since 2022/6/6
  30. **/
  31. @Service
  32. public class ExcelServiceImpl implements IExcelService {
  33. @Autowired
  34. ICompanyService companyService;
  35. @Autowired
  36. ICameraService cameraService;
  37. public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,ExcelWriter excelWriter) throws Exception {
  38. response.setContentType("application/vnd.ms-excel");
  39. response.setCharacterEncoding("utf-8");
  40. String fileName = name + ".xlsx";
  41. fileName = URLEncoder.encode(fileName, "UTF-8");
  42. response.setHeader("Content-disposition", "attachment;filename=" + fileName);
  43. WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
  44. excelWriter.write(result, writeSheet);
  45. }
  46. public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,Class<?> clazz) throws Exception {
  47. response.setContentType("application/vnd.ms-excel");
  48. response.setCharacterEncoding("utf-8");
  49. String fileName = name + ".xlsx";
  50. fileName = URLEncoder.encode(fileName, "UTF-8");
  51. response.setHeader("Content-disposition", "attachment;filename=" + fileName);
  52. ExcelWriter excelWriter = null;
  53. try {
  54. excelWriter = EasyExcel.write(response.getOutputStream(), clazz).build();
  55. WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
  56. excelWriter.write(result, writeSheet);
  57. }catch (Exception e){
  58. e.printStackTrace();
  59. }finally {
  60. if(excelWriter != null){
  61. excelWriter.finish();
  62. }
  63. }
  64. }
  65. @Override
  66. public Integer uploadExcel(MultipartFile file, Integer type) throws IOException {
  67. String originalFilename = file.getOriginalFilename();
  68. assert originalFilename != null;
  69. String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
  70. if (!fileType.equalsIgnoreCase("xls") && !fileType.equalsIgnoreCase("xlsx")) {
  71. throw new BusinessException(-1,"文件格式校验,需为excel文件;");
  72. }
  73. List<HashMap<Integer, String>> excelRowList = ExcelUtil.getExcelRowList(file);
  74. List<String> wifiNameList = new ArrayList<>();
  75. List<CameraInOutParam> params = new ArrayList<>();
  76. List<CameraInOutParam> companyParams = new ArrayList<>();
  77. for (HashMap<Integer, String> map : excelRowList) {
  78. if(type == 0){ //入库
  79. String wifiName = map.get(0);
  80. wifiNameList.add(wifiName);
  81. }else if(type == 1){ //出库
  82. String snCode = map.get(0);
  83. String outTypeString = map.get(1);
  84. String companyName = map.get(2);
  85. String orderSn = map.get(3);
  86. CameraOutTypeEnum outTypeEnum = CameraOutTypeEnum.getByMsg(outTypeString);
  87. if(outTypeEnum == null){
  88. throw new BusinessException(-1,"出库类型错误:"+outTypeString);
  89. }
  90. int outType = outTypeEnum.getCode();
  91. Company company = companyService.getCompanyByName(companyName);
  92. CameraInOutParam param = new CameraInOutParam();
  93. param.setCompanyId(company.getId());
  94. param.setOutType(outType);
  95. param.setOrderSn(orderSn);
  96. param.setSnCode(snCode);
  97. params.add(param);
  98. }else if(type == 2){ //关联客户
  99. CameraInOutParam param = new CameraInOutParam();
  100. param.setCompanyName(map.get(0));
  101. param.setSnCode(map.get(1));
  102. companyParams.add(param);
  103. }
  104. }
  105. if(wifiNameList.size() >0){
  106. return cameraService.ins(wifiNameList);
  107. }
  108. if(params.size() >0){
  109. return cameraService.outs(params);
  110. }
  111. if(companyParams.size() >0){
  112. return cameraService.updateCompany(companyParams);
  113. }
  114. return 0;
  115. }
  116. }