-
-
- {{$t('parameterTemplate')}}
-
-
-
-
-
-
-
-
- {
- $refs.showArea.onFieldBlur();
- }
- "
- />
-
-
- {
- $refs.enName.onFieldBlur();
- }
- "
- />
-
-
- {
- $refs.sort.onFieldBlur();
- }
- "
- />
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{$t('query')}}
+ {{$t('reset')}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{ text }}
-
- {{$t('edit')}}
- {{$t('delete')}}
+ class='table-area'
+ ref='table'
+ size='middle'
+ rowKey='id'
+ :columns='columns'
+ :dataSource='areaTable'
+ :pagination='false'
+ :loading='loading'
+ :scroll='{x: 600}'
+ :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
+ @change='handleTableChange'>
+ {{ text }}
+
+ {{ $t('edit') }}
+ {{ $t('delete') }}
+
-
-
\ No newline at end of file
From 17c422718e89028cf99b3dfb7141bdf61a891d81 Mon Sep 17 00:00:00 2001
From: zhn <947514737@qq.com>
Date: Fri, 6 May 2022 15:42:16 +0800
Subject: [PATCH 4/4] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95--?=
=?UTF-8?q?=E5=AF=BC=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/DummyInventoryInfoEOServiceImpl.java | 39 +--
.../entity/ProjectLawsInventoryEO.java | 112 ++++---
.../xml/ProjectLawsInventoryEOMapper.xml | 4 +-
.../ProjectLawsInventoryEOServiceImpl.java | 317 ++++++++++++++++++
4 files changed, 402 insertions(+), 70 deletions(-)
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java
index 18048d4a5..526fc70dc 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java
@@ -1297,6 +1297,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl
lambdaQueryWrapper = new LambdaQueryWrapper<>();
- lambdaQueryWrapper.in(BussDocumentLibraryEO::getId,correspondingStandardIdList);
- List bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(lambdaQueryWrapper);
+// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+// lambdaQueryWrapper.in(BussDocumentLibraryEO::getId,correspondingStandardIdList);
+// List bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(lambdaQueryWrapper);
for (DummyInventoryInfoEO inventoryInfoEO : dataList) {
String correspondingStandard = inventoryInfoEO.getCorrespondingStandard();
@@ -1376,22 +1377,22 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl collect = bussDocumentLibraryEOList.stream()
- .filter(e -> s.equals(e.getId())).collect(Collectors.toList());
- if(collect.size() != 0){
- sb.append(collect.get(0).getSerialNumber() + ",");
- }else{
- sb.append(s + ",");
- }
- }
- if(StringUtils.isNotBlank(sb)){
- String substring = sb.substring(0, sb.length() - 1);
- inventoryInfoEO.setCorrespondingStandard(substring);
- }
- }
+// if(StringUtils.isNotBlank(correspondingStandard)){
+// StringBuilder sb = new StringBuilder();
+// for (String s : correspondingStandard.split(",")) {
+// List collect = bussDocumentLibraryEOList.stream()
+// .filter(e -> s.equals(e.getId())).collect(Collectors.toList());
+// if(collect.size() != 0){
+// sb.append(collect.get(0).getSerialNumber() + ",");
+// }else{
+// sb.append(s + ",");
+// }
+// }
+// if(StringUtils.isNotBlank(sb)){
+// String substring = sb.substring(0, sb.length() - 1);
+// inventoryInfoEO.setCorrespondingStandard(substring);
+// }
+// }
//技术领域
if(StringUtils.isNotBlank(technologyTerritory)){
StringBuilder sb = new StringBuilder();
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java
index b31ace150..6a8237c5c 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java
@@ -59,119 +59,144 @@ public class ProjectLawsInventoryEO implements Serializable {
private String sysOrgCode;
/**项目库id*/
- @Excel(name = "项目库id", width = 15)
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
/**编号*/
- @Excel(name = "编号", width = 15)
+ @Excel(name = "编号", width = 20)
@ApiModelProperty(value = "编号")
private String serialNumber;
/**标题*/
- @Excel(name = "标题", width = 15)
+ @Excel(name = "标题", width = 20)
@ApiModelProperty(value = "标题")
private String title;
/**子标题*/
- @Excel(name = "子标题", width = 15)
+ @Excel(name = "子标题", width = 20)
@ApiModelProperty(value = "子标题")
private String subtitle;
+ /**清单确认状态*/
+ @ApiModelProperty(value = "清单确认状态")
+ private String inventoryAffirmStatus;
+
+ @TableField(exist = false)
+ @Excel(name = "清单确认状态", width = 20)
+ @ApiModelProperty(value = "清单确认状态名称")
+ private String inventoryAffirmStatusName;//清单确认状态名称
+
+ /**任务确认状态*/
+ @ApiModelProperty(value = "任务确认状态")
+ private String taskAffirmStatus;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "任务发布状态名称")
+ @Excel(name = "任务确认状态", width = 20)
+ private String taskAffirmStatusName;//任务发布状态名称
+
+ /**适用地区*/
+ @ApiModelProperty(value = "适用地区")
+ @Dict(dicCode ="region")
+ @Excel(name = "适用地区", width = 15, dicCode = "region")
+ private java.lang.String region;
+
/**对应标准*/
- @Excel(name = "对应标准", width = 15)
+ @Excel(name = "对应标准", width = 20)
@ApiModelProperty(value = "对应标准")
private String correspondingStandard;
/**实施类别*/
- @Excel(name = "实施类别", width = 15)
+ @Excel(name = "实施类别", width = 20,dicCode ="implement_type")
@ApiModelProperty(value = "实施类别")
@Dict(dicCode ="implement_type")
private String implementType;
/**新车型实施日期*/
- @Excel(name = "新车型实施日期", width = 15, format = "yyyy-MM-dd")
+ @Excel(name = "新车型实施日期", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "新车型实施日期")
private Date xin1Che1Xing2Shi2Shi1Ri4Qi1;
/**在产车实施日期*/
- @Excel(name = "在产车实施日期", width = 15, format = "yyyy-MM-dd")
+ @Excel(name = "在产车实施日期", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "在产车实施日期")
private Date implementTime;
/**认证类型*/
- @Excel(name = "认证类型", width = 15)
+ @Excel(name = "认证类型", width = 20,dicCode ="attestation_type")
@ApiModelProperty(value = "认证类型")
@Dict(dicCode ="attestation_type")
private String attestationType;
/**认证级别*/
- @Excel(name = "认证级别", width = 15)
+ @Excel(name = "认证级别", width = 20,dicCode ="attestation_rank")
@ApiModelProperty(value = "认证级别")
@Dict(dicCode ="attestation_rank")
private String attestationRank;
/**WVTA ID*/
- @Excel(name = "WVTA ID", width = 15)
+ @Excel(name = "WVTA ID", width = 20)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**责任领域*/
- @Excel(name = "责任领域", width = 15)
+ @Excel(name = "责任领域", width = 20,dicCode ="duty_territory")
@ApiModelProperty(value = "责任领域")
@Dict(dicCode ="duty_territory")
private String dutyTerritory;
/**法规工程师id*/
- @Excel(name = "法规工程师id", width = 15)
@ApiModelProperty(value = "法规工程师id")
private String regulationOwnerId;
+
+ @Excel(name = "法规工程师", width = 20)
@TableField(exist = false)
@ApiModelProperty(value = "法规工程师名称")
private String regulationOwnerName;//法规工程师名称
/**认证工程师id*/
- @Excel(name = "认证工程师id", width = 15)
@ApiModelProperty(value = "认证工程师id")
private String homologationEngineerId;
+
+ @Excel(name = "认证工程师", width = 20)
@TableField(exist = false)
@ApiModelProperty(value = "认证工程师名称")
private String homologationEngineerName;//认证工程师名称
/**工程接口人id*/
- @Excel(name = "工程接口人id", width = 15)
@ApiModelProperty(value = "工程接口人id")
private String engineeringInterfacePerson;
+
+ @Excel(name = "工程接口人", width = 20)
@TableField(exist = false)
@ApiModelProperty(value = "工程接口人名称")
private String engineeringInterfacePersonName;//工程接口人名称
/**备注*/
- @Excel(name = "备注", width = 15)
+ @Excel(name = "备注", width = 20)
@ApiModelProperty(value = "备注")
private String remark;
/**设计符合性确认-交付物类型*/
- @Excel(name = "设计符合性确认-交付物类型", width = 15)
+ @Excel(name = "设计符合性确认-交付物类型", width = 20,dicCode ="deliverable_template")
@ApiModelProperty(value = "设计符合性确认-交付物类型")
@Dict(dicCode ="deliverable_template")
private String designDeliverableType;
/**设计符合性确认-交付物模板*/
- @Excel(name = "设计符合性确认-交付物模板", width = 15)
@ApiModelProperty(value = "设计符合性确认-交付物模板")
private String designDeliverableTemplate;
/**设计符合性确认-交付物模板名称*/
@TableField(exist = false)
+ @Excel(name = "设计符合性确认-交付物模板", width = 20)
private String designDeliverableTemplateName;
/**设计符合性确认-发起人角色*/
- @Excel(name = "设计符合性确认-发起人角色", width = 15)
@ApiModelProperty(value = "设计符合性确认-发起人角色")
@Dict(dicCode ="fa1_qi3_ren2")
private String designInitiator;
@@ -179,12 +204,13 @@ public class ProjectLawsInventoryEO implements Serializable {
/**设计符合性确认-发起人id*/
@ApiModelProperty(value = "设计符合性确认-发起人id")
private String designInitiatorId;
+
/**设计符合性确认-发起人名称*/
+ @Excel(name = "设计符合性确认-发起人", width = 20)
@TableField(exist = false)
private String designInitiatorName;
/**设计符合性确认-责任人角色*/
- @Excel(name = "设计符合性确认-责任人角色", width = 15)
@ApiModelProperty(value = "设计符合性确认-责任人角色")
@Dict(dicCode ="ze2_ren4_ren2")
private String designDuty;
@@ -192,34 +218,35 @@ public class ProjectLawsInventoryEO implements Serializable {
/**设计符合性确认-责任人id*/
@ApiModelProperty(value = "设计符合性确认-责任人id")
private String designDutyId;
+
/**设计符合性确认-责任人名称*/
+ @Excel(name = "设计符合性确认-责任人", width = 20)
@TableField(exist = false)
private String designDutyName;
/**设计符合性确认-截止时间*/
- @Excel(name = "设计符合性确认-截止时间", width = 15, format = "yyyy-MM-dd")
+ @Excel(name = "设计符合性确认-截止时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "设计符合性确认-截止时间")
private Date designDueDate;
/**prehomo确认-交付物类型*/
- @Excel(name = "prehomo确认-交付物类型", width = 15)
+ @Excel(name = "prehomo确认-交付物类型", width = 20,dicCode ="deliverable_template")
@ApiModelProperty(value = "prehomo确认-1")
@Dict(dicCode ="deliverable_template")
private String prehomoDeliverableType;
/**prehomo确认-交付物模板*/
- @Excel(name = "prehomo确认-交付物模板", width = 15)
@ApiModelProperty(value = "prehomo确认-交付物模板")
private String prehomoDeliverableTemplate;
/**prehomo确认-交付物模板名称*/
@TableField(exist = false)
+ @Excel(name = "prehomo确认-交付物模板", width = 20)
private String prehomoDeliverableTemplateName;
/**prehomo确认-发起人角色*/
- @Excel(name = "prehomo确认-发起人角色", width = 15)
@ApiModelProperty(value = "prehomo确认-发起人角色")
@Dict(dicCode ="fa1_qi3_ren2")
private String prehomoInitiator;
@@ -227,12 +254,13 @@ public class ProjectLawsInventoryEO implements Serializable {
/**prehomo确认-发起人id*/
@ApiModelProperty(value = "prehomo确认-发起人id")
private String prehomoInitiatorId;
+
/**prehomo确认-发起人名称*/
+ @Excel(name = "prehomo确认-发起人", width = 20)
@TableField(exist = false)
private String prehomoInitiatorName;
/**prehomo确认-责任人角色*/
- @Excel(name = "prehomo确认-责任人角色", width = 15)
@ApiModelProperty(value = "prehomo确认-责任人角色")
@Dict(dicCode ="ze2_ren4_ren2")
private String prehomoDuty;
@@ -240,34 +268,35 @@ public class ProjectLawsInventoryEO implements Serializable {
/**prehomo确认-责任人id*/
@ApiModelProperty(value = "prehomo确认-责任人id")
private String prehomoDutyId;
+
/**prehomo确认-责任人名称*/
+ @Excel(name = "prehomo确认-责任人", width = 20)
@TableField(exist = false)
private String prehomoDutyName;
/**prehomo确认-截止时间*/
- @Excel(name = "prehomo确认-截止时间", width = 15, format = "yyyy-MM-dd")
+ @Excel(name = "prehomo确认-截止时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "prehomo确认-截止时间")
private Date prehomoDueDate;
/**验证符合性确认-交付物类型*/
- @Excel(name = "验证符合性确认-交付物类型", width = 15)
+ @Excel(name = "验证符合性确认-交付物类型", width = 20,dicCode ="deliverable_template")
@ApiModelProperty(value = "验证符合性确认-交付物类型")
@Dict(dicCode ="deliverable_template")
private String verifyDeliverableType;
/**验证符合性确认-交付物模板*/
- @Excel(name = "验证符合性确认-交付物模板", width = 15)
@ApiModelProperty(value = "验证符合性确认-交付物模板")
private String verifyDeliverableTemplate;
/**验证符合性确认-交付物模板名称*/
+ @Excel(name = "验证符合性确认-交付物模板", width = 20)
@TableField(exist = false)
private String verifyDeliverableTemplateName;
/**验证符合性确认-发起人角色*/
- @Excel(name = "验证符合性确认-发起人角色", width = 15)
@ApiModelProperty(value = "验证符合性确认-发起人角色")
@Dict(dicCode ="fa1_qi3_ren2")
private String verifyInitiator;
@@ -275,12 +304,13 @@ public class ProjectLawsInventoryEO implements Serializable {
/**验证符合性确认-发起人id*/
@ApiModelProperty(value = "验证符合性确认-发起人id")
private String verifyInitiatorId;
+
/**验证符合性确认-发起人名称*/
+ @Excel(name = "验证符合性确认-发起人", width = 20)
@TableField(exist = false)
private String verifyInitiatorName;
/**验证符合性确认-责任人角色*/
- @Excel(name = "验证符合性确认-责任人", width = 15)
@ApiModelProperty(value = "验证符合性确认-责任人角色")
@Dict(dicCode ="ze2_ren4_ren2")
private String verifyDuty;
@@ -288,33 +318,19 @@ public class ProjectLawsInventoryEO implements Serializable {
/**验证符合性确认-责任人id*/
@ApiModelProperty(value = "验证符合性确认-责任人id")
private String verifyDutyId;
+
/**验证符合性确认-责任人名称*/
+ @Excel(name = "验证符合性确认-责任人", width = 20)
@TableField(exist = false)
private String verifyDutyName;
/**验证符合性确认-截止时间*/
- @Excel(name = "验证符合性确认-截止时间", width = 15, format = "yyyy-MM-dd")
+ @Excel(name = "验证符合性确认-截止时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "验证符合性确认-截止时间")
private Date verifyDueDate;
- /**清单确认状态*/
- @Excel(name = "清单确认状态", width = 15)
- @ApiModelProperty(value = "清单确认状态")
- private String inventoryAffirmStatus;
- @TableField(exist = false)
- @ApiModelProperty(value = "清单确认状态名称")
- private String inventoryAffirmStatusName;//清单确认状态名称
-
- /**任务发布状态*/
- @Excel(name = "任务发布状态", width = 15)
- @ApiModelProperty(value = "任务发布状态")
- private String taskAffirmStatus;
- @TableField(exist = false)
- @ApiModelProperty(value = "任务发布状态名称")
- private String taskAffirmStatusName;//任务发布状态名称
-
@TableField(exist = false)
@ApiModelProperty(value = "角色代码")
@@ -339,14 +355,12 @@ public class ProjectLawsInventoryEO implements Serializable {
private String ids;//文档库id 多个之间用英文逗号拼接
/**清单确认-截止时间*/
- @Excel(name = "清单确认-截止时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "清单确认-截止时间")
private Date inventoryAffirmDueDate;
/**任务确认-截止时间*/
- @Excel(name = "任务确认-截止时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "任务确认-截止时间")
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml
index c92190d72..3c0b1a42e 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml
@@ -39,6 +39,6 @@
-
+
-
\ No newline at end of file
+
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java
index b80ab4903..e8c3cce52 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java
@@ -1,5 +1,6 @@
package com.jero.modules.project.service.impl;
+import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.utils.IOUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -43,6 +44,7 @@ import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysUserService;
+import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -54,8 +56,14 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
+import org.aspectj.util.FileUtil;
+import org.jeecgframework.poi.excel.ExcelExportUtil;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -66,6 +74,8 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
@@ -78,6 +88,8 @@ import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
+import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl.copyFile;
+
/**
* @Description: 项目库-法规清单表
* @Author: jero-boot
@@ -121,6 +133,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataList = new ArrayList<>();
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO,request.getParameterMap());
+ queryWrapper.in("project_library_id",projectLawsInventoryEO.getProjectLibraryId());
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getIds())){
+ queryWrapper.in("id",Arrays.asList(projectLawsInventoryEO.getIds().split(",")));
+ }
+ queryWrapper.orderByDesc("create_time");
+ //导出的数据
+ dataList = this.list(queryWrapper);
+
+ //文件
+ List fileInfos = getOssFiles(dataList);
+ //所有用户
+ List sysUserList = sysUserService.list();
+ //数据转换(文件名称,对应标准)
+ dataTransition(dataList, fileInfos,sysUserList);
+
+ OutputStream os = null;
+ try {
+ response.setContentType("application/force-download");
+ Workbook workbook = new XSSFWorkbook();
+ String path = uploadpath + "/tempZip";
+ File fileTemp = new File(path);
+ if (fileTemp.exists()) {
+ fileTemp.delete();
+ }
+ fileTemp.mkdirs();
+ //文件
+ exportFile(dataList,fileInfos);
+ //excel
+ OutputStream excelOS = new FileOutputStream(path + File.separator + "虚拟清单.xlsx");
+ ExportParams exportParams = new ExportParams();
+ exportParams.setType(ExcelType.XSSF);
+ workbook = ExcelExportUtil.exportExcel(exportParams, ProjectLawsInventoryEO.class, dataList);
+ workbook.write(excelOS);
+ excelOS.flush();
+
+ ZipUtil.zip(path, path + ".zip");
+ //文件
+ FileInputStream fis = new FileInputStream(path + ".zip");
+ os = response.getOutputStream();
+
+ int len = 0;
+ while ((len = fis.read()) != -1) {
+ os.write(len);
+ }
+ os.flush();
+ fis.close();
+ } catch (IOException e) {
+ if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){
+ throw new JeroBootException("下载文件失败");
+ }else{
+ throw new JeroBootException("Failed to download file");
+ }
+ } finally {
+ IOUtils.closeQuietly(os);
+ File file = new File(uploadpath + "/tempZip");
+ FileUtil.deleteContents(file);
+ }
}
@@ -1485,4 +1559,247 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl getOssFiles(List dataList) {
+ List fileIdList = new ArrayList<>();
+ List design = new ArrayList<>();
+ List prehomo = new ArrayList<>();
+ List verify = new ArrayList<>();
+ for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) {
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDeliverableTemplate())){
+ design.add(projectLawsInventoryEO.getDesignDeliverableTemplate());
+ }
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDeliverableTemplate())){
+ prehomo.add(projectLawsInventoryEO.getPrehomoDeliverableTemplate());
+ }
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDeliverableTemplate())){
+ verify.add(projectLawsInventoryEO.getVerifyDeliverableTemplate());
+ }
+ }
+ if(design.size() != 0){
+ fileIdList.addAll(design);
+ }
+ if(prehomo.size() != 0){
+ fileIdList.addAll(prehomo);
+ }
+ if(verify.size() != 0){
+ fileIdList.addAll(verify);
+ }
+ //查询所有的文件
+ List fileInfos = new ArrayList<>();
+ if(fileIdList.size() != 0){
+ fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
+ }
+ return fileInfos;
+ }
+
+ /**
+ * 数据转换(文件名称,技术领域,对应标准)
+ * @param dataList
+ * @param fileInfos
+ */
+ private void dataTransition(List dataList,
+ List fileInfos,
+ List sysUserList) {
+
+ for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) {
+ //清单确认状态 inventoryAffirmStatus
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getInventoryAffirmStatus())){
+ String stateName = stateTransition(projectLawsInventoryEO.getInventoryAffirmStatus());
+ projectLawsInventoryEO.setInventoryAffirmStatusName(stateName);
+ }
+ //任务确认状态 taskAffirmStatus
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getTaskAffirmStatus())){
+ String stateName = stateTransition(projectLawsInventoryEO.getTaskAffirmStatus());
+ projectLawsInventoryEO.setTaskAffirmStatusName(stateName);
+ }
+ //法规工程师 regulationOwnerId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getRegulationOwnerId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setRegulationOwnerName(collect.get(0).getUsername());
+ }
+ }
+
+ //认证工程师 homologationEngineerId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getHomologationEngineerId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setHomologationEngineerName(collect.get(0).getUsername());
+ }
+ }
+
+ //工程接口人 engineeringInterfacePerson
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getEngineeringInterfacePerson())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setEngineeringInterfacePersonName(collect.get(0).getUsername());
+ }
+ }
+
+ //设计符合性确认发起人designInitiatorId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getDesignInitiatorId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setDesignInitiatorName(collect.get(0).getUsername());
+ }
+ }
+
+ //设计符合性确认责任人designDutyId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDutyId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setDesignDutyName(collect.get(0).getUsername());
+ }
+ }
+
+ //PreHomo确认发起人prehomoInitiatorId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoInitiatorId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setPrehomoInitiatorName(collect.get(0).getUsername());
+ }
+ }
+
+ //PreHomo确认责任人prehomoDutyId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDutyId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setPrehomoDutyName(collect.get(0).getUsername());
+ }
+ }
+
+ //验证符合性确认发起人verifyInitiatorId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyInitiatorId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setVerifyInitiatorName(collect.get(0).getUsername());
+ }
+ }
+
+ //验证符合性确认责任人verifyDutyId
+ if(StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDutyId())){
+ List collect = sysUserList.stream()
+ .filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ projectLawsInventoryEO.setVerifyDutyName(collect.get(0).getUsername());
+ }
+ }
+
+ String designDeliverableTemplate = projectLawsInventoryEO.getDesignDeliverableTemplate();
+ String prehomoDeliverableTemplate = projectLawsInventoryEO.getPrehomoDeliverableTemplate();
+ String verifyDeliverableTemplate = projectLawsInventoryEO.getVerifyDeliverableTemplate();
+ //设计交付物模板
+ if(StringUtils.isNotBlank(designDeliverableTemplate)){
+ String designDeliverableTemplateName = template(fileInfos, designDeliverableTemplate);
+ projectLawsInventoryEO.setDesignDeliverableTemplateName(designDeliverableTemplateName);
+ }
+ //设计交付物模板
+ if(StringUtils.isNotBlank(prehomoDeliverableTemplate)){
+ String prehomoDeliverableTemplateName = template(fileInfos, prehomoDeliverableTemplate);
+ projectLawsInventoryEO.setPrehomoDeliverableTemplateName(prehomoDeliverableTemplateName);
+
+ }
+ //设计交付物模板
+ if(StringUtils.isNotBlank(verifyDeliverableTemplate)){
+ String verifyDeliverableTemplateName = template(fileInfos, verifyDeliverableTemplate);
+ projectLawsInventoryEO.setVerifyDeliverableTemplateName(verifyDeliverableTemplateName);
+ }
+ }
+ }
+
+ private String stateTransition(String state){
+ String result = "";
+ if(InventoryAffirmStatusEnum.NOT_STARTED.getValue().equals(state)){
+ result = InventoryAffirmStatusEnum.NOT_STARTED.getName();
+
+ }else if(InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getValue().equals(state)){
+ result = InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getName();
+
+ }else if(InventoryAffirmStatusEnum.ACCEPTED.getValue().equals(state)){
+ result = InventoryAffirmStatusEnum.ACCEPTED.getName();
+
+ }else if(InventoryAffirmStatusEnum.REJECTED.getValue().equals(state)){
+ result = InventoryAffirmStatusEnum.REJECTED.getName();
+ }
+ return result;
+ }
+
+ /**
+ * 模板名称转换
+ * @param fileInfos
+ * @param value
+ * @return
+ */
+ private String template(List fileInfos, String value) {
+ StringBuilder sb = new StringBuilder();
+ for (String s : value.split(",")) {
+ List collect = fileInfos.stream().filter(e -> s.equals(e.getId())).collect(Collectors.toList());
+ if(collect.size() != 0){
+ sb.append(collect.get(0).getFileName()+",");
+ }
+ }
+ String substring = "";
+ if(StringUtils.isNotBlank(sb)){
+ substring = sb.substring(0, sb.length() - 1);
+ }
+ return substring;
+ }
+
+ private void exportFile(List dataList,List fileInfos) throws IOException {
+ if(fileInfos.size() != 0){
+ for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) {
+ String designDeliverableTemplate = projectLawsInventoryEO.getDesignDeliverableTemplate();
+ String prehomoDeliverableTemplate = projectLawsInventoryEO.getPrehomoDeliverableTemplate();
+ String verifyDeliverableTemplate = projectLawsInventoryEO.getVerifyDeliverableTemplate();
+ String serialNumber = projectLawsInventoryEO.getSerialNumber();
+ if(StringUtils.isBlank(serialNumber)){
+ continue;
+ }
+ List designFileList = new ArrayList<>();
+ List prehomoFileList = new ArrayList<>();
+ List verifyFileList = new ArrayList<>();
+ List oSSFileList = new ArrayList<>();
+ if(StringUtils.isNotBlank(designDeliverableTemplate)){
+ designFileList = fileInfos.stream().filter(e -> designDeliverableTemplate.contains(e.getId())).collect(Collectors.toList());
+ oSSFileList.addAll(designFileList);
+ }
+ if(StringUtils.isNotBlank(prehomoDeliverableTemplate)){
+ prehomoFileList = fileInfos.stream().filter(e -> prehomoDeliverableTemplate.contains(e.getId())).collect(Collectors.toList());
+ oSSFileList.addAll(prehomoFileList);
+ }
+ if(StringUtils.isNotBlank(verifyDeliverableTemplate)){
+ verifyFileList = fileInfos.stream().filter(e -> verifyDeliverableTemplate.contains(e.getId())).collect(Collectors.toList());
+ oSSFileList.addAll(verifyFileList);
+ }
+
+ if(oSSFileList.size() != 0){
+ String fileNowPath = uploadpath + "/tempZip/" + serialNumber;
+ File file = new File(fileNowPath);
+ if (file.exists()) {
+ file.delete();
+ }
+ file.mkdirs();
+ for (OSSFile ossFile : oSSFileList) {
+ String url = ossFile.getUrl();
+ copyFile(url, fileNowPath + File.separator + ossFile.getFileName());
+ }
+ }
+ }
+ }
+ }
}