package cn.iocoder.yudao.module.erp.convert;
import cn.idev.excel.converters.Converter;
import cn.idev.excel.enums.CellDataTypeEnum;
import cn.idev.excel.metadata.GlobalConfiguration;
import cn.idev.excel.metadata.data.ReadCellData;
import cn.idev.excel.metadata.data.WriteCellData;
import cn.idev.excel.metadata.property.ExcelContentProperty;
import cn.iocoder.yudao.module.erp.enums.ErpPurchaseRequestStatusEnum;
/**
* ERP 采购申请状态 Excel 转换器
*
* 将 Integer 状态码转换为中文名称,用于 Excel 导出
*
* @author 芋道源码
*/
public class ErpPurchaseRequestStatusConvert implements Converter {
@Override
public Class> supportJavaTypeKey() {
return Integer.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public WriteCellData> convertToExcelData(Integer value, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
if (value == null) {
return new WriteCellData<>("");
}
ErpPurchaseRequestStatusEnum statusEnum = ErpPurchaseRequestStatusEnum.fromStatus(value);
return new WriteCellData<>(statusEnum != null ? statusEnum.getName() : String.valueOf(value));
}
@Override
public Integer convertToJavaData(ReadCellData> cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
String label = cellData.getStringValue();
ErpPurchaseRequestStatusEnum statusEnum = ErpPurchaseRequestStatusEnum.fromName(label);
return statusEnum != null ? statusEnum.getStatus() : null;
}
}