From 6efa4693cb921bf4c582d48d504e02c73f7f336b Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 04 八月 2025 17:35:11 +0800 Subject: [PATCH] zjh202500804 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 287 ++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 174 insertions(+), 113 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java index d7fde73..4149025 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java @@ -14,6 +14,7 @@ import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.core.domain.entity.SysDept; +import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.enums.DataSourceType; @@ -33,6 +34,7 @@ import com.ltkj.mall.mallOrderUtils.TjConstants; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDeptService; +import com.ltkj.system.service.ISysDictDataService; import com.ltkj.system.service.ISysUserService; import com.ltkj.web.controller.his.HisApiGetMethodService; import com.ltkj.web.controller.his.HisApiMethodService; @@ -49,6 +51,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -134,6 +137,10 @@ private ITjProAdvicerulesService tjProAdvicerulesService; @Autowired private TjOrderYcxmService ycxmService; + @Autowired + private TjReportController reportController; + @Autowired + private ISysDictDataService sysDictDataService; @GetMapping("/ceshicc") @@ -1133,9 +1140,6 @@ /** * 鏍规嵁浣撴璁㈠崟鍙疯幏鍙栦綋妫�璇︽儏淇℃伅鎺ュ彛 * - * @param tjNumber - * @param advice - * @param checkStatus * @return */ @PostMapping("/getTjdetailList") @@ -1166,7 +1170,12 @@ if (StrUtil.isNotBlank(dto.getZhiyeJg())) tjOrder.setZhiyeJg(dto.getZhiyeJg()); if (orderService.updateById(tjOrder)) { - return AjaxResult.success("鎿嶄綔鎴愬姛"); + AjaxResult pdf = reportController.toPdf(dto.getTjNumber()); + if (!pdf.get("code").toString().equals("200")) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("鎿嶄綔澶辫触!"); + } + return AjaxResult.success("瀹℃牳骞剁敓鎴愭姤鍛婃垚鍔�!"); } return AjaxResult.error("鎿嶄綔澶辫触"); } @@ -1382,7 +1391,7 @@ } private AjaxResult getResult(String tjNumber) { - asyncService.updateCheckType(tjNumber); +// asyncService.updateCheckType(tjNumber); List<Map<String, Object>> list = new ArrayList<>(); TjOrder one = orderService.getOrderByTjNum(tjNumber); @@ -1409,60 +1418,96 @@ parent.put("", remark.getXmlb()); List<TjOrderDetail> dels = new ArrayList<>(); if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { - for (TjOrderDetail tjOrderDetail : tjOrderDetails) { - if (remark.getProsId().equals(tjOrderDetail.getProsId())) { - String ckfw = tjOrderDetail.getStanId(); - if (null != ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) { - ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), ""); - } - if (StrUtil.isNotBlank(ckfw)) { - try { - if (ckfw != null && ckfw.contains("-")) { - Integer.parseInt(tjOrderDetail.getYcbz()); - String[] split = ckfw.split("-"); - BigDecimal min = new BigDecimal(split[0]); - BigDecimal max = new BigDecimal(split[1]); - String proResult = tjOrderDetail.getProResult(); - if (null != proResult) { - BigDecimal jyjgval = new BigDecimal(proResult); - if (jyjgval.compareTo(min) < 0) { - tjOrderDetail.setYcbz("鈫�"); - } else if (jyjgval.compareTo(max) > 0) { - tjOrderDetail.setYcbz("鈫�"); - } else if (proResult.contains("闃�")) { - tjOrderDetail.setYcbz(""); - } else { - tjOrderDetail.setYcbz(""); - } - if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) { + + Map<String, List<TjOrderDetail>> listMap = tjOrderDetails.stream() + .filter(i -> StrUtil.isNotBlank(i.getProResult()) && remark.getProsId().equals(i.getProsId())) + .collect(Collectors.groupingBy(TjOrderDetail::getProResult)); + + 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(wrapper); + if (!dictList.isEmpty()) { + isGroupOnce = true; + groupOnceProResult = firstKey; + } + } + if (isGroupOnce) { + TjOrderDetail tjOrderDetail = new TjOrderDetail(); + tjOrderDetail.setProName(remark.getProName()); + tjOrderDetail.setProResult(groupOnceProResult); + dels.add(tjOrderDetail); + } else { + for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + if (remark.getProsId().equals(tjOrderDetail.getProsId())) { + /* String ckfw = tjOrderDetail.getStanId(); + if (null != ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) { + ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), ""); + } + if (StrUtil.isNotBlank(ckfw)) { + try { + if (ckfw != null && ckfw.contains("-")) { + String ycbz = tjOrderDetail.getYcbz(); + if(StringUtil.isBlank(ycbz)){ + Integer.parseInt(tjOrderDetail.getYcbz()); + String[] split = ckfw.split("-"); + BigDecimal min = new BigDecimal(split[0]); + BigDecimal max = new BigDecimal(split[1]); + String proResult = tjOrderDetail.getProResult(); + if (null != proResult) { + BigDecimal jyjgval = new BigDecimal(proResult); + if (jyjgval.compareTo(min) < 0) { + tjOrderDetail.setYcbz("鈫�"); + } else if (jyjgval.compareTo(max) > 0) { + tjOrderDetail.setYcbz("鈫�"); + } else if (proResult.contains("闃�")) { + tjOrderDetail.setYcbz(""); + } else { + tjOrderDetail.setYcbz(""); + } + if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) { + tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); + } + } else { + tjOrderDetail.setYcbz(""); + } + }else { tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); } } else { - tjOrderDetail.setYcbz(""); + if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) + tjOrderDetail.setYcbz(""); + + if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) + tjOrderDetail.setYcbz("鈫�"); } - } else { - if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) - tjOrderDetail.setYcbz(""); - - if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) - tjOrderDetail.setYcbz("鈫�"); + } catch (NumberFormatException ignored) { } - } catch (NumberFormatException ignored) { + } else { + if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) + tjOrderDetail.setYcbz(""); + + if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) + tjOrderDetail.setYcbz("鈫�"); + tjOrderDetail.setProResult(tjOrderDetail.getProResult()); + }*/ + + String ycbz = tjOrderDetail.getYcbz(); + if(StringUtil.isNotBlank(ycbz)){ + tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); } - } else { - if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) - tjOrderDetail.setYcbz(""); - - if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) - tjOrderDetail.setYcbz("鈫�"); - tjOrderDetail.setProResult(tjOrderDetail.getProResult()); - } - - if (remark.getOrgType().equals(tjOrderDetail.getOrgType())) { - dels.add(tjOrderDetail); + if (remark.getOrgType().equals(tjOrderDetail.getOrgType())) { + dels.add(tjOrderDetail); + } } } } + + String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); @@ -1569,18 +1614,24 @@ public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) { try { if (StrUtil.isNotBlank(tjNum)) { + List<Map<String, Object>> maps = new ArrayList<>(); TjOrder one = orderService.getOrderByTjNum(tjNum); if (one == null) { return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒"); } yichangxiangmu(tjNum); - LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); - wq.eq(TjOrderYcxm::getTjh, tjNum); - List<TjOrderYcxm> list = ycxmService.list(wq); - if (null != list && !list.isEmpty()) { - Collections.reverse(list); - return getOrderYcxmList(list); + List<TjOrderYcxm> tjOrderYcxmList = ycxmService.selectListByTjh(tjNum); + if (null != tjOrderYcxmList && !tjOrderYcxmList.isEmpty()) { + LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); + wq.eq(TjOrderYcxm::getTjh, tjNum); + List<TjOrderYcxm> list = ycxmService.list(wq); + if (null != list && !list.isEmpty()) { + Collections.reverse(list); + return getOrderYcxmList(list); + } else { + return AjaxResult.success(maps); + } } else { return zongjianyishengchakanyichangxiangmu(tjNum); } @@ -1596,11 +1647,12 @@ private static AjaxResult getOrderYcxmList(List<TjOrderYcxm> list) { try { List<Map<String, Object>> maps = getYcxmMapList(list); - if (!maps.isEmpty()) { + if (null != maps && !maps.isEmpty()) { List<Map<String, Object>> collect1 = maps.stream() .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString())) .collect(Collectors.toList()); return AjaxResult.success(collect1); +// return AjaxResult.success(maps); } return AjaxResult.success(maps); } catch (Exception ex) { @@ -1652,6 +1704,7 @@ return null; } } + private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) { List<Map<String, Object>> list = new ArrayList<>(); @@ -1758,77 +1811,85 @@ if (null != order) { String xb = customerService.getSexByTjh(order.getTjNumber()); List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); + + List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); if (null != remarkList && !remarkList.isEmpty()) { - for (TjOrderRemark remark : remarkList) { - Map<String, Object> parent = new HashMap<>(); - if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { - List<TjOrderDetail> dels = new ArrayList<>(); - for (TjOrderDetail tjOrderDetail : tjOrderDetails) { - if (remark.getProsId().equals(tjOrderDetail.getProsId())) { - if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) { - if (!tjOrderDetail.getDeptId().equals("2")) { - String replacedAll = tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "") - .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", "").replaceAll("鈼�", ""); + List<TjOrderRemark> collects = remarkList.stream() + .filter(b -> tjOrderYcxmList.stream() + .noneMatch(a -> a.getParentName() != null && a.getParentName().equals(b.getProName()))).collect(Collectors.toList()); + if (!collects.isEmpty()) { + for (TjOrderRemark remark : remarkList) { + Map<String, Object> parent = new HashMap<>(); + if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { + List<TjOrderDetail> dels = new ArrayList<>(); + for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + if (remark.getProsId().equals(tjOrderDetail.getProsId())) { + if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) { + if (!tjOrderDetail.getDeptId().equals("2")) { + String replacedAll = tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "") + .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", "").replaceAll("鈼�", ""); - List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() - , replacedAll, tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber, replacedAll, tjOrderDetail.getProResult()); + List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() + , replacedAll, tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber, replacedAll, tjOrderDetail.getProResult()); - if (null != maps && !maps.isEmpty()) { - tjOrderDetail.setAdvices(maps); - } - - } else { - String[] split = tjOrderDetail.getProResult().split("銆倈,|锛�"); - List<Map<String, Object>> mapList = new ArrayList<>(); - for (String s : split) { - s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", ""); - ; - Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0", xb); if (null != maps && !maps.isEmpty()) { - Object bt = maps.get("bt"); - Object nr = maps.get("nr"); - if (null != bt || null != nr) mapList.add(maps); + tjOrderDetail.setAdvices(maps); } - } - tjOrderDetail.setAdvices(mapList); - } + } else { + String[] split = tjOrderDetail.getProResult().split("銆倈,|锛�"); + List<Map<String, Object>> mapList = new ArrayList<>(); + for (String s : split) { + s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", ""); + ; + Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0", xb); + if (null != maps && !maps.isEmpty()) { + Object bt = maps.get("bt"); + Object nr = maps.get("nr"); + if (null != bt || null != nr) mapList.add(maps); + } + } + tjOrderDetail.setAdvices(mapList); + } + + } + dels.add(tjOrderDetail); } - dels.add(tjOrderDetail); + } + if (!dels.isEmpty()) { + parent.put("proName", remark.getProName()); + parent.put("jyjc", remark.getJyjc()); + parent.put("sone", dels); + list.add(parent); } } - if (!dels.isEmpty()) { - parent.put("proName", remark.getProName()); - parent.put("jyjc", remark.getJyjc()); - parent.put("sone", dels); - list.add(parent); + } + + List<Map<String, Object>> maps = getYcxmMapList(tjOrderYcxmList); + List<Map<String, Object>> collect = list.stream() + .filter(b -> maps.stream() + .noneMatch(a -> a.get("proName").equals(b.get("proName")))) // 杩囨护鎺夊湪 maps 涓瓨鍦ㄧ殑鐩稿悓鍏冪礌 + .collect(Collectors.toList()); + if (!collect.isEmpty()) { + for (Map<String, Object> map : collect) { + for (TjOrderDetail detail : (List<TjOrderDetail>) map.get("sone")) { + TjOrderYcxm ycxm = new TjOrderYcxm(); + ycxm.setTjh(tjNumber); + ycxm.setParentName(map.get("proName").toString()); + ycxm.setJcxm(detail.getProName()); + ycxm.setJcjg(detail.getProResult()); + ycxm.setCkfw(detail.getStanId()); + ycxm.setDw(detail.getProAdvice()); + ycxm.setJynr(JSONUtil.toJsonStr(detail.getAdvices())); + ycxm.setJyjc(map.get("jyjc").toString()); + ycxmService.save(ycxm); + } } } } - } - } - List<Map<String, Object>> maps = getYcxmMapList(tjOrderYcxmList); - List<Map<String, Object>> collect = list.stream() - .filter(b -> maps.stream() - .noneMatch(a -> a.get("proName").equals(b.get("proName")))) // 杩囨护鎺夊湪 maps 涓瓨鍦ㄧ殑鐩稿悓鍏冪礌 - .collect(Collectors.toList()); - if (!collect.isEmpty()) { - for (Map<String, Object> map : collect) { - for (TjOrderDetail detail : (List<TjOrderDetail>) map.get("sone")) { - TjOrderYcxm ycxm = new TjOrderYcxm(); - ycxm.setTjh(tjNumber); - ycxm.setParentName(map.get("proName").toString()); - ycxm.setJcxm(detail.getProName()); - ycxm.setJcjg(detail.getProResult()); - ycxm.setCkfw(detail.getStanId()); - ycxm.setDw(detail.getProAdvice()); - ycxm.setJynr(JSONUtil.toJsonStr(detail.getAdvices())); - ycxm.setJyjc(map.get("jyjc").toString()); - ycxmService.save(ycxm); - } } } } -- Gitblit v1.8.0