|
|
@@ -1,144 +1,138 @@
|
|
|
-package org.jeecg.modules.ordermanager.task;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.fdd.api.client.res.RestResult;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.jeecg.common.util.DateUtils;
|
|
|
-import org.jeecg.modules.hwcontract.entity.HwElectronicContract;
|
|
|
-import org.jeecg.modules.hwcontract.service.IHwElectronicContractService;
|
|
|
-import org.jeecg.modules.ordermanager.entity.HwOrder;
|
|
|
-import org.jeecg.modules.ordermanager.entity.HwOrderProcessDetail;
|
|
|
-import org.jeecg.modules.ordermanager.mapper.HwOrderMapper;
|
|
|
-import org.jeecg.modules.ordermanager.service.IHwOrderProcessDetailService;
|
|
|
-import org.jeecg.modules.ordermanager.service.IHwOrderService;
|
|
|
-import org.jeecg.modules.util.ContractConst;
|
|
|
-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 javax.annotation.Resource;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-/**
|
|
|
- * @Author: zwq
|
|
|
- * @Description:电子合同轮询定时器-查询合同签署状态详情
|
|
|
- * @Date: Create in 20:21 2019/11/14
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@Component
|
|
|
-@Service
|
|
|
-public class ContractJob implements Job {
|
|
|
- @Autowired
|
|
|
- private IHwElectronicContractService hwElectronicContractService;
|
|
|
- @Autowired
|
|
|
- private ContractUtil contractUtil;
|
|
|
- @Autowired
|
|
|
- private IHwOrderService hwOrderService;
|
|
|
- @Autowired
|
|
|
- private IHwOrderProcessDetailService hwOrderProcessDetailService;
|
|
|
- @Resource
|
|
|
- private HwOrderMapper hwOrderMapper;
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
|
- log.info(String.format(" 查询电子合同状态定时器! 时间:" + DateUtils.getTimestamp()));
|
|
|
- //电子合同表未到终态(1.待他人签署;6.已生成未发起)
|
|
|
- List<HwElectronicContract> hwElectronicContractList = hwElectronicContractService.findListForStatus();
|
|
|
- for (int i = 0; i < hwElectronicContractList.size(); i++) {
|
|
|
- HwElectronicContract hwElectronicContract = hwElectronicContractList.get(i);
|
|
|
- //查询合同状态
|
|
|
- RestResult result = contractUtil.signDetail(hwElectronicContract.getContractNo());
|
|
|
- if (ContractConst.CODE_1.equals(result.getCode())) {
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(result.getData().toString());
|
|
|
- System.out.println("status=========" + jsonObject.getString("status"));
|
|
|
- //更新订单电子合同状态
|
|
|
- String status = jsonObject.getString("status");
|
|
|
- //签署方列表信息
|
|
|
- String contractSignerList = jsonObject.getString("contractSignerList");
|
|
|
- JSONArray jsonArray = JSONArray.parseArray(contractSignerList);
|
|
|
- for (int k = 0; k < jsonArray.size(); k++) {
|
|
|
- JSONObject jsonObject1 = jsonArray.getJSONObject(k);
|
|
|
- System.out.println("signerRole=========" + jsonObject1.getString("signerRole"));
|
|
|
- System.out.println("signStatus=========" + jsonObject1.getString("signStatus"));
|
|
|
- Integer isSender = jsonObject1.getInteger("isSender");
|
|
|
- //签署人角色,1-个人,2-企业, 3-个人代表企业
|
|
|
- Integer signerRole = jsonObject1.getInteger("signerRole");
|
|
|
- //签署状态 -1 不需要签署,0 待签,1 已 签,2 已驳回 ,3 已转发
|
|
|
- Integer signStatus = jsonObject1.getInteger("signStatus");
|
|
|
- //非发起人 && 状态为待签
|
|
|
- if (isSender != 1 && "1".equals(status)) {
|
|
|
- if (signerRole == 1 && signStatus == 0) {
|
|
|
- //个人未签
|
|
|
- status = "6";
|
|
|
- break;
|
|
|
- } else if (signerRole == 2 && signStatus == 0) {
|
|
|
- //企业未签
|
|
|
- status = "1";
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- QueryWrapper<HwOrder> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("electronic_contract_id", hwElectronicContract.getId());
|
|
|
- List<HwOrder> hwOrderList = hwOrderService.list(queryWrapper);
|
|
|
- HwOrder hwOrder = new HwOrder();
|
|
|
- if (hwOrderList.size() > 0) {
|
|
|
- hwOrder = hwOrderList.get(0);
|
|
|
- hwOrder.setElectronicContractStatus(Integer.parseInt(status));
|
|
|
- hwOrderService.updateById(hwOrder);
|
|
|
- }
|
|
|
- //更新电子合同表
|
|
|
- hwElectronicContract.setStatus(Integer.parseInt(status));
|
|
|
- hwElectronicContractService.updateById(hwElectronicContract);
|
|
|
- //状态:待他人签署,企业自动签署
|
|
|
- if ("1".equals(status)) {
|
|
|
- RestResult restResult = contractUtil.autoSign(hwElectronicContract);
|
|
|
- if (ContractConst.CODE_1.equals(restResult.getCode())) {
|
|
|
- JSONObject jsonObjectAuto = JSONObject.parseObject(restResult.getData().toString());
|
|
|
- System.out.println("downloadUrl===========" + jsonObjectAuto.getString("downloadUrl"));
|
|
|
- System.out.println("viewUrl===========" + jsonObjectAuto.getString("viewUrl"));
|
|
|
- //更新电子合同表
|
|
|
- hwElectronicContract.setStatus(2);
|
|
|
- hwElectronicContract.setDownloadUrl(jsonObjectAuto.getString("downloadUrl"));
|
|
|
- hwElectronicContract.setViewUrl(jsonObjectAuto.getString("downloadUrl"));
|
|
|
- hwElectronicContractService.updateById(hwElectronicContract);
|
|
|
- //确认订单
|
|
|
- hwOrder.setStatus(2);
|
|
|
- hwOrder.setElectronicContractStatus(2);
|
|
|
- hwOrder.setWorkContract(jsonObjectAuto.getString("downloadUrl"));
|
|
|
- hwOrderService.updateById(hwOrder);
|
|
|
- //同步订单明细表
|
|
|
- HwOrderProcessDetail hwOrderProcessDetail = new HwOrderProcessDetail();
|
|
|
- hwOrderProcessDetail.setOrderId(hwOrder.getId());
|
|
|
- hwOrderProcessDetail.setRequirementId(hwOrder.getRequirementId());
|
|
|
- hwOrderProcessDetail.setUserId(hwOrder.getUserId());
|
|
|
- hwOrderProcessDetail.setStatus(2);
|
|
|
- //如果是分期结算
|
|
|
- hwOrder = hwOrderMapper.getOrder(String.valueOf(hwOrder.getId()));
|
|
|
- if (hwOrder.getHwRequirement().getSettlementMethod() == 1) {
|
|
|
- int count = hwOrderProcessDetailService.getCountByOrderId(hwOrder.getId());
|
|
|
- //分期期数大于当前服务期数
|
|
|
- if (hwOrder.getHwRequirement().getStage() > count) {
|
|
|
- hwOrderProcessDetail.setServiceStage(count + 1);
|
|
|
- }
|
|
|
- }
|
|
|
- hwOrderProcessDetail.setGenerateTime(new Date());
|
|
|
- hwOrderProcessDetail.setGenerateBy(hwOrder.getCreateBy());
|
|
|
- hwOrderProcessDetail.setSysOrgCode(hwOrder.getSysOrgCode());
|
|
|
- hwOrderProcessDetailService.saveDetail(hwOrderProcessDetail);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+package org.jeecg.modules.ordermanager.task;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.fdd.api.client.res.RestResult;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jeecg.common.util.DateUtils;
|
|
|
+import org.jeecg.modules.hwcontract.entity.HwElectronicContract;
|
|
|
+import org.jeecg.modules.hwcontract.service.IHwElectronicContractService;
|
|
|
+import org.jeecg.modules.ordermanager.entity.HwOrder;
|
|
|
+import org.jeecg.modules.ordermanager.entity.HwOrderProcessDetail;
|
|
|
+import org.jeecg.modules.ordermanager.mapper.HwOrderMapper;
|
|
|
+import org.jeecg.modules.ordermanager.service.IHwOrderProcessDetailService;
|
|
|
+import org.jeecg.modules.ordermanager.service.IHwOrderService;
|
|
|
+import org.jeecg.modules.util.ContractConst;
|
|
|
+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 javax.annotation.Resource;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Author: zwq
|
|
|
+ * @Description:电子合同轮询定时器-查询合同签署状态详情
|
|
|
+ * @Date: Create in 20:21 2019/11/14
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+@Service
|
|
|
+public class ContractJob implements Job {
|
|
|
+ @Autowired
|
|
|
+ private IHwElectronicContractService hwElectronicContractService;
|
|
|
+ @Autowired
|
|
|
+ private ContractUtil contractUtil;
|
|
|
+ @Autowired
|
|
|
+ private IHwOrderService hwOrderService;
|
|
|
+ @Autowired
|
|
|
+ private IHwOrderProcessDetailService hwOrderProcessDetailService;
|
|
|
+ @Resource
|
|
|
+ private HwOrderMapper hwOrderMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
|
+ log.info(String.format(" 查询电子合同状态定时器! 时间:" + DateUtils.getTimestamp()));
|
|
|
+ //电子合同表未到终态(1.待他人签署;6.已生成未发起)
|
|
|
+ List<HwElectronicContract> hwElectronicContractList = hwElectronicContractService.findListForStatus();
|
|
|
+ for (int i = 0; i < hwElectronicContractList.size(); i++) {
|
|
|
+ HwElectronicContract hwElectronicContract = hwElectronicContractList.get(i);
|
|
|
+ //查询合同状态
|
|
|
+ RestResult result = contractUtil.signDetail(hwElectronicContract.getContractNo());
|
|
|
+ if (ContractConst.CODE_1.equals(result.getCode())) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(result.getData().toString());
|
|
|
+ System.out.println("status=========" + jsonObject.getString("status"));
|
|
|
+ //更新订单电子合同状态
|
|
|
+ String status = jsonObject.getString("status");
|
|
|
+ //签署方列表信息
|
|
|
+ String contractSignerList = jsonObject.getString("contractSignerList");
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(contractSignerList);
|
|
|
+ for (int k = 0; k < jsonArray.size(); k++) {
|
|
|
+ JSONObject jsonObject1 = jsonArray.getJSONObject(k);
|
|
|
+ System.out.println("signerRole=========" + jsonObject1.getString("signerRole"));
|
|
|
+ System.out.println("signStatus=========" + jsonObject1.getString("signStatus"));
|
|
|
+ Integer isSender = jsonObject1.getInteger("isSender");
|
|
|
+ //签署人角色,1-个人,2-企业, 3-个人代表企业
|
|
|
+ Integer signerRole = jsonObject1.getInteger("signerRole");
|
|
|
+ //签署状态 -1 不需要签署,0 待签,1 已 签,2 已驳回 ,3 已转发
|
|
|
+ Integer signStatus = jsonObject1.getInteger("signStatus");
|
|
|
+ //非发起人 && 状态为待签
|
|
|
+ if (isSender != 1 && "1".equals(status)) {
|
|
|
+ if (signerRole == 1 && signStatus == 0) {
|
|
|
+ //个人未签
|
|
|
+ status = "6";
|
|
|
+ break;
|
|
|
+ } else if (signerRole == 2 && signStatus == 0) {
|
|
|
+ //企业未签
|
|
|
+ status = "1";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ QueryWrapper<HwOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("electronic_contract_id", hwElectronicContract.getId());
|
|
|
+ List<HwOrder> hwOrderList = hwOrderService.list(queryWrapper);
|
|
|
+ HwOrder hwOrder = new HwOrder();
|
|
|
+ if (hwOrderList.size() > 0) {
|
|
|
+ hwOrder = hwOrderList.get(0);
|
|
|
+ }
|
|
|
+ //状态:待他人签署,企业自动签署
|
|
|
+ if ("1".equals(status)) {
|
|
|
+ RestResult restResult = contractUtil.autoSign(hwElectronicContract);
|
|
|
+ if (ContractConst.CODE_1.equals(restResult.getCode())) {
|
|
|
+ JSONObject jsonObjectAuto = JSONObject.parseObject(restResult.getData().toString());
|
|
|
+ System.out.println("downloadUrl===========" + jsonObjectAuto.getString("downloadUrl"));
|
|
|
+ System.out.println("viewUrl===========" + jsonObjectAuto.getString("viewUrl"));
|
|
|
+ //更新电子合同表
|
|
|
+ hwElectronicContract.setStatus(2);
|
|
|
+ hwElectronicContract.setDownloadUrl(jsonObjectAuto.getString("downloadUrl"));
|
|
|
+ hwElectronicContract.setViewUrl(jsonObjectAuto.getString("downloadUrl"));
|
|
|
+ hwElectronicContractService.updateById(hwElectronicContract);
|
|
|
+ //确认订单
|
|
|
+ hwOrder.setStatus(2);
|
|
|
+ hwOrder.setElectronicContractStatus(2);
|
|
|
+ hwOrder.setWorkContract(jsonObjectAuto.getString("downloadUrl"));
|
|
|
+ hwOrderService.updateById(hwOrder);
|
|
|
+ //同步订单明细表
|
|
|
+ HwOrderProcessDetail hwOrderProcessDetail = new HwOrderProcessDetail();
|
|
|
+ hwOrderProcessDetail.setOrderId(hwOrder.getId());
|
|
|
+ hwOrderProcessDetail.setRequirementId(hwOrder.getRequirementId());
|
|
|
+ hwOrderProcessDetail.setUserId(hwOrder.getUserId());
|
|
|
+ hwOrderProcessDetail.setStatus(2);
|
|
|
+ //如果是分期结算
|
|
|
+ hwOrder = hwOrderMapper.getOrder(String.valueOf(hwOrder.getId()));
|
|
|
+ if (hwOrder.getHwRequirement().getSettlementMethod() == 1) {
|
|
|
+ int count = hwOrderProcessDetailService.getCountByOrderId(hwOrder.getId());
|
|
|
+ //分期期数大于当前服务期数
|
|
|
+ if (hwOrder.getHwRequirement().getStage() > count) {
|
|
|
+ hwOrderProcessDetail.setServiceStage(count + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ hwOrderProcessDetail.setGenerateTime(new Date());
|
|
|
+ hwOrderProcessDetail.setGenerateBy(hwOrder.getCreateBy());
|
|
|
+ hwOrderProcessDetail.setSysOrgCode(hwOrder.getSysOrgCode());
|
|
|
+ hwOrderProcessDetailService.saveDetail(hwOrderProcessDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|