| | |
| | | .collect(Collectors.toMap(LtkjHybgd::getJcxm, p -> p, (existing, replacement) -> existing)) |
| | | .values()); |
| | | |
| | | // hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); |
| | | |
| | | Map<String, List<LtkjHybgd>> listMap = hybgds.stream().collect(Collectors.groupingBy(LtkjHybgd::getJyjg)); |
| | | boolean isGroupOnce = false; |
| | | String groupOnceProResult = ""; |
| | | if (listMap.size()==1){ |
| | | String firstKey = listMap.keySet().stream().findFirst().orElse(null); |
| | | LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(SysDictData::getDictType,"qj_type"); |
| | | wrapper.eq(SysDictData::getDictLabel,firstKey); |
| | | List<SysDictData> dictList = sysDictDataService.list(); |
| | | if (!dictList.isEmpty()) { |
| | | isGroupOnce = true; |
| | | groupOnceProResult = firstKey; |
| | | } |
| | | } |
| | | |
| | | // hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); |
| | | // hybgds = hybgds.stream() |
| | | // .sorted(Comparator.comparingInt( |
| | | // a -> a.getJcxm().length() // 根据名字的长度排序 |
| | | // )) |
| | | // .collect(Collectors.toList()); |
| | | if (!isGroupOnce){ |
| | | // 大类项目名称 |
| | | //TODO 查看是否可以加条码号进行区分 现在是根据项目名称进行区分 |
| | | String xmmc = hysqd.getXmmc(); |
| | | ArrayList<List<String>> lists = new ArrayList<>(); |
| | | HashSet<String> hashSet = new HashSet<>(); |
| | | String shsj = ""; |
| | | for (LtkjHybgd hybgd : hybgds) { |
| | | shsj = hybgd.getShsj(); |
| | | // 检查项目 |
| | | String jcxm = hybgd.getJcxm() != null ? hybgd.getJcxm().trim() : null; |
| | | // 检验结果 |
| | | String jyjg = hybgd.getJyjg() != null ? hybgd.getJyjg().trim() : null; |
| | | // 结果单位 |
| | | String jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; |
| | | // 范围值 |
| | | String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; |
| | | // 检验医师 |
| | | // String jyys = hybgd.getJyys(); |
| | | //审核医生 |
| | | String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; |
| | | // 审核医师编码 |
| | | String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; |
| | | String ycbz = ""; |
| | | |
| | | // 大类项目名称 |
| | | String xmmc = hysqd.getXmmc(); |
| | | ArrayList<List<String>> lists = new ArrayList<>(); |
| | | HashSet<String> hashSet = new HashSet<>(); |
| | | String shsj = ""; |
| | | for (LtkjHybgd hybgd : hybgds) { |
| | | if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)) { |
| | | try { |
| | | String[] fwzs = fwz.split("-"); |
| | | BigDecimal min = new BigDecimal(fwzs[0]); |
| | | BigDecimal max = new BigDecimal(fwzs[1]); |
| | | BigDecimal jyjgval = new BigDecimal(jyjg); |
| | | // 比较检验结果和范围值 |
| | | if (jyjgval.compareTo(min) < 0) { |
| | | // jyjg 小于范围最小值,添加下箭头 |
| | | // jyjg = jyjg + " ↓"; |
| | | ycbz = "↓"; |
| | | } else if (jyjgval.compareTo(max) > 0) { |
| | | // jyjg 大于范围最大值,添加上箭头 |
| | | // jyjg = jyjg + " ↑"; |
| | | ycbz = "↑"; |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | // LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); |
| | | // queryWrapper.eq(SysUser::getUserName,jyys); |
| | | // List<SysUser> sysUsers = userService.list(queryWrapper); |
| | | // if (!sysUsers.isEmpty()) |
| | | // hashSet.add(sysUsers.get(0).getNickName()); |
| | | String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm"); |
| | | if (null != shys && null != shysmc && key.equals("Y")) { |
| | | hashSet.add(shysmc + "|" + shys); |
| | | } else { |
| | | if (null != shysmc) hashSet.add(shysmc); |
| | | } |
| | | ArrayList<String> strings = new ArrayList<>(); |
| | | strings.add(jcxm); |
| | | strings.add(jyjg); |
| | | strings.add(ycbz); |
| | | strings.add(jgdw); |
| | | strings.add(fwz); |
| | | strings.add(hybgd.getJcxmid()); |
| | | strings.add(hysqd.getXmid()); |
| | | lists.add(strings); |
| | | } |
| | | if (!lists.isEmpty()) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("data", lists); |
| | | map.put("jyys", hashSet); |
| | | if (StrUtil.isNotBlank(shsj)) { |
| | | shsj = shsj.split(" ")[0]; |
| | | } |
| | | map.put("shsj", shsj); |
| | | data.put(xmmc, map); |
| | | } |
| | | }else { |
| | | String xmmc = hysqd.getXmmc(); |
| | | ArrayList<List<String>> lists = new ArrayList<>(); |
| | | HashSet<String> hashSet = new HashSet<>(); |
| | | LtkjHybgd hybgd = hybgds.get(0); |
| | | String shsj = ""; |
| | | shsj = hybgd.getShsj(); |
| | | // 检查项目 |
| | | String jcxm = hybgd.getJcxm() != null ? hybgd.getJcxm().trim() : null; |
| | | // 检验结果 |
| | | String jyjg = hybgd.getJyjg() != null ? hybgd.getJyjg().trim() : null; |
| | | // 结果单位 |
| | | String jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; |
| | | // 范围值 |
| | | String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; |
| | | // 检验医师 |
| | | // String jyys = hybgd.getJyys(); |
| | | //审核医生 |
| | | String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; |
| | | // 审核医师编码 |
| | | String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; |
| | | String ycbz = ""; |
| | | |
| | | if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)) { |
| | | if (StrUtil.isNotBlank(groupOnceProResult) && fwz != null && StrUtil.isNotBlank(fwz)) { |
| | | try { |
| | | String[] fwzs = fwz.split("-"); |
| | | BigDecimal min = new BigDecimal(fwzs[0]); |
| | | BigDecimal max = new BigDecimal(fwzs[1]); |
| | | BigDecimal jyjgval = new BigDecimal(jyjg); |
| | | // 比较检验结果和范围值 |
| | | BigDecimal jyjgval = new BigDecimal(groupOnceProResult); |
| | | if (jyjgval.compareTo(min) < 0) { |
| | | // jyjg 小于范围最小值,添加下箭头 |
| | | // jyjg = jyjg + " ↓"; |
| | | ycbz = "↓"; |
| | | } else if (jyjgval.compareTo(max) > 0) { |
| | | // jyjg 大于范围最大值,添加上箭头 |
| | | // jyjg = jyjg + " ↑"; |
| | | ycbz = "↑"; |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | // LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); |
| | | // queryWrapper.eq(SysUser::getUserName,jyys); |
| | | // List<SysUser> sysUsers = userService.list(queryWrapper); |
| | | // if (!sysUsers.isEmpty()) |
| | | // hashSet.add(sysUsers.get(0).getNickName()); |
| | | String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm"); |
| | | if (null != shys && null != shysmc && key.equals("Y")) { |
| | | hashSet.add(shysmc + "|" + shys); |
| | |
| | | if (null != shysmc) hashSet.add(shysmc); |
| | | } |
| | | ArrayList<String> strings = new ArrayList<>(); |
| | | strings.add(jcxm); |
| | | strings.add(jyjg); |
| | | strings.add(xmmc); |
| | | strings.add(groupOnceProResult); |
| | | strings.add(ycbz); |
| | | strings.add(jgdw); |
| | | strings.add(fwz); |
| | | strings.add(hybgd.getJcxmid()); |
| | | strings.add(hysqd.getXmid()); |
| | | lists.add(strings); |
| | | } |
| | | if (!lists.isEmpty()) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("data", lists); |
| | | map.put("jyys", hashSet); |
| | |
| | | tjOrderDetails = tjOrderDetails.stream().filter(i -> StrUtil.isNotBlank(i.getProResult())).collect(Collectors.toList()); |
| | | tjOrderDetails = new ArrayList<>(tjOrderDetails.stream() |
| | | .collect(Collectors.toMap(TjOrderDetail::getProId, i -> i, (existing, replacement) -> existing)).values()); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | TjProject tjProject = projectService.getById(String.valueOf(tjOrderDetail.getProId())); |
| | | if (null != tjProject && tjProject.getNeedReport().equals("Y")) { |
| | | tjOrderDetail.setProject(tjProject); |
| | | |
| | | if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId()) && entry.getKey().getType() == 1) { |
| | | TjPdfVO tjPdfVO = new TjPdfVO(); |
| | | tjPdfVO.setProName(tjOrderDetail.getProject().getProName()); |
| | | tjPdfVO.setProResult(tjOrderDetail.getProResult()); |
| | | tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); |
| | | if (null != tjProject.getProMetering()) { |
| | | tjPdfVO.setCompany(tjProject.getProMetering()); |
| | | } else { |
| | | tjPdfVO.setCompany("/"); |
| | | } |
| | | tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId())); |
| | | tjPdfVO.setPid(String.valueOf(tjProject.getProParentId())); |
| | | tjPdfVO.setXh(tjProject.getXh()); |
| | | // LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>(); |
| | | // wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber); |
| | | // wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())); |
| | | tjPdfVOS.add(tjPdfVO); |
| | | |
| | | boolean isGroupOnce = false; |
| | | String groupOnceProResult = ""; |
| | | if (tjOrderDetails.size() > 1) { |
| | | Map<String, List<TjOrderDetail>> listMap = tjOrderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProResult)); |
| | | if (listMap.size() == 1){ |
| | | String firstKey = listMap.keySet().stream().findFirst().orElse(null); |
| | | LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(SysDictData::getDictType,"qj_type"); |
| | | wrapper.eq(SysDictData::getDictLabel,firstKey); |
| | | List<SysDictData> list = sysDictDataService.list(); |
| | | if (!list.isEmpty()) { |
| | | isGroupOnce = true; |
| | | groupOnceProResult = firstKey; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!isGroupOnce) { |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | TjProject tjProject = projectService.getById(String.valueOf(tjOrderDetail.getProId())); |
| | | if (null != tjProject && tjProject.getNeedReport().equals("Y")) { |
| | | tjOrderDetail.setProject(tjProject); |
| | | |
| | | if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId()) && entry.getKey().getType() == 1) { |
| | | TjPdfVO tjPdfVO = new TjPdfVO(); |
| | | tjPdfVO.setProName(tjOrderDetail.getProject().getProName()); |
| | | tjPdfVO.setProResult(tjOrderDetail.getProResult()); |
| | | tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); |
| | | if (null != tjProject.getProMetering()) { |
| | | tjPdfVO.setCompany(tjProject.getProMetering()); |
| | | } else { |
| | | tjPdfVO.setCompany("/"); |
| | | } |
| | | tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId())); |
| | | tjPdfVO.setPid(String.valueOf(tjProject.getProParentId())); |
| | | tjPdfVO.setXh(tjProject.getXh()); |
| | | // LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>(); |
| | | // wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber); |
| | | // wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())); |
| | | tjPdfVOS.add(tjPdfVO); |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | TjOrderRemark orderRemark = entry.getKey(); |
| | | TjProject project = projectService.getById(orderRemark.getProId()); |
| | | if (null != project && project.getNeedReport().equals("Y") && orderRemark.getType() == 1) { |
| | | TjPdfVO tjPdfVO = new TjPdfVO(); |
| | | tjPdfVO.setProName(project.getProName()); |
| | | tjPdfVO.setProResult(groupOnceProResult); |
| | | tjPdfVO.setExc(0L); |
| | | tjPdfVO.setCompany("/"); |
| | | tjPdfVO.setProId(String.valueOf(orderRemark.getProId())); |
| | | tjPdfVO.setPid(String.valueOf(orderRemark.getProId())); |
| | | tjPdfVO.setXh(1); |
| | | tjPdfVOS.add(tjPdfVO); |
| | | } |
| | | } |
| | | if(!tjPdfVOS.isEmpty()){ |
| | | // tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); |
| | | // tjPdfVOS = tjPdfVOS.stream() |