Commit 2a018dea authored by tangwei's avatar tangwei

注释导出

parent 825ac0e2
package com.yeejoin.amos.boot.biz.common.dto; package com.yeejoin.amos.boot.biz.common.dto;
import com.alibaba.excel.annotation.ExcelIgnore; //import com.alibaba.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -18,22 +18,22 @@ public class BaseDto implements Serializable{ ...@@ -18,22 +18,22 @@ public class BaseDto implements Serializable{
/** /**
* *
*/ */
@ExcelIgnore // @ExcelIgnore
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ExcelIgnore // @ExcelIgnore
@ApiModelProperty(value = "主键ID") @ApiModelProperty(value = "主键ID")
protected Long sequenceNbr; protected Long sequenceNbr;
@ExcelIgnore // @ExcelIgnore
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
protected Date recDate; protected Date recDate;
@ExcelIgnore // @ExcelIgnore
@ApiModelProperty(value = "更新人") @ApiModelProperty(value = "更新人")
protected String recUserId; protected String recUserId;
/** /**
* 是否删除 * 是否删除
*/ */
@ExcelIgnore // @ExcelIgnore
@TableField(value = "is_delete") @TableField(value = "is_delete")
private Boolean isDelete; private Boolean isDelete;
} }
package com.yeejoin.amos.boot.biz.common.utils;
import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.beanutils.BeanUtils;
import com.alibaba.excel.util.CollectionUtils;
public class BeanConverUtil {
/**
* 单个类转换
*
* @param sourceObj
* @param targetClass
* @param <T>
* @return
* @throws InvocationTargetException
* @throws IllegalAccessException
*/
public static <T> T conver(Object sourceObj, Class<T> targetClass) throws IllegalAccessException, InvocationTargetException {
if (sourceObj == null || targetClass == null) {
return null;
}
T targetObj = null;
try {
targetObj = targetClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
return null;
}
BeanUtils.copyProperties(sourceObj, targetObj);
return targetObj;
}
/**
* List之间转换
*
* @param sourceList
* @param targetClass
* @param <T>
* @return
*/
public static <T> List<T> converList(List<?> sourceList, Class<T> targetClass) {
if (CollectionUtils.isEmpty(sourceList) || targetClass == null) {
return Collections.emptyList();
}
return sourceList.stream().map(sourceObj -> {
try {
return conver(sourceObj, targetClass);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}).collect(Collectors.toList());
}
}
package com.yeejoin.amos.boot.module.jcs.api.dto; package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.yeejoin.amos.component.rule.RuleFact;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@RuleFact(value = "导入导出",project = "导入导出")
public class ExcelDto { public class ExcelDto {
@ApiModelProperty(value = "文件名称") @ApiModelProperty(value = "文件名称")
private String fileName; private String fileName;
......
package com.yeejoin.amos.boot.module.jcs.api.dto; package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore; //import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; //import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.jcs.api.excel.ExplicitConstraint; //import com.yeejoin.amos.boot.module.jcs.api.excel.ExplicitConstraint;
import com.yeejoin.amos.boot.module.jcs.api.excel.RoleNameExplicitConstraint; //import com.yeejoin.amos.boot.module.jcs.api.excel.RoleNameExplicitConstraint;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -22,81 +22,67 @@ import java.util.Date; ...@@ -22,81 +22,67 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel(value="FireChemicalDto", description="危化品") @ApiModel(value="FireChemicalDto", description="危化品")
public class FireChemicalDto extends BaseDto { public class FireChemicalDto extends BaseDto {
@ExcelIgnore
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "casNo") @ApiModelProperty(value = "casNo")
@ExcelProperty(value = "casNo", index = 1)
private String casNo; private String casNo;
@ApiModelProperty(value = "国际危险号") @ApiModelProperty(value = "国际危险号")
@ExcelProperty(value = "国际危险号", index = 2)
private String dangerId; private String dangerId;
@ApiModelProperty(value = "防护处理") @ApiModelProperty(value = "防护处理")
@ExcelProperty(value = "防护处理", index = 3)
private String defendWay; private String defendWay;
@ApiModelProperty(value = "处理措施") @ApiModelProperty(value = "处理措施")
@ExcelProperty(value = "处理措施", index = 4)
private String dispose; private String dispose;
@ApiModelProperty(value = "英文名") @ApiModelProperty(value = "英文名")
@ExcelProperty(value = "英文名", index = 5)
private String englishName; private String englishName;
@ApiModelProperty(value = "分子式") @ApiModelProperty(value = "分子式")
@ExcelProperty(value = "分子式", index = 6)
private String formula; private String formula;
@ApiModelProperty(value = "主要成分") @ApiModelProperty(value = "主要成分")
@ExcelProperty(value = "主要成分", index = 7)
private String ingredient; private String ingredient;
@ApiModelProperty(value = "泄漏处理") @ApiModelProperty(value = "泄漏处理")
@ExcelProperty(value = "泄漏处理", index = 8)
private String leakWay; private String leakWay;
@ExcelProperty(value = "中文名", index = 0)
@ApiModelProperty(value = "中文名") @ApiModelProperty(value = "中文名")
private String name; private String name;
@ApiModelProperty(value = "性状") @ApiModelProperty(value = "性状")
@ExcelProperty(value = "性状", index = 9)
private String property; private String property;
@ApiModelProperty(value = "贮藏方法") @ApiModelProperty(value = "贮藏方法")
@ExcelProperty(value = "贮藏方法", index = 10)
private String store; private String store;
@ApiModelProperty(value = "症状") @ApiModelProperty(value = "症状")
@ExcelProperty(value = "症状", index = 11)
private String symptom; private String symptom;
@ApiModelProperty(value = "禁忌物/禁忌") @ApiModelProperty(value = "禁忌物/禁忌")
@ExcelProperty(value = "禁忌物/禁忌", index = 12)
private String tabu; private String tabu;
@ExcelIgnore
@ApiModelProperty(value = "类型code") @ApiModelProperty(value = "类型code")
private String typeCode; private String typeCode;
@ExplicitConstraint(type="CHEMICALTYPE",indexNum=13,sourceClass = RoleNameExplicitConstraint.class) //动态下拉内容
@ApiModelProperty(value = "类型名称") @ApiModelProperty(value = "类型名称")
@ExcelProperty(value = "类型名称", index = 13)
private String type; private String type;
// @ExplicitConstraint(indexNum=14,source = {"男","女"}) //固定下拉内容 // @ExplicitConstraint(indexNum=14,source = {"男","女"}) //固定下拉内容
@ExcelProperty(value = "国标号", index = 14)
@ApiModelProperty(value = "国标号") @ApiModelProperty(value = "国标号")
private String un; private String un;
@ApiModelProperty(value = "化学品图片") @ApiModelProperty(value = "化学品图片")
@ExcelProperty(value = "化学品图片", index = 15)
private String image; private String image;
@ExcelIgnore
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
@ExcelIgnore
@ApiModelProperty(value = "操作人名称") @ApiModelProperty(value = "操作人名称")
private String recUserName; private String recUserName;
......
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.List; //import java.util.List;
//
import com.alibaba.excel.context.AnalysisContext; //import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; //import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
//
//如果没有特殊说明,下面的案例将默认使用这个监听器 ////如果没有特殊说明,下面的案例将默认使用这个监听器
public class ExcelListener<T> extends AnalysisEventListener<T> { //public class ExcelListener<T> extends AnalysisEventListener<T> {
//
List<T> list = new ArrayList<T>(); // List<T> list = new ArrayList<T>();
//
public List<T> getList() { // public List<T> getList() {
return list; // return list;
} //}
//
public void setList(List<T> list) { //public void setList(List<T> list) {
this.list = list; // this.list = list;
} //}
//
/** ///**
* 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来 // * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
*/ // */
public ExcelListener() {} // public ExcelListener() {}
//
/** // /**
* 这个每一条数据解析都会来调用 // * 这个每一条数据解析都会来调用
* // *
* @param data // * @param data
* @param context // * @param context
*/ // */
@Override // @Override
public void invoke(T data, AnalysisContext context) { // public void invoke(T data, AnalysisContext context) {
list.add(data); // list.add(data);
} // }
//
/** // /**
* 所有数据解析完成了 都会来调用 // * 所有数据解析完成了 都会来调用
* // *
* @param context // * @param context
*/ // */
@Override // @Override
public void doAfterAllAnalysed(AnalysisContext context) { // public void doAfterAllAnalysed(AnalysisContext context) {
//
} // }
} //}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import java.io.IOException; //import java.io.IOException;
import java.io.InputStream; //import java.io.InputStream;
import java.io.OutputStream; //import java.io.OutputStream;
import java.lang.reflect.Field; //import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets; //import java.nio.charset.StandardCharsets;
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.HashMap; //import java.util.HashMap;
import java.util.List; //import java.util.List;
import java.util.Map; //import java.util.Map;
import javax.servlet.http.HttpServletResponse; //import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.HorizontalAlignment; //import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors; //import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.web.multipart.MultipartFile; //import org.springframework.web.multipart.MultipartFile;
//
import com.alibaba.excel.EasyExcel; //import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader; //import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet; //import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.support.ExcelTypeEnum; //import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.style.WriteCellStyle; //import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont; //import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; //import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.yeejoin.amos.boot.biz.common.utils.BeanConverUtil; //import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper; //
//public class ExcelUtil {
public class ExcelUtil { // /**
/** // * 生成excel模板
* 生成excel模板 // *
* // * @param response
* @param response // * @param fileName 下载的文件名,
* @param fileName 下载的文件名, // * @param sheetName sheet名
* @param sheetName sheet名 // * @param data 导出的数据
* @param data 导出的数据 // * @param model 导出的头
* @param model 导出的头 // * @param heardHeight 头行高
* @param heardHeight 头行高 // * @param flag true模板填充下拉 false 不填充
* @param flag true模板填充下拉 false 不填充 // */
*/ // public static void createTemplate(HttpServletResponse response, String fileName,
public static void createTemplate(HttpServletResponse response, String fileName, // String sheetName, List<? extends Object> data,
String sheetName, List<? extends Object> data, // Class<?> model, DataDictionaryMapper dataDictionaryMapper,boolean flag) {
Class<?> model, DataDictionaryMapper dataDictionaryMapper,boolean flag) { //
// HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle(); // try {
try { // //下拉列表集合
//下拉列表集合 // Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>(); // if(flag) {
if(flag) { // //循环获取对应列得下拉列表信息
//循环获取对应列得下拉列表信息 // Field[] declaredFields = model.getDeclaredFields();
Field[] declaredFields = model.getDeclaredFields(); // for (int i = 0; i < declaredFields.length; i++) {
for (int i = 0; i < declaredFields.length; i++) { // Field field = declaredFields[i];
Field field = declaredFields[i]; // //解析注解信息
//解析注解信息 // ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class); // resolveExplicitConstraint(explicitListConstraintMap,explicitConstraint,dataDictionaryMapper);
resolveExplicitConstraint(explicitListConstraintMap,explicitConstraint,dataDictionaryMapper); // }
} // }
} // EasyExcel.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX), model).
EasyExcel.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX), model). // excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
excelType(ExcelTypeEnum.XLSX).sheet(sheetName) // .registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap)) // .registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(new TemplateCellWriteHandler()) // .registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(horizontalCellStyleStrategy) // .doWrite(data);
.doWrite(data); // } catch (Exception e) {
} catch (Exception e) { // e.printStackTrace();
e.printStackTrace(); // throw new RuntimeException("系统异常!");
throw new RuntimeException("系统异常!"); //
// }
} // }
} // /**
/** // * 读取 Excel(第一个 sheet) 指定行开始读取
* 读取 Excel(第一个 sheet) 指定行开始读取 // * @param excel 文件
* @param excel 文件 // * @param rowType 模板实体类
* @param rowType 模板实体类 // * @param header 指定不读取的表头行数,
* @param header 指定不读取的表头行数, // * @param <T>
* @param <T> // * @return 集合数据
* @return 集合数据 // * @throws ExcelException
* @throws ExcelException // */
*/ // public static <T> List<T> readFirstSheetExcel(MultipartFile excel, Class<T> rowType,int header) throws Exception {
public static <T> List<T> readFirstSheetExcel(MultipartFile excel, Class<T> rowType,int header) throws Exception { // ExcelReader reader = getReader(excel, header);
ExcelReader reader = getReader(excel, header); // if (reader == null) {
if (reader == null) { // return new ArrayList<>();
return new ArrayList<>(); // }
} // return readExcel(reader, rowType, 0);
return readExcel(reader, rowType, 0); // }
} //
//
//
// /**
/** // * 读取 Excel(多个 sheet)
* 读取 Excel(多个 sheet) // * @param reader 读取的excel
* @param reader 读取的excel // * @param rowModel excel模板实体类
* @param rowModel excel模板实体类 // * @param sheetCount sheet
* @param sheetCount sheet // * @param <T>
* @param <T> // * @return
* @return // */
*/ // public static <T> List<T> readExcel(ExcelReader reader, Class<T> rowModel, int sheetCount) {
public static <T> List<T> readExcel(ExcelReader reader, Class<T> rowModel, int sheetCount) { // if (reader == null) {
if (reader == null) { // return new ArrayList<>();
return new ArrayList<>(); // }
} // ExcelListener<T> excelListener = new ExcelListener<>();
ExcelListener<T> excelListener = new ExcelListener<>(); // ReadSheet readSheet = EasyExcel.readSheet(sheetCount)
ReadSheet readSheet = EasyExcel.readSheet(sheetCount) // .head(rowModel)
.head(rowModel) // .registerReadListener(excelListener)
.registerReadListener(excelListener) // .build();
.build(); // reader.read(readSheet);
reader.read(readSheet); // return excelListener.getList();
return excelListener.getList(); // }
} //
//
//
/** //
* 利用BeanCopy转换list // /**
*/ // *
public static <T> List<T> getExtendsBeanList(List<?> list, Class<T> typeClazz) { // * @param excel 需要解析的 Excel 文件
return BeanConverUtil.converList(list, typeClazz); // * @param header 指定不读取表头行数,
} // * @return
/** // * @throws ExcelException
* // */
* @param excel 需要解析的 Excel 文件 // public static ExcelReader getReader(MultipartFile excel,int header) throws Exception {
* @param header 指定不读取表头行数, // String fileName = excel.getOriginalFilename();
* @return // if (fileName == null) {
* @throws ExcelException // throw new Exception("文件不存在!");
*/ // }
public static ExcelReader getReader(MultipartFile excel,int header) throws Exception { // if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue()) && !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) {
String fileName = excel.getOriginalFilename(); // throw new Exception("文件类型异常!");
if (fileName == null) { // }
throw new Exception("文件不存在!"); // InputStream inputStream;
} // try {
if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue()) && !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) { // inputStream = excel.getInputStream();
throw new Exception("文件类型异常!"); // return EasyExcel.read(inputStream).
} // headRowNumber(header).
InputStream inputStream; // build();
try { // } catch (IOException e) {
inputStream = excel.getInputStream(); // //do something
return EasyExcel.read(inputStream). // }
headRowNumber(header). // return null;
build(); // }
} catch (IOException e) { //
//do something //
} //
return null; // /**
} // * 解析注解内容 获取下列表信息
// * @param explicitConstraint
// * @return
// */
/** // public static Map<Integer, String[]> resolveExplicitConstraint( Map<Integer, String[]> explicitListConstraintMap,ExplicitConstraint explicitConstraint, DataDictionaryMapper dataDictionaryMapper){
* 解析注解内容 获取下列表信息 // if (explicitConstraint == null) {
* @param explicitConstraint // return null;
* @return // }
*/ // //固定下拉信息
public static Map<Integer, String[]> resolveExplicitConstraint( Map<Integer, String[]> explicitListConstraintMap,ExplicitConstraint explicitConstraint, DataDictionaryMapper dataDictionaryMapper){ // String[] source = explicitConstraint.source();
if (explicitConstraint == null) { // if (source.length > 0) {
return null; // explicitListConstraintMap.put(explicitConstraint.indexNum(), source);
} // }
//固定下拉信息 // //动态下拉信息
String[] source = explicitConstraint.source(); // Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass();
if (source.length > 0) { // if (classes.length>0){
explicitListConstraintMap.put(explicitConstraint.indexNum(), source); // ExplicitInterface explicitInterface = null;
} // try {
//动态下拉信息 // explicitInterface = classes[0].newInstance();
Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass(); // String[] source1 = explicitInterface.source(explicitConstraint.type(),dataDictionaryMapper);
if (classes.length>0){ // if (source1.length>0){
ExplicitInterface explicitInterface = null; // explicitListConstraintMap.put(explicitConstraint.indexNum(), source1);
try { // }
explicitInterface = classes[0].newInstance(); // } catch (InstantiationException e) {
String[] source1 = explicitInterface.source(explicitConstraint.type(),dataDictionaryMapper); // e.printStackTrace();
if (source1.length>0){ // } catch (IllegalAccessException e) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source1); // e.printStackTrace();
} // }
} catch (InstantiationException e) { // }
e.printStackTrace(); // return null;
} catch (IllegalAccessException e) { // }
e.printStackTrace(); //
} //
} //
return null; //
} // /**
// * 导出文件时为Writer生成OutputStream
// */
// private static OutputStream getOutputStream(String fileName, HttpServletResponse response, ExcelTypeEnum excelTypeEnum) throws Exception {
// //创建本地文件
/** // String filePath = fileName + excelTypeEnum.getValue();
* 导出文件时为Writer生成OutputStream // try {
*/ // fileName = new String(filePath.getBytes(), StandardCharsets.ISO_8859_1);
private static OutputStream getOutputStream(String fileName, HttpServletResponse response, ExcelTypeEnum excelTypeEnum) throws Exception { // response.setCharacterEncoding(StandardCharsets.UTF_8.name());
//创建本地文件 // response.setContentType("application/vnd.ms-excel");
String filePath = fileName + excelTypeEnum.getValue(); // response.addHeader("Content-Disposition", "filename=" + fileName);
try { // return response.getOutputStream();
fileName = new String(filePath.getBytes(), StandardCharsets.ISO_8859_1); // } catch (IOException e) {
response.setCharacterEncoding(StandardCharsets.UTF_8.name()); // throw new Exception("系统异常");
response.setContentType("application/vnd.ms-excel"); // }
response.addHeader("Content-Disposition", "filename=" + fileName); // }
return response.getOutputStream(); //
} catch (IOException e) { // /**
throw new Exception("系统异常"); // * 创建我的cell 策略
} // *
} // * @return
// */
/** // public static HorizontalCellStyleStrategy setMyCellStyle() {
* 创建我的cell 策略 //
* // // 头的策略
* @return // WriteCellStyle headWriteCellStyle = new WriteCellStyle();
*/ // // 设置表头居中对齐
public static HorizontalCellStyleStrategy setMyCellStyle() { // headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// // 颜色
// 头的策略 // headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
WriteCellStyle headWriteCellStyle = new WriteCellStyle(); // WriteFont headWriteFont = new WriteFont();
// 设置表头居中对齐 // headWriteFont.setFontHeightInPoints((short) 10);
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); // // 字体
// 颜色 // headWriteCellStyle.setWriteFont(headWriteFont);
headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); // headWriteCellStyle.setWrapped(true);
WriteFont headWriteFont = new WriteFont(); // // 内容的策略
headWriteFont.setFontHeightInPoints((short) 10); // WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
// 字体 // // 设置内容靠中对齐
headWriteCellStyle.setWriteFont(headWriteFont); // contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
headWriteCellStyle.setWrapped(true); // // 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
// 内容的策略 // HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); // // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// 设置内容靠中对齐 // return horizontalCellStyleStrategy;
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); // }
// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现 //}
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
return horizontalCellStyleStrategy;
}
}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import java.lang.annotation.*; //import java.lang.annotation.*;
/** ///**
* 导出模板数据 //* 导出模板数据
*/ //*/
@Documented //@Documented
@Retention(RetentionPolicy.RUNTIME) //@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD}) //@Target({ElementType.FIELD})
public @interface ExplicitConstraint { //public @interface ExplicitConstraint {
//定义固定下拉内容 // //定义固定下拉内容
String[]source()default {}; // String[]source()default {};
//定义动态下拉内容, // //定义动态下拉内容,
Class[]sourceClass()default {}; // Class[]sourceClass()default {};
//列标号必须和字段下标一致 // //列标号必须和字段下标一致
int indexNum() default 0; // int indexNum() default 0;
//字典type // 字典type
String type() default ""; // String type() default "";
//
} //}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper; //import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper;
//
public interface ExplicitInterface { //public interface ExplicitInterface {
/** // /**
* 动态下拉列表的内容数组 // * 动态下拉列表的内容数组
* @return // * @return
* type 字典类型 // * type 字典类型
*/ // */
String[] source(String type,DataDictionaryMapper dataDictionaryMapper); // String[] source(String type,DataDictionaryMapper dataDictionaryMapper);
} //}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import java.util.List; //import java.util.List;
import java.util.stream.Collectors; //import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.DataDictionary; //import com.yeejoin.amos.boot.module.jcs.api.entity.DataDictionary;
import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper; //import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper;
//
/*** ///***
* // *
* 获取动态值 // * 获取动态值
* // *
* **/ // * **/
public class RoleNameExplicitConstraint implements ExplicitInterface { //public class RoleNameExplicitConstraint implements ExplicitInterface {
//
@Override // @Override
public String[] source(String type,DataDictionaryMapper dataDictionaryMapper) { // public String[] source(String type,DataDictionaryMapper dataDictionaryMapper) {
QueryWrapper<DataDictionary> queryWrapper = new QueryWrapper<>(); // QueryWrapper<DataDictionary> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", type); // queryWrapper.eq("type", type);
queryWrapper.orderByAsc("sort_num"); // queryWrapper.orderByAsc("sort_num");
List<DataDictionary> list= dataDictionaryMapper.selectList(queryWrapper); // List<DataDictionary> list= dataDictionaryMapper.selectList(queryWrapper);
List<String> names = list.stream().map(dataDictionary->{ // List<String> names = list.stream().map(dataDictionary->{
return dataDictionary.getName()+"@"+dataDictionary.getCode(); // return dataDictionary.getName()+"@"+dataDictionary.getCode();
} // }
).collect(Collectors.toList()); // ).collect(Collectors.toList());
String[] str=names.toArray(new String[names.size()]); // String[] str=names.toArray(new String[names.size()]);
return str; // return str;
} // }
} //}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
import org.apache.poi.ss.usermodel.Cell; //import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle; //import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat; //import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.FillPatternType; //import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font; //import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment; //import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors; //import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row; //import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.VerticalAlignment; //import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook; //import org.apache.poi.ss.usermodel.Workbook;
import com.alibaba.excel.metadata.CellData; //import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.Head; //import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.CellWriteHandler; //import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; //import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder; //import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
//
/** ///**
* excel通用单元格格式类 // * excel通用单元格格式类
*/ // */
public class TemplateCellWriteHandler implements CellWriteHandler { //public class TemplateCellWriteHandler implements CellWriteHandler {
//
@Override // @Override
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, // public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row,
Head head, int relativeRowIndex, boolean isHead) { // Head head, int relativeRowIndex, boolean isHead) {
// TODO Auto-generated method stub // // TODO Auto-generated method stub
//
} // }
//
@Override // @Override
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, // public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData,
Cell cell, Head head, int relativeRowIndex, boolean isHead) { // Cell cell, Head head, int relativeRowIndex, boolean isHead) {
Workbook workbooks = writeSheetHolder.getSheet().getWorkbook(); // Workbook workbooks = writeSheetHolder.getSheet().getWorkbook();
writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), 20 * 256); // writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), 20 * 256);
CellStyle cellStyle = workbooks.createCellStyle(); // CellStyle cellStyle = workbooks.createCellStyle();
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//居中 // cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//居中
cellStyle.setAlignment(HorizontalAlignment.CENTER); // cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//设置前景填充样式 // cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//设置前景填充样式
cellStyle.setFillForegroundColor(IndexedColors.ROYAL_BLUE.getIndex());//前景填充色 // cellStyle.setFillForegroundColor(IndexedColors.ROYAL_BLUE.getIndex());//前景填充色
Font font1 = workbooks.createFont();//设置字体 // Font font1 = workbooks.createFont();//设置字体
font1.setBold(true); // font1.setBold(true);
font1.setColor((short)1); // font1.setColor((short)1);
font1.setFontHeightInPoints((short)15); // font1.setFontHeightInPoints((short)15);
cellStyle.setFont(font1); // cellStyle.setFont(font1);
cell.setCellStyle(cellStyle); // cell.setCellStyle(cellStyle);
//其他列 // //其他列
if (!isHead){ // if (!isHead){
CellStyle style = workbooks.createCellStyle(); // CellStyle style = workbooks.createCellStyle();
DataFormat dataFormat = workbooks.createDataFormat(); // DataFormat dataFormat = workbooks.createDataFormat();
style.setDataFormat(dataFormat.getFormat("@")); // style.setDataFormat(dataFormat.getFormat("@"));
style.setVerticalAlignment(VerticalAlignment.CENTER); // style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER); // style.setAlignment(HorizontalAlignment.CENTER);
cell.setCellStyle(style); // cell.setCellStyle(style);
} // }
//设置日期 // //设置日期
if (!isHead && cell.getColumnIndex()==19 || !isHead && cell.getColumnIndex()==21|| !isHead && cell.getColumnIndex()==20){ // if (!isHead && cell.getColumnIndex()==19 || !isHead && cell.getColumnIndex()==21|| !isHead && cell.getColumnIndex()==20){
CellStyle style = workbooks.createCellStyle(); // CellStyle style = workbooks.createCellStyle();
DataFormat dataFormat = workbooks.createDataFormat(); // DataFormat dataFormat = workbooks.createDataFormat();
style.setDataFormat(dataFormat.getFormat("yyyy/mm/dd hh:mm:ss")); // style.setDataFormat(dataFormat.getFormat("yyyy/mm/dd hh:mm:ss"));
style.setVerticalAlignment(VerticalAlignment.CENTER); // style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER); // style.setAlignment(HorizontalAlignment.CENTER);
cell.setCellStyle(style); // cell.setCellStyle(style);
} // }
//设置金额 // //设置金额
if (!isHead && cell.getColumnIndex()==15 ||!isHead && cell.getColumnIndex()==16||!isHead && cell.getColumnIndex()==22 ||!isHead && cell.getColumnIndex()==24||!isHead && cell.getColumnIndex()==25){ // if (!isHead && cell.getColumnIndex()==15 ||!isHead && cell.getColumnIndex()==16||!isHead && cell.getColumnIndex()==22 ||!isHead && cell.getColumnIndex()==24||!isHead && cell.getColumnIndex()==25){
CellStyle style = workbooks.createCellStyle(); // CellStyle style = workbooks.createCellStyle();
DataFormat dataFormat = workbooks.createDataFormat(); // DataFormat dataFormat = workbooks.createDataFormat();
style.setDataFormat(dataFormat.getFormat("0.00")); // style.setDataFormat(dataFormat.getFormat("0.00"));
style.setVerticalAlignment(VerticalAlignment.CENTER); // style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER); // style.setAlignment(HorizontalAlignment.CENTER);
cell.setCellStyle(style); // cell.setCellStyle(style);
} // }
} // }
//
//
//
} //}
package com.yeejoin.amos.boot.module.jcs.api.excel; //package com.yeejoin.amos.boot.module.jcs.api.excel;
//
//
import org.apache.poi.ss.usermodel.DataValidationHelper; //import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.Name; //import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.Workbook; //import org.apache.poi.ss.usermodel.Workbook;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; //import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.handler.SheetWriteHandler; //import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; //import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import org.apache.poi.ss.usermodel.DataValidation; //import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint; //import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.Sheet; //import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddressList; //import org.apache.poi.ss.util.CellRangeAddressList;
import java.util.HashMap; //import java.util.HashMap;
import java.util.Map; //import java.util.Map;
//
/** ///**
* excel通用单元格格式类下拉框赋值 // * excel通用单元格格式类下拉框赋值
*/ // */
public class TemplateCellWriteHandlerDate implements SheetWriteHandler { //public class TemplateCellWriteHandlerDate implements SheetWriteHandler {
//
/** // /**
* 构造器注入 // * 构造器注入
*/ // */
//
private Map<Integer, String[]> explicitListConstraintMap = new HashMap<>(); // private Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
public TemplateCellWriteHandlerDate(Map<Integer, String[]> explicitListConstraintMap) { // public TemplateCellWriteHandlerDate(Map<Integer, String[]> explicitListConstraintMap) {
this.explicitListConstraintMap = explicitListConstraintMap; // this.explicitListConstraintMap = explicitListConstraintMap;
} // }
/** // /**
* 避免生成的导入模板下拉值获取不到 // * 避免生成的导入模板下拉值获取不到
*/ // */
private static final Integer LIMIT_NUMBER = 50; // private static final Integer LIMIT_NUMBER = 50;
//
//
//
/** // /**
* 返回excel列标A-Z-AA-ZZ // * 返回excel列标A-Z-AA-ZZ
* // *
* @param num 列数 // * @param num 列数
* @return java.lang.String // * @return java.lang.String
*/ // */
private String getExcelLine(int num) { // private String getExcelLine(int num) {
String line = ""; // String line = "";
int first = num / 26; // int first = num / 26;
int second = num % 26; // int second = num % 26;
if (first > 0) { // if (first > 0) {
line = (char) ('A' + first - 1) + ""; // line = (char) ('A' + first - 1) + "";
} // }
line += (char) ('A' + second) + ""; // line += (char) ('A' + second) + "";
return line; // return line;
} // }
//
@Override // @Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { // public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
// TODO Auto-generated method stub // // TODO Auto-generated method stub
//
} // }
//
@Override // @Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { // public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
//
if(explicitListConstraintMap!=null) { // if(explicitListConstraintMap!=null) {
// 这里可以对cell进行任何操作 // // 这里可以对cell进行任何操作
Sheet sheet = writeSheetHolder.getSheet(); // Sheet sheet = writeSheetHolder.getSheet();
DataValidationHelper helper = sheet.getDataValidationHelper(); // DataValidationHelper helper = sheet.getDataValidationHelper();
//
// k 为存在下拉数据集的单元格下表 v为下拉数据集 // // k 为存在下拉数据集的单元格下表 v为下拉数据集
explicitListConstraintMap.forEach((k, v) -> { // explicitListConstraintMap.forEach((k, v) -> {
// 设置下拉单元格的首行 末行 首列 末列 // // 设置下拉单元格的首行 末行 首列 末列
CellRangeAddressList rangeList = new CellRangeAddressList(1, 65536, k, k); // CellRangeAddressList rangeList = new CellRangeAddressList(1, 65536, k, k);
// 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到 // // 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到
if (v.length > LIMIT_NUMBER) { // if (v.length > LIMIT_NUMBER) {
//定义sheet的名称 // //定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k // //1.创建一个隐藏的sheet 名称为 hidden + k
String sheetName = "hidden" + k; // String sheetName = "hidden" + k;
Workbook workbook = writeWorkbookHolder.getWorkbook(); // Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet hiddenSheet = workbook.createSheet(sheetName); // Sheet hiddenSheet = workbook.createSheet(sheetName);
for (int i = 0, length = v.length; i < length; i++) { // for (int i = 0, length = v.length; i < length; i++) {
// 开始的行数i,列数k // // 开始的行数i,列数k
hiddenSheet.createRow(i).createCell(k).setCellValue(v[i]); // hiddenSheet.createRow(i).createCell(k).setCellValue(v[i]);
} // }
Name category1Name = workbook.createName(); // Name category1Name = workbook.createName();
category1Name.setNameName(sheetName); // category1Name.setNameName(sheetName);
String excelLine = getExcelLine(k); // String excelLine = getExcelLine(k);
// =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组 // // =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String refers = "=" + sheetName + "!$" + excelLine + "$1:$" + excelLine + "$" + (v.length + 1); // String refers = "=" + sheetName + "!$" + excelLine + "$1:$" + excelLine + "$" + (v.length + 1);
// 将刚才设置的sheet引用到你的下拉列表中 // // 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint constraint = helper.createFormulaListConstraint(refers); // DataValidationConstraint constraint = helper.createFormulaListConstraint(refers);
DataValidation dataValidation = helper.createValidation(constraint, rangeList); // DataValidation dataValidation = helper.createValidation(constraint, rangeList);
writeSheetHolder.getSheet().addValidationData(dataValidation); // writeSheetHolder.getSheet().addValidationData(dataValidation);
// 设置存储下拉列值得sheet为隐藏 // // 设置存储下拉列值得sheet为隐藏
int hiddenIndex = workbook.getSheetIndex(sheetName); // int hiddenIndex = workbook.getSheetIndex(sheetName);
if (!workbook.isSheetHidden(hiddenIndex)) { // if (!workbook.isSheetHidden(hiddenIndex)) {
workbook.setSheetHidden(hiddenIndex, true); // workbook.setSheetHidden(hiddenIndex, true);
} // }
} // }
// 下拉列表约束数据 // // 下拉列表约束数据
DataValidationConstraint constraint = helper.createExplicitListConstraint(v); // DataValidationConstraint constraint = helper.createExplicitListConstraint(v);
// 设置约束 // // 设置约束
DataValidation validation = helper.createValidation(constraint, rangeList); // DataValidation validation = helper.createValidation(constraint, rangeList);
// 阻止输入非下拉选项的值 // // 阻止输入非下拉选项的值
validation.setErrorStyle(DataValidation.ErrorStyle.STOP); // validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
validation.setShowErrorBox(true); // validation.setShowErrorBox(true);
validation.setSuppressDropDownArrow(true); // validation.setSuppressDropDownArrow(true);
validation.createErrorBox("提示", "此值与单元格定义格式不一致"); // validation.createErrorBox("提示", "此值与单元格定义格式不一致");
// validation.createPromptBox("填写说明:","填写内容只能为下拉数据集中的单位,其他单位将会导致无法入仓"); // // validation.createPromptBox("填写说明:","填写内容只能为下拉数据集中的单位,其他单位将会导致无法入仓");
sheet.addValidationData(validation); // sheet.addValidationData(validation);
}); // });
} // }
//
//
} // }
//
} //}
package com.yeejoin.amos.boot.module.jcs.biz.controller; //package com.yeejoin.amos.boot.module.jcs.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; //import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; //import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; //import org.springframework.web.multipart.MultipartFile;
//
import com.yeejoin.amos.boot.biz.common.controller.BaseController; //import com.yeejoin.amos.boot.biz.common.controller.BaseController;
//
import org.apache.commons.beanutils.BeanUtils; //import org.apache.commons.beanutils.BeanUtils;
import org.bouncycastle.crypto.RuntimeCryptoException; //import org.bouncycastle.crypto.RuntimeCryptoException;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
//
import java.lang.reflect.InvocationTargetException; //import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.List; //import java.util.List;
//
import javax.servlet.http.HttpServletResponse; //import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
//
import com.yeejoin.amos.boot.module.jcs.api.dto.ExcelDto; //import com.yeejoin.amos.boot.module.jcs.api.dto.ExcelDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.FireChemicalDto; //import com.yeejoin.amos.boot.module.jcs.api.dto.FireChemicalDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.FireChemical; //import com.yeejoin.amos.boot.module.jcs.api.entity.FireChemical;
import com.yeejoin.amos.boot.module.jcs.api.excel.ExcelUtil; //import com.yeejoin.amos.boot.module.jcs.api.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper; //import com.yeejoin.amos.boot.module.jcs.api.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.FireChemicalServiceImpl; //import com.yeejoin.amos.boot.module.jcs.biz.service.impl.FireChemicalServiceImpl;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.FireStationServiceImpl; //import com.yeejoin.amos.boot.module.jcs.biz.service.impl.FireStationServiceImpl;
//
import org.typroject.tyboot.core.restful.doc.TycloudOperation; //import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType; //import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.Bean; //import org.typroject.tyboot.core.foundation.utils.Bean;
//
//
/** ///**
* 导出导入 //* 导出导入
* //*
* @author system_generator //* @author system_generator
* @date 2021-06-29 //* @date 2021-06-29
*/ //*/
@RestController //@RestController
@Api(tags = "导出") //@Api(tags = "导出")
@RequestMapping(value = "/excel") //@RequestMapping(value = "/excel")
public class ExcelController extends BaseController { //public class ExcelController extends BaseController {
//
//
@Autowired // @Autowired
DataDictionaryMapper dataDictionaryMapper; // DataDictionaryMapper dataDictionaryMapper;
@Autowired // @Autowired
FireChemicalServiceImpl fireChemicalServiceImpl; // FireChemicalServiceImpl fireChemicalServiceImpl;
private final String packageUrl="com.yeejoin.amos.boot.module.jcs.api.dto."; // private final String packageUrl="com.yeejoin.amos.boot.module.jcs.api.dto.";
//
@TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY) // @TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY)
@ApiOperation(value = "下载模板") // @ApiOperation(value = "下载模板")
@GetMapping("/template") // @GetMapping("/template")
public void template(HttpServletResponse response,ExcelDto excelDto ) { // public void template(HttpServletResponse response,ExcelDto excelDto ) {
try { // try {
String url=packageUrl+excelDto.getClassUrl(); // String url=packageUrl+excelDto.getClassUrl();
Class clz = Class.forName(url); // Class clz = Class.forName(url);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), null,clz, dataDictionaryMapper,true); // ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), null,clz, dataDictionaryMapper,true);
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
throw new RuntimeException("系统异常!"); // throw new RuntimeException("系统异常!");
} // }
} // }
//
@TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY) // @TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出危险品") // @ApiOperation(value = "导出危险品")
@GetMapping("/getFireStationFile") // @GetMapping("/getFireStationFile")
public void getFireStationFile(HttpServletResponse response,ExcelDto excelDto ) { // public void getFireStationFile(HttpServletResponse response,ExcelDto excelDto ) {
try { // try {
List<FireChemicalDto> date= fireChemicalServiceImpl.queryForFireChemicalList(); // List<FireChemicalDto> date= fireChemicalServiceImpl.queryForFireChemicalList();
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), date,FireChemicalDto.class, dataDictionaryMapper,false); // ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), date,FireChemicalDto.class, dataDictionaryMapper,false);
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
throw new RuntimeException("系统异常!"); // throw new RuntimeException("系统异常!");
} // }
} // }
@TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY) // @TycloudOperation(needAuth = false,ApiLevel = UserType.AGENCY)
@ApiOperation(value = "上传文件数据-") // @ApiOperation(value = "上传文件数据-")
@PostMapping("/upload") // @PostMapping("/upload")
public void template2(MultipartFile multipartFile, HttpServletResponse response) throws Exception { // public void template2(MultipartFile multipartFile, HttpServletResponse response) throws Exception {
//
//
List<FireChemicalDto> demoExcelEntities = ExcelUtil.readFirstSheetExcel(multipartFile, FireChemicalDto.class, 1); // List<FireChemicalDto> demoExcelEntities = ExcelUtil.readFirstSheetExcel(multipartFile, FireChemicalDto.class, 1);
List<FireChemical> demoExcelEntityErrorList = new ArrayList<>(); // List<FireChemical> demoExcelEntityErrorList = new ArrayList<>();
demoExcelEntities.forEach( // demoExcelEntities.forEach(
demoExcelEntity -> { // demoExcelEntity -> {
FireChemical demoExcelEntityError = new FireChemical(); // FireChemical demoExcelEntityError = new FireChemical();
demoExcelEntityError = Bean.toPo(demoExcelEntity, demoExcelEntityError); // demoExcelEntityError = Bean.toPo(demoExcelEntity, demoExcelEntityError);
if(demoExcelEntityError.getType()!=null) { // if(demoExcelEntityError.getType()!=null) {
String[] dr= demoExcelEntityError.getType().split("@"); // String[] dr= demoExcelEntityError.getType().split("@");
demoExcelEntityError.setType(dr[0]); // demoExcelEntityError.setType(dr[0]);
demoExcelEntityError.setTypeCode(dr[1]); // demoExcelEntityError.setTypeCode(dr[1]);
} // }
demoExcelEntityErrorList.add(demoExcelEntityError); // demoExcelEntityErrorList.add(demoExcelEntityError);
} // }
); // );
fireChemicalServiceImpl.saveOrUpdateBatch(demoExcelEntityErrorList); // fireChemicalServiceImpl.saveOrUpdateBatch(demoExcelEntityErrorList);
} // }
//
} //}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment