package com.artfess.easyExcel.converter; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.ReadConverterContext; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; import com.google.common.collect.Maps; import org.springframework.util.StringUtils; import java.util.Map; /** * 删除状态转换 */ public class DelStatusConverter implements Converter { private static Map delStatusMap = Maps.newHashMap(); //baseService是项目中封装的一个组件类,间接调用dao中的方法,并对返回结果进行了处理封装 // private BaseService baseService; //懒汉模式构造器,将状态码映射关系注入进map中,不必每次都连接数据库进行查询 public DelStatusConverter() { delStatusMap.put("0", "未删除"); delStatusMap.put("1", "已删除"); // baseService = SpringApplicationUtils.getBean(BaseService.class); // if (CollectionUtil.isEmpty(statusMap)){ // statusMap = baseService.getItemMap(DictTypeConstants.D_ENABLE_STATUS); // } } @Override public Class supportJavaTypeKey() { return Integer.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public String convertToJavaData(ReadConverterContext context) { String delStatusName = context.getReadCellData().getStringValue(); for (String delStatus : delStatusMap.keySet()) { if(delStatusName.equals(delStatusMap.get(delStatus)) ){ return delStatus; } } return null; } @Override public WriteCellData convertToExcelData(String delStatus, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { String enableStatusName = delStatusMap.get(delStatus); enableStatusName = StringUtils.isEmpty(enableStatusName) ? "" : enableStatusName; return new WriteCellData<>(enableStatusName); } }