From f796987a0788299841fab0053ee22e6ba8df047e Mon Sep 17 00:00:00 2001 From: gaojiabao Date: Fri, 14 Apr 2023 16:31:04 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=87=E5=87=86?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8B=86=E5=88=86=E7=9A=84=E5=AF=BC=E5=85=A5?= =?UTF-8?q?+=E5=AF=BC=E5=87=BA+sql=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/SarStandItemVal.java | 3 + .../service/ISarStandItemValService.java | 8 + .../impl/SarStandItemValServiceImpl.java | 77 ++++ .../entity/FindSarItemsPageReqDTO.java | 6 +- .../sarStandItems/entity/SarStandItems.java | 5 +- .../SarFileSplitItemsEOController.java | 350 +++++++++++++++++- .../impl/SarFileSplitItemsEOServiceImpl.java | 40 +- .../src/main/resources/mysql/foton.sql | 4 + 8 files changed, 481 insertions(+), 12 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/entity/SarStandItemVal.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/entity/SarStandItemVal.java index dfe65aaa..15d09cac 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/entity/SarStandItemVal.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/entity/SarStandItemVal.java @@ -58,5 +58,8 @@ public class SarStandItemVal extends BaseEntity { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date modifyTime; + @TableField(exist = false) + private String imgName; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/ISarStandItemValService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/ISarStandItemValService.java index 388efdaa..42da8890 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/ISarStandItemValService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/ISarStandItemValService.java @@ -1,8 +1,14 @@ package com.adc.da.slrs.SarStandItemVal.service; import com.adc.da.slrs.SarStandItemVal.entity.SarStandItemVal; +import com.adc.da.slrs.standardSplit.dto.FileSpiltValTableExportDto; +import com.adc.da.slrs.standardSplit.dto.FileSplitValExportDto; +import com.adc.da.slrs.standardSplit.dto.FileSplitValImgExportDto; +import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEOPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 服务类 @@ -13,4 +19,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISarStandItemValService extends IService { + List combineItemValInfo(List getValList, List allTableList, List allImgList, SarFileSplitItemsEOPage page); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/impl/SarStandItemValServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/impl/SarStandItemValServiceImpl.java index 0c4eeb3f..620b7190 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/impl/SarStandItemValServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarStandItemVal/service/impl/SarStandItemValServiceImpl.java @@ -3,9 +3,18 @@ package com.adc.da.slrs.SarStandItemVal.service.impl; import com.adc.da.slrs.SarStandItemVal.dao.SarStandItemValDao; import com.adc.da.slrs.SarStandItemVal.entity.SarStandItemVal; import com.adc.da.slrs.SarStandItemVal.service.ISarStandItemValService; +import com.adc.da.slrs.standardSplit.dto.FileSpiltValTableExportDto; +import com.adc.da.slrs.standardSplit.dto.FileSplitValExportDto; +import com.adc.da.slrs.standardSplit.dto.FileSplitValImgExportDto; +import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEOPage; +import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsTableEOPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +26,72 @@ import org.springframework.stereotype.Service; @Service public class SarStandItemValServiceImpl extends ServiceImpl implements ISarStandItemValService { + @Override + public List combineItemValInfo(List getValList, List allTableList, List allImgList, SarFileSplitItemsEOPage page) { + int tableIndex = page.getTableIndex(); + int imgIndex = page.getImgIndex(); + List valContent = new ArrayList<>(); + if (getValList != null && !getValList.isEmpty()) { + String preType = ""; + for(SarStandItemVal itemsValEO : getValList){ + String type = itemsValEO.getPropertyType(); + FileSplitValExportDto lastOne = new FileSplitValExportDto(); + lastOne.setValType(type); + if(preType.equals(type) && "TEXT".equals(type)) { + lastOne = valContent.get(valContent.size() - 1); + lastOne.setValContent(lastOne.getValContent()+itemsValEO.getPropertyVal() + "\n"); + valContent.set(valContent.size() - 1, lastOne); + } else if ("TEXT".equals(type)) { + lastOne.setValContent(lastOne.getValContent()+itemsValEO.getPropertyVal() + "\n"); + valContent.add(lastOne); + } else if ("TABLE".equals(type)) { + String tableName = String.valueOf(tableIndex); + lastOne.setValContent("tableSheet" + tableName); + //查询table信息 + SarFileSplitItemsTableEOPage tablePage = new SarFileSplitItemsTableEOPage(); + tablePage.setItemsValId(itemsValEO.getId()); + valContent.add(lastOne); +// List> tableList = combineTableList(itemsValEO); + FileSpiltValTableExportDto tableExportDto = new FileSpiltValTableExportDto(); + tableExportDto.setTableName("tableSheet" + tableName); +// tableExportDto.setTableEOList(tableList); + tableExportDto.setTableHtCon(itemsValEO.getPropertyVal()); + allTableList.add(tableExportDto); + tableIndex++; + page.setTableIndex(tableIndex); + } else if ("IMG".equals(type)) { + String imgContent = itemsValEO.getPropertyVal(); + String imgUUIndex = "img" + String.valueOf(imgIndex); + if (StringUtils.isNotEmpty(imgContent)){ + int pathIndex = imgContent.indexOf("src='file"); + if (pathIndex==-1){ + String sa = imgContent.replaceAll("\''","\'"); + pathIndex = sa.indexOf("src='file"); + } + if (pathIndex > -1 && imgContent.length()>(pathIndex+16)) { + String imgPath = imgContent.substring(pathIndex+16,imgContent.length()-2); + String imgName = imgUUIndex + "-" +imgPath.substring(imgPath.lastIndexOf("/")+1,imgPath.length()); + lastOne.setValContent(imgUUIndex+".png"); + final String[] split = imgName.split("-"); + final String[] split1 = split[1].split("\\."); + lastOne.setValContent(split1[0]+".png"); + valContent.add(lastOne); + FileSplitValImgExportDto fileSplitValImgExportDto = new FileSplitValImgExportDto(); + fileSplitValImgExportDto.setImgName(imgUUIndex+".png"); + if (StringUtils.isNotEmpty(itemsValEO.getImgName())) { + fileSplitValImgExportDto.setImgPath(itemsValEO.getImgName()); + } else { + fileSplitValImgExportDto.setImgPath(imgPath); + } + allImgList.add(fileSplitValImgExportDto); + imgIndex++; + page.setImgIndex(imgIndex); + } + } + } + preType = itemsValEO.getPropertyType(); + } + } + return valContent; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/FindSarItemsPageReqDTO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/FindSarItemsPageReqDTO.java index 6d387013..508a48be 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/FindSarItemsPageReqDTO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/FindSarItemsPageReqDTO.java @@ -1,12 +1,11 @@ package com.adc.da.slrs.sarStandItems.entity; import com.adc.da.base.page.BasePage; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import java.util.Date; +import java.util.List; @Data @@ -36,4 +35,7 @@ public class FindSarItemsPageReqDTO extends BasePage { @ApiModelProperty(value = "解读内容") private String readContent; + + @ApiModelProperty(value = "选中的id") + private List idList; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/SarStandItems.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/SarStandItems.java index 7d32b016..3b230f40 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/SarStandItems.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/entity/SarStandItems.java @@ -2,8 +2,8 @@ package com.adc.da.slrs.sarStandItems.entity; import com.adc.da.base.entity.BaseEntity; import com.adc.da.slrs.SarCompStatusInfo.entity.SarCompStatusInfo; +import com.adc.da.slrs.standardSplit.dto.FileSplitValExportDto; import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -197,4 +197,7 @@ public class SarStandItems extends BaseEntity { @TableField("edit_flag") private String editFlag; + @TableField(exist = false) + private List itemValContent; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java index c22a637a..62069f8b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java @@ -2,9 +2,7 @@ package com.adc.da.slrs.standardSplit.controller; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ZipUtil; -import com.adc.da.att.controller.AttFileEOController; import com.adc.da.att.entity.AttFileEO; import com.adc.da.att.service.IAttFileEOService; import com.adc.da.att.util.CommonExportUtil; @@ -13,6 +11,10 @@ import com.adc.da.common.ConvertHtml2Excel; import com.adc.da.common.FileUnZip; import com.adc.da.common.SplitTableInfo; import com.adc.da.http.PageInfo; +import com.adc.da.slrs.SarStandItemVal.entity.SarStandItemVal; +import com.adc.da.slrs.SarStandItemVal.service.ISarStandItemValService; +import com.adc.da.slrs.sarStandItems.entity.SarStandItems; +import com.adc.da.slrs.sarStandItems.service.impl.SarStandItemsServiceImpl; import com.adc.da.slrs.sarStandardComplianceAssessResult.entity.SarStandardsInfoEO; import com.adc.da.slrs.standardSplit.dto.*; import com.adc.da.slrs.standardSplit.entity.*; @@ -21,10 +23,10 @@ import com.adc.da.sys.util.UUIDUtils; import com.adc.da.util.exception.AdcDaBaseException; import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.Result; -import com.adc.da.util.utils.FileUtil; import com.adc.da.util.utils.IOUtils; import com.adc.da.utils.util.POIReadExcelToHtml; import com.adc.da.common.ReadExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; @@ -43,8 +45,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.*; import static com.adc.da.utils.util.ExcelUtil.checkObjAllFieldsIsNull; @@ -74,6 +74,12 @@ public class SarFileSplitItemsEOController extends BaseController ids = new ArrayList<>(); + QueryWrapper objectQueryWrapper = new QueryWrapper<>(); + SarFileSplitItemsEOPage page = new SarFileSplitItemsEOPage(); + if (StringUtils.isNotEmpty(idList)) { + String[] idArr = idList.split(","); + List itemIdList = Arrays.asList(idArr); + if(!itemIdList.isEmpty()){ + for (String id :itemIdList) { + ids.add(id); + } + } + page.setIdList(itemIdList); + } + //查询全部条款 + page.setInfoId(null); + page.setOrderBy(null); + + if(!ids.isEmpty()){ + objectQueryWrapper.in("ID", ids); + } + //查询全部条款 + objectQueryWrapper.orderByDesc("CREATION_TIME"); + if(StringUtils.isNotBlank(standId)) { + objectQueryWrapper.eq("STAND_ID", standId); + } + List allItemsList = ServiceImpl.list(objectQueryWrapper); + + + List allTableList = new ArrayList<>(); + List allImgList = new ArrayList<>(); + List allRelevFileList = new ArrayList<>(); + int countMaxFile = 1; + String fileIds = ""; + if (allItemsList != null && !allItemsList.isEmpty()) { + for (SarStandItems itemsExportDto : allItemsList) { + QueryWrapper sarStandItemValQueryWrapper = new QueryWrapper<>(); + sarStandItemValQueryWrapper.orderByDesc("CREATION_TIME"); + sarStandItemValQueryWrapper.in("ITEM_ID",itemsExportDto.getId()); + List getValList = iSarStandItemValService.list(sarStandItemValQueryWrapper); + + for (SarStandItemVal sarStandItemVal : getValList){ + //判断数据是否是img + if(sarStandItemVal.getPropertyType().equals("img") || sarStandItemVal.getPropertyType().equals("IMG")){ + //进行分割 + String[] split = sarStandItemVal.getPropertyVal().split("="); + //获取图片id + String[] split1 = split[3].split("'"); + sarStandItemVal.setPropertyVal(split1[0]); + //循环数据 获取id + if(StringUtils.isBlank(fileIds)){ + fileIds = split1[0]; + }else { + fileIds += ","+split1[0]; + } + AttFileEO fileInfo = attFileEOService.getFileInfo(sarStandItemVal.getPropertyVal()); + String excelImageUrl = "src='file:///E:/data/slrs/file"+fileInfo.getFilePath()+fileInfo.getOldFileName(); + // 数据加工 + sarStandItemVal.setPropertyVal(excelImageUrl); + } + } + List valContentList = iSarStandItemValService.combineItemValInfo(getValList,allTableList,allImgList,page); + itemsExportDto.setItemValContent(valContentList); + } + } + // 在excel表中添加表头 + HSSFRow row = sheetItems.createRow(0); + sheetItems.setColumnWidth(0,10*256); + sheetItems.setColumnWidth(1,20*256); + sheetItems.setColumnWidth(2,100*256); + sheetItems.setColumnWidth(3,20*256); + sheetItems.setColumnWidth(4,20*256); + sheetItems.setColumnWidth(5,20*256); + sheetItems.setColumnWidth(6,20*256); + sheetItems.setColumnWidth(7,20*256); + sheetItems.setColumnWidth(8,20*256); + sheetItems.setColumnWidth(9,20*256); + + for (int i = 0; i < headers.length; i++) { + HSSFCell cell = row.createCell(i); + HSSFRichTextString text = new HSSFRichTextString(headers[i]); + cell.setCellValue(text); + cell.setCellStyle(cellStyle1); + } + //放文字内容 + int allRow = 0; + for(int rowNum = 0;rowNum < allItemsList.size(); rowNum++){ + SarStandItems exportDto = allItemsList.get(rowNum); + List valList = exportDto.getItemValContent(); + int countFile = 0; + if(valList != null && !valList.isEmpty()){ + int startRow = allRow + 1; + for (int valRow=0;valRow -1) { + content = content.substring(0,content.lastIndexOf("\n")); + } + } + //处理上下角标 + List subList = new ArrayList<>(); + List supList = new ArrayList<>(); + boolean handleCorner = false; + if (content.contains("")) { + handleCornerMarkers(content, supList, "",""); + } + if (content.contains("")) { + handleCornerMarkers(content, subList, "",""); + } + if (subList.size() > 0 || supList.size() > 0) { + content = content.replaceAll("", ""); + content = content.replaceAll("", ""); + content = content.replaceAll("", ""); + //设置角标font + HSSFFont fontSub = workbook.createFont(); + fontSub.setTypeOffset(HSSFFont.SS_SUB); + HSSFFont fontSup = workbook.createFont(); + fontSup.setTypeOffset(HSSFFont.SS_SUPER); + + RichTextString richTextString = new HSSFRichTextString(content); + if (subList.size() > 0) { + for (SplitFont splitFont : subList) { + richTextString.applyFont(splitFont.getStartIndex(),splitFont.getEndIndex(),fontSub); + } + } + if (supList.size() > 0) { + for (SplitFont splitFont : supList) { + richTextString.applyFont(splitFont.getStartIndex(),splitFont.getEndIndex(),fontSup); + } + } + cell2.setCellValue(richTextString); + handleCorner = true; + } + + if("TABLE".equals(valList.get(valRow).getValType())){ + /* 连接跳转*/ + CreationHelper createHelper = workbook.getCreationHelper(); + Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.DOCUMENT); + String tableName = "#\'"+ content + "\'!A1"; + hyperlink1.setAddress(tableName); + cell2.setHyperlink(hyperlink1);// 链接 + row1.getCell(2).setCellStyle(cellStyleLink); + } //else if ("IMG".equals(valList.get(valRow).getValType())) { + if ("IMG".equals(valList.get(valRow).getValType())) { + /* 连接跳转*/ + CreationHelper createHelper = workbook.getCreationHelper(); + Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.FILE); + String imgName = content; + hyperlink1.setAddress(imgName); + cell2.setHyperlink(hyperlink1);// 链接 + row1.getCell(2).setCellStyle(cellStyleLink); + } + if (!handleCorner) { + cell2.setCellValue(content); + } + + + row1.createCell(3).setCellValue(exportDto.getResponsibleUnitShow()); + row1.getCell(3).setCellStyle(cellStyle); + row1.createCell(4).setCellValue(exportDto.getFoShow()); + row1.getCell(4).setCellStyle(cellStyle); + row1.createCell(5).setCellValue(exportDto.getDutyEngineerShow()); + row1.getCell(5).setCellStyle(cellStyle); + row1.createCell(6).setCellValue(exportDto.getSvpps()); + row1.getCell(6).setCellStyle(cellStyle); + row1.createCell(7).setCellValue(exportDto.getApplyArctic()); + row1.getCell(7).setCellStyle(cellStyle); + row1.createCell(8).setCellValue(exportDto.getClaimTypeShow()); + row1.getCell(8).setCellStyle(cellStyle); + row1.createCell(9).setCellValue(exportDto.getBusStandCover()); + row1.getCell(9).setCellStyle(cellStyle); + + } + if (allRow > startRow) { + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,0,0)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,1,1)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,3,3)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,4,4)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,5,5)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,6,6)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,7,7)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,8,8)); + sheetItems.addMergedRegion(new CellRangeAddress(startRow,allRow,9,9)); + } + } else { + allRow++; + HSSFRow row1 = sheetItems.createRow(allRow); + row1.createCell(0).setCellValue(exportDto.getItemsNum()); + row1.getCell(0).setCellStyle(cellStyle); + row1.createCell(1).setCellValue(exportDto.getItemsName()); + row1.getCell(1).setCellStyle(cellStyle); + row1.createCell(2).setCellValue(""); + row1.getCell(2).setCellStyle(cellStyle); + row1.createCell(3).setCellValue(exportDto.getResponsibleUnitShow()); + row1.getCell(3).setCellStyle(cellStyle); + row1.createCell(4).setCellValue(exportDto.getFoShow()); + row1.getCell(4).setCellStyle(cellStyle); + row1.createCell(5).setCellValue(exportDto.getDutyEngineerShow()); + row1.getCell(5).setCellStyle(cellStyle); + row1.createCell(6).setCellValue(exportDto.getSvpps()); + row1.getCell(6).setCellStyle(cellStyle); + row1.createCell(7).setCellValue(exportDto.getApplyArctic()); + row1.getCell(7).setCellStyle(cellStyle); + row1.createCell(8).setCellValue(exportDto.getClaimTypeShow()); + row1.getCell(8).setCellStyle(cellStyle); + row1.createCell(9).setCellValue(exportDto.getBusStandCover()); + row1.getCell(9).setCellStyle(cellStyle); + } + } + if (countMaxFile > 1) { + for (int i=1;i> rowtableList = tableExportDto.getTableEOList(); +// HSSFSheet sheetTable = workbook.createSheet(tableExportDto.getTableName()); + String tableName = tableExportDto.getTableName(); + String tableHtml = tableExportDto.getTableHtCon(); + if (StringUtils.isNotEmpty(tableHtml) && tableHtml.indexOf("") < 0) { + if (tableHtml.indexOf("") < 0) { + tableHtml = tableHtml.replaceFirst("",""); + tableHtml = tableHtml.replaceFirst("",""); + } else { + tableHtml = tableHtml.replaceFirst("",""); + tableHtml = tableHtml.replaceFirst("",""); + } + } + String cnt = "\n"; + tableHtml = tableHtml.replaceAll("<[\\s]*?br[^>]*?>|<[\\s]*?\\/[\\s]*?br[\\s]*?>", cnt); + workbook = ConvertHtml2Excel.table2Excel(tableHtml,workbook,tableName); +// for (int r=0;r colTableList = rowtableList.get(r); +// HSSFRow tRow = sheetTable.createRow(colTableList.get(0).getRowNum()-1); +// for(int c=0;c multiFileInfos = this.attFileEOService.getMultiFileInfos(fileIds); + if(CollectionUtils.isNotEmpty(multiFileInfos)){ + for (AttFileEO data : multiFileInfos){ + if(StringUtils.isNotBlank(data.getOldFileName())){ + String[] split = data.getOldFileName().split("\\."); + //存在则更换后缀 + if(split.length>0){ + data.setOldFileName(split[0]+".png"); + } + } + } + this.attFileEOService.downLoadFileList(multiFileInfos,fileNowPath); + } + ZipUtil.zip(fileNowPath,fileNowPath+".zip"); + FileInputStream fis = new FileInputStream(fileNowPath+".zip"); + int len = 0; + while ((len = fis.read()) != -1) { + os.write(len); + } + os.flush(); + os.close(); // 后开先关 + fis.close(); // 先开后关 + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new AdcDaBaseException("下载文件失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + IOUtils.closeQuietly(excelOS); + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitItemsEOServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitItemsEOServiceImpl.java index c8c2799c..39e89081 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitItemsEOServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitItemsEOServiceImpl.java @@ -6,6 +6,8 @@ import com.adc.da.att.vo.AttFileVo; import com.adc.da.common.FileUnZip; import com.adc.da.common.SplitTableInfo; import com.adc.da.login.util.UserUtils; +import com.adc.da.slrs.SarStandItemVal.dao.SarStandItemValDao; +import com.adc.da.slrs.SarStandItemVal.entity.SarStandItemVal; import com.adc.da.slrs.sarStandItems.dao.SarStandItemsDao; import com.adc.da.slrs.sarStandItems.entity.SarStandItems; import com.adc.da.slrs.standardSplit.dao.*; @@ -38,8 +40,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.*; import static com.adc.da.utils.util.ExcelUtil.checkObjAllFieldsIsNull; @@ -81,6 +81,8 @@ public class SarFileSplitItemsEOServiceImpl implements SarFileSplitItemsEOServic @Autowired private SarStandItemsDao sarStandItemsDao; + @Autowired + private SarStandItemValDao sarStandItemValDao; @Override @@ -1081,7 +1083,22 @@ public class SarFileSplitItemsEOServiceImpl implements SarFileSplitItemsEOServic //加入的里面 删除旧的 QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("STAND_ID",sarFileSplitInfoEO.getStandId()); - sarStandItemsDao.delete(objectQueryWrapper); + List sarStandItemsList = sarStandItemsDao.selectList(objectQueryWrapper); + if(!sarStandItemsList.isEmpty()){ + List setIds = new ArrayList<>(); + for (SarStandItems sarStandItems:sarStandItemsList) { + setIds.add(sarStandItems.getId()); + } + if(!setIds.isEmpty()){ + //加入的里面 删除旧的 + QueryWrapper objectQueryWrapperDelete = new QueryWrapper<>(); + objectQueryWrapperDelete.in("ID",setIds); + sarStandItemsDao.delete(objectQueryWrapperDelete); + sarStandItemValDao.deleteByItemsIds(setIds); + + } + } + //加入的里面 for (SarFileSplitItemsEO itemsEO : addItemsEOList){ if(itemsEO.getItemsNum().equals("总目录")) { @@ -1094,8 +1111,23 @@ public class SarFileSplitItemsEOServiceImpl implements SarFileSplitItemsEOServic sarStandItems.setItemsName(itemsEO.getItemsName()); sarStandItems.setTermsConditions(itemsEO.getItermsConditions()); sarStandItems.setDutyEngineer(itemsEO.getDutyEngineer()); - sarStandItems.setId(UUIDUtils.randomUUID20()); + String uuId = UUIDUtils.randomUUID20(); + sarStandItems.setId(uuId); sarStandItemsDao.insert(sarStandItems); + List itemValEOList = itemsEO.getItemValEOList(); + if(!itemValEOList.isEmpty()){ + for (SarFileSplitItemsValEO itemsValEO: itemValEOList){ + SarStandItemVal sarStandItemVal = new SarStandItemVal(); + sarStandItemVal.setItemId(uuId); + sarStandItemVal.setCreationTime(new Date()); + sarStandItemVal.setPropertyType(itemsValEO.getType()); + sarStandItemVal.setPropertyVal(itemsValEO.getItemContent()); + sarStandItemVal.setValidFlag(0); + sarStandItemVal.setId(UUIDUtils.randomUUID20()); + sarStandItemValDao.insert(sarStandItemVal); + } + } + } //统计成功结果需要去掉总目录这条数据 String msg = "成功导入" + (countSuccess-1) + "条"; diff --git a/adc-da-slrs/src/main/resources/mysql/foton.sql b/adc-da-slrs/src/main/resources/mysql/foton.sql index e69de29b..aaebf4ca 100644 --- a/adc-da-slrs/src/main/resources/mysql/foton.sql +++ b/adc-da-slrs/src/main/resources/mysql/foton.sql @@ -0,0 +1,4 @@ +-- 福田数据库 表字段 记录 字典 等信息记录 +-- 2023-04-14 16:27 生产环境未同步 +-- 更改 sar_stand_item_val 表PROOERTY_VAL 类型 varchar 为 text + From 82ed5a0975cecdfc8836ec40752d596ca0824bc5 Mon Sep 17 00:00:00 2001 From: gaojiabao Date: Mon, 17 Apr 2023 10:50:00 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=20=E6=A0=87?= =?UTF-8?q?=E5=87=86=E8=AF=A6=E6=83=85=20=E6=8B=86=E5=88=86=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/adc/da/login/security/WebMvcConfig.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 806c59e7..f218e08e 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -172,6 +172,9 @@ public class WebMvcConfig implements WebMvcConfigurer { addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/resetALLSearchCenterForExits"); + //标准详情 拆分的导出 + addInterceptor.excludePathPatterns("/api/lawss/sarFileSplitItems/exportStandardItemExcel"); + //// //测试接口使用 // addInterceptor.excludePathPatterns("/api/**"); From 25089afa73d6784ada060c18b8b6f102e1af2185 Mon Sep 17 00:00:00 2001 From: gaojiabao Date: Mon, 17 Apr 2023 16:39:45 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=A0=87=E5=87=86=E8=AF=A6=E6=83=85=20?= =?UTF-8?q?=E6=8B=86=E5=88=86=E5=AF=BC=E5=87=BA=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E4=B8=8E=E5=AF=BC=E5=87=BA=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standardSplit/controller/SarFileSplitItemsEOController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java index 62069f8b..b1173b39 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java @@ -883,7 +883,7 @@ public class SarFileSplitItemsEOController extends BaseController Date: Mon, 17 Apr 2023 19:12:56 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=81=E6=A0=87=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkFlowController.java | 144 +++++++++++++----- 1 file changed, 109 insertions(+), 35 deletions(-) diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java index d1c97064..f89e7dcc 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java @@ -1031,9 +1031,6 @@ public class WorkFlowController { for (EsRevisePlan data : esRevisePlans){ //数据拼接 ProcessRollBackEO processRollBackEO = new ProcessRollBackEO(); - //起草人 - processRollBackEO.setUserId(data.getDrafter()); - processRollBackEO.setType("25"); //拼接json HashMap qbfsForm = new HashMap<>(); HashMap qbfsFormInfo = new HashMap<>(); @@ -1042,15 +1039,42 @@ public class WorkFlowController { qbfsForm.put("planStatus",data.getPlanStatus()); qbfsForm.put("reviseStatus",data.getReviseStatus()); qbfsForm.put("drafter",data.getDrafter()); - TsUser byIdDrafter = userService.getById(data.getDrafter()); - if(byIdDrafter!=null){ - qbfsForm.put("drafterName",byIdDrafter.getUname()); + + String drafterNameStr = ""; + if(StringUtils.isNotBlank(data.getDrafter())){ + String[] split = data.getDrafter().split(","); + List asList = Arrays.asList(split); + for (String uid:asList){ + TsUser byIdDrafterInfo = userService.getById(uid); + if(StringUtils.isBlank(drafterNameStr)){ + drafterNameStr = byIdDrafterInfo.getUname(); + }else { + drafterNameStr = drafterNameStr+","+byIdDrafterInfo.getUname(); + } + } } + if(StringUtils.isNotBlank(drafterNameStr)){ + qbfsForm.put("drafterName",drafterNameStr); + } + qbfsForm.put("resPerson",data.getResPerson()); - TsUser byIdResPrson = userService.getById(data.getResPerson()); - if(byIdResPrson!=null){ - qbfsForm.put("resPersonName",byIdResPrson.getUname()); + String resPersonNameStr = ""; + if(StringUtils.isNotBlank(data.getResPerson())){ + String[] split = data.getResPerson().split(","); + List asList = Arrays.asList(split); + for (String uid:asList){ + TsUser byIdDrafterInfo = userService.getById(uid); + if(StringUtils.isBlank(resPersonNameStr)){ + resPersonNameStr = byIdDrafterInfo.getUname(); + }else { + resPersonNameStr = resPersonNameStr+","+byIdDrafterInfo.getUname(); + } + } } + if(StringUtils.isNotBlank(drafterNameStr)){ + qbfsForm.put("resPersonName",resPersonNameStr); + } + String wgLeaderStr = data.getWgLeader(); if(wgLeaderStr!=null){ if(wgLeaderStr.endsWith(",")){ @@ -1058,10 +1082,23 @@ public class WorkFlowController { } } qbfsForm.put("wgLeader",wgLeaderStr); - qbfsForm.put("resPerson",data.getResPerson()); - TsUser byIdWgleader = userService.getById(data.getResPerson()); - if(byIdWgleader!=null){ - qbfsForm.put("wgLeaderName",byIdWgleader.getUname()); + + String wgLeaderNameStr = ""; + if(StringUtils.isNotBlank(data.getWgLeader())){ + String[] split = data.getWgLeader().split(","); + List asList = Arrays.asList(split); + for (String uid : asList){ + TsUser byIdWgleader = userService.getById(uid); + if(StringUtils.isBlank(wgLeaderNameStr)){ + wgLeaderNameStr = byIdWgleader.getUname(); + }else { + wgLeaderNameStr = wgLeaderNameStr+","+byIdWgleader.getUname(); + } + } + } + + if(StringUtils.isNotBlank(wgLeaderNameStr)){ + qbfsForm.put("wgLeaderName",wgLeaderNameStr); } qbfsForm.put("standId",data.getStandId()); @@ -1090,9 +1127,22 @@ public class WorkFlowController { qbfsForm.put("esStandRelations",data.getEsStandRelations()); qbfsForm.put("isRelate",data.getIsRelate()); qbfsForm.put("useLevel",data.getUseLevel()); - TsUser byIdUseLevel = userService.getById(data.getUseLevel()); - if(byIdUseLevel!=null){ - qbfsForm.put("useLevelName",data.getUseLevelName()); + + String useLevelNameStr = ""; + if(StringUtils.isNotBlank(data.getUseLevel())){ + String[] split = data.getUseLevel().split(","); + List asList = Arrays.asList(split); + for (String uid: asList){ + TsUser byIdUseLevel = userService.getById(uid); + if(StringUtils.isBlank(useLevelNameStr)){ + useLevelNameStr = byIdUseLevel.getUname(); + }else { + useLevelNameStr = useLevelNameStr+","+byIdUseLevel.getUname(); + } + } + } + if(StringUtils.isNotBlank(useLevelNameStr)){ + qbfsForm.put("useLevelName",useLevelNameStr); } qbfsForm.put("technologic",data.getTechnologic()); @@ -1102,30 +1152,54 @@ public class WorkFlowController { qbfsForm.put("LXD",data.getLxd()); qbfsForm.put("LXDName",""); qbfsForm.put("addFlag","1"); - qbfsForm.put("prcCreateUser",data.getDrafter()); - TsUser byIdDrafterInfo = userService.getById(data.getDrafter()); - if(byIdDrafterInfo!=null){ - qbfsForm.put("prcCreateUserName",byIdDrafterInfo.getUname()); - } + + +// String prcCreateUserNameStr = ""; +// if(StringUtils.isNotBlank(data.getDrafter())){ +// String[] split = data.getDrafter().split(","); +// List asList = Arrays.asList(split); +// for (String uid:asList){ +// TsUser byIdDrafterInfo = userService.getById(uid); +// if(StringUtils.isBlank(prcCreateUserNameStr)){ +// prcCreateUserNameStr = byIdDrafterInfo.getUname(); +// }else { +// prcCreateUserNameStr = prcCreateUserNameStr+","+byIdDrafterInfo.getUname(); +// } +// } +// } + qbfsForm.put("nowEsId","操作成功"); qbfsForm.put("type","5"); - String jsonMap = JSONObject.toJSONString(qbfsForm); - qbfsFormInfo.put("qbfsForm",qbfsForm); - processRollBackEO.setJson(JSONObject.toJSONString(qbfsFormInfo)); - ResponseMessage responseMessage = startProcessRollBack(processRollBackEO); - if(responseMessage!=null){ - String taskId = responseMessage.getData().toString(); - BusMes busMes = new BusMes(); - busMes.setPrcType("25"); - busMes.setTaskIds(taskId); -// busMes.setCreateUserName(userName); + if(StringUtils.isNotBlank(data.getDrafter())){ + String[] split = data.getDrafter().split(","); + List asList = Arrays.asList(split); + TsUser byIdUseLevel = userService.getById(asList.get(0)); + qbfsForm.put("prcCreateUser",asList.get(0)); + qbfsForm.put("prcCreateUserName",byIdUseLevel.getUname()); + + // if(jsonObject.get("prcCreateUser")!=null){ // busMes.setUserId(jsonObject.get("prcCreateUser").toString()); // } - busMes.setCreateUserName(data.getDrafterName()); - busMes.setUserId(data.getDrafter()); - busMes.setJson(jsonMap); - Wrapper stringWrapper = completeTaskByUserId(busMes); + //起草人 + processRollBackEO.setUserId(asList.get(0)); + processRollBackEO.setType("25"); + String jsonMap = JSONObject.toJSONString(qbfsForm); + qbfsFormInfo.put("qbfsForm",qbfsForm); + processRollBackEO.setJson(JSONObject.toJSONString(qbfsFormInfo)); + ResponseMessage responseMessage = startProcessRollBack(processRollBackEO); + if(responseMessage!=null){ + String taskId = responseMessage.getData().toString(); + BusMes busMes = new BusMes(); + busMes.setCreateUserName(byIdUseLevel.getUname()); + busMes.setPrcType("25"); + busMes.setTaskIds(taskId); + busMes.setCreateUserName(byIdUseLevel.getUname()); + busMes.setUserId(asList.get(0)); + busMes.setJson(jsonMap); + Wrapper stringWrapper = completeTaskByUserId(busMes); + } + } } return Result.success();