diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 65f5d96..4da42d5 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://121.40.189.20:3306/arbitrate?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false + url: jdbc:mysql://121.40.189.20:3306/smart_arbitration?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false username: root - password: root123456 + password: YMzc157# # 从库数据源 slave: # 从数据源开关/默认关闭 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 157010f..84bfc9c 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,5 +1,7 @@ package com.ruoyi.wisdomarbitrate.mapper; + + import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import java.util.List; @@ -10,7 +12,7 @@ public interface SealSignRecordMapper { List selectSealSignRecordbyStat(SealSignRecord sealSignRecord); int updataSealSignRecord(SealSignRecord sealSignRecord); - + void insertSealSignRecord(SealSignRecord sealSignRecord); } 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 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 82555fe..189787e 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,6 +5,7 @@ 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; @@ -12,9 +13,16 @@ 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; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.EsignDemoException; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.file.SaaSAPIFileUtils; + + import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.EsignDemoException; @@ -57,14 +65,13 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { private ArbitratorMapper arbitratorMapper; @Autowired private ArbitrateRecordMapper arbitrateRecordMapper; - + @Autowired + private ICaseApplicationService caseApplicationService; @Autowired private CaseAttachMapper caseAttachMapper; @Autowired private SysDeptMapper sysDeptMapper; @Autowired - private ICaseApplicationService caseApplicationService; - @Autowired private SysUserMapper sysUserMapper; @Autowired private SealSignRecordMapper sealSignRecordMapper; @@ -712,6 +719,121 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord); Integer agreeOrNotCheck = caseApplication.getAgreeOrNotCheck(); if(agreeOrNotCheck.intValue()==1){//同意审核 + try { + //获取当前案件的裁决书 + CaseApplication caseApplication2 = caseApplicationService.selectCaseApplication(caseApplication); + List caseAttachList = caseApplication2.getCaseAttachList(); + if (caseAttachList != null && caseAttachList.size() > 0) { + for (CaseAttach caseAttach : caseAttachList) { + if (caseAttach.getAnnexType() == 3) { + String annexPath = caseAttach.getAnnexPath(); + String path = "/home/ruoyi/" + annexPath; + System.out.println("这是查询到的裁决书路径"+path); + //String path ="D:\\home\\仲裁裁决书模板.docx"; + //获取文件上传地址 + EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path); + String body = response.getBody(); + if (body != null){ + JSONObject jsonObject = JSONObject.parseObject(body); + String fileId = jsonObject.getJSONObject("data").getString("fileId"); + String fileUploadUrl = jsonObject.getJSONObject("data").getString("fileUploadUrl"); + //上传文件流 + EsignHttpResponse response1 = SaaSAPIFileUtils.uploadFile(fileUploadUrl, path); + JSONObject jsonObject1 = JSONObject.parseObject(response1.getBody()); + if (jsonObject1.getIntValue("errCode")==0){ + //查看文件上传状态 + Thread.sleep(5000); + EsignHttpResponse response2 = SaaSAPIFileUtils.getFileStatus(fileId); + JSONObject jsonObject2 = JSONObject.parseObject(response2.getBody()); + JSONObject data = jsonObject2.getJSONObject("data"); + int fileStatus =data.getIntValue("fileStatus"); + if (fileStatus == 2 || fileStatus == 5){ + String fileName = data.getString("fileName"); + //上传成功,获取文件签名印章位置 + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setFileid(fileId); + EsignHttpResponse positions = SignAward.getPositions(sealSignRecord); + Gson gson = new Gson(); + JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class); + JsonObject positionsData = positionsJsonObject.getAsJsonObject("data"); + String keywordPositions = positionsData.get("keywordPositions").toString(); + //发起签署 + sealSignRecord.setFilename(fileName); + String arbitratorId = caseApplication2.getArbitratorId(); + if (arbitratorId!=null){ + SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(arbitratorId)); + if (sysUser == null){ + return rows; + } + sealSignRecord.setPensonAccount(sysUser.getPhonenumber()); + sealSignRecord.setPensonName(sysUser.getNickName()); + } + sealSignRecord.setOrgnizeName("西安云美电子科技有限公司"); + sealSignRecord.setOrgnizeNamePsnAccount("17691338406"); + sealSignRecord.setOrgnizeNamepsnName("韩超勃"); + //解析文件签名印章位置 + JSONArray jsonArray = JSONArray.parseArray(keywordPositions); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject3 = jsonArray.getJSONObject(i); + String keyword = jsonObject3.getString("keyword"); + if (keyword.equals("仲裁员:")){ + //签名 + JSONArray positionsArray = jsonObject3.getJSONArray("positions"); + // 遍历 positionsArray 中的每个元素 + for (int j = 0; j < positionsArray.size(); j++){ + JSONObject positionObj = positionsArray.getJSONObject(j); + int pageNum = positionObj.getIntValue("pageNum"); + sealSignRecord.setPositionPagepsn(String.valueOf(pageNum)); + JSONArray coordinatesArray = positionObj.getJSONArray("coordinates"); + JSONObject coordinateObj = coordinatesArray.getJSONObject(0); + double positionX = coordinateObj.getDoubleValue("positionX"); + double positionY = coordinateObj.getDoubleValue("positionY"); + sealSignRecord.setPositionXpsn(positionX); + sealSignRecord.setPositionYpsn(positionY); + } + }else { + //用印 + JSONArray positionsArray = jsonObject3.getJSONArray("positions"); + // 遍历 positionsArray 中的每个元素 + for (int j = 0; j < positionsArray.size(); j++) { + JSONObject positionObj = positionsArray.getJSONObject(j); + int pageNum = positionObj.getIntValue("pageNum"); + sealSignRecord.setPositionPageorg(String.valueOf(pageNum)); + JSONArray coordinatesArray = positionObj.getJSONArray("coordinates"); + JSONObject coordinateObj = coordinatesArray.getJSONObject(0); + double positionX = coordinateObj.getDoubleValue("positionX"); + double positionY = coordinateObj.getDoubleValue("positionY"); + sealSignRecord.setPositionXorg(positionX); + sealSignRecord.setPositionYorg(positionY); + } + } + } + EsignHttpResponse response3 = SignAward.createByFile(sealSignRecord); + JSONObject jsonObject3 = JSONObject.parseObject(response3.getBody()); + if (jsonObject3.getIntValue("code")==0){ + //获取签署流程ID + JSONObject data1 = jsonObject3.getJSONObject("data"); + String signFlowId = data1.getString("signFlowId"); + //保存案件id,文件id,文件名称.流程id到签署用印记录表里 + sealSignRecord.setCaseAppliId(caseApplication.getId()); + sealSignRecord.setSignFlowid(signFlowId); + sealSignRecord.setSignFlowStatus(1);//待签名 + sealSignRecordMapper.insertSealSignRecord(sealSignRecord); + }else { + throw new ServiceException("发起签署流程失败,请检查参数是否有误"); + } + } + } + } + break; + } + } + } + } catch (EsignDemoException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } caseApplication.setCaseStatus(CaseApplicationConstants.SIGN_ARBITRATION); // 新增日志 CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.SIGN_ARBITRATION,""); diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml index 76c8242..ae9b8bc 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml @@ -4,6 +4,17 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + INSERT INTO seal_sign_record (file_id, file_name, sign_flow_id , penson_account + ,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} + ,#{orgnizeNamePsnAccount},#{orgnizeNamepsnName},#{positionPagepsn},#{positionXpsn},#{positionYpsn} + ,#{positionPageorg},#{positionXorg},#{positionYorg},#{caseAppliId},#{signFlowStatus}) + + + @@ -46,10 +57,4 @@ - - - - - - \ No newline at end of file