Przeglądaj źródła

feat: excel版报告导出4

李学松 2 lat temu
rodzic
commit
31a440f69a

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ExcelReportExportController.java

@@ -134,6 +134,11 @@ public class ExcelReportExportController {
 				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
 				opt.setErrorMsg(o.split(StrUtil.UNDERLINE)[1]);
 			}
+			// 生成失败的2
+			else if (!o.startsWith("http")) {
+				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+				opt.setErrorMsg(o);
+			}
 			// 成功的
 			else {
 				Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ReportExportController.java

@@ -283,6 +283,11 @@ public class ReportExportController {
 				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
 				opt.setErrorMsg(o.split(StrUtil.UNDERLINE)[1]);
 			}
+			// 生成失败的2
+			else if (!o.startsWith("http")) {
+				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+				opt.setErrorMsg(o);
+			}
 			// 成功的
 			else {
 				Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmReport.java

@@ -155,4 +155,10 @@ public class WmReport extends Model<WmReport> {
 	 */
 	@TableField(exist = false)
 	private WmReportOpt reportOpt;
+
+	/**
+	 * excel报告操作状态
+	 */
+	@TableField(exist = false)
+	private WmReportOpt excelReportOpt;
 }

+ 45 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -117,6 +117,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
 		for (WmReport report : records){
 
+			// word报告状态
 			WmReportOpt opt = new WmReportOpt();
 
 			// 获取生成记录
@@ -134,6 +135,11 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 					opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
 					opt.setErrorMsg(o.split(StrUtil.UNDERLINE)[1]);
 				}
+				// 生成失败的2
+				else if (!o.startsWith("http")) {
+					opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+					opt.setErrorMsg(o);
+				}
 				// 成功的
 				else {
 					Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);
@@ -149,6 +155,45 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			}
 			report.setReportOpt(opt);
 
+
+			// excel报告状态
+			WmReportOpt excelPpt = new WmReportOpt();
+
+			// 获取生成记录
+			String excelKey = String.format(CacheConstants.EXCEL_EXPORT_NB_REPORT_CACHE, report.getId());
+			String excelO = redisTemplate.opsForValue().get(excelKey);
+
+			if (StrUtil.isNotEmpty(excelO)) {
+
+				// 生成中的
+				if ("GENERATING".equals(excelO)) {
+					excelPpt.setStatus(WmReportOpt.WmReportOptStatus.GENERATING);
+				}
+				// 生成失败的
+				else if (excelO.startsWith("ERROR")) {
+					excelPpt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+					excelPpt.setErrorMsg(excelO.split(StrUtil.UNDERLINE)[1]);
+				}
+				// 生成失败的2
+				else if (!excelO.startsWith("http")) {
+					excelPpt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+					excelPpt.setErrorMsg(excelO);
+				}
+				// 成功的
+				else {
+					Long expire = redisTemplate.opsForValue().getOperations().getExpire(excelKey, TimeUnit.SECONDS);
+					excelPpt.setStatus(WmReportOpt.WmReportOptStatus.GENERATED);
+					excelPpt.setTtl(LocalDateTime.now().plusSeconds(expire));
+					// o = "https://pre.yaoyi.net/admin/sys-file/wmkj/兼职学术信息沟通专员业绩报告(2249)-20211116191527.doc";
+					excelPpt.setLatestUrl(excelO);
+				}
+
+
+			} else {
+				excelPpt.setStatus(WmReportOpt.WmReportOptStatus.NOT_GENERATE);
+			}
+			report.setExcelReportOpt(excelPpt);
+
 		}
 
 		return reportListPage;