zjh
2025-04-16 e607595f8a4df7d4d577f64ae577b658bdd98c7e
zjh20250416
4个文件已修改
200 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1674,73 +1674,12 @@
                threadPools.shutdown();
            }
            // TODO 因为有体检号会查出空数据 先使用死数据  打印导诊单
            Map<String,Object> map=new HashMap<>();
            if (!tjNumbers.isEmpty()) {
            /*    Map<String, Object> map = null;
                try {
                    map = PDFDocumentUtil.getDocument();
                    Document document = (Document) map.get("document");
//                    for (int i = 0; i < tjNumbers.size(); i++) {
                    int i = 0;
                    for (String tjNumber : tjNumbers) {
                        try {
                            List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNumber);
                            Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumber);
                            if(null !=userInfo && null !=djdInfos && !djdInfos.isEmpty()){
                                LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj");
                                DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
                                String time = null;
                                if (tjsj != null) {
                                    time = dateFormat.format(tjsj);
                                }
                                PDFDocumentUtil.makeUserInfoTable(document, (String) userInfo.get("tjname"), (String) userInfo.get("sex")
                                        , (String) userInfo.get("tjh"), (String) userInfo.get("lxdh"), (String) userInfo.get("tjname"), time);
                                PDFDocumentUtil.makeTjInfo(document, djdInfos);
                                // 多条则换页
                                if (i + 1 < tjNumbers.size()) {
                                    document.newPage();
                                }
                            }
                        } catch (DocumentException | IOException e) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            //这里删除的是这个人所有项目包括补录项目
                            TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                            remarkService.deletedOrderRemarkByTjNum(tjNumber);
                            tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
//                transitionService.deletedTbTransitionByTjNum(tjNum);
                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
                            TjReservation reservation = tjReservationService.getById(order.getReservationId());
                            if(null !=reservation){
                                reservation.setIsExpire(2);
                                tjReservationService.updateById(reservation);
                                transitionService.updateTbTransitionByTjNum(tjNumber);
                            }
                            e.printStackTrace();
                        }
                    }
//                    }
                    document.close();
                    ByteArrayOutputStream outputStream = (ByteArrayOutputStream) map.get("stream");
                    String encodeToString = java.util.Base64.getEncoder().encodeToString(outputStream.toByteArray());
                    return AjaxResult.success().put("file", encodeToString);
                } catch (IOException | DocumentException e) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    e.printStackTrace();
                }*/
                Map<String,Object> map=new HashMap<>();
                map.put("tjh",tjNumbers);
                return AjaxResult.success("操作成功",map);
            }
            if (!errTjh.isEmpty()){
                Map<String,Object> map=new HashMap<>();
                map.put("errtjh",errTjh);
                return AjaxResult.success("以上人员签到失败",map);
            }
            return AjaxResult.error();
            map.put("errtjh",errTjh);
            return AjaxResult.success("操作成功",map);
        }
//        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        return AjaxResult.error();
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java
@@ -420,6 +420,10 @@
             map.put("jcsj",xdtgmdjg.getJcsj());
             map.put("jcjl",xdtgmdjg.getJcjl());
             return AjaxResult.success(map);
            }else {
                TjProject tjProject = projectService.getById(proId);
                map.put("jcsj","");
                map.put("jcjl",tjProject.getProDefault()==null ? "":tjProject.getProDefault());
            }
            return AjaxResult.success(map);
        }
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java
@@ -39,7 +39,7 @@
            "`sqsj`, `jgsj`, `jcxmmc`, `jcxmid`, `bw`, `jgzt`, `jgbx`, `lx`, `create_time`)\n" +
            "SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw,\n" +
            "a.yxzd jgzt,a.bg_nr jgbx,'0',sysdate()\n" +
            "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} GROUP BY a.xmmc")
            "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} and a.lx=0  GROUP BY a.xmmc")
    void saveLtkjExamJcsqd(String tjh);
    @Select("SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw," +
@@ -64,6 +64,6 @@
            "`jgsj`, `jcxmmc`, `jcxmid`, `bw`, `jgzt`, `jgbx`, `lx`, `create_time`)\n" +
            "SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw,\n" +
            "a.yxzd jgzt,a.bg_nr jgbx,'1',sysdate()\n" +
            "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} GROUP BY a.xmmc")
            "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} and a.lx=1  GROUP BY a.xmmc")
    void saveLtkjExamJcsqdxdt(String tjh);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java
@@ -2,6 +2,7 @@
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.List;
@@ -75,6 +76,8 @@
    private ITjOrderRemarkService tjOrderRemarkService;
    @Resource
    private ITjStandardService tjStandardService;
    @Autowired
    private ITjReportPrintService printService;
    /**
     * 查询体检报告存储
@@ -528,40 +531,100 @@
     * @param tjNumbers
     * @return
     */
//    private AjaxResult sqlGetReportToMake(List<String> tjNumbers) {
//        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
//        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
//        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
//        ArrayList<String> base64Pdfs = new ArrayList<>();
//        for (TjReport report : list) {
//            if (report == null || report.getReport() == null) {
//                // 没有该报告 直接跳过
//                continue;
//            }
//            base64Pdfs.add(report.getReport());
//        }
//        tjNumbers.forEach(tjNumber ->{
//            LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
//            updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
//            updateWrapper.set(TjOrder::getPrintLastTime, new Date());
//            updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
//            updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
//            tjOrderService.update(updateWrapper);
//        });
//        try {
//            byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
//            String s = Base64.getEncoder().encodeToString(mergePDF);
//            return AjaxResult.success().put("file",s);
//            // 本地生成测试
////            String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf";
////            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE));
////            outputStream.write(mergePDF);
////            outputStream.flush();
////            outputStream.close();
//        } catch (DocumentException | IOException e) {
//            e.printStackTrace();
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//            return AjaxResult.error("批量生成失败");
//        }
//    }
    private AjaxResult sqlGetReportToMake(List<String> tjNumbers) {
        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
//        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
//        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
//        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
        ArrayList<String> base64Pdfs = new ArrayList<>();
        for (TjReport report : list) {
            if (report == null || report.getReport() == null) {
                // 没有该报告 直接跳过
                continue;
//        for (TjReport report : list) {
//            if (report == null || report.getReport() == null) {
//                // 没有该报告 直接跳过
//                continue;
//            }
//            base64Pdfs.add(report.getReport());
//        }
        //区域版体检添加院区编码
//        String key = DataSourceContextHolder.getDataSourceKey();
//        key = key.replace("ltkjpeis10_","");
        if(null !=tjNumbers && !tjNumbers.isEmpty()){
            for (String number : tjNumbers) {
                TjOrder order = tjOrderService.getOrderByTjNum(number);
                TjCustomer tjCustomer = tjCustomerService.getById( order.getUserId());
                String filePath = value + File.separator  + File.separator + tjCustomer.getCusId() + order.getTjNumber() + tjCustomer.getCusName() + "_报告.pdf";
                try {
                    // 读取文件为字节数组
                    Path path = Paths.get(filePath);
                    byte[] fileBytes = Files.readAllBytes(path);
                    // 将字节数组转换为 Base64 字符串
                    String base64String = Base64.getEncoder().encodeToString(fileBytes);
                    base64Pdfs.add(base64String);
                    //保存打印数据记录
                    TjReportPrint print=new TjReportPrint();
                    print.setTjNumber(order.getTjNumber());
                    print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
                    print.setPrintTime(new Date());
                    print.setPrintStatus("已打印");
                    if (printService.save(print)) {
                        order.setPrintLastTime(new Date());
                        order.setStatus(TjConstants.TJ_END);
                        tjOrderService.updateById(order);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    log.error(String.valueOf(e));
                }
            }
            base64Pdfs.add(report.getReport());
            try {
                byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
                String s = Base64.getEncoder().encodeToString(mergePDF);
                return AjaxResult.success().put("file",s);
            } catch (DocumentException | IOException e) {
                e.printStackTrace();
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return AjaxResult.error("批量生成失败");
            }
        }
        tjNumbers.forEach(tjNumber ->{
            LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
            updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
            updateWrapper.set(TjOrder::getPrintLastTime, new Date());
            updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
            updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
            tjOrderService.update(updateWrapper);
        });
        try {
            byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
            String s = Base64.getEncoder().encodeToString(mergePDF);
            return AjaxResult.success().put("file",s);
            // 本地生成测试
//            String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf";
//            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE));
//            outputStream.write(mergePDF);
//            outputStream.flush();
//            outputStream.close();
        } catch (DocumentException | IOException e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return AjaxResult.error("批量生成失败");
        }
        return AjaxResult.error("批量生成失败");
    }
}