陈昶聿
8 小时以前 b73334e984e391cb2ea6b2651e77bf008e127459
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -329,18 +329,41 @@
            }
            //获取该患者所有的执行状态
            List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream().filter((item -> item.getSubid().equals(serviceSubtask1.getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
            List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
                Map<String, Object> map = new HashMap<>();
                map.put("sort", item.getSort());
                map.put("preachform", item.getPreachform());
                map.put("compensateTime", item.getCompensateTime());
                return map;
            }).collect(Collectors.toList());
            serviceTaskVO.setPreachformList(resultList);
//            List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream().filter((item -> item.getSubid().equals(serviceSubtask1.getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
//            List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
//                Map<String, Object> map = new HashMap<>();
//                map.put("sort", item.getSort());
//                map.put("preachform", item.getPreachform());
//                map.put("compensateTime", item.getCompensateTime());
//                return map;
//            }).collect(Collectors.toList());
//            serviceTaskVO.setPreachformList(resultList);
//            String result = resultList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
//            serviceTaskVO.setPreachform(result);
        }
        if(StringUtils.isNotEmpty(serviceTaskVO.getPreachformDesc())){
            //直接通过PreachformDesc生成List返回
            try {
                List<Map<String, Object>> mapList = objectMapper.readValue(serviceTaskVO.getPreachformDesc(), List.class);
                serviceTaskVO.setPreachformList(mapList);
            }catch (Exception e) {
            }
        }else {
            if(CollectionUtils.isNotEmpty(list)){
                //获取该患者所有的执行状态
                List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream()
                        .filter((item -> item.getSubid().equals(list.get(0).getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
                List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
                    Map<String, Object> map = new HashMap<>();
                    map.put("sort", item.getSort());
                    map.put("preachform", item.getPreachform());
                    map.put("compensateTime", item.getCompensateTime());
                    return map;
                }).collect(Collectors.toList());
                serviceTaskVO.setPreachformList(resultList);
            }
        }
        serviceTaskVO.setPatTaskRelevances(patTaskRelevances);
        return serviceTaskVO;
@@ -493,6 +516,7 @@
        if (patMedInhospList.size() > 0) {
            serviceSubtask1.setIsVisitAgain(2);
            serviceSubtask1.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";患者再入院了" : "患者再入院了");
            serviceSubtask1.setSendstate(4L);
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
            return "无需再次随访,患者再入院了";
        } else if (serviceSubtask1.getSendstate() == 4L) {
@@ -754,8 +778,8 @@
                    serviceSubtask.setInhospid(patTaskRelevance.getHospid());
                    //新建完成就是待发送状态
                    serviceSubtask.setSendstate(2L);
                    serviceSubtask.setDeptcode(patTaskRelevance.getDeptcode());
                    serviceSubtask.setDeptname(patTaskRelevance.getDeptName());
                    serviceSubtask.setDeptcode(StringUtils.isNotEmpty(patTaskRelevance.getDeptcode())?patTaskRelevance.getDeptcode():serviceTaskVO.getDeptcode());
                    serviceSubtask.setDeptname(StringUtils.isNotEmpty(patTaskRelevance.getDeptName())?patTaskRelevance.getDeptName():serviceTaskVO.getDeptname());
                    serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
                    serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname());
                    serviceSubtask.setType(serviceTaskVO.getType());
@@ -776,9 +800,13 @@
                    serviceSubtask.setContinueTimeNow(patTaskRelevance.getContinueTimeNow());
                    serviceSubtask.setCreateBy(serviceTask.getCreateBy());
                    serviceSubtask.setUpdateBy(serviceTask.getCreateBy());
                    serviceSubtask.setVisitTime(patTaskRelevance.getVisittime());
                    if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
                    serviceSubtask.setVisitTime(DateUtils.parseDate(serviceTaskVO.getShowTimeMorn()));
                    //如果立即执行,时间就是当前时间
                    if(serviceTaskVO.getSendType()!=null&&serviceTaskVO.getSendType()==2) serviceSubtask.setVisitTime(new Date());
                    if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) {
                        serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
                        serviceSubtask.setVisitTime(patTaskRelevance.getVisittime());
                    }
                    serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                    serviceSubtask.getId().intValue();
@@ -929,8 +957,10 @@
                    if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                        String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
                        String[] icd10names = serviceTaskVO.getIcd10name().split(",");
                        if (icd10codes.length != icd10names.length) {
                            throw new BaseException("疾病编码和疾病名称数量不一致");
                        if(!active.equals("nhfy")&&!active.equals("druid")){
                            if (icd10codes.length != icd10names.length) {
                                throw new BaseException("疾病编码和疾病名称数量不一致");
                            }
                        }
                        for (int i = 0; i < icd10codes.length; i++) {
                            //先查询一下是否存在
@@ -2521,6 +2551,29 @@
    }
    /**
     * 获取专病随访统计比例
     *
     * @param serviceSubtaskCountReq
     * @return
     */
    @Override
    @Cacheable(value = "specialSfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
    public List<ServiceSubtaskStatistic> getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        log.info("getSpecialSfStatistics的入参为:{}", serviceSubtaskCountReq);
        String groupKey = "drcode";
        if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
            groupKey = "drcode";
        } else {
            groupKey = "task_name";
        }
        List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
        serviceSubtaskCountReq.setGroupKey(groupKey);
        serviceSubtaskStatistics = serviceSubtaskMapper.getSpecialSfStatistics(serviceSubtaskCountReq);
        return serviceSubtaskStatistics;
    }
    /**
     * 随访统计-及时率统计
     *
     * @param serviceSubtaskCountReq
@@ -2996,7 +3049,6 @@
        }
        return serviceSubtaskStatistic;
    }
    /**
     * 首次随访统计
     *