Commit 66b61d2a authored by 李健华's avatar 李健华

Merge branch 'feature/exportVoucher-20221102' into 'master'

Feature/export voucher 20221102

See merge request !8
parents 852729b1 6e6d6b58
......@@ -33,7 +33,10 @@ public class TransactionReceiptRecord {
private Integer exportStatus = 0;
@Column(name = "order_no")
private String orderNo;
private String orderNo = "";
@Column(name = "consume_no")
private String consumeNo = "";
@Column(name = "batch_no")
private Integer batchNo =0;
......
......@@ -25,7 +25,7 @@ public interface TransactionReceiptRecordRepo extends JpaRepository<TransactionR
@Query(value = "select * from transaction_receipt_record where order_no = ?1 and user_id =?2 and user_name =?3 and import_status != 2 and export_status = 0 ", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsByOrderNo(String orderNo,Integer userId,String userName);
@Query(value = "select * from transaction_receipt_record where import_status = ?1 and export_status != 1 limit ?2 ", nativeQuery = true)
@Query(value = "select * from transaction_receipt_record where import_status = ?1 and (export_status = 0 or export_status = 2) limit ?2 ", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsByImportStatusAndExportStatus(Integer status,Integer limit);
@Query(value = "select count(1) from transaction_receipt_record where import_status =?1 ", nativeQuery = true)
......@@ -39,5 +39,8 @@ public interface TransactionReceiptRecordRepo extends JpaRepository<TransactionR
@Query(value = "select * from transaction_receipt_record where order_no = ?1 and import_status = 1 and export_status != 1 order by id desc", nativeQuery = true)
List<TransactionReceiptRecord> selectRecords(String orderNo);
@Query(value = "select * from transaction_receipt_record where consume_no = ?1 and import_status = 1 and export_status != 1 order by id desc", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsConsumeNo(String orderNo);
}
package cn.quantgroup.customer.rest.enums;
public enum VoucherExportStatus {
INIT(0, "初始状态"),
EXPORT_SUCCESS(1, "成功"),
EXPORT_FAIL(2, "失败"),
EXPORT_WARN(3, "物流信息异常"),
;
private Integer code;
private String message;
public String getMessage() {
return message;
}
public Integer getCode() {
return code;
}
VoucherExportStatus(Integer code, String message) {
this.message = message;
this.code = code;
}
}
package cn.quantgroup.customer.rest.vo.transaction;
import lombok.Data;
@Data
public class LoanVO {
/**
* 合同号
*/
private String contractNo;
}
......@@ -66,4 +66,19 @@ public class OrderVO {
*/
private String payTypeName;
/**
* vcc支付金额
*/
private String vccPayAmount;
/**
* 其他方式支付金额
*/
private String otherPayAmount;
/**
* 合同号
*/
private String contractNo;
}
......@@ -16,6 +16,8 @@ public class TransactionReceiptRecordVO {
private String tradeNo;
private String consumeNo;
private Integer id;
}
......@@ -22,4 +22,9 @@ public class TransactionReceiptVO {
* 物流信息
*/
private ReceiverVO receiver;
/**
* 贷款信息
*/
private LoanVO loan;
}
......@@ -3,6 +3,7 @@ package cn.quantgroup.customer.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import cn.quantgroup.customer.entity.TransactionReceiptRecord;
import cn.quantgroup.customer.rest.enums.VoucherExportStatus;
import cn.quantgroup.customer.rest.param.mail.SendMailParam;
import cn.quantgroup.customer.rest.vo.transaction.TransactionReceiptRecordVO;
import cn.quantgroup.customer.repo.TransactionReceiptRecordRepo;
......@@ -123,8 +124,6 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
}
if (StringUtils.isNotEmpty(query.getImportStatus())) {
predicates.add(criteriaBuilder.equal(root.get("importStatus"), query.getImportStatus()));
}else{
predicates.add(criteriaBuilder.equal(root.get("importStatus"), 1));
}
if (StringUtils.isNotEmpty(query.getExportStatus())) {
predicates.add(criteriaBuilder.equal(root.get("exportStatus"), query.getExportStatus()));
......@@ -144,6 +143,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
workOrderVO.setUserId(it.getUserId());
workOrderVO.setUserName(it.getUserName());
workOrderVO.setSerialNo(it.getSerialNo());
workOrderVO.setConsumeNo(it.getConsumeNo());
workOrderVO.setExportStatus(it.getExportStatus());
workOrderVO.setImportStatus(it.getImportStatus());
workOrderVO.setId(workOrderVO.getId());
......@@ -235,14 +235,14 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
//保存时如果有其中一项为空则默认为导入失败,其他则默认初始状态
if(record.getUserId() ==null || record.getUserId() ==0
|| StringUtils.isEmpty(record.getUserName())
|| StringUtils.isEmpty(record.getOrderNo())){
record.setImportStatus(2);
|| (StringUtils.isEmpty(record.getOrderNo()) && StringUtils.isEmpty(record.getConsumeNo()))){
record.setImportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
//默认导出失败
record.setExportStatus(2);
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
}else{
record.setImportStatus(0);
record.setImportStatus(VoucherExportStatus.INIT.getCode());
//默认导出初始状态
record.setExportStatus(0);
record.setExportStatus(VoucherExportStatus.INIT.getCode());
}
//存储批次号
record.setBatchNo(maxBatchNo.intValue()+1);
......@@ -318,6 +318,8 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
record.setUserName(cellValue);
}else if(c == 4){
record.setOrderNo(cellValue);
} else if (c == 5) {
record.setConsumeNo(cellValue);
}
}
recordList.add(record);
......@@ -326,7 +328,6 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
}
//导出zip压缩包文件
@Transactional
@Override
@Async
public void exportZipFile(HttpServletRequest request, HttpServletResponse response) throws RuntimeException {
......@@ -334,7 +335,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
log.info("[TransactionReceiptRecordServiceImpl.exportZipFile begin]");
//查询需要导出的数据-导入成功的数据,但未导出成功的数据
String accessToken = request.getHeader("Access-Token");
List<TransactionReceiptRecord> transactionReceiptRecordList= transactionReceiptRecordRepo.selectRecordsByImportStatusAndExportStatus(1,limit);
List<TransactionReceiptRecord> transactionReceiptRecordList= transactionReceiptRecordRepo.selectRecordsByImportStatusAndExportStatus(VoucherExportStatus.EXPORT_SUCCESS.getCode(),limit);
log.info("[TransactionReceiptRecordServiceImpl.exportZipFile transactionReceiptRecordList] 可导出数据为:",transactionReceiptRecordList.size());
if(CollectionUtils.isEmpty(transactionReceiptRecordList)){
deleteRedis("exportZipFile");
......@@ -342,7 +343,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
throw new RuntimeException("没有可以导出得数据");
}
//查询导入成功数据的导出的最大批次号
Integer maxExportBatchNo = transactionReceiptRecordRepo.findExportMaxBatchNo(1);
Integer maxExportBatchNo = transactionReceiptRecordRepo.findExportMaxBatchNo(VoucherExportStatus.EXPORT_SUCCESS.getCode());
if(maxExportBatchNo == null || maxExportBatchNo ==0 ){
maxExportBatchNo = 1;
}
......@@ -355,6 +356,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
for(TransactionReceiptRecord record : transactionReceiptRecordList){
Integer userId = record.getUserId();
String orderNo = record.getOrderNo();
String consumeNo = record.getConsumeNo();
//调用kdsp接口获取交易凭证订单信息
String url = kdspOperationUrl + "/api/kdsp/op/fa-cui/transaction-proof/query";
//String url = "http://kdsp-operation-test7.liangkebang.net/api/kdsp/op/fa-cui/transaction-proof/query";
......@@ -369,6 +371,9 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
if (StringUtils.isNotBlank(orderNo)) {
param.put("orderNo", orderNo);
}
if (StringUtils.isNotBlank(consumeNo)) {
param.put("tradeNo", consumeNo);
}
List<Map> paramList =new ArrayList<>();
paramList.add(param);
//得到json字符串
......@@ -385,7 +390,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
//查询报错
if(!"0000".equals(businessCode)){
//导出失败,跳过
record.setExportStatus(2);
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
transactionReceiptRecordRepo.save(record);
continue;
}
......@@ -394,14 +399,26 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
JSONArray jsonArray = jsonObject.getJSONArray("dataList");
if(jsonArray.isEmpty()){
//导出失败,跳过
record.setExportStatus(2);
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
transactionReceiptRecordRepo.save(record);
continue;
}
List<TransactionReceiptVO> transactionReceiptVOList = jsonArray.toJavaList(TransactionReceiptVO.class);
if(transactionReceiptVOList.isEmpty()){
//导出失败,跳过
record.setExportStatus(2);
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
transactionReceiptRecordRepo.save(record);
continue;
}
TransactionReceiptVO vo = transactionReceiptVOList.get(0);
Integer logisticsDetailCount = 0;
for (LogisticsVO logisticsVO: vo.getLogisticsList()) {
logisticsDetailCount += logisticsVO.getDetailList().size();
}
if(logisticsDetailCount <= 5) {
// 物流信息异常
record.setExportStatus(VoucherExportStatus.EXPORT_WARN.getCode());
transactionReceiptRecordRepo.save(record);
continue;
}
......@@ -409,6 +426,9 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
//生成pdf
String directory =record.getSerialNo()+record.getUserName();
String pdfFileName = record.getUserId()+"-"+record.getUserName()+"-"+record.getOrderNo()+".pdf";
if (StringUtils.isNotEmpty(record.getConsumeNo())) {
pdfFileName = record.getUserId()+"-"+record.getUserName()+"-"+record.getConsumeNo()+".pdf";
}
FileToZip.mkdir(uploadLocalPath+directory);
log.info("导出文件生成pdf begin:"+pdfFileName);
generatePDF(transactionReceiptVOList.get(0),uploadLocalPath+"/"+directory+"/"+pdfFileName);
......@@ -440,65 +460,14 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
log.info("[TransactionReceiptRecordServiceImpl.kdspOperationUrl 调用kdsp-op 接口end]");
if(CollectionUtils.isEmpty(emailList)){
log.info("没有签章成功的文件可以发送");
deleteRedis("exportZipFile");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
throw new RuntimeException("没有签章成功的文件可以发送");
}
//将文件分批放入本地
/* log.info("下载签章完成的文件 begin");
int subListSize = 0;
if(CollectionUtils.isNotEmpty(emailList)){
List<List<Map<String,Object>>> subList= splitList(emailList,mailSize);
subListSize = subList.size();
for(int i =0;i<subList.size();i++){
List<Map<String,Object>>list =subList.get(i);
for(Map<String,Object> map:list){
String filePath = (String) map.get("filePath");
String fileName = (String) map.get("fileName");
SFTPUtil sftpUtil1 = new SFTPUtil(username,password,host,port);
sftpUtil1.login();
byte[] bytes = sftpUtil1.download(filePath,fileName);
String subPath = filePath.substring(0,filePath.length()-1);
int length2 = subPath.lastIndexOf("/");
String directory = subPath.substring(length2+1,subPath.length());
FileToZip.mkdir(downloadLocalPath+"/"+i+"/"+directory);
getFile(bytes,downloadLocalPath+"/"+i+"/"+directory,fileName);
sftpUtil1.logout();
}
}
}
log.info("下载签章完成的文件 end");
log.info("分批发送邮件 begin");
try {
for(int i=0;i<subListSize;i++){
File zipFile = ZipUtil.zip(downloadLocalPath+"\\"+i, downloadLocalPath+"\\"+i+".zip");
FileInputStream is = new FileInputStream(zipFile);
InputStreamResource InputStreamResource =new InputStreamResource(is);
sendCustomerTransactionMail(InputStreamResource);
}
} catch (Exception e) {
deleteRedis("exportZipFile");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.info("邮件发送失败");
throw new RuntimeException("邮件发送失败");
}finally{
//log.info("删除暂存的文件 begin");
//int upload = uploadLocalPath.lastIndexOf("/");
//File deleteFile =new File(uploadLocalPath.substring(0,upload-4));
//deleteDirectory(deleteFile);
//int download = downloadLocalPath.lastIndexOf("/");
//File deleteFile1 =new File(downloadLocalPath.substring(0,download+1));
//deleteDirectory(deleteFile1);
//log.info("删除暂存的文件 end");
deleteRedis("exportZipFile");
log.info("分批发送邮件end");
}
log.info("分批发送邮件成功end");*/
//发送邮件通知已经处理完成
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
} else {
log.info("[TransactionReceiptRecordServiceImpl.sendCustomerTransactionHtmlMail 发送邮件begin]");
sendCustomerTransactionHtmlMail(transactionReceiptRecordList.size(),emailList.size(),transactionReceiptRecordList.size()-emailList.size());
log.info("[TransactionReceiptRecordServiceImpl.sendCustomerTransactionHtmlMail 发送邮件end]");
}
deleteRedis("exportZipFile");
}
private void getHeaders(HttpServletRequest request) {
......@@ -664,40 +633,13 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
log.error("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 校验更新数据 begin");
//查询所有初始化的数据
List<TransactionReceiptRecord> transactionReceiptRecordList
= transactionReceiptRecordRepo.selectRecordsByImportStatus(0);
= transactionReceiptRecordRepo.selectRecordsByImportStatus(VoucherExportStatus.INIT.getCode());
//没有校验成功的放入一个list
List<TransactionReceiptRecord> failList = new ArrayList<>();
List<TransactionReceiptRecord> successList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(transactionReceiptRecordList)){
for(TransactionReceiptRecord record :transactionReceiptRecordList){
try{
//调用天津自牧用户中心接口
// Map param = Maps.newHashMap();
// param.put("userIds",record.getUserId());
// String userUrl = userSysUrl + "/api/sync/listByUserIds";
// //String userUrl = "http://passportapi-test7.liangkebang.net/api/sync/listByUserIds";
// log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 begin"+param);
// String userResult = httpService.get(userUrl, param);
// log.info("TransactionReceiptRecordServiceImpl userResult ="+userResult);
// if (StringUtils.isEmpty(userResult)) {
// record.setImportStatus(2);
// record.setExportStatus(2);
// failList.add(record);
// continue;
// }
// //对比拿到的
// JSONObject userJsonObject = JSONObject.parseObject(userResult);
// String dataStr = userJsonObject.getString("data");
// JSONArray userArray = JSONArray.parseArray(dataStr);
// if(userArray.size()<=0){
// record.setImportStatus(2);
// record.setExportStatus(2);
// failList.add(record);
// continue;
// }
// JSONObject object= (JSONObject) userArray.get(0);
// String userName = object.getString("name");
// log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用用户中心 end");
log.info("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 调用商城接口 begin");
if(StringUtils.isNotBlank(record.getUserName())){
Map<String, String> header = Maps.newHashMap();
......@@ -710,6 +652,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
Map param1 = Maps.newHashMap();
param1.put("userId",record.getUserId());
param1.put("orderNo",record.getOrderNo());
param1.put("tradeNo", record.getConsumeNo());
List<Map> paramList =new ArrayList<>();
paramList.add(param1);
String kResult = httpService.post(kUrl, header, paramList);
......@@ -727,17 +670,17 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
JSONObject kJsonObject = JSONObject.parseObject(kJsonResult);
List<TransactionReceiptRecord> errorList = (List<TransactionReceiptRecord>) kJsonObject.get("verifyErrorList");
if(errorList.size()>0){
record.setImportStatus(2);
record.setExportStatus(2);
record.setImportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
failList.add(record);
continue;
}
}
record.setImportStatus(1);
record.setImportStatus(VoucherExportStatus.EXPORT_SUCCESS.getCode());
successList.add(record);
}else{
record.setImportStatus(2);
record.setExportStatus(2);
record.setImportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
record.setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
failList.add(record);
}
}catch(Exception e){
......@@ -747,10 +690,10 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
}
//校验全部通过则更新状态
for(TransactionReceiptRecord record :failList){
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(2,record.getOrderNo());
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(VoucherExportStatus.EXPORT_FAIL.getCode(), record.getOrderNo());
}
for(TransactionReceiptRecord record :successList){
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(1,record.getOrderNo());
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(VoucherExportStatus.EXPORT_SUCCESS.getCode(), record.getOrderNo());
}
log.error("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 校验更新数据 end");
}
......@@ -769,10 +712,13 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
if(!successList.isEmpty()){
for(String orderNo :successList){
if(StringUtils.isNotBlank(orderNo)){
List<TransactionReceiptRecord> list = transactionReceiptRecordRepo.selectRecords(orderNo);
List<TransactionReceiptRecord> list = transactionReceiptRecordRepo.selectRecordsConsumeNo(orderNo);
if (list.isEmpty()) {
list = transactionReceiptRecordRepo.selectRecords(orderNo);
}
if(!list.isEmpty()){
list.get(0).setExportStatus(1);
list.get(0).setSignStatus(1);
list.get(0).setExportStatus(VoucherExportStatus.EXPORT_SUCCESS.getCode());
list.get(0).setSignStatus(VoucherExportStatus.EXPORT_SUCCESS.getCode());
transactionReceiptRecordRepo.save(list.get(0));
}
}
......@@ -785,8 +731,8 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
if(StringUtils.isNotBlank(orderNo)) {
List<TransactionReceiptRecord> list = transactionReceiptRecordRepo.selectRecords(orderNo);
if(!list.isEmpty()){
list.get(0).setExportStatus(2);
list.get(0).setSignStatus(2);
list.get(0).setExportStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
list.get(0).setSignStatus(VoucherExportStatus.EXPORT_FAIL.getCode());
transactionReceiptRecordRepo.save(list.get(0));
}
}
......@@ -830,6 +776,8 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
ReceiverVO receiverVO =transactionReceiptVO.getReceiver();
//物流信息
List<LogisticsVO> logisticsVOList = transactionReceiptVO.getLogisticsList();
// 贷款信息
LoanVO loanVo = transactionReceiptVO.getLoan();
log.info("generatePDF 开始生成pdf begin",LOG_PRE,filePath);
Document document = new Document(PageSize.A4);
try {
......@@ -885,6 +833,20 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(orderVO.getOrderAmount())?"":orderVO.getOrderAmount()), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(orderVO.getPayAmount())?"/":orderVO.getPayAmount()), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(orderVO.getPayTypeName())?"/":orderVO.getPayTypeName()), font))).setMinimumHeight(18);
// 第六行数据
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String("享花卡支付"), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String("其他方式支付"), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
// 第七行数据
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(orderVO.getVccPayAmount())?"0":orderVO.getVccPayAmount()), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(orderVO.getOtherPayAmount())?"0":orderVO.getOtherPayAmount()), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
table.addCell(new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font))).setMinimumHeight(18);
//有多个物流信息,重复展示物流信息,商品信息,收货信息,物流详情
log.info("生成pdf 物流信息logisticsVOList"+logisticsVOList.size());
if(logisticsVOList.size() > 1){
......@@ -896,6 +858,25 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
//展示一个
table=generateMultiParagraph(cell,font,table,logisticsVOList,skuVOList,receiverVO,0);
}
//贷款信息
cell = new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String("贷款信息"), font));
cell.setColspan(6);
cell.setMinimumHeight(18);
table.addCell(cell);
//贷款信息详情
table.addCell(new Phrase(ITextPDFUtil.getUTF8String("合同编号/贷字"), font));
//todo: 贷款信息只有一个,选择?
if (loanVo != null) {
cell = new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(StringUtils.isEmpty(loanVo.getContractNo())?"":loanVo.getContractNo()), font));
cell.setColspan(5);
cell.setMinimumHeight(18);
table.addCell(cell);
} else {
cell = new PdfPCell(new Phrase(ITextPDFUtil.getUTF8String(""), font));
cell.setColspan(5);
cell.setMinimumHeight(18);
table.addCell(cell);
}
log.info("generatePDF 开始生成pdf end",LOG_PRE,table.getBody());
document.add(table);
document.close();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment