Files
Arbitrate-Backend/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java
T

129 lines
6.3 KiB
Java
Raw Normal View History

2023-10-12 17:20:40 +08:00
package com.ruoyi.wisdomarbitrate.utils;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.constant.CaseApplicationConstants;
2023-10-15 10:16:48 +08:00
import com.ruoyi.common.constant.FileTransformation;
2023-10-12 17:20:40 +08:00
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
import com.ruoyi.common.exception.EsignDemoException;
2023-10-13 14:05:12 +08:00
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
2023-10-12 17:20:40 +08:00
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
2023-10-15 10:16:48 +08:00
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
2023-10-13 10:57:45 +08:00
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
2023-10-12 17:20:40 +08:00
import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper;
2023-10-15 10:16:48 +08:00
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
2023-10-13 10:57:45 +08:00
import com.ruoyi.wisdomarbitrate.mapper.SealSignRecordMapper;
2023-10-12 17:20:40 +08:00
import org.springframework.beans.factory.annotation.Autowired;
2023-10-13 10:57:45 +08:00
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
2023-10-15 15:53:37 +08:00
import org.springframework.transaction.annotation.Transactional;
2023-10-12 17:20:40 +08:00
2023-10-15 10:16:48 +08:00
import java.time.LocalDate;
2023-10-13 10:57:45 +08:00
import java.util.List;
2023-10-15 10:16:48 +08:00
import java.util.UUID;
2023-10-13 10:57:45 +08:00
@Component
2023-10-12 17:20:40 +08:00
public class FixSelectFlowDetailUtils {
@Autowired
private CaseApplicationMapper caseApplicationMapper;
2023-10-13 10:57:45 +08:00
@Autowired
private SealSignRecordMapper sealSignRecordMapper;
2023-10-15 10:16:48 +08:00
@Autowired
private CaseAttachMapper caseAttachMapper;
2023-10-12 17:20:40 +08:00
2023-10-15 15:53:37 +08:00
@Scheduled(cron = "0/3 * * * * ?")
@Transactional
2023-10-12 17:20:40 +08:00
public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException {
Gson gson = new Gson();
2023-10-13 10:57:45 +08:00
SealSignRecord sealSignRecordselect = new SealSignRecord();
2023-10-13 14:05:12 +08:00
// sealSignRecordselect.setSignFlowStatus(1);
2023-10-13 10:57:45 +08:00
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecordbyStat(sealSignRecordselect);
if(sealSignRecords!=null&&sealSignRecords.size()>0){
for (int i = 0; i < sealSignRecords.size(); i++) {
SealSignRecord sealSignRecord = sealSignRecords.get(i);
EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord);
JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
Integer psnsignStatus = null;
Integer orgsignStatus = null;
for (int j = 0; j < signersArray.size(); j++) {
JsonObject signerObject = (JsonObject)signersArray.get(j);
2023-10-12 17:20:40 +08:00
2023-10-13 10:57:45 +08:00
if(!(signerObject.get("psnSigner").toString()).equals("null")){
JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
if(psnSignerData!=null){
psnsignStatus = signerObject.get("signStatus").getAsInt();
}
}
if(!(signerObject.get("orgSigner").toString()).equals("null")){
JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
if(orgSignerData!=null){
orgsignStatus = signerObject.get("signStatus").getAsInt();
}
2023-10-12 17:20:40 +08:00
}
}
2023-10-13 10:57:45 +08:00
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==1)){
//更新立案申请状态为待用印
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(sealSignRecord.getCaseAppliId());
2023-10-13 14:05:12 +08:00
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
if(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.SIGN_ARBITRATION){
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
caseApplicationMapper.submitCaseApplication(caseApplication);
//修改"签署用印记录表"的状态为待用印
sealSignRecord.setSignFlowStatus(2);
sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
}
2023-10-13 10:57:45 +08:00
}
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==2)){
//更新立案申请状态为待送达
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(sealSignRecord.getCaseAppliId());
2023-10-13 14:05:12 +08:00
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
if(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.ARBITRATED_SEAL){
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
//下载审核完成的裁决书,
String signFlowId = sealSignRecord.getSignFlowid();
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
if(filesArray!=null&&filesArray.size()>0){
JsonObject fileObject = (JsonObject)filesArray.get(0);
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
//修改"签署用印记录表"的状态为签署完成
sealSignRecord.setSignFlowStatus(3);
2023-10-15 10:16:48 +08:00
sealSignRecord.setFileDownloadUrl(fileDownloadUrl.substring(1,fileDownloadUrl.length()-1));
2023-10-13 14:05:12 +08:00
sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
2023-10-15 10:16:48 +08:00
String filearbitraUrl = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
caseApplication.setFilearbitraUrl(filearbitraUrl);
caseApplicationMapper.submitCaseApplication(caseApplication);
2023-10-13 10:57:45 +08:00
2023-10-13 14:05:12 +08:00
}
}
2023-10-13 10:57:45 +08:00
}
2023-10-12 17:20:40 +08:00
}
}
2023-10-13 10:57:45 +08:00
2023-10-12 17:20:40 +08:00
}
}