Jelajahi Sumber

Merge branch 'feat-newtasktype-20220531'

shc 3 tahun lalu
induk
melakukan
dbd023e288

+ 54 - 0
db/v2.0/220531.sql

@@ -0,0 +1,54 @@
+-- 新增三种任务类型
+INSERT INTO wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id,
+                          durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user,
+                          update_time, update_user, status, base_id, real_flag, rule_id, parent_id)
+VALUES (34, '医院患者教育培训', '1', 0, 2000, 2000, null, null, null, null, 0, '0', 1, '2022-05-31 14:56:55', null, null, null,
+        0, '会议举办', null, '1', 'p-1');
+INSERT INTO wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id,
+                          durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user,
+                          update_time, update_user, status, base_id, real_flag, rule_id, parent_id)
+VALUES (35, '药店药师培训', '1', 0, 2000, 2000, null, null, null, null, 0, '0', 1, '2022-05-31 14:56:58', null, null, null, 0,
+        '会议举办', null, '1', 'p-1');
+INSERT INTO wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id,
+                          durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user,
+                          update_time, update_user, status, base_id, real_flag, rule_id, parent_id)
+VALUES (36, '商业公司培训', '1', 0, 2000, 2000, null, null, null, null, 0, '0', 1, '2022-05-31 14:56:59', null, null, null, 0,
+        '会议举办', null, '1', 'p-1');
+
+-- 任务类型培训-小程序页面字段配置
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp32', '关联积分包', 2, 'domain', 1, 200, null, null, 'package_list', '1', null, '0', '0', 1, '2021-01-17 10:54:59', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp2', '培训主题', 3, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:28', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp3', '培训类型', 1, 'select', 1, 200, null, '', 'training_type', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp4', '培训时间', 4, 'datetime', 1, 200, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:30', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp5', '培训议程', 7, 'img', 1, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp6', '培训签到表', 8, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:32', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp7', '现场照片', 9, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:33', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp8', '外采费用', 12, 'money', 1, 200, null, '', '', '0', null, '0', '0', 1, '2020-07-20 22:34:35', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp9', '培训总结', 13, 'longtext', 3, 100, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:34', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp31', '位置打卡', 6, 'map', 1, 200, null, null, null, '0', null, '0', '0', 1, '2021-01-10 21:54:36', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp10', '培训内容', 10, 'img', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '36', 'temp13', '主讲人', 5, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp32', '关联积分包', 2, 'domain', 1, 200, null, null, 'package_list', '1', null, '0', '0', 1, '2021-01-17 10:54:59', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp2', '培训主题', 3, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:28', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp3', '培训类型', 1, 'select', 1, 200, null, '', 'training_type', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp4', '培训时间', 4, 'datetime', 1, 200, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:30', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp5', '培训议程', 7, 'img', 1, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp6', '培训签到表', 8, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:32', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp7', '现场照片', 9, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:33', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp8', '外采费用', 12, 'money', 1, 200, null, '', '', '0', null, '0', '0', 1, '2020-07-20 22:34:35', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp9', '培训总结', 13, 'longtext', 3, 100, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:34', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp31', '位置打卡', 6, 'map', 1, 200, null, null, null, '0', null, '0', '0', 1, '2021-01-10 21:54:36', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp10', '培训内容', 10, 'img', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '35', 'temp13', '主讲人', 5, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp13', '主讲人', 5, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp10', '培训内容', 10, 'img', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp31', '位置打卡', 6, 'map', 1, 200, null, null, null, '0', null, '0', '0', 1, '2021-01-10 21:54:36', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp9', '培训总结', 13, 'longtext', 3, 100, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:34', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp8', '外采费用', 12, 'money', 1, 200, null, '', '', '0', null, '0', '0', 1, '2020-07-20 22:34:35', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp7', '现场照片', 9, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:33', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp6', '培训签到表', 8, 'img', 1, 5, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:32', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp5', '培训议程', 7, 'img', 1, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:31', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp4', '培训时间', 4, 'datetime', 1, 200, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:30', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp3', '培训类型', 1, 'select', 1, 200, null, '', 'training_type', '1', null, '0', '0', 1, '2020-07-22 00:42:12', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp2', '培训主题', 3, 'text', 2, 20, null, '', '', '1', null, '0', '0', 1, '2020-07-20 22:34:28', null, null, null);
+INSERT INTO wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('1', '34', 'temp32', '关联积分包', 2, 'domain', 1, 200, null, null, 'package_list', '1', null, '0', '0', 1, '2021-01-17 10:54:59', null, null, null);

+ 47 - 8
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -805,22 +805,61 @@ public class ApiController {
 		 * 所有能做的任务
 		 */
 		List<WmScoreTaskType> wmScoreTaskTypeList = wmScoreTaskTypeService.list(Wrappers.query(query));
-
+		// 对应的taskTypeId
 		List<String> baseIds = wmScoreTaskTypeList.stream().
 				map(WmScoreTaskType::getTaskTypeId).collect(Collectors.toList());
-
+		// 父级parent_id
 		List<String> parentId = baseIds.stream().filter(item -> item.startsWith("p")).collect(Collectors.toList());
+		// 子级parentId
 		List<String> id = baseIds.stream().filter(item -> !item.startsWith("p")).collect(Collectors.toList());
 
-		List<WmTaskType> baseTypeList1 = wmTaskTypeService.
-				list(Wrappers.<WmTaskType>query().lambda().in(WmTaskType::getParentId, parentId));
+		// 记录表中父id的所有子集
+		List<WmTaskType> baseTypeList1 = wmTaskTypeService.list(Wrappers.<WmTaskType>query().lambda()
+				.eq(WmTaskType::getTaskTypeLevel, "1")
+				.in(WmTaskType::getParentId, parentId));
 
-		List<WmTaskType> baseTypeList2 = wmTaskTypeService.
-				list(Wrappers.<WmTaskType>query().lambda().in(WmTaskType::getId, id));
+		// 按照父id分组
+		Map<String,Map<String, List<WmTaskType>>> pTaskTypeMap = baseTypeList1.stream()
+				.collect(Collectors.groupingBy(WmTaskType::getParentId,Collectors.groupingBy(WmTaskType::getBaseId)));
 
-		baseTypeList1.addAll(baseTypeList2);
+		// 查询所有子id对应的taskType列表
+		List<WmTaskType> baseTypeList2 = wmTaskTypeService.
+				list(Wrappers.<WmTaskType>query().lambda().eq(WmTaskType::getTaskTypeLevel, "1").in(WmTaskType::getId, id));
+
+		// 所有子id对应的taskType列表 按照父id分组
+		Map<String,Map<String, List<WmTaskType>>> cTaskTypeMap = baseTypeList2.stream()
+				.collect(Collectors.groupingBy(WmTaskType::getParentId,Collectors.groupingBy(WmTaskType::getBaseId)));
+		// 对应的parentId
+		Set<String> cPidSet = cTaskTypeMap.keySet();
+
+		List<WmTaskType> temp = new ArrayList<>();
+
+		// 解决页面父级id和数据库存的父级id不一致的问题(如一对一专访在页面父级是p-16,但taskType表中父级id为p-1)
+		// 比较baseTypeList1和baseTypeList2中parentId相同的taskTypeId的数据,如果baseId相同,则取baseTypeList2中的taskTypeId
+		for (Map.Entry<String, Map<String, List<WmTaskType>>> entry : pTaskTypeMap.entrySet()) {
+			// 获取父级id
+			String pid = entry.getKey();
+			// 判断大类中是否有相同的父类id
+			if (cPidSet.contains(pid)) {
+				// baseId
+				Map<String, List<WmTaskType>> value = entry.getValue();
+				Set<String> pBaseIds = value.keySet();
+				// small
+				Map<String, List<WmTaskType>> cVal = cTaskTypeMap.get(pid);
+				Set<String> cBaseIds = cVal.keySet();
+				// 求个交集,找出公共的
+				Set<String> res = new HashSet<>(pBaseIds);
+				res.retainAll(cBaseIds);
+				// 找出的存入temp
+				for (String bId : res) {
+					temp.addAll(cVal.get(bId));
+				}
+				// 取父级中对应baseId是独有的部分
+				pBaseIds.stream().filter(i -> !res.contains(i)).forEach(i -> temp.addAll(value.get(i)));
+			}
+		}
 
-		List<String> baseNames = baseTypeList1.stream().
+		List<String> baseNames = temp.stream().
 				map(WmTaskType::getTaskTypeName).distinct().collect(Collectors.toList());
 		WmTaskType wmTaskType = new WmTaskType();
 		wmTaskType.setRuleId(wmScorePackage.getRuleId());

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

@@ -129,7 +129,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 			add("库存信息收集");
 			add("医院信息收集");
 			add("商业公司信息收集");
-			add("药物警戒质量管理");
+			add("药物警戒相关信息收集(疗效等)");
 			add("药店调查");
 		}};
 		BASE_TASK_TYPE_MAP.put("市场信息收集", marketList);
@@ -144,6 +144,13 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 			add("临床监察");
 		}};
 		BASE_TASK_TYPE_MAP.put("医药研发服务", medicineList);
+
+		List<String> trainingList = new ArrayList<String>() {{
+			add("医院患者教育培训");
+			add("药店药师培训");
+			add("商业公司培训");
+		}};
+		BASE_TASK_TYPE_MAP.put("培训", trainingList);
 	}
 
 	/**
@@ -280,7 +287,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 		if (deptTaskTypeConfig != null) {
 			List<WmDeptTaskTypeConfigJsonDTO> configJsonDTOList = JSON.parseArray(deptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
 			configTaskTypeIdList = configJsonDTOList.stream()
-					.filter(configJsonDTO -> configJsonDTO.getQualifiedTask())
+					.filter(WmDeptTaskTypeConfigJsonDTO::getQualifiedTask)
 					.map(WmDeptTaskTypeConfigJsonDTO::getTaskTypeName)
 					.collect(Collectors.toList());
 		}

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

@@ -179,6 +179,31 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 				return R.failed(1, "30天以前的任务无法提交");
 			}
 			wmTaskContent.setTemp30(wmTaskContent.getTemp3());
+		} else if ("34".equals(wmTaskContent.getTemp30())) {
+			// 培训(医院患者教育培训 、药店药师培训 、商业公司培训)
+			// 限制每天两次
+			LocalDate currentLookintoDate =
+					LocalDate.parse(wmTaskContent.getTemp4(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
+			LocalDateTime start = LocalDateTime.of(currentLookintoDate,LocalTime.MIN);
+			LocalDateTime end = LocalDateTime.of(currentLookintoDate,LocalTime.MAX);
+			long meetingTaskCount = wmTaskService.countMeetingTask(CollectionUtil.toList("34", "35", "36", "37"),
+					String.valueOf(sysU.getUserId()), start, end);
+			log.info("培训次数:{}", meetingTaskCount);
+			if (meetingTaskCount >= 2L) {
+				return R.failed(1, "每天最多举办两场培训");
+			}
+
+			String date = wmTaskContent.getTemp4();
+			Date date1 = DateUtil.parse(date);
+			Date date2 = new Date();
+			if (date1.after(date2)) {
+				return R.failed(1, "培训时间不能选择之后的时间");
+			}
+			long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);
+			if (betweenDay >= 30L) {
+				return R.failed(1, "30天以前的任务无法提交");
+			}
+			wmTaskContent.setTemp30(wmTaskContent.getTemp3());
 		}
 
 		if ("21".equals(wmTaskContent.getTemp30()) || "12".equals(wmTaskContent.getTemp30())

+ 11 - 7
hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskTypeServiceTest.java

@@ -49,6 +49,10 @@ public class WmTaskTypeServiceTest {
 
 	@Autowired
 	private WmDaAgentMapper wmDaAgentMapper;
+	
+	private static final String taskTypeId = "34";
+
+	private static final String taskTypeName = "医院患者教育培训";
 
 	/**
 	 * 批量补充新增的任务类型33-药店拜访
@@ -59,7 +63,7 @@ public class WmTaskTypeServiceTest {
 //		wmTaskTypeQ.setTaskTypeLevel("1");
 //		wmTaskTypeQ.setStatus("0");
 //		wmTaskTypeQ.setDelFlag("0");
-		wmTaskTypeQ.setId("33");
+		wmTaskTypeQ.setId(taskTypeId);
 		List<WmTaskType> tempList = wmTaskTypeMapper.selectList(Wrappers.query(wmTaskTypeQ));
 
 		// 1.第一级是药企的情况
@@ -95,7 +99,7 @@ public class WmTaskTypeServiceTest {
 				newOne.setRuleId(wmDaDrugEnt.getId());
 				newOne.setParentId(wmTaskType1.getParentId());
 				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getTaskTypeName, taskTypeName)
 						.eq(WmTaskType::getRuleId, newOne.getRuleId())
 						.eq(WmTaskType::getDeptId, newOne.getDeptId())
 						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
@@ -142,7 +146,7 @@ public class WmTaskTypeServiceTest {
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType1.getId());
 					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-							.eq(WmTaskType::getTaskTypeName, "药店拜访")
+							.eq(WmTaskType::getTaskTypeName, taskTypeName)
 							.eq(WmTaskType::getRuleId, newOne.getRuleId())
 							.eq(WmTaskType::getDeptId, newOne.getDeptId())
 							.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
@@ -164,7 +168,7 @@ public class WmTaskTypeServiceTest {
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType2.getId());
 					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-							.eq(WmTaskType::getTaskTypeName, "药店拜访")
+							.eq(WmTaskType::getTaskTypeName, taskTypeName)
 							.eq(WmTaskType::getRuleId, newOne.getRuleId())
 							.eq(WmTaskType::getDeptId, newOne.getDeptId())
 							.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
@@ -200,7 +204,7 @@ public class WmTaskTypeServiceTest {
 						newOne.setStatus("0");
 						newOne.setBaseId(wmTaskType2.getId());
 						List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-								.eq(WmTaskType::getTaskTypeName, "药店拜访")
+								.eq(WmTaskType::getTaskTypeName, taskTypeName)
 								.eq(WmTaskType::getRuleId, newOne.getRuleId())
 								.eq(WmTaskType::getDeptId, newOne.getDeptId())
 								.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
@@ -249,7 +253,7 @@ public class WmTaskTypeServiceTest {
 				newOne.setStatus("0");
 				newOne.setBaseId(wmTaskType2.getId());
 				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getTaskTypeName, taskTypeName)
 						.eq(WmTaskType::getRuleId, newOne.getRuleId())
 						.eq(WmTaskType::getDeptId, newOne.getDeptId())
 						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
@@ -285,7 +289,7 @@ public class WmTaskTypeServiceTest {
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType2.getId());
 					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
-						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getTaskTypeName, taskTypeName)
 						.eq(WmTaskType::getRuleId, newOne.getRuleId())
 						.eq(WmTaskType::getDeptId, newOne.getDeptId())
 						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));