Browse Source

feat: 新增企业任务类型66/67/68/69/70参数封装

lixuesong 1 năm trước cách đây
mục cha
commit
84c0fbc183

+ 41 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskController.java

@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -308,6 +309,46 @@ public class WmDeptTaskController {
         return R.ok();
     }
 
+	/**
+	 * 企业任务保存-缓存
+	 *
+	 * @param taskTypeId 任务类型
+	 * @param paramsStr 指定任务类型对应的参数
+	 * @return {@link R}<{@link ?}> 结果
+	 */
+	@SysLog("企业任务保存-缓存")
+	@PostMapping("/dept-task/save-temp/{taskTypeId}")
+	public R<?> saveEntTaskForTemp(@PathVariable("taskTypeId") String taskTypeId, @RequestBody String paramsStr) {
+		log.info("企业任务保存-缓存:taskTypeId={}, params={}", taskTypeId, paramsStr);
+
+		String cacheKey = String.format("%s-%s-%s", CacheConstants.ENT_TASK_CACHE_KEY, taskTypeId, SecurityUtils.getUser().getId());
+		redisTemplate.opsForValue().set(cacheKey, paramsStr);
+
+		return R.ok();
+	}
+
+	/**
+	 * 企业任务保存
+	 *
+	 * @param taskTypeId 任务类型
+	 * @param paramsStr 指定任务类型对应的参数
+	 * @return {@link R}<{@link ?}> 结果
+	 */
+	@SysLog("企业任务保存-缓存")
+	@PostMapping("/dept-task/save/{taskTypeId}")
+	public R<?> saveEntTask(@PathVariable("taskTypeId") String taskTypeId, @RequestBody String paramsStr) {
+		log.info("企业任务保存:taskTypeId={}, params={}", taskTypeId, paramsStr);
+		boolean b = Arrays.stream(DeptTaskDTO.DeptTaskTypeParam.values())
+				.map(DeptTaskDTO.DeptTaskTypeParam::getType)
+				.anyMatch(type -> StrUtil.equals(type, taskTypeId));
+		if (!b) {
+			return R.failed("不支持的企业任务类型");
+		}
+		// TODO
+
+		return R.ok();
+	}
+
     /**
      * 获取企业任务保存缓存数据
      *

+ 317 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/DeptTaskDTO.java

@@ -1,11 +1,14 @@
 package com.qunzhixinxi.hnqz.admin.entity.dto;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.Getter;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -234,6 +237,286 @@ public class DeptTaskDTO implements Serializable {
         private String meetingSummary;
     }
 
+	/**
+	 * 任务类型66-医院准入
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/10
+	 */
+	@Data
+	public static class TaskType66 implements Serializable {
+		private static final long serialVersionUID = -7268001509315036318L;
+
+		/**
+		 * 积分包id
+		 */
+		@NotBlank(message = "积分包id必填")
+		private String packageId;
+
+		/**
+		 * 推广产品名称
+		 */
+		@NotBlank(message = "推广产品名称必填")
+		private String productName;
+
+		/**
+		 * 医院等级
+		 */
+		@NotBlank(message = "医院等级必填")
+		private String hospitalLevel;
+
+		/**
+		 * 产品进入形式
+		 */
+		@NotBlank(message = "产品进入形式必填")
+		private String entryForm;
+
+		/**
+		 * 预期销售量
+		 */
+		@NotBlank(message = "预期销售量必填")
+		private String expectedSales;
+
+		/**
+		 * 负责人
+		 */
+		@NotBlank(message = "负责人必填")
+		private String leader;
+
+		/**
+		 * 中标通知书
+		 */
+		@NotEmpty(message = "中标通知书必填")
+		private List<FileUrlObj> noticeUrl;
+
+		/**
+		 * 购销合同
+		 */
+		@NotEmpty(message = "购销合同必填")
+		private List<FileUrlObj> contractsUrl;
+
+		/**
+		 * 合同金额
+		 */
+		@NotNull(message = "合同金额必填")
+		private BigDecimal contractsAmount;
+
+		/**
+		 * 发票上传
+		 */
+		@NotEmpty(message = "发票上传必填")
+		private List<FileUrlObj> invoiceUrl;
+
+		/**
+		 * 会议总结
+		 */
+		private String summary;
+	}
+
+	/**
+	 * 任务类型67-招投标服务
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/10
+	 */
+	@Data
+	public static class TaskType67 implements Serializable {
+		private static final long serialVersionUID = -9203744525584265085L;
+
+		/**
+		 * 积分包id
+		 */
+		@NotBlank(message = "积分包id必填")
+		private String packageId;
+
+		/**
+		 * 推广产品名称
+		 */
+		@NotBlank(message = "推广产品名称必填")
+		private String productName;
+
+		/**
+		 * 招标计划书
+		 */
+		@NotEmpty(message = "招标计划书必填")
+		private List<FileUrlObj> tenderProposalUrl;
+
+		/**
+		 * 招标目录
+		 */
+		@NotEmpty(message = "招标目录必填")
+		private List<FileUrlObj> tendersCatalogueUrl;
+
+		/**
+		 * 标书
+		 */
+		@NotEmpty(message = "标书必填")
+		private List<FileUrlObj> tenderUrl;
+
+		/**
+		 * 投标资料清单
+		 */
+		@NotEmpty(message = "投标资料清单必填")
+		private List<FileUrlObj> informationListUrl;
+
+		/**
+		 * 产品投标及报价
+		 */
+		@NotEmpty(message = "产品投标及报价必填")
+		private List<FileUrlObj> quoteUrl;
+
+		/**
+		 * 招标活动总结表
+		 */
+		@NotEmpty(message = "招标活动总结表必填")
+		private List<FileUrlObj> summaryTableUrl;
+
+		/**
+		 * 会议总结
+		 */
+		private String summary;
+	}
+
+	/**
+	 * 任务类型68/69-商业推广会/商业渠道维护
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/10
+	 */
+	@Data
+	public static class TaskType68_69 implements Serializable {
+		private static final long serialVersionUID = 3437372981272089491L;
+
+		/**
+		 * 积分包id
+		 */
+		@NotBlank(message = "积分包id必填")
+		private String packageId;
+
+		/**
+		 * 推广产品名称
+		 */
+		@NotBlank(message = "推广产品名称必填")
+		private String productName;
+
+		/**
+		 * 会议时间
+		 */
+		@NotBlank(message = "会议时间必填")
+		private String meetingTime;
+
+		/**
+		 * 会议地点
+		 */
+		@NotBlank(message = "会议地点必填")
+		private String meetingPlace;
+
+		/**
+		 * 会议计划表
+		 */
+		@NotEmpty(message = "会议计划表必填")
+		private List<FileUrlObj> meetingPlanUrl;
+
+		/**
+		 * 会议通知/邀请函
+		 */
+		@NotEmpty(message = "会议通知/邀请函必填")
+		private List<FileUrlObj> meetingInvitationUrl;
+
+		/**
+		 * 签到表
+		 */
+		@NotEmpty(message = "签到表必填")
+		private List<FileUrlObj> meetingCheckInUrl;
+
+		/**
+		 * 会议照片
+		 */
+		@NotEmpty(message = "会议照片必填")
+		private List<FileUrlObj> meetingPhotosUrl;
+
+		/**
+		 * 宣传资料使用清单
+		 */
+		@NotEmpty(message = "宣传资料使用清单必填")
+		private List<FileUrlObj> promotionalMaterialsUrl;
+
+		/**
+		 * 发票上传
+		 */
+		@NotEmpty(message = "发票上传必填")
+		private List<FileUrlObj> invoiceUrl;
+
+		/**
+		 * 会议纪要或总结
+		 */
+		private String summary;
+	}
+
+	/**
+	 * 任务类型70-第三方专项合同
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/10
+	 */
+	@Data
+	public static class TaskType70 implements Serializable {
+		private static final long serialVersionUID = -4614288064808194504L;
+
+		/**
+		 * 积分包id
+		 */
+		@NotBlank(message = "积分包id必填")
+		private String packageId;
+
+		/**
+		 * 项目名称
+		 */
+		@NotBlank(message = "项目名称必填")
+		private String projectName;
+
+		/**
+		 * 甲方名称
+		 */
+		@NotBlank(message = "甲方名称必填")
+		private String partAName;
+
+		/**
+		 * 乙方名称
+		 */
+		@NotBlank(message = "乙方名称必填")
+		private String partBName;
+
+		/**
+		 * 项目简介
+		 */
+		@NotBlank(message = "项目简介必填")
+		private String introduction;
+
+		/**
+		 * 合同金额
+		 */
+		@NotNull(message = "合同金额必填")
+		private BigDecimal contractsAmount;
+
+		/**
+		 * 合同上传
+		 */
+		@NotEmpty(message = "合同上传必填")
+		private List<FileUrlObj> contractsUrl;
+
+		/**
+		 * 发票上传
+		 */
+		@NotEmpty(message = "发票上传必填")
+		private List<FileUrlObj> invoiceUrl;
+
+		/**
+		 * 总结
+		 */
+		private String summary;
+	}
+
     /**
      * 文件 URL obj
      *
@@ -249,4 +532,38 @@ public class DeptTaskDTO implements Serializable {
         private String url;
     }
 
+	/**
+	 * 任务类型参数枚举
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/10
+	 */
+	@Getter
+	@AllArgsConstructor
+	public enum DeptTaskTypeParam {
+		TASK_TYPE_61("61", "企业通用", TaskType61.class),
+		TASK_TYPE_62("62", "医学会各级年会及卫星会", TaskType62.class),
+		TASK_TYPE_63("63", "专家共识巡讲会", TaskType63.class),
+		TASK_TYPE_66("66", "医院准入", TaskType66.class),
+		TASK_TYPE_67("67", "招投标服务", TaskType67.class),
+		TASK_TYPE_68("68", "商业推广会", TaskType68_69.class),
+		TASK_TYPE_69("69", "商业渠道维护", TaskType68_69.class),
+		TASK_TYPE_70("70", "第三方专项合同", TaskType70.class);
+
+		/**
+		 * 类型
+		 */
+		private final String type;
+
+		/**
+		 * 描述
+		 */
+		private final String desc;
+
+		/**
+		 * class类型
+		 */
+		private final Class<?> clazz;
+	}
+
 }