zjh
2024-12-25 79f9fbd9f999e26af3f0bca534d825eb687e092c
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -30,6 +30,7 @@
import com.ltkj.system.service.ISysDictDataService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.config.pdfutils.PdfUtils;
import com.ltkj.web.controller.system.SysDeptController;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -109,6 +110,8 @@
    private TjOrderRemarkMapper tjOrderRemarkMapper;
    @Autowired
    private TjOrderDetailMapper tjOrderDetailMapper;
    @Autowired
    private SysDeptController sysDeptController;
    private Integer pdfPage = 0;
@@ -116,6 +119,7 @@
    private static int DEFAULT_LITTLE_TITLE_FONT_SIZE = 11;
    private static int DEFAULT_TITLE_FONT_SIZE = 12;
    private static int DEFAULT_ZONGJIAN_FONT_SIZE = 15;
    private static String HOSP_NAME;
    private List<Map<String, Object>> makePDFInfo(HashMap<String, Object> map, AjaxResult ajaxResult, String key) {
        List<Map<String, Object>> data = null;
@@ -156,7 +160,8 @@
        int pageSize = 0;
        try {
            pdfWriter = PdfWriter.getInstance(document1, byteArrayOutputStream1);
            if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
//            if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
            if (true){
                String sex = "";
                if (customer.getCusSex() != null) {
                    for (SysDictData userSex : sysUserSex) {
@@ -166,7 +171,8 @@
                    }
                }
                if (StrUtil.isBlank(sex)) sex = "未知";
                pdfWriter.setPageEvent(new FooterHeaderPageEvent("澄合矿务局中心医院",customer.getCusName(),tjOrder.getTjNumber(),sex,String.valueOf(DateUtil.ageOfNow(customer.getCusBrithday())),null));
//                pdfWriter.setPageEvent(new FooterHeaderPageEvent("澄合矿务局中心医院",customer.getCusName(),tjOrder.getTjNumber(),sex,String.valueOf(DateUtil.ageOfNow(customer.getCusBrithday())),null));
                pdfWriter.setPageEvent(new FooterHeaderPageEvent(dictHosp.getHospName(),customer.getCusName(),tjOrder.getTjNumber(),sex,String.valueOf(DateUtil.ageOfNow(customer.getCusBrithday())),null));
                pageSize = pdfWriter.getPageNumber();
            }
        } catch (DocumentException e) {
@@ -176,7 +182,8 @@
        document1.setMargins(70, 70, 40, 40);
        document1.open();
        if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
//        if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
        if (true){
            // 组装体检检查项目报告
            Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>();
            notHuaYanData(tjOrder.getTjNumber(), printReport, tjOrder, customer);
@@ -224,7 +231,8 @@
            copy.addPage(page);
        }
        if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
//        if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
        if (!true){
            List<ByteArrayOutputStream> jianchas =  makeHisJianChaTable(tjOrder);
//        List<ByteArrayOutputStream> jianchas = makeCcgcHisJianChaTable(tjOrder);
            try {
@@ -254,7 +262,8 @@
            int pages = pdfReader.getNumberOfPages();
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            PdfStamper pdfStamper = new PdfStamper(pdfReader, outputStream);
            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
//            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
            if (!true){
                PdfContentByte contentByte;
                BaseFont baseFont = PdfUtils.createBaseFont(null);
                for (int i = 2; i <= pages; i++) {
@@ -866,6 +875,7 @@
        String s2 = sysConfigService.selectConfigByKey("tjreport_font_size_second_page_title");
        String s3 = sysConfigService.selectConfigByKey("tjreport_font_size_result_title");
        String s4 = sysConfigService.selectConfigByKey("tjreport_font_size_zongjian");
//        String hospName = sysDeptController.getdangqiandengluyuanqu().get("msg").toString();
        if (StrUtil.isNotBlank(s1) && Integer.parseInt(s1) > 10) DEFAULT_FONT_SIZE = Integer.parseInt(s1);
        else DEFAULT_FONT_SIZE = 10;
        if (StrUtil.isNotBlank(s2) && Integer.parseInt(s2) > 10) DEFAULT_LITTLE_TITLE_FONT_SIZE = Integer.parseInt(s2);
@@ -876,6 +886,7 @@
        else DEFAULT_ZONGJIAN_FONT_SIZE = 10;
        pdfPage = 0;
        DictHosp dictHosp = dictHospService.list().get(0);
        HOSP_NAME = dictHosp.getHospName();
        String color = sysConfigService.selectConfigByKey("report_title_color");
        List<SysDictData> sysUserSex = sysDictDataService.list(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getDictType, "sys_user_sex"));
        // 检验数据
@@ -1831,7 +1842,8 @@
                    }
                }
                //分割线
                if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//                if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                if (!true) {
                    LineSeparator objectName = new LineSeparator();
                    objectName.setOffset(-5);
                    document1.add(objectName);
@@ -1867,7 +1879,8 @@
                    Font titleFonts = PdfUtils.setFont(9);
                    Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
                    if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (true) {
                        Font titleFont = PdfUtils.setFont(DEFAULT_TITLE_FONT_SIZE);
                        titleFont.setStyle(Font.BOLD);
                        PdfPCell cellTitle = new PdfPCell(PdfUtils.setParagraph(titleFont, titleName));
@@ -1891,7 +1904,8 @@
//                    PdfPTable table = PdfUtils.setTable2(headFont, textFont, titles, value,dictHosp.getHospName().equals("澄合矿务局中心医院"));
//                    document1.add(table);
                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (true && !value.isEmpty()){
                        if (value.size()>1){
                            if (value.get(0).getPid().equals("1862852701533012001")){
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2011,7 +2025,8 @@
                    if (entry.getKey().getRemark() == null) {
                        entry.getKey().setRemark("");
                    }
                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
                    if (!true){
                        String remark = "备注:" + entry.getKey().getRemark();
                        if (entry.getKey().getRemark().length() > 50) {
                            int j = 0;
@@ -2037,7 +2052,8 @@
                    //判断主检医师是否为空  空不能显示null
                    zhuJianYiShi(document1, entry,orderRemark.getCreateTime(),dictHosp);
                    //分割线
                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (!true) {
                        LineSeparator objectName = new LineSeparator();
                        document1.add(objectName);
                    }
@@ -2053,7 +2069,8 @@
                    Font titleFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                    Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
                    if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (true) {
                        if (StrUtil.isBlank(value.get(0).getProResult()) && (StrUtil.isBlank(value.get(0).getTs()) && StrUtil.isBlank(value.get(0).getSj()))){
                            continue;
                        }
@@ -2079,7 +2096,8 @@
//                    PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.getHospName().equals("澄合矿务局中心医院"));
//                    document1.add(table);
                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (true && !value.isEmpty()){
                        if (value.size()>1){
                            if (value.get(0).getPid().equals("1862852701533012001")){
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2203,7 +2221,8 @@
                    if (entry.getKey().getRemark() == null) {
                        entry.getKey().setRemark("");
                    }
                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
                    if (!true){
                        String remark = "备注:" + entry.getKey().getRemark();
                        if (entry.getKey().getRemark().length() > 50) {
                            int j = 0;
@@ -2228,7 +2247,8 @@
                    }
                    //判断主检医师是否为空  空不能显示null
                    zhuJianYiShi(document1, entry,orderRemark.getCreateTime(),dictHosp);
                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (!true) {
                        //分割线
                        LineSeparator objectName = new LineSeparator();
                        document1.add(objectName);
@@ -2245,13 +2265,15 @@
     * @throws DocumentException
     */
    private void zhuJianYiShi(Document document1, Map.Entry<TjOrderRemark, List<TjPdfVO>> entry,Date createTime,DictHosp dictHosp) throws DocumentException {
        if ((null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) || dictHosp.getHospName().equals("澄合矿务局中心医院") ) {
//        if ((null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) || dictHosp.getHospName().equals("澄合矿务局中心医院") ) {
        if ((null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) || true ) {
            //主检医师
            String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm");
            SysUser sysUser = userService.getById(entry.getKey().getDoctorName());
            String doctorNameDefault = "无";
            if (sysUser != null)doctorNameDefault = sysUser.getNickName();
            if (!entry.getValue().isEmpty() && StrUtil.isNotBlank(entry.getValue().get(0).getShys()) && dictHosp.getHospName().equals("澄合矿务局中心医院")){
//            if (!entry.getValue().isEmpty() && StrUtil.isNotBlank(entry.getValue().get(0).getShys()) && dictHosp.getHospName().equals("澄合矿务局中心医院")){
            if (!entry.getValue().isEmpty() && StrUtil.isNotBlank(entry.getValue().get(0).getShys()) && true){
                doctorNameDefault = entry.getValue().get(0).getShys();
            }
            Font doctorFonts = PdfUtils.setFont(9);
@@ -2450,7 +2472,8 @@
            }
            //拼接重大阳性结果
            StringBuffer str = new StringBuffer();
            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
            if (!true) {
                str.append("【重大阳性项目】\n");
                LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
                bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber);
@@ -2465,7 +2488,8 @@
            }
            //拼接异常项目
            str.append("【异常情况项目】\n");
            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
            if (!true) {
                if (list.size() > 0) {
                    for (int i = 0; i < list.size(); i++) {
                        if (list.get(i).getExceptionDesc() == 1) {
@@ -2799,7 +2823,8 @@
    private static void addJianYanTable(Document document, String titleName, String[] titles, float[] titlesWidth, ArrayList<List<String>> lists,DictHosp dictHosp,String colorStr) throws DocumentException {
        // 大项标题
        Font titleFont = PdfUtils.setFont(DEFAULT_TITLE_FONT_SIZE);
        if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//        if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
        if (true) {
            titleFont.setSize(DEFAULT_TITLE_FONT_SIZE);
            titleFont.setStyle(Font.BOLD);
        }
@@ -2811,7 +2836,8 @@
        paragraph.setSpacingBefore(10f);
        // 设置段落下空白
        paragraph.setSpacingAfter(10f);
        if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
//        if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
        if (true) {
            // 行间距
            paragraph.setLeading(7f);
            // 设置段落上空白
@@ -2857,7 +2883,8 @@
        for (List<String> list : lists) {
            boolean isYc = false;
            textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
            if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
//            if (dictHosp.getHospName().equals("澄合矿务局中心医院")){
            if (true){
                if (list.contains("↓") || list.contains("↑")){
                    isYc = true;
                }
@@ -2927,7 +2954,8 @@
            table1.setSpacingAfter(10f);
            Font titleFont = PdfUtils.setFont(12);
            PdfPCell mergedCell = new PdfPCell(new Phrase("陕健医澄合矿务局中心医院", titleFont));
//            PdfPCell mergedCell = new PdfPCell(new Phrase("陕健医澄合矿务局中心医院", titleFont));
            PdfPCell mergedCell = new PdfPCell(new Phrase(HOSP_NAME, titleFont));
            mergedCell.setBorder(Rectangle.NO_BORDER);
            mergedCell.setColspan(10);
            mergedCell.setHorizontalAlignment(Element.ALIGN_CENTER);