From cdd1ef49773e49dd91d19f9d02c82fb70e9f658c Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 18 七月 2025 18:07:54 +0800 Subject: [PATCH] zjh20250718 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java | 212 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 157 insertions(+), 55 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java index b012cd3..21aac68 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java @@ -2558,60 +2558,129 @@ .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); @@ -2619,16 +2688,14 @@ 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); @@ -2837,31 +2904,66 @@ 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() -- Gitblit v1.8.0