|
@@ -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);
|
|
|
}
|
|
|
|
|
|
/**
|