From d6467388f6da569a79338ee20c05b9735415d7ed Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 13 Sep 2024 19:21:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=BC=E5=85=A5=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessStandardComplianceCheckDetail.java | 4 +- ...essStandardComplianceCheckServiceImpl.java | 27 ++++++++++---- .../LawsConformityAssessmentController.java | 2 + .../entity/LawsEvaluationNotMetLibrary.java | 12 ++++++ ...wsConformityAssessmentLibraryExportVO.java | 2 + .../entity/vo/MaterialFile.java | 15 -------- .../vo/UnsatisfiedRequireAttachFile.java | 15 -------- .../LawsConformityAssessmentLibraryMapper.xml | 8 ++-- ...onformityAssessmentLibraryServiceImpl.java | 21 +++++++++++ ...awsEvaluationNotMetLibraryServiceImpl.java | 26 ++++++++++++- .../modules/laws/common/util/ImportUtil.java | 12 ++++++ .../laws/utils/ExcelExportUtilPro.java | 37 ++++++++++++++++--- 12 files changed, 129 insertions(+), 52 deletions(-) delete mode 100644 laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/MaterialFile.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/UnsatisfiedRequireAttachFile.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java index f837d482..56f83b9f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java @@ -240,7 +240,7 @@ public class ProcessStandardComplianceCheckDetail implements Serializable, Compa @ApiModelProperty(value = "佐证材料") @ExcelCollection(name = "", orderNum = "16") @TableField(exist = false) - private List fileList = Collections.emptyList(); + private List fileList = Collections.emptyList(); public List obtainFileIds() { return material != null ? Arrays.asList(material.split(",")) : Collections.emptyList(); @@ -252,7 +252,7 @@ public class ProcessStandardComplianceCheckDetail implements Serializable, Compa @ApiModelProperty(value = "辅助说明材料") @ExcelCollection(name = "", orderNum = "17") @TableField(exist = false) - private List fileListTwo = Collections.emptyList(); + private List fileListTwo = Collections.emptyList(); public List obtainFileTwoIds() { return unsatisfiedRequireAttach != null ? Arrays.asList(unsatisfiedRequireAttach.split(",")) : Collections.emptyList(); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index eae5c265..64f20732 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -546,6 +546,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl listDict = commonAPI.getDictItemAll(); ProcessInfoVO handleData = this.getHandleData(taskId); ProcessSccVO businessInfoDTO = handleData.getBusinessInfoDTO(); ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo(); @@ -565,9 +566,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl { + String material = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getMaterial(), listDict); + if (StrUtil.isNotBlank(material)) { + item.setMaterial("佐证材料/" + material); + } + String unsatisfiedRequireAttach = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getUnsatisfiedRequireAttach(), listDict); + if (StrUtil.isNotBlank(unsatisfiedRequireAttach)) { + item.setUnsatisfiedRequireAttach("辅助说明材料/" + unsatisfiedRequireAttach); + } + }); // 导出excel workbook.write(fos); // 生成并导出zip @@ -626,11 +639,11 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl String regex = "<[^>]*>"; diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/controller/LawsConformityAssessmentController.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/controller/LawsConformityAssessmentController.java index 1a79a93d..2ed1829b 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/controller/LawsConformityAssessmentController.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/controller/LawsConformityAssessmentController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.Translation; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibraryDetail; import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService; @@ -42,6 +43,7 @@ public class LawsConformityAssessmentController { @GetMapping(value = "/page") @ApiOperationSupport(order = 1) @RequiresPermissions("lawsConformityAssessment:search") + @Translation public Result> queryPageList(LawsConformityAssessmentLibrary lawsConformityAssessmentLibrary, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java index c3abf825..864a2aee 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java @@ -228,6 +228,18 @@ public class LawsEvaluationNotMetLibrary implements Serializable { return file != null ? Arrays.asList(file.split(",")) : Collections.emptyList(); } + /** + * 附件 + */ + @ApiModelProperty(value = "辅助说明材料") + @ExcelCollection(name = "", orderNum = "14") + @TableField(exist = false) + private List fileListTwo = Collections.emptyList(); + + public List obtainFileTwoIds() { + return unsatisfiedRequireAttach != null ? Arrays.asList(unsatisfiedRequireAttach.split(",")) : Collections.emptyList(); + } + /** * 标准ID */ diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/LawsConformityAssessmentLibraryExportVO.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/LawsConformityAssessmentLibraryExportVO.java index ca4081f9..204bb394 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/LawsConformityAssessmentLibraryExportVO.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/LawsConformityAssessmentLibraryExportVO.java @@ -2,6 +2,8 @@ package com.jero.modules.assessmentLibrary.entity.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; +import com.jero.modules.laws.utils.ExcelExportUtilPro.MaterialFile; +import com.jero.modules.laws.utils.ExcelExportUtilPro.UnsatisfiedRequireAttachFile; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.jeecgframework.poi.excel.annotation.Excel; diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/MaterialFile.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/MaterialFile.java deleted file mode 100644 index 141c4118..00000000 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/MaterialFile.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.jero.modules.assessmentLibrary.entity.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; - -@Data -public class MaterialFile { - @ApiModelProperty(value = "id") - private String id; - - @Excel(name = "佐证材料", width = 15) - @ApiModelProperty(value = "佐证材料") - private String fileName; -} diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/UnsatisfiedRequireAttachFile.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/UnsatisfiedRequireAttachFile.java deleted file mode 100644 index 69b728c2..00000000 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/vo/UnsatisfiedRequireAttachFile.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.jero.modules.assessmentLibrary.entity.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; - -@Data -public class UnsatisfiedRequireAttachFile { - @ApiModelProperty(value = "id") - private String id; - - @Excel(name = "辅助说明材料", width = 15) - @ApiModelProperty(value = "辅助说明材料") - private String fileName; -} diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/mapper/xml/LawsConformityAssessmentLibraryMapper.xml b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/mapper/xml/LawsConformityAssessmentLibraryMapper.xml index 4752fdf0..b6d2e247 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/mapper/xml/LawsConformityAssessmentLibraryMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/mapper/xml/LawsConformityAssessmentLibraryMapper.xml @@ -23,14 +23,12 @@ cs.standard_id, IF(cs.standard_id IS NOT NULL, d.standard_number, cs.standard_number) AS standard_number, IF(cs.standard_id IS NOT NULL, d.standard_name, cs.standard_name) AS standard_name, - lms.country as applicableMarket, + cs.applicable_market, cs.valuation_time, cs.create_time, - cs.all_approval_user, - lms.country + cs.all_approval_user from laws_conformity_assessment_library cs - left join laws_domestic_standard as d on d.id = cs.standard_id - left join laws_market_standard as lms on lms.id = cs.applicable_market) as t + left join laws_domestic_standard as d on d.id = cs.standard_id) as t ${ew.customSqlSegment} diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java index 6c3fa313..515ab4e5 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java @@ -6,12 +6,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.FileUtils; import com.jero.common.util.ZipUtil; import com.jero.common.util.obs.ObsBootUtil; +import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibraryDetail; import com.jero.modules.assessmentLibrary.entity.vo.LawsConformityAssessmentLibraryExportVO; @@ -66,6 +69,12 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl listDict = commonAPI.getDictItemAll(); String url = exportExcelTempPath.replace(EXPORT_EXCEL_TEMP, fileName); File file = new File(url); if (!file.exists()) { @@ -199,6 +209,17 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl newRecordsExport = new ArrayList<>(recordsExport); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsConformityAssessmentLibraryExportVO.class, recordsExport); + // 翻译评估结果和佐证材料字段 + newRecordsExport.parallelStream().forEach(item -> { + String material = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getMaterial(), listDict); + if (StrUtil.isNotBlank(material)) { + item.setMaterial("佐证材料/" + material); + } + String unsatisfiedRequireAttach = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getUnsatisfiedRequireAttach(), listDict); + if (StrUtil.isNotBlank(unsatisfiedRequireAttach)) { + item.setUnsatisfiedRequireAttach("辅助说明材料/" + unsatisfiedRequireAttach); + } + }); // 生成超链接 generateHyperlink("佐证材料", newRecordsExport, workbook); generateHyperlinkTwo("辅助说明材料", newRecordsExport, workbook); diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java index 3d16bea5..9ddb47f0 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java @@ -6,16 +6,21 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.FileUtils; import com.jero.common.util.ZipUtil; +import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.assessmentLibrary.entity.AssessCommon; import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary; import com.jero.modules.assessmentLibrary.mapper.LawsEvaluationNotMetLibraryMapper; import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService; import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService; import com.jero.modules.laws.utils.ExcelExportUtilPro; +import com.jero.modules.laws.utils.ExcelExportUtilPro.FileDetails; +import com.jero.modules.laws.utils.ExcelExportUtilPro.UnsatisfiedRequireAttachFile; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -52,6 +57,10 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl listDict = commonAPI.getDictItemAll(); horizontalCheck(lawsEvaluationNotMet.getSelections()); - String url = exportExcelTempPath.replace(EXPORT_EXCEL_TEMP, fileName); File file = new File(url); if (!file.exists()) { @@ -123,7 +132,8 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl lawsEvaluationNotMets = this.queryPage(lawsEvaluationNotMet, 1, Integer.MAX_VALUE, req); List records = lawsEvaluationNotMets.getRecords(); - excelExportUtilPro.settleDocuments(url, "附件", records, LawsEvaluationNotMetLibrary::obtainFileIds, LawsEvaluationNotMetLibrary::setFileList); + excelExportUtilPro.settleDocuments(url, "附件", records, LawsEvaluationNotMetLibrary::obtainFileIds, LawsEvaluationNotMetLibrary::setFileList, FileDetails.class); + excelExportUtilPro.settleDocuments(url, "辅助说明材料", records, LawsEvaluationNotMetLibrary::obtainFileTwoIds, LawsEvaluationNotMetLibrary::setFileListTwo, UnsatisfiedRequireAttachFile.class); // 去除文本的

String regex = "<[^>]*>"; @@ -140,8 +150,20 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl newRecordsExport = new ArrayList<>(records); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsEvaluationNotMetLibrary.class, records); + // 翻译评估结果和佐证材料字段 + newRecordsExport.parallelStream().forEach(item -> { + String material = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getFile(), listDict); + if (StrUtil.isNotBlank(material)) { + item.setFile("附件/" + material); + } + String unsatisfiedRequireAttach = excelUtils.translateDictValue("id", "file_name", "oss_file", item.getUnsatisfiedRequireAttach(), listDict); + if (StrUtil.isNotBlank(unsatisfiedRequireAttach)) { + item.setUnsatisfiedRequireAttach("辅助说明材料/" + unsatisfiedRequireAttach); + } + }); // 生成超链接 excelExportUtilPro.generateHyperlink("附件", newRecordsExport, workbook, LawsEvaluationNotMetLibrary::getFileList, 12); + excelExportUtilPro.generateHyperlink("辅助说明材料", newRecordsExport, workbook, LawsEvaluationNotMetLibrary::getFileList, 13); // 导出excel workbook.write(fos); // 生成并导出zip diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java index 1d14d956..eff4fb78 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java @@ -389,6 +389,18 @@ public class ImportUtil { parameterMap.put(tag.getDbFieldName(), this.convertInspectContentFile(cellValue, fileMap)); } } + // 企标稽查内容文件导入 + if (FieldCommon.REFERENCE_STANDARD.equals(tag.getDbFieldName()) && + TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(tag.getIsModel())) { +// if (!this.inspectContentFileValid(cellValue, fileMap)) { +// log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); +// errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); +// } else { +// // 转为List +// // 将转好的值加入Map +// parameterMap.put(tag.getDbFieldName(), this.convertInspectContentFile(cellValue, fileMap)); +// } + } } if (errMsg.toString().contains("列") || errMsg.toString().contains("重复") || errMsg.toString().contains("已存在")) { errMsgList.add(errMsg.toString()); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/utils/ExcelExportUtilPro.java b/laws-modules/src/main/java/com/jero/modules/laws/utils/ExcelExportUtilPro.java index a09f9021..8a8887a4 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/utils/ExcelExportUtilPro.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/utils/ExcelExportUtilPro.java @@ -39,8 +39,30 @@ public class ExcelExportUtilPro { @ApiModelProperty(value = "id") private String id; - @Excel(name = "附件/佐证材料", width = 15) - @ApiModelProperty(value = "附件/佐证材料") + @Excel(name = "附件", width = 15) + @ApiModelProperty(value = "附件") + private String fileName; + } + + @Setter + @Getter + public static class MaterialFile { + @ApiModelProperty(value = "id") + private String id; + + @Excel(name = "佐证材料", width = 15) + @ApiModelProperty(value = "佐证材料") + private String fileName; + } + + @Setter + @Getter + public static class UnsatisfiedRequireAttachFile { + @ApiModelProperty(value = "id") + private String id; + + @Excel(name = "辅助说明材料", width = 15) + @ApiModelProperty(value = "辅助说明材料") private String fileName; } @@ -78,9 +100,10 @@ public class ExcelExportUtilPro { return cellStyle; } - public void settleDocuments(String url, String folderName, List items, - Function> fileIdProvider, - BiConsumer> fileDetailsConsumer) throws IOException { + public void settleDocuments(String url, String folderName, List items, + Function> fileIdProvider, + BiConsumer> fileDetailsConsumer, + Class fileDetailsClass) throws IOException { // 构建完整的文件夹路径 String directoryPath = url + File.separator + folderName; @@ -95,7 +118,8 @@ public class ExcelExportUtilPro { if (fileIdList != null && !fileIdList.isEmpty()) { List ossFileList = ossFileService.listByIds(fileIdList); if (!ossFileList.isEmpty()) { - List fileDetailsList = BeanCopyUtils.copyBeanList(ossFileList, FileDetails.class); + // 将OSSFile列表复制为泛型R的列表 + List fileDetailsList = BeanCopyUtils.copyBeanList(ossFileList, fileDetailsClass); fileDetailsConsumer.accept(item, fileDetailsList); for (OSSFile ossFile : ossFileList) { InputStream inputStream = ObsBootUtil.getOssFile(ossFile.getUrl()); @@ -110,6 +134,7 @@ public class ExcelExportUtilPro { } } + public void writeToLocal(String filePath, InputStream input) throws IOException { int index; byte[] bytes = new byte[1024];