工程质量分析
This commit is contained in:
parent
18c589b1fc
commit
4549e29f23
|
|
@ -9,6 +9,10 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,27 @@
|
||||||
package com.securitycontrol.screen.controller;
|
package com.securitycontrol.screen.controller;
|
||||||
|
|
||||||
import com.securitycontrol.common.core.utils.aes.StringHelper;
|
|
||||||
import com.securitycontrol.common.core.web.controller.BaseController;
|
import com.securitycontrol.common.core.web.controller.BaseController;
|
||||||
import com.securitycontrol.common.core.web.domain.AjaxResult;
|
import com.securitycontrol.common.core.web.domain.AjaxResult;
|
||||||
import com.securitycontrol.common.core.web.page.TableDataInfo;
|
import com.securitycontrol.common.core.web.page.TableDataInfo;
|
||||||
import com.securitycontrol.common.log.annotation.Log;
|
|
||||||
import com.securitycontrol.common.log.enums.OperationType;
|
|
||||||
import com.securitycontrol.entity.screen.dto.AccessMgeDto;
|
|
||||||
import com.securitycontrol.entity.screen.dto.ScreenParamDto;
|
import com.securitycontrol.entity.screen.dto.ScreenParamDto;
|
||||||
import com.securitycontrol.entity.screen.vo.AccessMgeVo;
|
|
||||||
import com.securitycontrol.entity.screen.vo.DataAnalysisDetailVo;
|
import com.securitycontrol.entity.screen.vo.DataAnalysisDetailVo;
|
||||||
import com.securitycontrol.entity.screen.vo.ProjectQualityVo;
|
import com.securitycontrol.entity.screen.vo.ProjectQualityVo;
|
||||||
import com.securitycontrol.screen.service.DataAnalysisService;
|
import com.securitycontrol.screen.service.DataAnalysisService;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @className:DataAnalysisController
|
* @className:DataAnalysisController
|
||||||
|
|
@ -79,4 +80,50 @@ public class DataAnalysisController extends BaseController {
|
||||||
}
|
}
|
||||||
return AjaxResult.success(list);
|
return AjaxResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("uploadProQuality")
|
||||||
|
public Map<String, List<List<String>>> extractTablesFromWord(@RequestParam("file") MultipartFile file) {
|
||||||
|
Map<String, List<List<String>>> result = new HashMap<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 验证文件类型
|
||||||
|
if (!file.getOriginalFilename().endsWith(".docx")) {
|
||||||
|
throw new IllegalArgumentException("仅支持.docx格式的文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将文件内容读取到字节数组
|
||||||
|
byte[] fileBytes = file.getBytes();
|
||||||
|
|
||||||
|
// 从字节数组创建输入流
|
||||||
|
try (ByteArrayInputStream bis = new ByteArrayInputStream(fileBytes);
|
||||||
|
XWPFDocument document = new XWPFDocument(bis)) {
|
||||||
|
|
||||||
|
// 提取所有表格
|
||||||
|
List<XWPFTable> tables = document.getTables();
|
||||||
|
|
||||||
|
for (int i = 0; i < tables.size(); i++) {
|
||||||
|
XWPFTable table = tables.get(i);
|
||||||
|
List<List<String>> tableData = new ArrayList<>();
|
||||||
|
|
||||||
|
// 处理每一行
|
||||||
|
for (XWPFTableRow row : table.getRows()) {
|
||||||
|
List<String> rowData = new ArrayList<>();
|
||||||
|
|
||||||
|
// 处理每个单元格
|
||||||
|
for (XWPFTableCell cell : row.getTableCells()) {
|
||||||
|
rowData.add(cell.getText());
|
||||||
|
}
|
||||||
|
|
||||||
|
tableData.add(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
result.put("表格" + (i + 1), tableData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("处理Word文档时出错: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue