zjh
2025-04-29 6d529f8af3d52a02f04097218d7c17fffd93d49c
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -49,6 +49,9 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -122,6 +125,8 @@
    private ITjProAdvicerulesService tjProAdvicerulesService;
    @Autowired
    private TjOrderYcxmService ycxmService;
    @Resource
    private TjXdtgmdjgService xdtgmdjgService;
    private Integer pdfPage = 0;
@@ -1737,6 +1742,46 @@
            log.error(String.valueOf(e));
            return AjaxResult.error();
        }
        LambdaQueryWrapper<TjXdtgmdjg> wqq=new LambdaQueryWrapper<>();
        wqq.eq(TjXdtgmdjg::getTjh,tjOrder.getTjNumber());
        wqq.isNotNull(TjXdtgmdjg::getUrl);
        List<TjXdtgmdjg> xdtgmdjgList = xdtgmdjgService.list(wqq);
        int index=1;
        for (TjXdtgmdjg xdtgmdjg : xdtgmdjgList) {
            document.newPage();
            cell = new PdfPCell();
            PdfPTable tablefj = new PdfPTable(new float[]{100f});
            tablefj.setTotalWidth(PageSize.A4.getWidth() - 100);
            tablefj.setLockedWidth(true);
            tablefj.setHorizontalAlignment(Element.ALIGN_LEFT);
            tablefj.getDefaultCell().setBorder(0);
            tablefj.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setBorder(Rectangle.NO_BORDER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setPaddingTop(10);
            cell.setPaddingBottom(10);
            cell.setPhrase(new Phrase("附件"+index+": "+ xdtgmdjg.getProName(), zongJianFont));
            Path path = Paths.get(xdtgmdjg.getUrl());
            byte[] bytesfj = null;
            try {
                bytesfj = Files.readAllBytes(path);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            Image image = Image.getInstance(bytesfj);
            image.scaleToFit(500, 2500);
            tablefj.addCell(cell);
            cell = new PdfPCell();
            cell.addElement(image);
            tablefj.addCell(cell);
            document.add(tablefj);
            index++;
        }
        document.close();
@@ -1761,7 +1806,7 @@
        AcroFields acroFields = pdfStamper.getAcroFields();
        BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        acroFields.addSubstitutionFont(bf);
        HashMap<String, Object> data = new HashMap<>();
//        HashMap<String, Object> data = new HashMap<>();
        Long cusSex = customer.getCusSex();
        String tjtype;
        if (cusSex == 0) {
@@ -1781,10 +1826,6 @@
        if (StrUtil.isNotBlank(tjOrder.getFirmName())) {
            hashMap.put("work", tjOrder.getFirmName());
        } else {
//            LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
//            wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId());
//            DictComp dictComp = dictCompService.getOne(wq111);
            if (StrUtil.isBlank(tjOrder.getFirmName())) {
                hashMap.put("work", "无");
            } else {
@@ -1828,6 +1869,9 @@
            PdfImportedPage page = copy.getImportedPage(reader2, i);
            copy.addPage(page);
        }
        reader2.close();
        PdfReader reader1 = new PdfReader(byteArrayOutputStream.toByteArray());
@@ -2951,12 +2995,7 @@
     * @param customer
     */
    private void notHuaYanData(String tjNumber, Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) {
//        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");
//        wqq.notIn(TjOrderRemark::getProId, projectService.getNneedReprotProId());
//        List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq);
        List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.notHuaYanData(tjNumber);
        for (TjOrderRemark tjOrderRemark : tjOrderRemarks) {
            printReport.put(tjOrderRemark, null);
@@ -2984,6 +3023,7 @@
                        }
                        tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId()));
                        tjPdfVO.setPid(String.valueOf(tjProject.getProParentId()));
                        tjPdfVO.setXh(tjProject.getXh());
//                        LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>();
//                        wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber);
//                        wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId()));
@@ -2992,12 +3032,13 @@
                }
            }
            if(!tjPdfVOS.isEmpty()){
                tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
                tjPdfVOS = tjPdfVOS.stream()
                        .sorted(Comparator.comparingInt(
                                tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序
                        ))
                        .collect(Collectors.toList());
//                tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
//                tjPdfVOS = tjPdfVOS.stream()
//                        .sorted(Comparator.comparingInt(
//                                tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序
//                        ))
//                        .collect(Collectors.toList());
                tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getXh)).collect(Collectors.toList());
            }
            printReport.put(entry.getKey(), tjPdfVOS);
        }