From 2703b3a022bea433419cfcf264099527a7cff63c Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 18 七月 2025 14:38:29 +0800 Subject: [PATCH] 报告弃检重复问题 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java | 243 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 173 insertions(+), 70 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 eae8abd..5ab0002 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 @@ -1722,6 +1722,7 @@ document.setMargins(70, 70, 40, 40); document.open(); + // Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>(); notHuaYanData(tjOrder.getTjNumber(), printReport, tjOrder, customer); try { @@ -2931,6 +2932,20 @@ .values()); + 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() @@ -2939,53 +2954,106 @@ // )) // .collect(Collectors.toList()); - // 澶х被椤圭洰鍚嶇О - 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; - // 妫�楠屽尰甯� + if (!isGroupOnce){ + // 澶х被椤圭洰鍚嶇О + 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 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)) { - 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 灏忎簬鑼冨洿鏈�灏忓�硷紝娣诲姞涓嬬澶� + 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 澶т簬鑼冨洿鏈�澶у�硷紝娣诲姞涓婄澶� + ycbz = "鈫�"; + } else if (jyjgval.compareTo(max) > 0) { + // jyjg 澶т簬鑼冨洿鏈�澶у�硷紝娣诲姞涓婄澶� // jyjg = jyjg + " 鈫�"; - ycbz = "鈫�"; + ycbz = "鈫�"; + } + } catch (Exception ignored) { } - } 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 jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; + String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; + String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; + String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; + String ycbz = ""; + 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(groupOnceProResult); + if (jyjgval.compareTo(min) < 0) { + ycbz = "鈫�"; + } else if (jyjgval.compareTo(max) > 0) { + ycbz = "鈫�"; + } + } catch (Exception ignored) { + } + } String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm"); if (null != shys && null != shysmc && key.equals("Y")) { hashSet.add(shysmc + "|" + shys); @@ -2993,16 +3061,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); @@ -3202,40 +3268,77 @@ 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()); - if(tjProject.getProDelivery()==1){ - if(StringUtil.isNotBlank(tjOrderDetail.getConclusion())){ - tjPdfVO.setProResult(tjOrderDetail.getProResult()+" "+tjOrderDetail.getConclusion()); - }else { - tjPdfVO.setProResult(tjOrderDetail.getProResult()); - } - }else { - 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()); + if(tjProject.getProDelivery()==1){ + if(StringUtil.isNotBlank(tjOrderDetail.getConclusion())){ + tjPdfVO.setProResult(tjOrderDetail.getProResult()+" "+tjOrderDetail.getConclusion()); + }else { + tjPdfVO.setProResult(tjOrderDetail.getProResult()); + } + }else { + 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