Sfoglia il codice sorgente

feat: exportNba to mq

shc 3 anni fa
parent
commit
fcd8d91791

+ 1 - 0
hnqz-common/hnqz-common-mq/pom.xml

@@ -11,6 +11,7 @@
 
 	<artifactId>hnqz-common-mq</artifactId>
 	<description>消息队列</description>
+	<version>3.9.0</version>
 
 	<dependencies>
 		<!-- 核心模块 -->

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

@@ -78,5 +78,6 @@ public interface CacheConstants {
 	 * zb报告导出缓存
 	 */
 	String EXPORT_ZB_REPORT_CACHE = "export:zb_report:%s";
+	String EXPORT_NBA_REPORT_CACHE = "export:nba_report:%s";
 
 }

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

@@ -9,10 +9,11 @@ package com.qunzhixinxi.hnqz.admin.api.constant;
  * @version 1.0.0
  * @date 2021/11/17 11:21
  */
-public class MqConstants {
+public interface MqConstants {
 
 	/**
 	 * 众包队列
 	 */
 	String DIRECT_MODE_REPORT_EXPORT_ZB_QUEUE = "direct_mode_report_export_zb_queue";
+	String DIRECT_MODE_REPORT_EXPORT_NBA_QUEUE = "direct_mode_report_export_nba_queue";
 }

+ 59 - 13
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskController.java

@@ -29,9 +29,12 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.plugin.excel.annotation.RequestExcel;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
 import com.qunzhixinxi.hnqz.admin.entity.AuditEntity;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
@@ -61,9 +64,12 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
+import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
 import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -71,6 +77,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -146,6 +153,9 @@ public class WmTaskController {
 
 	private final SysFileService sysFileService;
 
+	private final RabbitMqClient rabbitMqClient;
+	private final RedisTemplate<String,String> redisTemplate;
+
 	/**
 	 * 分页查询
 	 *
@@ -1203,6 +1213,34 @@ public class WmTaskController {
 		return R.ok(wmTaskService.selectSettleTask(page, wmTask));
 	}
 
+	// /**
+	//  * 任务中心--导出汇总或详情
+	//  *
+	//  * @param wmScorePackage
+	//  * @return
+	//  * @throws IOException
+	//  */
+	// @GetMapping("/exportNba")
+	// public R exportNba(WmScorePackage wmScorePackage) throws IOException {
+	// 	wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
+	// 	List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
+	// 	//更新任务表审批意见
+	// 	WmTask wmTask = new WmTask();
+	// 	wmTask.setDelFlag("0");
+	// 	wmTask.setEnableFlag("0");
+	//
+	// 	if (null == taskList || taskList.size() <= 0) {
+	// 		return R.failed("未查询到该报告关联的审批通过的任务");
+	// 	}
+	// 	String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
+	// 	wmTask.setScorePackageId(wmScorePackage.getId());
+	// 	wmTask.setId(ids);
+	//
+	// 	return reportExportService.exportNba(wmTask, wmScorePackage);//报告汇总
+	//
+	//dddd
+	// }
+
 	/**
 	 * 任务中心--导出汇总或详情
 	 *
@@ -1211,26 +1249,34 @@ public class WmTaskController {
 	 * @throws IOException
 	 */
 	@GetMapping("/exportNba")
-	public R exportNba(WmScorePackage wmScorePackage) throws IOException {
-		wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
-		List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
-		//更新任务表审批意见
-		WmTask wmTask = new WmTask();
-		wmTask.setDelFlag("0");
-		wmTask.setEnableFlag("0");
+	public R<?> exportNba(WmScorePackage wmScorePackage) throws IOException {
+
+		String key = String.format(CacheConstants.EXPORT_NBA_REPORT_CACHE,wmScorePackage.getId());
+
+		String o = redisTemplate.opsForValue().get(key);
+
+		if (StringUtils.isNotEmpty(o) && WmReportOpt.WmReportOptStatus.GENERATING.name().equals(o)){
+
+			return R.failed("已有在途生成记录,能耐心等待");
 
-		if (null == taskList || taskList.size() <= 0) {
-			return R.failed("未查询到该报告关联的审批通过的任务");
 		}
-		String ids = taskList.stream().map(WmTask::getId).collect(Collectors.joining(","));
-		wmTask.setScorePackageId(wmScorePackage.getId());
-		wmTask.setId(ids);
 
-		return reportExportService.exportNba(wmTask, wmScorePackage);//报告汇总
 
+		HnqzUser user = SecurityUtils.getUser();
+		BaseMap map = new BaseMap();
+		map.put("requestBody",JSONUtil.toJsonStr(wmScorePackage));
+		map.put("username",user.getUsername());
+		map.put("deptId",user.getDeptId());
+
+		rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_REPORT_EXPORT_NBA_QUEUE,map);
 
+		redisTemplate.opsForValue().set(key, WmReportOpt.WmReportOptStatus.GENERATING.name());
+
+		return R.ok("开始导出,请耐心等待");
 	}
 
+
+
 	/**
 	 * 结算包--获取任务详情
 	 *