This commit is contained in:
xiang2lin 2024-06-18 09:16:47 +08:00
parent 347eb4e89f
commit 29c560bcfe
4 changed files with 118 additions and 15 deletions

View File

@ -1,25 +1,13 @@
package com.hzya.frame.plugin.cbs8.plugin;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.base.PluginBaseEntity;
import com.hzya.frame.cbs8.service.ICbs8Service;
import com.hzya.frame.plugin.cbs8.service.ICbsPluginService;
import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
import com.hzya.frame.seeyon.cbs8.service.ICbsLogService;
import com.hzya.frame.seeyon.cbs8.service.IPaymentService;
import com.hzya.frame.web.entity.JsonResultEntity;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description 经办支付申请
* @Author xiangerlin

View File

@ -3,6 +3,7 @@ package com.hzya.frame.plugin.cbs8.plugin;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.base.PluginBaseEntity;
import com.hzya.frame.cbs8.dto.req.TransactionDetailReqDTO;
import com.hzya.frame.cbs8.dto.res.TransactionDetailDTO;
import com.hzya.frame.cbs8.util.CBSUtil;
import com.hzya.frame.plugin.cbs8.service.ICbsPluginService;
import com.hzya.frame.web.entity.JsonResultEntity;
@ -10,6 +11,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description 交易明细查询
* @Author xiangerlin
@ -101,7 +104,7 @@ public class TransactionDetailPluginInitializer extends PluginBaseEntity {
TransactionDetailReqDTO transactionDetailReqDTO = new TransactionDetailReqDTO();
transactionDetailReqDTO.setCurrentPage(CBSUtil.DEFAULT_CURRENT_PAGE);
transactionDetailReqDTO.setPageSize(CBSUtil.DEFAULT_PAGE_SIZE);
cbsPluginService.queryTransactionDetail(transactionDetailReqDTO);
List<TransactionDetailDTO> transactionDetailList = cbsPluginService.queryTransactionDetail(transactionDetailReqDTO);
return null;
}
}

View File

@ -1,6 +1,10 @@
package com.hzya.frame.plugin.cbs8.service;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.cbs8.dto.req.TransactionDetailReqDTO;
import com.hzya.frame.cbs8.dto.res.TransactionDetailDTO;
import java.util.List;
/**
* @Description
@ -21,4 +25,18 @@ public interface ICbsPluginService {
* @throws Exception
*/
void queryResult(JSONObject requestJson)throws Exception;
/**
* 电子回单查询 并上传OA
* @param requestJson
* @throws Exception
*/
void elecBillUpload(JSONObject requestJson)throws Exception;
/**
* 查询交易明细
* transactionDetailReqDTO.currentPage transactionDetailReqDTO.pageSize 必填
* @param transactionDetailReqDTO
*/
List<TransactionDetailDTO> queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO);
}

View File

@ -1,10 +1,15 @@
package com.hzya.frame.plugin.cbs8.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.cbs8.dto.req.ElecRequestDTO;
import com.hzya.frame.cbs8.dto.req.PayResultRequestDTO;
import com.hzya.frame.cbs8.dto.res.PayResponseDTO;
import com.hzya.frame.cbs8.dto.res.PayResultResDTO;
import com.hzya.frame.cbs8.dto.req.TransactionDetailReqDTO;
import com.hzya.frame.cbs8.dto.res.*;
import com.hzya.frame.cbs8.service.ICbs8Service;
import com.hzya.frame.cbs8.util.CBSUtil;
import com.hzya.frame.cbs8.util.PayState;
@ -14,11 +19,18 @@ import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
import com.hzya.frame.seeyon.cbs8.service.ICbsLogService;
import com.hzya.frame.seeyon.cbs8.service.IPaymentService;
import com.hzya.frame.seeyon.dao.ICtpAttachmentDao;
import com.hzya.frame.seeyon.entity.CtpAttachmentEntity;
import com.hzya.frame.seeyon.service.ICtpAttachmentService;
import com.hzya.frame.seeyon.util.RestUtil;
import com.hzya.frame.uuid.UUIDLong;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@ -36,7 +48,11 @@ public class CbsPluginServiceImpl implements ICbsPluginService {
private IPaymentService paymentService;
@Autowired
private ICbsLogService cbsLogService;
@Autowired
private ICtpAttachmentService ctpAttachmentService;
@Value("${cbs8.elec_path}")
private String elec_path;
/**
* 支付申请
*
@ -131,4 +147,82 @@ public class CbsPluginServiceImpl implements ICbsPluginService {
}
}
}
/**
* 电子回单查询 并上传OA
*
* @param requestJson
* @throws Exception
*/
@Override
public void elecBillUpload(JSONObject requestJson) throws Exception {
//查询支付成功 没有电子回单的数据
PaymentEntity paymentEntity = new PaymentEntity();
List<PaymentEntity> paymentList = paymentService.queryElecIsNull(paymentEntity);
if (CollectionUtils.isNotEmpty(paymentList)) {
for (PaymentEntity pay : paymentList) {
String payDate = DateUtil.format(DateUtil.parse(pay.getPayDate()), "yyyy-MM-dd");
//查询cbs电子回单
List<ElecResponseDTO> elecResList = cbs8Service.queryElecBill(new ElecRequestDTO(payDate,DateUtil.today(),pay.getReferenceNum()));
if (CollectionUtils.isNotEmpty(elecResList)){
ElecResponseDTO elecResponseDTO = elecResList.get(0);
String bucketFileUrl = elecResponseDTO.getBucketFileUrl();
String bucketFileName = elecResponseDTO.getBucketFileName();
//上传电子回单到OA
HttpUtil.downloadFile(bucketFileUrl, FileUtil.file(elec_path));//附件下载
String pdfUrl = elec_path + bucketFileName;
File file = new File(pdfUrl);
if (file.exists()) {
JSONObject jsonObjectUpload = RestUtil.fileUpload(file);
String file_url = jsonObjectUpload.getString("fileUrl");
if (null != jsonObjectUpload && StrUtil.isNotEmpty(file_url)) {
String sub_reference = String.valueOf(UUIDLong.longUUID());
pay.setReceipt(sub_reference);
//更新表单的电子回单值
paymentService.updateElec(pay);
//保存附件关系
CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity();
ctpAttachmentEntity.setFile_url(file_url);
ctpAttachmentService.saveAttachment(file_url, pay.getSummaryId(), sub_reference);
}
//删除本地临时文件
file.delete();
}
}
}
}
}
/**
* 查询交易明细
* transactionDetailReqDTO.currentPage transactionDetailReqDTO.pageSize 必填
* @param transactionDetailReqDTO
*/
@Override
public List<TransactionDetailDTO> queryTransactionDetail(TransactionDetailReqDTO transactionDetailReqDTO) {
boolean hasNextPage = true;//是否有下一页
int currentPage = transactionDetailReqDTO.getCurrentPage();
int pageSize = transactionDetailReqDTO.getPageSize();
if (currentPage == 0){
currentPage = CBSUtil.DEFAULT_CURRENT_PAGE;//页码
}
if (pageSize == 0){
pageSize = CBSUtil.DEFAULT_PAGE_SIZE;//每页条数
transactionDetailReqDTO.setPageSize(pageSize);
}
List<TransactionDetailDTO> resultList = new ArrayList<>();
do{
transactionDetailReqDTO.setCurrentPage(currentPage);//页码
currentPage++;//页码自增
hasNextPage = false;//保护功能防止出现死循环
CbsResDataDTO dataDTO = cbs8Service.queryTransactionDetail(transactionDetailReqDTO);
if (null != dataDTO){
hasNextPage = dataDTO.getHasNextPage();
List<TransactionDetailDTO> transactionDetailDTOList = CBSUtil.convertJsonArrayToList(dataDTO.getList(), TransactionDetailDTO.class);
resultList.addAll(transactionDetailDTOList);
}
}while (hasNextPage);
return resultList;
}
}