diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/PayApplyPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/PayApplyPluginInitializer.java index 93012623..65c4ac12 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/PayApplyPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/PayApplyPluginInitializer.java @@ -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 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java index 264984f7..e65b75dc 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java @@ -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; } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java index e6497480..f4491c0a 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java @@ -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); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java index a4b02f1e..57f488da 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java @@ -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; + } }