zjh
2024-01-04 8720970864b887e34adc94e5bf5b19e709a1c042
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -1,6 +1,8 @@
package com.ltkj.web.controller.system;
import java.io.*;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -8,9 +10,11 @@
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.ltkj.common.excelConfig.ExcelUtils;
@@ -21,11 +25,14 @@
import com.ltkj.hosp.dto.ConfirmDto;
import com.ltkj.hosp.dto.ExcelImportDto;
import com.ltkj.hosp.service.*;
import com.ltkj.mall.mallOrderUtils.TjConstants;
import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
import com.ltkj.web.config.redis.OrderDelayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -71,12 +78,86 @@
    private TjAsyncService asyncService;
    @Resource
    private OrderDelayService delayService;
    @Resource
    private ITjReportTemplateService reportTemplateService;
    @Value("${path.filePath}")
    private String value;
    @PostMapping("/importTemplate")
    @ApiOperation(value = "导出excel表模板")
    public void importTemplate(HttpServletResponse response) {
        ExcelUtils.exportTemplate(response, "体检预约Excel模板", TjReservation.class);
        //原来的下载模板调用接口
//        ExcelUtils.exportTemplate(response, "体检预约Excel模板", TjReservation.class);
        String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\西安路泰机电科技有限公司.xls");
//        TjReportTemplate tem = new TjReportTemplate();
//        tem.setName("团体预约Excel模版");
//        tem.setRemark("团体预约Excel模版");
//        tem.setTemplate(base64String);
//        tem.setFlag("1");
//        tem.setOpen("0");
//        reportTemplateService.save(tem);
//        LambdaQueryWrapper<TjReportTemplate> wq = new LambdaQueryWrapper<>();
//        wq.eq(TjReportTemplate::getFlag, 4);
//        wq.eq(TjReportTemplate::getName, "");
//        wq.eq(TjReportTemplate::getOpen, 0);
//         reportTemplateService.getOne(wq);
        PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + "\\" + "团体预约Excel模版.xls");
        String filePath = value + "\\" + "团体预约Excel模版.xls";
        File f = new File(filePath);
        if (filePath.isEmpty()) {
            System.out.println("文件不存在!");
            return;
        }
        BufferedInputStream br = null;
        OutputStream out = null;
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(f);
            br = new BufferedInputStream(fileInputStream);
            byte[] bs = new byte[1024];
            int len = 0;
            response.reset(); // 非常重要
            if (true) {
                // 在线打开方式
                URL u = new URL("file:///" + filePath);
                //System.out.println(u);
                String contentType = u.openConnection().getContentType();
                response.setContentType(contentType);
                response.setHeader("Content-Disposition", "inline;filename=团体预约Excel模版.xls");
            } else {
                // 纯下载方式
                response.setContentType("application/x-msdownload");
                response.setContentType("application/pdf;charset=utf-8");
                response.setHeader("Content-Disposition", "attachment;filename=团体预约Excel模版.xls");
            }
            out = response.getOutputStream();
            while ((len = br.read(bs)) > 0) {
                out.write(bs, 0, len);
            }
            out.flush();
            out.close();
            br.close();
            fileInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
            //System.out.println("pdf处理文件异常" + e);
        } finally {
            if (out != null) {
                try {
                    out.close();
                    br.close();
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
@@ -428,7 +509,16 @@
        TjReservation tjReservation = tjReservationService.selectTjReservationById(id);
        if (null != tjReservation) {
            if (null != tjReservation.getPacId()) {
                tjReservation.setPacName(packageService.getById(tjReservation.getPacId()).getPacName());
                TjPackage aPackage = packageService.getById(tjReservation.getPacId());
                if(null !=aPackage){
                    tjReservation.setPacName(aPackage.getPacName());
                }
                TjDwDept dwDept = dwDeptService.getById(tjReservation.getPacId());
                if(null !=dwDept){
                    tjReservation.setPacName(dwDept.getDwName());
                }
            }
            if (null != tjReservation.getProIds()) {
                List<String> proNames = new ArrayList<>();