Sfoglia il codice sorgente

feat: 新版NBA报告导出

lixuesong 1 anno fa
parent
commit
0a62176475

+ 2 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/CacheConstants.java

@@ -84,6 +84,8 @@ public interface CacheConstants {
 	String EXPORT_NB_REPORT_CACHE = "export:nb_report:%s";
 	String EXPORT_NB_REVIEW_REPORT_CACHE = "export:nb_review_report:%s";
 
+	String NEW_NBA_REPORT_CACHE = "new_export:nba_report:%s";
+
 	/**
 	 * excel报告导出缓存
 	 */

+ 2 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/MqConstants.java

@@ -21,6 +21,8 @@ public interface MqConstants {
 	String DIRECT_MODE_REPORT_EXPORT_NB_QUEUE = "direct_mode_report_export_nb_queue";
 	String DIRECT_MODE_REPORT_EXPORT_NB_REVIEW_QUEUE = "direct_mode_report_export_nb_review_queue";
 
+	String DIRECT_MODE_NEW_NBA_REPORT_EXPORT_QUEUE = "direct_mode_new_nba_report_export_queue";
+
 	// excel报告导出队列
 	String DIRECT_MODE_EXCEL_REPORT_EXPORT_ZB_QUEUE = "direct_mode_excel_report_export_zb_queue";
 	String DIRECT_MODE_EXCEL_REPORT_EXPORT_ZB_REVIEW_QUEUE = "direct_mode_excel_report_export_zb_review_queue";

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

@@ -597,4 +597,34 @@ public class ReportExportController {
 	}
 
 
+	/**
+	 * 企业承接任务的导出、任务中心单的导出
+	 *
+	 * @param wmScorePackage 积分包
+	 * @return 结果
+	 */
+	@GetMapping("/new-nba-export")
+	public R<?> newNbaExport(WmScorePackage wmScorePackage) {
+
+		String key = String.format(CacheConstants.NEW_NBA_REPORT_CACHE, wmScorePackage.getId());
+
+		String o = redisTemplate.opsForValue().get(key);
+
+		if (StringUtils.isNotEmpty(o) && WmReportOpt.WmReportOptStatus.GENERATING.name().equals(o)){
+
+			return R.failed("已有在途生成记录,能耐心等待");
+
+		}
+
+		BaseMap map = new BaseMap();
+		map.put("requestBody", JSONUtil.toJsonStr(wmScorePackage));
+
+		rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_NEW_NBA_REPORT_EXPORT_QUEUE, map);
+
+		redisTemplate.opsForValue().set(key, WmReportOpt.WmReportOptStatus.GENERATING.name(),
+				CacheConstants.DEF_REPORT_CREATING_TTL , TimeUnit.MILLISECONDS);
+
+		return R.ok("开始导出,请耐心等待");
+	}
+
 }

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

@@ -443,6 +443,12 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	@TableField(exist = false)
 	private WmReportOpt reportOpt;
 
+	/**
+	 * 新版报告-报告操作状态
+	 */
+	@TableField(exist = false)
+	private WmReportOpt newReportOpt;
+
 	/**
 	 * 报告队列名
 	 */

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmScorePackageService.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmScorePackageVO;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
@@ -184,6 +185,15 @@ public interface WmScorePackageService extends IService<WmScorePackage> {
 	 */
 	void getExcelReportOpt(WmScorePackage wmScorePackage, String excelReportCacheKey);
 
+	/**
+	 * 查询新版报告导出状态
+	 *
+	 * @param wmScorePackage 积分包
+	 * @param reportCacheKey 缓存key
+	 * @return 状态结果
+	 */
+	WmReportOpt getNewReportOpt(WmScorePackage wmScorePackage, String reportCacheKey);
+
 	/**
 	 * 校验积分包是否可以结算
 	 * @param pkg 基本包

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

@@ -2723,6 +2723,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		// 封装excel报告状态
 		this.getExcelReportOpt(wmScorePackage, CacheConstants.EXCEL_EXPORT_NBA_REPORT_CACHE);
 
+		// 封装新版报告状态
+		this.getNewReportOpt(wmScorePackage, CacheConstants.NEW_NBA_REPORT_CACHE);
+
 		// 企业大包终止条件判断
 		int relatedPackageCount = this.count(Wrappers.<WmScorePackage>lambdaQuery()
 				.eq(WmScorePackage::getRelationScoreId, wmScorePackage.getId())
@@ -2832,6 +2835,53 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
 	}
 
+	/**
+	 * 查询新版报告导出状态
+	 *
+	 * @param wmScorePackage 积分包
+	 * @param reportCacheKey 缓存key
+	 * @return 状态结果
+	 */
+	@Override
+	public WmReportOpt getNewReportOpt(WmScorePackage wmScorePackage, String reportCacheKey) {
+		WmReportOpt opt = new WmReportOpt();
+
+		// 获取生成记录
+		String key = String.format(reportCacheKey, wmScorePackage.getId());
+		String o = redisTemplate.opsForValue().get(key);
+
+		if (StrUtil.isNotEmpty(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]);
+			}
+			// 生成失败的2
+			else if (!o.startsWith("http")) {
+				opt.setStatus(WmReportOpt.WmReportOptStatus.ERROR);
+				opt.setErrorMsg(o);
+			}
+			// 成功的
+			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 {
+			opt.setStatus(WmReportOpt.WmReportOptStatus.NOT_GENERATE);
+		}
+
+		return opt;
+	}
+
 	/**
 	 * 校验积分包是否可以结算
 	 *