| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | String color = sysConfigService.selectConfigByKey("report_title_color"); |
| | | // list.get(0).getHospName().equals("澄合矿务局中心医院") |
| | | List<SysDictData> sysUserSex = sysDictDataService.list(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getDictType, "sys_user_sex")); |
| | | HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate); |
| | | HashMap<String, Object> map = makeHisJianYan(tjOrder, customer); |
| | | HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate,dictHosp,map); |
| | | if (pdfChangGui == null) |
| | | return AjaxResult.error(); |
| | | Document document = (Document) pdfChangGui.get("document"); |
| | |
| | | return AjaxResult.error(); |
| | | } |
| | | // 组装检验数据 |
| | | HashMap<String, Object> map = makeHisJianYan(tjOrder, customer); |
| | | makeHisJianYanTable(document1, map,dictHosp,color); |
| | | |
| | | |
| | |
| | | * @param tjOrder |
| | | * @param reportTemplate |
| | | */ |
| | | public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) { |
| | | public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,DictHosp dictHosp,HashMap<String, Object> jianYanMap) { |
| | | String tjNumber = tjOrder.getTjNumber(); |
| | | String template = reportTemplate.getTemplate(); |
| | | LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>(); |
| | |
| | | } |
| | | //拼接重大阳性结果 |
| | | StringBuffer str = new StringBuffer(); |
| | | str.append("【重大阳性项目】\n"); |
| | | LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber); |
| | | List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper); |
| | | if (list1 != null && list1.size() > 0) { |
| | | for (int i = 0; i < list1.size(); i++) { |
| | | str.append((i + 1) + "、" + list1.get(i).getProName() + ";\n"); |
| | | if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) { |
| | | str.append("【重大阳性项目】\n"); |
| | | LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber); |
| | | List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper); |
| | | if (list1 != null && list1.size() > 0) { |
| | | for (int i = 0; i < list1.size(); i++) { |
| | | str.append((i + 1) + "、" + list1.get(i).getProName() + ";\n"); |
| | | } |
| | | } else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | } else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | //拼接异常项目 |
| | | str.append("【异常情况项目】\n"); |
| | | if (list.size() > 0) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if (list.get(i).getExceptionDesc() == 1) { |
| | | str.append((i + 1) + "、" + projectService.getById(list.get(i).getProId()).getProName() + ";\n"); |
| | | if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) { |
| | | if (list.size() > 0) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if (list.get(i).getExceptionDesc() == 1) { |
| | | str.append((i + 1) + "、" + projectService.getById(list.get(i).getProId()).getProName() + ";\n"); |
| | | } |
| | | } |
| | | } else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | }else { |
| | | int maxProjectLength = 0; |
| | | for (Map.Entry<String, Object> item : jianYanMap.entrySet()) { |
| | | HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue(); |
| | | ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data"); |
| | | for (List<String> i : lists) { |
| | | maxProjectLength = Math.max(maxProjectLength, i.get(0).length()); |
| | | } |
| | | } |
| | | } else { |
| | | str.append(" 无;\n"); |
| | | int projectWidth = maxProjectLength * 2; |
| | | int resultWidth = 8; |
| | | int flagWidth = 8; |
| | | int unitWidth = 8; |
| | | int rangeWidth = 15; |
| | | str.append(padRight("项目", projectWidth)) |
| | | .append(padRight("结果", resultWidth)) |
| | | .append(padRight("标志", flagWidth)) |
| | | .append(padRight("单位", unitWidth)) |
| | | .append(padRight("参考范围", rangeWidth)) |
| | | .append("\n"); |
| | | for (Map.Entry<String, Object> item : jianYanMap.entrySet()) { |
| | | HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue(); |
| | | ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data"); |
| | | for (List<String> i : lists) { |
| | | if (i.contains("↓") || i.contains("↑")) { |
| | | int currentProjectWidth = i.get(0).length() + (maxProjectLength - i.get(0).length()) * 2 + 2; |
| | | str.append(padRight(i.get(0), currentProjectWidth)); |
| | | str.append(padRight(i.get(1), resultWidth)); |
| | | str.append(padRight(i.get(2), flagWidth)); |
| | | str.append(padRight(i.get(3), unitWidth)); |
| | | str.append(padRight(i.get(4), rangeWidth)); |
| | | str.append("\n"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //异常项目 |
| | | data.put("yichang", str.toString()); |
| | |
| | | } |
| | | } |
| | | |
| | | public static String padRight(String str, int length) { |
| | | StringBuilder sb = new StringBuilder(str); |
| | | while (sb.length() < length) { |
| | | sb.append(" "); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /** |
| | | * 组合非化验项目报告数据 |
| | | * |