Browse Source

临时提交

王苗苗 2 months ago
parent
commit
19fe72f959

+ 22 - 0
slibra-admin/src/main/java/com/slibra/web/controller/business/ExcelController.java

@@ -7,6 +7,7 @@ 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.MoreExcelInfo;
 import com.slibra.business.res.UserExcelInfo;
 import com.slibra.business.service.IFrontService;
 import com.slibra.common.core.controller.BaseController;
@@ -15,6 +16,7 @@ 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 com.slibra.web.controller.listener.MoreDataListener;
 import com.slibra.web.controller.listener.UserDataListener;
 import io.micrometer.core.annotation.Timed;
 import lombok.extern.slf4j.Slf4j;
@@ -242,6 +244,26 @@ public class ExcelController extends BaseController {
 
 
 
+    /**
+     *
+     * 将Excel中的[泵站 小区 楼号] 导入到数据库中--减少内存使用
+     * @return
+     */
+    @GetMapping("/moreExcel2DBFetch")
+    @Transactional
+    public String moreExcel2DBFetch(){
+        String fileName = "/Users/wangmiaomiao/Documents/Excel/jmsuser.xlsx"; // Excel文件路径
+        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
+        TPumpingStationMapper pumpingStationMapper = sqlSession.getMapper(TPumpingStationMapper.class);
+        TNeighborhoodBuildingMapper neighborhoodBuildingMapper = sqlSession.getMapper(TNeighborhoodBuildingMapper.class);
+        TPumpingStationNeighbourhoodNumberMapper pumpingStationNeighbourhoodNumberMapper = sqlSession.getMapper(TPumpingStationNeighbourhoodNumberMapper.class);
+        TNeighborhoodMapper neighborhoodMapper = sqlSession.getMapper(TNeighborhoodMapper.class);
+        // 读取Excel文件
+        EasyExcel.read(fileName, MoreExcelInfo.class, new MoreDataListener(sqlSession, pumpingStationMapper, neighborhoodBuildingMapper, pumpingStationNeighbourhoodNumberMapper, neighborhoodMapper))
+                .sheet("泵站") // 读取对应的sheet
+                .doRead(); // 触发实际的读取操作
+        return "操作成功";
+    }
 
 
 

+ 52 - 0
slibra-admin/src/main/java/com/slibra/web/controller/listener/MoreDataListener.java

@@ -0,0 +1,52 @@
+package com.slibra.web.controller.listener;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.slibra.business.domain.TUserInfo;
+import com.slibra.business.mapper.*;
+import com.slibra.business.res.UserExcelInfo;
+import org.apache.ibatis.session.SqlSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class MoreDataListener extends AnalysisEventListener<UserExcelInfo> {
+
+
+    SqlSession sqlSession;
+
+    private TPumpingStationMapper tPumpingStationMapper;
+
+    private TNeighborhoodBuildingMapper tNeighborhoodBuildingMapper;
+
+    private TPumpingStationNeighbourhoodNumberMapper tPumpingStationNeighbourhoodNumberMapper;
+
+    private TNeighborhoodMapper tNeighborhoodMapper;
+
+    @Override
+    public void invoke(UserExcelInfo userExcelInfo, AnalysisContext context) {
+        System.out.println("开始执行插入操作:");
+
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        // 所有数据读取完毕后的处理逻辑
+        System.out.println("所有数据读取完毕");
+        sqlSession.commit();
+        sqlSession.close();
+    }
+
+
+    public MoreDataListener(SqlSession sqlSession, TPumpingStationMapper tPumpingStationMapper, TNeighborhoodBuildingMapper tNeighborhoodBuildingMapper, TPumpingStationNeighbourhoodNumberMapper tPumpingStationNeighbourhoodNumberMapper, TNeighborhoodMapper tNeighborhoodMapper) {
+        this.sqlSession = sqlSession;
+        this.tPumpingStationMapper = tPumpingStationMapper;
+        this.tNeighborhoodBuildingMapper = tNeighborhoodBuildingMapper;
+        this.tPumpingStationNeighbourhoodNumberMapper = tPumpingStationNeighbourhoodNumberMapper;
+        this.tNeighborhoodMapper = tNeighborhoodMapper;
+    }
+
+    public MoreDataListener() {
+    }
+}

+ 36 - 0
slibra-system/src/main/java/com/slibra/business/res/MoreExcelInfo.java

@@ -0,0 +1,36 @@
+package com.slibra.business.res;
+
+import com.slibra.common.annotation.Excel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 用户信息对象 t_user_info
+ * 
+ * @author slibra
+ * @date 2024-11-06
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class MoreExcelInfo
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户编号 */
+    @Excel(name = "泵站")
+    private String pumpingStationName = "";
+
+    /** 水表号 */
+    @Excel(name = "小区名称")
+    private String neighbourName = "";
+
+    /** 水表地址 */
+    @Excel(name = "楼号")
+    private String buildingName = "";
+
+
+}