From f3f89065a55409717cc68dc514962ac177a5f5ef Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Sat, 20 Jan 2024 15:39:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=A7=A3=E4=B9=A6=E7=AD=BE=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mscase/MsSignSealController.java | 13 +++++ .../domain/dto/mscase/MsSignSealDTO.java | 10 ++++ .../domain/entity/mscase/MsCaseAffiliate.java | 11 +++++ .../service/mscase/MsSignSealService.java | 2 + .../mscase/impl/MsSignSealServiceImpl.java | 35 ++++++++++++++ .../utils/FixSelectFlowDetailUtils.java | 47 ++++++++++++++++++- 6 files changed, 116 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java index af93adb..06a2107 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java @@ -89,6 +89,19 @@ public class MsSignSealController extends BaseController { return msSignSealService.msCaseFile(dto.getIds()); } + /** + * 签收 + * @param dto + * @return + */ + @PostMapping("/msCaseSign") + public AjaxResult msCaseSign(@RequestBody MsSignSealDTO dto){ + if (dto.getCaseId() == null) { + return error("参数校验失败"); + } + return msSignSealService.msCaseSign(dto); + } + diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java index 3c6078b..7c77f43 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java @@ -2,6 +2,7 @@ package com.ruoyi.wisdomarbitrate.domain.dto.mscase; import lombok.Data; +import javax.persistence.Column; import java.util.List; @Data @@ -22,6 +23,15 @@ public class MsSignSealDTO { private List ids; + /** + * 申请人是否签收 + */ + private Integer isSignApply; + /** + * 被申请人是否签收 + */ + private Integer isSignRespon; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java index cbce91b..0086685 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java @@ -127,4 +127,15 @@ public class MsCaseAffiliate { */ @Column(name = "respondent_track_num") private String respondentTrackNum; + + /** + * 申请人是否签收 + */ + @Column(name = "is_sign_apply") + private Integer isSignApply; + /** + * 被申请人是否签收 + */ + @Column(name = "is_sign_respon") + private Integer isSignRespon; } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java index 407756d..bfb0304 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java @@ -24,4 +24,6 @@ public interface MsSignSealService { List selectCaseLogRecordList(MsSignSealDTO dto); AjaxResult msCaseFile(List ids); + + AjaxResult msCaseSign(MsSignSealDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index 3b265c2..62bddcf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -601,6 +601,41 @@ public class MsSignSealServiceImpl implements MsSignSealService { return AjaxResult.success("归档成功"); } + @Override + @Transactional + public AjaxResult msCaseSign(MsSignSealDTO dto) { + Long caseId = dto.getCaseId(); + MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(caseId); + MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(caseId); + if (dto.getIsSignApply() != null && dto.getIsSignApply().intValue() == 1) { + caseAffiliate.setIsSignApply(1); + msCaseAffiliateMapper.updateByPrimaryKeySelective(caseAffiliate); + if (caseAffiliate.getIsSignRespon() != null && caseAffiliate.getIsSignRespon().intValue() == 1) { + // 根据流程id查找下一个流程节点 + MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId()); + caseApplicationselect.setCaseFlowId(nextFlow.getId()); + caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName()); + caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect); + CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"签收"); + } + } + if (dto.getIsSignRespon() != null && dto.getIsSignRespon().intValue() == 1) { + caseAffiliate.setIsSignRespon(1); + msCaseAffiliateMapper.updateByPrimaryKeySelective(caseAffiliate); + if (caseAffiliate.getIsSignApply() != null && caseAffiliate.getIsSignApply().intValue() == 1) { + // 根据流程id查找下一个流程节点 + MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId()); + caseApplicationselect.setCaseFlowId(nextFlow.getId()); + caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName()); + caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect); + CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"签收"); + } + } + + return AjaxResult.success("签收成功"); + + } + /** * 通过邮件发送裁决书文件 * 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 c509632..70e360d 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 @@ -244,7 +244,7 @@ public class FixSelectFlowDetailUtils { /* 定时查询签署流程详情 */ -// @Scheduled(cron = "0/10 * * * * ?") + @Scheduled(cron = "0/10 * * * * ?") @Transactional public void fixExecuteSelectFlowDetailUtils() { Gson gson = new Gson(); @@ -319,12 +319,55 @@ public class FixSelectFlowDetailUtils { application.setCaseFlowId(nextFlow.getId()); application.setCaseStatusName(nextFlow.getCaseStatusName()); caseApplicationMapper.updateByPrimaryKeySelective(application); + + //下载审核完成的调解书 + 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(); + LocalDate now = LocalDate.now(); + String year = Integer.toString(now.getYear()); + String month = String.format("%02d", now.getMonthValue()); + String day = String.format("%02d", now.getDayOfMonth()); + String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day; + String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf"; + String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName; + String savePath = "/home/ruoyi/uploadPath/upload/"; + + // 创建日期目录 + File saveFolder = new File(saveFolderPath); + if (!saveFolder.exists()) { + saveFolder.mkdirs(); + } + String resultFilePath = saveFolderPath + "/" + fileName; + File resultFilePathFile = new File(resultFilePath); + if (!resultFilePathFile.exists()) { + resultFilePathFile.createNewFile(); + } + + String fileDownloadUrlnew = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1); + boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath); + if (downLoadFile) { + Long caseAppliId = sealSignRecord.getCaseAppliId(); + MsCaseAttach caseAttach = new MsCaseAttach(); + caseAttach.setCaseAppliId(caseAppliId); + caseAttach.setAnnexType(3); + caseAttach.setAnnexPath(savePath); + caseAttach.setAnnexName(saveName); + caseAttachMapper.updateCaseAttachBycaseid(caseAttach); + } + + } } } } } - } catch (EsignDemoException e) { + } catch (EsignDemoException | IOException e) { e.printStackTrace(); } -- 2.54.0