| | |
| | | @Resource |
| | | private ITjStandardService tjStandardService; |
| | | @Resource |
| | | private ITjAdviceService tjAdviceService; |
| | | @Resource |
| | | private IDictCompService dictCompService; |
| | | @Resource |
| | | private ITjReportTemplateService reportTemplateService; |
| | | @Value("${path.filePath}") |
| | | private String value; |
| | | @Value("${path.reportServer}") |
| | | private String urlValue; |
| | | @Resource |
| | | private ISysUserService userService; |
| | | @Resource |
| | |
| | | |
| | | @Autowired |
| | | private ISysDictDataService dictDataService; |
| | | @Resource |
| | | private ITbTransitionService transitionService; |
| | | |
| | | @Autowired |
| | | private ITjBigPositiveService tjBigPositiveService; |
| | | |
| | | @GetMapping("/savePdf") |
| | | @ApiOperation(value = "从本地存储模板到数据库") |
| | | public AjaxResult savePdf() { |
| | | //从文件地址读入PDF文件 仅存储一次 |
| | | String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\体检模板5.pdf"); |
| | | TjReportTemplate tem = new TjReportTemplate(); |
| | | tem.setName("体检报告模板5"); |
| | | tem.setRemark("体检报告模板5"); |
| | | tem.setTemplate(base64String); |
| | | tem.setFlag("1"); |
| | | tem.setOpen("0"); |
| | | final boolean save = reportTemplateService.save(tem); |
| | | if(save){ |
| | | return AjaxResult.success("保存成功"); |
| | | } |
| | | return AjaxResult.success("保存失败"); |
| | | // String base64String2 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\心电图1.pdf"); |
| | | // TjReport tem2 = new TjReport(); |
| | | // tem2.setTjNumber(tjNumber); |
| | | // tem2.setReport(base64String2); |
| | | // tem2.setType("心电图"); |
| | | // tjReportService.save(tem2); |
| | | // |
| | | // String base64String1 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\附件2.pdf"); |
| | | // TjReport tem1 = new TjReport(); |
| | | // tem1.setTjNumber(tjNumber); |
| | | // tem1.setReport(base64String1); |
| | | // tem1.setType("附件"); |
| | | // tjReportService.save(tem1); |
| | | |
| | | } |
| | | |
| | | |
| | | // /* *//** |
| | |
| | | @Transactional |
| | | public AjaxResult toPdf(@PathVariable("TjNumber") @ApiParam(value = "体检号") String tjNumber) { |
| | | |
| | | //从文件地址读入PDF文件 仅存储一次 |
| | | // TODO: 2023/3/21 将模板保存到数据库 一次使用后注释 |
| | | // String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\体检模板4.pdf"); |
| | | // TjReportTemplate tem = new TjReportTemplate(); |
| | | // tem.setName("体检报告模板4"); |
| | | // tem.setRemark("体检报告模板4"); |
| | | // tem.setTemplate(base64String); |
| | | // tem.setFlag("1"); |
| | | // tem.setOpen("0"); |
| | | // reportTemplateService.save(tem); |
| | | // // TODO: 2023/3/21 将心电图保存到数据库 一次使用后注释 暂时用于测试 |
| | | // String base64String2 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\心电图1.pdf"); |
| | | // TjReport tem2 = new TjReport(); |
| | | // tem2.setTjNumber(tjNumber); |
| | | // tem2.setReport(base64String2); |
| | | // tem2.setType("心电图"); |
| | | // tjReportService.save(tem2); |
| | | // |
| | | // String base64String1 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\附件2.pdf"); |
| | | // TjReport tem1 = new TjReport(); |
| | | // tem1.setTjNumber(tjNumber); |
| | | // tem1.setReport(base64String1); |
| | | // tem1.setType("附件"); |
| | | // tjReportService.save(tem1); |
| | | // |
| | | // String base64String3 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\医学名词.pdf"); |
| | | // TjReport tem3 = new TjReport(); |
| | | // tem3.setTjNumber(tjNumber); |
| | | // tem3.setReport(base64String3); |
| | | // tem3.setType("医学名词"); |
| | | // tjReportService.save(tem3); |
| | | |
| | | |
| | | int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); |
| | | if (num > 0) return AjaxResult.error("有延期项目暂不能生成报告!!!"); |
| | | |
| | | |
| | | LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrder::getTjNumber, tjNumber); |
| | | TjOrder tjOrder = tjOrderService.getOne(wq); |
| | | |
| | | if (null != tjOrder) { |
| | | LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | TjReportTemplate reportTemplate =null; |
| | | if (tjOrder.getTjCategory()!=null){ |
| | | //查询字典 |
| | | LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>(); |
| | |
| | | }else { |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); |
| | | } |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); |
| | | }else { |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2); |
| | | } |
| | | |
| | | |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | TjReportTemplate one1 = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); |
| | | String template = one1.getTemplate(); |
| | | |
| | | String userId = SecurityUtils.getLoginUser().getUsername(); |
| | | PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "体检报告封面模板.pdf"); |
| | | // --------以上------- 根据数据库中的模板二进制文件 转pdf 创建文件夹 将pdf放进本地文件夹 |
| | | |
| | | |
| | | //判断表中有没有该体检报告 不能重复生成 |
| | | LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>(); |
| | |
| | | |
| | | Integer checkStatus = tjOrder.getCheckStatus(); |
| | | if (checkStatus == 1) { |
| | | //判断报告生成 保存类型 2024/2/29 |
| | | if ("报表".equals(reportTemplate.getPrint())){ |
| | | TjReport tjReport = new TjReport(); |
| | | tjReport.setTjNumber(String.valueOf(tjNumber)); |
| | | tjReport.setPath(reportTemplate.getUrl()+"?tjNum="+tjNumber); |
| | | tjReport.setType("体检报告"); |
| | | tjReport.setPrint("报表"); |
| | | tjReportService.save(tjReport); |
| | | //修改order表中的打印报告时间为当前时间 |
| | | LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(TjOrder::getTjNumber, tjNumber); |
| | | updateWrapper.set(TjOrder::getReportTime, new Date()); |
| | | updateWrapper.set(TjOrder::getPrintLastTime, new Date()); |
| | | updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); |
| | | updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); |
| | | tjOrderService.update(updateWrapper); |
| | | return AjaxResult.success("已生成报告!可直接点击预览!"); |
| | | } |
| | | |
| | | |
| | | |
| | | String template = reportTemplate.getTemplate(); |
| | | String userId = SecurityUtils.getLoginUser().getUsername(); |
| | | if (template!=null){ |
| | | PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "体检报告封面模板.pdf"); |
| | | } |
| | | // --------以上------- 根据数据库中的模板二进制文件 转pdf 创建文件夹 将pdf放进本地文件夹 |
| | | |
| | | |
| | | LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>(); |
| | | wq1.eq(TjCustomer::getCusId, tjOrder.getUserId()); |
| | | TjCustomer tjCustomer = tjCustomerService.getOne(wq1); |
| | |
| | | data.put("docname", tjOrder.getCheckDoctor()); |
| | | } |
| | | //异常项目 |
| | | data.put("yichang", "【1】屈光不正\n" + |
| | | "【2】扁桃体肥⼤\n" + |
| | | "【3】体重指数增⾼\n" + |
| | | "【4】⾎脂异常(总胆固醇增⾼;⽢油三酯增⾼)\n" + |
| | | "【5】γ-⾕氨酰转移酶增⾼;天⻔冬氨酸氨基转移酶增⾼;丙氨酸氨基转移酶增⾼\n" + |
| | | "【6】轻⾄中度脂肪肝"); |
| | | // data.put("yichang", "【1】屈光不正\n" + |
| | | // "【2】扁桃体肥⼤\n" + |
| | | // "【3】体重指数增⾼\n" + |
| | | // "【4】⾎脂异常(总胆固醇增⾼;⽢油三酯增⾼)\n" + |
| | | // "【5】γ-⾕氨酰转移酶增⾼;天⻔冬氨酸氨基转移酶增⾼;丙氨酸氨基转移酶增⾼\n" + |
| | | // "【6】轻⾄中度脂肪肝"); |
| | | |
| | | //拼接重大阳性结果 |
| | | StringBuffer str=new StringBuffer(); |
| | | str.append("【重大阳性项目】\n"); |
| | | LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper=new LambdaQueryWrapper<>(); |
| | | bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber,tjNumber); |
| | | final 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"); |
| | | } |
| | | //拼接异常项目 |
| | | 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"); |
| | | } |
| | | } |
| | | }else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | |
| | | //异常项目 |
| | | data.put("yichang", str.toString()); |
| | | |
| | | // 遍历data 给pdf表单表格赋值 |
| | | for (String key : data.keySet()) { |
| | |
| | | //设置文档的页边距就是距离页面边上的距离,分别为:左边距,右边距,上边距,下边距 |
| | | document.setMargins(70, 70, 40, 40); |
| | | //生成pdf的位置以及名称 |
| | | String fileName = value + "\\" + userId + "体检报告项目详情页.pdf"; |
| | | String fileName = value + "\\" + userId +tjNumber+ "体检报告项目详情页.pdf"; |
| | | OutputStream outputStream = Files.newOutputStream(Paths.get(fileName)); |
| | | PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream); |
| | | |
| | | pdfWriter.setPageEvent(new MyHeaderFooter());// 页眉页脚 |
| | | //pdfWriter.setPageEvent(new MyHeaderFooter());// 页眉页脚 |
| | | |
| | | document.open(); |
| | | |
| | |
| | | |
| | | |
| | | Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkObjectMap = addTable(tjNumber); |
| | | Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkListMap = addHuaYanTable(tjNumber); |
| | | tjOrderRemarkObjectMap.putAll(tjOrderRemarkListMap); |
| | | for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : tjOrderRemarkObjectMap.entrySet()) { |
| | | List<TjPdfVO> value = entry.getValue(); |
| | | LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>(); |
| | | wqqq.eq(TjProject::getProId, entry.getKey().getProId()); |
| | | TjProject one11 = projectService.getOne(wqqq); |
| | | //判断该项目是否需要打印报告 |
| | | if ("N".equals(one11.getNeedReport())){ |
| | | if (null !=one11 && "N".equals(one11.getNeedReport())){ |
| | | continue; |
| | | } |
| | | if ("1".equals(one11.getResultType())) { |
| | | String titleName = one11.getProName(); |
| | | String titleName =null; |
| | | if (null !=one11 && "1".equals(one11.getResultType())) { |
| | | titleName =one11.getProName(); |
| | | // 设置标题字体样式 |
| | | Font titleFonts = PdfUtils.setFont(9); |
| | | Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName); |
| | |
| | | LineSeparator objectName = new LineSeparator(); |
| | | document.add(objectName); |
| | | } else { |
| | | String titleName = one11.getProName(); |
| | | if(null !=one11){ |
| | | titleName = one11.getProName(); |
| | | }else { |
| | | titleName = entry.getKey().getProName(); |
| | | } |
| | | |
| | | // 设置标题字体样式 |
| | | Font titleFonts = PdfUtils.setFont(9); |
| | | Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName); |
| | |
| | | pdfWriter.close(); |
| | | outputStream.close(); |
| | | |
| | | // TODO: 2023/3/29 查询附件pdf 如心电图、附件 |
| | | LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>(); |
| | | rtwq1.eq(TjReport::getType, "医学名词"); |
| | | // rtwq1.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one11111 = tjReportService.getOne(rtwq1); |
| | | if(null !=one11111){ |
| | | String report1 = one11111.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "医学名词.pdf"); |
| | | } |
| | | // LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>(); |
| | | // rtwq1.eq(TjReport::getType, "医学名词"); |
| | | //// rtwq1.eq(TjReport::getTjNumber, tjNumber); |
| | | // TjReport one11111 = tjReportService.getOne(rtwq1); |
| | | // if(null !=one11111){ |
| | | // String report1 = one11111.getReport(); |
| | | // PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "医学名词.pdf"); |
| | | // } |
| | | |
| | | LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>(); |
| | | rtwq.eq(TjReport::getType, "心电图"); |
| | | // rtwq.eq(TjReport::getTjNumber, tjNumber); |
| | | rtwq.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one1111 = tjReportService.getOne(rtwq); |
| | | if(null !=one1111){ |
| | | String report = one1111.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" + userId + "心电图.pdf"); |
| | | PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" +tjNumber+ userId + "心电图.pdf"); |
| | | } |
| | | |
| | | LambdaQueryWrapper<TjReport> rtwq12 = new LambdaQueryWrapper<>(); |
| | | rtwq12.eq(TjReport::getType, "附件"); |
| | | // rtwq12.eq(TjReport::getTjNumber, tjNumber); |
| | | rtwq12.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one111112 = tjReportService.getOne(rtwq12); |
| | | if(null !=one111112){ |
| | | String report12 = one111112.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" + userId + "附件.pdf"); |
| | | PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" +tjNumber+ userId + "附件.pdf"); |
| | | } |
| | | |
| | | //合并 |
| | | String[] files1=null; |
| | | if (one1111!=null ){ |
| | | if (one111112!=null){ |
| | | files1 = new String[ ]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf", value + "\\" + tjNumber + userId + "附件.pdf", value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | }else { |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf",value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | } |
| | | }else { |
| | | if (one111112!=null){ |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf", value + "\\" + tjNumber + userId + "附件.pdf"}; |
| | | }else { |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf"}; |
| | | } |
| | | } |
| | | //合并 |
| | | String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + "体检报告项目详情页.pdf", value + "\\" + userId + "医学名词.pdf", value + "\\" + userId + "附件.pdf", value + "\\" + userId + "心电图.pdf"}; |
| | | // String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber+"体检报告项目详情页.pdf", value + "\\" +tjNumber+ userId + "附件.pdf", value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | String outputPath1 = value + "\\"; |
| | | String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf"; |
| | | |
| | |
| | | |
| | | TjReport tjReport = new TjReport(); |
| | | tjReport.setTjNumber(String.valueOf(tjNumber)); |
| | | tjReport.setPath(outputPath1 + outputFileName1); |
| | | tjReport.setPath(urlValue + outputFileName1); |
| | | String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); |
| | | tjReport.setReport(pdfBinary); |
| | | tjReport.setType("体检报告"); |
| | | tjReport.setPrint("pdf"); |
| | | tjReportService.save(tjReport); |
| | | |
| | | //TODO 2023/2/3 16:21 生成体检报告pdf后删除本地文件 |
| | | //FileUtil.del(value + "\\" + tjNumber + "体检报告.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告封面模板.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告项目详情页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId +tjNumber+ "体检报告项目详情页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告封面页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "心电图.pdf"); |
| | | |
| | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return AjaxResult.success("PDF导出失败"); |
| | | }finally { |
| | | transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(),tjOrder.getCardId()); |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success("该用户体检未完成,不能打印报告!!!"); |
| | | } |
| | | |
| | | //非化验项目报告 |
| | | public Map<TjOrderRemark, List<TjPdfVO>> addTable(String tjNumber) { |
| | | //创建map 键为父项目 值为子项目集合 |
| | | Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>(); |
| | | Map<TjOrderRemark, List<TjPdfVO>> printReport = new LinkedHashMap<>(); |
| | | |
| | | //查到该客户的体检记录 |
| | | LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); |
| | | wq1.eq(TjOrder::getTjNumber, tjNumber); |
| | | TjOrder one = tjOrderService.getOne(wq1); |
| | | |
| | | /* |
| | | //拿到体检记录的orderid,查出项目详细信息 |
| | | LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderDetail::getOrderId, one.getOrderId()); |
| | | //20230323判断项目已检 |
| | | wq.ne(TjOrderDetail::getTjStatus, 0); |
| | | wq.ne(TjOrderDetail::getProId,projectService.getHuaYanProId()); |
| | | wq.eq(TjOrderDetail::getProId,projectService.getNotCcCtXdtProId()); |
| | | // wq.notIn(TjOrderDetail::getProId,projectService.getNneedReprotProId()); |
| | | List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq); |
| | | |
| | | //遍历体检记录 将项目的具体信息 |
| | |
| | | tjOrderDetail.setProject(tjProject); |
| | | } |
| | | } |
| | | */ |
| | | |
| | | LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>(); |
| | | wq22.eq(TjCustomer::getCusId, one.getUserId()); |
| | | TjCustomer customer = tjCustomerService.getOne(wq22); |
| | | LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); |
| | | wqq.eq(TjOrderRemark::getTjNumber, tjNumber); |
| | | wqq.ne(TjOrderRemark::getDeptId,"241"); |
| | | wqq.in(TjOrderRemark::getDeptId,"269","270","253","254","255","257","251","271"); |
| | | wqq.notIn(TjOrderRemark::getProId,projectService.getNneedReprotProId()); |
| | | List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); |
| | | |
| | | for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { |
| | | printReport.put(tjOrderRemark, null); |
| | | |
| | | printReport.put(tjOrderRemark,null); |
| | | } |
| | | |
| | | extracted(printReport,one, customer); |
| | | return printReport; |
| | | } |
| | | |
| | | |
| | | //化验项目报告 |
| | | public Map<TjOrderRemark, List<TjPdfVO>> addHuaYanTable(String tjNumber) { |
| | | //创建map 键为父项目 值为子项目集合 |
| | | Map<TjOrderRemark, List<TjPdfVO>> printReport = new LinkedHashMap<>(); |
| | | //查到该客户的体检记录 |
| | | // LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); |
| | | // wq1.eq(TjOrder::getTjNumber, tjNumber); |
| | | // TjOrder one = tjOrderService.getOne(wq1); |
| | | |
| | | //拿到体检记录的orderid,查出项目详细信息 |
| | | // LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); |
| | | // wq.eq(TjOrderDetail::getOrderId, one.getOrderId()); |
| | | // //20230323判断项目已检 |
| | | // wq.ne(TjOrderDetail::getTjStatus, 0); |
| | | // wq.eq(TjOrderDetail::getProId,projectService.getHuaYanProId()); |
| | | // List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq); |
| | | List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanTable(tjNumber); |
| | | //遍历体检记录 将项目的具体信息 |
| | | //遍历客户所选的项目(包含子项父项) |
| | | // for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | // TjProject tjProject = projectService.getById(tjOrderDetail.getProId()); |
| | | // if (null != tjProject) { |
| | | // tjOrderDetail.setProject(tjProject); |
| | | // } |
| | | // } |
| | | |
| | | // LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>(); |
| | | // wq22.eq(TjCustomer::getCusId, one.getUserId()); |
| | | // TjCustomer customer = tjCustomerService.getOne(wq22); |
| | | // LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); |
| | | // wqq.eq(TjOrderRemark::getTjNumber, tjNumber); |
| | | // wqq.eq(TjOrderRemark::getDeptId,"241"); |
| | | // List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); |
| | | List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanTable(tjNumber); |
| | | |
| | | for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { |
| | | printReport.put(tjOrderRemark,null); |
| | | } |
| | | List<Object> toRemoveKeys = new ArrayList<>(); |
| | | for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { |
| | | List<TjPdfVO> tjPdfVOS = new ArrayList<>(); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if(entry.getKey().getProId().equals(tjOrderDetail.getProId())){ |
| | | TjPdfVO tjPdfVO = new TjPdfVO(); |
| | | tjPdfVO.setProName(tjOrderDetail.getProName()); |
| | | if(null !=tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")){ |
| | | tjPdfVO.setProResult(tjOrderDetail.getProResult()+" ["+tjOrderDetail.getYcbz()+"]"); |
| | | }else { |
| | | tjPdfVO.setProResult(tjOrderDetail.getProResult()); |
| | | } |
| | | tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); |
| | | tjPdfVO.setStandardValue(tjOrderDetail.getStanId()); |
| | | tjPdfVO.setCompany(tjOrderDetail.getProAdvice()); |
| | | tjPdfVOS.add(tjPdfVO); |
| | | } |
| | | } |
| | | printReport.put(entry.getKey(), tjPdfVOS); |
| | | if(tjPdfVOS.size()==0) |
| | | {toRemoveKeys.add(entry.getKey());} |
| | | } |
| | | toRemoveKeys.forEach(printReport::remove); |
| | | return printReport; |
| | | } |
| | | |
| | | private void extracted(Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) { |
| | | for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { |
| | | List<TjPdfVO> tjPdfVOS = new ArrayList<>(); |
| | | // TjOrder one = tjOrderService.getOrderByTjNum(entry.getKey().getTjNumber()); |
| | | List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.getDetailByOrderIdAndParId(one.getOrderId(),entry.getKey().getProId()); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | TjProject tjProject = projectService.getById(tjOrderDetail.getProId()); |
| | | if (null != tjProject) { |
| | | tjOrderDetail.setProject(tjProject); |
| | | } |
| | | if (null == tjOrderDetail.getProject()) { |
| | | System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId()); |
| | | } |
| | | |
| | | if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId())) { |
| | | |
| | | LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>(); |
| | | wq6.eq(TjStandard::getProId, tjOrderDetail.getProId()); |
| | | List<TjStandard> list2 = tjStandardService.list(wq6); |
| | |
| | | } |
| | | printReport.put(entry.getKey(), tjPdfVOS); |
| | | } |
| | | return printReport; |
| | | } |
| | | |
| | | |
| | | @GetMapping("/isPdfOrJimu") |
| | | @ApiOperation(value = "判断报告打开类型") |
| | | public AjaxResult isPdfOrJimu(String tjNumber) { |
| | | Map<String,String> res=new HashMap<>(); |
| | | LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>(); |
| | | we.eq(TjReport::getTjNumber, tjNumber); |
| | | we.eq(TjReport::getType, "体检报告"); |
| | | TjReport one = tjReportService.getOne(we); |
| | | if (one==null){ |
| | | return AjaxResult.error("暂无体检报告"); |
| | | } |
| | | if ("pdf".equals(one.getPrint())){ |
| | | res.put("flag","0"); |
| | | return AjaxResult.success(res); |
| | | }else if ("报表".equals(one.getPrint())){ |
| | | res.put("flag","1"); |
| | | res.put("url",one.getPath()); |
| | | return AjaxResult.success(res); |
| | | }else { |
| | | return AjaxResult.error("暂无体检报告"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | @GetMapping("/preview/{flag}/{TjNumber}") |
| | |
| | | if (one == null) { |
| | | return; |
| | | } |
| | | |
| | | String userId = SecurityUtils.getLoginUser().getUsername(); |
| | | PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf"); |
| | | //String filePath = one.getPath(); |
| | |
| | | LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>(); |
| | | wqq.like(TjOrder::getUserId, cusId); |
| | | List<TjOrder> orderList = tjOrderService.list(wqq); |
| | | if (orderList!=null){ |
| | | if (orderList!=null && orderList.size()>0){ |
| | | for (TjOrder tjOrder : orderList) { |
| | | if (tjOrder!=null){ |
| | | LambdaQueryWrapper<TjReport> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjReport::getTjNumber, tjOrder.getTjNumber()); |
| | | wq.eq(TjReport::getType,"体检报告"); |
| | | res.add(tjReportService.getOne(wq)); |
| | | TjReport one = tjReportService.getOne(wq); |
| | | if(null !=one){ |
| | | res.add(one); |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success(res); |
| | | } |
| | | return AjaxResult.error("暂无历史报告"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |