From e09853e7e9fd13d53e5aeac1fed5560393bef240 Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Tue, 3 Sep 2024 17:26:55 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E6=95=B0=E6=8D=AE=E9=9B=86?=
=?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?Excel=E5=AF=BC=E5=85=A5=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
DataRoom/dataroom-core/pom.xml | 5 +
.../controller/NeUploadExcelController.java | 96 +++
.../controller/NewCategoryController.java | 97 +++
.../module/manage/dao/NeUploadExcelDao.java | 20 +
.../module/manage/dao/NewCategoryDao.java | 18 +
.../module/manage/dto/CategorySearchDTO.java | 15 +
.../core/module/manage/dto/DatasetDTO.java | 15 +
.../module/manage/dto/DatasetEntityDTO.java | 21 +
.../module/manage/entity/CategoryEntity.java | 15 +
.../manage/entity/StuUploadExcelUser.java | 586 ++++++++++++++++++
.../manage/service/NeUploadExcelService.java | 13 +
.../manage/service/NewCategoryService.java | 60 ++
.../impl/NeUploadExcelServiceImpl.java | 20 +
.../service/impl/NewCategoryServiceImpl.java | 140 +++++
.../type/controller/TypeController.java | 5 +
.../dataroom/core/utils/DemoDataListener.java | 149 +++++
.../resources/mapper/NeUploadExcelDao.xml | 41 ++
17 files changed, 1316 insertions(+)
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NeUploadExcelController.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NewCategoryController.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NeUploadExcelDao.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NewCategoryDao.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/CategorySearchDTO.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetDTO.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetEntityDTO.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/CategoryEntity.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/StuUploadExcelUser.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NeUploadExcelService.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NewCategoryService.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NeUploadExcelServiceImpl.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NewCategoryServiceImpl.java
create mode 100644 DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/utils/DemoDataListener.java
create mode 100644 DataRoom/dataroom-core/src/main/resources/mapper/NeUploadExcelDao.xml
diff --git a/DataRoom/dataroom-core/pom.xml b/DataRoom/dataroom-core/pom.xml
index fffe1da7..6256d932 100644
--- a/DataRoom/dataroom-core/pom.xml
+++ b/DataRoom/dataroom-core/pom.xml
@@ -90,6 +90,11 @@
jsch
${jsch.version}
+
+ com.alibaba
+ easyexcel
+ 3.2.1
+
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NeUploadExcelController.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NeUploadExcelController.java
new file mode 100644
index 00000000..63d02cfc
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NeUploadExcelController.java
@@ -0,0 +1,96 @@
+package com.gccloud.dataroom.core.module.manage.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gccloud.common.permission.ApiPermission;
+import com.gccloud.common.utils.JSON;
+import com.gccloud.common.vo.R;
+import com.gccloud.dataroom.core.module.manage.dao.NeUploadExcelDao;
+import com.gccloud.dataroom.core.module.manage.dto.DatasetEntityDTO;
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+import com.gccloud.dataroom.core.utils.DemoDataListener;
+import com.gccloud.dataset.constant.DatasetConstant;
+import com.gccloud.dataset.dto.DatasetDTO;
+import com.gccloud.dataset.entity.DatasetEntity;
+import com.gccloud.dataset.service.IBaseDataSetService;
+import com.gccloud.dataset.service.IDatasetLabelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 9:35
+ */
+@Api(tags = "新数据集")
+@RestController
+@RequestMapping("/newDataset")
+public class NeUploadExcelController {
+
+
+ @Resource
+ private IDatasetLabelService datasetLabelService;
+
+ @Autowired
+ private NeUploadExcelDao neUploadExcelDao;
+
+ @Autowired
+ private IBaseDataSetService dataSetService;
+
+ @ApiOperation("新增Excel")
+ @PostMapping("/newAdd")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.ADD})
+ @Transactional(rollbackFor = Exception.class)
+ public R newAdd(String datasetDTO, @RequestParam("file") @RequestPart MultipartFile file) throws IOException {
+ DatasetDTO datasetByJson = JSON.parseObject(datasetDTO, DatasetDTO.class);
+ // IBaseDataSetService dataSetService = dataSetServiceFactory.build(datasetByJson.getDatasetType());
+ String id = dataSetService.add(datasetByJson);
+
+ //存储excel数据 根据id关联
+
+ // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
+ EasyExcel.read(file.getInputStream(), StuUploadExcelUser.class,
+ new DemoDataListener(neUploadExcelDao, datasetByJson.getRemark(), id)).sheet().doRead();
+
+
+ // 保存与标签的关联关系
+ List labelIds = datasetByJson.getLabelIds();
+ if (labelIds == null || labelIds.isEmpty()) {
+ return R.success(id);
+ }
+ datasetLabelService.addByDatasetId(id, labelIds);
+
+ return R.success(id);
+ }
+
+
+ @ApiOperation("新详情")
+ @GetMapping("/NewInfo")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.VIEW})
+ public R NewInfo(String id,Integer index,Integer size) {
+
+ DatasetEntity datasetEntity = dataSetService.getById(id);
+
+ DatasetEntityDTO datasetEntityDTO = new DatasetEntityDTO();
+ BeanUtils.copyProperties(datasetEntity,datasetEntityDTO);
+
+ IPage page = new Page(index,size);
+ neUploadExcelDao.selectPage(page, null);
+
+ datasetEntityDTO.setUploadExcelList(page.getRecords());
+
+
+ return R.success(datasetEntityDTO);
+ }
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NewCategoryController.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NewCategoryController.java
new file mode 100644
index 00000000..08b26392
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/NewCategoryController.java
@@ -0,0 +1,97 @@
+package com.gccloud.dataroom.core.module.manage.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.gccloud.common.permission.ApiPermission;
+import com.gccloud.common.service.ITreeService;
+import com.gccloud.common.utils.BeanConvertUtils;
+import com.gccloud.common.vo.R;
+import com.gccloud.dataroom.core.module.manage.dao.NewCategoryDao;
+import com.gccloud.dataroom.core.module.manage.dto.CategorySearchDTO;
+import com.gccloud.dataroom.core.module.manage.entity.CategoryEntity;
+import com.gccloud.dataroom.core.module.manage.service.NewCategoryService;
+import com.gccloud.dataset.constant.DatasetConstant;
+
+
+import com.gccloud.dataset.vo.CategoryVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static com.gccloud.dataroom.core.module.map.service.IDataRoomMapService.SUPER_PARENT_ID;
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:01
+ */
+@Api(tags = "新版数据集")
+@RestController
+@RequestMapping("/category")
+@ConditionalOnProperty(prefix = "gc.starter.dataset.component", name = "DatasetCategoryController", havingValue = "DatasetCategoryController", matchIfMissing = true)
+public class NewCategoryController {
+
+
+
+
+
+ @Autowired
+ private NewCategoryService categoryService;
+
+ @ApiOperation("新版依据类型查询对应的种类树")
+ @GetMapping("/queryTreeListByUserId")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.CATEGORY_VIEW})
+ public R> queryTreeListByUserId(CategorySearchDTO searchDTO) {
+ List tree = categoryService.getTree(searchDTO);
+ return R.success(tree);
+ }
+
+
+
+
+ @ApiOperation("新增数据集")
+ @PostMapping("/addDataSource")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.CATEGORY_EDIT})
+ public R addDataSource(@RequestBody CategoryEntity categoryEntity) {
+ String id = categoryService.add(categoryEntity);
+
+ return R.success(id);
+ }
+
+ @ApiOperation("修改数据集")
+ @PostMapping("/updateDataSource")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.CATEGORY_EDIT})
+ public R updateDataSource(@RequestBody CategoryEntity categoryEntity) {
+ categoryService.update(categoryEntity);
+ return R.success();
+ }
+
+
+ @ApiOperation("删除数据集")
+ @PostMapping("/deleteDataSource/{id}")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.CATEGORY_EDIT})
+ public R deleteDataSource(@PathVariable String id) {
+ categoryService.delete(id);
+ return R.success();
+ }
+
+ @ApiOperation("名称查重数据集")
+ @PostMapping("/checkRepeatDataSource")
+ @ApiPermission(permissions = {DatasetConstant.Permission.Dataset.CATEGORY_VIEW})
+ public R checkRepeatDataSource(@RequestBody CategoryEntity entity) {
+ Boolean flag = categoryService.checkNameRepeat(entity);
+ return R.success(flag);
+ }
+
+
+
+
+
+
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NeUploadExcelDao.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NeUploadExcelDao.java
new file mode 100644
index 00000000..8b87bd34
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NeUploadExcelDao.java
@@ -0,0 +1,20 @@
+package com.gccloud.dataroom.core.module.manage.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gccloud.dataroom.core.module.manage.entity.CategoryEntity;
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 9:32
+ */
+@Mapper
+public interface NeUploadExcelDao extends BaseMapper {
+
+
+ //批量导入
+ void insertBatch(List cachedDataList);
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NewCategoryDao.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NewCategoryDao.java
new file mode 100644
index 00000000..220d5250
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dao/NewCategoryDao.java
@@ -0,0 +1,18 @@
+package com.gccloud.dataroom.core.module.manage.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gccloud.dataroom.core.module.manage.entity.CategoryEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:15
+ */
+@Mapper
+public interface NewCategoryDao extends BaseMapper {
+
+
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/CategorySearchDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/CategorySearchDTO.java
new file mode 100644
index 00000000..38adb129
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/CategorySearchDTO.java
@@ -0,0 +1,15 @@
+package com.gccloud.dataroom.core.module.manage.dto;
+
+import lombok.Data;
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:10
+ */
+@Data
+public class CategorySearchDTO extends com.gccloud.dataset.dto.CategorySearchDTO {
+
+
+ private String userId;
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetDTO.java
new file mode 100644
index 00000000..a093aeb6
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetDTO.java
@@ -0,0 +1,15 @@
+package com.gccloud.dataroom.core.module.manage.dto;
+
+import lombok.Data;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 9:38
+ */
+@Data
+public class DatasetDTO extends com.gccloud.dataset.dto.DatasetDTO {
+
+
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetEntityDTO.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetEntityDTO.java
new file mode 100644
index 00000000..ab306066
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/dto/DatasetEntityDTO.java
@@ -0,0 +1,21 @@
+package com.gccloud.dataroom.core.module.manage.dto;
+
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+import com.gccloud.dataset.entity.DatasetEntity;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 11:08
+ */
+@Data
+public class DatasetEntityDTO extends DatasetEntity {
+
+ private List uploadExcelList;
+
+
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/CategoryEntity.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/CategoryEntity.java
new file mode 100644
index 00000000..23249a63
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/CategoryEntity.java
@@ -0,0 +1,15 @@
+package com.gccloud.dataroom.core.module.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:11
+ */
+@Data
+@TableName("ds_category_tree")
+public class CategoryEntity extends com.gccloud.dataset.entity.CategoryEntity {
+
+ private String userId;
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/StuUploadExcelUser.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/StuUploadExcelUser.java
new file mode 100644
index 00000000..4261d428
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/entity/StuUploadExcelUser.java
@@ -0,0 +1,586 @@
+package com.gccloud.dataroom.core.module.manage.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 外部导入excel
+ *
+ * @author whb
+ * stu_upload_excel_user
+ */
+@Data
+@TableName("stu_upload_excel_user")
+public class StuUploadExcelUser {
+ @ApiModelProperty("id")
+
+ private Integer id;
+
+ @ApiModelProperty("步骤一 a")
+ private String stepOneA;
+
+ @ApiModelProperty("步骤一 b")
+ @ExcelProperty(index = 0)
+ private String stepOneB;
+
+ @ApiModelProperty("步骤一 c")
+ @ExcelProperty(index = 1)
+ private String stepOneC;
+
+ @ApiModelProperty("步骤一 d")
+ @ExcelProperty(index = 2)
+ private String stepOneD;
+
+ @ApiModelProperty("4")
+ @ExcelProperty(index = 3)
+ private String stepTwoA;
+
+ @ApiModelProperty("5")
+ @ExcelProperty(index = 4)
+ private String stepTwoB;
+
+ @ApiModelProperty("6")
+ @ExcelProperty(index = 5)
+ private String stepTwoC;
+
+ @ApiModelProperty("7")
+ @ExcelProperty(index = 6)
+ private String stepThreeA;
+
+ @ApiModelProperty("8")
+ @ExcelProperty(index = 7)
+ private String stepThreeB;
+
+ @ApiModelProperty("9")
+ @ExcelProperty(index = 8)
+ private String stepThreeC;
+
+ @ApiModelProperty("10")
+ @ExcelProperty(index = 9)
+ private String stepThreeD;
+
+ @ApiModelProperty("11")
+ @ExcelProperty(index = 10)
+ private String stepFourA;
+
+ @ApiModelProperty("12")
+ @ExcelProperty(index = 11)
+ private String stepFourB;
+
+ @ApiModelProperty("13")
+ @ExcelProperty(index = 12)
+ private String stepFourC;
+
+ @ApiModelProperty("14")
+ @ExcelProperty(index = 13)
+ private String stepFourD;
+
+ @ApiModelProperty("15")
+ @ExcelProperty(index = 14)
+ private String stepFiveA;
+
+ @ApiModelProperty("16")
+ @ExcelProperty(index = 15)
+ private String stepFiveB;
+
+ @ApiModelProperty("17")
+ private String stepFiveC;
+
+ @ApiModelProperty("18")
+ private String stepFiveD;
+
+ @ApiModelProperty("19")
+ private String stepSixA;
+
+ @ApiModelProperty("20")
+ private String stepSixB;
+
+ @ApiModelProperty("21")
+ private String stepSixC;
+
+ @ApiModelProperty("22")
+ private String stepSixD;
+
+ @ApiModelProperty("23")
+ private String stepSevenA;
+
+ @ApiModelProperty("24")
+ private String stepSevenB;
+
+ @ApiModelProperty("25")
+ private String stepSevenC;
+
+ @ApiModelProperty("26")
+ private String stepSevenD;
+
+ @ApiModelProperty("27")
+ private String stepEightA;
+
+ @ApiModelProperty("28")
+ private String stepEightB;
+
+ @ApiModelProperty("29")
+ private String stepEightC;
+
+ @ApiModelProperty("30")
+ private String stepEightD;
+
+ @ApiModelProperty("31")
+ private String stepNineA;
+
+ @ApiModelProperty("32")
+ private String stepNineB;
+
+ @ApiModelProperty("33")
+ private String stepNineC;
+
+ @ApiModelProperty("正确次数")
+ private Integer successNumber;
+
+ @ApiModelProperty("用户ID")
+ private String userId;
+
+ @ApiModelProperty("提交状态(-1 未提交 1已提交)")
+ private Integer subState;
+
+ @ApiModelProperty("归属模块(小模块)")
+ private String module;
+
+ @ApiModelProperty("34")
+ private String stepNineD;
+
+ @ApiModelProperty("35")
+ private String stepTenA;
+
+ @ApiModelProperty("36")
+ private String stepTenB;
+
+ @ApiModelProperty("37")
+ private String stepTenC;
+
+ @ApiModelProperty("38")
+ private String stepTenD;
+
+ @ApiModelProperty("39")
+ private String stepElevenA;
+
+ @ApiModelProperty("40")
+ private String stepElevenB;
+
+ @ApiModelProperty("41")
+ private String stepElevenC;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+
+ @ApiModelProperty("错误字段")
+ private String errorField;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getStepOneA() {
+ return stepOneA;
+ }
+
+ public void setStepOneA(String stepOneA) {
+ this.stepOneA = stepOneA == null ? null : stepOneA.trim();
+ }
+
+ public String getStepOneB() {
+ return stepOneB;
+ }
+
+ public void setStepOneB(String stepOneB) {
+ this.stepOneB = stepOneB == null ? null : stepOneB.trim();
+ }
+
+ public String getStepOneC() {
+ return stepOneC;
+ }
+
+ public void setStepOneC(String stepOneC) {
+ this.stepOneC = stepOneC == null ? null : stepOneC.trim();
+ }
+
+ public String getStepOneD() {
+ return stepOneD;
+ }
+
+ public void setStepOneD(String stepOneD) {
+ this.stepOneD = stepOneD == null ? null : stepOneD.trim();
+ }
+
+ public String getStepTwoA() {
+ return stepTwoA;
+ }
+
+ public void setStepTwoA(String stepTwoA) {
+ this.stepTwoA = stepTwoA == null ? null : stepTwoA.trim();
+ }
+
+ public String getStepTwoB() {
+ return stepTwoB;
+ }
+
+ public void setStepTwoB(String stepTwoB) {
+ this.stepTwoB = stepTwoB == null ? null : stepTwoB.trim();
+ }
+
+ public String getStepTwoC() {
+ return stepTwoC;
+ }
+
+ public void setStepTwoC(String stepTwoC) {
+ this.stepTwoC = stepTwoC == null ? null : stepTwoC.trim();
+ }
+
+ public String getStepThreeA() {
+ return stepThreeA;
+ }
+
+ public void setStepThreeA(String stepThreeA) {
+ this.stepThreeA = stepThreeA == null ? null : stepThreeA.trim();
+ }
+
+ public String getStepThreeB() {
+ return stepThreeB;
+ }
+
+ public void setStepThreeB(String stepThreeB) {
+ this.stepThreeB = stepThreeB == null ? null : stepThreeB.trim();
+ }
+
+ public String getStepThreeC() {
+ return stepThreeC;
+ }
+
+ public void setStepThreeC(String stepThreeC) {
+ this.stepThreeC = stepThreeC == null ? null : stepThreeC.trim();
+ }
+
+ public String getStepThreeD() {
+ return stepThreeD;
+ }
+
+ public void setStepThreeD(String stepThreeD) {
+ this.stepThreeD = stepThreeD == null ? null : stepThreeD.trim();
+ }
+
+ public String getStepFourA() {
+ return stepFourA;
+ }
+
+ public void setStepFourA(String stepFourA) {
+ this.stepFourA = stepFourA == null ? null : stepFourA.trim();
+ }
+
+ public String getStepFourB() {
+ return stepFourB;
+ }
+
+ public void setStepFourB(String stepFourB) {
+ this.stepFourB = stepFourB == null ? null : stepFourB.trim();
+ }
+
+ public String getStepFourC() {
+ return stepFourC;
+ }
+
+ public void setStepFourC(String stepFourC) {
+ this.stepFourC = stepFourC == null ? null : stepFourC.trim();
+ }
+
+ public String getStepFourD() {
+ return stepFourD;
+ }
+
+ public void setStepFourD(String stepFourD) {
+ this.stepFourD = stepFourD == null ? null : stepFourD.trim();
+ }
+
+ public String getStepFiveA() {
+ return stepFiveA;
+ }
+
+ public void setStepFiveA(String stepFiveA) {
+ this.stepFiveA = stepFiveA == null ? null : stepFiveA.trim();
+ }
+
+ public String getStepFiveB() {
+ return stepFiveB;
+ }
+
+ public void setStepFiveB(String stepFiveB) {
+ this.stepFiveB = stepFiveB == null ? null : stepFiveB.trim();
+ }
+
+ public String getStepFiveC() {
+ return stepFiveC;
+ }
+
+ public void setStepFiveC(String stepFiveC) {
+ this.stepFiveC = stepFiveC == null ? null : stepFiveC.trim();
+ }
+
+ public String getStepFiveD() {
+ return stepFiveD;
+ }
+
+ public void setStepFiveD(String stepFiveD) {
+ this.stepFiveD = stepFiveD == null ? null : stepFiveD.trim();
+ }
+
+ public String getStepSixA() {
+ return stepSixA;
+ }
+
+ public void setStepSixA(String stepSixA) {
+ this.stepSixA = stepSixA == null ? null : stepSixA.trim();
+ }
+
+ public String getStepSixB() {
+ return stepSixB;
+ }
+
+ public void setStepSixB(String stepSixB) {
+ this.stepSixB = stepSixB == null ? null : stepSixB.trim();
+ }
+
+ public String getStepSixC() {
+ return stepSixC;
+ }
+
+ public void setStepSixC(String stepSixC) {
+ this.stepSixC = stepSixC == null ? null : stepSixC.trim();
+ }
+
+ public String getStepSixD() {
+ return stepSixD;
+ }
+
+ public void setStepSixD(String stepSixD) {
+ this.stepSixD = stepSixD == null ? null : stepSixD.trim();
+ }
+
+ public String getStepSevenA() {
+ return stepSevenA;
+ }
+
+ public void setStepSevenA(String stepSevenA) {
+ this.stepSevenA = stepSevenA == null ? null : stepSevenA.trim();
+ }
+
+ public String getStepSevenB() {
+ return stepSevenB;
+ }
+
+ public void setStepSevenB(String stepSevenB) {
+ this.stepSevenB = stepSevenB == null ? null : stepSevenB.trim();
+ }
+
+ public String getStepSevenC() {
+ return stepSevenC;
+ }
+
+ public void setStepSevenC(String stepSevenC) {
+ this.stepSevenC = stepSevenC == null ? null : stepSevenC.trim();
+ }
+
+ public String getStepSevenD() {
+ return stepSevenD;
+ }
+
+ public void setStepSevenD(String stepSevenD) {
+ this.stepSevenD = stepSevenD == null ? null : stepSevenD.trim();
+ }
+
+ public String getStepEightA() {
+ return stepEightA;
+ }
+
+ public void setStepEightA(String stepEightA) {
+ this.stepEightA = stepEightA == null ? null : stepEightA.trim();
+ }
+
+ public String getStepEightB() {
+ return stepEightB;
+ }
+
+ public void setStepEightB(String stepEightB) {
+ this.stepEightB = stepEightB == null ? null : stepEightB.trim();
+ }
+
+ public String getStepEightC() {
+ return stepEightC;
+ }
+
+ public void setStepEightC(String stepEightC) {
+ this.stepEightC = stepEightC == null ? null : stepEightC.trim();
+ }
+
+ public String getStepEightD() {
+ return stepEightD;
+ }
+
+ public void setStepEightD(String stepEightD) {
+ this.stepEightD = stepEightD == null ? null : stepEightD.trim();
+ }
+
+ public String getStepNineA() {
+ return stepNineA;
+ }
+
+ public void setStepNineA(String stepNineA) {
+ this.stepNineA = stepNineA == null ? null : stepNineA.trim();
+ }
+
+ public String getStepNineB() {
+ return stepNineB;
+ }
+
+ public void setStepNineB(String stepNineB) {
+ this.stepNineB = stepNineB == null ? null : stepNineB.trim();
+ }
+
+ public String getStepNineC() {
+ return stepNineC;
+ }
+
+ public void setStepNineC(String stepNineC) {
+ this.stepNineC = stepNineC == null ? null : stepNineC.trim();
+ }
+
+ public Integer getSuccessNumber() {
+ return successNumber;
+ }
+
+ public void setSuccessNumber(Integer successNumber) {
+ this.successNumber = successNumber;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId == null ? null : userId.trim();
+ }
+
+ public Integer getSubState() {
+ return subState;
+ }
+
+ public void setSubState(Integer subState) {
+ this.subState = subState;
+ }
+
+ public String getModule() {
+ return module;
+ }
+
+ public void setModule(String module) {
+ this.module = module == null ? null : module.trim();
+ }
+
+ public String getStepNineD() {
+ return stepNineD;
+ }
+
+ public void setStepNineD(String stepNineD) {
+ this.stepNineD = stepNineD == null ? null : stepNineD.trim();
+ }
+
+ public String getStepTenA() {
+ return stepTenA;
+ }
+
+ public void setStepTenA(String stepTenA) {
+ this.stepTenA = stepTenA == null ? null : stepTenA.trim();
+ }
+
+ public String getStepTenB() {
+ return stepTenB;
+ }
+
+ public void setStepTenB(String stepTenB) {
+ this.stepTenB = stepTenB == null ? null : stepTenB.trim();
+ }
+
+ public String getStepTenC() {
+ return stepTenC;
+ }
+
+ public void setStepTenC(String stepTenC) {
+ this.stepTenC = stepTenC == null ? null : stepTenC.trim();
+ }
+
+ public String getStepTenD() {
+ return stepTenD;
+ }
+
+ public void setStepTenD(String stepTenD) {
+ this.stepTenD = stepTenD == null ? null : stepTenD.trim();
+ }
+
+ public String getStepElevenA() {
+ return stepElevenA;
+ }
+
+ public void setStepElevenA(String stepElevenA) {
+ this.stepElevenA = stepElevenA == null ? null : stepElevenA.trim();
+ }
+
+ public String getStepElevenB() {
+ return stepElevenB;
+ }
+
+ public void setStepElevenB(String stepElevenB) {
+ this.stepElevenB = stepElevenB == null ? null : stepElevenB.trim();
+ }
+
+ public String getStepElevenC() {
+ return stepElevenC;
+ }
+
+ public void setStepElevenC(String stepElevenC) {
+ this.stepElevenC = stepElevenC == null ? null : stepElevenC.trim();
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getErrorField() {
+ return errorField;
+ }
+
+ public void setErrorField(String errorField) {
+ this.errorField = errorField == null ? null : errorField.trim();
+ }
+}
\ No newline at end of file
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NeUploadExcelService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NeUploadExcelService.java
new file mode 100644
index 00000000..237c2da1
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NeUploadExcelService.java
@@ -0,0 +1,13 @@
+package com.gccloud.dataroom.core.module.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gccloud.common.service.ISuperService;
+
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 9:32
+ */
+public interface NeUploadExcelService extends IService {
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NewCategoryService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NewCategoryService.java
new file mode 100644
index 00000000..bb302dc0
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/NewCategoryService.java
@@ -0,0 +1,60 @@
+package com.gccloud.dataroom.core.module.manage.service;
+
+
+import com.gccloud.dataroom.core.module.manage.dto.CategorySearchDTO;
+import com.gccloud.dataroom.core.module.manage.entity.CategoryEntity;
+
+
+import com.gccloud.dataset.vo.CategoryVO;
+
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:22
+ */
+
+public interface NewCategoryService {
+
+ /**
+ * 获取分类树
+ * @param searchDTO
+ * @return
+ */
+ List getTree(CategorySearchDTO searchDTO);
+
+
+// /**
+// * 获取节点的所有子节点id,包括子节点的子节点的...
+// * @param id
+// * @return
+// */
+// List getAllChildrenId(String id);
+
+ /**
+ * 新增
+ * @param entity
+ * @return
+ */
+ String add(CategoryEntity entity);
+
+ /**
+ * 修改
+ * @param entity
+ */
+ void update(CategoryEntity entity);
+
+ /**
+ * 删除
+ * @param id
+ */
+ void delete(String id);
+
+
+ /**
+ * 校验名称重复
+ * @param entity
+ * @return
+ */
+ boolean checkNameRepeat(CategoryEntity entity);
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NeUploadExcelServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NeUploadExcelServiceImpl.java
new file mode 100644
index 00000000..78ade4a3
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NeUploadExcelServiceImpl.java
@@ -0,0 +1,20 @@
+package com.gccloud.dataroom.core.module.manage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gccloud.dataroom.core.module.basic.dao.DataRoomPagePreviewDao;
+import com.gccloud.dataroom.core.module.basic.entity.PagePreviewEntity;
+import com.gccloud.dataroom.core.module.manage.dao.NeUploadExcelDao;
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+import com.gccloud.dataroom.core.module.manage.service.NeUploadExcelService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author 17803
+ * @date 2024-09-03 9:33
+ */
+@Service
+public class NeUploadExcelServiceImpl extends ServiceImpl implements NeUploadExcelService {
+
+
+
+}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NewCategoryServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NewCategoryServiceImpl.java
new file mode 100644
index 00000000..92b409d1
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/NewCategoryServiceImpl.java
@@ -0,0 +1,140 @@
+package com.gccloud.dataroom.core.module.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gccloud.common.exception.GlobalException;
+import com.gccloud.common.service.ITreeService;
+import com.gccloud.common.utils.BeanConvertUtils;
+import com.gccloud.dataroom.core.module.manage.dao.NewCategoryDao;
+import com.gccloud.dataroom.core.module.manage.dto.CategorySearchDTO;
+import com.gccloud.dataroom.core.module.manage.entity.CategoryEntity;
+import com.gccloud.dataroom.core.module.manage.service.NewCategoryService;
+
+import com.gccloud.dataset.dao.CategoryDao;
+
+import com.gccloud.dataset.service.ICategoryService;
+import com.gccloud.dataset.vo.CategoryVO;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author 17803
+ * @date 2024-09-02 16:23
+ */
+@Service
+public class NewCategoryServiceImpl extends ServiceImpl implements NewCategoryService {
+
+ /**
+ * 顶级父节点id
+ */
+ private static final String SUPER_PARENT_ID = "0";
+
+ /**
+ * id序列分隔符
+ */
+ private static final String ID_SPLIT = ",";
+
+
+ @Resource
+ private ITreeService treeService;
+
+ @Override
+ public List getTree(CategorySearchDTO searchDTO) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(searchDTO.getModuleCode()), CategoryEntity::getModuleCode, searchDTO.getModuleCode());
+ wrapper.eq(StringUtils.isNotBlank(searchDTO.getType()), CategoryEntity::getType, searchDTO.getType());
+ // 使用 or 将两个主要条件分开
+ wrapper.and(w ->
+ w.eq(CategoryEntity::getUserId, searchDTO.getUserId())
+ .or().eq(CategoryEntity::getId, 5)
+ );
+ List list = this.list(wrapper);
+ List voList = BeanConvertUtils.convert(list, CategoryVO.class);
+ treeService.transToTree(voList);
+ voList.removeIf(categoryVO -> !SUPER_PARENT_ID.equals(categoryVO.getParentId()));
+ return voList;
+ }
+
+// @Override
+// public List getAllChildrenId(String id) {
+// CategoryEntity category = this.getById(id);
+// String ids = category.getIds() + ID_SPLIT;
+// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+// wrapper.select(CategoryEntity::getId);
+// wrapper.likeRight(CategoryEntity::getIds, ids);
+// List list = this.list(wrapper);
+// return list.stream().map(CategoryEntity::getId).collect(Collectors.toList());
+// }
+
+
+ @Override
+ public String add(CategoryEntity entity) {
+ boolean repeat = this.checkNameRepeat(entity);
+ if (repeat) {
+ throw new GlobalException("节点名称重复");
+ }
+ if (StringUtils.isBlank(entity.getParentId())) {
+ entity.setParentId(SUPER_PARENT_ID);
+ }
+ this.save(entity);
+ entity.setIds(entity.getId());
+ if (!SUPER_PARENT_ID.equals(entity.getParentId())) {
+ CategoryEntity parent = this.getById(entity.getParentId());
+ if (parent == null) {
+ throw new GlobalException("父节点不存在");
+ }
+ entity.setIds(parent.getIds() + ID_SPLIT + entity.getId());
+ }
+ this.updateById(entity);
+ return entity.getId();
+ }
+
+ @Override
+ public void update(CategoryEntity entity) {
+ boolean repeat = this.checkNameRepeat(entity);
+ if (repeat) {
+ throw new GlobalException("节点名称重复");
+ }
+ this.updateById(entity);
+ }
+
+ @Override
+ public void delete(String id) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select(CategoryEntity::getId);
+ queryWrapper.eq(CategoryEntity::getParentId, id);
+ if (this.list(queryWrapper).size() > 0) {
+ throw new GlobalException("该节点下存在子节点,无法删除");
+ }
+ this.removeById(id);
+ }
+
+ @Override
+ public boolean checkNameRepeat(CategoryEntity entity) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select(CategoryEntity::getId);
+ queryWrapper.eq(CategoryEntity::getName, entity.getName());
+ queryWrapper.eq(StringUtils.isNotBlank(entity.getModuleCode()), CategoryEntity::getModuleCode, entity.getModuleCode());
+ queryWrapper.eq(StringUtils.isNotBlank(entity.getType()), CategoryEntity::getType, entity.getType());
+ queryWrapper.ne(StringUtils.isNotBlank(entity.getId()), CategoryEntity::getId, entity.getId());
+ queryWrapper.eq(CategoryEntity::getUserId, entity.getUserId());
+ if (StringUtils.isBlank(entity.getParentId())) {
+ queryWrapper.eq(CategoryEntity::getParentId, SUPER_PARENT_ID);
+ } else {
+ queryWrapper.eq(CategoryEntity::getParentId, entity.getParentId());
+ }
+ // NOTE 为了兼容mybatis-plus的升级,这里不能使用count()方法
+ return this.list(queryWrapper).size() > 0;
+ }
+}
+
+
+
+
+
+
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/controller/TypeController.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/controller/TypeController.java
index 9fe28002..81577544 100644
--- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/controller/TypeController.java
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/type/controller/TypeController.java
@@ -136,4 +136,9 @@ public class TypeController {
}
+
+
+
+
+
}
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/utils/DemoDataListener.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/utils/DemoDataListener.java
new file mode 100644
index 00000000..e44d175e
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/utils/DemoDataListener.java
@@ -0,0 +1,149 @@
+package com.gccloud.dataroom.core.utils;
+
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.alibaba.excel.util.ConverterUtils;
+import com.alibaba.excel.util.ListUtils;
+
+
+import com.gccloud.common.utils.JSON;
+import com.gccloud.dataroom.core.module.manage.dao.NeUploadExcelDao;
+import com.gccloud.dataroom.core.module.manage.entity.StuUploadExcelUser;
+import lombok.extern.slf4j.Slf4j;
+
+import java.lang.reflect.Field;
+import java.util.*;
+
+
+// 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
+@Slf4j
+
+public class DemoDataListener implements ReadListener {
+
+
+ /**
+ * 每隔5条存储数据库,实际使用中可以100条,然后清理list ,方便内存回收
+ *
+ */
+ private static final int BATCH_COUNT = 150;
+ private static final int MAX_COUNT = 1000; // 最大处理条数
+ /**
+ * 缓存的数据
+ */
+ private List cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+ /**
+ * 假设这个是一个DAO,当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。
+ */
+ private NeUploadExcelDao demoDAO;
+ private String userId;
+ private String id;
+ private int processedCount = 0; // 记录已处理的数据条数
+
+ List list = new ArrayList();
+
+ /**
+ * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
+ *
+ * @param demoDAO
+ */
+ public DemoDataListener(NeUploadExcelDao demoDAO, String userId, String id) {
+ this.id = id;
+ this.userId = userId;
+ this.demoDAO = demoDAO;
+ }
+
+
+ /**
+ * 这里会一行行的返回头
+ *
+ * @param headMap
+ * @param context
+ */
+ @Override
+ public void invokeHead(Map> headMap, AnalysisContext context) {
+ // log.info("解析到一条头数据:{}", JSON.toJSONString(headMap));
+
+ Map integerStringMap = ConverterUtils.convertToStringMap(headMap, context);
+
+ //log.info("转换解析到的一条头数据:{}", integerStringMap);
+
+
+ Set integers = integerStringMap.keySet();
+ for (Integer integer : integers) {
+ list.add(integerStringMap.get(integer));
+ }
+
+
+ // 如果想转成成 Map
+ // 方案1: 不要implements ReadListener 而是 extends AnalysisEventListener
+ // 方案2: 调用 ConverterUtils.convertToStringMap(headMap, context) 自动会转换
+ }
+
+ /**
+ * 这个每一条数据解析都会来调用
+ *
+ * @param data one row value. Is is same as {@link AnalysisContext#readRowHolder()}
+ * @param context
+ */
+ @Override
+ public void invoke(StuUploadExcelUser data, AnalysisContext context) {
+// //log.info("解析到一条数据:{}", JSON.toJSONString(data));
+// cachedDataList.add(data);
+// // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+//
+// if (cachedDataList.size() >= BATCH_COUNT) {
+// saveData();
+// // 存储完成清理 list
+// cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+// }
+ if (processedCount >= MAX_COUNT) {
+ // context.interrupt(); // 终止解析
+ return;
+ }
+
+ cachedDataList.add(data);
+ processedCount++;
+
+ if (cachedDataList.size() >= BATCH_COUNT || processedCount >= MAX_COUNT) {
+ saveData();
+ cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+ }
+ }
+
+ /**
+ * 所有数据解析完成了 都会来调用
+ *
+ * @param context
+ */
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+
+ saveData();
+ log.info("所有数据解析完成!"+ ",当前线程:" + Thread.currentThread().getName());
+ }
+
+ /**
+ * 加上存储数据库
+ */
+ private void saveData() {
+
+
+ cachedDataList.forEach(item->{
+ item.setUserId(userId);
+ item.setModule(id);
+ item.setStepOneA(JSON.toJSONString(list));
+ });
+
+
+ for (StuUploadExcelUser uploadExcelUser : cachedDataList) {
+ demoDAO.insert(uploadExcelUser);
+ }
+
+ //demoDAO.insertBatch(cachedDataList);
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/DataRoom/dataroom-core/src/main/resources/mapper/NeUploadExcelDao.xml b/DataRoom/dataroom-core/src/main/resources/mapper/NeUploadExcelDao.xml
new file mode 100644
index 00000000..7cba13fa
--- /dev/null
+++ b/DataRoom/dataroom-core/src/main/resources/mapper/NeUploadExcelDao.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ INSERT INTO stu_upload_excel_user (id, step_one_a, step_one_b, step_one_c, step_one_d,
+ step_two_a, step_two_b, step_two_c, step_three_a,
+ step_three_b, step_three_c, step_three_d, step_four_a,
+ step_four_b, step_four_c, step_four_d, step_five_a,
+ step_five_b, step_five_c, step_five_d, step_six_a,
+ step_six_b, step_six_c, step_six_d, step_seven_a,
+ step_seven_b, step_seven_c, step_seven_d, step_eight_a,
+ step_eight_b, step_eight_c, step_eight_d, step_nine_a,
+ step_nine_b, step_nine_c, success_number, user_id,
+ sub_state, module, step_nine_d, step_ten_a, step_ten_b,
+ step_ten_c, step_ten_d, step_eleven_a, step_eleven_b,
+ step_eleven_c, create_time, update_time, error_field)
+ VALUES
+
+ (#{item.id,jdbcType=INTEGER}, #{item.stepOneA,jdbcType=VARCHAR}, #{item.stepOneB,jdbcType=VARCHAR},
+ #{item.stepOneC,jdbcType=VARCHAR}, #{item.stepOneD,jdbcType=VARCHAR}, #{item.stepTwoA,jdbcType=VARCHAR},
+ #{item.stepTwoB,jdbcType=VARCHAR}, #{item.stepTwoC,jdbcType=VARCHAR}, #{item.stepThreeA,jdbcType=VARCHAR},
+ #{item.stepThreeB,jdbcType=VARCHAR}, #{item.stepThreeC,jdbcType=VARCHAR}, #{item.stepThreeD,jdbcType=VARCHAR},
+ #{item.stepFourA,jdbcType=VARCHAR}, #{item.stepFourB,jdbcType=VARCHAR}, #{item.stepFourC,jdbcType=VARCHAR},
+ #{item.stepFourD,jdbcType=VARCHAR}, #{item.stepFiveA,jdbcType=VARCHAR}, #{item.stepFiveB,jdbcType=VARCHAR},
+ #{item.stepFiveC,jdbcType=VARCHAR}, #{item.stepFiveD,jdbcType=VARCHAR}, #{item.stepSixA,jdbcType=VARCHAR},
+ #{item.stepSixB,jdbcType=VARCHAR}, #{item.stepSixC,jdbcType=VARCHAR}, #{item.stepSixD,jdbcType=VARCHAR},
+ #{item.stepSevenA,jdbcType=VARCHAR}, #{item.stepSevenB,jdbcType=VARCHAR}, #{item.stepSevenC,jdbcType=VARCHAR},
+ #{item.stepSevenD,jdbcType=VARCHAR}, #{item.stepEightA,jdbcType=VARCHAR}, #{item.stepEightB,jdbcType=VARCHAR},
+ #{item.stepEightC,jdbcType=VARCHAR}, #{item.stepEightD,jdbcType=VARCHAR}, #{item.stepNineA,jdbcType=VARCHAR},
+ #{item.stepNineB,jdbcType=VARCHAR}, #{item.stepNineC,jdbcType=VARCHAR}, #{item.successNumber,jdbcType=INTEGER},
+ #{item.userId,jdbcType=VARCHAR}, #{item.subState,jdbcType=INTEGER}, #{item.module,jdbcType=VARCHAR},
+ #{item.stepNineD,jdbcType=VARCHAR}, #{item.stepTenA,jdbcType=VARCHAR}, #{item.stepTenB,jdbcType=VARCHAR},
+ #{item.stepTenC,jdbcType=VARCHAR}, #{item.stepTenD,jdbcType=VARCHAR}, #{item.stepElevenA,jdbcType=VARCHAR},
+ #{item.stepElevenB,jdbcType=VARCHAR}, #{item.stepElevenC,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP},
+ #{item.updateTime,jdbcType=TIMESTAMP}, #{item.errorField,jdbcType=VARCHAR})
+
+
+
\ No newline at end of file