zjh
2025-06-25 cf5426f9bc46ab1f5737942883c4358dedfd4235
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -83,8 +83,8 @@
    private IDictCompService dictCompService;
    @Resource
    private ITjReportTemplateService reportTemplateService;
    @Value("${path.filePath}")
    private String value;
//    @Value("${path.filePath}")
//    private String value;
    @Value("${path.reportServer}")
    private String urlValue;
    @Resource
@@ -284,35 +284,8 @@
    @GetMapping("/toPdf/{TjNumber}")
    @ApiOperation(value = "打印体检报告为pdf")
    @Transactional
//    @Transactional
    public AjaxResult toPdf(@PathVariable("TjNumber") @ApiParam(value = "体检号") String tjNumber) {
        //        AjaxResult error = null;
        // 之前的代码 优化速度
//        System.out.println("----------------------------------oldFun开始-------------------------------------------------------");
//        error = oldFun(tjNumber);
//        System.out.println("--------------------------------------结束---------------------------------------------------");
        // 撤销操作
//        revocationReport(tjNumber);
//        根据某人tj号以及ProId进行打印前的请求
//        tjCheckController.getTjdetailList(tjNumber,null,1);
//        List<UpdateOrderRemarkVo> updateOrderRemarkVos = new ArrayList<>();
//        UpdateOrderRemarkVo remarkVo = new UpdateOrderRemarkVo();
//        remarkVo.setRemarks("未见异常");
//        remarkVo.setTjNumber("02132240308102232");
//        remarkVo.setProId("1633660948860522555");
//        updateOrderRemarkVos.add(remarkVo);
//        tjCheckController.checkUpdateOrderRemark(updateOrderRemarkVos);
//        System.out.println("---------------------------------------newFun开始--------------------------------------------------");
        // 以前测试pdf方法
//        error = newFun(tjNumber);
//        System.out.println("-------------------------------------------结束----------------------------------------------");
        // 撤销
//        revocationReport(tjNumber);
//        if (error != null) {
//            return error;
//        }
//        return AjaxResult.success("该用户体检未完成,不能打印报告!!!");
        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
        if (null != tjOrder) {
            String config = configService.selectConfigByKey("sfjcwjhyqxm");
@@ -333,11 +306,6 @@
            wqa.eq(TjReport::getType, "体检报告");
            Integer count = tjReportService.getSelectCount(wqa);
            if (tjOrder.getReportTime() !=null ||  count != 0  ) {
//                tjOrder.setReportTime(null);
//                tjOrder.setCheckTime(null);
//                tjOrder.setCheckStatus(0);
//                tjOrder.setPrintLastTime(null);
//                tjOrderService.updateById(tjOrder);
                return AjaxResult.error("该客户报告已生成!不能重复生成!可直接预览或打印!");
            }
@@ -345,32 +313,6 @@
            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
            TjReportTemplate reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
//            if (tjOrder.getTjCategory() != null) {
//                //查询字典
//                LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>();
//                wqq.eq(SysDictData::getDictType, "dict_tjtype");
//                wqq.eq(SysDictData::getDictValue, tjOrder.getTjCategory());
//                SysDictData one = dictDataService.getOne(wqq);
//                if (one != null) {
//                    //查询字典
//                    LambdaQueryWrapper<SysDictData> wqq1 = new LambdaQueryWrapper<>();
//                    wqq1.eq(SysDictData::getDictType, "report_template_type");
//                    wqq1.eq(SysDictData::getDictLabel, one.getDictLabel());
//                    SysDictData one1 = dictDataService.getOne(wqq1);
//                    if (one1 != null) {
//                        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, one1.getDictValue());
//                    } else {
//                        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
//                    }
//                } 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);
//            }
            Integer checkStatus = tjOrder.getCheckStatus();
            if (checkStatus == 1) {
                if ("报表".equals(reportTemplate.getPrint())) {
@@ -384,25 +326,10 @@
                    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 hisRegistrationId = tjOrder.getCardId();
//                Date createTime = tjOrder.getCreateTime();
//                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                String ksrq = dateFormat.format(createTime);
//                String jsrq = dateFormat.format(new Date());
//                HashMap<String, Object> params = new HashMap<>();
//                params.put("his_registration_id", hisRegistrationId);
//                params.put("ksbm", "");
//                params.put("pationid", "");
//                params.put("ksrq", ksrq);
//                params.put("jsrq", jsrq);
//                params.put("pagecount", 100);
//                params.put("page", 1);
                LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
                wq1.eq(TjCustomer::getCusId, tjOrder.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
@@ -413,15 +340,14 @@
                try {
                    return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
                } catch (Exception e) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    log.error(String.valueOf(e));
//                    throw new Exception(e);
                    log.error("生成报告失败:"+e.getMessage(),String.valueOf(e));
                     e.printStackTrace();
                    tjOrder.setReportTime(null);
                    tjOrder.setCheckTime(null);
                    tjOrder.setCheckStatus(0);
                    tjOrder.setPrintLastTime(null);
                    tjOrderService.updateById(tjOrder);
                    logger.error(String.valueOf(e));
                    return AjaxResult.error("生成报告失败");
                }
            } else {
@@ -431,19 +357,16 @@
        return AjaxResult.error();
    }
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) {
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) throws Exception {
        String value = configService.selectConfigByKey("path_filePath");
        AjaxResult ajaxResult = null;
        try {
//            ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
//            ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate);
            ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
        } catch (Exception e) {
            e.printStackTrace();
            log.error(String.valueOf(e));
            throw new Exception(e);
        }
        if (!ajaxResult.get("code").toString().equals("200")) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return AjaxResult.error("生成报告失败");
        } else {
            Long userId = tjCustomer.getCusId();
            String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_报告.pdf";
@@ -451,8 +374,8 @@
            tjReport.setTjNumber(String.valueOf(tjNumber));
            tjReport.setPath(urlValue + outputFileName1);
            String outputPath1 = value + File.separator;
            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
            tjReport.setReport(pdfBinary);
//            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
//            tjReport.setReport(pdfBinary);
            tjReport.setType("体检报告");
            tjReport.setPrint("pdf");
            tjReportService.save(tjReport);
@@ -976,7 +899,7 @@
    @GetMapping("/preview/{flag}/{TjNumber}")
    @ApiOperation(value = "下载体检报告")
    public void preview(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber) {
    public void preview(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber) throws IOException {
        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
        TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId());
//        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
@@ -986,6 +909,7 @@
//        if (one == null) {
//            return;
//        }
        String value = configService.selectConfigByKey("path_filePath");
        String key = DataSourceContextHolder.getDataSourceKey();
        key = key.replace("ltkjpeis10_","");
//        String userId = SecurityUtils.getLoginUser().getUsername();
@@ -1005,7 +929,6 @@
            if (flag) {
                // 在线打开方式
                URL u = new URL("file:///" + filePath);
                //System.out.println(u);
                String contentType = u.openConnection().getContentType();
                response.setContentType(contentType);
                response.setHeader("Content-Disposition", "inline;filename="
@@ -1021,17 +944,6 @@
            while ((len = br.read(bs)) > 0) {
                out.write(bs, 0, len);
            }
//            if(null !=tjOrder.getHeshouTime() && tjOrder.getHeshouStatus()==1){
//                TjReportPrint print=new TjReportPrint();
//                print.setTjNumber(tjNumber);
//                print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
//                print.setPrintTime(date);
//                print.setPrintStatus("已打印");
//                if (printService.save(print)) {
//                    tjOrder.setPrintLastTime(date);
//                    tjOrderService.updateById(tjOrder);
//                }
//            }
            out.flush();
            out.close();
            br.close();
@@ -1039,6 +951,7 @@
        } catch (IOException e) {
            e.printStackTrace();
            //System.out.println("pdf处理文件异常" + e);
//            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        } finally {
            if (out != null) {
                try {
@@ -1071,15 +984,11 @@
        }
        String key = DataSourceContextHolder.getDataSourceKey();
        key = key.replace("ltkjpeis10_","");
        String value = configService.selectConfigByKey("path_filePath");
//        String userId = SecurityUtils.getLoginUser().getUsername();
        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + key + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf");
        String filePath = value + File.separator + key + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf";
//        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + key + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf");
        String filePath = value + File.separator + key + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_报告.pdf";
        File f = new File(filePath);
        if (filePath.isEmpty()) {
            System.out.println("文件不存在!");
            return;
        }
        BufferedInputStream br = null;
        OutputStream out = null;
        FileInputStream fileInputStream = null;
@@ -1147,8 +1056,9 @@
    public AjaxResult preview(@RequestBody String data) {
        String is_batch_report_use_sql = configService.selectConfigByKey("is_batch_report_use_sql");
        List<String> tjNumbers = Arrays.stream(data.split(",")).collect(Collectors.toList());
        String value = configService.selectConfigByKey("path_filePath");
        if ("true".equals(is_batch_report_use_sql)) {
            return tjReportService.makeBatchReport(tjNumbers);
            return tjReportService.makeBatchReport(tjNumbers, value);
        } else {
            return makeReport(tjNumbers);
        }