| | |
| | | @Autowired |
| | | private TjOrderYcxmService ycxmService; |
| | | @Autowired |
| | | private TjReportController reportController; |
| | | private TjReportController reportController; |
| | | @Autowired |
| | | private ISysDictDataService sysDictDataService; |
| | | |
| | |
| | | tjOrder.setZhiyeJg(dto.getZhiyeJg()); |
| | | if (orderService.updateById(tjOrder)) { |
| | | AjaxResult pdf = reportController.toPdf(dto.getTjNumber()); |
| | | if (!pdf.get("code").toString().equals("200") ) { |
| | | if (!pdf.get("code").toString().equals("200")) { |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return AjaxResult.error("操作失败!"); |
| | | } |
| | |
| | | } |
| | | |
| | | private AjaxResult getResult(String tjNumber) { |
| | | asyncService.updateCheckType(tjNumber); |
| | | // asyncService.updateCheckType(tjNumber); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | TjOrder one = orderService.getOrderByTjNum(tjNumber); |
| | | |
| | |
| | | Map<String, List<TjOrderDetail>> listMap = tjOrderDetails.stream() |
| | | .filter(i -> StrUtil.isNotBlank(i.getProResult()) && remark.getProsId().equals(i.getProsId())) |
| | | .collect(Collectors.groupingBy(TjOrderDetail::getProResult)); |
| | | // null !=dictList && |
| | | |
| | | boolean isGroupOnce = false; |
| | | String groupOnceProResult = ""; |
| | | if (listMap.size() == 1){ |
| | | 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); |
| | | wrapper.eq(SysDictData::getDictType, "qj_type"); |
| | | wrapper.eq(SysDictData::getDictLabel, firstKey); |
| | | List<SysDictData> dictList = sysDictDataService.list(wrapper); |
| | | if (!dictList.isEmpty()) { |
| | | if (!dictList.isEmpty()) { |
| | | isGroupOnce = true; |
| | | groupOnceProResult = firstKey; |
| | | } |
| | | } |
| | | if (isGroupOnce){ |
| | | if (isGroupOnce) { |
| | | TjOrderDetail tjOrderDetail = new TjOrderDetail(); |
| | | tjOrderDetail.setProName(remark.getProName()); |
| | | tjOrderDetail.setProResult(groupOnceProResult); |
| | | dels.add(tjOrderDetail); |
| | | }else{ |
| | | } else { |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProsId().equals(tjOrderDetail.getProsId())) { |
| | | String ckfw = tjOrderDetail.getStanId(); |
| | | /* 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(""); |
| | | 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(""); |
| | | } |
| | | if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) { |
| | | tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); |
| | | } |
| | | } else { |
| | | tjOrderDetail.setYcbz(""); |
| | | }else { |
| | | tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); |
| | | } |
| | | } else { |
| | | if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阴")) |
| | |
| | | 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() + "]"); |
| | | } |
| | | if (remark.getOrgType().equals(tjOrderDetail.getOrgType())) { |
| | | dels.add(tjOrderDetail); |
| | | } |
| | |
| | | return AjaxResult.error("暂无数据!!"); |
| | | } |
| | | yichangxiangmu(tjNum); |
| | | List<TjOrderYcxm> tjOrderYcxmList= ycxmService.selectListByTjh(tjNum); |
| | | if(null!=tjOrderYcxmList&&!tjOrderYcxmList.isEmpty()){ |
| | | 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); |
| | |
| | | } else { |
| | | return AjaxResult.success(maps); |
| | | } |
| | | }else { |
| | | } else { |
| | | return zongjianyishengchakanyichangxiangmu(tjNum); |
| | | } |
| | | } |
| | |
| | | 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) { |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |