zjh
2025-03-27 4f1eae9865fca2831ea2966d003b2c57222e036d
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -1652,13 +1652,14 @@
    @GetMapping("/getzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检查看异常项目接口")
    public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
        try {
        if (StrUtil.isNotBlank(tjNum)) {
            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);
@@ -1670,9 +1671,32 @@
            }
        }
        return AjaxResult.error();
        } catch (Exception ex) {
            //throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.error();
        }
    }
    private static AjaxResult getOrderYcxmList(List<TjOrderYcxm> list) {
        try {
            List<Map<String, Object>> maps = getYcxmMapList(list);
            if (!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);
        } catch (Exception ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.error();
        }
    }
    private static List<Map<String, Object>> getYcxmMapList(List<TjOrderYcxm> list) {
        try {
        Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
        List<Map<String, Object>> maps = new ArrayList<>();
        for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
@@ -1706,37 +1730,17 @@
            parent.put("sone", dels);
            maps.add(parent);
        }
        //            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
//            List<Map<String, Object>> collect = mapList.stream()
//                    .filter(b -> maps.stream()
//                            .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 过滤掉在 maps 中存在的相同元素
//                    .collect(Collectors.toList());
//            if(!collect.isEmpty()){
//                maps.addAll(collect);
//            }
        if (!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 maps;
        } catch (NumberFormatException ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return null;
        }
        return AjaxResult.success(maps);
    }
    @GetMapping("/delzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检删除异常项目接口")
    public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) {
        ycxmService.removeById(id);
        return AjaxResult.success();
    }
    private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) {
        List<Map<String, Object>> list = new ArrayList<>();
        try {
        List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>();
        TjOrder order = orderService.getOrderByTjNum(tjNumber);
        if (null != order) {
@@ -1800,9 +1804,79 @@
                                dels.add(tjOrderDetail);
                            }
                        }
                            if (!dels.isEmpty()) {
                                parent.put("proName", remark.getProName());
                                parent.put("jyjc", remark.getJyjc());
                                parent.put("sone", dels);
                                list.add(parent);
                            }
                        }
                    }
                        if (!tjOrderYcxms.isEmpty()) {
                            Collections.reverse(tjOrderYcxms);
                            return getOrderYcxmList(tjOrderYcxms);
                    }
                }
            }
            return AjaxResult.success(list);
        } catch (Exception ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.success(list);
        }
    }
    private void yichangxiangmu(String tjNumber) {
        try {
            List<TjOrderYcxm> tjOrderYcxmList= ycxmService.selectListByTjh(tjNumber);
            if(null !=tjOrderYcxmList && !tjOrderYcxmList.isEmpty()){
            List<Map<String, Object>> list = new ArrayList<>();
            TjOrder order = orderService.getOrderByTjNum(tjNumber);
            if (null != order) {
                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")) {
                                            List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                                    , tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                            .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", ""), tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
                                                    , tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                            .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "")
                                                    , 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", "");
                                                Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0");
                                                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);
                                }
                        }
                        if (!dels.isEmpty()) {
                            parent.put("proName", remark.getProName());
@@ -1812,11 +1886,45 @@
                        }
                    }
                }
                }
            }
                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);
            }
        }
        return AjaxResult.success(list);
    }
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
        }
    }
    @GetMapping("/delzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检删除异常项目接口")
    public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) {
        ycxmService.removeById(id);
        return AjaxResult.success();
    }
    @GetMapping("/chushenyemianchakanxiangmujieguo")
    @ApiOperation(value = "初审页面查看项目结果接口")