zhaowenxuan
2024-12-13 ec266a0440669bb6b9830991770fa5b0a7568fdf
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -39,6 +39,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Propagation;
@@ -56,9 +57,10 @@
 * @author ltkj
 * @date 2022-12-06
 */
@Slf4j
@RestController
@RequestMapping("/system/report")
@Api(tags = "体检报告")
@Api(tags = "AAAA_体检报告")
@Transactional
public class TjReportController extends BaseController {
    @Resource
@@ -100,18 +102,22 @@
    private ITjBigPositiveService tjBigPositiveService;
    @Autowired
    private HisPDFUtil hisPDFUtil;
    @Autowired
    private IDictHospService dictHospService;
    @GetMapping("/savePdf")
    @ApiOperation(value = "从本地存储模板到数据库")
    public AjaxResult savePdf() {
        //从文件地址读入PDF文件  仅存储一次
        String base64String = PDFBinaryUtil.getPDFBinary(configService.selectConfigByKey("default_pdf5Template"));
        reportTemplateService.remove(new LambdaQueryWrapper<TjReportTemplate>().eq(TjReportTemplate::getName,"体检报告模板5"));
        TjReportTemplate tem = new TjReportTemplate();
        tem.setName("体检报告模板5");
        tem.setRemark("体检报告模板5");
        tem.setTemplate(base64String);
        tem.setFlag("1");
        tem.setOpen("0");
        tem.setCreateTime(DateUtil.date());
        final boolean save = reportTemplateService.save(tem);
        if (save) {
            return AjaxResult.success("保存成功");
@@ -297,9 +303,10 @@
//            return error;
//        }
//        return AjaxResult.success("该用户体检未完成,不能打印报告!!!");
        int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if (num > 0) {
            return AjaxResult.error("有延期项目暂不能生成报告!!!");
        String config = configService.selectConfigByKey("sfjcwjhyqxm");
        if(null != config && config.equalsIgnoreCase("Y")){
            int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
            if (num > 0) return AjaxResult.error("存在未检或延期项目暂不能生成报告!!!");
        }
//        String configByKey = configService.selectConfigByKey("sfkqdyhis");
@@ -385,11 +392,15 @@
                LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
                wq1.eq(TjCustomer::getCusId, tjOrder.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
                LambdaQueryWrapper<TjReportTemplate> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjReportTemplate::getFlag,"4");
                wrapper.eq(TjReportTemplate::getOpen,"1");
                TjReportTemplate zongJianYiShiQianMing = reportTemplateService.getOne(wrapper);
                try {
                    return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate);
                    return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
                } catch (Exception e) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    e.printStackTrace();
                    log.error(String.valueOf(e));
                    // 调用撤销
//                    tjReportController.backOnlyCheckType(tjNumber);
                    logger.error("生成报告异常");
@@ -402,8 +413,17 @@
        return AjaxResult.error();
    }
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) throws Exception {
        AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) {
        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));
        }
        if (!ajaxResult.get("code").toString().equals("200")) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        } else {
@@ -895,7 +915,8 @@
                // 设置正文字体样式:12号
                Font textFont = PdfUtils.setFont(9);
                //创建表格  将表头字体和正文字体放进去
                PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value);
                DictHosp dictHosp = dictHospService.list().get(0);
                PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("澄合矿务局中心医院"));
                document.add(paragraph);
                document.add(table);
                //判断备注是否为空  空不能显示null
@@ -949,6 +970,7 @@
    }
    private AjaxResult oldFun(String tjNumber) {
        DictHosp dictHosp = dictHospService.list().get(0);
        long startTime = System.currentTimeMillis();
        int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if (num > 0) return AjaxResult.error("有延期项目暂不能生成报告!!!");
@@ -1275,7 +1297,7 @@
                            // 设置正文字体样式:12号
                            Font textFont = PdfUtils.setFont(9);
                            //创建表格  将表头字体和正文字体放进去
                            PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value);
                            PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("澄合矿务局中心医院"));
                            document.add(paragraph);
                            document.add(table);
@@ -2049,6 +2071,8 @@
        } else {
            one.setStatus(TjConstants.TJ_CONFIRM);
        }
        one.setReportTime(null);
        one.setCheckTime(null);
        //将状态改为未审核
//        UpdateWrapper updateWrapper=new UpdateWrapper();
//        updateWrapper.eq("tj_number",tjNumber);