| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package me.zhengjie.application.admin.job;
- import cfca.trustsign.common.vo.cs.UploadSignInfoVO;
- import com.xxl.job.core.context.XxlJobHelper;
- import com.xxl.job.core.handler.annotation.XxlJob;
- import lombok.RequiredArgsConstructor;
- import me.zhengjie.base.config.AppConfigInfo;
- import me.zhengjie.base.util.CFCACertUtil;
- import me.zhengjie.base.util.FileUploadUtil;
- import me.zhengjie.base.util.StatusEnum.StepStatusEnum;
- import me.zhengjie.dao.mybatis.OrderFileRepository;
- import me.zhengjie.dao.mybatis.OrderRepository;
- import me.zhengjie.dao.mybatis.entity.*;
- import me.zhengjie.dao.mybatis.mapper.NotaryOfficeMapper;
- import me.zhengjie.dao.mybatis.mapper.OrderFileMapper;
- import me.zhengjie.dao.mybatis.mapper.SysUserMapper;
- import me.zhengjie.utils.StringUtils;
- import org.apache.commons.collections.CollectionUtils;
- import org.springframework.stereotype.Component;
- import java.io.InputStream;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 生成公证书定时任务
- */
- @RequiredArgsConstructor
- @Component
- public class GenerateNotarizationJob {
- private final OrderFileRepository orderFileRepository;
- private final OrderFileMapper orderFileMapper;
- private final NotaryOfficeMapper notaryOfficeMapper;
- private final SysUserMapper userDao;
- private final OrderRepository orderRepository;
- /**
- * 生成签名公证书
- */
- @XxlJob("generateSignedNotarization")
- public void generateSignedNotarization(){
- XxlJobHelper.log("Generate signed notarization beginning ......");
- List<OrderEntity> orderList = orderRepository.canBeAutoSignedOrder();
- if (orderList != null && orderList.size() > 0) {
- List<String> collection = orderList.stream().map(OrderEntity::getBusinessNo).collect(Collectors.toList());
- if(CollectionUtils.isNotEmpty(collection)) {
- List<OrderFileEntity> orderFileList = orderFileRepository.canBeSignedNotarization(collection);
- for (OrderFileEntity orderFile : orderFileList) {
- try {
- if(StringUtils.isEmpty(orderFile.getAxqContractNo())) {
- signNotarization(orderFile);
- }
- if(StringUtils.isEmpty(orderFile.getSignedPdfUrl())) {
- downloadNotarization(orderFile);
- }
- }catch (Exception e){
- e.printStackTrace();
- XxlJobHelper.log(e.getMessage());
- }
- }
- }
-
- }
- XxlJobHelper.log("Generate signed notarization endding ......");
- }
- /**
- * 公证书电子签名
- * @param orderFile
- */
- private void signNotarization(OrderFileEntity orderFile) throws Exception{
- BorrowerEntity borrower = orderRepository.getBorrowerByBizNo(orderFile.getBusinessNo());
- SysUserEntity notaryUser = userDao.selectById(borrower.getNotaryUserId());
- NotaryOfficeEntity notaryOffice = notaryOfficeMapper.selectById(notaryUser.getOrgId().split("_")[1]);
- //
- UploadSignInfoVO notaryUserInfo = new UploadSignInfoVO();
- notaryUserInfo.setUserId(notaryUser.getAxqUserId());
- notaryUserInfo.setSealId(notaryUser.getAxqSealId());
- notaryUserInfo.setLocation("210.74.41.0");
- notaryUserInfo.setAuthorizationTime("20220214171200");
- UploadSignInfoVO notaryOfficeInfo = new UploadSignInfoVO();
- notaryOfficeInfo.setUserId(notaryOffice.getAxqUserId());
- notaryOfficeInfo.setSealId(notaryOffice.getAxqSealId());
- notaryOfficeInfo.setLocation("210.74.41.1");
- notaryOfficeInfo.setAuthorizationTime("20220214171200");
- CFCACertUtil.proxySwitchOn = "dev".equals(AppConfigInfo.APP_ENV_TYPE);
- String path = orderFile.getPdfUrl();
- InputStream inputStream = FileUploadUtil.getInputStream(path);
- String fileName=FileUploadUtil.getFileName(path);
- String contractNO = CFCACertUtil.uploadSignContract(notaryUserInfo, notaryOfficeInfo, inputStream,fileName);
- orderFile.setAxqContractNo(contractNO);
- // 保存合同编号
- inputStream.close();
- saveNotarizationInfo(contractNO, orderFile.getId());
- }
- /**
- * 下载公证书
- * @param orderFile
- */
- private void downloadNotarization(OrderFileEntity orderFile) throws Exception {
- String orderType = StepStatusEnum.getType(orderFile.getContractId());
- CFCACertUtil.proxySwitchOn = "dev".equals(AppConfigInfo.APP_ENV_TYPE);
- String uplaodPath = orderFile.getBusinessNo() + "/" + orderType + "/";
- String path = uplaodPath + "notary-signed-" + orderFile.getBusinessNo() + "/";
- String filePath = CFCACertUtil.download(path, orderFile.getAxqContractNo());
- saveAuthNorizationUrlById(filePath, orderFile.getId());
- }
- /**
- * 记录合同信息
- *
- * @param id
- */
- private void saveNotarizationInfo(String contractNo, int id) {
- OrderFileEntity saveOrderFile = new OrderFileEntity();
- saveOrderFile.setId(id);
- saveOrderFile.setAxqContractNo(contractNo);
- saveOrderFile.setAxqSignedTime(new Date());
- saveOrderFile.setUpdateTime(new Date());
- saveOrderFile.setUpdaterId(777l);
- orderFileMapper.updateById(saveOrderFile);
- }
- /**
- * 保存签名文件URL
- *
- * @param fileUrl
- * @param id
- */
- private void saveAuthNorizationUrlById(String fileUrl, int id) {
- OrderFileEntity saveOrderFile = new OrderFileEntity();
- saveOrderFile.setId(id);
- saveOrderFile.setSignedPdfUrl(fileUrl);
- saveOrderFile.setUpdaterId(777l);
- saveOrderFile.setUpdateTime(new Date());
- orderFileMapper.updateById(saveOrderFile);
- }
- }
|