|
@@ -0,0 +1,72 @@
|
|
|
+package com.slibra.web.controller.listener;
|
|
|
+
|
|
|
+import com.alibaba.excel.context.AnalysisContext;
|
|
|
+import com.alibaba.excel.event.AnalysisEventListener;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.slibra.business.domain.TUserInfo;
|
|
|
+import com.slibra.business.mapper.TUserInfoMapper;
|
|
|
+import com.slibra.business.res.UserExcelInfo;
|
|
|
+import org.apache.ibatis.session.ExecutorType;
|
|
|
+import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import org.apache.ibatis.session.SqlSession;
|
|
|
+import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class UserDataListener extends AnalysisEventListener<UserExcelInfo> {
|
|
|
+
|
|
|
+// @Autowired
|
|
|
+// private TUserInfoMapper tUserInfoMapper;
|
|
|
+
|
|
|
+// @Autowired
|
|
|
+ /*private SqlSessionFactory sqlSessionFactory;
|
|
|
+
|
|
|
+ SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);*/
|
|
|
+ SqlSession sqlSession;
|
|
|
+ TUserInfoMapper sqlSessionMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void invoke(UserExcelInfo userExcelInfo, AnalysisContext context) {
|
|
|
+
|
|
|
+ // 处理读取到的每一行数据
|
|
|
+// System.out.println("读取到数据: " + JSON.toJSONString(userExcelInfo));
|
|
|
+ TUserInfo tUserInfo = new TUserInfo();
|
|
|
+// BeanUtils.copyProperties(userExcelInfo, tUserInfo);
|
|
|
+ //因为数据存在空格等 需要额外处理一下
|
|
|
+ tUserInfo.setUserNo(userExcelInfo.getUserNo().trim());
|
|
|
+ tUserInfo.setAmmeterNo(userExcelInfo.getAmmeterNo().trim());
|
|
|
+ tUserInfo.setPumpingStationAddress(userExcelInfo.getPumpingStationAddress().trim());
|
|
|
+ tUserInfo.setRemark(userExcelInfo.getRemark().trim());
|
|
|
+ tUserInfo.setStreet(userExcelInfo.getStreet().trim());
|
|
|
+ tUserInfo.setNeighbourhoodName(userExcelInfo.getNeighbourhoodName().trim());
|
|
|
+ tUserInfo.setBuildingNo(userExcelInfo.getBuildingNo().trim());
|
|
|
+ tUserInfo.setDoorNo(userExcelInfo.getDoorNo().trim());
|
|
|
+ tUserInfo.setMeterReader(userExcelInfo.getMeterReader().trim());
|
|
|
+ tUserInfo.setMeterReaderPhone(userExcelInfo.getMeterReaderPhone().trim());
|
|
|
+// tUserInfoMapper.insertTUserInfo(tUserInfo);
|
|
|
+ sqlSessionMapper.insertTUserInfo(tUserInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void doAfterAllAnalysed(AnalysisContext context) {
|
|
|
+ // 所有数据读取完毕后的处理逻辑
|
|
|
+ System.out.println("所有数据读取完毕");
|
|
|
+ sqlSession.commit();
|
|
|
+ sqlSession.close();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public UserDataListener(TUserInfoMapper sqlSessionMapper) {
|
|
|
+ this.sqlSessionMapper = sqlSessionMapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ public UserDataListener(SqlSession sqlSession, TUserInfoMapper sqlSessionMapper) {
|
|
|
+ this.sqlSession = sqlSession;
|
|
|
+ this.sqlSessionMapper = sqlSessionMapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ public UserDataListener() {
|
|
|
+ }
|
|
|
+}
|