From c7fad71ae24b596996b46917f4c38c6967a6a7ed Mon Sep 17 00:00:00 2001 From: hejinbo Date: Fri, 13 Oct 2023 10:38:42 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/SealSignRecordMapper.java | 1 - .../service/impl/CaseApplicationServiceImpl.java | 16 +++++++++------- .../wisdomarbitrate/SealSignRecordMapper.xml | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) 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 index 3683ba4..082d930 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java @@ -1,7 +1,6 @@ package com.ruoyi.wisdomarbitrate.mapper; import com.ruoyi.common.utils.bean.SealSignRecord; -import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord; import org.apache.ibatis.annotations.Mapper; @Mapper 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 2a37485..8b9698b 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 @@ -12,6 +12,7 @@ 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.AjaxResult; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.core.domain.entity.SysDept; @@ -723,8 +724,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { for (CaseAttach caseAttach : caseAttachList) { if (caseAttach.getAnnexType() == 3) { String annexPath = caseAttach.getAnnexPath(); - //String path = "/home/ruoyi/" + annexPath; - String path ="D:\\home\\仲裁裁决书模板.docx"; + String path = "/home/ruoyi/" + annexPath; + System.out.println("这是查询到的裁决书路径"+path); + //String path ="D:\\home\\仲裁裁决书模板.docx"; //获取文件上传地址 EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path); String body = response.getBody(); @@ -751,7 +753,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { Gson gson = new Gson(); JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class); JsonObject positionsData = positionsJsonObject.getAsJsonObject("data"); - String keywordPositions = positionsData.get("keywordPositions").getAsString(); + String keywordPositions = positionsData.get("keywordPositions").toString(); //发起签署 sealSignRecord.setFilename(fileName); String arbitratorId = caseApplication2.getArbitratorId(); @@ -764,8 +766,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { sealSignRecord.setPensonName(sysUser.getNickName()); } sealSignRecord.setOrgnizeName("西安云美电子科技有限公司"); - sealSignRecord.setOrgnizeNamePsnAccount("秦桃则"); - sealSignRecord.setOrgnizeName("西安云美电子科技有限公司"); sealSignRecord.setOrgnizeNamePsnAccount("17691338406"); sealSignRecord.setOrgnizeNamepsnName("韩超勃"); //解析文件签名印章位置 @@ -773,7 +773,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject3 = jsonArray.getJSONObject(i); String keyword = jsonObject3.getString("keyword"); - if (keyword.equals("仲裁员")){ + if (keyword.equals("仲裁员:")){ //签名 JSONArray positionsArray = jsonObject3.getJSONArray("positions"); // 遍历 positionsArray 中的每个元素 @@ -807,7 +807,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { } EsignHttpResponse response3 = SignAward.createByFile(sealSignRecord); JSONObject jsonObject3 = JSONObject.parseObject(response3.getBody()); - if (jsonObject1.getIntValue("code")==0){ + if (jsonObject3.getIntValue("code")==0){ //获取签署流程ID JSONObject data1 = jsonObject3.getJSONObject("data"); String signFlowId = data1.getString("signFlowId"); @@ -816,6 +816,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { sealSignRecord.setSignFlowid(signFlowId); sealSignRecord.setSignFlowStatus(1);//待签名 sealSignRecordMapper.insertSealSignRecord(sealSignRecord); + }else { + throw new ServiceException("发起签署流程失败,请检查参数是否有误"); } } } diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml index bb0690e..8c48be5 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -5,7 +5,7 @@ INSERT INTO seal_sign_record (file_id, file_name, sign_flow_id , penson_account - ,penson_name,orgnize_name,org_name_psn_acc,org_name_psn_name,position_page_psn + ,penson_name,orgnize_name,orgn_name_psn_acc,orgn_name_psn_name,position_pagepsn ,position_xpsn,position_ypsn,position_pageorg,position_xorg,position_yorg,case_appli_id ,sign_flow_status) VALUES (#{fileid}, #{filename}, #{signFlowid},#{pensonAccount},#{pensonName},#{orgnizeName} From 3dcf07881abf02c0497e1621cceda944b3ccd312 Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Fri, 13 Oct 2023 10:57:45 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/RuoYiApplication.java | 2 + .../CaseApplicationController.java | 22 +++ .../domain}/SealSignRecord.java | 34 +++- .../mapper/SealSignRecordMapper.java | 10 ++ .../service/ICaseApplicationService.java | 6 + .../impl/CaseApplicationServiceImpl.java | 163 ++++++++++++------ .../utils/FixSelectFlowDetailUtils.java | 146 ++++++++++++---- .../wisdomarbitrate}/utils/SignAward.java | 9 +- .../wisdomarbitrate/SealSignRecordMapper.xml | 37 ++++ 9 files changed, 333 insertions(+), 96 deletions(-) rename {ruoyi-common/src/main/java/com/ruoyi/common/utils/bean => ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain}/SealSignRecord.java (87%) rename {ruoyi-common/src/main/java/com/ruoyi/common => ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate}/utils/SignAward.java (98%) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 32eb6f1..775f772 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -3,6 +3,7 @@ package com.ruoyi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.scheduling.annotation.EnableScheduling; /** * 启动程序 @@ -10,6 +11,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; * @author ruoyi */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) +@EnableScheduling public class RuoYiApplication { public static void main(String[] args) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index de992f1..7e310ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -6,7 +6,9 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; +import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService; import org.springframework.beans.factory.annotation.Autowired; @@ -95,6 +97,26 @@ public class CaseApplicationController extends BaseController { return success(caseApplicationselect); } + /** + * 查询签名链接 + */ + @PreAuthorize("@ss.hasPermi('caseManagement:list:selectSignUrl')") + @PostMapping("/selectSignUrl") + public AjaxResult selectSignUrl(@Validated @RequestBody CaseApplication caseApplication) throws EsignDemoException { + SealSignRecord sealSignRecordselect = caseApplicationService.selectSignUrl(caseApplication); + return success(sealSignRecordselect); + } + + /** + * 查询用印链接 + */ + @PreAuthorize("@ss.hasPermi('caseManagement:list:selectSealUrl')") + @PostMapping("/selectSealUrl") + public AjaxResult selectSealUrl(@Validated @RequestBody CaseApplication caseApplication) throws EsignDemoException { + SealSignRecord sealUrlRecordselect = caseApplicationService.selectSealUrl(caseApplication); + return success(sealUrlRecordselect); + } + /** * 立案申请导入模板下载 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java similarity index 87% rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java rename to ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java index 1a25561..baf67ab 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/SealSignRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils.bean; +package com.ruoyi.wisdomarbitrate.domain; import com.ruoyi.common.core.domain.BaseEntity; @@ -30,6 +30,38 @@ public class SealSignRecord extends BaseEntity { /** 用印状态 */ private Integer orgsignStatus; + /** 签名链接 */ + private String signUrl; + + public String getSignUrl() { + return signUrl; + } + + public void setSignUrl(String signUrl) { + this.signUrl = signUrl; + } + + public String getSealUrl() { + return sealUrl; + } + + public void setSealUrl(String sealUrl) { + this.sealUrl = sealUrl; + } + + /** 用印链接 */ + private String sealUrl; + + private Long caseAppliId; + + public Long getCaseAppliId() { + return caseAppliId; + } + + public void setCaseAppliId(Long caseAppliId) { + this.caseAppliId = caseAppliId; + } + public Integer getPsnsignStatus() { return psnsignStatus; } 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 index 98be91c..157010f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java @@ -1,6 +1,16 @@ package com.ruoyi.wisdomarbitrate.mapper; +import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; + +import java.util.List; + public interface SealSignRecordMapper { + List selectSealSignRecord(SealSignRecord sealSignRecord); + + List selectSealSignRecordbyStat(SealSignRecord sealSignRecord); + + int updataSealSignRecord(SealSignRecord sealSignRecord); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java index 2bcd9a5..0a733e8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java @@ -1,6 +1,8 @@ package com.ruoyi.wisdomarbitrate.service; +import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; +import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; import java.util.List; @@ -40,4 +42,8 @@ public interface ICaseApplicationService { CaseApplication selectCaseApplicationConfirm(CaseApplication caseApplication); String sendRoomNoMessage(SendRoomNoMessageVO messageVO); + + SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException; + + SealSignRecord selectSealUrl(CaseApplication caseApplication) throws EsignDemoException; } 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 e8aed6c..b6d27f6 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 @@ -5,7 +5,6 @@ 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; @@ -13,8 +12,6 @@ import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; -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; @@ -25,6 +22,7 @@ import com.ruoyi.wisdomarbitrate.domain.*; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; import com.ruoyi.wisdomarbitrate.mapper.*; import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService; +import com.ruoyi.wisdomarbitrate.utils.SignAward; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -54,6 +52,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { private CaseAttachMapper caseAttachMapper; @Autowired private SysDeptMapper sysDeptMapper; + + @Autowired + private SealSignRecordMapper sealSignRecordMapper; // 手机号正则 private static final Pattern TELEPHONE_REGX = Pattern.compile("^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$"); @@ -794,6 +795,43 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { return "短信发送成功"; } + @Override + public SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException { + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setCaseAppliId(caseApplication.getId()); + Gson gson = new Gson(); + List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecord); + SealSignRecord sealSignRecordReslt = new SealSignRecord(); + if(sealSignRecords!=null&&sealSignRecords.size()>0){ + SealSignRecord sealSignRecordselect = sealSignRecords.get(0); + EsignHttpResponse signUrl = SignAward.signUrl(sealSignRecordselect); + JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class); + JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data"); + String url = signUrlData.get("url").getAsString(); + sealSignRecordReslt.setSignUrl(url); + } + + return sealSignRecordReslt; + } + + @Override + public SealSignRecord selectSealUrl(CaseApplication caseApplication) throws EsignDemoException { + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setCaseAppliId(caseApplication.getId()); + Gson gson = new Gson(); + List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecord); + SealSignRecord sealSignRecordReslt = new SealSignRecord(); + if(sealSignRecords!=null&&sealSignRecords.size()>0){ + SealSignRecord sealSignRecordselect = sealSignRecords.get(0); + EsignHttpResponse signUrl = SignAward.usesealUrl(sealSignRecordselect); + JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class); + JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data"); + String url = signUrlData.get("url").getAsString(); + sealSignRecordReslt.setSealUrl(url); + } + return sealSignRecordReslt; + } + @Override @Transactional public int pendTralSure(CaseApplication caseApplication) { @@ -991,62 +1029,75 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseApplicationNew.setFeePayable(caseApplicationinsertDiffer.getFeePayable()); } - @Transactional - public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException { - - Gson gson = new Gson(); +// @Transactional +// public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException { +// +// Gson gson = new Gson(); +// +// SealSignRecord sealSignRecordselect = new SealSignRecord(); +// sealSignRecordselect.setSignFlowStatus(1); +// +// List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(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(); +// for (int j = 0; j < signersArray.size(); j++) { +// JsonObject signerObject = (JsonObject)signersArray.get(j); +// 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); +// +// //修改"签署用印记录表"的状态为待用印 +// sealSignRecord.setSignFlowStatus(2); +// sealSignRecordMapper.updataSealSignRecord(sealSignRecord); +// +// } +// } +// } +// 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); +// +// //修改"签署用印记录表"的状态为签署完成 +// sealSignRecord.setSignFlowStatus(3); +// sealSignRecordMapper.updataSealSignRecord(sealSignRecord); +// +// //下载审核完成的裁决书, +//// SaaSAPIFileUtils.fileDownloadUrl(); +// +// } +// +// } +// +// } +// +// } +// +// } - 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 index 37c64d0..0e6c9a7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java @@ -6,65 +6,141 @@ 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.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper; +import com.ruoyi.wisdomarbitrate.mapper.SealSignRecordMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component public class FixSelectFlowDetailUtils { @Autowired private CaseApplicationMapper caseApplicationMapper; + @Autowired + private SealSignRecordMapper sealSignRecordMapper; - + @Scheduled(cron = "0/3 * * * * ?") public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException { - Gson gson = new Gson(); + SealSignRecord sealSignRecordselect = new SealSignRecord(); + sealSignRecordselect.setSignFlowStatus(1); + List 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(); - 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); - + System.out.println("signFlowDetailJsonObject-----------"+signFlowDetailJsonObject.toString()); + Integer psnsignStatus = null; + Integer orgsignStatus = null; + for (int j = 0; j < signersArray.size(); j++) { + JsonObject signerObject = (JsonObject)signersArray.get(j); + 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(); + } } - - - } - } - 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("psnsignStatus-----------"+psnsignStatus); + System.out.println("orgsignStatus-----------"+orgsignStatus); + + if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==1)){ + //更新立案申请状态为待用印 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setId(sealSignRecord.getCaseAppliId()); + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL); + caseApplicationMapper.submitCaseApplication(caseApplication); + + //修改"签署用印记录表"的状态为待用印 + sealSignRecord.setSignFlowStatus(2); + sealSignRecordMapper.updataSealSignRecord(sealSignRecord); + } + if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==2)){ + //更新立案申请状态为待送达 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setId(sealSignRecord.getCaseAppliId()); + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY); + caseApplicationMapper.submitCaseApplication(caseApplication); + + //修改"签署用印记录表"的状态为签署完成 + sealSignRecord.setSignFlowStatus(3); + sealSignRecordMapper.updataSealSignRecord(sealSignRecord); + + //下载审核完成的裁决书, +// SaaSAPIFileUtils.fileDownloadUrl(); + + + + } } } +// 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-common/src/main/java/com/ruoyi/common/utils/SignAward.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java similarity index 98% rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java rename to ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java index 0d1b51b..2480693 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignAward.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils; +package com.ruoyi.wisdomarbitrate.utils; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -6,9 +6,10 @@ import com.google.gson.JsonObject; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.enums.EsignRequestType; import com.ruoyi.common.exception.EsignDemoException; -import com.ruoyi.common.utils.bean.SealSignRecord; +import com.ruoyi.common.utils.EsignApplicaConfig; +import com.ruoyi.common.utils.EsignHttpHelper; +import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; -import java.util.HashMap; import java.util.Map; public class SignAward { @@ -106,8 +107,8 @@ public class SignAward { } } - } + System.out.println(signFlowDetailJsonObject); diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml index 43b0ac9..a406ec2 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -4,8 +4,45 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + update seal_sign_record + + sign_flow_status = #{signFlowStatus} + + where id = #{id} + From 8306ae0f39c0c637a5398626220244971053a39e Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Fri, 13 Oct 2023 11:16:55 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java index 5eff41d..bc6a2f2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java @@ -210,16 +210,7 @@ public class SealSignRecord extends BaseEntity { private double positionXorg; /** 印章位置y坐标 */ private double positionYorg; - /** 案件申请id */ - private Long caseAppliId; - public Long getCaseAppliId() { - return caseAppliId; - } - - public void setCaseAppliId(Long caseAppliId) { - this.caseAppliId = caseAppliId; - } public Long getId() { return id; From 7a2a662c5f1edabe7e3abe0fb4112cf59a19f695 Mon Sep 17 00:00:00 2001 From: hejinbo Date: Fri, 13 Oct 2023 13:27:14 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E8=A3=81=E5=86=B3?= =?UTF-8?q?=E4=B9=A6=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AdjudicationServiceImpl.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java index 929d348..248a06c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java @@ -188,9 +188,12 @@ public class AdjudicationServiceImpl implements IAdjudicationService { if (caseAttach.getAnnexType() == 3) { String annexPath = caseAttach.getAnnexPath(); //File file = new File("/home/ruoyi/" + annexPath); - String path = "/home/ruoyi/" + annexPath; - File file = new File(path); - System.out.println("文件是:" + file); + String path = "/home/ruoyi" + annexPath; + System.out.println("原文件路径是:" + path); + String newpath = path.replace("/", "\\"); + System.out.println("新文件路径是:" + newpath); + File file = new File(newpath); + System.out.println("新文件是:" + file); fileList.add(file); } } @@ -385,21 +388,21 @@ public class AdjudicationServiceImpl implements IAdjudicationService { return AjaxResult.success(archivesDetailVO); } - /*public static void main(String[] args) { + public static void main(String[] args) { try { - List fileList = new ArrayList<>(); - fileList.add(new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx")); - File file = fileList.get(0); +// List fileList = new ArrayList<>(); +// fileList.add(new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx")); + // File file = fileList.get(0);//System.out.println("这是文件"+file); //电子邮件送达 - EmailOutUtil emailOutUtil = new EmailOutUtil(); - JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender(); - if (javaMailSender != null) { - emailOutUtil.sendMessageCarryFile("1154956315@qq.com", "案件裁决书", "您的裁决书已送达,详情请查阅附件", file - , "hjbjava@163.com", javaMailSender); - } +// EmailOutUtil emailOutUtil = new EmailOutUtil(); +// JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender(); +// if (javaMailSender != null) { +// emailOutUtil.sendMessageCarryFile("1154956315@qq.com", "案件裁决书", "您的裁决书已送达,详情请查阅附件", file +// , "hjbjava@163.com", javaMailSender); +// } } catch (MailSendException e) { e.printStackTrace(); } - }*/ + } } \ No newline at end of file From bf92e05cbe41a42a16a64de04ac2da2310ef94c4 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Fri, 13 Oct 2023 13:32:48 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=8F=B7=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1id=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CaseApplicationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b6d27f6..9723a15 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 @@ -786,7 +786,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { //发送短信通知 SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest(); - request.setTemplateId("1948332"); + request.setTemplateId("1952136"); // 1948332 普通短信 开庭审理房间号通知 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请知晓,如非本人操作,请忽略本短信。 request.setPhone(caseAffiliate.getContactTelphone()); request.setTemplateParamSet(new String[]{caseAffiliate.getName(), caseApplicationselect.getCaseNum(), messageVO.getRoomNo()}); From 3c22cec221a5aceb050a7aac3add18f019c5f471 Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Fri, 13 Oct 2023 14:05:12 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/SealSignRecord.java | 11 +++ .../utils/FixSelectFlowDetailUtils.java | 97 ++++++------------- .../wisdomarbitrate/utils/SignAward.java | 61 ------------ .../wisdomarbitrate/SealSignRecordMapper.xml | 3 +- 4 files changed, 45 insertions(+), 127 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java index bc6a2f2..7365e10 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SealSignRecord.java @@ -23,6 +23,17 @@ public class SealSignRecord extends BaseEntity { private String orgnizeNamePsnAccount; /** 机构经办人名称 */ private String orgnizeNamepsnName; + + String fileDownloadUrl; + + public String getFileDownloadUrl() { + return fileDownloadUrl; + } + + public void setFileDownloadUrl(String fileDownloadUrl) { + this.fileDownloadUrl = fileDownloadUrl; + } + /** 流程状态 */ private Integer signFlowStatus; /** 签名状态 */ 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 index 0e6c9a7..e061f5c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java @@ -6,6 +6,7 @@ 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.file.SaaSAPIFileUtils; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper; @@ -29,8 +30,7 @@ public class FixSelectFlowDetailUtils { Gson gson = new Gson(); SealSignRecord sealSignRecordselect = new SealSignRecord(); - sealSignRecordselect.setSignFlowStatus(1); - +// sealSignRecordselect.setSignFlowStatus(1); List sealSignRecords = sealSignRecordMapper.selectSealSignRecordbyStat(sealSignRecordselect); if(sealSignRecords!=null&&sealSignRecords.size()>0){ for (int i = 0; i < sealSignRecords.size(); i++) { @@ -39,9 +39,6 @@ public class FixSelectFlowDetailUtils { JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class); JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data"); JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray(); - - System.out.println("signFlowDetailJsonObject-----------"+signFlowDetailJsonObject.toString()); - Integer psnsignStatus = null; Integer orgsignStatus = null; for (int j = 0; j < signersArray.size(); j++) { @@ -61,84 +58,54 @@ public class FixSelectFlowDetailUtils { } } - - System.out.println("psnsignStatus-----------"+psnsignStatus); - System.out.println("orgsignStatus-----------"+orgsignStatus); - if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==1)){ //更新立案申请状态为待用印 CaseApplication caseApplication = new CaseApplication(); caseApplication.setId(sealSignRecord.getCaseAppliId()); - caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL); - caseApplicationMapper.submitCaseApplication(caseApplication); - //修改"签署用印记录表"的状态为待用印 - sealSignRecord.setSignFlowStatus(2); - sealSignRecordMapper.updataSealSignRecord(sealSignRecord); + 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); + } + + } if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==2)){ //更新立案申请状态为待送达 CaseApplication caseApplication = new CaseApplication(); caseApplication.setId(sealSignRecord.getCaseAppliId()); - caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY); - caseApplicationMapper.submitCaseApplication(caseApplication); - //修改"签署用印记录表"的状态为签署完成 - sealSignRecord.setSignFlowStatus(3); - sealSignRecordMapper.updataSealSignRecord(sealSignRecord); + CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication); + if(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.ARBITRATED_SEAL){ + caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY); + caseApplicationMapper.submitCaseApplication(caseApplication); - //下载审核完成的裁决书, -// SaaSAPIFileUtils.fileDownloadUrl(); + //下载审核完成的裁决书, + 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); + sealSignRecord.setFileDownloadUrl(fileDownloadUrl); + sealSignRecordMapper.updataSealSignRecord(sealSignRecord); - - + } + } } } } -// 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/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java index 2480693..ab82797 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SignAward.java @@ -27,28 +27,6 @@ public class SignAward { SealSignRecord sealSignRecord = new SealSignRecord(); - sealSignRecord.setFileid("a808f1f39a744357a2f018e4ab34c55d"); - sealSignRecord.setFilename("23893bfd3f2249ffa5c82850c11c482e.pdf"); - sealSignRecord.setSignFlowid("41e6732b48c54c63a91b2379c352212d"); - - - sealSignRecord.setPensonAccount("18209231185"); - sealSignRecord.setPensonName("秦桃则"); - sealSignRecord.setOrgnizeName("西安云美电子科技有限公司"); - sealSignRecord.setOrgnizeNamePsnAccount("17691338406"); - sealSignRecord.setOrgnizeNamepsnName("韩超勃"); - sealSignRecord.setPositionPagepsn("2"); - - sealSignRecord.setPositionXpsn(279+20); - sealSignRecord.setPositionYpsn(216.336-20); - - sealSignRecord.setPositionPageorg("2"); - - sealSignRecord.setPositionXorg(342+30); - sealSignRecord.setPositionYorg(185.136); - - - /* 发起签署*/ // EsignHttpResponse createByFile = createByFile(sealSignRecord); @@ -159,15 +137,10 @@ public class SignAward { double positionXorg = sealSignRecord.getPositionXorg(); double positionYorg = sealSignRecord.getPositionYorg(); - String jsonParm = "{\n" + " \"docs\": [\n" + " {\n" + - -// " \"fileId\": \"5bd34a81e8084acaab3287c019e82fe8\",\n" + " \"fileId\": \"" + fileId + "\",\n" + - -// " \"fileName\": \"477470a7741b4536a200c792b6ddf966.pdf\"\n" + " \"fileName\": \"" + fileName + "\"\n" + " }\n" + @@ -194,24 +167,16 @@ public class SignAward { " {\n" + " \"psnSignerInfo\": {\n" + - -// " \"psnAccount\": \"18209231185\",\n" + " \"psnAccount\": \"" + psnAccount + "\",\n" + " \"psnInfo\": {\n" + - -// " \"psnName\": \"秦桃则\"\n" + " \"psnName\": \"" + psnName + "\"\n" + " }\n" + - " },\n" + - - " \"signFields\": [\n" + " {\n" + -// " \"fileId\": \"5bd34a81e8084acaab3287c019e82fe8\",\n" + " \"fileId\": \"" + fileId + "\",\n" + " \"normalSignFieldConfig\": {\n" + @@ -219,16 +184,9 @@ public class SignAward { " \"freeMode\": false,\n" + " \"movableSignField\": false,\n" + " \"signFieldPosition\": {\n" + - -// " \"positionPage\": \"2\",\n" + " \"positionPage\": \"" + positionPagepsn + "\",\n" + - -// " \"positionX\": 310.0,\n" + " \"positionX\": " + positionXpsn + ",\n" + - -// " \"positionY\": 247.536\n" + " \"positionY\": " + positionYpsn + "\n" + - " },\n" + " \"signFieldStyle\": 1\n" + " },\n" + @@ -241,19 +199,12 @@ public class SignAward { " {\n" + " \"orgSignerInfo\": {\n" + - -// " \"orgName\": \"西安云美电子科技有限公司\",\n" + " \"orgName\": \"" + orgName + "\",\n" + - " \"transactorInfo\": {\n" + - - -// " \"psnAccount\": \"17691338406\",\n" + " \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" + " \"psnInfo\": {\n" + -// " \"psnName\": \"韩超勃\"\n" + " \"psnName\": \"" + orgNamepsnName + "\"\n" + " }\n" + @@ -262,8 +213,6 @@ public class SignAward { " \"signFields\": [\n" + " {\n" + - -// " \"fileId\": \"5bd34a81e8084acaab3287c019e82fe8\",\n" + " \"fileId\": \"" + fileId + "\",\n" + " \"normalSignFieldConfig\": {\n" + @@ -272,13 +221,8 @@ public class SignAward { " \"signFieldPosition\": {\n" + -// " \"positionPage\": \"2\",\n" + " \"positionPage\": \"" + positionPageorg + "\",\n" + - -// " \"positionX\": 340.0,\n" + " \"positionX\": " + positionXorg + ",\n" + - -// " \"positionY\": 340.736\n" + " \"positionY\": " + positionYorg + "\n" + " },\n" + " \"signFieldStyle\": 1\n" + @@ -313,7 +257,6 @@ public class SignAward { String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url"; String jsonParm = "{\n" + " \"operator\": {\n" + -// " \"psnAccount\":\"18209231185\"\n" + " \"psnAccount\": \"" + psnAccount + "\"\n" + " }\n" + "}"; @@ -338,15 +281,11 @@ public class SignAward { String orgName = sealSignRecord.getOrgnizeName(); String jsonParm = "{\n" + -// " \"needLogin\": true,\n" + " \"operator\": {\n" + -// " \"psnAccount\":\"17691338406\"\n" + " \"psnAccount\": \"" + psnAccount + "\"\n" + " },\n" + " \"organization\": {\n" + - -// " \"orgName\": \"西安云美电子科技有限公司\"\n" + " \"orgName\": \"" + orgName + "\"\n" + " }\n" + diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml index a406ec2..76c8242 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -39,7 +39,8 @@ update seal_sign_record - sign_flow_status = #{signFlowStatus} + sign_flow_status = #{signFlowStatus}, + file_download_url = #{fileDownloadUrl} where id = #{id} From f20736282b29912b46cca4fd32be35099645b683 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Fri, 13 Oct 2023 14:35:24 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8F=8A=E8=B7=B3=E8=BD=AC=E5=B0=8F=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CaseApplicationController.java | 10 +++ .../common/utils/WxAppletNotifyUtils.java | 72 +++++++++++++++++++ .../impl/CaseApplicationServiceImpl.java | 52 +++++++++----- 3 files changed, 115 insertions(+), 19 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index f121306..5bc1f92 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.EsignDemoException; +import com.ruoyi.common.utils.WxAppletNotifyUtils; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; @@ -232,5 +233,14 @@ public class CaseApplicationController extends BaseController { String result = caseApplicationService.sendRoomNoMessage(messageVO); return success(result); } + /** + * 获取UrlScheme + */ + @Anonymous + @PostMapping("/getUrlScheme") + public AjaxResult getUrlScheme() { + String schemeUrl = WxAppletNotifyUtils.jumpAppletSchemeUrl(); + return success(schemeUrl); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java new file mode 100644 index 0000000..9e906c6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java @@ -0,0 +1,72 @@ +package com.ruoyi.common.utils; + +/** + * @author wangqiong + * @description + * @date 2023-10-13 10:16 + */ +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + + +/** + * @Author: Tenk + */ +@RequiredArgsConstructor +@Component +public class WxAppletNotifyUtils { + + /** + * scheme 跳转微信小程序,需中转H5 + + */ + public static String jumpAppletSchemeUrl(){ + + String token= getAccessToken(); + + //接口地址 + String url = "https://api.weixin.qq.com/wxa/generatescheme?access_token="+token; + JSONObject body = JSONUtil.createObj(); + JSONObject jumpWxa = JSONUtil.createObj(); + jumpWxa.putOpt("path","pages/login"); + jumpWxa.putOpt("query",""); + jumpWxa.putOpt("env_version","release"); + body.putOpt("jump_wxa",jumpWxa); + //链接过期类型:0时间戳 1间隔天数 + body.putOpt("expire_type",1); + body.putOpt("is_expire",true); + //指定失效天数,最多30 + body.putOpt("expire_interval",30); + String post = HttpUtil.post(url,body.toJSONString(2)); + JSONObject result = JSONUtil.parseObj(post); + if(result!=null){ + result.getStr("openlink"); + } + return null; + } + + + //凭证调用 + public static String getAccessToken(){ + String token; + //小程序APPID + String appid="wx91cb8459dca561b4";//自行获取 + //小程序secret + String secret="190aaa3bda96a65d25318fbb0e133fc6";//自己去公众号后台获取 + String httpUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"; + + httpUrl= httpUrl+"&appid="+appid+"&secret="+secret; + //get请求 + String result = HttpUtil.get(httpUrl); + //解析结果 + JSONObject jsonObject = JSONUtil.parseObj(result); + //get AccessToken + token=jsonObject.get("access_token",String.class,false); + return token; + } + +} \ No newline at end of file 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 9723a15..82555fe 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,14 +4,22 @@ package com.ruoyi.wisdomarbitrate.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; 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.wisdomarbitrate.utils.CaseLogUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SmsUtils; @@ -26,6 +34,8 @@ import com.ruoyi.wisdomarbitrate.utils.SignAward; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import java.io.File; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -52,7 +62,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { private CaseAttachMapper caseAttachMapper; @Autowired private SysDeptMapper sysDeptMapper; - + @Autowired + private ICaseApplicationService caseApplicationService; + @Autowired + private SysUserMapper sysUserMapper; @Autowired private SealSignRecordMapper sealSignRecordMapper; // 手机号正则 @@ -95,7 +108,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseAffiliate.setCaseAppliId(caseApplication.getId()); if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) { // 将组织机构id设为申请人名称 - if (deptMap.containsKey(caseApplication.getName())) { + if (deptMap.containsKey(caseAffiliate.getName())) { caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName()))); } else { // 如果不存在则新增 @@ -178,7 +191,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseAffiliate.setCaseAppliId(caseApplication.getId()); if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) { // 将组织机构id设为申请人名称 - if (deptMap.containsKey(caseApplication.getName())) { + if (deptMap.containsKey(caseAffiliate.getName())) { caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName()))); } else { // 如果不存在则新增 @@ -662,6 +675,7 @@ 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()); @@ -849,27 +863,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])); } - 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); - } - } + // 查询仲裁员电话号 + 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); + + } + } + } CaseAffiliate caseAffiliate = new CaseAffiliate(); @@ -891,7 +905,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if(StrUtil.isNotEmpty(caseAffiliateselect.getName())&&deptMap.containsKey(caseAffiliateselect.getName())){ caseAffiliateselect.setName(deptMap.get(caseAffiliateselect.getName())); } - caseAffiliateselect.setName(caseAffiliateselect.getName());; + } //给申请人、被申请人发送短信通知 request.setPhone(caseAffiliateselect.getContactTelphone()); From b7b46f1350de43f1c47aaae857572df1ae1f3fe0 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Fri, 13 Oct 2023 15:13:32 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/wisdomarbitrate/CaseApplicationController.java | 2 +- .../main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index 5bc1f92..876f9ca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -237,7 +237,7 @@ public class CaseApplicationController extends BaseController { * 获取UrlScheme */ @Anonymous - @PostMapping("/getUrlScheme") + @GetMapping("/getUrlScheme") public AjaxResult getUrlScheme() { String schemeUrl = WxAppletNotifyUtils.jumpAppletSchemeUrl(); return success(schemeUrl); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java index 9e906c6..d8b07fc 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxAppletNotifyUtils.java @@ -43,8 +43,8 @@ public class WxAppletNotifyUtils { body.putOpt("expire_interval",30); String post = HttpUtil.post(url,body.toJSONString(2)); JSONObject result = JSONUtil.parseObj(post); - if(result!=null){ - result.getStr("openlink"); + if(result!=null && result.containsKey("openlink")){ + return result.getStr("openlink"); } return null; }