浏览代码

feat: 新版excelNBA报告导出-下个版本实现

lixuesong 1 年之前
父节点
当前提交
31d9683e9e

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

@@ -96,6 +96,8 @@ public interface CacheConstants {
 	String EXCEL_EXPORT_NB_REPORT_CACHE = "excel_export:nb_report:%s";
 	String EXCEL_EXPORT_NB_REVIEW_REPORT_CACHE = "excel_export:nb_review_report:%s";
 
+	String NEW_EXCEL_NBA_REPORT_CACHE = "new_excel_export:nba_report:%s";
+
 
 	Long DEF_REPORT_CREATING_TTL = 24L * 60 * 60 * 1000;
 

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

@@ -31,6 +31,8 @@ public interface MqConstants {
 	String DIRECT_MODE_EXCEL_REPORT_EXPORT_NB_QUEUE = "direct_mode_excel_report_export_nb_queue";
 	String DIRECT_MODE_EXCEL_REPORT_EXPORT_NB_REVIEW_QUEUE = "direct_mode_excel_report_export_nb_review_queue";
 
+	String DIRECT_MODE_NEW_EXCEL_NBA_REPORT_EXPORT_QUEUE = "direct_mode_new_excel_nba_report_export_queue";
+
 	/**
 	 * gig服务队列
 	 */

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

@@ -4,16 +4,21 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.WmReportOpt;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
+import com.qunzhixinxi.hnqz.admin.entity.ReportHandlerDeptRelation;
 import com.qunzhixinxi.hnqz.admin.entity.WmReport;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmPackageExportApiInput;
+import com.qunzhixinxi.hnqz.admin.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.mapper.ReportHandlerDeptRelationMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
 import com.qunzhixinxi.hnqz.admin.service.*;
 import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -59,6 +64,9 @@ public class ReportExportController {
 
 	private final SysDeptService sysDeptService;
 
+	private final WmScorePackageMapper scorePackageMapper;
+	private final ReportHandlerDeptRelationMapper reportHandlerDeptRelationMapper;
+
 	private final JavaMailSender sender;
 
 	private final UpmsConfig upmsConfig;
@@ -605,6 +613,14 @@ public class ReportExportController {
 	 */
 	@GetMapping("/new-nba-export")
 	public R<?> newNbaExport(WmScorePackage wmScorePackage) {
+		WmScorePackage scorePackage = scorePackageMapper.selectById(wmScorePackage.getId());
+		// 查询是否配置了模板
+		int count = reportHandlerDeptRelationMapper.selectCount(Wrappers.<ReportHandlerDeptRelation>lambdaQuery()
+				.eq(ReportHandlerDeptRelation::getDetpId, scorePackage.getDeptId())
+				.eq(ReportHandlerDeptRelation::getReportType, ReportTypeEnum.NEW_NBA.getType()));
+		if (count <= 0) {
+			return R.failed("该企业未配置模板");
+		}
 
 		String key = String.format(CacheConstants.NEW_NBA_REPORT_CACHE, wmScorePackage.getId());
 
@@ -627,4 +643,42 @@ public class ReportExportController {
 		return R.ok("开始导出,请耐心等待");
 	}
 
+	/**
+	 * 新版excel版的导出 TODO 报告部分下个版本实现
+	 *
+	 * @param wmScorePackage 积分包
+	 * @return 结果
+	 */
+	@GetMapping("/new-excel-export")
+	public R<?> newExcelExport(WmScorePackage wmScorePackage) {
+		WmScorePackage scorePackage = scorePackageMapper.selectById(wmScorePackage.getId());
+		// 查询是否配置了模板
+		int count = reportHandlerDeptRelationMapper.selectCount(Wrappers.<ReportHandlerDeptRelation>lambdaQuery()
+				.eq(ReportHandlerDeptRelation::getDetpId, scorePackage.getDeptId())
+				.eq(ReportHandlerDeptRelation::getReportType, ReportTypeEnum.NEW_NBA.getType()));
+		if (count <= 0) {
+			return R.failed("该企业未配置模板");
+		}
+
+		String key = String.format(CacheConstants.NEW_EXCEL_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_EXCEL_NBA_REPORT_EXPORT_QUEUE, map);
+
+		redisTemplate.opsForValue().set(key, WmReportOpt.WmReportOptStatus.GENERATING.name(),
+				CacheConstants.DEF_REPORT_CREATING_TTL , TimeUnit.MILLISECONDS);
+
+		return R.ok("开始导出,请耐心等待");
+	}
+
 }

+ 64 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/ReportHandlerDeptRelation.java

@@ -0,0 +1,64 @@
+package com.qunzhixinxi.hnqz.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 导出报告处理类和企业关系表
+ * @TableName report_handler_dept_relation
+ */
+@TableName(value ="report_handler_dept_relation")
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ReportHandlerDeptRelation extends Model<ReportHandlerDeptRelation> {
+
+    private static final long serialVersionUID = -6670565273513991743L
+            ;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 报告类型
+     */
+    private String reportType;
+
+    /**
+     * 企业id
+     */
+    private Integer detpId;
+
+    /**
+     * 处理类
+     */
+    private String handlerClass;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private Integer createUser;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 更新人
+     */
+    private Integer updateUser;
+
+}

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

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

+ 42 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/ReportTypeEnum.java

@@ -0,0 +1,42 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author: lixuesong
+ * @createTime: 2022/11/25 9:53
+ * @description: 报告类型
+ */
+@Getter
+@AllArgsConstructor
+public enum ReportTypeEnum {
+
+    /**
+     * 报告类型
+     */
+    ZB("ZB", "个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告"),
+    ZB_REVIEW("ZB_REVIEW", "个人承接任务-按积分值-待审核"),
+    NBA("NBA", "企业承接任务的报告、任务中心单的报告"),
+    NB("NB", "结算报告管理,结算报告审批的报告"),
+    NB_REVIEW("NB_REVIEW", "结算报告审批-待审核"),
+    EXCEL_ZB("EXCEL_ZB", "excel版个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告"),
+    EXCEL_ZB_REVIEW("EXCEL_ZB_REVIEW", "excel版个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告"),
+    EXCEL_NBA("EXCEL_NBA", "excel版企业承接任务的报告、任务中心单的报告"),
+    EXCEL_NB("EXCEL_NB", "excel版结算报告管理,结算报告审批的报告"),
+    EXCEL_NB_REVIEW("EXCEL_NB_REVIEW", "excel版结算报告管理,结算报告审批的报告"),
+
+    NEW_NBA("NEW_NB", "新版企业承接任务的报告、任务中心单的报告");
+
+    /**
+     * 报告类型
+     */
+    private final String type;
+
+    /**
+     * 说明
+     */
+    private final String desc;
+
+
+}

+ 20 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/ReportHandlerDeptRelationMapper.java

@@ -0,0 +1,20 @@
+package com.qunzhixinxi.hnqz.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.entity.ReportHandlerDeptRelation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author lixuesong
+ * @description 针对表【report_handler_dept_relation(导出报告处理类和企业关系表)】的数据库操作Mapper
+ * @createDate 2022-11-25 09:01:19
+ * @Entity com.qunzhixinxi.hnqz.admin.entity.ReportHandlerDeptRelation
+ */
+@Mapper
+public interface ReportHandlerDeptRelationMapper extends BaseMapper<ReportHandlerDeptRelation> {
+
+}
+
+
+
+

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

@@ -2727,6 +2727,10 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		WmReportOpt newReportOpt = this.getNewReportOpt(wmScorePackage, CacheConstants.NEW_NBA_REPORT_CACHE);
 		wmScorePackage.setNewReportOpt(newReportOpt);
 
+		// 封装新版excel报告状态
+		WmReportOpt newExcelReportOpt = this.getNewReportOpt(wmScorePackage, CacheConstants.NEW_EXCEL_NBA_REPORT_CACHE);
+		wmScorePackage.setNewExcelReportOpt(newExcelReportOpt);
+
 		// 企业大包终止条件判断
 		int relatedPackageCount = this.count(Wrappers.<WmScorePackage>lambdaQuery()
 				.eq(WmScorePackage::getRelationScoreId, wmScorePackage.getId())