McBasicCmtyImportInspection.java
3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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.McBasicCmty;
import java.util.Map;
public class McBasicCmtyImportInspection extends AnalysisEventListener<McBasicCmty> {
@Override
public void invoke(McBasicCmty data, AnalysisContext context) {
McBasicCmty mcBasicCmty = data;
if (mcBasicCmty.getFiscalYear() == null) {
throw new RuntimeException(String.format("第%s行 财年 为空,请核实", context.readRowHolder().getRowIndex() + 1));
}
if (StringUtils.isEmpty(mcBasicCmty.getRegionName())) {
throw new RuntimeException(String.format("第%s行 区域 为空,请核实", context.readRowHolder().getRowIndex() + 1));
}
if (StringUtils.isEmpty(mcBasicCmty.getCompanyName())) {
throw new RuntimeException(String.format("第%s行 项目公司 为空,请核实", context.readRowHolder().getRowIndex() + 1));
}
if (StringUtils.isEmpty(mcBasicCmty.getCompanyCode())) {
throw new RuntimeException(String.format("第%s行 公司代码 为空,请核实", context.readRowHolder().getRowIndex() + 1));
}
if (StringUtils.isEmpty(mcBasicCmty.getVlgOrCmty())) {
throw new RuntimeException(String.format("第%s行 小区/村 为空,请核实", context.readRowHolder().getRowIndex() + 1));
}
if (StringUtils.isNotEmpty(mcBasicCmty.getUrbRurCls())) {
if (!mcBasicCmty.getUrbRurCls().equals("乡燃") && !mcBasicCmty.getUrbRurCls().equals("城燃")){
throw new RuntimeException(String.format("第%s行 城乡分类 请选择‘乡燃’或‘城燃’,请核实", context.readRowHolder().getRowIndex() + 1));
}
}
}
/**
* 出现异常回调
*
* @param exception
* @param context
* @throws Exception
*/
@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 invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
// // 检查标题行,headMap 是一个 Map,key 是列索引,value 是列标题
// if (headMap.containsKey(0) && "预期标题".equals(headMap.get(0))) { // 假设预期的标题在第一列
//
// }
if (headMap==null || headMap.size()!=36){
throw new RuntimeException(String.format("导入文件格式错误,请检查"));
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}