|
@@ -49,7 +49,6 @@ import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.WmQuizVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.MedicalEquipment;
|
|
|
-import com.qunzhixinxi.hnqz.admin.api.entity.SysUserExtRecord;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUserSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDistribution;
|
|
@@ -185,6 +184,7 @@ import java.time.LocalTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
@@ -268,89 +268,89 @@ public class ApiController {
|
|
|
return R.failed("taskTypeId不能为空");
|
|
|
}
|
|
|
|
|
|
- Map<String, Object> configMap = new LinkedHashMap<>();
|
|
|
+ //Map<String, Object> configMap;
|
|
|
|
|
|
// 库存调查需要调查常规的/首次的/库存盘点-中药颗粒剂的
|
|
|
log.info("get_task_content_config_by_task_type_id:{}", taskTypeId);
|
|
|
- switch (taskTypeId) {
|
|
|
- case "14":
|
|
|
- case "31":
|
|
|
- case "37":
|
|
|
+ //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 "51":
|
|
|
- case "52":
|
|
|
- case "53":
|
|
|
- // 信用管理A/B/C 都取51
|
|
|
- configMap = getTaskContentConfigByTaskTypeId("51");
|
|
|
- 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("801"));
|
|
|
-
|
|
|
- HnqzUser user = SecurityUtils.getUser();
|
|
|
-
|
|
|
-
|
|
|
- String yycUsername = user != null ? user.getUsername() : "";
|
|
|
-
|
|
|
- List<Map<String, String>> urls = Stream.of(RANDOM_QUIZ_URL).map(url -> {
|
|
|
- String[] split = url.split("\\|");
|
|
|
- Map<String, String> quizInfoMap = new HashMap<>(2);
|
|
|
- quizInfoMap.put("label", split[0]);
|
|
|
- quizInfoMap.put("url", split[1] + "?yycUsername=" + yycUsername + "&yycPkgId=");
|
|
|
- return quizInfoMap;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
- configMap.put("urls", urls);
|
|
|
- break;
|
|
|
- default:
|
|
|
- configMap = getTaskContentConfigByTaskTypeId(taskTypeId);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ //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 "51":
|
|
|
+ //case "52":
|
|
|
+ //case "53":
|
|
|
+ // // 信用管理A/B/C 都取51
|
|
|
+ // configMap = getTaskContentConfigByTaskTypeId("51");
|
|
|
+ // 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("801"));
|
|
|
+ //
|
|
|
+ // HnqzUser user = SecurityUtils.getUser();
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // String yycUsername = user != null ? user.getUsername() : "";
|
|
|
+ //
|
|
|
+ // List<Map<String, String>> urls = Stream.of(RANDOM_QUIZ_URL).map(url -> {
|
|
|
+ // String[] split = url.split("\\|");
|
|
|
+ // Map<String, String> quizInfoMap = new HashMap<>(2);
|
|
|
+ // quizInfoMap.put("label", split[0]);
|
|
|
+ // quizInfoMap.put("url", split[1] + "?yycUsername=" + yycUsername + "&yycPkgId=");
|
|
|
+ // return quizInfoMap;
|
|
|
+ // }).collect(Collectors.toList());
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // configMap.put("urls", urls);
|
|
|
+ // break;
|
|
|
+ // default:
|
|
|
+ // configMap = getTaskContentConfigByTaskTypeId(taskTypeId);
|
|
|
+ // break;
|
|
|
+ //}
|
|
|
+ Map<String, Object> configMap = getTaskContentConfigByTaskTypeId(taskTypeId);
|
|
|
return R.ok(configMap);
|
|
|
}
|
|
|
|
|
@@ -379,6 +379,141 @@ public class ApiController {
|
|
|
dictMap.put(config.getDictGroupName(), dictItems);
|
|
|
}
|
|
|
|
|
|
+ if ("tree".equals(config.getTaskFiledType())) {
|
|
|
+ if ("package_tree".equals(config.getDictGroupName())) {
|
|
|
+ // 查询可以关联的积分包
|
|
|
+ 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));
|
|
|
+
|
|
|
+ log.info("score_pkg_status:<--{}-->", statusList);
|
|
|
+ if (CollUtil.isNotEmpty(statusList)) {
|
|
|
+ Set<String> scoreIds = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
|
|
|
+ // 批量查询积分包
|
|
|
+ log.info("score_pkg_ids:<--{}-->", scoreIds);
|
|
|
+ List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(scoreIds);
|
|
|
+ log.info("score_pkgs:<--{}-->", wmScorePackages);
|
|
|
+ Map<String, WmScorePackage> scorePackageMap = wmScorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
+ // 批量查询scoreTaskType
|
|
|
+ log.info("score_package_map:<--{}-->", scorePackageMap);
|
|
|
+ List<Map<String, Object>> scoreTaskTypeCountList = wmScoreTaskTypeMapper.countByScoreId(taskTypeId, scoreIds);
|
|
|
+ log.info("score_task_type_count_list:<--{}-->", scoreTaskTypeCountList);
|
|
|
+ Map<String, Integer> scoreTaskTypeCountMap = new LinkedHashMap<>();
|
|
|
+ String pkgId = "-10";
|
|
|
+ String count = "0";
|
|
|
+ for (Map<String, Object> map : scoreTaskTypeCountList) {
|
|
|
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
|
|
|
+ Object value = entry.getValue();
|
|
|
+ String key = entry.getKey();
|
|
|
+
|
|
|
+
|
|
|
+ log.info("value:<--{}-->", value);
|
|
|
+ if (Objects.nonNull(value) || !"null".equals(value.toString())) {
|
|
|
+ if ("score_id".equals(key)) {
|
|
|
+ pkgId = value.toString();
|
|
|
+ }
|
|
|
+ if ("COUNT".equalsIgnoreCase(key)) {
|
|
|
+ count = value.toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("pkg_id:{}, count:{}", pkgId, count);
|
|
|
+ scoreTaskTypeCountMap.put(pkgId, Integer.valueOf(count));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("score_task_type_count_map:<--{}-->", scoreTaskTypeCountMap);
|
|
|
+ listMap = new ArrayList<>(statusList.size());
|
|
|
+ for (WmScorePackageStatus item : statusList) {
|
|
|
+ WmScorePackage wmScorePackage = scorePackageMap.get(item.getPackageId());
|
|
|
+ if (null != wmScorePackage) {
|
|
|
+ if ("0".equals(wmScorePackage.getTaskAddFlag())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (LocalDate.now().isAfter(wmScorePackage.getEndTime())) {
|
|
|
+ // 过截止日期的过滤掉
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("28".equals(taskTypeId)) {
|
|
|
+ if ("3".equals(wmScorePackage.getPackageType1())) {
|
|
|
+ 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());
|
|
|
+ map.put("drugProducer", drugProducer);
|
|
|
+ listMap.add(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if ("3".equals(wmScorePackage.getPackageType1())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 过滤有效任务类型
|
|
|
+ WmScoreTaskType taskType = new WmScoreTaskType();
|
|
|
+ taskType.setTaskTypeId(taskTypeId);
|
|
|
+ taskType.setScoreId(wmScorePackage.getId());
|
|
|
+
|
|
|
+ int total = scoreTaskTypeCountMap.getOrDefault(wmScorePackage.getId(), 0);
|
|
|
+ log.info("total:<{}>", total);
|
|
|
+ if (total != 0) {
|
|
|
+ Map<String, Object> map = new HashMap<>(5);
|
|
|
+ map.put("label", wmScorePackage.getScorePackageName());
|
|
|
+ map.put("value", wmScorePackage.getId());
|
|
|
+ String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
+ map.put("drugProducer", drugProducer);
|
|
|
+ map.put("drugTableIds", wmScorePackage.getDrugtable());
|
|
|
+ if (ArrayUtil.isNotEmpty(wmScorePackage.getDrugtable())) {
|
|
|
+ List<WmDaDrugEntDrugtable> drugtables =
|
|
|
+ wmDaDrugEntDrugtableService.list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getId,
|
|
|
+ Arrays.stream(wmScorePackage.getDrugtable()).collect(Collectors.toSet())));
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(drugtables)) {
|
|
|
+ List<Map<String, String>> drugMap = drugtables.stream().map(drug -> {
|
|
|
+ Map<String, String> res = new HashMap<>(3);
|
|
|
+ res.put("drugId", drug.getId());
|
|
|
+ res.put("drugName", drug.getDrugname());
|
|
|
+ res.put("drugPordName", drug.getDrugnameTy());
|
|
|
+ return res;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ map.put("drugTable", drugMap);
|
|
|
+ } else {
|
|
|
+ map.put("drugTable", Collections.emptyMap());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ map.put("drugTable", Collections.emptyMap());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ listMap.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ listMap = Collections.emptyList();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ listMap = Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ dictMap.put(config.getDictGroupName(), listMap);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if ("domain".equals(config.getTaskFiledType())) {
|
|
|
if ("ent_service".equals(config.getDictGroupName())) {
|
|
|
List<WmDaDrugEnt> wmDaDrugEnts = Objects.isNull(user) ? wmDaDrugEntService.list() : getDrugListBySecUser(user.getPlatId());
|
|
@@ -451,10 +586,9 @@ public class ApiController {
|
|
|
List<Map<String, Object>> scoreTaskTypeCountList = wmScoreTaskTypeMapper.countByScoreId(taskTypeId, scoreIds);
|
|
|
log.info("score_task_type_count_list:<--{}-->", scoreTaskTypeCountList);
|
|
|
Map<String, Integer> scoreTaskTypeCountMap = new LinkedHashMap<>();
|
|
|
+ String pkgId = "-10";
|
|
|
+ String count = "0";
|
|
|
for (Map<String, Object> map : scoreTaskTypeCountList) {
|
|
|
-
|
|
|
- String pkgId = "-10";
|
|
|
- String count = "0";
|
|
|
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
|
|
Object value = entry.getValue();
|
|
|
String key = entry.getKey();
|
|
@@ -1371,7 +1505,36 @@ public class ApiController {
|
|
|
|
|
|
R<?> r = null;
|
|
|
try {
|
|
|
- r = wmTaskContentService.saveTaskContent(wmTaskContent, ipAddr, region);
|
|
|
+ String temp32 = wmTaskContent.getTemp32();
|
|
|
+ if (JSONUtil.isJsonArray(temp32)){
|
|
|
+
|
|
|
+ JSONArray array = JSONUtil.parseArray(temp32);
|
|
|
+
|
|
|
+ AtomicInteger score = new AtomicInteger();
|
|
|
+ array.forEach(item -> {
|
|
|
+
|
|
|
+ cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(item);
|
|
|
+
|
|
|
+ String packageId = jsonObject.getStr("packageId");
|
|
|
+ wmTaskContent.setTemp32(packageId);
|
|
|
+ String drugIds = jsonObject.getStr("drugIds");
|
|
|
+ wmTaskContent.setTemp17(drugIds);
|
|
|
+
|
|
|
+ R<?> r1 = wmTaskContentService.saveTaskContent(wmTaskContent, ipAddr, region);
|
|
|
+ Map<String, String> data = (Map<String, String>) r1.getData();
|
|
|
+ String s = data.get("score");
|
|
|
+ if (StrUtil.isNotBlank(s)){
|
|
|
+ score.addAndGet(Integer.parseInt(s));
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ Map<String, String> res = new HashMap<>(1);
|
|
|
+ res.put("score", String.valueOf(score.get()));
|
|
|
+ r = R.ok(res);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ r = wmTaskContentService.saveTaskContent(wmTaskContent, ipAddr, region);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
log.error("", e);
|
|
|
return R.failed(e.getMessage());
|