Ver Fonte

feat: 任务类型分类表 替换写死的数据

李学松 há 2 anos atrás
pai
commit
e301698dc4

+ 105 - 93
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDeptTaskTypeConfigServiceImpl.java

@@ -11,15 +11,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
-import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
-import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeConfig;
-import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
-import com.qunzhixinxi.hnqz.admin.entity.WmTeam;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
+import com.qunzhixinxi.hnqz.admin.entity.*;
 import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigJsonDTO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
@@ -27,13 +23,7 @@ import com.qunzhixinxi.hnqz.admin.enums.DeptLevelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
-import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.WmDeptTaskTypeConfigMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.admin.mapper.WmTeamMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.*;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
@@ -43,12 +33,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -78,10 +65,14 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 
 	private final WmTeamMapper wmTeamMapper;
 
+	private final WmTaskTypeSubCate2Mapper wmTaskTypeSubCate2Mapper;
+
+	private final SysDictItemMapper sysDictItemMapper;
+
 	/**
 	 * 兼职学术专员启用的任务类型
 	 */
-	private final String[] ENABLE_ZBDB_STATUS_ARR = {"医院拜访", "商业公司拜访", "药店拜访", "电子名片分享", "产品相册分享", "学术信息交流",
+	private static String[] ENABLE_ZBDB_STATUS_ARR = {"医院拜访", "商业公司拜访", "药店拜访", "电子名片分享", "产品相册分享", "学术信息交流",
 			"受众打开产品相册", "受众阅读文章"};
 
 	/**
@@ -89,79 +80,100 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 	 */
 	private static Map<String, List<String>> BASE_TASK_TYPE_MAP = new LinkedHashMap<>();
 
-	// TODO 由表wm_dept_task_type 替换进行维护
-	static {
-		List<String> meetingList = new ArrayList<String>() {{
-			add("医院科室推广会");
-			add("区域学术沙龙");
-			add("城市卫星会");
-			add("省级学科年会");
-		}};
-		BASE_TASK_TYPE_MAP.put("会议举办", meetingList);
-
-		List<String> interviewList = new ArrayList<String>() {{
-			add("一对一专访");
-		}};
-		BASE_TASK_TYPE_MAP.put("一对一专访", interviewList);
-
-		List<String> customerList = new ArrayList<String>() {{
-			add("医院拜访");
-			add("商业公司拜访");
-			add("药店拜访");
-		}};
-		BASE_TASK_TYPE_MAP.put("客户拜访", customerList);
-
-		List<String> producrList = new ArrayList<String>() {{
-			add("产品相册分享");
-			add("受众打开产品相册");
-			add("电子名片分享");
-		}};
-		BASE_TASK_TYPE_MAP.put("产品推广", producrList);
-
-		List<String> academicList = new ArrayList<String>() {{
-			add("学术信息交流");
-			add("受众阅读文章");
-		}};
-		BASE_TASK_TYPE_MAP.put("学术信息交流", academicList);
-
-		List<String> marketList = new ArrayList<String>() {{
-			add("政策信息收集");
-			add("竞品信息收集");
-			add("库存信息收集");
-			add("医院信息收集");
-			add("商业公司信息收集");
-			add("药物警戒相关信息收集(疗效等)");
-			add("药店调查");
-			add("库存盘点-中药颗粒剂");
-		}};
-		BASE_TASK_TYPE_MAP.put("市场信息收集", marketList);
-
-		List<String> medicineList = new ArrayList<String>() {{
-			add("专家咨询");
-			add("受试者管理");
-			add("医学撰写");
-			add("受试者招募");
-			add("数据管理");
-			add("统计分析");
-			add("临床监察");
-			add("调剂服务");
-			add("应收账款回款-A类");
-			add("应收账款回款-B类");
-			add("应收账款回款-C类");
-			add("手术跟台-一级");
-			add("手术跟台-二级");
-			add("手术跟台-三级");
-			add("物流信息收集");
-			add("设备保养");
-		}};
-		BASE_TASK_TYPE_MAP.put("专项服务", medicineList);
-
-		List<String> trainingList = new ArrayList<String>() {{
-			add("医院患者教育培训");
-			add("药店药师培训");
-			add("商业公司培训");
-		}};
-		BASE_TASK_TYPE_MAP.put("培训", trainingList);
+	/**
+	 * 初始化参数
+	 */
+	@PostConstruct
+	public void initParams() {
+		// 初始化兼职学术专员启用的任务类型
+		List<SysDictItem> enableZbdbStatusTaskType = sysDictItemMapper.selectList(Wrappers.<SysDictItem>lambdaQuery()
+				.eq(SysDictItem::getType, "enable_zbdb_status_task_type"));
+		ENABLE_ZBDB_STATUS_ARR = enableZbdbStatusTaskType.stream()
+				.map(SysDictItem::getLabel).toArray(String[]::new);
+
+		// 初始化任务类型Map
+		// 查询任务类型分类表
+		List<WmTaskTypeSubCate2> list = wmTaskTypeSubCate2Mapper.selectList(Wrappers.emptyWrapper());
+		// key-任务类型父类型, value-任务类型名称列表
+		BASE_TASK_TYPE_MAP = list.stream()
+				.collect(
+						Collectors.groupingBy(
+								subCate2 -> UpmsType.TaskSubCategory2.valueOf(subCate2.getSubCate()).getDescription(),
+								Collectors.mapping(WmTaskTypeSubCate2::getTypeName, Collectors.toList())
+						)
+				);
+
+//		List<String> meetingList = new ArrayList<String>() {{
+//			add("医院科室推广会");
+//			add("区域学术沙龙");
+//			add("城市卫星会");
+//			add("省级学科年会");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("会议举办", meetingList);
+//
+//		List<String> interviewList = new ArrayList<String>() {{
+//			add("一对一专访");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("一对一专访", interviewList);
+//
+//		List<String> customerList = new ArrayList<String>() {{
+//			add("医院拜访");
+//			add("商业公司拜访");
+//			add("药店拜访");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("客户拜访", customerList);
+//
+//		List<String> producrList = new ArrayList<String>() {{
+//			add("产品相册分享");
+//			add("受众打开产品相册");
+//			add("电子名片分享");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("产品推广", producrList);
+//
+//		List<String> academicList = new ArrayList<String>() {{
+//			add("学术信息交流");
+//			add("受众阅读文章");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("学术信息交流", academicList);
+//
+//		List<String> marketList = new ArrayList<String>() {{
+//			add("政策信息收集");
+//			add("竞品信息收集");
+//			add("库存信息收集");
+//			add("医院信息收集");
+//			add("商业公司信息收集");
+//			add("药物警戒相关信息收集(疗效等)");
+//			add("药店调查");
+//			add("库存盘点-中药颗粒剂");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("市场信息收集", marketList);
+//
+//		List<String> medicineList = new ArrayList<String>() {{
+//			add("专家咨询");
+//			add("受试者管理");
+//			add("医学撰写");
+//			add("受试者招募");
+//			add("数据管理");
+//			add("统计分析");
+//			add("临床监察");
+//			add("调剂服务");
+//			add("应收账款回款-A类");
+//			add("应收账款回款-B类");
+//			add("应收账款回款-C类");
+//			add("手术跟台-一级");
+//			add("手术跟台-二级");
+//			add("手术跟台-三级");
+//			add("物流信息收集");
+//			add("设备保养");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("专项服务", medicineList);
+//
+//		List<String> trainingList = new ArrayList<String>() {{
+//			add("医院患者教育培训");
+//			add("药店药师培训");
+//			add("商业公司培训");
+//		}};
+//		BASE_TASK_TYPE_MAP.put("培训", trainingList);
 	}
 
 	/**