|
@@ -1,23 +1,26 @@
|
|
|
package com.slibra.web.controller.business;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
-import com.slibra.business.domain.TNeighborhood;
|
|
|
-import com.slibra.business.domain.TNeighborhoodBuilding;
|
|
|
-import com.slibra.business.domain.TPumpingStation;
|
|
|
-import com.slibra.business.domain.TPumpingStationNeighbourhoodNumber;
|
|
|
+import com.slibra.business.domain.*;
|
|
|
import com.slibra.business.mapper.*;
|
|
|
import com.slibra.business.req.AiChatReq;
|
|
|
import com.slibra.business.req.AiChatRes;
|
|
|
import com.slibra.business.res.BZXQLHInfo;
|
|
|
+import com.slibra.business.res.UserExcelInfo;
|
|
|
import com.slibra.business.service.IFrontService;
|
|
|
import com.slibra.common.core.controller.BaseController;
|
|
|
import com.slibra.common.core.domain.AjaxResult;
|
|
|
import com.slibra.common.core.domain.entity.SysUser;
|
|
|
+import com.slibra.common.exception.ServiceException;
|
|
|
import com.slibra.common.utils.StringUtils;
|
|
|
import com.slibra.common.utils.poi.ExcelUtil;
|
|
|
import io.micrometer.core.annotation.Timed;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.ibatis.session.ExecutorType;
|
|
|
+import org.apache.ibatis.session.SqlSession;
|
|
|
+import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
import org.checkerframework.checker.units.qual.C;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -52,6 +55,12 @@ public class ExcelController extends BaseController {
|
|
|
@Autowired
|
|
|
private TNeighborhoodMapper tNeighborhoodMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SqlSessionFactory sqlSessionFactory;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TUserInfoMapper tUserInfoMapper;
|
|
|
+
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
@@ -156,15 +165,52 @@ public class ExcelController extends BaseController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 将Excel中的用户数据 导入到数据库中
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("/userExcel2DB")
|
|
|
+ @Transactional
|
|
|
+ public String userExcel2DB(){
|
|
|
+ long begin = System.currentTimeMillis();
|
|
|
+ File file = new File("/Users/wangmiaomiao/Documents/Excel/jmsuser.xlsx");
|
|
|
+ if(!file.exists())
|
|
|
+ throw new ServiceException("导入的Excel文件不存在!");
|
|
|
+ ExcelUtil<UserExcelInfo> util = new ExcelUtil<UserExcelInfo>(UserExcelInfo.class);
|
|
|
+ List<UserExcelInfo> dataList;
|
|
|
+ try {
|
|
|
+ dataList = util.importExcel("凑合能用的数据", Files.newInputStream(file.toPath()), 0);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(dataList)) {
|
|
|
+ /*SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
|
|
+ TUserInfoMapper sqlSessionMapper = sqlSession.getMapper(TUserInfoMapper.class);*/
|
|
|
+ //处理数据
|
|
|
+ for (UserExcelInfo userExcelInfo : dataList) {
|
|
|
+ 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);
|
|
|
+ //2025年01月09日11:20:35 数据量太大,批量插入有问题
|
|
|
+// sqlSessionMapper.insertTUserInfo(tUserInfo);
|
|
|
+ }
|
|
|
+ /*sqlSession.commit();
|
|
|
+ sqlSession.close();*/
|
|
|
+ }
|
|
|
+ return "操作成功,新增用户数据" + dataList.size() + "条;耗时:" + (System.currentTimeMillis() - begin)/1000/60 + "分钟";
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|