Pārlūkot izejas kodu

Merge branch 'feat-20220829-jinpaitasktype'

lixuesong 2 gadi atpakaļ
vecāks
revīzija
f6f471f7cb

+ 50 - 0
db/v2.0/220830.sql

@@ -0,0 +1,50 @@
+-- 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 ('3', '37', 'temp32', '关联积分包', 1, 'domain', 1, 200, '', '', 'package_list', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp23', '调查类别', 2, 'select', 1, 2, '', '', 'market_survey_type', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp2', '标题', 3, 'text', 4, 50, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp26', '调查对象', 4, 'inputautoselect', 1, 500, '', '', 'ent_dclx1', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp4', '调研时间', 6, 'datetime', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp5', '所属地区', 7, 'area', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp31', '位置打卡', 8, 'map', 1, 200, '', '', '', '0', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp6', '盘点表上传(请将库存调查表按示例全表拍摄上传)', 9, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp7', '调研总结', 12, 'longtext', 5, 100, '', '', '', '0', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp9', '监盘人签名', 10, 'sign', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', 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 ('3', '37', 'temp10', '现场照片上传(请将库存信息屏幕/现场照片拍照上传)', 11, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 17:12:25', null, '2022-08-30 17:12:25', null);
+
+
+-- 2.新增任务类型 调剂服务 字段配置
+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 ('3', '38', 'temp32', '关联积分包', 1, 'domain', 1, 200, '', '', 'package_list', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp23', '医院选择', 3, 'inputautoselect', 1, 2, '', '', 'https://plat.yaoyi.net/admin/wmdahospital/listHospitalByName', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp2', '标题', 2, 'text', 4, 50, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp25', '调剂周期', 4, 'datatimerange', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp5', '所属地区', 6, 'area', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp6', '上传调剂单(上传调剂单的味数应与上面调剂味数相同)', 9, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp9', '复核人签名', 10, 'sign', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp10', '现场图片上传(至少上传一张调剂现场照片)', 11, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp7', '调剂说明', 12, 'longtext', 5, 100, '', '', '', '0', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp31', '位置打卡', 7, 'map', 1, 200, '', '', '', '0', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', 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 ('3', '38', 'temp24', '调剂味数', 5, 'money', 1, 50, '', '', '', '1', null, '0', '0', 1, '2022-08-30 15:44:17', null, '2022-08-30 15:44:17', null);
+
+-- 3.应收账款回款-A类/B类/C类 字段配置
+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 ('3', '39', 'temp32', '关联积分包', 1, 'domain', 1, 200, '', '', 'package_list', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp2', '标题', 2, 'text', 4, 50, '', '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp26', '回款对象', 3, 'select', 1, 2, '', '', 'payment_object', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp4', '付款通知时间', 4, 'datatimerange', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp5', '所属地区', 8, 'area', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp31', '位置打卡', 9, 'map', 1, 200, '', '', '', '0', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp6', '付款证明上传(“本级医院”请将付款通知单/银行回单全部信息拍摄上传,至少上传一张;基层诊所请将加盖财务章的付款回款清单拍摄上传,至少上传一张)', 10, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp7', '回款说明', 11, 'longtext', 5, 100, '', '', '', '0', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp25', '回款时间', 5, 'datatimerange', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp8', '回款总额', 6, 'money', 1, 200, null, '', '', '1', null, '0', '0', 1, '2022-08-30 11:49:02', null, '2022-08-30 11:49:02', 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 ('3', '39', 'temp23', '回款类别', 7, 'select', 1, 2, '', '', 'payment_type', '1', null, '0', '0', 1, '2021-06-11 16:29:17', null, '2021-06-11 16:29:16', null);
+
+-- 4.字典项task_filed_type 值新增 sign 签名,datatimerange 时间范围
+-- 5.字典项score_task_type 值新增 p-17 专项服务
+
+-- 6.新增任务类型 库存盘点-中药颗粒剂/调剂服务/应收账款回款-A类/应收账款回款-B类/应收账款回款-C类
+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 (37, '库存盘点-中药颗粒剂', '1', 0, 5000, 5000, null, null, null, null, 0, '0', 1, '2022-08-29 16:10:00', null, '2022-08-29 16:08:01', 0, 0, '库存调查', null, '1', 'p-3');
+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 (38, '调剂服务', '1', 0, 500, 200, null, null, null, null, 0, '0', 1, '2022-09-02 15:15:47', null, '2022-09-02 17:02:25', 0, 0, '专项服务', null, '1', 'p-17');
+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 (39, '应收账款回款-A类', '1', 0, 25, 25, null, null, null, null, 0, '0', 1, '2022-09-02 15:15:46', null, '2022-08-29 16:08:01', 0, 0, '专项服务', null, '1', 'p-17');
+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 (40, '应收账款回款-B类', '1', 0, 50, 40, null, null, null, null, 0, '0', 1, '2022-09-02 15:15:47', null, '2022-09-02 17:02:26', 0, 0, '专项服务', null, '1', 'p-17');
+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 (41, '应收账款回款-C类', '1', 0, 75, 75, null, null, null, null, 0, '0', 1, '2022-09-02 15:15:47', null, '2022-09-02 17:02:26', 0, 0, '专项服务', null, '1', 'p-17');
+-- 7.记得把上面新增的任务类型 同步给所有企业!!!

+ 50 - 9
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -61,6 +61,7 @@ import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmWkAlbumApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskTypeVO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
@@ -235,13 +236,17 @@ public class ApiController {
 
 		Map<String, Object> connfigMap = new LinkedHashMap<>();
 
-		// 库存调查需要调查常规的和首次
-		if ("14".equals(taskTypeId) || "31".equals(taskTypeId)) {
+		// 库存调查需要调查常规的/首次的/库存盘点-中药颗粒剂
+		if ("14".equals(taskTypeId) || "31".equals(taskTypeId) || "37".equals(taskTypeId)) {
 			// 常规调查
 			connfigMap.put("14", getTaskContentConfigByTaskTypeId("14"));
 			// 首次调查
 			connfigMap.put("31", getTaskContentConfigByTaskTypeId("31"));
-
+			// 库存盘点-中药颗粒剂
+			connfigMap.put("37", getTaskContentConfigByTaskTypeId("37"));
+		} else if ("39".equals(taskTypeId) || "40".equals(taskTypeId) || "41".equals(taskTypeId)) {
+			// 应收账款回款-A类、应收账款回款-B类、应收账款回款-C类 都取39
+			connfigMap = getTaskContentConfigByTaskTypeId("39");
 		} else {
 			connfigMap = getTaskContentConfigByTaskTypeId(taskTypeId);
 		}
@@ -429,6 +434,10 @@ public class ApiController {
 		Map<String, Object> dictMap = new LinkedHashMap<>();
 
 		WmTaskContentConfig queryConn = new WmTaskContentConfig();
+		// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 统一设置为 39(应收账款回款-A类)
+		if ("39".equals(taskTypeId) || "40".equals(taskTypeId) || "41".equals(taskTypeId)) {
+			taskTypeId  = "39";
+		}
 		queryConn.setTaskTypeId(taskTypeId);
 		queryConn.setDelFlag("0");
 		queryConn.setEnableFlag("0");
@@ -905,11 +914,14 @@ public class ApiController {
 						pBaseIds.stream().filter(i -> !res.contains(i)).forEach(i -> temp.addAll(value.get(i)));
 					}
 				}
-			} else {
-				temp.addAll(wmTaskTypeService.listByIds(baseIds));
 			}
-		} else {
-			temp.addAll(wmTaskTypeService.listByIds(baseIds));
+		}
+
+		// 把上述操作没有覆盖到的子id加进来
+		Set<String> tempIds = temp.stream().map(WmTaskType::getId).collect(Collectors.toSet());
+		Set<String> extCIds = id.stream().filter(s -> !tempIds.contains(s)).collect(Collectors.toSet());
+		if (CollUtil.isNotEmpty(extCIds)) {
+			temp.addAll(wmTaskTypeService.listByIds(extCIds));
 		}
 
 		List<String> baseNames = temp.stream().
@@ -921,7 +933,21 @@ public class ApiController {
 		List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.query(wmTaskType)
 				.lambda().in(WmTaskType::getTaskTypeName, baseNames));
 
-		return R.ok(taskTypeList);
+		List<WmTaskTypeVO> taskTypeVOList = new ArrayList<>();
+		if (CollUtil.isNotEmpty(taskTypeList)) {
+			taskTypeList.forEach(taskType -> {
+				WmTaskTypeVO taskTypeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score");
+				if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
+					// 应收账款回款 任务类 保存的是1000倍数,需要转换回来
+					taskTypeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
+				} else {
+					taskTypeVO.setScore(String.valueOf(taskType.getScore()));
+				}
+				taskTypeVOList.add(taskTypeVO);
+			});
+		}
+
+		return R.ok(taskTypeVOList);
 	}
 
 	/**
@@ -946,7 +972,21 @@ public class ApiController {
 				.filter(taskType -> !noDisplayTaskTypeNameList.contains(taskType.getTaskTypeName()))
 				.collect(Collectors.toList());
 
-		return R.ok(wmTaskTypeList);
+		List<WmTaskTypeVO> voList = new ArrayList<>();
+		if (CollUtil.isNotEmpty(wmTaskTypeList)) {
+			wmTaskTypeList.forEach(taskType -> {
+				WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score");
+				if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
+					// 应收账款回款 任务类 保存的是1000倍数,需要转换回来
+					typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
+				} else {
+					typeVO.setScore(String.valueOf(taskType.getScore()));
+				}
+				voList.add(typeVO);
+			});
+		}
+
+		return R.ok(voList);
 	}
 
 
@@ -1043,6 +1083,7 @@ public class ApiController {
 		try {
 			r = wmTaskContentService.saveTaskContent(wmTaskContent);
 		} catch (Exception e){
+			log.error("", e);
 			return R.failed(e.getMessage());
 		} finally {
 			log.info("结果:{}, 草稿key:{}", r, draftKey);

+ 32 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysPingController.java

@@ -0,0 +1,32 @@
+package com.qunzhixinxi.hnqz.admin.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 测试服务可用性
+ */
+@Slf4j
+@RestController
+@AllArgsConstructor
+@RequestMapping("/ping")
+public class SysPingController {
+
+	/**
+	 * 测试服务可用性
+	 *
+	 * @return
+	 */
+	@Inner(value = false)
+	@GetMapping
+	public R<?> ping() {
+		log.info("ping通了");
+		return R.ok(DateUtil.now());
+	}
+}

+ 17 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -1512,9 +1512,10 @@ public class WmScorePackageController {
 
 		List<Map<String, Object>> answerList = new ArrayList<>();
 		if (wmId.getLevel() == 3) {
+			int deptId = SecurityUtils.getUser().getDeptId();
 			for (WmScorePackage wmScorePackage1 : list) {
 				Map<String, Object> map1 = new HashMap<>();
-				if (SecurityUtils.getUser().getDeptId().equals(Integer.valueOf(wmScorePackage1.getDeptId()))) {
+				if (StrUtil.isNotBlank(wmScorePackage1.getDeptId()) && deptId == Integer.parseInt(wmScorePackage1.getDeptId())) {
 					map1.put("relationScoreId", wmScorePackage1.getId());
 					map1.put("scorePackageName", wmScorePackage1.getScorePackageName());
 					answerList.add(map1);
@@ -2418,6 +2419,21 @@ public class WmScorePackageController {
 				}
 				if (null != wmScorePackage.getWmScoreTaskTypeList() && wmScorePackage.getWmScoreTaskTypeList()
 						.size() > 0) {
+
+					// 如果存在taskTypeId=39 则同时增加应收账款回款-A类、B类、C类任务类型(39/40/41)
+					if (wmScorePackage.getWmScoreTaskTypeList().stream().anyMatch(wmTaskTypeTree -> "39".equals(wmTaskTypeTree.getTaskTypeId()))) {
+						WmScoreTaskType addTaskType40 = new WmScoreTaskType();
+						addTaskType40.setScoreId(wmScorePackage.getId());
+						addTaskType40.setType("1");
+						addTaskType40.setTaskTypeId("40");
+						WmScoreTaskType addTaskType41 = new WmScoreTaskType();
+						addTaskType41.setScoreId(wmScorePackage.getId());
+						addTaskType41.setType("1");
+						addTaskType41.setTaskTypeId("41");
+						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType40);
+						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType41);
+					}
+
 					List<WmScoreTaskType> wmScoreTaskTypess = new ArrayList<>();
 					for (WmScoreTaskType wmScoreTaskTypes : wmScorePackage.getWmScoreTaskTypeList()) {
 						WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();

+ 57 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeController.java

@@ -17,6 +17,8 @@
 
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +26,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeEntRef;
 import com.qunzhixinxi.hnqz.admin.entity.output.WmTaskTypeDeptOutput;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskTypeVO;
 import com.qunzhixinxi.hnqz.admin.service.*;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
@@ -137,7 +140,29 @@ public class WmTaskTypeController {
 			queryWrapper = Wrappers.lambdaQuery(wmTaskType);
 		}
 
-		return R.ok(wmTaskTypeService.page(page, queryWrapper));
+		Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
+		Page<WmTaskTypeVO> voPage = new Page<>();
+		voPage.setSize(pageResult.getSize());
+		voPage.setCurrent(pageResult.getCurrent());
+		voPage.setTotal(pageResult.getTotal());
+		List<WmTaskTypeVO> voList = new ArrayList<>();
+		pageResult.getRecords().forEach(taskType -> {
+			WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score", "taskScoreStart", "taskScoreEnd");
+			if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
+				// 应收账款回款 任务类 保存的是1000倍数,需要转换回来
+				typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
+				typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart() / 1000.0D));
+				typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd() / 1000.0D));
+			} else {
+				typeVO.setScore(String.valueOf(taskType.getScore()));
+				typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart()));
+				typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd()));
+			}
+			voList.add(typeVO);
+		});
+		voPage.setRecords(voList);
+
+		return R.ok(voPage);
 	}
 
 	/**
@@ -192,7 +217,26 @@ public class WmTaskTypeController {
 				"统计分析", "临床监察", "通用", "患者教育");
 		queryWrapper.notIn(WmTaskType::getTaskTypeName,noDisplayTaskTypeNameList);
 
-		return R.ok(wmTaskTypeService.page(page, queryWrapper));
+		Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
+
+		Page<WmTaskTypeVO> voPage = new Page<>();
+		voPage.setSize(pageResult.getSize());
+		voPage.setCurrent(pageResult.getCurrent());
+		voPage.setTotal(pageResult.getTotal());
+		List<WmTaskTypeVO> voList = new ArrayList<>();
+		pageResult.getRecords().forEach(taskType -> {
+			WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score");
+			if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
+				// 应收账款回款 任务类 保存的是1000倍数,需要转换回来
+				typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
+			} else {
+				typeVO.setScore(String.valueOf(taskType.getScore()));
+			}
+			voList.add(typeVO);
+		});
+		voPage.setRecords(voList);
+
+		return R.ok(voPage);
 	}
 
 
@@ -230,13 +274,22 @@ public class WmTaskTypeController {
 	/**
 	 * 修改任务类型打分表
 	 *
-	 * @param wmTaskType 任务类型打分表
+	 * @param wmTaskTypeVO 任务类型打分表
 	 * @return R
 	 */
 	@ApiOperation(value = "修改任务类型打分表", notes = "修改任务类型打分表")
 	@SysLog("修改任务类型打分表")
 	@PutMapping
-	public R updateById(@RequestBody WmTaskType wmTaskType) {
+	public R updateById(@RequestBody WmTaskTypeVO wmTaskTypeVO) {
+
+		WmTaskType wmTaskType = BeanUtil.copyProperties(wmTaskTypeVO, WmTaskType.class);
+		// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 积分值乘1000保存
+		if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName()) && wmTaskType.getTaskTypeName().startsWith("应收账款回款")) {
+			wmTaskType.setScore((int) (Double.parseDouble(wmTaskTypeVO.getScore()) * 1000));
+			wmTaskType.setTaskScoreStart((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreStart()) * 1000));
+			wmTaskType.setTaskScoreEnd((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreEnd()) * 1000));
+		}
+
 		String baseId = wmTaskType.getId();
 		if (SecurityUtils.getRoles().contains(2)) {
 			if (null != wmTaskType.getId() && "1".equals(wmTaskType.getStatus())) {

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeEntRefController.java

@@ -106,6 +106,9 @@ public class WmTaskTypeEntRefController {
 
 		SysDept deptId = sysDeptService.getById(SecurityUtils.getUser().getDeptId());
 		WmDaAgent anId = wmDaAgentService.selectByDeptId(deptId.getDeptId());
+		if (anId == null) {
+			return R.ok(new ArrayList<>());
+		}
 		wmTaskTypeEntRef.setAgentId(String.valueOf(anId.getId()));
 		wmTaskTypeEntRef.setDrugentId("");
 		return R.ok(wmTaskTypeEntRefService.page(page, Wrappers.query(wmTaskTypeEntRef)));

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/WmDeptTaskTypeConfigJsonDTO.java

@@ -30,7 +30,7 @@ public class WmDeptTaskTypeConfigJsonDTO {
 	/**
 	 * 任务积分
 	 */
-	private Integer score;
+	private String score;
 
 	/**
 	 * 是否限定任务

+ 126 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/vo/WmTaskTypeVO.java

@@ -0,0 +1,126 @@
+/*
+ *    Copyright (c) 2018-2025, hnqz All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: hnqz
+ */
+
+package com.qunzhixinxi.hnqz.admin.entity.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 任务类型打分表
+ *
+ * @author gaoyang
+ * @date 2020-07-01 20:20:05
+ */
+@Data
+public class WmTaskTypeVO {
+	private static final long serialVersionUID = 1L;
+
+	private String id;
+	/**
+	 * 任务类型名称
+	 */
+	private String taskTypeName;
+	/**
+	 * 任务类型级别
+	 */
+	private String taskTypeLevel;
+
+
+	/**
+	 * 规则类型,1药企 2一级代理商
+	 */
+	private String status;
+
+	/**
+	 * 药企ID
+	 */
+	private String durgentId;
+
+	/**
+	 * 药企ID
+	 */
+	private String level1Id;
+
+	/**
+	 * 药企ID
+	 */
+	private String taskEntId;
+
+	/**
+	 * 完成后可获得分
+	 */
+	private String score;
+	/**
+	 * 积分范围开始
+	 */
+	private String taskScoreStart;
+	/**
+	 * 积分范围结束
+	 */
+	private String taskScoreEnd;
+	/**
+	 * 组织机构ID
+	 */
+	private String deptId;
+	/**
+	 * 是否删除
+	 */
+	private String delFlag;
+	/**
+	 * 是否禁用
+	 */
+	private String enableFlag;
+	/**
+	 * 所属租户
+	 */
+	private Integer tenantId;
+	/**
+	 * 创建时间
+	 */
+	private LocalDateTime createTime;
+	/**
+	 * 创建人
+	 */
+	private Integer createUser;
+	/**
+	 * 更新时间
+	 */
+	private LocalDateTime updateTime;
+	/**
+	 * 更新人
+	 */
+	private Integer updateUser;
+
+	/**
+	 * 基础id
+	 */
+	private String baseId;
+
+	private String realFlag;
+	/**
+	 * 规则id
+	 */
+	private String ruleId;
+
+	/**
+	 * 父级id
+	 */
+	private String parentId;
+
+}

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

@@ -131,6 +131,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 			add("商业公司信息收集");
 			add("药物警戒相关信息收集(疗效等)");
 			add("药店调查");
+			add("库存盘点-中药颗粒剂");
 		}};
 		BASE_TASK_TYPE_MAP.put("市场信息收集", marketList);
 
@@ -142,8 +143,12 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 			add("数据管理");
 			add("统计分析");
 			add("临床监察");
+			add("调剂服务");
+			add("应收账款回款-A类");
+			add("应收账款回款-B类");
+			add("应收账款回款-C类");
 		}};
-		BASE_TASK_TYPE_MAP.put("医药研发服务", medicineList);
+		BASE_TASK_TYPE_MAP.put("专项服务", medicineList);
 
 		List<String> trainingList = new ArrayList<String>() {{
 			add("医院患者教育培训");
@@ -167,6 +172,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 		wmDeptTaskTypeConfigDTO.getConfigList().forEach(configJsonDTO -> {
 			// 查询任务名称对应的基础任务类型id
 			WmTaskType baseTaskType = wmTaskTypeService.getOne(Wrappers.<WmTaskType>lambdaQuery()
+					.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val())
 					.eq(WmTaskType::getTaskTypeLevel, "1")
 					.eq(WmTaskType::getTaskTypeName, configJsonDTO.getTaskTypeName()));
 			configJsonDTO.setTaskTypeId(baseTaskType.getId());
@@ -256,7 +262,14 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 				}
 				deptTaskTypeConfigJsonDTO.setTaskTypeId(taskType.getId());
 				deptTaskTypeConfigJsonDTO.setTaskTypeName(taskType.getTaskTypeName());
-				deptTaskTypeConfigJsonDTO.setScore(taskType.getScore());
+
+				if (taskType.getTaskTypeName().startsWith("应收账款回款")) {
+					// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 积分值统一除以1000
+					deptTaskTypeConfigJsonDTO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
+				} else {
+					deptTaskTypeConfigJsonDTO.setScore(String.valueOf(taskType.getScore()));
+				}
+
 				if (ArrayUtil.contains(ENABLE_ZBDB_STATUS_ARR, taskType.getTaskTypeName())) {
 					deptTaskTypeConfigJsonDTO.setZbdbStatusEnable(true);
 				} else {

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

@@ -16,6 +16,7 @@
  */
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
@@ -744,6 +745,19 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			List<WmTaskTypeTree> tasktypeList = wmScorePackage.getTaskTypeList();
 
 			if (null != tasktypeList && tasktypeList.size() > 0) {
+
+				// 如果存在taskTypeId=39 则同时增加应收账款回款-A类、B类、C类任务类型(39/40/41)
+				if (tasktypeList.stream().anyMatch(wmTaskTypeTree -> "39".equals(wmTaskTypeTree.getTaskTypeId()))) {
+					WmTaskTypeTree addTaskTypeTree40 = new WmTaskTypeTree();
+					addTaskTypeTree40.setTaskTypeId("40");
+					addTaskTypeTree40.setTaskTypeName("应收账款回款-B类");
+					WmTaskTypeTree addTaskTypeTree41 = new WmTaskTypeTree();
+					addTaskTypeTree41.setTaskTypeId("41");
+					addTaskTypeTree41.setTaskTypeName("应收账款回款-C类");
+					tasktypeList.add(addTaskTypeTree40);
+					tasktypeList.add(addTaskTypeTree41);
+				}
+
 				for (WmTaskTypeTree type : tasktypeList) {
 					WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();
 					wmScoreTaskType.setScoreId(wmScorePackage.getId());
@@ -1337,6 +1351,19 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			if (tasktypeList != null && tasktypeList.size() > 0) {
 				wmScoreTaskTypeMapper.delete(Wrappers.<WmScoreTaskType>lambdaQuery()
 						.eq(WmScoreTaskType::getScoreId, wmScorePackage.getId()));
+
+				// 如果存在taskTypeId=39 则同时增加应收账款回款-A类、B类、C类任务类型(39/40/41)
+				if (wmScorePackage.getTaskTypeList().stream().anyMatch(wmTaskTypeTree -> "39".equals(wmTaskTypeTree.getTaskTypeId()))) {
+					WmTaskTypeTree addTaskTypeTree40 = new WmTaskTypeTree();
+					addTaskTypeTree40.setTaskTypeId("40");
+					addTaskTypeTree40.setTaskTypeName("应收账款回款-B类");
+					WmTaskTypeTree addTaskTypeTree41 = new WmTaskTypeTree();
+					addTaskTypeTree41.setTaskTypeId("41");
+					addTaskTypeTree41.setTaskTypeName("应收账款回款-C类");
+					wmScorePackage.getTaskTypeList().add(addTaskTypeTree40);
+					wmScorePackage.getTaskTypeList().add(addTaskTypeTree41);
+				}
+
 				for (WmTaskTypeTree type : tasktypeList) {
 					WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();
 					wmScoreTaskType.setScoreId(wmScorePackage.getId());

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

@@ -15,6 +15,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;/*
  * Author: hnqz
  */
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
@@ -84,6 +85,13 @@ public class WmScoreTaskTypeServiceImpl extends ServiceImpl<WmScoreTaskTypeMappe
 			if(StringUtils.isEmpty(type.getParentId())){
 				continue;
 			}
+			if (StrUtil.equals("39", type.getId())) {
+				type.setTaskTypeName("应收账款回款");
+			}
+			if (StrUtil.equals("40", type.getId()) || StrUtil.equals("41", type.getId())) {
+				// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 统一回显为一个‘应收账款回款’
+				continue;
+			}
 			if(resultMap.containsKey(type.getParentId())){
 				String typeName = resultMap.get(type.getParentId());
 				typeName = typeName +";"+ type.getTaskTypeName();

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

@@ -1045,6 +1045,31 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 				}
 				// 2021-06-11 库存调查分成,首次调查和常规调查,常规调查走之前的逻辑 end
 
+				// 调剂服务 任务积分值 = 每一味积分值 * 调剂味数
+				if ("38".equals(wmTaskContent.getTemp30())) {
+					WmTaskType wmTaskType2 = new WmTaskType();
+					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(wmTaskContent.getTemp32());
+					wmTaskType2.setRuleId(wmScorePackage1.getRuleId());
+					wmTaskType2.setTaskTypeName("调剂服务");
+					score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType2);
+					score = (int) Math.round(score * Double.parseDouble(wmTaskContent.getTemp24()));
+				}
+
+				// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 积分值按照“回款总额”乘“回款类别”对应的百分比,四舍五入
+				if ("39".equals(wmTaskContent.getTemp30())) {
+					WmTaskType wmTaskType2 = new WmTaskType();
+					// 根据选择的回款类别 查任务类型模板
+					WmTaskType baseTaskType = wmTaskTypeService.getById(wmTaskContent.getTemp23());
+					// 查询当前企业的任务类型积分
+					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(wmTaskContent.getTemp32());
+					wmTaskType2.setRuleId(wmScorePackage1.getRuleId());
+					wmTaskType2.setTaskTypeName(baseTaskType.getTaskTypeName());
+					wmTaskType2.setRuleId(wmScorePackage1.getRuleId());
+					score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType2);
+					// 计算实际任务积分(任务积分值 = 每一味积分值 * 调剂味数),这里应收账款回款积分值存的是1000的倍数,所以需要除以1000
+					score = (int) Math.round(score * Double.parseDouble(wmTaskContent.getTemp8()) / 1000.0D);
+				}
+
 				log.info("获取任务得分:{}", score);
 
 				if (score < 0) {