| | |
| | | @GetMapping("/getzongjianyishengchakanyichangxiangmu") |
| | | @ApiOperation(value = "总检查看异常项目接口") |
| | | public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) { |
| | | if (StrUtil.isNotBlank(tjNum)) { |
| | | TjOrder one = orderService.getOrderByTjNum(tjNum); |
| | | try { |
| | | if (StrUtil.isNotBlank(tjNum)) { |
| | | TjOrder one = orderService.getOrderByTjNum(tjNum); |
| | | |
| | | if (one == null) { |
| | | return AjaxResult.error("暂无数据!!"); |
| | | 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); |
| | | } else { |
| | | return zongjianyishengchakanyichangxiangmu(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); |
| | | } else { |
| | | return zongjianyishengchakanyichangxiangmu(tjNum); |
| | | } |
| | | return AjaxResult.error(); |
| | | } catch (Exception ex) { |
| | | //throw new RuntimeException(ex); |
| | | log.error(ex.getMessage()); |
| | | return AjaxResult.error(); |
| | | } |
| | | return AjaxResult.error(); |
| | | } |
| | | |
| | | private static AjaxResult getOrderYcxmList(List<TjOrderYcxm> list) { |
| | | 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()) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderYcxm ycxm : entry.getValue()) { |
| | | TjOrderDetail detail = new TjOrderDetail(); |
| | | detail.setOrderDetailId(Long.valueOf(ycxm.getId())); |
| | | detail.setProName(ycxm.getJcxm()); |
| | | detail.setProResult(ycxm.getJcjg()); |
| | | detail.setStanId(ycxm.getCkfw()); |
| | | detail.setProAdvice(ycxm.getDw()); |
| | | List<Map<String, Object>> btnrlist = new ArrayList<>(); |
| | | String jynr = ycxm.getJynr(); |
| | | JSONArray array = JSONUtil.parseArray(jynr); |
| | | for (Object object : array) { |
| | | Map<String, Object> objectMap = new HashMap<>(); |
| | | JSONObject jsonObject = (JSONObject) object; |
| | | String bt = jsonObject.getStr("bt"); |
| | | String nr = jsonObject.getStr("nr"); |
| | | objectMap.put("bt", bt); |
| | | objectMap.put("nr", nr); |
| | | if (null != bt || null != nr) btnrlist.add(objectMap); |
| | | } |
| | | detail.setAdvices(btnrlist); |
| | | dels.add(detail); |
| | | 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); |
| | | } |
| | | |
| | | parent.put("proName", entry.getKey()); |
| | | parent.put("jyjc", entry.getValue().get(0).getJyjc()); |
| | | parent.put("sone", dels); |
| | | maps.add(parent); |
| | | return AjaxResult.success(maps); |
| | | } catch (Exception ex) { |
| | | // throw new RuntimeException(ex); |
| | | log.error(ex.getMessage()); |
| | | return AjaxResult.error(); |
| | | } |
| | | // 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 AjaxResult.success(maps); |
| | | } |
| | | |
| | | 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()) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderYcxm ycxm : entry.getValue()) { |
| | | TjOrderDetail detail = new TjOrderDetail(); |
| | | detail.setOrderDetailId(Long.valueOf(ycxm.getId())); |
| | | detail.setProName(ycxm.getJcxm()); |
| | | detail.setProResult(ycxm.getJcjg()); |
| | | detail.setStanId(ycxm.getCkfw()); |
| | | detail.setProAdvice(ycxm.getDw()); |
| | | List<Map<String, Object>> btnrlist = new ArrayList<>(); |
| | | String jynr = ycxm.getJynr(); |
| | | JSONArray array = JSONUtil.parseArray(jynr); |
| | | for (Object object : array) { |
| | | Map<String, Object> objectMap = new HashMap<>(); |
| | | JSONObject jsonObject = (JSONObject) object; |
| | | String bt = jsonObject.getStr("bt"); |
| | | String nr = jsonObject.getStr("nr"); |
| | | objectMap.put("bt", bt); |
| | | objectMap.put("nr", nr); |
| | | if (null != bt || null != nr) btnrlist.add(objectMap); |
| | | } |
| | | detail.setAdvices(btnrlist); |
| | | dels.add(detail); |
| | | } |
| | | |
| | | parent.put("proName", entry.getKey()); |
| | | parent.put("jyjc", entry.getValue().get(0).getJyjc()); |
| | | parent.put("sone", dels); |
| | | maps.add(parent); |
| | | } |
| | | return maps; |
| | | } catch (NumberFormatException ex) { |
| | | // throw new RuntimeException(ex); |
| | | log.error(ex.getMessage()); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | 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) { |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderYcxm::getTjh, tjNumber); |
| | | List<TjOrderYcxm> ycxmList = ycxmService.list(wq); |
| | | 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= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | if (null == ycxmList || ycxmList.isEmpty()) { |
| | | TjOrderYcxm ycxm = new TjOrderYcxm(); |
| | | ycxm.setTjh(tjNumber); |
| | | ycxm.setParentName(remark.getProName()); |
| | | ycxm.setJcxm(tjOrderDetail.getProName()); |
| | | ycxm.setJcjg(tjOrderDetail.getProResult()); |
| | | ycxm.setCkfw(tjOrderDetail.getStanId()); |
| | | ycxm.setDw(tjOrderDetail.getProAdvice()); |
| | | ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices())); |
| | | ycxm.setJyjc(remark.getJyjc()); |
| | | if (ycxmService.save(ycxm)) { |
| | | tjOrderYcxms.add(ycxm); |
| | | } |
| | | } |
| | | 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()); |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | @GetMapping("/delzongjianyishengchakanyichangxiangmu") |
| | | @ApiOperation(value = "总检删除异常项目接口") |
| | |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>(); |
| | | TjOrder order = orderService.getOrderByTjNum(tjNumber); |
| | | if (null != order) { |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderYcxm::getTjh, tjNumber); |
| | | List<TjOrderYcxm> ycxmList = ycxmService.list(wq); |
| | | 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= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | if (null == ycxmList || ycxmList.isEmpty()) { |
| | | TjOrderYcxm ycxm = new TjOrderYcxm(); |
| | | ycxm.setTjh(tjNumber); |
| | | ycxm.setParentName(remark.getProName()); |
| | | ycxm.setJcxm(tjOrderDetail.getProName()); |
| | | ycxm.setJcjg(tjOrderDetail.getProResult()); |
| | | ycxm.setCkfw(tjOrderDetail.getStanId()); |
| | | ycxm.setDw(tjOrderDetail.getProAdvice()); |
| | | ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices())); |
| | | ycxm.setJyjc(remark.getJyjc()); |
| | | if (ycxmService.save(ycxm)) { |
| | | tjOrderYcxms.add(ycxm); |
| | | } |
| | | } |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | } |
| | | if (!tjOrderYcxms.isEmpty()) { |
| | | Collections.reverse(tjOrderYcxms); |
| | | return getOrderYcxmList(tjOrderYcxms); |
| | | } |
| | | if (!dels.isEmpty()) { |
| | | parent.put("proName", remark.getProName()); |
| | | parent.put("jyjc", remark.getJyjc()); |
| | | parent.put("sone", dels); |
| | | list.add(parent); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | return AjaxResult.success(list); |
| | | } |
| | | |
| | | @GetMapping("/chushenyemianchakanxiangmujieguo") |
| | | @ApiOperation(value = "初审页面查看项目结果接口") |