|
@@ -0,0 +1,85 @@
|
|
|
|
|
+package org.jeecg.modules.ordermanager.task;
|
|
|
|
|
+
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
+import com.fdd.api.client.res.RestResult;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.jeecg.common.oss.OSSClientUtil;
|
|
|
|
|
+import org.jeecg.common.util.DateUtils;
|
|
|
|
|
+import org.jeecg.common.util.StringUtils;
|
|
|
|
|
+import org.jeecg.modules.hwcontract.entity.HwElectronicContract;
|
|
|
|
|
+import org.jeecg.modules.hwcontract.service.IHwElectronicContractService;
|
|
|
|
|
+import org.jeecg.modules.hwpayment.entity.HwPaymentDetail;
|
|
|
|
|
+import org.jeecg.modules.ordermanager.entity.HwOrder;
|
|
|
|
|
+import org.jeecg.modules.ordermanager.service.IHwOrderService;
|
|
|
|
|
+import org.jeecg.modules.util.ContractUtil;
|
|
|
|
|
+import org.quartz.Job;
|
|
|
|
|
+import org.quartz.JobExecutionContext;
|
|
|
|
|
+import org.quartz.JobExecutionException;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+
|
|
|
|
|
+import java.io.*;
|
|
|
|
|
+import java.util.Calendar;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @Author: zwq
|
|
|
|
|
+ * @Description:
|
|
|
|
|
+ * @Date: Create in 9:26 2020/4/7
|
|
|
|
|
+ */
|
|
|
|
|
+@Slf4j
|
|
|
|
|
+@Component
|
|
|
|
|
+@Service
|
|
|
|
|
+public class ContractDownloadJob implements Job {
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IHwOrderService hwOrderService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ContractUtil contractUtil;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IHwElectronicContractService hwElectronicContractService;
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 上传文件到oss的基础虚拟路径
|
|
|
|
|
+ */
|
|
|
|
|
+ public static final String USERFILES_BASE_URL = "uploadfiles";
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
|
|
|
+ log.info(String.format("下载电子合同状态定时器! 时间:" + DateUtils.getTimestamp()));
|
|
|
|
|
+ //查询订单表有电子合同id,合同状态为已完成且合同url不为开心oss地址的合同列表
|
|
|
|
|
+ QueryWrapper<HwOrder> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.isNotNull("electronic_contract_id");
|
|
|
|
|
+ queryWrapper.eq("electronic_contract_status",2);
|
|
|
|
|
+ queryWrapper.notLike("work_contract", "/uploadfiles/hpwork/");
|
|
|
|
|
+ List<HwOrder> orderList = hwOrderService.list(queryWrapper);
|
|
|
|
|
+ for (HwOrder hwOrder : orderList) {
|
|
|
|
|
+ HwElectronicContract hwElectronicContract = hwElectronicContractService.getById(hwOrder.getElectronicContractId());
|
|
|
|
|
+ try {
|
|
|
|
|
+ RestResult result = contractUtil.downloadContract(hwElectronicContract.getContractNo());
|
|
|
|
|
+ if (result.isSuccess()) {
|
|
|
|
|
+ InputStream inputStream = (InputStream) result.getData();
|
|
|
|
|
+ //文件上传的业务路径
|
|
|
|
|
+ String uploadPath = "/hpwork/hwcontract";
|
|
|
|
|
+ //获取当前年月
|
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
|
+ int year = cal.get(Calendar.YEAR);
|
|
|
|
|
+ int month = cal.get(Calendar.MONTH) + 1;
|
|
|
|
|
+ String fileDir = USERFILES_BASE_URL + uploadPath + "/admin" + "/" + year + "/" + month + "/";
|
|
|
|
|
+ fileDir = fileDir + System.nanoTime() + "/";
|
|
|
|
|
+ String fileName = hwElectronicContract.getContractNo() + ".pdf";
|
|
|
|
|
+ OSSClientUtil ossUtil = new OSSClientUtil();
|
|
|
|
|
+ ossUtil.uploadFile2OSS(inputStream, fileDir, fileName);
|
|
|
|
|
+
|
|
|
|
|
+ //上传后的文件路径
|
|
|
|
|
+ String filePath = "/" + fileDir + fileName;
|
|
|
|
|
+ hwOrder.setWorkContract(filePath);
|
|
|
|
|
+ hwOrderService.updateById(hwOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|