Merge remote-tracking branch 'origin/master'

This commit is contained in:
liyawei
2022-05-06 16:38:44 +08:00
6 changed files with 443 additions and 80 deletions
@@ -1297,6 +1297,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){
queryWrapper.in("id",Arrays.asList(dummyInventoryInfoEO.getIds().split(",")));
}
queryWrapper.orderByDesc("create_time");
//导出的数据
dataList = this.list(queryWrapper);
@@ -1365,9 +1366,9 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
correspondingStandardIdList.addAll(Arrays.asList(correspondingStandard.split(",")));
}
}
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(BussDocumentLibraryEO::getId,correspondingStandardIdList);
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(lambdaQueryWrapper);
// LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// lambdaQueryWrapper.in(BussDocumentLibraryEO::getId,correspondingStandardIdList);
// List<BussDocumentLibraryEO> bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(lambdaQueryWrapper);
for (DummyInventoryInfoEO inventoryInfoEO : dataList) {
String correspondingStandard = inventoryInfoEO.getCorrespondingStandard();
@@ -1376,22 +1377,22 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
String prehomoDeliverableTemplate = inventoryInfoEO.getPrehomoDeliverableTemplate();
String verifyDeliverableTemplate = inventoryInfoEO.getVerifyDeliverableTemplate();
//对应标准
if(StringUtils.isNotBlank(correspondingStandard)){
StringBuilder sb = new StringBuilder();
for (String s : correspondingStandard.split(",")) {
List<BussDocumentLibraryEO> 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<BussDocumentLibraryEO> 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();
@@ -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 = "任务确认-截止时间")
@@ -39,6 +39,6 @@
<result column="verify_initiator" property="verifyInitiator" />
<result column="verify_duty" property="verifyDuty" />
<result column="verify_due_date" property="verifyDueDate" />
<result column="task_release_status" property="taskReleaseStatus" />
<result column="region" property="region" />
</resultMap>
</mapper>
</mapper>
@@ -76,4 +76,10 @@ public interface IProjectTaskInventoryEOService extends IService<ProjectTaskInve
* @return
*/
Result<?> remindDispose(JSONObject jsonObject);
/**
* 根据法规清单id,删除数据
* @param projectLawsInventoryIds
*/
void deleteByProjectLawsInventoryIds(List<String> projectLawsInventoryIds);
}
@@ -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;
@@ -22,10 +23,7 @@ import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.message.websocket.WebSocket;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.MsgTypeEnum;
import com.jero.modules.project.enums.OperatorResultEnum;
@@ -33,16 +31,15 @@ import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.project.enums.TaskAffirmStatusEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.*;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.system.entity.SysAnnouncement;
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 +51,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 +69,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 +83,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
@@ -116,11 +123,18 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Autowired
private ProjectNameInfoEOMapper projectNameInfoEOMapper;
@Autowired
private IProjectTaskInventoryEOService projectTaskInventoryEOService;
@Autowired
private IDummyInventoryInfoEOService dummyInventoryInfoEOService;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@Autowired
private SysCategoryServiceImpl sysCategoryService;
/**
* 保存
*
@@ -129,6 +143,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
*/
@Override
public void add(ProjectLawsInventoryEO projectLawsInventoryEO) {
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = new ArrayList<>();
//法规清单所有的数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapperTemp = new LambdaQueryWrapper<>();
wrapperTemp.in(ProjectLawsInventoryEO::getProjectLibraryId,projectLawsInventoryEO.getProjectLibraryId());
@@ -181,6 +196,13 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
if(projectLawsInventoryEOS.size() != 0){
this.saveBatch(projectLawsInventoryEOS);
projectLawsInventoryEOS.forEach(lawsInventory -> {
ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO();
String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", "");
projectTaskInventoryEO.setId(projectTaskInventoryId);
projectTaskInventoryEO.setProjectLawsInventoryId(lawsInventory.getId());
projectTaskInventoryEOList.add(projectTaskInventoryEO);
});
}
}
}
@@ -217,20 +239,29 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
List<ProjectLawsInventoryEO> list = new ArrayList<>();
for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) {
ProjectLawsInventoryEO projectLawsInventoryTemp = new ProjectLawsInventoryEO();
BeanUtils.copyProperties(bussDocumentLibraryEO, projectLawsInventoryTemp);
String id = UUID.randomUUID().toString().replace("-", "");
projectLawsInventoryTemp.setId(id);
String projectLawsInventoryId = UUID.randomUUID().toString().replace("-", "");
projectLawsInventoryTemp.setId(projectLawsInventoryId);
projectLawsInventoryTemp.setProjectLibraryId(projectLawsInventoryEO.getProjectLibraryId());
projectLawsInventoryTemp.setCreateTime(new Date());
projectLawsInventoryTemp.setUpdateTime(new Date());
projectLawsInventoryTemp.setTaskAffirmStatus(TaskAffirmStatusEnum.NOT_STARTED.getValue());
projectLawsInventoryTemp.setInventoryAffirmStatus(InventoryAffirmStatusEnum.NOT_STARTED.getValue());
list.add(projectLawsInventoryTemp);
ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO();
String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", "");
projectTaskInventoryEO.setId(projectTaskInventoryId);
projectTaskInventoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
projectTaskInventoryEOList.add(projectTaskInventoryEO);
}
super.saveBatch(list);
}
//项目任务清单数据初始化。
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
}
/**
@@ -270,6 +301,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
}
removeById(id);
this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(Arrays.asList(id.split(",")));
}
/**
@@ -290,6 +322,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
}
removeByIds(ids);
this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(ids);
}
/**
@@ -1478,6 +1511,65 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Override
public void exportData(HttpServletResponse response, HttpServletRequest request, ProjectLawsInventoryEO projectLawsInventoryEO) {
List<ProjectLawsInventoryEO> dataList = new ArrayList<>();
QueryWrapper<ProjectLawsInventoryEO> 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<OSSFile> fileInfos = getOssFiles(dataList);
//所有用户
List<SysUser> 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 +1577,247 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
public void importData(MultipartFile file, ProjectLawsInventoryEO projectLawsInventoryEO) {
}
/**
* 获取文件
* @param dataList
* @return
*/
private List<OSSFile> getOssFiles(List<ProjectLawsInventoryEO> dataList) {
List<String> fileIdList = new ArrayList<>();
List<String> design = new ArrayList<>();
List<String> prehomo = new ArrayList<>();
List<String> 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<OSSFile> fileInfos = new ArrayList<>();
if(fileIdList.size() != 0){
fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
}
return fileInfos;
}
/**
* 数据转换(文件名称,技术领域,对应标准)
* @param dataList
* @param fileInfos
*/
private void dataTransition(List<ProjectLawsInventoryEO> dataList,
List<OSSFile> fileInfos,
List<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<SysUser> 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<OSSFile> fileInfos, String value) {
StringBuilder sb = new StringBuilder();
for (String s : value.split(",")) {
List<OSSFile> 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<ProjectLawsInventoryEO> dataList,List<OSSFile> 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<OSSFile> designFileList = new ArrayList<>();
List<OSSFile> prehomoFileList = new ArrayList<>();
List<OSSFile> verifyFileList = new ArrayList<>();
List<OSSFile> 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());
}
}
}
}
}
}
@@ -276,6 +276,13 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
return new Result<>().success("提醒办理成功!");
}
@Override
public void deleteByProjectLawsInventoryIds(List<String> projectLawsInventoryIds) {
QueryWrapper<ProjectTaskInventoryEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().in(ProjectTaskInventoryEO::getProjectLawsInventoryId,projectLawsInventoryIds);
this.baseMapper.delete(deleteWrapper);
}
/**
* 创建任务清单列表数据
* @param projectTaskInventoryEOList