From 11e6c91cc6ce3958c7018e0dd2bfa4de45a2d81e Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Fri, 5 Jan 2024 14:45:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=89=B9=E9=87=8F=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E7=94=A8=E5=8D=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdjudicationController.java | 24 +++++ .../CaseArbitrateController.java | 10 ++ .../ruoyi/wisdomarbitrate/StringIdsReq.java | 4 + .../domain/CaseApplication.java | 2 +- .../mapper/SealSignRecordMapper.java | 2 + .../service/IAdjudicationService.java | 4 + .../service/ICaseArbitrateService.java | 2 + .../service/impl/AdjudicationServiceImpl.java | 100 ++++++++++++++++++ .../impl/CaseArbitrateServiceImpl.java | 40 +++++++ .../wisdomarbitrate/SealSignRecordMapper.xml | 15 +++ 10 files changed, 202 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/AdjudicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/AdjudicationController.java index 6d2513f..5abc938 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/AdjudicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/AdjudicationController.java @@ -39,6 +39,18 @@ public class AdjudicationController extends BaseController { return success(sealSignRecordselect); } + /** + * 根据批号查询批量签名链接 + */ + @PostMapping("/selectBatchSignUrl") + public AjaxResult getSignUrlBatch(@RequestBody StringIdsReq idsReq) { + if(StrUtil.isEmpty(idsReq.getBatchNumber().toString())|| StrUtil.isEmpty(idsReq.getPsnAccount())){ + return error("参数校验失败"); + } + SealSignRecord sealSignRecordselect = adjudicationService.getSignUrlBatch(idsReq); + return success(sealSignRecordselect); + } + /** * 根据签署流程id查询批量用印链接 */ @@ -62,6 +74,18 @@ public class AdjudicationController extends BaseController { return getDataTable(list); } + /** + * 根据批号查询批量用印链接 + */ + @PostMapping("/getSealUrlBatch") + public AjaxResult getSealUrlBatch(@RequestBody StringIdsReq idsReq) { + if(StrUtil.isEmpty(idsReq.getBatchNumber().toString())|| StrUtil.isEmpty(idsReq.getPsnAccount())){ + return error("参数校验失败"); + } + SealSignRecord sealSignRecordselect = adjudicationService.getSealUrlBatch(idsReq); + return success(sealSignRecordselect); + } + /** * 生成裁决书 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseArbitrateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseArbitrateController.java index aad6834..50fe6cc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseArbitrateController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseArbitrateController.java @@ -54,4 +54,14 @@ public class CaseArbitrateController extends BaseController { return caseArbitrateService.writtenHear(caseIds); } + /** + * 批量书面审理 + * @param + * @return + */ + @PostMapping("/writtenHearBatch") + public AjaxResult writtenHearBatch(@Validated @RequestBody CaseApplication caseApplication){ + return caseArbitrateService.writtenHearBatch(caseApplication); + + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/StringIdsReq.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/StringIdsReq.java index 7e561dd..07c5b6c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/StringIdsReq.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/StringIdsReq.java @@ -19,4 +19,8 @@ public class StringIdsReq { * 机构账户 */ private String orgId ; + /** + * 批号 + */ + private Integer batchNumber; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java index 8239489..313cc73 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java @@ -417,5 +417,5 @@ public class CaseApplication extends BaseEntity { */ private Integer pendingStatus; /** e签宝流程id */ - private String signFlowId;; + private String signFlowId; } 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 13d2cba..7c9ab06 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 @@ -29,4 +29,6 @@ public interface SealSignRecordMapper { void insertSealSignRecord(SealSignRecord sealSignRecord); + + List selectsignFlow(@Param("batchNumber") Integer batchNumber,@Param("caseStatus") Integer caseStatus); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IAdjudicationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IAdjudicationService.java index 5fa26f4..401d67e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IAdjudicationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IAdjudicationService.java @@ -57,4 +57,8 @@ public interface IAdjudicationService { List selectSealSigning(String personAccount,Integer caseStatus); SealSignRecord selectBatchSealUrl(StringIdsReq idsReq); + + SealSignRecord getSignUrlBatch(StringIdsReq idsReq); + + SealSignRecord getSealUrlBatch(StringIdsReq idsReq); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseArbitrateService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseArbitrateService.java index 0038a77..7f024f8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseArbitrateService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseArbitrateService.java @@ -16,4 +16,6 @@ public interface ICaseArbitrateService { AjaxResult examineArbitrateMethod(CaseApplication caseApplication, Integer opinion, Integer arbitratMethod); AjaxResult examineArbitrateMethodBatch(CaseApplication caseApplication); + + AjaxResult writtenHearBatch(CaseApplication caseApplication); } 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 af495a9..784a5eb 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 @@ -1429,6 +1429,106 @@ public class AdjudicationServiceImpl implements IAdjudicationService { return signRecord; } + @Override + public SealSignRecord getSignUrlBatch(StringIdsReq idsReq) { + SealSignRecord signRecord = new SealSignRecord(); + try { + EsignHttpResponse identityInfo = SignAward.identityInfo(idsReq); + + Gson gson = new Gson(); + if (StrUtil.isNotEmpty(identityInfo.getBody())) { + JsonObject identityInfoJsonObject = gson.fromJson(identityInfo.getBody(), JsonObject.class); + if (identityInfoJsonObject != null && !identityInfoJsonObject.get("data").isJsonNull()) { + JsonObject identityInfoData = identityInfoJsonObject.getAsJsonObject("data"); + if (identityInfoData != null && !identityInfoData.get("psnId").isJsonNull()) { + idsReq.setPsnId(identityInfoData.get("psnId").getAsString()); + } + } + } + if (StrUtil.isEmpty(idsReq.getPsnId())) { + throw new ServiceException("该用户未认证"); + } + Integer batchNumber = idsReq.getBatchNumber(); + Integer caseStatus = CaseApplicationConstants.SIGN_ARBITRATION; + List caseApplications = sealSignRecordMapper.selectsignFlow(batchNumber,caseStatus); + if (caseApplications != null && caseApplications.size() > 0) { + List signFlowIds = caseApplications.stream().map(CaseApplication::getSignFlowId).collect(Collectors.toList()); + idsReq.setIds(signFlowIds); + + EsignHttpResponse batchSignUrl = SignAward.batchSignUrl(idsReq); + if (StrUtil.isNotEmpty(batchSignUrl.getBody())) { + JsonObject signUrlJsonObject = gson.fromJson(batchSignUrl.getBody(), JsonObject.class); + if (signUrlJsonObject != null && !signUrlJsonObject.get("data").isJsonNull()) { + JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data"); + if (signUrlData != null && !signUrlData.get("batchSignUrlWithoutLogin").isJsonNull()) { + // 免登录批量签链接(链接有效期2小时) + String url = signUrlData.get("batchSignUrlWithoutLogin").getAsString(); + // batchSignUrl 需登录批量签链接(链接有效期2小时),batchSignShortUrl需登录批量签短链接(链接有效期2小时),batchSignShortUrlWithoutLogin免登录批量签短链接(链接有效期2小时) + signRecord.setSignUrl(url); + } + } + } + + }else{ + throw new ServiceException("这个批号没有批量签名的案件"); + } + + } catch (EsignDemoException e) { + e.printStackTrace(); + } + + return signRecord; + } + + @Override + public SealSignRecord getSealUrlBatch(StringIdsReq idsReq) { + SealSignRecord signRecord = new SealSignRecord(); + try { + EsignHttpResponse identityInfo = SignAward.identityInfo(idsReq); + + Gson gson = new Gson(); + if (StrUtil.isNotEmpty(identityInfo.getBody())) { + JsonObject identityInfoJsonObject = gson.fromJson(identityInfo.getBody(), JsonObject.class); + if(identityInfoJsonObject!=null&&!identityInfoJsonObject.get("data").isJsonNull()) { + JsonObject identityInfoData = identityInfoJsonObject.getAsJsonObject("data"); + if (identityInfoData != null && !identityInfoData.get("psnId") .isJsonNull()) { + idsReq.setPsnId(identityInfoData.get("psnId").getAsString()); + } + } + } + if (StrUtil.isEmpty(idsReq.getPsnId())) { + throw new ServiceException("该用户未认证"); + } + Integer batchNumber = idsReq.getBatchNumber(); + Integer caseStatus = CaseApplicationConstants.ARBITRATED_SEAL; + List caseApplications = sealSignRecordMapper.selectsignFlow(batchNumber,caseStatus); + if (caseApplications != null && caseApplications.size() > 0) { + List signFlowIds = caseApplications.stream().map(CaseApplication::getSignFlowId).collect(Collectors.toList()); + idsReq.setIds(signFlowIds); + + EsignHttpResponse batchSignUrl = SignAward.batchSignUrl(idsReq); + if (StrUtil.isNotEmpty(batchSignUrl.getBody())) { + JsonObject signUrlJsonObject = gson.fromJson(batchSignUrl.getBody(), JsonObject.class); + if (signUrlJsonObject != null && !signUrlJsonObject.get("data").isJsonNull()) { + JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data"); + if (signUrlData != null&& !signUrlData.get("batchSignUrlWithoutLogin").isJsonNull()) { + // 免登录批量签链接(链接有效期2小时) + String url = signUrlData.get("batchSignUrlWithoutLogin").getAsString(); + // batchSignUrl 需登录批量签链接(链接有效期2小时),batchSignShortUrl需登录批量签短链接(链接有效期2小时),batchSignShortUrlWithoutLogin免登录批量签短链接(链接有效期2小时) + signRecord.setSignUrl(url); + } + } + } + + }else{ + throw new ServiceException("这个批号没有批量用印的案件"); + } + } catch (EsignDemoException e) { + e.printStackTrace(); + } + return signRecord; + } + /** * 根据仲裁员手机号分页查询等待签署,签署中的裁决书 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java index 7cc6745..a0f3e34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java @@ -239,6 +239,46 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService { return AjaxResult.success(); } + @Override + @Transactional + public AjaxResult writtenHearBatch(CaseApplication caseApplicationparam) { + CaseApplication caseApplicationsel = new CaseApplication(); + caseApplicationsel.setBatchNumber(caseApplicationparam.getBatchNumber()); + caseApplicationsel.setCaseStatus(CaseApplicationConstants.PENDING_WRIITEN_HEAR); + List caseApplications1 = caseApplicationMapper.listCaseApplicationByBatchNumber(caseApplicationsel); + if (caseApplications1 != null && caseApplications1.size() > 0) { + List ids = caseApplications1.stream().map(CaseApplication::getId).collect(Collectors.toList()); + for (Long caseId : ids) { + //查询案件详情 + CaseApplication caseApplication = new CaseApplication(); + caseApplication.setId(caseId); + CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication); + //案件日志表里添加数据 + CaseLogRecord caseLogRecord = new CaseLogRecord(); + caseLogRecord.setCaseAppliId(caseApplication1.getId()); + caseLogRecord.setCaseNode(caseApplication1.getCaseStatus()); + caseLogRecord.setCreateBy(getUsername()); + caseLogRecordMapper.insertCaseLogRecord(caseLogRecord); + // 新增日志 + CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.VERPRIF_ARBITRATION, ""); + + // 生成裁决书 + CaseApplication application = new CaseApplication(); + application.setId(caseId); + adjudicationService.createDocument(application); + //修改案件状态 + caseApplication1.setCaseStatus(CaseApplicationConstants.VERPRIF_ARBITRATION); + int i = caseApplicationMapper.submitCaseApplication(caseApplication1); + + } + + }else{ + throw new ServiceException("这个批号没有批量书面审理的案件"); + } + return AjaxResult.success(); + + } + @Override @Transactional public AjaxResult writtenHear(CaseIds caseIds) { diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml index 0469fff..92d4635 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -81,6 +81,21 @@ order by c.case_num desc + + update seal_sign_record -- 2.54.0