Browse Source

feat:[资源库管理]麻精药导出

master
15881625488@163.com 3 months ago
parent
commit
e0700f3c5b
5 changed files with 205 additions and 137 deletions
  1. +56
    -63
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/MjyController.java
  2. +46
    -49
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/PdfBaseUtil.java
  3. +8
    -9
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/PdfExportUtil.java
  4. +84
    -11
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/Resource/Drug.java
  5. +11
    -5
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/Template/Sp/Sp001.java

+ 56
- 63
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/MjyController.java View File

@ -2,7 +2,6 @@ package com.hxhq.business.controller;
import java.util.List;
import com.alibaba.fastjson2.JSONObject;
import com.hxhq.business.domain.MjyJcgj;
import com.hxhq.business.domain.MjyTz;
import com.hxhq.business.dto.mjy.ListDto;
@ -13,6 +12,7 @@ import com.hxhq.business.utils.Pdf.PdfExportUtil;
import com.hxhq.common.security.annotation.RequiresPermissions;
import com.hxhq.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import com.hxhq.business.service.IMjyService;
import com.hxhq.common.core.web.controller.BaseController;
@ -28,22 +28,30 @@ import com.hxhq.common.core.web.page.TableDataInfo;
*/
@RestController
@RequestMapping("/business/mjy")
public class MjyController extends BaseController
{
public class MjyController extends BaseController {
@Autowired
private IMjyService mjyService;
@Autowired
private IMjyTzService mjyTzService;
@Autowired
private IMjyJcgjService mjyJcgjService;
/**
* 上传文件存储在本地的根路径
*/
@Value("${file.path}")
private String localFilePath;
/**
* 资源映射路径 前缀
*/
@Value("${file.prefix}")
public String localFilePrefix;
/**
* 列表
*/
@RequiresPermissions({"business:studyMjy:list","business:nonTrialMjy:list","business:drugMjy:list"})
@RequiresPermissions({"business:studyMjy:list", "business:nonTrialMjy:list", "business:drugMjy:list"})
@GetMapping("/studyList")
public TableDataInfo studyList(SearchForm form)
{
public TableDataInfo studyList(SearchForm form) {
startPage();
List<ListDto> list = mjyService.queryStudyList(form);
return getDataTable(list);
@ -54,8 +62,7 @@ public class MjyController extends BaseController
*/
@RequiresPermissions("business:resource:mjy:list")
@GetMapping("/list")
public TableDataInfo list(SearchForm form)
{
public TableDataInfo list(SearchForm form) {
startPage();
List<ListDto> list = mjyService.queryList(form);
return getDataTable(list);
@ -66,8 +73,7 @@ public class MjyController extends BaseController
*/
@RequiresPermissions("business:resource:mjy:list")
@GetMapping("/jcgjList")
public TableDataInfo jcgjList(MjyJcgj form)
{
public TableDataInfo jcgjList(MjyJcgj form) {
startPage();
List<MjyJcgj> list = mjyJcgjService.queryList(form);
return getDataTable(list);
@ -78,8 +84,7 @@ public class MjyController extends BaseController
*/
@RequiresPermissions("business:resource:mjy:list")
@GetMapping("/tzList")
public TableDataInfo tzList(MjyTz form)
{
public TableDataInfo tzList(MjyTz form) {
startPage();
List<MjyTz> list = mjyTzService.queryList(form);
return getDataTable(list);
@ -90,8 +95,7 @@ public class MjyController extends BaseController
*/
@RequiresPermissions("business:resource:mjy:xq")
@GetMapping(value = "/info")
public AjaxResult getInfo(Long id)
{
public AjaxResult getInfo(Long id) {
return AjaxResult.success(mjyService.queryInfo(id));
}
@ -100,9 +104,20 @@ public class MjyController extends BaseController
*/
@RequiresPermissions("business:resource:mjy:xq")
@GetMapping(value = "/exportDetail")
public AjaxResult exportDetail(Long id)
{
return AjaxResult.success(PdfExportUtil.export("com.hxhq.business.utils.Pdf.Resource.Drug","exportDetail", mjyService.queryInfo(id)));
public AjaxResult exportDetail(Long id) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(id);
List<MjyJcgj> mjyJcgjList = mjyJcgjService.queryList(mjyJcgj);
MjyTz mjyTz = new MjyTz();
mjyTz.setMjyId(id);
List<MjyTz> mjyTzList = mjyTzService.queryList(mjyTz);
return AjaxResult.success(localFilePrefix + PdfExportUtil.export(
"com.hxhq.business.utils.Pdf.Resource.Drug",
"exportDetail",
mjyService.queryInfo(id),
mjyTzList,
mjyJcgjList,
localFilePath));
}
@ -111,8 +126,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/jd")
@RequiresPermissions("business:resource:mjy:jd")
public AjaxResult jd(@RequestBody JdForm form)
{
public AjaxResult jd(@RequestBody JdForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.jd(form);
return AjaxResult.success("操作成功");
@ -123,8 +137,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/plgd")
@RequiresPermissions("business:resource:mjy:gd")
public AjaxResult plgd(@RequestBody GdForm form)
{
public AjaxResult plgd(@RequestBody GdForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.plgd(form);
return AjaxResult.success("操作成功");
@ -135,8 +148,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/gd")
@RequiresPermissions("business:resource:mjy:gd")
public AjaxResult gd(@RequestBody GdForm form)
{
public AjaxResult gd(@RequestBody GdForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.gd(form);
return AjaxResult.success("操作成功");
@ -148,8 +160,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/plsd")
@RequiresPermissions("business:resource:mjy:sd")
public AjaxResult plsd(@RequestBody SdForm form)
{
public AjaxResult plsd(@RequestBody SdForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.plsd(form);
return AjaxResult.success("操作成功");
@ -160,8 +171,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/sd")
@RequiresPermissions("business:resource:mjy:sd")
public AjaxResult sd(@RequestBody SdForm form)
{
public AjaxResult sd(@RequestBody SdForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.sd(form);
return AjaxResult.success("操作成功");
@ -173,8 +183,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/js")
@RequiresPermissions("business:resource:mjy:js")
public AjaxResult js(@RequestBody JsForm form)
{
public AjaxResult js(@RequestBody JsForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.js(form);
return AjaxResult.success("操作成功");
@ -184,9 +193,8 @@ public class MjyController extends BaseController
* 批量处置药剂
*/
@PostMapping("/plczyj")
@RequiresPermissions({"business:resource:mjy:czyj","business:studyMjy:czyj","business:nonTrialMjy:czyj","business:drugMjy:czyj"})
public AjaxResult plczyj(@RequestBody PlczyjForm form)
{
@RequiresPermissions({"business:resource:mjy:czyj", "business:studyMjy:czyj", "business:nonTrialMjy:czyj", "business:drugMjy:czyj"})
public AjaxResult plczyj(@RequestBody PlczyjForm form) {
form.setClrId(SecurityUtils.getUserId());
mjyService.plczyj(form);
return AjaxResult.success("操作成功");
@ -197,8 +205,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/czyj")
@RequiresPermissions("business:resource:mjy:czyj")
public AjaxResult czyj(@RequestBody CzyjForm form)
{
public AjaxResult czyj(@RequestBody CzyjForm form) {
form.setClrId(SecurityUtils.getUserId());
mjyService.czyj(form);
return AjaxResult.success("操作成功");
@ -209,8 +216,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/plczrq")
@RequiresPermissions("business:resource:mjy:czrq")
public AjaxResult plczrq(@RequestBody PlczrqForm form)
{
public AjaxResult plczrq(@RequestBody PlczrqForm form) {
form.setClrId(SecurityUtils.getUserId());
mjyService.plczrq(form);
return AjaxResult.success("操作成功");
@ -221,8 +227,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/czrq")
@RequiresPermissions("business:resource:mjy:czrq")
public AjaxResult czrq(@RequestBody CzrqForm form)
{
public AjaxResult czrq(@RequestBody CzrqForm form) {
form.setClrId(SecurityUtils.getUserId());
mjyService.czrq(form);
return AjaxResult.success("操作成功");
@ -234,8 +239,7 @@ public class MjyController extends BaseController
*/
@PostMapping("ysff")
@RequiresPermissions("business:resource:mjy:ysff")
public AjaxResult ysff(@RequestBody YsffForm form)
{
public AjaxResult ysff(@RequestBody YsffForm form) {
form.setFfrId(SecurityUtils.getUserId());
mjyService.ysff(form);
return AjaxResult.success("操作成功");
@ -247,8 +251,7 @@ public class MjyController extends BaseController
*/
@PostMapping("ff")
@RequiresPermissions("business:resource:mjy:ff")
public AjaxResult ff(@RequestBody FfForm form)
{
public AjaxResult ff(@RequestBody FfForm form) {
mjyService.ff(form);
return AjaxResult.success("操作成功");
}
@ -259,21 +262,18 @@ public class MjyController extends BaseController
*/
@PostMapping("plff")
@RequiresPermissions("business:resource:mjy:ff")
public AjaxResult plff(@RequestBody PlffForm form)
{
public AjaxResult plff(@RequestBody PlffForm form) {
mjyService.plff(form);
return AjaxResult.success("操作成功");
}
/**
* 编辑
*/
@PostMapping("bj")
@RequiresPermissions({"business:resource:mjy:bj","business:studyMjy:bj","business:nonTrialMjy:bj","business:drugMjy:bj"})
public AjaxResult bj(@RequestBody BjForm form)
{
@RequiresPermissions({"business:resource:mjy:bj", "business:studyMjy:bj", "business:nonTrialMjy:bj", "business:drugMjy:bj"})
public AjaxResult bj(@RequestBody BjForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.bj(form);
return AjaxResult.success("操作成功");
@ -285,22 +285,19 @@ public class MjyController extends BaseController
*/
@PostMapping("shbj")
@RequiresPermissions("business:resource:mjy:shbj")
public AjaxResult shbj(@RequestBody ShbjForm form)
{
public AjaxResult shbj(@RequestBody ShbjForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.shbj(form);
return AjaxResult.success("操作成功");
}
/**
* 修改库存
*/
@PostMapping("xgkc")
@RequiresPermissions({"business:resource:mjy:xgkc","business:studyMjy:xgkc","business:nonTrialMjy:xgkc","business:drugMjy:xgkc"})
public AjaxResult xgkc(@RequestBody XgkcForm form)
{
@RequiresPermissions({"business:resource:mjy:xgkc", "business:studyMjy:xgkc", "business:nonTrialMjy:xgkc", "business:drugMjy:xgkc"})
public AjaxResult xgkc(@RequestBody XgkcForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.xgkc(form);
return AjaxResult.success("操作成功");
@ -312,8 +309,7 @@ public class MjyController extends BaseController
*/
@PostMapping("shxgkc")
@RequiresPermissions("business:resource:mjy:shxgkc")
public AjaxResult shxgkc(@RequestBody ShxgkcForm form)
{
public AjaxResult shxgkc(@RequestBody ShxgkcForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.shxgkc(form);
return AjaxResult.success("操作成功");
@ -323,9 +319,8 @@ public class MjyController extends BaseController
* 归还
*/
@PostMapping("gh")
@RequiresPermissions({"business:resource:mjy:gh","business:studyMjy:gh","business:nonTrialMjy:gh","business:drugMjy:gh"})
public AjaxResult gh(@RequestBody GhForm form)
{
@RequiresPermissions({"business:resource:mjy:gh", "business:studyMjy:gh", "business:nonTrialMjy:gh", "business:drugMjy:gh"})
public AjaxResult gh(@RequestBody GhForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.gh(form);
return AjaxResult.success("操作成功");
@ -336,8 +331,7 @@ public class MjyController extends BaseController
*/
@PostMapping("rk")
@RequiresPermissions({"business:resource:mjy:rk"})
public AjaxResult rk(@RequestBody RkForm form)
{
public AjaxResult rk(@RequestBody RkForm form) {
mjyService.rk(form);
return AjaxResult.success("操作成功");
}
@ -347,8 +341,7 @@ public class MjyController extends BaseController
*/
@PostMapping("/jy")
@RequiresPermissions("business:resource:mjy:jy")
public AjaxResult jy(@RequestBody JyForm form)
{
public AjaxResult jy(@RequestBody JyForm form) {
form.setQmrId(SecurityUtils.getUserId());
mjyService.jy(form);
return AjaxResult.success("操作成功");

+ 46
- 49
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/PdfBaseUtil.java View File

@ -21,6 +21,7 @@ import java.util.*;
/**
* pdf导出基类
*
* @author tanfei
*/
@Component
@ -28,15 +29,12 @@ public class PdfBaseUtil {
private static final Logger logger = LoggerFactory.getLogger(PdfBaseUtil.class);
private static String localFilePath="D:/hxhq/uploadPath";
/**
* 生成PDF文件完整路径按年月日创建文件夹
* @return 完整文件路径/data/files/2024/01/17/document_20240117123045.pdf
*
* @return 完整文件路径
*/
public static String getFilePath() {
public static String getFilePath(String localFilePath) {
// 1. 获取当前年月日并创建文件夹
Date now = new Date();
SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
@ -47,7 +45,7 @@ public class PdfBaseUtil {
String year = yearFormat.format(now);
String month = monthFormat.format(now);
String day = dayFormat.format(now);
String timestamp = timestampFormat.format(now)+UUID.randomUUID();
String timestamp = timestampFormat.format(now) + UUID.randomUUID();
// 2. 构建文件夹路径
String folderPath = localFilePath + File.separator + year + File.separator + month + File.separator + day;
@ -65,12 +63,13 @@ public class PdfBaseUtil {
/**
* 添加带下划线的标题
* @param document PDF文档对象
*
* @param document PDF文档对象
* @param titleText 标题文本
* @param fontSize 字体大小
* @param fontSize 字体大小
*/
public static void addUnderlinedTitle(Document document, String titleText, float fontSize)
throws DocumentException, IOException {
public static void addUnderlinedTitle(Document document, String titleText, float fontSize, Boolean hasLine)
throws DocumentException, IOException {
// 创建中文字体
BaseFont baseFont = BaseFont.createFont(
@ -80,24 +79,25 @@ public class PdfBaseUtil {
);
Font titleFont = new Font(baseFont, fontSize, Font.NORMAL, BaseColor.BLACK);
Font linFont = new Font(baseFont, fontSize, Font.NORMAL, BaseColor.BLACK);
Font linFont = new Font(baseFont, fontSize, Font.NORMAL, BaseColor.BLACK);
// 创建标题段落
Paragraph titleParagraph = new Paragraph(titleText, titleFont);
titleParagraph.setAlignment(Element.ALIGN_LEFT);
// 添加下划线
LineSeparator underline = new LineSeparator(linFont);
underline.setPercentage(100); // 宽度占50%
underline.setLineWidth(1); // 线粗
underline.setAlignment(Element.ALIGN_LEFT);
// 添加到文档
titleParagraph.setSpacingAfter(5);
document.add(titleParagraph);
document.add(underline);
// 添加一些间距
document.add(new Paragraph(titleText)); // 空行
if (hasLine) {
// 添加下划线
LineSeparator underline = new LineSeparator(linFont);
underline.setPercentage(100); // 宽度占50%
underline.setLineWidth(1); // 线粗
underline.setAlignment(Element.ALIGN_LEFT);
// 添加到文档
document.add(underline);
// 添加一些间距
document.add(new Paragraph(titleText)); // 空行
}
}
/**
@ -122,7 +122,7 @@ public class PdfBaseUtil {
fos = new FileOutputStream(filePath);
PdfWriter writer = PdfWriter.getInstance(document, fos);
// 设置页面事件每页添加文字页眉
writer.setPageEvent(new PdfBaseUtil.TextHeaderEvent(signText,headerText));
writer.setPageEvent(new PdfBaseUtil.TextHeaderEvent(signText, headerText));
// 5. 设置PDF属性
document.addTitle("华西海圻");
document.addAuthor("华西海圻");
@ -136,7 +136,9 @@ public class PdfBaseUtil {
}
}
/**创建表单
/**
* 创建表单
*
* @param document
* @param data
* @param count
@ -149,7 +151,6 @@ public class PdfBaseUtil {
// 创建3列表格
PdfPTable table = new PdfPTable(count);
table.setWidthPercentage(100);
table.setSpacingBefore(10);
table.setSpacingAfter(10);
// 设置等宽列
@ -202,7 +203,9 @@ public class PdfBaseUtil {
document.add(table);
}
/**创建表格
/**
* 创建表格
*
* @param content
* @param font
* @return
@ -216,14 +219,6 @@ public class PdfBaseUtil {
return cell;
}
/**
* 生成文件名
*/
public static String generateFileName() {
Random random = new Random();
String timestamp = DateUtils.dateTimeNow("yyyyMMddHHmmss");
return String.format("%s_%s.pdf", timestamp, random.nextInt(1000));
}
/**
* 页面事件处理类 - 每页添加文字页眉
@ -236,7 +231,7 @@ public class PdfBaseUtil {
private int totalPages = 0;
private PdfTemplate total;
public TextHeaderEvent(String signText,String headerText) throws Exception {
public TextHeaderEvent(String signText, String headerText) throws Exception {
try {
this.signText = signText;
this.headerText = headerText;
@ -341,15 +336,15 @@ public class PdfBaseUtil {
// 重复铺满水印
addRepeatedWatermark(content, width, height, signText);
// 添加页眉文字
canvas.beginText();
canvas.setFontAndSize(baseFont, fontSize);
canvas.setTextMatrix(textX, textY);
canvas.showText(headerText);
canvas.endText();
// 添加页眉分隔线可选
addHeaderLine(canvas, pageWidth, textY - 10);
// // 添加页眉文字
// canvas.beginText();
// canvas.setFontAndSize(baseFont, fontSize);
// canvas.setTextMatrix(textX, textY);
// canvas.showText(headerText);
// canvas.endText();
//
// // 添加页眉分隔线可选
// addHeaderLine(canvas, pageWidth, textY - 10);
} catch (Exception e) {
e.printStackTrace();
@ -358,6 +353,7 @@ public class PdfBaseUtil {
/**
* 添加水印
*
* @param content
* @param width
* @param height
@ -371,12 +367,12 @@ public class PdfBaseUtil {
baseFont.getDescentPoint(signText, fontSize);
// 计算间距
float stepX = textWidth + 200;
float stepY = textHeight + 200;
float stepX = textWidth + 150;
float stepY = textHeight + 100;
// 添加重复水印
for (float x = textWidth/2 ; x < width; x += stepX) {
for (float y = textHeight/2 ; y < height; y += stepY) {
for (float x = textWidth / 2; x < width; x += stepX) {
for (float y = textHeight / 2; y < height; y += stepY) {
content.beginText();
content.showTextAligned(
Element.ALIGN_CENTER,
@ -392,6 +388,7 @@ public class PdfBaseUtil {
/**
* 添加页眉线
*
* @param canvas
* @param pageWidth
* @param yPos

+ 8
- 9
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/PdfExportUtil.java View File

@ -8,7 +8,8 @@ import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
/**
* pdf导出
* pdf导出基类
* @author tanfei
*/
@Component
public class PdfExportUtil {
@ -24,9 +25,8 @@ public class PdfExportUtil {
// 改为不预先获取参数类型而是在查找方法时动态匹配
Method method = null;
for (Method m : clazz.getMethods()) {
if (m.getName().equals(methodName) &&
m.getParameterCount() == params.length) {
method = m;
if (m.getName().equals(methodName)) {
method = m;
}
}
@ -41,8 +41,7 @@ public class PdfExportUtil {
String result = export(
"com.hxhq.business.utils.Pdf.Template.Sp.Sp001",
"exportDetail",
"麻精药导出",
"张三 2025-12-12 14:52:52"
"D:/hxhq/uploadPath"
);
}
@ -54,10 +53,10 @@ public class PdfExportUtil {
* @param params
* @return
*/
public static String export(String className, String methodName, Object... params) {
public static String export(String className, String methodName, Object... params) {
try {
String path= (String) invokeMethod(className, methodName, params);
return path.replace("D:\\hxhq\\uploadPath", "")
String path= (String) invokeMethod(className, methodName, params);
return path.replace(params[params.length - 1].toString().replace("/","\\" ), "")
.replace("\\", "/");
} catch (Exception ex) {
logger.error(ex.getMessage());

+ 84
- 11
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/Resource/Drug.java View File

@ -1,12 +1,21 @@
package com.hxhq.business.utils.Pdf.Resource;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hxhq.business.domain.Mjy;
import com.hxhq.business.domain.MjyJcgj;
import com.hxhq.business.domain.MjyTz;
import com.hxhq.business.domain.StudyMethodRead;
import com.hxhq.business.utils.Pdf.PdfBaseUtil;
import com.hxhq.common.core.utils.StringUtils;
import com.hxhq.common.security.utils.SecurityUtils;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.hxhq.system.api.domain.SysUser;
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 com.itextpdf.text.pdf.draw.LineSeparator;
import org.apache.http.client.utils.DateUtils;
import org.slf4j.Logger;
@ -14,8 +23,9 @@ import org.slf4j.LoggerFactory;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
/**
* 麻精药详情
@ -31,31 +41,94 @@ public class Drug {
* @param mjy
* @return
*/
public String exportDetail(Mjy mjy) {
public String exportDetail(Mjy mjy, List<MjyTz> mjyTzList, List<MjyJcgj> mjyJcgjList, String localFilePath) {
Document document = null;
FileOutputStream fos = null;
String filePath =PdfBaseUtil.getFilePath();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String filePath = PdfBaseUtil.getFilePath(localFilePath);
try {
document = PdfBaseUtil.init(document, fos, filePath, SecurityUtils.getNickName(), mjy.getMc());
String sign="华西海圻";
LoginUser loginUser=SecurityUtils.getLoginUser();
if(loginUser!=null){
sign=loginUser.getSysUser().getNickName();
}
document = PdfBaseUtil.init(document, fos, filePath, sign+sdf.format(new Date()), mjy.getMc());
// 基本信息
PdfBaseUtil.addUnderlinedTitle(document, "基本信息", 10);
PdfBaseUtil.addUnderlinedTitle(document, "基本信息", 10,true);
Map<String, String> formData1 = new LinkedHashMap<>();
formData1.put("名称", mjy.getMc());
formData1.put("编号", mjy.getBh());
formData1.put("浓度", mjy.getNd() + mjy.getNddw());
formData1.put("库存量", mjy.getKc() + mjy.getKcdw());
formData1.put("失效日期", DateUtils.formatDate(mjy.getSxrq()));
formData1.put("失效日期", sdf.format(mjy.getSxrq()));
formData1.put("存储条件", mjy.getCctj());
formData1.put("存储位置", mjy.getCcwz());
PdfBaseUtil.addFormTableColumns(document, formData1, 2);
// 表单信息
PdfBaseUtil.addUnderlinedTitle(document, "表单信息", 10);
PdfBaseUtil.addUnderlinedTitle(document, "表单信息", 10,true);
Map<String, String> formData3 = new LinkedHashMap<>();
formData3.put("所属表单", "");
formData3.put("所属试验信息", mjy.getMdIds());
formData3.put("表单所属人", mjy.getBdId().toString());
PdfBaseUtil.addFormTableColumns(document, formData3, 2);
PdfBaseUtil.addUnderlinedTitle(document, "麻精药台账", 10,true);
// 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(7);
table.setWidthPercentage(100);
String[] headers = {"使用人", "领取/归还人", "发放/接收人", "操作类型", "操作量", "备注/原因", "操作时间"};
for (String header : headers) {
PdfPCell cell = new PdfPCell(new Phrase(header, headerFont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setBackgroundColor(BaseColor.WHITE);
cell.setPadding(8);
cell.setBorderWidth(1);
table.addCell(cell);
}
// 台账
int rowNum = 0;
for (MjyTz mjyTz : mjyTzList) {
// 交替行颜色
if (rowNum % 2 == 0) {
table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);
} else {
table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);
}
table.addCell(PdfBaseUtil.createCell(mjyTz.getQmrMc(), contentFont));
table.addCell(PdfBaseUtil.createCell(mjyTz.getLqrMc(), contentFont));
table.addCell(PdfBaseUtil.createCell(mjyTz.getGhrMc(), contentFont));
table.addCell(PdfBaseUtil.createCell(mjyTz.getQmyy(), contentFont));
table.addCell(PdfBaseUtil.createCell(mjyTz.getCzl()+mjyTz.getCzldw(), contentFont));
table.addCell(PdfBaseUtil.createCell(mjyTz.getRemark(), contentFont));
table.addCell(PdfBaseUtil.createCell(sdf.format(mjyTz.getCreateTime()), contentFont));
rowNum++;
}
document.add(table);
PdfBaseUtil.addUnderlinedTitle(document, "稽查轨迹", 10,true);
//稽查轨迹
for (MjyJcgj mjyJcgj : mjyJcgjList) {
PdfBaseUtil.addUnderlinedTitle(document, sdf.format(mjyJcgj.getCreateTime())+" "+mjyJcgj.getJcmc() , 10,false);
StringJoiner result = new StringJoiner(", ");
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonArray = mapper.readTree(mjyJcgj.getJcnr());
for (JsonNode node : jsonArray) {
String name = node.get("name").asText();
String value = node.get("value").asText();
result.add(name + ":" + value);
}
if(StringUtils.isNoneBlank(mjyJcgj.getRemark())){
result.add("备注:"+mjyJcgj.getRemark());
}
if(StringUtils.isNoneBlank(mjyJcgj.getRemark())){
result.add("签名人:"+mjyJcgj.getQmrMc());
}
PdfBaseUtil.addUnderlinedTitle(document, result.toString(), 10,false);
}
logger.info("生成成功:{}", filePath);
} catch (Exception e) {
logger.error("生成失败", e);

+ 11
- 5
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/Pdf/Template/Sp/Sp001.java View File

@ -1,6 +1,9 @@
package com.hxhq.business.utils.Pdf.Template.Sp;
import com.hxhq.business.utils.Pdf.PdfBaseUtil;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysUser;
import com.hxhq.system.api.model.LoginUser;
import com.itextpdf.text.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -17,16 +20,19 @@ public class Sp001 {
private static final Logger logger = LoggerFactory.getLogger(Sp001.class.getName());
/**导出
* @param headerText
* @param signText
* @return
*/
public static String exportDetail( String headerText,String signText) {
public static String exportDetail(String localFilePath) {
Document document = null;
FileOutputStream fos = null;
String filePath = new PdfBaseUtil().getFilePath();
String filePath = PdfBaseUtil.getFilePath(localFilePath);
try {
document=PdfBaseUtil.init(document,fos,filePath,signText,headerText);
String sign="华西海圻";
LoginUser loginUser=SecurityUtils.getLoginUser();
if(loginUser!=null){
sign=loginUser.getSysUser().getNickName();
}
document=PdfBaseUtil.init(document,fos,filePath,sign,"华西海圻");
Map<String, String> formData = new LinkedHashMap<>();
formData.put("姓名","张三");
formData.put("性别", "男");

Loading…
Cancel
Save