Browse Source

feat: 封装错误信息

shc 3 years ago
parent
commit
bcd36b283b

+ 12 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmReportOpt.java

@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.api.entity;
 
 import cn.hutool.core.date.DatePattern;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -26,14 +27,22 @@ public class WmReportOpt {
 	/**
 	 * 最近可用
 	 */
+	@JsonInclude(JsonInclude.Include.NON_NULL)
 	private String latestUrl;
 
 	/**
 	 * 当前报告最后可用下载时间
 	 */
+	@JsonInclude(JsonInclude.Include.NON_NULL)
 	@JsonFormat(pattern = DatePattern.CHINESE_DATE_TIME_PATTERN)
 	private LocalDateTime ttl;
 
+	/**
+	 * 失败信息
+	 */
+	@JsonInclude(JsonInclude.Include.NON_NULL)
+	private String errorMsg;
+
 
 	public enum WmReportOptStatus {
 		// 未生成
@@ -41,6 +50,8 @@ public class WmReportOpt {
 		// 生成中
 		GENERATING,
 		// 已生成
-		GENERATED;
+		GENERATED,
+		// 生成失败
+		ERROR;
 	}
 }

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

@@ -80,7 +80,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 	private final WmDaDistributionService wmDaDistributionService;
 	private final WmDaPharmacyService wmDaPharmacyService;
 	private final WmDaHospitalService wmDaHospitalService;
-	private final RedisTemplate<String,Object> redisTemplate;
+	private final RedisTemplate<String,String> redisTemplate;
 
 	@Override
 	public IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name){
@@ -94,14 +94,27 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
 			// 获取生成记录
 			String key = String.format(CacheConstants.EXPORT_NB_REPORT_CACHE, report.getScoreId());
-			String o = (String) redisTemplate.opsForValue().get(key);
+			String o = redisTemplate.opsForValue().get(key);
 
 			if (StrUtil.isNotEmpty(o)) {
 
-				Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);
-				opt.setStatus(WmReportOpt.WmReportOptStatus.GENERATED);
-				opt.setTtl(LocalDateTime.now().plusSeconds(expire));
-				opt.setLatestUrl(o);
+				// 生成中的
+				if ("GENERATING".equals(o)) {
+					opt.setStatus(WmReportOpt.WmReportOptStatus.GENERATING);
+				}
+				// 生成失败的
+				else if (o.startsWith("ERROR")) {
+					opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+					opt.setErrorMsg(o.split(StrUtil.UNDERLINE)[1]);
+				}
+				// 成功的
+				else {
+					Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);
+					opt.setStatus(WmReportOpt.WmReportOptStatus.GENERATED);
+					opt.setTtl(LocalDateTime.now().plusSeconds(expire));
+					// o = "https://pre.yaoyi.net/admin/sys-file/wmkj/兼职学术信息沟通专员业绩报告(2249)-20211116191527.doc";
+					opt.setLatestUrl(o);
+				}
 
 
 			} else {

+ 10 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -272,7 +272,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		IPage<WmScorePackage> list1 = wmScorePackageMapper.getExportPackageTotalList1(page, wmScorePackage);
 		List<WmScorePackage> records = list1.getRecords();
 
-		for (WmScorePackage scorePackage : records){
+		for (WmScorePackage scorePackage : records) {
 
 			scorePackage.setReportMqName(CacheConstants.EXPORT_ZB_REPORT_CACHE);
 			this.getReportOpt(scorePackage);
@@ -2269,9 +2269,16 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		if (StrUtil.isNotEmpty(o)) {
 
 			// 生成中的
-			if ("GENERATING".equals(o)){
+			if ("GENERATING".equals(o)) {
 				opt.setStatus(WmReportOpt.WmReportOptStatus.GENERATING);
-			} else {
+			}
+			// 生成失败的
+			else if (o.startsWith("ERROR")) {
+				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+				opt.setErrorMsg(o.split(StrUtil.UNDERLINE)[1]);
+			}
+			// 成功的
+			else {
 				Long expire = redisTemplate.opsForValue().getOperations().getExpire(key, TimeUnit.SECONDS);
 				opt.setStatus(WmReportOpt.WmReportOptStatus.GENERATED);
 				opt.setTtl(LocalDateTime.now().plusSeconds(expire));