|
|
@@ -74,8 +74,14 @@ public class HkOperationDataController extends BaseController {
|
|
74
|
74
|
}
|
|
75
|
75
|
|
|
76
|
76
|
/**
|
|
77
|
|
- * 导入客户原始格式的每日运行数据统计表
|
|
78
|
|
- * Excel结构:前4行为标题/分组表头,第5行起为数据,列按固定位置映射
|
|
|
77
|
+ * 导入每日运行数据(按导入模板格式)
|
|
|
78
|
+ * Excel结构:第1行为表头,第2行起为数据,共24列
|
|
|
79
|
+ * col0=日期 col1=A区 col2=B区 col3=贵宾 col4=国内旅检 col5=国际旅检
|
|
|
80
|
+ * col6=贵宾通道 col7=T1回流通道 col8=T1行检 col9=一楼员工
|
|
|
81
|
+ * col10=T2回流通道 col11=T2行检 col12=三楼东区员工 col13=一楼中心区员工
|
|
|
82
|
+ * col14=负一楼西区员工 col15=三楼西区员工 col16=国内货站 col17=道口(国内货站)
|
|
|
83
|
+ * col18=南侧车检 col19=防爆(国内货站) col20=国际货站 col21=道口(国际货站)
|
|
|
84
|
+ * col22=北侧车检 col23=防爆(国际货站)
|
|
79
|
85
|
*/
|
|
80
|
86
|
@Log(title = "每日运行数据", businessType = BusinessType.IMPORT)
|
|
81
|
87
|
@PostMapping("/importData")
|
|
|
@@ -95,8 +101,8 @@ public class HkOperationDataController extends BaseController {
|
|
95
|
101
|
List<HkOperationData> list = new ArrayList<>();
|
|
96
|
102
|
try (Workbook workbook = WorkbookFactory.create(is)) {
|
|
97
|
103
|
Sheet sheet = workbook.getSheetAt(0);
|
|
98
|
|
- // 前4行:标题、分组表头、子表头、列标题,数据从第5行(索引4)开始
|
|
99
|
|
- for (int i = 4; i <= sheet.getLastRowNum(); i++) {
|
|
|
104
|
+ // 第1行(index=0)为表头,数据从第2行(index=1)开始
|
|
|
105
|
+ for (int i = 1; i <= sheet.getLastRowNum(); i++) {
|
|
100
|
106
|
Row row = sheet.getRow(i);
|
|
101
|
107
|
if (row == null) continue;
|
|
102
|
108
|
Cell dateCell = row.getCell(0);
|
|
|
@@ -104,36 +110,34 @@ public class HkOperationDataController extends BaseController {
|
|
104
|
110
|
if (dateCell.getCellType() != CellType.NUMERIC) continue;
|
|
105
|
111
|
|
|
106
|
112
|
HkOperationData data = new HkOperationData();
|
|
107
|
|
- // col 0: 日期(Excel序列数或日期格式均支持)
|
|
108
|
113
|
if (DateUtil.isCellDateFormatted(dateCell)) {
|
|
109
|
114
|
data.setRecordDate(dateCell.getDateCellValue());
|
|
110
|
115
|
} else {
|
|
111
|
116
|
data.setRecordDate(DateUtil.getJavaDate(dateCell.getNumericCellValue()));
|
|
112
|
117
|
}
|
|
113
|
|
- data.setAZone(intVal(row, 1)); // A区
|
|
114
|
|
- data.setBZone(intVal(row, 2)); // B区
|
|
115
|
|
- data.setVip(intVal(row, 3)); // 贵宾
|
|
116
|
|
- data.setDomesticPassenger(intVal(row, 4)); // 国内旅检
|
|
117
|
|
- data.setIntlPassenger(intVal(row, 5)); // 国际旅检
|
|
118
|
|
- data.setVipChannel(intVal(row, 6)); // 贵宾通道
|
|
119
|
|
- data.setT1ReturnChannel(intVal(row, 7)); // T1回流通道
|
|
120
|
|
- data.setT1LuggageCheck(intVal(row, 8)); // T1行检
|
|
121
|
|
- data.setFloor1Staff(intVal(row, 9)); // 一楼员工
|
|
122
|
|
- data.setT2ReturnChannel(intVal(row, 10));// T2回流通道
|
|
123
|
|
- data.setT2LuggageCheck(intVal(row, 11));// T2行检
|
|
124
|
|
- data.setFloor3EastStaff(intVal(row, 12)); // 三楼东区员工
|
|
125
|
|
- data.setFloor1CenterStaff(intVal(row, 13)); // 一楼中心区员工
|
|
126
|
|
- data.setFloorB1WestStaff(intVal(row, 14)); // 负一楼西区员工
|
|
127
|
|
- data.setFloor3WestStaff(intVal(row, 15)); // 三楼西区员工
|
|
128
|
|
- data.setDomesticCargo(intVal(row, 16)); // 国内货站
|
|
129
|
|
- data.setDomesticGate(intVal(row, 17)); // 道口(国内货站)
|
|
130
|
|
- data.setSouthVehicleCheck(intVal(row, 18)); // 南侧车检
|
|
131
|
|
- data.setDomesticBomb(intVal(row, 19)); // 防爆(国内货站)
|
|
132
|
|
- data.setIntlCargo(intVal(row, 20)); // 国际货站
|
|
133
|
|
- data.setIntlGate(intVal(row, 21)); // 道口(国际货站)
|
|
134
|
|
- data.setNorthVehicleCheck(intVal(row, 22)); // 北侧车检
|
|
135
|
|
- data.setIntlBomb(intVal(row, 23)); // 防爆(国际货站)
|
|
136
|
|
- // col 24: 车检总数(公式列,不导入)
|
|
|
118
|
+ data.setAZone(intVal(row, 1));
|
|
|
119
|
+ data.setBZone(intVal(row, 2));
|
|
|
120
|
+ data.setVip(intVal(row, 3));
|
|
|
121
|
+ data.setDomesticPassenger(intVal(row, 4));
|
|
|
122
|
+ data.setIntlPassenger(intVal(row, 5));
|
|
|
123
|
+ data.setVipChannel(intVal(row, 6));
|
|
|
124
|
+ data.setT1ReturnChannel(intVal(row, 7));
|
|
|
125
|
+ data.setT1LuggageCheck(intVal(row, 8));
|
|
|
126
|
+ data.setFloor1Staff(intVal(row, 9));
|
|
|
127
|
+ data.setT2ReturnChannel(intVal(row, 10));
|
|
|
128
|
+ data.setT2LuggageCheck(intVal(row, 11));
|
|
|
129
|
+ data.setFloor3EastStaff(intVal(row, 12));
|
|
|
130
|
+ data.setFloor1CenterStaff(intVal(row, 13));
|
|
|
131
|
+ data.setFloorB1WestStaff(intVal(row, 14));
|
|
|
132
|
+ data.setFloor3WestStaff(intVal(row, 15));
|
|
|
133
|
+ data.setDomesticCargo(intVal(row, 16));
|
|
|
134
|
+ data.setDomesticGate(intVal(row, 17));
|
|
|
135
|
+ data.setSouthVehicleCheck(intVal(row, 18));
|
|
|
136
|
+ data.setDomesticBomb(intVal(row, 19));
|
|
|
137
|
+ data.setIntlCargo(intVal(row, 20));
|
|
|
138
|
+ data.setIntlGate(intVal(row, 21));
|
|
|
139
|
+ data.setNorthVehicleCheck(intVal(row, 22));
|
|
|
140
|
+ data.setIntlBomb(intVal(row, 23));
|
|
137
|
141
|
list.add(data);
|
|
138
|
142
|
}
|
|
139
|
143
|
}
|