123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package com.fdkankan.manage.service.impl;
- import com.alibaba.excel.EasyExcel;
- import com.alibaba.excel.ExcelWriter;
- import com.alibaba.excel.write.metadata.WriteSheet;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.manage.constant.CameraOutTypeEnum;
- import com.fdkankan.manage.entity.Company;
- import com.fdkankan.manage.service.ICameraService;
- import com.fdkankan.manage.service.ICompanyService;
- import com.fdkankan.manage.service.IExcelService;
- import com.fdkankan.manage.util.ExcelUtil;
- import com.fdkankan.manage.vo.request.CameraInOutParam;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- /**
- * <p>
- * TODO
- * </p>
- *
- * @author dengsixing
- * @since 2022/6/6
- **/
- @Service
- public class ExcelServiceImpl implements IExcelService {
- @Autowired
- ICompanyService companyService;
- @Autowired
- ICameraService cameraService;
- public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,ExcelWriter excelWriter) throws Exception {
- response.setContentType("application/vnd.ms-excel");
- response.setCharacterEncoding("utf-8");
- String fileName = name + ".xlsx";
- fileName = URLEncoder.encode(fileName, "UTF-8");
- response.setHeader("Content-disposition", "attachment;filename=" + fileName);
- WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
- excelWriter.write(result, writeSheet);
- }
- public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,Class<?> clazz) throws Exception {
- response.setContentType("application/vnd.ms-excel");
- response.setCharacterEncoding("utf-8");
- String fileName = name + ".xlsx";
- fileName = URLEncoder.encode(fileName, "UTF-8");
- response.setHeader("Content-disposition", "attachment;filename=" + fileName);
- ExcelWriter excelWriter = null;
- try {
- excelWriter = EasyExcel.write(response.getOutputStream(), clazz).build();
- WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
- excelWriter.write(result, writeSheet);
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- if(excelWriter != null){
- excelWriter.finish();
- }
- }
- }
- @Override
- public Integer uploadExcel(MultipartFile file, Integer type) {
- String originalFilename = file.getOriginalFilename();
- assert originalFilename != null;
- String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
- if (!fileType.equalsIgnoreCase("xlsx")) {
- throw new BusinessException(50001,"文件格式校验,需为xlsx文件;");
- }
- List<HashMap<Integer, String>> excelRowList = new ArrayList<>();
- try {
- excelRowList = ExcelUtil.getExcelRowList(file);
- }catch (Exception e){
- e.printStackTrace();
- throw new BusinessException(50002,"模板错误");
- }
- List<String> wifiNameList = new ArrayList<>();
- List<CameraInOutParam> params = new ArrayList<>();
- List<CameraInOutParam> companyParams = new ArrayList<>();
- for (HashMap<Integer, String> map : excelRowList) {
- if(type == 0){ //入库
- String wifiName = map.get(0);
- wifiNameList.add(wifiName);
- }else if(type == 1){ //出库
- String snCode = map.get(0);
- String outTypeString = map.get(1);
- String companyName = map.get(2);
- String orderSn = map.get(3);
- CameraOutTypeEnum outTypeEnum = CameraOutTypeEnum.getByMsg(outTypeString);
- if(outTypeEnum == null){
- throw new BusinessException(50003,"出库类型错误:"+outTypeString);
- }
- int outType = outTypeEnum.getCode();
- CameraInOutParam param = new CameraInOutParam();
- param.setCompanyName(companyName);
- param.setOutType(outType);
- param.setOrderSn(orderSn);
- param.setSnCode(snCode);
- params.add(param);
- }else if(type == 2){ //关联客户
- CameraInOutParam param = new CameraInOutParam();
- param.setCompanyName(map.get(0));
- param.setSnCode(map.get(1));
- companyParams.add(param);
- }
- }
- if(type == 0 && wifiNameList.size() <=0){
- throw new BusinessException(50004,"入库模板数据为空");
- }else if(type == 1 && params.size() <=0){
- throw new BusinessException(50005,"出库模板数据为空");
- }else if(type == 2 && companyParams.size() <=0){
- throw new BusinessException(50006,"客户关联数据为空");
- }
- if(wifiNameList.size() >0){
- return cameraService.ins(wifiNameList);
- }
- if(params.size() >0){
- return cameraService.outs(params);
- }
- if(companyParams.size() >0){
- return cameraService.updateCompany(companyParams);
- }
- return 0;
- }
- }
|