兴安优化提交

This commit is contained in:
zc
2025-07-16 16:32:10 +08:00
parent 05c6d3a06f
commit 83c996a34b
2 changed files with 79 additions and 16 deletions

View File

@@ -0,0 +1,52 @@
package com.dcsoft.system.utils;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;
import lombok.extern.slf4j.Slf4j;
/**
* 水印处理
*/
@Slf4j
public class PdfWatermark extends PdfPageEventHelper {
private static String watermarkUrl;
public PdfWatermark() {
}
public PdfWatermark(String watermarkUrl) {
PdfWatermark.watermarkUrl = watermarkUrl;
}
@Override
public void onEndPage(PdfWriter writer, Document document) {
try {
// 加载公章图片
Image seal = Image.getInstance(watermarkUrl);
// 设置水印位置(右下角)
float x = document.right() - seal.getScaledWidth() - 50;
float y = document.bottom() + 50;
// 设置透明度
PdfContentByte canvas = writer.getDirectContentUnder();
seal.setAbsolutePosition(x, y);
seal.scaleAbsolute(100, 100); // 调整大小
canvas.saveState();
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.5f); // 设置透明度
canvas.setGState(gs);
canvas.addImage(seal);
canvas.restoreState();
} catch (Exception e) {
log.error("添加水印异常:", e);
}
}
}

View File

@@ -30,9 +30,10 @@ import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.IdNamelVo;
import com.dcsoft.system.service.ISysDictDataService;
import com.dcsoft.system.service.ISysPeopleService;
import com.dcsoft.system.service.impl.SysUserServiceImpl;
import com.dcsoft.system.service.ISysUserService;
import com.dcsoft.system.utils.ByteArrayMultipartFile;
import com.dcsoft.system.utils.PdfHeaderFooterEvent;
import com.dcsoft.system.utils.PdfWatermark;
import com.dcsoft.system.utils.UuidUtil;
import com.dcsoft.system.visitor.domain.*;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
@@ -98,7 +99,7 @@ public class VisCarryStuffController extends BaseController {
private static final String APPROVE_KEY = "APPROVE_KEY:STUFF_APPROVE";
@Autowired
private SysUserServiceImpl sysUserServiceImpl;
private ISysUserService sysUserService;
@Value("${sms.parkName:'兴安智慧园区'}")
private String parkName;
@@ -106,6 +107,9 @@ public class VisCarryStuffController extends BaseController {
@Value("${app.deptId:228}")
private String appDeptId;
@Value("${app.watermarkUrl:http://81.68.71.142:9000/others/gz/111.png}")
private String watermarkUrl;
@Autowired
private RemoteFileService remoteFileService;
@@ -413,7 +417,7 @@ public class VisCarryStuffController extends BaseController {
visitorService.saveVisCheckCode(codeVo);
// 申请人发送短信(审核通过)
SysUser sysUser = sysUserServiceImpl.selectUserById(stuffVo.getUserId());
SysUser sysUser = sysUserService.selectUserById(stuffVo.getUserId());
try {
visitorController.sendMessage(sysUser.getPhonenumber(), "1", parkName, smsProperties.getTemplate2());
} catch (Exception e) {
@@ -423,15 +427,17 @@ public class VisCarryStuffController extends BaseController {
}
//向下级审核人发送审核信息
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("出门证申请appove发送{}审核链接:{}", people.getPhone(), url);
if (stuffVo.getCurrentNode() != 3) {
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("出门证申请approve发送{}审核链接:{}", people.getPhone(), url);
//发送企微信息
try {
visitorController.sendWeCom(people.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("出门证申请add-sendWeCom异常", e);
throw new ServiceException("系统异常,请重新审核或联系管理员!");
//发送企微信息
try {
visitorController.sendWeCom(people.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("出门证申请approve-sendWeCom异常", e);
throw new ServiceException("系统异常,请重新审核或联系管理员!");
}
}
//审核拒绝
@@ -447,7 +453,7 @@ public class VisCarryStuffController extends BaseController {
}
// 申请人发送短信(审核不通过)
SysUser sysUser = sysUserServiceImpl.selectUserById(stuffVo.getUserId());
SysUser sysUser = sysUserService.selectUserById(stuffVo.getUserId());
try {
visitorController.sendMessage(sysUser.getPhonenumber(), "1", parkName, smsProperties.getTemplate3());
} catch (Exception e) {
@@ -566,8 +572,13 @@ public class VisCarryStuffController extends BaseController {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, baos);
// 添加水印事件处理器
writer.setPageEvent(new PdfWatermark());
// 添加水印事件处理器(只有保安部门才可添加水印)
LoginUser user = SecurityUtils.getLoginUser();
SysUser sysUser = sysUserService.selectUserById(user.getUserid());
if (ObjectUtil.isNotNull(sysUser) && StringUtils.equals(appDeptId, String.valueOf(sysUser.getDeptId()))) {
PdfWatermark pdfWatermark = new PdfWatermark(watermarkUrl);
writer.setPageEvent(pdfWatermark);
}
document.open();
@@ -690,7 +701,7 @@ public class VisCarryStuffController extends BaseController {
}
// 水印处理类
private static class PdfWatermark extends PdfPageEventHelper {
/*private static class PdfWatermark extends PdfPageEventHelper {
@Override
public void onEndPage(PdfWriter writer, Document document) {
try {
@@ -715,7 +726,7 @@ public class VisCarryStuffController extends BaseController {
log.error("添加水印异常:", e);
}
}
}
}*/
}