From 6e9a63d461ea7942bedb7a7e7235772eebdcce92 Mon Sep 17 00:00:00 2001 From: "15881625488@163.com" <15881625488@163.com> Date: Mon, 2 Feb 2026 19:13:14 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A[=E4=BB=A3=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StudyFormFillController.java | 2 +- .../controller/StudyFormPlanController.java | 2 +- .../business/controller/StudyMethodController.java | 2 +- .../business/service/impl/GyzjServiceImpl.java | 6 +- .../hxhq/business/service/impl/MjyServiceImpl.java | 6 +- .../utils/pdf/template/gsp/MBMJYLQSQD.java | 129 ------------------ .../utils/pdf/template/gsp/Mbmjylqsqd.java | 127 ++++++++++++++++++ .../business/utils/pdf/template/gsp/SYWZPZJHB.java | 148 --------------------- .../business/utils/pdf/template/gsp/Sywzpzjhb.java | 148 +++++++++++++++++++++ .../hxhq/business/utils/pdf/template/sp/SP001.java | 133 ------------------ .../hxhq/business/utils/pdf/template/sp/Sp001.java | 133 ++++++++++++++++++ 11 files changed, 417 insertions(+), 419 deletions(-) delete mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/MBMJYLQSQD.java create mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Mbmjylqsqd.java delete mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java create mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Sywzpzjhb.java delete mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java create mode 100644 hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/Sp001.java diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormFillController.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormFillController.java index 0b65eec..8bd5082 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormFillController.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormFillController.java @@ -91,7 +91,7 @@ public class StudyFormFillController extends BaseController { @GetMapping("/jcgjqmxxList") @RequiresPermissions(value = {"business:studyFormFill:xq", "business:nonTrialFormFill:xq", "business:drugFormFill:xq"}, logical = Logical.OR) public AjaxResult jcgjqmxxList(Integer jcgjlx,Long id) { - HashMap map=new HashMap(); + HashMap map=new HashMap(2); //稽查轨迹 QueryWrapper studyFormFillJcgjQueryWrapper = Wrappers.query(); studyFormFillJcgjQueryWrapper.eq("form_id",id); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormPlanController.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormPlanController.java index 9b1e186..17da503 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormPlanController.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyFormPlanController.java @@ -90,7 +90,7 @@ public class StudyFormPlanController extends BaseController @GetMapping("/jcgjqmxxList") @RequiresPermissions(value = {"business:studyFormPlan:xq", "business:nonTrialFormPlan:xq", "business:drugFormPlan:xq"}, logical = Logical.OR) public AjaxResult jcgjqmxxList(Integer jcgjlx,Long id) { - HashMap map=new HashMap(); + HashMap map=new HashMap(2); //稽查轨迹 QueryWrapper studyFormPlanJcgjQueryWrapper = Wrappers.query(); studyFormPlanJcgjQueryWrapper.eq("form_id",id); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyMethodController.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyMethodController.java index 386f082..a56a068 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyMethodController.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyMethodController.java @@ -96,7 +96,7 @@ public class StudyMethodController extends BaseController { List list = studyMethodReadService.queryList(studyMethodId); String exportStudyMethodFilePath = studyMethodFileUtil.exportStudyMethodFile(studyMethod, list); - Map result = new HashMap<>(); + Map result = new HashMap<>(2); result.put("fileUrl", exportStudyMethodFilePath); return AjaxResult.success(result); } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java index ea15df0..21e7de2 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java @@ -1326,7 +1326,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG Long studyFormId = studyFormFill.getId(); // 生成/使用 String resource = studyFormFill.getResource(); - Map gyzjMap = new HashMap<>(); + Map gyzjMap = new HashMap<>(10); List gyzjList = new ArrayList<>(); LinkedList jcgjList = new LinkedList<>(); LinkedList tzList = new LinkedList<>(); @@ -1405,7 +1405,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG if (gyzj != null) { list.add(bh); // 稽查轨迹 - HashMap formData = new HashMap<>(); + HashMap formData = new HashMap<>(2); formData.put("存储位置", studyFormFillCc.getCcwz()); formData.put("存储条件", studyFormFillCc.getCctj()); jcgjList.add(gyzjJcgjService.getJcgj(gyzj.getId(), JcgjlxEnum.lc.getValue(), "存储", JcmcysEnum.green.getValue(), JctUtil.formatStr(formData), JctUtil.formatStr(GyzjJcnrUtil.getMapEn(formData)), qmr, remark)); @@ -1430,7 +1430,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG if (gyzj != null) { list.add(bh); // 稽查轨迹 - HashMap formData = new HashMap<>(); + HashMap formData = new HashMap<>(2); formData.put("处置方式", studyFormFillCz.getCzfs()); formData.put("处置量", gyzj.getKc() + gyzj.getKcdw()); jcgjList.add(gyzjJcgjService.getJcgj(gyzj.getId(), JcgjlxEnum.lc.getValue(), "处置", JcmcysEnum.green.getValue(), JctUtil.formatStr(formData), JctUtil.formatStr(GyzjJcnrUtil.getMapEn(formData)), qmr, remark)); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java index 1249f1e..00f693f 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java @@ -1229,7 +1229,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS Long studyFormId = studyFormFill.getId(); // 生成/使用 String resource = studyFormFill.getResource(); - Map mjyMap = new HashMap<>(); + Map mjyMap = new HashMap<>(10); List mjyList = new ArrayList<>(); LinkedList jcgjList = new LinkedList<>(); LinkedList tzList = new LinkedList<>(); @@ -1308,7 +1308,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if(mjy!=null){ list.add(bh); // 稽查轨迹 - HashMap formData = new HashMap<>(); + HashMap formData = new HashMap<>(2); formData.put("存储位置", studyFormFillCc.getCcwz()); formData.put("存储条件", studyFormFillCc.getCctj()); jcgjList.add(mjyJcgjService.getJcgj(mjy.getId(), JcgjlxEnum.lc.getValue(), "存储", JcmcysEnum.green.getValue(), JctUtil.formatStr(formData), JctUtil.formatStr(MjyJcnrUtil.getMapEn(formData)), qmr, remark)); @@ -1333,7 +1333,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if(mjy!=null){ list.add(bh); // 稽查轨迹 - HashMap formData = new HashMap<>(); + HashMap formData = new HashMap<>(2); formData.put("处置方式", studyFormFillCz.getCzfs()); formData.put("处置量", mjy.getKc() + mjy.getKcdw()); jcgjList.add(mjyJcgjService.getJcgj(mjy.getId(), JcgjlxEnum.lc.getValue(), "处置", JcmcysEnum.green.getValue(), JctUtil.formatStr(formData), JctUtil.formatStr(MjyJcnrUtil.getMapEn(formData)), qmr, remark)); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/MBMJYLQSQD.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/MBMJYLQSQD.java deleted file mode 100644 index 7c05ae1..0000000 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/MBMJYLQSQD.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hxhq.business.utils.pdf.template.gsp; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.hxhq.business.domain.StudyFormApply; -import com.hxhq.business.domain.StudyFormApplyJcgj; -import com.hxhq.business.domain.StudyFormApplyQmxx; -import com.hxhq.business.utils.pdf.PdfBaseUtil; -import com.hxhq.business.utils.pdf.PdfExportUtil; -import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; -import com.hxhq.common.core.utils.StringUtils; -import com.hxhq.common.security.utils.SecurityUtils; -import com.hxhq.system.api.model.LoginUser; -import com.itextpdf.text.*; -import com.itextpdf.text.pdf.BaseFont; -import com.itextpdf.text.pdf.PdfPCell; -import com.itextpdf.text.pdf.PdfPTable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * 供试品-麻醉/精神药品配制/领取申请单 - * - * @author tanfei - */ -public class MBMJYLQSQD { - private static final Logger logger = LoggerFactory.getLogger(MBMJYLQSQD.class.getName()); - public String language = "zh"; - - /** - * 导出 - * - * @param studyFormApply - * @return - */ - public String exportDetail(StudyFormApply studyFormApply, List studyFormApplyQmxxList, List studyFormApplyJcgjList, String lang, Integer jcgjlx, String localFilePath) { - language = lang; - Document document = null; - FileOutputStream fos = null; - String filePath = PdfBaseUtil.getFilePath(localFilePath, "Template"); - try { - String sign = "hxhq"; - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null) { - sign = loginUser.getSysUser().getNickName(); - } - document = PdfBaseUtil.init(document, fos, filePath, sign + PdfExportUtil.parseDateToStr(new Date()), studyFormApply.getBdmc(), false); - JSONObject bdnr = JSONObject.parseObject(studyFormApply.getBdnr()); - JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormApply.getZdgxjl()) ? studyFormApply.getZdgxjl() : "{}"); - JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormApply.getFhyjjl()) ? studyFormApply.getFhyjjl() : "[]"); - - //region 表单信息 - - //基本信息 - PdfBaseUtil.addUnderlinedTitle(document, getName("基本信息"), 10, true); - Map formData2 = new LinkedHashMap<>(); - formData2.put(getName("试验编号或部门名称"), (StringUtils.isNoneBlank(bdnr.getString("syNo")) ? bdnr.getString("syNo") : "") + TemplateBaseUtil.getCheck("_syNo", zdgxjl) + TemplateBaseUtil.getFh("_syNo", fhyjjl)); - formData2.put(getName("SD/部长"), (StringUtils.isNoneBlank(bdnr.getString("SD")) ? bdnr.getString("SD") : "") + TemplateBaseUtil.getCheck("_SD", zdgxjl) + TemplateBaseUtil.getFh("_SD", fhyjjl)); - formData2.put(getName("试验物质名称"), (StringUtils.isNoneBlank(bdnr.getString("sywzmc")) ? bdnr.getString("sywzmc") : "") + TemplateBaseUtil.getCheck("_sywzmc", zdgxjl) + TemplateBaseUtil.getFh("_sywzmc", fhyjjl)); - formData2.put(getName("给药剂量"), (StringUtils.isNoneBlank(bdnr.getString("gyjl")) ? bdnr.getString("gyjl") : "") + TemplateBaseUtil.getCheck("_gyjl", zdgxjl) + TemplateBaseUtil.getFh("_gyjl", fhyjjl)); - formData2.put(getName("需要浓度"), (StringUtils.isNoneBlank(bdnr.getString("xynd")) ? bdnr.getString("xynd") : "") + TemplateBaseUtil.getCheck("_xynd", zdgxjl) + TemplateBaseUtil.getFh("_xynd", fhyjjl)); - formData2.put(getName("需要量"), (StringUtils.isNoneBlank(bdnr.getString("xyl")) ? bdnr.getString("xyl") : "") + TemplateBaseUtil.getCheck("_xyl", zdgxjl) + TemplateBaseUtil.getFh("_xyl", fhyjjl)); - formData2.put(getName("需要时间"), (StringUtils.isNoneBlank(bdnr.getString("xysj")) ? bdnr.getString("xysj") : "") + TemplateBaseUtil.getCheck("_xysj", zdgxjl) + TemplateBaseUtil.getFh("_xysj", fhyjjl)); - formData2.put(getName("预计归还时间"), (StringUtils.isNoneBlank(bdnr.getString("yjghsj")) ? bdnr.getString("yjghsj") : "") + TemplateBaseUtil.getCheck("_yjghsj", zdgxjl) + TemplateBaseUtil.getFh("_yjghsj", fhyjjl)); - if(StringUtils.isNoneBlank(bdnr.getString("dwzsOther"))){ - formData2.put(getName("动物种属"), - getName("其他")+ TemplateBaseUtil.getCheck("_dwzs", zdgxjl) + TemplateBaseUtil.getFh("_dwzs", fhyjjl) + - (StringUtils.isNoneBlank(bdnr.getString("dwzsOther")) ? bdnr.getString("dwzsOther") : "") + TemplateBaseUtil.getCheck("_dwzsOther", zdgxjl) + TemplateBaseUtil.getFh("_dwzsOther", fhyjjl)); - }else{ - formData2.put(getName("动物种属"), (StringUtils.isNoneBlank(bdnr.getString("dwzs")) ? bdnr.getString("dwzs") : "") + TemplateBaseUtil.getCheck("_dwzs", zdgxjl) + TemplateBaseUtil.getFh("_dwzs", fhyjjl)); - } - formData2.put(getName("动物平均体重"), (StringUtils.isNoneBlank(bdnr.getString("dwpjtz")) ? bdnr.getString("dwpjtz") : "") + TemplateBaseUtil.getCheck("_dwpjtz", zdgxjl) + TemplateBaseUtil.getFh("_dwpjtz", fhyjjl)); - if(StringUtils.isNoneBlank(bdnr.getString("dwslOther"))) { - formData2.put(getName("动物数量"), - (StringUtils.isNoneBlank(bdnr.getString("dwsl")) ? bdnr.getString("dwsl") : "") + TemplateBaseUtil.getCheck("_dwsl", zdgxjl) + TemplateBaseUtil.getFh("_dwsl", fhyjjl)+ - getName("其他")+ TemplateBaseUtil.getCheck("_dwslUnit", zdgxjl) + TemplateBaseUtil.getFh("_dwslUnit", fhyjjl) + - (StringUtils.isNoneBlank(bdnr.getString("dwslOther")) ? bdnr.getString("dwslOther") : "") + TemplateBaseUtil.getCheck("_dwslOther", zdgxjl) + TemplateBaseUtil.getFh("_dwslOther", fhyjjl) - ); - }else{ - formData2.put(getName("动物数量"), - (StringUtils.isNoneBlank(bdnr.getString("dwsl")) ? bdnr.getString("dwsl") : "") + TemplateBaseUtil.getCheck("_dwsl", zdgxjl) + TemplateBaseUtil.getFh("_dwsl", fhyjjl)+ - (StringUtils.isNoneBlank(bdnr.getString("dwslUnit")) ? bdnr.getString("dwslUnit") : "") + TemplateBaseUtil.getCheck("_dwslUnit", zdgxjl) + TemplateBaseUtil.getFh("_dwslUnit", fhyjjl) - ); - } - PdfBaseUtil.addFormTableColumns(document, formData2, 2); - - PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : "")+(TemplateBaseUtil.getCheck("_remark",zdgxjl)+TemplateBaseUtil.getFh("_remark",fhyjjl)), 10, false); - //签名信息 - TemplateBaseUtil.addQmxxApply(document, studyFormApplyQmxxList, language); - //稽查轨迹 - TemplateBaseUtil.addJcgjApply(document,studyFormApplyJcgjList, jcgjlx, language); - logger.info("生成成功:{}", filePath); - } catch (Exception e) { - logger.error("生成失败", e); - throw new RuntimeException("生成失败: " + e.getMessage()); - } finally { - if (document != null) { - document.close(); - } - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - logger.error("关闭文件流失败", e); - } - } - } - return filePath; - } - - - /** - * 获取名称 - * - * @param name - * @return - */ - public String getName(String name) { - return TemplateBaseUtil.getNameByLanguage(name, language); - } - -} diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Mbmjylqsqd.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Mbmjylqsqd.java new file mode 100644 index 0000000..374749b --- /dev/null +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Mbmjylqsqd.java @@ -0,0 +1,127 @@ +package com.hxhq.business.utils.pdf.template.gsp; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.hxhq.business.domain.StudyFormApply; +import com.hxhq.business.domain.StudyFormApplyJcgj; +import com.hxhq.business.domain.StudyFormApplyQmxx; +import com.hxhq.business.utils.pdf.PdfBaseUtil; +import com.hxhq.business.utils.pdf.PdfExportUtil; +import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; +import com.hxhq.common.core.utils.StringUtils; +import com.hxhq.common.security.utils.SecurityUtils; +import com.hxhq.system.api.model.LoginUser; +import com.itextpdf.text.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 供试品-麻醉/精神药品配制/领取申请单 + * + * @author tanfei + */ +public class Mbmjylqsqd { + private static final Logger logger = LoggerFactory.getLogger(Mbmjylqsqd.class.getName()); + public String language = "zh"; + + /** + * 导出 + * + * @param studyFormApply + * @return + */ + public String exportDetail(StudyFormApply studyFormApply, List studyFormApplyQmxxList, List studyFormApplyJcgjList, String lang, Integer jcgjlx, String localFilePath) { + language = lang; + Document document = null; + FileOutputStream fos = null; + String filePath = PdfBaseUtil.getFilePath(localFilePath, "Template"); + try { + String sign = "hxhq"; + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + sign = loginUser.getSysUser().getNickName(); + } + document = PdfBaseUtil.init(document, fos, filePath, sign + PdfExportUtil.parseDateToStr(new Date()), studyFormApply.getBdmc(), false); + JSONObject bdnr = JSONObject.parseObject(studyFormApply.getBdnr()); + JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormApply.getZdgxjl()) ? studyFormApply.getZdgxjl() : "{}"); + JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormApply.getFhyjjl()) ? studyFormApply.getFhyjjl() : "[]"); + + //region 表单信息 + + //基本信息 + PdfBaseUtil.addUnderlinedTitle(document, getName("基本信息"), 10, true); + Map formData2 = new LinkedHashMap<>(); + formData2.put(getName("试验编号或部门名称"), (StringUtils.isNoneBlank(bdnr.getString("syNo")) ? bdnr.getString("syNo") : "") + TemplateBaseUtil.getCheck("_syNo", zdgxjl) + TemplateBaseUtil.getFh("_syNo", fhyjjl)); + formData2.put(getName("SD/部长"), (StringUtils.isNoneBlank(bdnr.getString("SD")) ? bdnr.getString("SD") : "") + TemplateBaseUtil.getCheck("_SD", zdgxjl) + TemplateBaseUtil.getFh("_SD", fhyjjl)); + formData2.put(getName("试验物质名称"), (StringUtils.isNoneBlank(bdnr.getString("sywzmc")) ? bdnr.getString("sywzmc") : "") + TemplateBaseUtil.getCheck("_sywzmc", zdgxjl) + TemplateBaseUtil.getFh("_sywzmc", fhyjjl)); + formData2.put(getName("给药剂量"), (StringUtils.isNoneBlank(bdnr.getString("gyjl")) ? bdnr.getString("gyjl") : "") + TemplateBaseUtil.getCheck("_gyjl", zdgxjl) + TemplateBaseUtil.getFh("_gyjl", fhyjjl)); + formData2.put(getName("需要浓度"), (StringUtils.isNoneBlank(bdnr.getString("xynd")) ? bdnr.getString("xynd") : "") + TemplateBaseUtil.getCheck("_xynd", zdgxjl) + TemplateBaseUtil.getFh("_xynd", fhyjjl)); + formData2.put(getName("需要量"), (StringUtils.isNoneBlank(bdnr.getString("xyl")) ? bdnr.getString("xyl") : "") + TemplateBaseUtil.getCheck("_xyl", zdgxjl) + TemplateBaseUtil.getFh("_xyl", fhyjjl)); + formData2.put(getName("需要时间"), (StringUtils.isNoneBlank(bdnr.getString("xysj")) ? bdnr.getString("xysj") : "") + TemplateBaseUtil.getCheck("_xysj", zdgxjl) + TemplateBaseUtil.getFh("_xysj", fhyjjl)); + formData2.put(getName("预计归还时间"), (StringUtils.isNoneBlank(bdnr.getString("yjghsj")) ? bdnr.getString("yjghsj") : "") + TemplateBaseUtil.getCheck("_yjghsj", zdgxjl) + TemplateBaseUtil.getFh("_yjghsj", fhyjjl)); + String dwzsOther="dwzsOther"; + if(StringUtils.isNoneBlank(bdnr.getString(dwzsOther))){ + formData2.put(getName("动物种属"), + getName("其他")+ TemplateBaseUtil.getCheck("_dwzs", zdgxjl) + TemplateBaseUtil.getFh("_dwzs", fhyjjl) + + (StringUtils.isNoneBlank(bdnr.getString("dwzsOther")) ? bdnr.getString("dwzsOther") : "") + TemplateBaseUtil.getCheck("_dwzsOther", zdgxjl) + TemplateBaseUtil.getFh("_dwzsOther", fhyjjl)); + }else{ + formData2.put(getName("动物种属"), (StringUtils.isNoneBlank(bdnr.getString("dwzs")) ? bdnr.getString("dwzs") : "") + TemplateBaseUtil.getCheck("_dwzs", zdgxjl) + TemplateBaseUtil.getFh("_dwzs", fhyjjl)); + } + formData2.put(getName("动物平均体重"), (StringUtils.isNoneBlank(bdnr.getString("dwpjtz")) ? bdnr.getString("dwpjtz") : "") + TemplateBaseUtil.getCheck("_dwpjtz", zdgxjl) + TemplateBaseUtil.getFh("_dwpjtz", fhyjjl)); + if(StringUtils.isNoneBlank(bdnr.getString(dwzsOther))) { + formData2.put(getName("动物数量"), + (StringUtils.isNoneBlank(bdnr.getString("dwsl")) ? bdnr.getString("dwsl") : "") + TemplateBaseUtil.getCheck("_dwsl", zdgxjl) + TemplateBaseUtil.getFh("_dwsl", fhyjjl)+ + getName("其他")+ TemplateBaseUtil.getCheck("_dwslUnit", zdgxjl) + TemplateBaseUtil.getFh("_dwslUnit", fhyjjl) + + (StringUtils.isNoneBlank(bdnr.getString("dwslOther")) ? bdnr.getString("dwslOther") : "") + TemplateBaseUtil.getCheck("_dwslOther", zdgxjl) + TemplateBaseUtil.getFh("_dwslOther", fhyjjl) + ); + }else{ + formData2.put(getName("动物数量"), + (StringUtils.isNoneBlank(bdnr.getString("dwsl")) ? bdnr.getString("dwsl") : "") + TemplateBaseUtil.getCheck("_dwsl", zdgxjl) + TemplateBaseUtil.getFh("_dwsl", fhyjjl)+ + (StringUtils.isNoneBlank(bdnr.getString("dwslUnit")) ? bdnr.getString("dwslUnit") : "") + TemplateBaseUtil.getCheck("_dwslUnit", zdgxjl) + TemplateBaseUtil.getFh("_dwslUnit", fhyjjl) + ); + } + PdfBaseUtil.addFormTableColumns(document, formData2, 2); + + PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : "")+(TemplateBaseUtil.getCheck("_remark",zdgxjl)+TemplateBaseUtil.getFh("_remark",fhyjjl)), 10, false); + //签名信息 + TemplateBaseUtil.addQmxxApply(document, studyFormApplyQmxxList, language); + //稽查轨迹 + TemplateBaseUtil.addJcgjApply(document,studyFormApplyJcgjList, jcgjlx, language); + logger.info("生成成功:{}", filePath); + } catch (Exception e) { + logger.error("生成失败", e); + throw new RuntimeException("生成失败: " + e.getMessage()); + } finally { + if (document != null) { + document.close(); + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + logger.error("关闭文件流失败", e); + } + } + } + return filePath; + } + + + /** + * 获取名称 + * + * @param name + * @return + */ + public String getName(String name) { + return TemplateBaseUtil.getNameByLanguage(name, language); + } + +} diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java deleted file mode 100644 index b436c75..0000000 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.hxhq.business.utils.pdf.template.gsp; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.hxhq.business.domain.StudyFormPlan; -import com.hxhq.business.domain.StudyFormPlanJcgj; -import com.hxhq.business.domain.StudyFormPlanQmxx; -import com.hxhq.business.utils.pdf.PdfBaseUtil; -import com.hxhq.business.utils.pdf.PdfExportUtil; -import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; -import com.hxhq.common.core.utils.StringUtils; -import com.hxhq.common.security.utils.SecurityUtils; -import com.hxhq.system.api.model.LoginUser; -import com.itextpdf.text.*; -import com.itextpdf.text.pdf.BaseFont; -import com.itextpdf.text.pdf.PdfPCell; -import com.itextpdf.text.pdf.PdfPTable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * 供试品-试验物质配制计划表 - * - * @author tanfei - */ -public class SYWZPZJHB { - private static final Logger logger = LoggerFactory.getLogger(SYWZPZJHB.class.getName()); - public String language = "zh"; - - /** - * 导出 - * - * @param studyFormPlan - * @return - */ - public String exportDetail(StudyFormPlan studyFormPlan, List studyFormPlanQmxxList, List studyFormPlanJcgjList, String lang, Integer jcgjlx, String localFilePath) { - language = lang; - Document document = null; - FileOutputStream fos = null; - String filePath = PdfBaseUtil.getFilePath(localFilePath, "Template"); - try { - String sign = "hxhq"; - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null) { - sign = loginUser.getSysUser().getNickName(); - } - document = PdfBaseUtil.init(document, fos, filePath, sign + PdfExportUtil.parseDateToStr(new Date()), studyFormPlan.getBdmc(), false); - JSONObject bdnr = JSONObject.parseObject(studyFormPlan.getBdnr()); - JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormPlan.getZdgxjl()) ? studyFormPlan.getZdgxjl() : "{}"); - JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormPlan.getFhyjjl()) ? studyFormPlan.getFhyjjl() : "[]"); - - //region 表单信息 - - //试验基本信息 - PdfBaseUtil.addUnderlinedTitle(document, getName("试验基本信息"), 10, true); - Map formData1 = new LinkedHashMap<>(); - formData1.put(getName("试验名称"), studyFormPlan.getStudyMc()); - formData1.put(getName("试验编号"), studyFormPlan.getStudySn()); - PdfBaseUtil.addFormTableColumns(document, formData1, 2); - - PdfBaseUtil.addUnderlinedTitle(document, getName("计划信息"), 10, true); - Map formData2 = new LinkedHashMap<>(); - formData2.put(getName("领取时间"), (StringUtils.isNoneBlank(bdnr.getString("drawTime")) ? bdnr.getString("drawTime") : "") + TemplateBaseUtil.getCheck("_drawTime", zdgxjl) + TemplateBaseUtil.getFh("_drawTime", fhyjjl)); - formData2.put(getName("分析时间"), (StringUtils.isNoneBlank(bdnr.getString("analyzeTime")) ? bdnr.getString("analyzeTime") : "") + TemplateBaseUtil.getCheck("_analyzeTime", zdgxjl) + TemplateBaseUtil.getFh("_analyzeTime", fhyjjl)); - formData2.put(getName("试验物资"), (StringUtils.isNoneBlank(bdnr.getString("testSubstance")) ? bdnr.getString("testSubstance") : "") + TemplateBaseUtil.getCheck("_testSubstance", zdgxjl) + TemplateBaseUtil.getFh("_testSubstance", fhyjjl)); - formData2.put(getName("配置频率"), (StringUtils.isNoneBlank(bdnr.getString("configFrequency")) ? bdnr.getString("configFrequency") : "") + TemplateBaseUtil.getCheck("_configFrequency", zdgxjl) + TemplateBaseUtil.getFh("_configFrequency", fhyjjl)); - PdfBaseUtil.addFormTableColumns(document, formData2, 2); - // 9. 表头 - BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); - Font headerFont = new Font(bfChinese, 10, Font.NORMAL); - Font contentFont = new Font(bfChinese, 10, Font.NORMAL); - // 8. 创建表格 - PdfPTable table = new PdfPTable(3); - table.setWidthPercentage(100); - JSONObject headerSelectFields = JSONObject.parseObject(bdnr.getString("headerSelectFields")); - String[] headers = { - getName("给药剂量或组别"), - getName("配制浓度") + headerSelectFields.getString("preparationConcentrationUnit") + TemplateBaseUtil.getCheck("_preparationConcentrationUnit", zdgxjl) + TemplateBaseUtil.getFh("_preparationConcentrationUnit", fhyjjl), - getName("配制体积") + headerSelectFields.getString("preparationVolumeUnit") + TemplateBaseUtil.getCheck("_preparationVolumeUnit", zdgxjl) + TemplateBaseUtil.getFh("_preparationVolumeUnit", fhyjjl) - }; - for (String header : headers) { - PdfPCell cell = new PdfPCell(new Phrase(header, headerFont)); - cell.setHorizontalAlignment(Element.ALIGN_CENTER); - cell.setPadding(8); - table.addCell(cell); - } - JSONArray stepTableFormData = JSONArray.parseArray(bdnr.getString("stepTableFormData")); - if (stepTableFormData.size() > 0) { - for (int i = 0; i < stepTableFormData.size(); i++) { - JSONObject obj = stepTableFormData.getJSONObject(i); - int rowNum = 0; - // 交替行颜色 - if (rowNum % 2 == 0) { - table.getDefaultCell().setBackgroundColor(BaseColor.WHITE); - } else { - table.getDefaultCell().setBackgroundColor(BaseColor.WHITE); - } - table.addCell(PdfBaseUtil.createCell(obj.getString("startSolutionCode") + TemplateBaseUtil.getCheck("_startSolutionCode_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_startSolutionCode_"+(rowNum+1), fhyjjl), contentFont)); - table.addCell(PdfBaseUtil.createCell(obj.getString("preparationConcentration") + TemplateBaseUtil.getCheck("_preparationConcentration_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_preparationConcentration_"+(rowNum+1), fhyjjl), contentFont)); - table.addCell(PdfBaseUtil.createCell(obj.getString("preparationVolume") + TemplateBaseUtil.getCheck("_preparationVolume_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_preparationVolume_"+(rowNum+1), fhyjjl), contentFont)); - rowNum++; - } - } - document.add(table); - PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : "")+(TemplateBaseUtil.getCheck("_remark",zdgxjl)+TemplateBaseUtil.getFh("_remark",fhyjjl)), 10, false); - - //签名信息 - TemplateBaseUtil.addQmxxPlan(document, studyFormPlanQmxxList, language); - //稽查轨迹 - TemplateBaseUtil.addJcgjPlan(document,studyFormPlanJcgjList, jcgjlx, language); - logger.info("生成成功:{}", filePath); - } catch (Exception e) { - logger.error("生成失败", e); - throw new RuntimeException("生成失败: " + e.getMessage()); - } finally { - if (document != null) { - document.close(); - } - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - logger.error("关闭文件流失败", e); - } - } - } - return filePath; - } - - - /** - * 获取名称 - * - * @param name - * @return - */ - public String getName(String name) { - return TemplateBaseUtil.getNameByLanguage(name, language); - } - -} diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Sywzpzjhb.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Sywzpzjhb.java new file mode 100644 index 0000000..4c260c5 --- /dev/null +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/Sywzpzjhb.java @@ -0,0 +1,148 @@ +package com.hxhq.business.utils.pdf.template.gsp; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.hxhq.business.domain.StudyFormPlan; +import com.hxhq.business.domain.StudyFormPlanJcgj; +import com.hxhq.business.domain.StudyFormPlanQmxx; +import com.hxhq.business.utils.pdf.PdfBaseUtil; +import com.hxhq.business.utils.pdf.PdfExportUtil; +import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; +import com.hxhq.common.core.utils.StringUtils; +import com.hxhq.common.security.utils.SecurityUtils; +import com.hxhq.system.api.model.LoginUser; +import com.itextpdf.text.*; +import com.itextpdf.text.pdf.BaseFont; +import com.itextpdf.text.pdf.PdfPCell; +import com.itextpdf.text.pdf.PdfPTable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 供试品-试验物质配制计划表 + * + * @author tanfei + */ +public class Sywzpzjhb { + private static final Logger logger = LoggerFactory.getLogger(Sywzpzjhb.class.getName()); + public String language = "zh"; + + /** + * 导出 + * + * @param studyFormPlan + * @return + */ + public String exportDetail(StudyFormPlan studyFormPlan, List studyFormPlanQmxxList, List studyFormPlanJcgjList, String lang, Integer jcgjlx, String localFilePath) { + language = lang; + Document document = null; + FileOutputStream fos = null; + String filePath = PdfBaseUtil.getFilePath(localFilePath, "Template"); + try { + String sign = "hxhq"; + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + sign = loginUser.getSysUser().getNickName(); + } + document = PdfBaseUtil.init(document, fos, filePath, sign + PdfExportUtil.parseDateToStr(new Date()), studyFormPlan.getBdmc(), false); + JSONObject bdnr = JSONObject.parseObject(studyFormPlan.getBdnr()); + JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormPlan.getZdgxjl()) ? studyFormPlan.getZdgxjl() : "{}"); + JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormPlan.getFhyjjl()) ? studyFormPlan.getFhyjjl() : "[]"); + + //region 表单信息 + + //试验基本信息 + PdfBaseUtil.addUnderlinedTitle(document, getName("试验基本信息"), 10, true); + Map formData1 = new LinkedHashMap<>(); + formData1.put(getName("试验名称"), studyFormPlan.getStudyMc()); + formData1.put(getName("试验编号"), studyFormPlan.getStudySn()); + PdfBaseUtil.addFormTableColumns(document, formData1, 2); + + PdfBaseUtil.addUnderlinedTitle(document, getName("计划信息"), 10, true); + Map formData2 = new LinkedHashMap<>(); + formData2.put(getName("领取时间"), (StringUtils.isNoneBlank(bdnr.getString("drawTime")) ? bdnr.getString("drawTime") : "") + TemplateBaseUtil.getCheck("_drawTime", zdgxjl) + TemplateBaseUtil.getFh("_drawTime", fhyjjl)); + formData2.put(getName("分析时间"), (StringUtils.isNoneBlank(bdnr.getString("analyzeTime")) ? bdnr.getString("analyzeTime") : "") + TemplateBaseUtil.getCheck("_analyzeTime", zdgxjl) + TemplateBaseUtil.getFh("_analyzeTime", fhyjjl)); + formData2.put(getName("试验物资"), (StringUtils.isNoneBlank(bdnr.getString("testSubstance")) ? bdnr.getString("testSubstance") : "") + TemplateBaseUtil.getCheck("_testSubstance", zdgxjl) + TemplateBaseUtil.getFh("_testSubstance", fhyjjl)); + formData2.put(getName("配置频率"), (StringUtils.isNoneBlank(bdnr.getString("configFrequency")) ? bdnr.getString("configFrequency") : "") + TemplateBaseUtil.getCheck("_configFrequency", zdgxjl) + TemplateBaseUtil.getFh("_configFrequency", fhyjjl)); + PdfBaseUtil.addFormTableColumns(document, formData2, 2); + // 9. 表头 + BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + Font headerFont = new Font(bfChinese, 10, Font.NORMAL); + Font contentFont = new Font(bfChinese, 10, Font.NORMAL); + // 8. 创建表格 + PdfPTable table = new PdfPTable(3); + table.setWidthPercentage(100); + JSONObject headerSelectFields = JSONObject.parseObject(bdnr.getString("headerSelectFields")); + String[] headers = { + getName("给药剂量或组别"), + getName("配制浓度") + headerSelectFields.getString("preparationConcentrationUnit") + TemplateBaseUtil.getCheck("_preparationConcentrationUnit", zdgxjl) + TemplateBaseUtil.getFh("_preparationConcentrationUnit", fhyjjl), + getName("配制体积") + headerSelectFields.getString("preparationVolumeUnit") + TemplateBaseUtil.getCheck("_preparationVolumeUnit", zdgxjl) + TemplateBaseUtil.getFh("_preparationVolumeUnit", fhyjjl) + }; + for (String header : headers) { + PdfPCell cell = new PdfPCell(new Phrase(header, headerFont)); + cell.setHorizontalAlignment(Element.ALIGN_CENTER); + cell.setPadding(8); + table.addCell(cell); + } + JSONArray stepTableFormData = JSONArray.parseArray(bdnr.getString("stepTableFormData")); + if (stepTableFormData.size() > 0) { + for (int i = 0; i < stepTableFormData.size(); i++) { + JSONObject obj = stepTableFormData.getJSONObject(i); + int rowNum = 0; + // 交替行颜色 + if (rowNum % 2 == 0) { + table.getDefaultCell().setBackgroundColor(BaseColor.WHITE); + } else { + table.getDefaultCell().setBackgroundColor(BaseColor.WHITE); + } + table.addCell(PdfBaseUtil.createCell(obj.getString("startSolutionCode") + TemplateBaseUtil.getCheck("_startSolutionCode_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_startSolutionCode_"+(rowNum+1), fhyjjl), contentFont)); + table.addCell(PdfBaseUtil.createCell(obj.getString("preparationConcentration") + TemplateBaseUtil.getCheck("_preparationConcentration_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_preparationConcentration_"+(rowNum+1), fhyjjl), contentFont)); + table.addCell(PdfBaseUtil.createCell(obj.getString("preparationVolume") + TemplateBaseUtil.getCheck("_preparationVolume_"+(rowNum+1), zdgxjl) + TemplateBaseUtil.getFh("_preparationVolume_"+(rowNum+1), fhyjjl), contentFont)); + rowNum++; + } + } + document.add(table); + PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : "")+(TemplateBaseUtil.getCheck("_remark",zdgxjl)+TemplateBaseUtil.getFh("_remark",fhyjjl)), 10, false); + + //签名信息 + TemplateBaseUtil.addQmxxPlan(document, studyFormPlanQmxxList, language); + //稽查轨迹 + TemplateBaseUtil.addJcgjPlan(document,studyFormPlanJcgjList, jcgjlx, language); + logger.info("生成成功:{}", filePath); + } catch (Exception e) { + logger.error("生成失败", e); + throw new RuntimeException("生成失败: " + e.getMessage()); + } finally { + if (document != null) { + document.close(); + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + logger.error("关闭文件流失败", e); + } + } + } + return filePath; + } + + + /** + * 获取名称 + * + * @param name + * @return + */ + public String getName(String name) { + return TemplateBaseUtil.getNameByLanguage(name, language); + } + +} diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java deleted file mode 100644 index 7b125db..0000000 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.hxhq.business.utils.pdf.template.sp; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.hxhq.business.domain.*; -import com.hxhq.business.utils.pdf.PdfBaseUtil; -import com.hxhq.business.utils.pdf.PdfExportUtil; -import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; -import com.hxhq.common.core.utils.StringUtils; -import com.hxhq.common.security.utils.SecurityUtils; -import com.hxhq.system.api.model.LoginUser; -import com.itextpdf.text.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.*; -import java.util.List; - -/** - * 色谱-生物样品分析溶液配制表 - * - * @author tanfei - */ -public class SP001 { - private static final Logger logger = LoggerFactory.getLogger(SP001.class.getName()); - public String language = "zh"; - - /** - * 导出 - * - * @param studyFormFill - * @return - */ - public String exportDetail(StudyFormFill studyFormFill, List studyFormFillQmxxList, List studyFormFillJcgjList, String lang,Integer jcgjlx, String localFilePath) { - language = lang; - Document document = null; - FileOutputStream fos = null; - String filePath = PdfBaseUtil.getFilePath(localFilePath,"Template"); - try { - String sign = "hxhq"; - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null) { - sign = loginUser.getSysUser().getNickName(); - } - document = PdfBaseUtil.init(document, fos, filePath, sign +PdfExportUtil.parseDateToStr(new Date()), studyFormFill.getBdmc(),false); - JSONObject bdnr = JSONObject.parseObject(studyFormFill.getBdnr()); - JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormFill.getZdgxjl())?studyFormFill.getZdgxjl():"{}"); - JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormFill.getFhyjjl())?studyFormFill.getFhyjjl():"[]"); - - //region 表单信息 - - //试验基本信息 - PdfBaseUtil.addUnderlinedTitle(document, getName("试验基本信息"), 10, true); - Map formData1 = new LinkedHashMap<>(); - formData1.put(getName("试验名称"), studyFormFill.getStudyMc()); - formData1.put(getName("试验编号"), studyFormFill.getStudySn()); - formData1.put(getName("方法编号"), (StringUtils.isNoneBlank(bdnr.getString("methodCode")) ? bdnr.getString("methodCode") : "")+TemplateBaseUtil.getCheck("_methodCode",zdgxjl)+TemplateBaseUtil.getFh("_methodCode",fhyjjl)); - formData1.put(getName("版本号"), (StringUtils.isNoneBlank(bdnr.getString("versionNum")) ? bdnr.getString("versionNum") : "")+TemplateBaseUtil.getCheck("_versionNum",zdgxjl)+TemplateBaseUtil.getFh("_versionNum",fhyjjl)); - PdfBaseUtil.addFormTableColumns(document, formData1, 2); - - PdfBaseUtil.addUnderlinedTitle(document, getName("试验配置条件"), 10, true); - Map formData2 = new LinkedHashMap<>(); - formData2.put(getName("预填"),(StringUtils.isNoneBlank(bdnr.getString("pre"))? bdnr.getString("pre"):"") + (StringUtils.isNoneBlank(bdnr.getString("preOther")) ? bdnr.getString("preOther") : "")); - formData2.put(getName("实际"),(StringUtils.isNoneBlank(bdnr.getString("act"))? bdnr.getString("act"):"") + (StringUtils.isNoneBlank(bdnr.getString("actOther")) ? bdnr.getString("actOther") : "")+TemplateBaseUtil.getCheck("_act",zdgxjl)+TemplateBaseUtil.getFh("_act",fhyjjl)); - PdfBaseUtil.addFormTableColumns(document, formData2, 2); - - PdfBaseUtil.addUnderlinedTitle(document, getName("配置时间"), 10, true); - Map formData3 = new LinkedHashMap<>(); - formData3.put(getName("开始时间"), studyFormFill.getStartDate() != null ? PdfExportUtil.parseDateToStr(studyFormFill.getStartDate()) : ""); - formData3.put(getName("结束时间"), studyFormFill.getEndDate() != null ? PdfExportUtil.parseDateToStr(studyFormFill.getEndDate()) : ""); - PdfBaseUtil.addFormTableColumns(document, formData3, 2); - - // 试验试剂信息 - TemplateBaseUtil.addResource(document, studyFormFill.getResource(),language); - //仪器使用信息 - TemplateBaseUtil.addInstrument(document, "",language); - - PdfBaseUtil.addUnderlinedTitle(document, getName("存储条件"), 10, true); - - Map formData4 = new LinkedHashMap<>(); - formData4.put(getName("存储条件"), bdnr.getString("storageCondition") + (StringUtils.isNoneBlank(bdnr.getString("storageConditionOther")) ? bdnr.getString("storageConditionOther") : "")); - PdfBaseUtil.addFormTableColumns(document, formData4, 1); - - PdfBaseUtil.addUnderlinedTitle(document, getName("操作步骤"), 10, true); - Map formData5 = new LinkedHashMap<>(); - formData5.put(getName("目标溶液名称"), bdnr.getString("targetName")); - formData5.put(getName("目标溶液编号"), bdnr.getString("targetCode") + bdnr.getString("targetCodeSn")); - formData5.put(getName("目标溶液预计浓度"), bdnr.getString("targetPreConcentration") + bdnr.getString("targetPreConcentrationUnit")); - formData5.put(getName("目标溶液实际浓度"), bdnr.getString("targetActConcentration") + bdnr.getString("targetPreConcentrationUnit")+TemplateBaseUtil.getCheck("_targetActConcentration",zdgxjl)+TemplateBaseUtil.getFh("_targetActConcentration",fhyjjl)); - formData5.put(getName("目标溶液预计体积"), bdnr.getString("targetPreVolume") + bdnr.getString("targetPreVolumeUnit")); - formData5.put(getName("目标溶液实际体积"), bdnr.getString("targetActVolume") + bdnr.getString("targetActVolumeUnit")+TemplateBaseUtil.getCheck("_targetActVolume",zdgxjl)+TemplateBaseUtil.getFh("_targetActVolume",fhyjjl)); - formData5.put(getName("有效周期"), bdnr.getString("effectivePeriod") + bdnr.getString("effectivePeriodUnit")); - formData5.put(getName("失效日"), bdnr.getString("expireDate")); - PdfBaseUtil.addFormTableColumns(document, formData5, 2); - //endregion - - //备注,签名信息 - TemplateBaseUtil.addQmxxFill(document, studyFormFillQmxxList,language,bdnr,zdgxjl,fhyjjl); - //稽查轨迹 - TemplateBaseUtil.addJcgjFill(document, studyFormFillJcgjList,jcgjlx,language); - logger.info("生成成功:{}", filePath); - } catch (Exception e) { - logger.error("生成失败", e); - throw new RuntimeException("生成失败: " + e.getMessage()); - } finally { - if (document != null) { - document.close(); - } - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - logger.error("关闭文件流失败", e); - } - } - } - return filePath; - } - - - /** - * 获取名称 - * - * @param name - * @return - */ - public String getName(String name) { - return TemplateBaseUtil.getNameByLanguage(name,language); - } - -} diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/Sp001.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/Sp001.java new file mode 100644 index 0000000..80add0f --- /dev/null +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/Sp001.java @@ -0,0 +1,133 @@ +package com.hxhq.business.utils.pdf.template.sp; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.hxhq.business.domain.*; +import com.hxhq.business.utils.pdf.PdfBaseUtil; +import com.hxhq.business.utils.pdf.PdfExportUtil; +import com.hxhq.business.utils.pdf.template.TemplateBaseUtil; +import com.hxhq.common.core.utils.StringUtils; +import com.hxhq.common.security.utils.SecurityUtils; +import com.hxhq.system.api.model.LoginUser; +import com.itextpdf.text.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.*; +import java.util.List; + +/** + * 色谱-生物样品分析溶液配制表 + * + * @author tanfei + */ +public class Sp001 { + private static final Logger logger = LoggerFactory.getLogger(Sp001.class.getName()); + public String language = "zh"; + + /** + * 导出 + * + * @param studyFormFill + * @return + */ + public String exportDetail(StudyFormFill studyFormFill, List studyFormFillQmxxList, List studyFormFillJcgjList, String lang,Integer jcgjlx, String localFilePath) { + language = lang; + Document document = null; + FileOutputStream fos = null; + String filePath = PdfBaseUtil.getFilePath(localFilePath,"Template"); + try { + String sign = "hxhq"; + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + sign = loginUser.getSysUser().getNickName(); + } + document = PdfBaseUtil.init(document, fos, filePath, sign +PdfExportUtil.parseDateToStr(new Date()), studyFormFill.getBdmc(),false); + JSONObject bdnr = JSONObject.parseObject(studyFormFill.getBdnr()); + JSONObject zdgxjl = JSONObject.parseObject(StringUtils.isNoneBlank(studyFormFill.getZdgxjl())?studyFormFill.getZdgxjl():"{}"); + JSONArray fhyjjl = JSONArray.parseArray(StringUtils.isNoneBlank(studyFormFill.getFhyjjl())?studyFormFill.getFhyjjl():"[]"); + + //region 表单信息 + + //试验基本信息 + PdfBaseUtil.addUnderlinedTitle(document, getName("试验基本信息"), 10, true); + Map formData1 = new LinkedHashMap<>(); + formData1.put(getName("试验名称"), studyFormFill.getStudyMc()); + formData1.put(getName("试验编号"), studyFormFill.getStudySn()); + formData1.put(getName("方法编号"), (StringUtils.isNoneBlank(bdnr.getString("methodCode")) ? bdnr.getString("methodCode") : "")+TemplateBaseUtil.getCheck("_methodCode",zdgxjl)+TemplateBaseUtil.getFh("_methodCode",fhyjjl)); + formData1.put(getName("版本号"), (StringUtils.isNoneBlank(bdnr.getString("versionNum")) ? bdnr.getString("versionNum") : "")+TemplateBaseUtil.getCheck("_versionNum",zdgxjl)+TemplateBaseUtil.getFh("_versionNum",fhyjjl)); + PdfBaseUtil.addFormTableColumns(document, formData1, 2); + + PdfBaseUtil.addUnderlinedTitle(document, getName("试验配置条件"), 10, true); + Map formData2 = new LinkedHashMap<>(); + formData2.put(getName("预填"),(StringUtils.isNoneBlank(bdnr.getString("pre"))? bdnr.getString("pre"):"") + (StringUtils.isNoneBlank(bdnr.getString("preOther")) ? bdnr.getString("preOther") : "")); + formData2.put(getName("实际"),(StringUtils.isNoneBlank(bdnr.getString("act"))? bdnr.getString("act"):"") + (StringUtils.isNoneBlank(bdnr.getString("actOther")) ? bdnr.getString("actOther") : "")+TemplateBaseUtil.getCheck("_act",zdgxjl)+TemplateBaseUtil.getFh("_act",fhyjjl)); + PdfBaseUtil.addFormTableColumns(document, formData2, 2); + + PdfBaseUtil.addUnderlinedTitle(document, getName("配置时间"), 10, true); + Map formData3 = new LinkedHashMap<>(); + formData3.put(getName("开始时间"), studyFormFill.getStartDate() != null ? PdfExportUtil.parseDateToStr(studyFormFill.getStartDate()) : ""); + formData3.put(getName("结束时间"), studyFormFill.getEndDate() != null ? PdfExportUtil.parseDateToStr(studyFormFill.getEndDate()) : ""); + PdfBaseUtil.addFormTableColumns(document, formData3, 2); + + // 试验试剂信息 + TemplateBaseUtil.addResource(document, studyFormFill.getResource(),language); + //仪器使用信息 + TemplateBaseUtil.addInstrument(document, "",language); + + PdfBaseUtil.addUnderlinedTitle(document, getName("存储条件"), 10, true); + + Map formData4 = new LinkedHashMap<>(); + formData4.put(getName("存储条件"), bdnr.getString("storageCondition") + (StringUtils.isNoneBlank(bdnr.getString("storageConditionOther")) ? bdnr.getString("storageConditionOther") : "")); + PdfBaseUtil.addFormTableColumns(document, formData4, 1); + + PdfBaseUtil.addUnderlinedTitle(document, getName("操作步骤"), 10, true); + Map formData5 = new LinkedHashMap<>(); + formData5.put(getName("目标溶液名称"), bdnr.getString("targetName")); + formData5.put(getName("目标溶液编号"), bdnr.getString("targetCode") + bdnr.getString("targetCodeSn")); + formData5.put(getName("目标溶液预计浓度"), bdnr.getString("targetPreConcentration") + bdnr.getString("targetPreConcentrationUnit")); + formData5.put(getName("目标溶液实际浓度"), bdnr.getString("targetActConcentration") + bdnr.getString("targetPreConcentrationUnit")+TemplateBaseUtil.getCheck("_targetActConcentration",zdgxjl)+TemplateBaseUtil.getFh("_targetActConcentration",fhyjjl)); + formData5.put(getName("目标溶液预计体积"), bdnr.getString("targetPreVolume") + bdnr.getString("targetPreVolumeUnit")); + formData5.put(getName("目标溶液实际体积"), bdnr.getString("targetActVolume") + bdnr.getString("targetActVolumeUnit")+TemplateBaseUtil.getCheck("_targetActVolume",zdgxjl)+TemplateBaseUtil.getFh("_targetActVolume",fhyjjl)); + formData5.put(getName("有效周期"), bdnr.getString("effectivePeriod") + bdnr.getString("effectivePeriodUnit")); + formData5.put(getName("失效日"), bdnr.getString("expireDate")); + PdfBaseUtil.addFormTableColumns(document, formData5, 2); + //endregion + + //备注,签名信息 + TemplateBaseUtil.addQmxxFill(document, studyFormFillQmxxList,language,bdnr,zdgxjl,fhyjjl); + //稽查轨迹 + TemplateBaseUtil.addJcgjFill(document, studyFormFillJcgjList,jcgjlx,language); + logger.info("生成成功:{}", filePath); + } catch (Exception e) { + logger.error("生成失败", e); + throw new RuntimeException("生成失败: " + e.getMessage()); + } finally { + if (document != null) { + document.close(); + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + logger.error("关闭文件流失败", e); + } + } + } + return filePath; + } + + + /** + * 获取名称 + * + * @param name + * @return + */ + public String getName(String name) { + return TemplateBaseUtil.getNameByLanguage(name,language); + } + +}