package com.chinagas.modules.schsf.utils.listener; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelDataConvertException; import com.chinagas.common.core.utils.StringUtils; import com.chinagas.modules.schsf.domain.McBasicMoney; import java.util.Map; public class McBasicMoneyImportInspection extends AnalysisEventListener { @Override public void invoke(McBasicMoney data, AnalysisContext context) { McBasicMoney mcBasicMoney = data; if (StringUtils.isEmpty(mcBasicMoney.getCompanyName())) { throw new RuntimeException(String.format("第%s行 项目公司 为空,请核实", context.readRowHolder().getRowIndex() + 1)); } if (StringUtils.isEmpty(mcBasicMoney.getCompanyCode())) { throw new RuntimeException(String.format("第%s行 公司代码 为空,请核实", context.readRowHolder().getRowIndex() + 1)); } if (StringUtils.isNotEmpty(mcBasicMoney.getUrbRurCls())) { if (!mcBasicMoney.getUrbRurCls().equals("乡燃") && !mcBasicMoney.getUrbRurCls().equals("城燃")){ throw new RuntimeException(String.format("第%s行 城乡分类 请选择‘乡燃’或‘城燃’,请核实", context.readRowHolder().getRowIndex() + 1)); } } } @Override public void onException(Exception exception, AnalysisContext context) throws Exception { if (exception instanceof ExcelDataConvertException) { /**从0开始计算*/ Integer columnIndex = ((ExcelDataConvertException) exception).getColumnIndex() + 1; Integer rowIndex = ((ExcelDataConvertException) exception).getRowIndex() + 1; String message = "第" + rowIndex + "行,第" + columnIndex + "列" + "数据格式有误,请核实"; throw new RuntimeException(message); } else if (exception instanceof RuntimeException) { throw exception; } else { super.onException(exception, context); } } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { if (headMap==null || headMap.size()!=33){ throw new RuntimeException(String.format("导入文件格式错误,请检查")); } } }