diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java index 5301908..0d1b51b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java @@ -8,6 +8,7 @@ import com.ruoyi.common.enums.EsignRequestType; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.utils.bean.SealSignRecord; +import java.util.HashMap; import java.util.Map; public class SignAward { @@ -56,11 +57,11 @@ public class SignAward { // System.err.println("流程id:"+signFlowId); /* 获取文件签名印章位置*/ - EsignHttpResponse positions = getPositions(sealSignRecord); - JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class); - JsonObject positionsData = positionsJsonObject.getAsJsonObject("data"); - JsonArray keywordPositions = positionsData.get("keywordPositions").getAsJsonArray(); - System.out.println("获取文件签名印章位置:" +keywordPositions.toString()); +// EsignHttpResponse positions = getPositions(sealSignRecord); +// JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class); +// JsonObject positionsData = positionsJsonObject.getAsJsonObject("data"); +// JsonArray keywordPositions = positionsData.get("keywordPositions").getAsJsonArray(); +// System.out.println("获取文件签名印章位置:" +keywordPositions.toString()); // String signFlowId = "c9955453716344f9971d308abdc13464"; //获取合同文件签名链接 @@ -82,13 +83,38 @@ public class SignAward { // System.out.println("签署短链接:"+sealUrl); //查询签署流程详情 -// EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord); -// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class); -// System.out.println(signFlowDetailJsonObject); + EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord); + JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class); + JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data"); + JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray(); + for (int i = 0; i < signersArray.size(); i++) { + JsonObject signerObject = (JsonObject)signersArray.get(i); + Integer psnsignStatus ; + Integer orgsignStatus ; + if(!(signerObject.get("psnSigner").toString()).equals("null")){ + JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner"); + if(psnSignerData!=null){ + psnsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setPsnsignStatus(psnsignStatus); + } + } + if(!(signerObject.get("orgSigner").toString()).equals("null")){ + JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner"); + if(orgSignerData!=null){ + orgsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setOrgsignStatus(orgsignStatus); + } + + } + + } + System.out.println(signFlowDetailJsonObject); } + + /** * 查询签署流程详情 * @return diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java index e0bffa9..1a25561 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java @@ -25,6 +25,26 @@ public class SealSignRecord extends BaseEntity { private String orgnizeNamepsnName; /** 流程状态 */ private Integer signFlowStatus; + /** 签名状态 */ + private Integer psnsignStatus; + /** 用印状态 */ + private Integer orgsignStatus; + + public Integer getPsnsignStatus() { + return psnsignStatus; + } + + public void setPsnsignStatus(Integer psnsignStatus) { + this.psnsignStatus = psnsignStatus; + } + + public Integer getOrgsignStatus() { + return orgsignStatus; + } + + public void setOrgsignStatus(Integer orgsignStatus) { + this.orgsignStatus = orgsignStatus; + } public Integer getSignFlowStatus() { return signFlowStatus; diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java new file mode 100644 index 0000000..98be91c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java @@ -0,0 +1,6 @@ +package com.ruoyi.wisdomarbitrate.mapper; + +public interface SealSignRecordMapper { + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java index 344fc9d..e8aed6c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java @@ -4,12 +4,17 @@ package com.ruoyi.wisdomarbitrate.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.CaseApplicationConstants; +import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.common.utils.SignAward; +import com.ruoyi.common.utils.bean.SealSignRecord; import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SmsUtils; @@ -41,7 +46,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { private CaseAffiliateMapper caseAffiliateMapper; @Autowired - private SysUserMapper sysUserMapper; + private ArbitratorMapper arbitratorMapper; @Autowired private ArbitrateRecordMapper arbitrateRecordMapper; @@ -89,7 +94,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseAffiliate.setCaseAppliId(caseApplication.getId()); if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) { // 将组织机构id设为申请人名称 - if (deptMap.containsKey(caseAffiliate.getName())) { + if (deptMap.containsKey(caseApplication.getName())) { caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName()))); } else { // 如果不存在则新增 @@ -172,7 +177,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseAffiliate.setCaseAppliId(caseApplication.getId()); if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) { // 将组织机构id设为申请人名称 - if (deptMap.containsKey(caseAffiliate.getName())) { + if (deptMap.containsKey(caseApplication.getName())) { caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName()))); } else { // 如果不存在则新增 @@ -656,7 +661,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { rows = caseApplicationMapper.submitCaseApplication(caseApplication); }else { List arbitrators = caseApplication.getArbitrators(); - // 仲裁员信息 if(arbitrators!=null&&arbitrators.size()>0){ List ids = arbitrators.stream().map(Arbitrator::getId).collect(Collectors.toList()); List arbitratorNames = arbitrators.stream().map(Arbitrator::getArbitratorName).collect(Collectors.toList()); @@ -807,32 +811,27 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { String hearDatestr = dateFormat.format(hearDate); String arbitratorId = caseApplicationselect.getArbitratorId(); -// List arbitratorList = new ArrayList<>(); + List arbitratorList = new ArrayList<>(); if(StringUtils.isNotEmpty(arbitratorId)){ String[] idStrList = arbitratorId.split(","); List idList = new ArrayList<>(); for(int i = 0;i < idStrList.length;i ++ ){ idList.add(Long.parseLong(idStrList[i])); } -// - - // 查询仲裁员电话号 - List userList= sysUserMapper.selectUserListByIds(idList); - if(CollectionUtil.isNotEmpty(userList)) { - for (SysUser user : userList) { - - - //给仲裁员发送短信通知 - request.setPhone(user.getPhonenumber()); - // 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。 - String name = user.getNickName(); - request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr}); - SmsUtils.sendSms(request); - - } - } - - + Arbitrator arbitrator = new Arbitrator(); + arbitrator.setIdList(idList); + arbitratorList = arbitratorMapper.selectArbitratorList(arbitrator); + if(arbitratorList!=null) { + for (int i = 0; i < arbitratorList.size(); i++) { + Arbitrator arbitratorselect = arbitratorList.get(i); + //给仲裁员发送短信通知 + request.setPhone(arbitratorselect.getTelephone()); + // 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。 + String name = arbitratorselect.getArbitratorName(); + request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr}); + SmsUtils.sendSms(request); + } + } } CaseAffiliate caseAffiliate = new CaseAffiliate(); @@ -854,9 +853,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if(StrUtil.isNotEmpty(caseAffiliateselect.getName())&&deptMap.containsKey(caseAffiliateselect.getName())){ caseAffiliateselect.setName(deptMap.get(caseAffiliateselect.getName())); } - + caseAffiliateselect.setName(caseAffiliateselect.getName());; } - caseAffiliateselect.setName(caseAffiliateselect.getName());; //给申请人、被申请人发送短信通知 request.setPhone(caseAffiliateselect.getContactTelphone()); // 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。 @@ -993,4 +991,66 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseApplicationNew.setFeePayable(caseApplicationinsertDiffer.getFeePayable()); } + @Transactional + public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException { + + Gson gson = new Gson(); + + + + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setSignFlowid("41e6732b48c54c63a91b2379c352212d"); + EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord); + JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class); + JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data"); + JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray(); + for (int i = 0; i < signersArray.size(); i++) { + JsonObject signerObject = (JsonObject)signersArray.get(i); + Integer psnsignStatus ; + Integer orgsignStatus ; + if(!(signerObject.get("psnSigner").toString()).equals("null")){ + JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner"); + if(psnSignerData!=null){ + psnsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setPsnsignStatus(psnsignStatus); + + if(psnsignStatus.intValue()==2){ + //更新立案申请状态为待用印 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL); + caseApplicationMapper.submitCaseApplication(caseApplication); + + //修改"签署用印记录表"的状态为待用印 + + } + } + } + if(!(signerObject.get("orgSigner").toString()).equals("null")){ + JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner"); + if(orgSignerData!=null){ + orgsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setOrgsignStatus(orgsignStatus); + //更新立案申请状态为待送达 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY); + caseApplicationMapper.submitCaseApplication(caseApplication); + + //修改"签署用印记录表"的状态为签署完成 + + //下载审核完成的裁决书, +// SaaSAPIFileUtils.fileDownloadUrl(); + + } + + } + + } + + } + + + + + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java new file mode 100644 index 0000000..37c64d0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java @@ -0,0 +1,75 @@ +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; +import com.ruoyi.common.core.domain.entity.EsignHttpResponse; +import com.ruoyi.common.exception.EsignDemoException; +import com.ruoyi.common.utils.SignAward; +import com.ruoyi.common.utils.bean.SealSignRecord; +import com.ruoyi.wisdomarbitrate.domain.CaseApplication; +import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper; +import org.springframework.beans.factory.annotation.Autowired; + +public class FixSelectFlowDetailUtils { + + @Autowired + private CaseApplicationMapper caseApplicationMapper; + + + public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException { + + Gson gson = new Gson(); + + + + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setSignFlowid("41e6732b48c54c63a91b2379c352212d"); + EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord); + JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class); + JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data"); + JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray(); + for (int i = 0; i < signersArray.size(); i++) { + JsonObject signerObject = (JsonObject)signersArray.get(i); + Integer psnsignStatus ; + Integer orgsignStatus ; + if(!(signerObject.get("psnSigner").toString()).equals("null")){ + JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner"); + if(psnSignerData!=null){ + psnsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setPsnsignStatus(psnsignStatus); + + if(psnsignStatus.intValue()==2){ + //更新立案申请状态为待用印 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL); + caseApplicationMapper.submitCaseApplication(caseApplication); + + + + } + + + + } + } + if(!(signerObject.get("orgSigner").toString()).equals("null")){ + JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner"); + if(orgSignerData!=null){ + orgsignStatus = signerObject.get("signStatus").getAsInt(); + sealSignRecord.setOrgsignStatus(orgsignStatus); + } + + } + + } + + } + + + + + + +} diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml new file mode 100644 index 0000000..43b0ac9 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file