|
@@ -0,0 +1,402 @@
|
|
|
|
+package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
|
+import com.aspose.cells.PdfCompliance;
|
|
|
|
+import com.aspose.cells.PdfSaveOptions;
|
|
|
|
+import com.aspose.words.Document;
|
|
|
|
+import com.aspose.words.SaveFormat;
|
|
|
|
+import com.aspose.words.net.System.Data.DataTable;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.rongwei.bscommon.sys.dao.QhseDangerRewardManagementDao;
|
|
|
|
+import com.rongwei.bscommon.sys.service.QhseDangerRewardManagementService;
|
|
|
|
+import com.rongwei.bscommon.system.service.impl.QHSEFileItemServiceImpl;
|
|
|
|
+import com.rongwei.bscommon.system.utils.WordMergeHandler;
|
|
|
|
+import com.rongwei.bscommon.system.utils.WordUtils;
|
|
|
|
+import com.rongwei.bsentity.domain.QhseDangerRewardManagementDo;
|
|
|
|
+import com.rongwei.bsentity.dto.PunishmentExcelDto;
|
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
|
+import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
|
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
|
+import org.apache.poi.util.IOUtils;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import java.io.*;
|
|
|
|
+import java.nio.file.Files;
|
|
|
|
+import java.nio.file.Paths;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 隐患奖励管理(QhseDangerRewardManagement)表服务实现类
|
|
|
|
+ *
|
|
|
|
+ * @author makejava
|
|
|
|
+ * @since 2025-08-22 16:15:54
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+public class QhseDangerRewardManagementServiceImpl extends ServiceImpl<QhseDangerRewardManagementDao, QhseDangerRewardManagementDo> implements QhseDangerRewardManagementService {
|
|
|
|
+
|
|
|
|
+ private final Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private QhseDangerRewardManagementService qhseDangerRewardManagementService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private QHSEFileItemServiceImpl fileService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private QhseDangerRewardManagementDao qhseDangerRewardManagementDao;
|
|
|
|
+
|
|
|
|
+ public static final PunishmentExcelDto[] PUNISHMENTS = {
|
|
|
|
+ new PunishmentExcelDto("SORT", "序号"),
|
|
|
|
+ new PunishmentExcelDto("REGISTERTIME", "检查日期"),
|
|
|
|
+ new PunishmentExcelDto("INSPECTUSER", "检查人"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONDEPT", "整改部门"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONWORKSHOP", "整改车间/处室"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONWORKSUBCONTRACTOR", "责任分包商"),
|
|
|
|
+ new PunishmentExcelDto("GRID", "责任班组/网格"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONUSER", "整改责任人"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONUSERSIGN", "责任人签字"), // 补充字段(如果存在)
|
|
|
|
+ new PunishmentExcelDto("HDDESC", "隐患描述"),
|
|
|
|
+ new PunishmentExcelDto("BASISFORRECTIFICATION", "依据"),
|
|
|
|
+ new PunishmentExcelDto("HDTYPENAME", "隐患类型"),
|
|
|
|
+ new PunishmentExcelDto("HDLEVELNAME", "隐患等级"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONPROPOSAL", "整改建议"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONDATE", "整改期限"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONPLAN", "整改方案和措施"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONTIME", "实际完成整改时间"),
|
|
|
|
+ new PunishmentExcelDto("STATENAME", "整改结果"),
|
|
|
|
+ new PunishmentExcelDto("MONEY", "罚款金额"),
|
|
|
|
+ new PunishmentExcelDto("RPCATEGORYNAME", "罚款类别"),
|
|
|
|
+ new PunishmentExcelDto("USERNAME", "被罚款人"),
|
|
|
|
+ new PunishmentExcelDto("VERIFIER", "复查人"),
|
|
|
|
+ new PunishmentExcelDto("VERIFIERRESULTNAME", "复查结果"),
|
|
|
|
+ new PunishmentExcelDto("POINT", "安全积分"),
|
|
|
|
+ new PunishmentExcelDto("HDPHOTO", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("RECTIFICATIONPHOTO", "整改图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ new PunishmentExcelDto("ZHANWEI", "隐患图片"),
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ private static final int DEFAULT_PICTURE_HEIGHT = 150;
|
|
|
|
+ private static final int DEFAULT_PICTURE_WIDTH = 200;
|
|
|
|
+
|
|
|
|
+ private static final String[] IMAGE_FIELDS ={
|
|
|
|
+ "RECTIFICATIONUSERSIGN",
|
|
|
|
+ "RECTIFICATIONPHOTO",
|
|
|
|
+ "HDPHOTO"
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ private static final SimpleDateFormat formatYmd= new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void CreatPdfFromWordTemp(String id, String tempUrl) {
|
|
|
|
+
|
|
|
|
+ String uuid = SecurityUtil.getUUID();
|
|
|
|
+ String outputFile ="/upload_files/rewardPunishment//"+uuid+".pdf";
|
|
|
|
+
|
|
|
|
+ //模板数据
|
|
|
|
+ QhseDangerRewardManagementDo mainData = qhseDangerRewardManagementService.getById(id);
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> rewardHzData = qhseDangerRewardManagementDao.getRewardHzData(id);
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> rewardMxData = qhseDangerRewardManagementDao.rewardMxData(id);
|
|
|
|
+
|
|
|
|
+ HashMap<String, String> objectObjectHashMap = new HashMap<>();
|
|
|
|
+ //设置主表信息
|
|
|
|
+ setRewardMainData(objectObjectHashMap,mainData);
|
|
|
|
+
|
|
|
|
+ try (InputStream templateStream = Files.newInputStream(Paths.get(tempUrl))) {
|
|
|
|
+ Document doc = new Document(templateStream);
|
|
|
|
+ // 设置邮件合并回调
|
|
|
|
+ doc.getMailMerge().setFieldMergingCallback(new WordMergeHandler());
|
|
|
|
+
|
|
|
|
+ DataTable dataTable1 = WordUtils.fillListData(rewardHzData, "list1");
|
|
|
|
+ DataTable dataTable2 = WordUtils.fillListData(rewardMxData, "list2");
|
|
|
|
+
|
|
|
|
+ doc.getMailMerge().executeWithRegions(dataTable1);
|
|
|
|
+ doc.getMailMerge().executeWithRegions(dataTable2);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ WordUtils.MailMergeFill(objectObjectHashMap, doc);
|
|
|
|
+
|
|
|
|
+ // 设置 PDF 转换选项
|
|
|
|
+ PdfSaveOptions options = new PdfSaveOptions();
|
|
|
|
+ options.setCompliance(PdfCompliance.PDF_A_1_A); // 设置PDF/A-1a标准
|
|
|
|
+ // 3. 直接输出到响应流(避免中间文件)
|
|
|
|
+ FileOutputStream out = new FileOutputStream(outputFile);
|
|
|
|
+ doc.save(out, SaveFormat.PDF);
|
|
|
|
+ // 4. 强制刷新缓冲区(确保数据完整传输)
|
|
|
|
+ out.flush();
|
|
|
|
+
|
|
|
|
+ //生成附件纪录
|
|
|
|
+ String fileName ="【"+mainData.getRequestserialnumber()+"】-关于申请安全生产隐患随手拍奖励的请示.pdf";
|
|
|
|
+ addFileRecord(outputFile,fileName,mainData,"pdf");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("excel转pdf失败- 原因: {} | 异常类型: {}", e.getMessage(), e.getClass().getSimpleName(), e);
|
|
|
|
+ throw new RuntimeException("获取签名责任书失败!请联系系统管理员");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void CreatFromExcelTemp(String id, String tempUrl) {
|
|
|
|
+
|
|
|
|
+ String uuid = SecurityUtil.getUUID();
|
|
|
|
+ String outputFile ="/upload_files/rewardPunishment//"+uuid+".xlsx";
|
|
|
|
+
|
|
|
|
+//
|
|
|
|
+// tempUrl ="C:\\Users\\shangmi\\Desktop\\b41c6667749d49429bf82cb9caa27ff2.xlsx";
|
|
|
|
+// outputFile="C:\\Users\\shangmi\\Desktop\\11111.xlsx";
|
|
|
|
+
|
|
|
|
+ // 使用 try-with-resources 确保资源正确关闭
|
|
|
|
+ try (FileInputStream fis = new FileInputStream(tempUrl);
|
|
|
|
+ XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
|
|
|
|
+
|
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
|
+ int startRow = 2; // 从第三行开始插入数据
|
|
|
|
+
|
|
|
|
+ // 获取第一行样式作为模板
|
|
|
|
+ Row firstRow = sheet.getRow(startRow);
|
|
|
|
+ CellStyle[] columnStyles = new CellStyle[firstRow.getLastCellNum()];
|
|
|
|
+ for (int j = 0; j < columnStyles.length; j++) {
|
|
|
|
+ columnStyles[j] = firstRow.getCell(j).getCellStyle();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取数据
|
|
|
|
+ List<Map<String, String>> data = qhseDangerRewardManagementDao.getPunishmentData(id);
|
|
|
|
+ Map<String, String> urlMap = setFileUrl(data);// 设置附件路径
|
|
|
|
+
|
|
|
|
+ // 4. 插入数据(从第三行开始)
|
|
|
|
+ for (int i = 0; i < data.size(); i++) {
|
|
|
|
+ Row row = sheet.createRow(startRow + i);
|
|
|
|
+ Map<String, String> rowData = data.get(i);
|
|
|
|
+ for (int j = 0; j < columnStyles.length; j++) {
|
|
|
|
+ String field = PUNISHMENTS[j].getField();
|
|
|
|
+ Cell cell = row.createCell(j);
|
|
|
|
+ // 设置单元格样式和数据
|
|
|
|
+ setCellData(cell, field, rowData.get(field), columnStyles[j]);
|
|
|
|
+ //处理图片
|
|
|
|
+ for (String imageField : IMAGE_FIELDS) {
|
|
|
|
+ if (field.equals(imageField)){
|
|
|
|
+ processField(rowData, PUNISHMENTS[j].getField(), urlMap, sheet, startRow + i, j);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 保存工作簿
|
|
|
|
+ try (FileOutputStream fos = new FileOutputStream(outputFile)) {
|
|
|
|
+ workbook.write(fos);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ QhseDangerRewardManagementDo mainData = qhseDangerRewardManagementService.getById(id);
|
|
|
|
+ String fileName ="【"+ formatYmd.format( mainData.getSubmissiontime())+"】-南通分公司-安全检查或隐患排查治理通报附件.xlsx";
|
|
|
|
+ addFileRecord(outputFile,fileName,mainData,"xlsx");
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ System.err.println("生成 Excel 失败: " + e.getMessage());
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * gzh.png-;-e91fe56db91b409fa5b3cb4df0f4cf43^_^cb701d2ccb7e4a0fd59b8c9da0d96666_hpic2847_s - 副本 (2).jpg-;-014abcd9d3c54549865ec344cccc7123
|
|
|
|
+ * 拆解附件 ID ,保存每条信息的 图片 ids
|
|
|
|
+ * @param idsSet
|
|
|
|
+ * @param map
|
|
|
|
+ * @param key
|
|
|
|
+ * @param builder
|
|
|
|
+ */
|
|
|
|
+ private void setPHotoCommon( Set<String> idsSet ,Map<String, String> map ,String key){
|
|
|
|
+ if(StringUtils.isNotBlank(map.get(key))){
|
|
|
|
+ List<String> partsList = new ArrayList<>();
|
|
|
|
+ for (String photo : map.get(key).split("\\^_\\^")) {
|
|
|
|
+ String[] parts = photo.split("-;-");
|
|
|
|
+ partsList.add(parts[1]);
|
|
|
|
+ idsSet.add(parts[1]);
|
|
|
|
+ }
|
|
|
|
+ if (!partsList.isEmpty()) {
|
|
|
|
+
|
|
|
|
+ map.put(key, String.join(",", partsList));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 插入图片
|
|
|
|
+ * @param map
|
|
|
|
+ * @param urlMap
|
|
|
|
+ * @param sheet
|
|
|
|
+ * @param rowNum
|
|
|
|
+ * @param colNum
|
|
|
|
+ */
|
|
|
|
+ private void processField(Map<String, String> map, String field, Map<String, String> urlMap, Sheet sheet, int rowNum, int colNum) {
|
|
|
|
+ if(map.get(field) !=null ){
|
|
|
|
+ String[] ids = map.get(field).split(",");
|
|
|
|
+ for (int i = 0; i < ids.length; i++) {
|
|
|
|
+ if(urlMap.get(ids[i])!=null ){
|
|
|
|
+ String imagePath = urlMap.get(ids[i]);
|
|
|
|
+// imagePath ="C:\\Users\\shangmi\\Desktop\\ceshi.jpg";
|
|
|
|
+ try (BufferedInputStream inputStream = FileUtil.getInputStream(imagePath)) {
|
|
|
|
+ insertPicture(sheet, rowNum, colNum+i, inputStream);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("插入图片失败 - 行: {}, 列: {}, 路径: {}",
|
|
|
|
+ rowNum, colNum, urlMap.get(ids[i]));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 通过拆解list 中fieLd 查询附件的ID
|
|
|
|
+ * @param data
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private Map<String, String> setFileUrl(List<Map<String, String>> data) {
|
|
|
|
+ Set<String> fileIds = new HashSet<>();
|
|
|
|
+ Map<String, String> collect =new HashMap<>();
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < data.size(); i++) {
|
|
|
|
+ Map<String, String> map = data.get(i);
|
|
|
|
+ for (String imageField : IMAGE_FIELDS) {
|
|
|
|
+ setPHotoCommon(fileIds,map,imageField);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!fileIds.isEmpty()){
|
|
|
|
+ collect = fileService.getBaseMapper().selectBatchIds(fileIds).stream().collect(Collectors.toMap(SysFileItemDo::getId, SysFileItemDo::getFullpath));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return collect;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void setCellData(Cell cell,String field, Object value, CellStyle columnStyle){
|
|
|
|
+ cell.setCellStyle(columnStyle);
|
|
|
|
+ if(value==null){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ for (String imageField : IMAGE_FIELDS) {
|
|
|
|
+ if (field.equals(imageField)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ cell.setCellValue(String.valueOf(value));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置奖励主表信息 reward
|
|
|
|
+ * penalty
|
|
|
|
+ * @param objectObjectHashMap
|
|
|
|
+ * @param mainData
|
|
|
|
+ */
|
|
|
|
+ private void setRewardMainData(HashMap<String, String> objectObjectHashMap, QhseDangerRewardManagementDo mainData) {
|
|
|
|
+
|
|
|
|
+ String YearMonth = formatYmd.format(mainData.getSubmissiontime());
|
|
|
|
+ //年月
|
|
|
|
+ objectObjectHashMap.put("YEAR", YearMonth.split("-")[0]);
|
|
|
|
+ objectObjectHashMap.put("MONTH", Integer.valueOf(YearMonth.split("-")[1])+"");
|
|
|
|
+ objectObjectHashMap.put("HIDDENDANGERSTOTALNUMBER",mainData.getHiddendangerstotalnumber()+"");
|
|
|
|
+ objectObjectHashMap.put("HIDDENDANGERSMAJORNUMBER",mainData.getHiddendangersmajornumber()+"");
|
|
|
|
+ objectObjectHashMap.put("HIDDENDANGERSGENERALNUMBER",mainData.getHiddendangerstotalnumber()+"");
|
|
|
|
+ objectObjectHashMap.put("REWARDSTOTALAMOUNT",mainData.getRewardstotalamount().toPlainString());
|
|
|
|
+ objectObjectHashMap.put("RETURNEDNUMBER",mainData.getReturnednumber()+"");
|
|
|
|
+ objectObjectHashMap.put("COMPLETEDRECTIFICATIONSNUMBER",mainData.getCompletedrectificationsnumber()+"");
|
|
|
|
+ objectObjectHashMap.put("RECTIFICATIONCOMPLETIONRATE",mainData.getRectificationcompletionrate().toPlainString()+"%");
|
|
|
|
+ objectObjectHashMap.put("SUBMISSIONTIME",YearMonth);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private void insertPicture(Sheet sheet, int rowNum, int colNum, BufferedInputStream resizedInputStream) throws Exception {
|
|
|
|
+ // 1. 读取图片字节
|
|
|
|
+ byte[] imageBytes = IOUtils.toByteArray(resizedInputStream);
|
|
|
|
+
|
|
|
|
+ // 2. 添加图片到 Workbook
|
|
|
|
+ Workbook workbook = sheet.getWorkbook();
|
|
|
|
+ int pictureIndex = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG);
|
|
|
|
+
|
|
|
|
+ // 3. 创建 Drawing 和 Anchor
|
|
|
|
+ CreationHelper helper = workbook.getCreationHelper();
|
|
|
|
+ Drawing<?> drawing = sheet.createDrawingPatriarch();
|
|
|
|
+ ClientAnchor anchor = helper.createClientAnchor();
|
|
|
|
+
|
|
|
|
+ // 4. 设置图片位置(锚点)
|
|
|
|
+ anchor.setCol1(colNum); // 起始列(0-based)
|
|
|
|
+ anchor.setRow1(rowNum); // 起始行(0-based)
|
|
|
|
+ anchor.setCol2(colNum + 1); // 结束列(可调整)
|
|
|
|
+ anchor.setRow2(rowNum + 1); // 结束行(可调整)
|
|
|
|
+
|
|
|
|
+ // 5. 插入图片
|
|
|
|
+ Picture picture = drawing.createPicture(anchor, pictureIndex);
|
|
|
|
+ picture.getImageDimension().setSize(DEFAULT_PICTURE_WIDTH, DEFAULT_PICTURE_HEIGHT); // 宽200px,高150px
|
|
|
|
+ // 6. 可选:调整图片大小
|
|
|
|
+ // picture.resize(); // 自动调整大小(POI 4.1.2+)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 生成附件纪录
|
|
|
|
+ */
|
|
|
|
+ public void addFileRecord(String fullPath, String fileName, QhseDangerRewardManagementDo rewardManagementDo, String filetype){
|
|
|
|
+ logger.info("生成附件纪录");
|
|
|
|
+ File file = new File(fullPath);
|
|
|
|
+ long fileSize = file.length();
|
|
|
|
+
|
|
|
|
+ SysFileItemDo sysFileItemDo = new SysFileItemDo();
|
|
|
|
+ sysFileItemDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ sysFileItemDo.setFilename(fileName);
|
|
|
|
+ sysFileItemDo.setFiletype(filetype);
|
|
|
|
+ sysFileItemDo.setStoragetype("1");
|
|
|
|
+ sysFileItemDo.setFilefolderid("c248b055d01743bdb485f5114da3e355"); //目录ID
|
|
|
|
+ sysFileItemDo.setRelationid(rewardManagementDo.getId());
|
|
|
|
+ sysFileItemDo.setFullpath(fullPath);
|
|
|
|
+ sysFileItemDo.setFilesize(fileSize);
|
|
|
|
+ fileService.getBaseMapper().insert(sysFileItemDo);
|
|
|
|
+
|
|
|
|
+ QhseDangerRewardManagementDo updateDo = new QhseDangerRewardManagementDo();
|
|
|
|
+ updateDo.setId(rewardManagementDo.getId());
|
|
|
|
+ String requestreport = fileName + "-;-" + sysFileItemDo.getId();
|
|
|
|
+ if(StringUtils.isBlank(rewardManagementDo.getRequestreport())){
|
|
|
|
+ updateDo.setRequestreport(requestreport);
|
|
|
|
+ }else {
|
|
|
|
+ updateDo.setRequestreport(rewardManagementDo.getRequestreport()+"^_^"+requestreport);
|
|
|
|
+ }
|
|
|
|
+ qhseDangerRewardManagementService.updateById(updateDo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|