|
@@ -179,7 +179,6 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.time.ZoneId;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -241,50 +240,78 @@ public class ApiController {
|
|
|
private final WmQuizService quizService;
|
|
|
private final WmPlatformQuizTestResultService platformQuizTestResultService;
|
|
|
|
|
|
+ private static final String[] RANDOM_QUIZ_URL = {"https://lit.yaoyi.net/s/785f65dc549b4b99b5a26da5b4dbcc15"};
|
|
|
+
|
|
|
@SysLog("通过任务类型获取表单配置")
|
|
|
@GetMapping("/getTaskContentConfigByTaskTypeId/{taskTypeId}")
|
|
|
- public R getById(@PathVariable String taskTypeId) {
|
|
|
+ public R<?> getById(@PathVariable String taskTypeId) {
|
|
|
if (null == taskTypeId) {
|
|
|
return R.failed("taskTypeId不能为空");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- Map<String, Object> connfigMap = new LinkedHashMap<>();
|
|
|
+ Map<String, Object> configMap = new LinkedHashMap<>();
|
|
|
|
|
|
// 库存调查需要调查常规的/首次的/库存盘点-中药颗粒剂的
|
|
|
- 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 if ("42".equals(taskTypeId) || "43".equals(taskTypeId) || "44".equals(taskTypeId)) {
|
|
|
- // 手术跟台-一级/手术跟台-二级/手术跟台-三级 都取42
|
|
|
- connfigMap = getTaskContentConfigByTaskTypeId("42");
|
|
|
- } else if ("47".equals(taskTypeId) || "48".equals(taskTypeId) || "49".equals(taskTypeId) || "50".equals(taskTypeId)) {
|
|
|
- // 库存调研、竞品调研、培训、使用情况调查 都取47
|
|
|
- connfigMap = getTaskContentConfigByTaskTypeId("47");
|
|
|
- } else if ("56".equals(taskTypeId) || "57".equals(taskTypeId)) {
|
|
|
- // 56首营管理-诊所
|
|
|
- connfigMap.put("56", getTaskContentConfigByTaskTypeId("56"));
|
|
|
- // 57首营管理-药店
|
|
|
- connfigMap.put("57", getTaskContentConfigByTaskTypeId("57"));
|
|
|
- } else if ("1".equals(taskTypeId) || "2".equals(taskTypeId) || "3".equals(taskTypeId) || "4".equals(taskTypeId) || "64".equals(taskTypeId)) {
|
|
|
- // 1,医院科室推广会 2,区域学术沙龙 3,城市卫星会 4,省级学科年会 64,线上科室会
|
|
|
- connfigMap.put("1", getTaskContentConfigByTaskTypeId("1"));
|
|
|
- connfigMap.put("2", getTaskContentConfigByTaskTypeId("2"));
|
|
|
- connfigMap.put("3", getTaskContentConfigByTaskTypeId("3"));
|
|
|
- connfigMap.put("4", getTaskContentConfigByTaskTypeId("4"));
|
|
|
- connfigMap.put("64", getTaskContentConfigByTaskTypeId("64"));
|
|
|
- } else {
|
|
|
- connfigMap = getTaskContentConfigByTaskTypeId(taskTypeId);
|
|
|
+ switch (taskTypeId) {
|
|
|
+ case "14":
|
|
|
+ case "31":
|
|
|
+ case "37":
|
|
|
+ // 常规调查
|
|
|
+ configMap.put("14", getTaskContentConfigByTaskTypeId("14"));
|
|
|
+ // 首次调查
|
|
|
+ configMap.put("31", getTaskContentConfigByTaskTypeId("31"));
|
|
|
+ // 库存盘点-中药颗粒剂
|
|
|
+ configMap.put("37", getTaskContentConfigByTaskTypeId("37"));
|
|
|
+ break;
|
|
|
+ case "39":
|
|
|
+ case "40":
|
|
|
+ case "41":
|
|
|
+ // 应收账款回款-A类、应收账款回款-B类、应收账款回款-C类 都取39
|
|
|
+ configMap = getTaskContentConfigByTaskTypeId("39");
|
|
|
+ break;
|
|
|
+ case "42":
|
|
|
+ case "43":
|
|
|
+ case "44":
|
|
|
+ // 手术跟台-一级/手术跟台-二级/手术跟台-三级 都取42
|
|
|
+ configMap = getTaskContentConfigByTaskTypeId("42");
|
|
|
+ break;
|
|
|
+ case "47":
|
|
|
+ case "48":
|
|
|
+ case "49":
|
|
|
+ case "50":
|
|
|
+ // 库存调研、竞品调研、培训、使用情况调查 都取47
|
|
|
+ configMap = getTaskContentConfigByTaskTypeId("47");
|
|
|
+ break;
|
|
|
+ case "56":
|
|
|
+ case "57":
|
|
|
+ // 56首营管理-诊所
|
|
|
+ configMap.put("56", getTaskContentConfigByTaskTypeId("56"));
|
|
|
+ // 57首营管理-药店
|
|
|
+ configMap.put("57", getTaskContentConfigByTaskTypeId("57"));
|
|
|
+ break;
|
|
|
+ case "1":
|
|
|
+ case "2":
|
|
|
+ case "3":
|
|
|
+ case "4":
|
|
|
+ case "64":
|
|
|
+ // 1,医院科室推广会 2,区域学术沙龙 3,城市卫星会 4,省级学科年会 64,线上科室会
|
|
|
+ configMap.put("1", getTaskContentConfigByTaskTypeId("1"));
|
|
|
+ configMap.put("2", getTaskContentConfigByTaskTypeId("2"));
|
|
|
+ configMap.put("3", getTaskContentConfigByTaskTypeId("3"));
|
|
|
+ configMap.put("4", getTaskContentConfigByTaskTypeId("4"));
|
|
|
+ configMap.put("64", getTaskContentConfigByTaskTypeId("64"));
|
|
|
+ break;
|
|
|
+ case "801":
|
|
|
+ configMap.put("801", getTaskContentConfigByTaskTypeId("64"));
|
|
|
+ int random = new Random(RANDOM_QUIZ_URL.length).nextInt();
|
|
|
+ configMap.put("randomUrl", RANDOM_QUIZ_URL[random]);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ configMap = getTaskContentConfigByTaskTypeId(taskTypeId);
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
- return R.ok(connfigMap);
|
|
|
+ return R.ok(configMap);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -294,109 +321,92 @@ public class ApiController {
|
|
|
* @return 任务内容配置信息
|
|
|
*/
|
|
|
private Map<String, Object> getTaskContentConfigByTaskTypeId(String taskTypeId) {
|
|
|
- Map<String, Object> connfigMap = new LinkedHashMap<>();
|
|
|
+ Map<String, Object> configMap = new LinkedHashMap<>();
|
|
|
Map<String, Object> dictMap = new LinkedHashMap<>();
|
|
|
|
|
|
- WmTaskContentConfig queryConn = new WmTaskContentConfig();
|
|
|
- queryConn.setTaskTypeId(taskTypeId);
|
|
|
- queryConn.setDelFlag("0");
|
|
|
- queryConn.setEnableFlag("0");
|
|
|
List<WmTaskContentConfig> listConfig = wmTaskContentConfigService.list(
|
|
|
- new QueryWrapper<>(queryConn).orderByAsc("seq"));
|
|
|
- for (WmTaskContentConfig config :
|
|
|
- listConfig) {
|
|
|
+ Wrappers.<WmTaskContentConfig>lambdaQuery().eq(WmTaskContentConfig::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(WmTaskContentConfig::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(WmTaskContentConfig::getTaskTypeId, taskTypeId)
|
|
|
+ .orderByAsc(WmTaskContentConfig::getSeq));
|
|
|
+
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
+ for (WmTaskContentConfig config : listConfig) {
|
|
|
if ("select".equals(config.getTaskFiledType())) {
|
|
|
- SysDictItem sysDictItemConn = new SysDictItem();
|
|
|
- sysDictItemConn.setType(config.getDictGroupName());
|
|
|
- List<SysDictItem> dictItems = sysDictItemService.list(new QueryWrapper<>(sysDictItemConn));
|
|
|
+ List<SysDictItem> dictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType, config.getDictGroupName()));
|
|
|
dictMap.put(config.getDictGroupName(), dictItems);
|
|
|
}
|
|
|
|
|
|
if ("domain".equals(config.getTaskFiledType())) {
|
|
|
if ("ent_service".equals(config.getDictGroupName())) {
|
|
|
- List<WmDaDrugEnt> wmDaDrugEnts = new ArrayList<>();
|
|
|
- if (null == SecurityUtils.getUser()) {
|
|
|
- wmDaDrugEnts = wmDaDrugEntService.list();
|
|
|
- } else {
|
|
|
- wmDaDrugEnts = getDrugListBySecUser(SecurityUtils.getUser().getPlatId());
|
|
|
- }
|
|
|
- List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
- for (int i = 0; i < wmDaDrugEnts.size(); i++) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("label", wmDaDrugEnts.get(i).getEntname());
|
|
|
- map.put("value", wmDaDrugEnts.get(i).getId());
|
|
|
+ List<WmDaDrugEnt> wmDaDrugEnts = Objects.isNull(user) ? wmDaDrugEntService.list() : getDrugListBySecUser(user.getPlatId());
|
|
|
+
|
|
|
+ List<Map<String, Object>> listMap = wmDaDrugEnts.stream().map(ent -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(3);
|
|
|
+ map.put("label", ent.getEntname());
|
|
|
+ map.put("value", ent.getId());
|
|
|
map.put("type", "drug");
|
|
|
- listMap.add(map);
|
|
|
- }
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
dictMap.put(config.getDictGroupName(), listMap);
|
|
|
|
|
|
} else if ("ent_bus".equals(config.getDictGroupName())) {
|
|
|
List<WmDaDistribution> wmDaDrugEnts = wmDaDistributionService.list();
|
|
|
- List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
- for (int i = 0; i < wmDaDrugEnts.size(); i++) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("label", wmDaDrugEnts.get(i).getGsmc());
|
|
|
- map.put("value", wmDaDrugEnts.get(i).getId());
|
|
|
- listMap.add(map);
|
|
|
- }
|
|
|
+
|
|
|
+ List<Map<String, Object>> listMap = wmDaDrugEnts.stream().map(ent -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(2);
|
|
|
+ map.put("label", ent.getGsmc());
|
|
|
+ map.put("value", ent.getId());
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
dictMap.put(config.getDictGroupName(), listMap);
|
|
|
- } else if ("ent_dclx".equals(config.getDictGroupName())) {
|
|
|
- List<WmDaHospital> wmDaHospitalList = new ArrayList<>();
|
|
|
- List<Map<String, Object>> wmDaHospitalListList = new ArrayList<>();
|
|
|
- for (int i = 0; i < wmDaHospitalList.size(); i++) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("label", wmDaHospitalList.get(i).getYymc());
|
|
|
- map.put("value", wmDaHospitalList.get(i).getId());
|
|
|
- wmDaHospitalListList.add(map);
|
|
|
- }
|
|
|
- dictMap.put("hospital_service", wmDaHospitalListList);
|
|
|
|
|
|
+ } else if ("ent_dclx".equals(config.getDictGroupName())) {
|
|
|
+ dictMap.put("hospital_service", Collections.emptyList());
|
|
|
|
|
|
List<WmDaDistribution> wmDaDistributions = wmDaDistributionService.list();
|
|
|
- List<Map<String, Object>> wmDaDistributionList = new ArrayList<>();
|
|
|
- for (int i = 0; i < wmDaDistributions.size(); i++) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("label", wmDaDistributions.get(i).getGsmc());
|
|
|
- map.put("value", wmDaDistributions.get(i).getId());
|
|
|
- wmDaDistributionList.add(map);
|
|
|
- }
|
|
|
+ List<Map<String, Object>> wmDaDistributionList = wmDaDistributions.stream().map(dis -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(2);
|
|
|
+ map.put("label", dis.getGsmc());
|
|
|
+ map.put("value", dis.getId());
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
dictMap.put("distribution_service", wmDaDistributionList);
|
|
|
+
|
|
|
} else if ("ent_pharmacy".equals(config.getDictGroupName())) {
|
|
|
+
|
|
|
List<WmDaPharmacy> wmDaDrugEnts = wmDaPharmacyService.list();
|
|
|
- List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
- for (int i = 0; i < wmDaDrugEnts.size(); i++) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("label", wmDaDrugEnts.get(i).getPharmacyName());
|
|
|
- map.put("value", wmDaDrugEnts.get(i).getId());
|
|
|
- listMap.add(map);
|
|
|
- }
|
|
|
+ List<Map<String, Object>> listMap = wmDaDrugEnts.stream().map(ent -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(2);
|
|
|
+ map.put("label", ent.getPharmacyName());
|
|
|
+ map.put("value", ent.getId());
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
dictMap.put(config.getDictGroupName(), listMap);
|
|
|
+
|
|
|
} else if ("package_list".equals(config.getDictGroupName())) {
|
|
|
// 查询可以关联的积分包
|
|
|
- List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
- if (null == SecurityUtils.getUser()) {
|
|
|
+ List<Map<String, Object>> listMap;
|
|
|
+ if (user != null) {
|
|
|
+ List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(
|
|
|
+ Wrappers.<WmScorePackageStatus>lambdaQuery().eq(WmScorePackageStatus::getUserId, user.getId().toString())
|
|
|
+ .eq(WmScorePackageStatus::getStatus, "2")
|
|
|
+ .eq(WmScorePackageStatus::getTaskAddFlag, "1")
|
|
|
+ .eq(WmScorePackageStatus::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(WmScorePackageStatus::getEnableFlag, CommonConstants.STATUS_NORMAL));
|
|
|
|
|
|
- } else {
|
|
|
- WmScorePackageStatus query = new WmScorePackageStatus();
|
|
|
- query.setUserId(String.valueOf(SecurityUtils.getUser().getId()));
|
|
|
- query.setStatus("2");
|
|
|
- query.setTaskAddFlag("1");
|
|
|
- query.setDelFlag("0");
|
|
|
- query.setEnableFlag("0");
|
|
|
|
|
|
- List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(Wrappers.lambdaQuery(query));
|
|
|
if (CollUtil.isNotEmpty(statusList)) {
|
|
|
- Set<String> scoreIds = statusList.stream()
|
|
|
- .map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
|
|
|
+ Set<String> scoreIds = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
|
|
|
// 批量查询积分包
|
|
|
List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(scoreIds);
|
|
|
- Map<String, WmScorePackage> scorePackageMap = wmScorePackages.stream()
|
|
|
- .collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
+ Map<String, WmScorePackage> scorePackageMap = wmScorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
// 批量查询scoreTaskType
|
|
|
List<Map<String, Object>> scoreTaskTypeCountList = wmScoreTaskTypeMapper.countByScoreId(taskTypeId, scoreIds);
|
|
|
- Map<String, Integer> scoreTaskTypeCountMap = scoreTaskTypeCountList.stream()
|
|
|
- .collect(Collectors.toMap(o -> String.valueOf(o.get("score_id")), o -> Integer.parseInt(String.valueOf(o.get("count")))));
|
|
|
+ Map<String, Integer> scoreTaskTypeCountMap = scoreTaskTypeCountList.stream().collect(Collectors.toMap(o -> String.valueOf(o.get("score_id")), o -> Integer.parseInt(String.valueOf(o.get("count")))));
|
|
|
|
|
|
+ listMap = new ArrayList<>(statusList.size());
|
|
|
for (WmScorePackageStatus item : statusList) {
|
|
|
WmScorePackage wmScorePackage = scorePackageMap.get(item.getPackageId());
|
|
|
if (null != wmScorePackage) {
|
|
@@ -406,8 +416,7 @@ public class ApiController {
|
|
|
if ("1".equals(wmScorePackage.getEnableFlag())) {
|
|
|
continue;
|
|
|
}
|
|
|
- if (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
|
|
|
- && !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
|
|
|
+ if (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2()) && !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -416,8 +425,7 @@ public class ApiController {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
|
map.put("value", wmScorePackage.getId());
|
|
|
- String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
|
|
|
- .getDrugProducerList());
|
|
|
+ String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
map.put("drugProducer", drugProducer);
|
|
|
listMap.add(map);
|
|
|
}
|
|
@@ -426,9 +434,7 @@ public class ApiController {
|
|
|
if ("3".equals(wmScorePackage.getPackageType1())) {
|
|
|
continue;
|
|
|
}
|
|
|
- /**
|
|
|
- * 过滤有效任务类型
|
|
|
- */
|
|
|
+ // 过滤有效任务类型
|
|
|
WmScoreTaskType taskType = new WmScoreTaskType();
|
|
|
taskType.setTaskTypeId(taskTypeId);
|
|
|
taskType.setScoreId(wmScorePackage.getId());
|
|
@@ -439,25 +445,28 @@ public class ApiController {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
|
map.put("value", wmScorePackage.getId());
|
|
|
- String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
|
|
|
- .getDrugProducerList());
|
|
|
+ String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
map.put("drugProducer", drugProducer);
|
|
|
listMap.add(map);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ listMap = Collections.emptyList();
|
|
|
}
|
|
|
+ } else {
|
|
|
+ listMap = Collections.emptyList();
|
|
|
}
|
|
|
-
|
|
|
dictMap.put(config.getDictGroupName(), listMap);
|
|
|
+
|
|
|
} else if ("package_drug_list".equals(config.getDictGroupName())) {
|
|
|
// 前端自动获取
|
|
|
dictMap.put(config.getDictGroupName(), "package_drug_list");
|
|
|
} else if ("medical_equipment_list".equals(config.getDictGroupName())) {
|
|
|
- List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
+ List<Map<String, Object>> listMap;
|
|
|
// 手术跟台任务类型-推广产品
|
|
|
- List<MedicalEquipment> medicalEquipmentList = medicalEquipmentService.listByDrugId(SecurityUtils.getUser().getDeptId());
|
|
|
+ List<MedicalEquipment> medicalEquipmentList = medicalEquipmentService.listByDrugId(user.getDeptId());
|
|
|
if (CollUtil.isNotEmpty(medicalEquipmentList)) {
|
|
|
listMap = medicalEquipmentList.stream().map(medicalEquipment -> {
|
|
|
Map<String, Object> equipmentMap = new HashMap<>();
|
|
@@ -465,15 +474,17 @@ public class ApiController {
|
|
|
equipmentMap.put("label", medicalEquipment.getName());
|
|
|
return equipmentMap;
|
|
|
}).collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ listMap = Collections.emptyList();
|
|
|
}
|
|
|
dictMap.put(config.getDictGroupName(), listMap);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- connfigMap.put("config", listConfig);
|
|
|
- connfigMap.put("dict", dictMap);
|
|
|
- return connfigMap;
|
|
|
+ configMap.put("config", listConfig);
|
|
|
+ configMap.put("dict", dictMap);
|
|
|
+ return configMap;
|
|
|
}
|
|
|
|
|
|
@SysLog("通过任务类型获取表单配置")
|