|
@@ -8,14 +8,16 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.itextpdf.text.pdf.PdfReader;
|
|
|
-import com.sun.org.apache.bcel.internal.generic.NEW;
|
|
|
import com.zfjg.common.core.constant.GlobalConstant;
|
|
|
import com.zfjg.common.core.enums.TemplateTypeEnum;
|
|
|
import com.zfjg.common.core.exception.ServiceException;
|
|
|
import com.zfjg.common.core.utils.http.HttpUtils;
|
|
|
import com.zfjg.common.redis.service.RedisService;
|
|
|
+import com.zfjg.common.seal.notify.AppConfig;
|
|
|
import com.zfjg.common.security.utils.SecurityUtils;
|
|
|
-import com.zfjg.manage.api.domain.Signature.*;
|
|
|
+import com.zfjg.manage.api.domain.Signature.NewSigntureEntity;
|
|
|
+import com.zfjg.manage.api.domain.Signature.SignatureEntity;
|
|
|
+import com.zfjg.manage.api.domain.Signature.signInfo;
|
|
|
import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
|
|
|
import com.zfjg.manage.api.domain.enforce.job.EnforceJobCertificate;
|
|
|
import com.zfjg.manage.api.domain.enforce.job.EnforceJobHonestReport;
|
|
@@ -42,6 +44,8 @@ import com.zfjg.manage.service.pdf.IPDFService;
|
|
|
import com.zfjg.manage.service.sys.IFileService;
|
|
|
import com.zfjg.manage.service.sys.ISysSealService;
|
|
|
import com.zfjg.manage.utils.pdf.*;
|
|
|
+import com.zfjg.manage.utils.seal.SealSignUtils;
|
|
|
+import com.zfjg.manage.utils.seal.SignType;
|
|
|
import com.zfjg.system.api.domain.SysDept;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
@@ -49,13 +53,11 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.http.MediaType;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.*;
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
@@ -111,6 +113,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
|
|
|
@Value("${fire.now-url}")
|
|
|
private String url;
|
|
|
+ @Autowired
|
|
|
+ private AppConfig appConfig;
|
|
|
|
|
|
private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
private static SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日hh时mm分");
|
|
@@ -250,6 +254,16 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 100002 ("checkTable","checkTables.ftl", "简表 检查记录"),之前位置是死的 x:380,y:650 右上
|
|
|
+ * 100001 ("numerousTable","numerousTables.ftl","繁表 检查记录"),之前位置是死的 x:380,y:620 右上
|
|
|
+ * 100004 ("nowTable","nowTables.ftl", "立改 通知书"),动态在signatureTarget位置 x:380,y:160 右下
|
|
|
+ * 100005 ("limitTable", "limitTables.ftl", "限改 通知书"),动态在signatureTarget位置 x:380,y:160 右下
|
|
|
+ * 100008 ("certificateLimit", "certificateTables.ftl", "限改 送达回证"),之前位置是死的 x:380,y:650 右上
|
|
|
+ * 100007 ("certificateNow", "certificateTables.ftl", "立改 送达回证"),之前位置是死的 x:380,y:650 右上
|
|
|
+ * @param type
|
|
|
+ * @param jobId
|
|
|
+ */
|
|
|
@Override
|
|
|
public void initData(String type, Long jobId) {
|
|
|
EnforceJob enforceJob = enforceJobService.getById(jobId);
|
|
@@ -279,7 +293,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
String fileLimitName = "限改送达回证-" + jobId + ".pdf";
|
|
|
EnforceJobCertificate certificateEntityLimit = jobCertificate(jobId, "DEADLINE");
|
|
|
Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir, certificateEntityLimit);
|
|
|
- String certificateLimitFileId = certificateSign(limitMap, jobId, entity, fileLimitName, fireDir);
|
|
|
+ String certificateLimitFileId = certificateSign(limitMap, jobId, entity, fileLimitName, fireDir,SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
|
|
|
EnforceJobDTO newLimitJob = new EnforceJobDTO();
|
|
|
newLimitJob.setId(jobId);
|
|
|
newLimitJob.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
|
|
@@ -291,7 +305,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobCertificate certificateEntity = jobCertificate(jobId, "IMMEDIATELY");
|
|
|
Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
|
|
|
String fileId = certificateSign(certificateMap,
|
|
|
- jobId, entity, fileName, fireDir);
|
|
|
+ jobId, entity, fileName, fireDir, SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT);
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
newJobDto.setCertificateNowFileId(Long.parseLong(fileId));
|
|
@@ -362,7 +376,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
String fireDir = uploadDir + PDFUtils.datePath() + "/";
|
|
|
EnforceJobCertificate certificateEntity = jobCertificate(jobId, "DEADLINE");
|
|
|
Map<String, Object> certificateMap = createCertificatePdf("certificateTables.ftl", jobDTO, fileName, fireDir, certificateEntity);
|
|
|
- String certificateLimitFileId = certificateSign(certificateMap, jobId, entity, fileName, fireDir);
|
|
|
+ String certificateLimitFileId = certificateSign(certificateMap, jobId, entity, fileName, fireDir, SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
newJobDto.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
|
|
@@ -426,7 +440,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
}
|
|
|
String storageName;
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,String.valueOf(id),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
pdfLog.setErrorLog(e.getMessage());
|
|
|
pdfLog.setSignatureResult("失败");
|
|
@@ -499,17 +514,19 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(matchItem.getPageNum());
|
|
|
signatorie.setX("380.00");
|
|
|
- Float y = 760 - matchItem.getY();
|
|
|
- if (y <= 0) {
|
|
|
- y = 20f;
|
|
|
- }
|
|
|
- signatorie.setY(String.valueOf(y));
|
|
|
+// Float y = 760 - matchItem.getY();
|
|
|
+// if (y <= 0) {
|
|
|
+// y = 20f;
|
|
|
+// }
|
|
|
+// signatorie.setY(String.valueOf(y));
|
|
|
+ signatorie.setY("160.00");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
String storageName = null;
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.DEADLINE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
pdfLog.setErrorLog(e.getMessage());
|
|
@@ -571,7 +588,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
}
|
|
|
String storageName = null;
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,String.valueOf(id),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
// 电子签章失败则保存未签章pdf
|
|
@@ -650,7 +668,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobTto = new EnforceJobDTO();
|
|
|
newJobTto.setId(id);
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
pdfLog.setErrorLog(e.getMessage());
|
|
@@ -707,7 +726,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
// 生成盖章pdf
|
|
|
SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
|
|
|
try {
|
|
|
- String certificateLimitFileId = certificateSign(map, id, entity, fileName, fireDir);
|
|
|
+ String certificateLimitFileId = certificateSign(map, id, entity, fileName, fireDir, SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
|
|
|
EnforceJobDTO newLimitJob = new EnforceJobDTO();
|
|
|
newLimitJob.setId(id);
|
|
|
newLimitJob.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
|
|
@@ -757,7 +776,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
// 生成盖章pdf
|
|
|
SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
|
|
|
try {
|
|
|
- String certificateNowFileId = certificateSign(map, id, entity, fileName, fireDir);
|
|
|
+ String certificateNowFileId = certificateSign(map, id, entity, fileName, fireDir, SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT);
|
|
|
EnforceJobDTO newLimitJob = new EnforceJobDTO();
|
|
|
newLimitJob.setId(id);
|
|
|
newLimitJob.setCertificateNowFileId(Long.parseLong(certificateNowFileId));
|
|
@@ -944,7 +963,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.SUMMARY_TABLE,appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
// 电子签章失败则保存未签章pdf
|
|
@@ -989,14 +1009,16 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(1);
|
|
|
signatorie.setX("380.00");
|
|
|
- signatorie.setY("100.00");
|
|
|
+ //signatorie.setY("100.00");
|
|
|
+ signatorie.setY("650.00");
|
|
|
}
|
|
|
}
|
|
|
String storageName = null;
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,String.valueOf(jobId),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
// 电子签章失败则保存未签章pdf
|
|
@@ -1093,7 +1115,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.COMPLEX_TABLE,appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
// 电子签章失败则保存未签章pdf
|
|
@@ -1138,7 +1161,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(1);
|
|
|
signatorie.setX("380.00");
|
|
|
- signatorie.setY("100.00");
|
|
|
+ //signatorie.setY("160.00");
|
|
|
+ signatorie.setY("620.00");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1146,7 +1170,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,String.valueOf(jobId),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
log.error("电子签章失败", e);
|
|
|
// 电子签章失败则保存未签章pdf
|
|
@@ -1817,7 +1842,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobTto = new EnforceJobDTO();
|
|
|
newJobTto.setId(id);
|
|
|
try {
|
|
|
- storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.IMMEDIATE_CORRECTION_NOTICE,appConfig);
|
|
|
ManageSysFileDTO fileDTO = new ManageSysFileDTO();
|
|
|
fileDTO.setFileName(fileName);
|
|
|
fileDTO.setPath(fireDir);
|
|
@@ -1914,18 +1940,20 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(matchItem.getPageNum());
|
|
|
signatorie.setX("380.00");
|
|
|
- Float y = 760 - matchItem.getY();
|
|
|
- if (y <= 0) {
|
|
|
- y = 20f;
|
|
|
- }
|
|
|
- signatorie.setY(String.valueOf(y));
|
|
|
+// Float y = 760 - matchItem.getY();
|
|
|
+// if (y <= 0) {
|
|
|
+// y = 20f;
|
|
|
+// }
|
|
|
+// signatorie.setY(String.valueOf(y));
|
|
|
+ signatorie.setY("160.00");
|
|
|
}
|
|
|
}
|
|
|
String storageName = null;
|
|
|
EnforceJobDTO newJobTto = new EnforceJobDTO();
|
|
|
newJobTto.setId(id);
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
|
|
|
ManageSysFileDTO fileDTO = new ManageSysFileDTO();
|
|
|
fileDTO.setFileName(fileName);
|
|
|
fileDTO.setPath(fireDir);
|
|
@@ -2222,7 +2250,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
enforceJobDTO.setId(jobId);
|
|
|
|
|
|
try {
|
|
|
- storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.DEADLINE_CORRECTION_NOTICE,appConfig);
|
|
|
ManageSysFileDTO fileDTO = new ManageSysFileDTO();
|
|
|
fileDTO.setFileName(fileName);
|
|
|
fileDTO.setPath(fireDir);
|
|
@@ -2283,11 +2312,12 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(matchItem.getPageNum());
|
|
|
signatorie.setX("380.00");
|
|
|
- Float y = 760 - matchItem.getY();
|
|
|
- if (y <= 0) {
|
|
|
- y = 20f;
|
|
|
- }
|
|
|
- signatorie.setY(String.valueOf(y));
|
|
|
+// Float y = 760 - matchItem.getY();
|
|
|
+// if (y <= 0) {
|
|
|
+// y = 20f;
|
|
|
+// }
|
|
|
+// signatorie.setY(String.valueOf(y));
|
|
|
+ signatorie.setY("160.00");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2296,7 +2326,8 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
enforceJobDTO.setId(jobId);
|
|
|
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.DEADLINE_CORRECTION_NOTICE,String.valueOf(jobId),appConfig);
|
|
|
ManageSysFileDTO fileDTO = new ManageSysFileDTO();
|
|
|
fileDTO.setFileName(fileName);
|
|
|
fileDTO.setPath(fireDir);
|
|
@@ -2368,6 +2399,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
infoEntity.setSignInfo(signInfos);
|
|
|
infoList.add(infoEntity);
|
|
|
entity.setFileInfo(infoList);
|
|
|
+ entity.setEnforceOrgName(sysSeal.getEnforceOrgName());
|
|
|
}
|
|
|
return entity;
|
|
|
}
|
|
@@ -2395,6 +2427,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
entity.setMac(sysSeal.getMac());
|
|
|
entity.setSealKey(sysSeal.getSealKey());
|
|
|
entity.setOutUserId(sysSeal.getOutUserId());
|
|
|
+ entity.setEnforceOrgName(sysSeal.getEnforceOrgName());
|
|
|
List<SignatureEntity.SignatoriesList> signatoriesList = new ArrayList<>();
|
|
|
// 设置电子签章位置
|
|
|
SignatureEntity.SignatoriesList signatories = new SignatureEntity.SignatoriesList();
|
|
@@ -3200,7 +3233,7 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = newGetSignature(fireDir, fileName, file, entity);
|
|
|
} catch (Exception e) {
|
|
|
ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
|
|
|
fileRepository.save(sysFileDto);
|
|
@@ -3224,21 +3257,22 @@ public class PDFServiceImpl implements IPDFService {
|
|
|
/**
|
|
|
* 送达回证pdf获取电子签章
|
|
|
*/
|
|
|
- private String certificateSign(Map<String, Object> map, Long jobId, SignatureEntity entity, String fileName, String fireDir) {
|
|
|
+ private String certificateSign(Map<String, Object> map, Long jobId, SignatureEntity entity, String fileName, String fireDir, SignType signType) {
|
|
|
File file = (File) map.get("file");
|
|
|
List<SignatureEntity.SignatoriesList> signatoriesList = entity.getSignatoriesList();
|
|
|
if (CollectionUtils.isNotEmpty(signatoriesList)) {
|
|
|
for (SignatureEntity.SignatoriesList signatorie : signatoriesList) {
|
|
|
signatorie.setPage(1);
|
|
|
signatorie.setX("380.00");
|
|
|
- signatorie.setY("65.00");
|
|
|
+ signatorie.setY("650.00");
|
|
|
}
|
|
|
}
|
|
|
String storageName = null;
|
|
|
EnforceJobDTO newJobDto = new EnforceJobDTO();
|
|
|
newJobDto.setId(jobId);
|
|
|
try {
|
|
|
- storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+// storageName = getSignature(fireDir, fileName, file, entity);
|
|
|
+ storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,signType,String.valueOf(jobId),appConfig);
|
|
|
} catch (Exception e) {
|
|
|
ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
|
|
|
fileRepository.save(sysFileDto);
|