POI 多图片导出

注释很详细,不多说

	@Override
	public void export(HttpServletResponse response,QmDefectsForm form, String key) {
		try {
			List<QmDefectsExportModel> qmDefectsesExports = new ArrayList<>();
			//获取列表数据
			List<QmDefects> list = page(null, form, key).getRecords();
			// 数据字典转换
			List<CodeInfo> status = getCodeManager().getCodes(CodeMasterConstants.DEFECTS_STATE);
			List<CodeInfo> severity = getCodeManager().getCodes(CodeMasterConstants.TEST_SEVERITY);
			List<CodeInfo> priority = getCodeManager().getCodes(CodeMasterConstants.DEFECTS_PRIORITY);
			List<CodeInfo> repetition = getCodeManager().getCodes(CodeMasterConstants.REPETITION_RATE);
			List<CodeInfo> types = getCodeManager().getCodes(CodeMasterConstants.DEFECT_TYPES);
			// 获取关联内容
			List<QmProjectCasesContent> casesContents = qmProjectCasesContentService.listByDataIds(list.stream().map(QmDefects::getId).collect(Collectors.toList()));
			// 获取经办人
			List<BaseUser> agentUsers = getMembership().findUserByIds(list.stream().filter(e -> null != e.getAgentId()).map(e -> e.getAgentId().toString()).distinct().collect(Collectors.toList()));
			// 获取报告人
			List<BaseUser> reportUsers = getMembership().findUserByIds(list.stream().filter(e -> null != e.getReporterId()).map(e -> e.getReporterId().toString()).distinct().collect(Collectors.toList()));
			IStoreManager storeManager = SiteContext.getBean(IStoreManager.class);
			int i = 1;
			if(list != null && !list.isEmpty()) {
				for(QmDefects qDefects : list) {
					QmDefectsExportModel qExport = new QmDefectsExportModel();
					BeanUtils.copyProperties(qDefects, qExport);
					qExport.setNumber(String.valueOf(i++));
					for (CodeInfo codeInfo : status) {
						if (codeInfo.getCode().equals(qExport.getStatus())) {
							qExport.setStatus(codeInfo.getText());
							break;
						}
					}
					for (CodeInfo codeInfo : severity) {
						if (codeInfo.getCode().equals(qExport.getSeverity())) {
							qExport.setSeverity(codeInfo.getText());
							break;
						}
					}
					for (CodeInfo codeInfo : priority) {
						if (codeInfo.getCode().equals(qExport.getPriority())) {
							qExport.setPriority(codeInfo.getText());
							break;
						}
					}
					for (CodeInfo codeInfo : repetition) {
						if (codeInfo.getCode().equals(qExport.getRepetition())) {
							qExport.setRepetition(codeInfo.getText());
							break;
						}
					}
					for (CodeInfo codeInfo : types) {
						if (codeInfo.getCode().equals(qExport.getTypes())) {
							qExport.setTypes(codeInfo.getText());
							break;
						}
					}
					// 时间转换
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					if(qDefects.getPlanStartTime() !=  null) {						
						qExport.setPlanStartTime(sdf.format(qDefects.getPlanStartTime()));
					}
					if(qDefects.getPlanEndTime() != null) {		
						qExport.setPlanEndTime(sdf.format(qDefects.getPlanEndTime()));
					}
					// 经办人账号
					if (null != qDefects.getAgentId()) {
						String agentId = qDefects.getAgentId().toString();
						BaseUser user = agentUsers.stream().filter(e -> agentId.equals(e.getUserId())).findFirst().get();
						qExport.setAgentAccount(StringUtil.isNotBlank(user.getEmployeeNo()) ? user.getEmployeeNo() : user.getUserCode());
					}
					// 记录人
					if (null != qDefects.getReporterId()) {
						String reporterId = qDefects.getReporterId().toString();
						BaseUser user = reportUsers.stream().filter(e -> reporterId.equals(e.getUserId())).findFirst().get();
						qExport.setReporterAccount(StringUtil.isNotBlank(user.getEmployeeNo()) ? user.getEmployeeNo() : user.getUserCode());
					}
					// 关联内容
					if(casesContents != null && !casesContents.isEmpty()) {
						List<String> defects = casesContents.stream().filter(e -> e.getDataId().equals(qDefects.getId()) && ConstTestModuleType.DEFFECT.getCode().equals(e.getDataType())).map(QmProjectCasesContent::getProjectCasesId).collect(Collectors.toList());
						qExport.setAssociatedUseDefects(String.join(StrConstants.SEPARATOR_COMMA, defects));
						List<String> cases = casesContents.stream().filter(e -> e.getDataId().equals(qDefects.getId()) && ConstTestModuleType.CASES.getCode().equals(e.getDataType())).map(QmProjectCasesContent::getProjectCasesId).collect(Collectors.toList());
						qExport.setAssociatedUseCases(String.join(StrConstants.SEPARATOR_COMMA, cases));
					}
					
					if(StringUtil.isNotBlank(qDefects.getAttachment())) {
						// 获取附件信息-----将json数据转换为leit集合
						List<Files> fList = JsonUtil.toList(qDefects.getAttachment(), Files.class);
						// 过滤图片
						List<Files>  flist = fList.stream().filter(e -> e.getFileType().startsWith("image")).collect(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值