Pārlūkot izejas kodu

init: init project step4: biz code support

shc 1 gadu atpakaļ
vecāks
revīzija
236c783011

+ 247 - 84
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -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());

+ 3 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaAgentController.java

@@ -105,7 +105,9 @@ public class WmDaAgentController {
 
         Integer myselfId = SecurityUtils.getUser().getDeptId();
 
-        Set<Integer> ids = new HashSet<>(myselfId);
+        Set<Integer> ids = new HashSet<>();
+        ids.add(myselfId);
+
 
         // 查询我的下游
         WmRelation wmRelation = new WmRelation();