Browse Source

fix:[试验管理]计划表单导出

master
15881625488@163.com 3 months ago
parent
commit
6a2ab05604
3 changed files with 152 additions and 28 deletions
  1. +35
    -21
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/TemplateBaseUtil.java
  2. +99
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java
  3. +18
    -7
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java

+ 35
- 21
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/TemplateBaseUtil.java View File

@ -33,27 +33,6 @@ public class TemplateBaseUtil {
/**
* 试验信息
* 试验名称,试验编号,方法编号,版本号
* @param document
* @param studyFormFill
* @param bdnr
* @param lang
* @throws IOException
* @throws DocumentException
*/
public static void addStudyInfo(Document document, StudyFormFill studyFormFill, JSONObject bdnr, String lang) throws IOException, DocumentException {
language = lang;
PdfBaseUtil.addUnderlinedTitle(document, getName("试验基本信息"), 10, true);
Map<String, String> formData1 = new LinkedHashMap<>();
formData1.put(getName("试验名称"), studyFormFill.getStudyMc());
formData1.put(getName("试验编号"), studyFormFill.getStudySn());
formData1.put(getName("方法编号"), (StringUtils.isNoneBlank(bdnr.getString("methodCode")) ? bdnr.getString("methodCode") : ""));
formData1.put(getName("版本号"), (StringUtils.isNoneBlank(bdnr.getString("methodCode")) ? bdnr.getString("methodCode") : ""));
PdfBaseUtil.addFormTableColumns(document, formData1, 2);
}
/**
* 试验试剂信息
*
* @param document
@ -270,4 +249,39 @@ public class TemplateBaseUtil {
return "en".equals(language) ? TemplateUtil.getEn(name) : name;
}
/**
* 获取勾选标志
*
* @param key
* @param key
* @return
*/
public static String getCheck(String key, JSONObject jsonObject) {
Boolean result = false;
if (jsonObject.getString(key) != null) {
result = true;
}
return result?" √":"";
}
/**
* 获取复核标志
*
* @param key
* @param jsonArray
* @return
*/
public static String getFh(String key, JSONArray jsonArray) {
Boolean result = false;
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
if (obj != null && key.equals(obj.getString("key"))) {
result = true;
break;
}
}
return result?" ?":"";
}
}

+ 99
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/gsp/SYWZPZJHB.java View File

@ -0,0 +1,99 @@
package com.hxhq.business.utils.pdf.template.gsp;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.hxhq.business.domain.StudyFormFill;
import com.hxhq.business.domain.StudyFormFillJcgj;
import com.hxhq.business.domain.StudyFormFillQmxx;
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.Document;
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 studyFormFill
* @return
*/
public String exportDetail(StudyFormFill studyFormFill, List<StudyFormFillQmxx> studyFormFillQmxxList, List<StudyFormFillJcgj> 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<String, String> formData1 = new LinkedHashMap<>();
formData1.put(getName("试验名称"), studyFormFill.getStudyMc());
formData1.put(getName("试验编号"), studyFormFill.getStudySn());
PdfBaseUtil.addFormTableColumns(document, formData1, 2);
//签名信息
TemplateBaseUtil.addQmxx(document, studyFormFillQmxxList,language);
//稽查轨迹
TemplateBaseUtil.addJcgj(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);
}
}

+ 18
- 7
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/pdf/template/sp/SP001.java View File

@ -1,5 +1,6 @@
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;
@ -43,16 +44,26 @@ public class SP001 {
if (loginUser != null) {
sign = loginUser.getSysUser().getNickName();
}
document = PdfBaseUtil.init(document, fos, filePath, sign +PdfExportUtil.parseDateToStr(new Date()), "en".equals(language)?studyFormFill.getTemplateMcEn():studyFormFill.getTemplateMc(),false);
document = PdfBaseUtil.init(document, fos, filePath, sign +PdfExportUtil.parseDateToStr(new Date()), studyFormFill.getBdmc(),false);
JSONObject bdnr = JSONObject.parseObject(studyFormFill.getBdnr());
//试验基本信息
TemplateBaseUtil.addStudyInfo( document, studyFormFill, bdnr, lang);
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<String, String> 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<String, String> 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") : ""));
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);
@ -77,13 +88,13 @@ public class SP001 {
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"));
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"));
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);
PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : ""), 10, false);
PdfBaseUtil.addUnderlinedTitle(document, getName("备注") + ":" +(StringUtils.isNoneBlank(bdnr.getString("remark")) ? bdnr.getString("remark") : "")+(TemplateBaseUtil.getCheck("_remark",zdgxjl)+TemplateBaseUtil.getFh("_remark",fhyjjl)), 10, false);
//endregion
//签名信息

Loading…
Cancel
Save