公章管理开发 #202
+48
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.web.controller.wisdomarbitrate;
|
package com.ruoyi.web.controller.wisdomarbitrate;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
@@ -9,10 +10,13 @@ import com.ruoyi.common.exception.EsignDemoException;
|
|||||||
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
|
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
|
||||||
|
import com.ruoyi.wisdomarbitrate.domain.SmsSendRecord;
|
||||||
|
import com.ruoyi.wisdomarbitrate.domain.vo.SealListVO;
|
||||||
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
|
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -49,8 +53,51 @@ public class DeptIdentifyController extends BaseController {
|
|||||||
return deptIdentifyService.enableDept(deptIdentify);
|
return deptIdentifyService.enableDept(deptIdentify);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传自定义公章
|
||||||
|
*
|
||||||
|
* @param deptIdentify
|
||||||
|
* @param file
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/sealUpload")
|
||||||
|
public AjaxResult sealUpload(@Validated @RequestBody DeptIdentify deptIdentify
|
||||||
|
, @RequestParam("file") MultipartFile file) {
|
||||||
|
return deptIdentifyService.sealUpload(deptIdentify, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收E签宝回调通知
|
||||||
|
* @param body
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/notify")
|
||||||
|
public AjaxResult receiveNotify(String body) {
|
||||||
|
return deptIdentifyService.receiveNotify(body);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签章图片列表查询
|
||||||
|
* @param deptIdentify
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/sealList")
|
||||||
|
public TableDataInfo getSealList(DeptIdentify deptIdentify){
|
||||||
|
startPage();
|
||||||
|
List<SealListVO> list = deptIdentifyService.getSealList(deptIdentify);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 印章启用或者禁用
|
||||||
|
* @param deptIdentify
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/updateSealLockStatus")
|
||||||
|
public AjaxResult updateSealLockStatus(@Validated @RequestBody DeptIdentify deptIdentify){
|
||||||
|
if(deptIdentify.getSealId()==null ||deptIdentify.getSealStatus()==null){
|
||||||
|
return error("参数校验失败");
|
||||||
|
}
|
||||||
|
return deptIdentifyService.updateSealLockStatus(deptIdentify);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,124 @@
|
|||||||
|
package com.ruoyi.common.utils;
|
||||||
|
|
||||||
|
import com.ruoyi.common.config.EsignDemoConfig;
|
||||||
|
import com.ruoyi.common.constant.EsignHeaderConstant;
|
||||||
|
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.EsignFileBean;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class SealUtil {
|
||||||
|
private static String eSignHost = EsignDemoConfig.EsignHost;
|
||||||
|
private static String eSignAppId = EsignDemoConfig.EsignAppId;
|
||||||
|
private static String eSignAppSecret = EsignDemoConfig.EsignAppSecret;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机构认证&授权页面链接
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse getOrgEmpower() throws EsignDemoException {
|
||||||
|
String apiaddr = "/v3/org-auth-url";
|
||||||
|
String nickName = "何进波";
|
||||||
|
String phonenumber = "15191509780";
|
||||||
|
String deptName = "西安云美公司";
|
||||||
|
String jsonParm = "{\n" +
|
||||||
|
" \"orgAuthConfig\": {\n" +
|
||||||
|
" \"orgName\": \"" + deptName + " \",\n" +
|
||||||
|
" \"transactorInfo\": {\n" +
|
||||||
|
" \"psnAccount\": \"" + phonenumber + "\",\n" +
|
||||||
|
" \"psnInfo\": {\n" +
|
||||||
|
" \"psnName\": \"" + nickName + "\",\n" +
|
||||||
|
" \"psnMobile\": \"" + phonenumber + "\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
" },\n" +
|
||||||
|
" \"authorizeConfig\": {\n" +
|
||||||
|
" \"authorizedScopes\": [\n" +
|
||||||
|
" \"get_org_identity_info\",\n" +
|
||||||
|
" \"get_psn_identity_info\",\n" +
|
||||||
|
" \"org_initiate_sign\",\n" +
|
||||||
|
" \"psn_initiate_sign\",\n" +
|
||||||
|
" \"manage_org_resource\",\n" +
|
||||||
|
" \"manage_psn_resource\",\n" +
|
||||||
|
" \"use_org_order\"\n" +
|
||||||
|
" ]\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}";
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
|
//生成请求签名鉴权方式的Header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查询认证授权流程详情
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse queryAuthProcess(String authFlowId ) throws EsignDemoException {
|
||||||
|
String apiaddr = "/v3/auth-flow/" + authFlowId;
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm=null;
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.GET;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 步骤一:获取印章图片上传地址fileUploadUrl
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse getFileUploadUrl(String filePath) throws EsignDemoException {
|
||||||
|
//自定义的文件封装类,传入文件地址可以获取文件的名称大小,文件流等数据
|
||||||
|
EsignFileBean esignFileBean = new EsignFileBean(filePath);
|
||||||
|
String apiaddr="/v3/files/file-key";
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm="{\n" +
|
||||||
|
" \"contentMd5\": \""+esignFileBean.getFileContentMD5()+"\",\n" +
|
||||||
|
" \"fileName\":\""+esignFileBean.getFileName()+"\"," +
|
||||||
|
" \"fileSize\": "+esignFileBean.getFileSize()+",\n" +
|
||||||
|
" \"contentType\": \""+ EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE()+"\"\n" +
|
||||||
|
"}";
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.POST;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
||||||
|
//发起接口请求
|
||||||
|
EsignHttpResponse response = EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
||||||
|
System.out.println(response);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 步骤二:将印章图片文件流上传到fileUploadUrl
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse fileStreamUpload(String uploadUrl,String filePath) throws EsignDemoException {
|
||||||
|
//根据文件地址获取文件contentMd5
|
||||||
|
EsignFileBean esignFileBean = new EsignFileBean(filePath);
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.PUT;
|
||||||
|
return EsignHttpHelper.doUploadHttp(uploadUrl,requestType,esignFileBean.getFileBytes(),esignFileBean.getFileContentMD5(), EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE(),true);
|
||||||
|
}
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// createOrgByImage();
|
||||||
|
// getOrgEmpower();
|
||||||
|
// queryAuthProcess("OF-2b00885895080028");
|
||||||
|
// getFileUploadUrl();
|
||||||
|
// String uplodUrl = "https://esignoss.esign.cn/7438987614/8e278262-5960-4004-bff3-297c11e2652e/Snipaste_2023-10-27_09-59-23.jpg?Expires=1699439095&OSSAccessKeyId=STS.NTZ8NBHcTVQXgsxVRH4iyC5AY&Signature=3yu3ZQifphZsnOgN0CI0SJdqFhY%3D&callback-var=eyJ4OmZpbGVfa2V5IjoiJDliM2Y3ZjkyLTdkOWUtNGZkZi04NWU4LWE4ZDU4MzEwZjIzOCQ0MTQwNTE2ODk5In0%3D%0A&callback=eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9zbWx0YXBpLnRzaWduLmNuL2FueWRvb3IvZmlsZS1zeXN0ZW0vY2FsbGJhY2svYWxpb3NzIiwiY2FsbGJhY2tCb2R5IjogIntcIm1pbWVUeXBlXCI6JHttaW1lVHlwZX0sXCJzaXplXCI6ICR7c2l6ZX0sXCJidWNrZXRcIjogJHtidWNrZXR9LFwib2JqZWN0XCI6ICR7b2JqZWN0fSxcImV0YWdcIjogJHtldGFnfSxcImZpbGVfa2V5XCI6JHt4OmZpbGVfa2V5fX0iLCJjYWxsYmFja0JvZHlUeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQ%3D%3D%0A&security-token=CAIS%2BAF1q6Ft5B2yfSjIr5fvc%2FT2pbx14ZOzZVXJslIdOOZVrPDquzz2IHtKdXRvBu8Xs%2F4wnmxX7f4YlqB6T55OSAmcNZEoWWWTbdH4MeT7oMWQweEurv%2FMQBqyaXPS2MvVfJ%2BOLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fm6%2FNgdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPnvm5DNs0uH1AKjkbRM9r6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1%2FIVpGiY4YDAWQYLv0rda7DOltFiMkpla7MmXqlft%2BhzcgeQY0pc%2FRqAAXGx8FDtPQxW3RSasFgOFBJaxbYjH3WFFrbV25v8a%2BS9OWPAYqOCvmkxbM7N4hOge2iaBAG4SRLMb6ypPJ15YEpoZI8KkdeDvQJryZEWchmc0Lhz0yDRqrN%2BzYhgu4VpBJu1WJg%2FyXrvAZ0gWhBN%2BILrblSR9QHVWVVYZTAKN4ejIAA%3D";
|
||||||
|
// fileStreamUpload(uplodUrl,"D:\\develop\\Snipaste_2023-10-27_09-59-23.jpg");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -82,7 +82,7 @@ public class SaaSAPIFileUtils {
|
|||||||
//生成签名鉴权方式的的header
|
//生成签名鉴权方式的的header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -43,4 +43,5 @@ public class CaseAttach {
|
|||||||
*/
|
*/
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.ruoyi.wisdomarbitrate.domain;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
public class DeptIdentify extends BaseEntity {
|
public class DeptIdentify extends BaseEntity {
|
||||||
@@ -33,6 +32,56 @@ public class DeptIdentify extends BaseEntity {
|
|||||||
/** 印章名称 */
|
/** 印章名称 */
|
||||||
private String sealName;
|
private String sealName;
|
||||||
|
|
||||||
|
/** 机构账号ID */
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/** 认证授权流程ID */
|
||||||
|
private String authFlowId;
|
||||||
|
|
||||||
|
public String getSealId() {
|
||||||
|
return sealId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSealId(String sealId) {
|
||||||
|
this.sealId = sealId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 印章id */
|
||||||
|
private String sealId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附件id
|
||||||
|
*/
|
||||||
|
private Integer annexId;
|
||||||
|
/**
|
||||||
|
* 印章状态 0禁用,1启用
|
||||||
|
*/
|
||||||
|
private Integer sealStatus;
|
||||||
|
|
||||||
|
public Integer getAnnexId() {
|
||||||
|
return annexId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnnexId(Integer annexId) {
|
||||||
|
this.annexId = annexId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthFlowId() {
|
||||||
|
return authFlowId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthFlowId(String authFlowId) {
|
||||||
|
this.authFlowId = authFlowId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrgId() {
|
||||||
|
return orgId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrgId(String orgId) {
|
||||||
|
this.orgId = orgId;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSealName() {
|
public String getSealName() {
|
||||||
return sealName;
|
return sealName;
|
||||||
}
|
}
|
||||||
@@ -123,4 +172,12 @@ public class DeptIdentify extends BaseEntity {
|
|||||||
public void setIsUse(Integer isUse) {
|
public void setIsUse(Integer isUse) {
|
||||||
this.isUse = isUse;
|
this.isUse = isUse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getSealStatus() {
|
||||||
|
return sealStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSealStatus(Integer sealStatus) {
|
||||||
|
this.sealStatus = sealStatus;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.ruoyi.wisdomarbitrate.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SealListVO {
|
||||||
|
/** 印章id */
|
||||||
|
private String sealId;
|
||||||
|
/** 印章名称 */
|
||||||
|
private String sealName;
|
||||||
|
/**
|
||||||
|
* 印章状态 0禁用,1启用
|
||||||
|
*/
|
||||||
|
private Integer sealStatus;
|
||||||
|
/**
|
||||||
|
* 附件id
|
||||||
|
*/
|
||||||
|
private Integer annexId;
|
||||||
|
/**
|
||||||
|
* 附件路径
|
||||||
|
*/
|
||||||
|
private String annexPath;
|
||||||
|
/**
|
||||||
|
* 附件类型,立案申请书(1)、申请人证据材料(2)、仲裁文书(3)、案件视频(4)、身份证件(5)、被申请人证据材料 (6)、庭审笔录(7)、缴费凭证(8)'
|
||||||
|
*/
|
||||||
|
private Integer annexType;
|
||||||
|
}
|
||||||
@@ -23,4 +23,6 @@ public interface CaseAttachMapper {
|
|||||||
int deleteByFileIds(@Param("ids") List<Integer> fileIds);
|
int deleteByFileIds(@Param("ids") List<Integer> fileIds);
|
||||||
|
|
||||||
List<CaseAttach> getCaseAttachByCaseIdAndType(CaseAttach caseAttach);
|
List<CaseAttach> getCaseAttachByCaseIdAndType(CaseAttach caseAttach);
|
||||||
|
|
||||||
|
CaseAttach queryAnnexById(Integer annexId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,5 @@ public interface DeptIdentifyMapper {
|
|||||||
int updateDeptIdentify(DeptIdentify deptIdentify);
|
int updateDeptIdentify(DeptIdentify deptIdentify);
|
||||||
|
|
||||||
List<DeptIdentify> selectDeptIdentifylistother(DeptIdentify deptIdentify);
|
List<DeptIdentify> selectDeptIdentifylistother(DeptIdentify deptIdentify);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+13
@@ -3,6 +3,8 @@ package com.ruoyi.wisdomarbitrate.service;
|
|||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.exception.EsignDemoException;
|
import com.ruoyi.common.exception.EsignDemoException;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||||
|
import com.ruoyi.wisdomarbitrate.domain.vo.SealListVO;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -15,4 +17,15 @@ public interface IDeptIdentifyService {
|
|||||||
DeptIdentify selectDeptIndefiUrl(DeptIdentify deptIdentify) throws EsignDemoException;
|
DeptIdentify selectDeptIndefiUrl(DeptIdentify deptIdentify) throws EsignDemoException;
|
||||||
|
|
||||||
AjaxResult enableDept(DeptIdentify deptIdentify);
|
AjaxResult enableDept(DeptIdentify deptIdentify);
|
||||||
|
|
||||||
|
AjaxResult sealUpload(DeptIdentify deptIdentify, MultipartFile file);
|
||||||
|
|
||||||
|
|
||||||
|
AjaxResult receiveNotify(String body);
|
||||||
|
|
||||||
|
List<SealListVO> getSealList(DeptIdentify deptIdentify);
|
||||||
|
|
||||||
|
AjaxResult updateSealLockStatus(DeptIdentify deptIdentify);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -729,7 +729,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
|
|||||||
//财产保全
|
//财产保全
|
||||||
Integer properPreser = caseApplication1.getProperPreser();
|
Integer properPreser = caseApplication1.getProperPreser();
|
||||||
String preservation = "本案受理后,申请人向仲裁委提交了财产保全申请,仲裁委根据《中华人民共和国仲裁法》" +
|
String preservation = "本案受理后,申请人向仲裁委提交了财产保全申请,仲裁委根据《中华人民共和国仲裁法》" +
|
||||||
"第二十八条之规定,将该申请提交至XXX市XXX区法院。";
|
"第二十八条之规定,将该申请提交至法院。";
|
||||||
if (properPreser == null) {
|
if (properPreser == null) {
|
||||||
datas.put("preservation", null);
|
datas.put("preservation", null);
|
||||||
} else if (properPreser == 1) {
|
} else if (properPreser == 1) {
|
||||||
|
|||||||
+30
-1
@@ -113,6 +113,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
private DeptIdentifyMapper deptIdentifyMapper;
|
private DeptIdentifyMapper deptIdentifyMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReservedConferenceMapper reservedConferenceMapper;
|
private ReservedConferenceMapper reservedConferenceMapper;
|
||||||
|
@Autowired
|
||||||
|
private SysDeptMapper deptMapper;
|
||||||
// 手机号正则
|
// 手机号正则
|
||||||
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}$");
|
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}$");
|
||||||
|
|
||||||
@@ -1753,7 +1755,25 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EsignHttpResponse response3 = SignAward.createByFile(sealSignRecord);
|
DeptIdentify deptIdentify1 = new DeptIdentify();
|
||||||
|
deptIdentify1.setSealStatus(1); // 印章状态为启用
|
||||||
|
//根据机构名称查询部门id
|
||||||
|
SysDept sysDept = new SysDept();
|
||||||
|
sysDept.setDeptName(sealSignRecord.getOrgnizeName());
|
||||||
|
List<SysDept> sysDepts = deptMapper.selectDeptList(sysDept);
|
||||||
|
if (sysDepts != null && sysDepts.size() > 0) {
|
||||||
|
Long deptId = sysDepts.get(0).getDeptId();
|
||||||
|
deptIdentify1.setDeptId(deptId);
|
||||||
|
}
|
||||||
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentifylistother(deptIdentify1);
|
||||||
|
List<String> sealIds = new ArrayList<>();
|
||||||
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||||||
|
for (DeptIdentify identify : deptIdentifies) {
|
||||||
|
String sealId = identify.getSealId();
|
||||||
|
sealIds.add(sealId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EsignHttpResponse response3 = SignAward.createByFile(sealSignRecord,sealIds);
|
||||||
JSONObject jsonObject3 = JSONObject.parseObject(response3.getBody());
|
JSONObject jsonObject3 = JSONObject.parseObject(response3.getBody());
|
||||||
if (jsonObject3.getIntValue("code") == 0) {
|
if (jsonObject3.getIntValue("code") == 0) {
|
||||||
//获取签署流程ID
|
//获取签署流程ID
|
||||||
@@ -1903,6 +1923,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
|
|
||||||
for (CaseAffiliate caseAffiliate : caseAffiliates) {
|
for (CaseAffiliate caseAffiliate : caseAffiliates) {
|
||||||
request.setPhone(caseAffiliate.getContactTelphone());
|
request.setPhone(caseAffiliate.getContactTelphone());
|
||||||
|
request.setTemplateParamSet(new String[]{caseAffiliate.getName(), caseApplicationselect.getCaseNum(), messageVO.getRoomNo() + caseAffiliate.getUserId()});
|
||||||
|
// 1952136 普通短信 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请在浏览器打开https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 请知晓,如非本人操作,请忽略本短信。
|
||||||
String userId = (null==caseAffiliate.getUserId()?"" : caseAffiliate.getUserId());
|
String userId = (null==caseAffiliate.getUserId()?"" : caseAffiliate.getUserId());
|
||||||
if(messageVO.getScheduleStartTime()==null) {
|
if(messageVO.getScheduleStartTime()==null) {
|
||||||
// 1983692 开庭审理创建会议通知 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。
|
// 1983692 开庭审理创建会议通知 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。
|
||||||
@@ -1943,6 +1965,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
}
|
}
|
||||||
return returnResult;
|
return returnResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException {
|
public SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException {
|
||||||
SealSignRecord sealSignRecord = new SealSignRecord();
|
SealSignRecord sealSignRecord = new SealSignRecord();
|
||||||
@@ -2486,6 +2509,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取userSign,默认过期时间10小时
|
* 获取userSign,默认过期时间10小时
|
||||||
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -2497,6 +2521,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 预约会议
|
* 预约会议
|
||||||
|
*
|
||||||
* @param reservedConferenceVO
|
* @param reservedConferenceVO
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@@ -2522,6 +2547,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
JSONObject roomParams = new JSONObject();
|
JSONObject roomParams = new JSONObject();
|
||||||
bodyParams.put("ownerId", reservedConferenceVO.getOwnerId());
|
bodyParams.put("ownerId", reservedConferenceVO.getOwnerId());
|
||||||
bodyParams.put("roomId", reservedConferenceVO.getRoomId());
|
bodyParams.put("roomId", reservedConferenceVO.getRoomId());
|
||||||
|
bodyParams.put("scheduleStartTime", startTime);
|
||||||
|
bodyParams.put("scheduleEndTime", endTime);
|
||||||
|
|
||||||
bodyParams.put("scheduleStartTime",startTime.getTime()/1000 );
|
bodyParams.put("scheduleStartTime",startTime.getTime()/1000 );
|
||||||
bodyParams.put("scheduleEndTime",endTime.getTime()/1000);
|
bodyParams.put("scheduleEndTime",endTime.getTime()/1000);
|
||||||
roomParams.put("roomType", 1);
|
roomParams.put("roomType", 1);
|
||||||
@@ -2565,6 +2593,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 销毁房间回调
|
* 销毁房间回调
|
||||||
|
*
|
||||||
* @param body
|
* @param body
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
|
|||||||
+38
-4
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.service.impl;
|
package com.ruoyi.wisdomarbitrate.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.deepoove.poi.data.PictureRenderData;
|
||||||
import com.ruoyi.common.constant.CaseApplicationConstants;
|
import com.ruoyi.common.constant.CaseApplicationConstants;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
@@ -8,6 +9,7 @@ import com.ruoyi.common.utils.WordUtil;
|
|||||||
import com.ruoyi.wisdomarbitrate.domain.*;
|
import com.ruoyi.wisdomarbitrate.domain.*;
|
||||||
import com.ruoyi.wisdomarbitrate.mapper.*;
|
import com.ruoyi.wisdomarbitrate.mapper.*;
|
||||||
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
|
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
|
||||||
|
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
|
||||||
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
|
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
|
||||||
import com.ruoyi.common.utils.SmsUtils;
|
import com.ruoyi.common.utils.SmsUtils;
|
||||||
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
|
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
|
||||||
@@ -28,6 +30,7 @@ import java.time.LocalDate;
|
|||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.ruoyi.common.utils.SecurityUtils.getUsername;
|
import static com.ruoyi.common.utils.SecurityUtils.getUsername;
|
||||||
@@ -50,6 +53,8 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
|||||||
private IAdjudicationService adjudicationService;
|
private IAdjudicationService adjudicationService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
@Autowired
|
||||||
|
private ICaseApplicationService caseApplicationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -346,7 +351,12 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
|||||||
} else if (identityType == 2) { //被申请人
|
} else if (identityType == 2) { //被申请人
|
||||||
datas.put("resName", affiliate.getName());
|
datas.put("resName", affiliate.getName());
|
||||||
datas.put("resAddress", affiliate.getResidenAffili());
|
datas.put("resAddress", affiliate.getResidenAffili());
|
||||||
datas.put("resSex", affiliate.getResponSex());
|
String responSex = affiliate.getResponSex();
|
||||||
|
if (responSex.equals("0")) {
|
||||||
|
datas.put("resSex", "男");
|
||||||
|
} else {
|
||||||
|
datas.put("resSex", "女");
|
||||||
|
}
|
||||||
Date responBirth = affiliate.getResponBirth();
|
Date responBirth = affiliate.getResponBirth();
|
||||||
if (responBirth != null) {
|
if (responBirth != null) {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
@@ -495,10 +505,34 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
|||||||
}
|
}
|
||||||
datas.put("claims", caseApplication1.getArbitratClaims());
|
datas.put("claims", caseApplication1.getArbitratClaims());
|
||||||
datas.put("request", caseApplication1.getRequestRule());
|
datas.put("request", caseApplication1.getRequestRule());
|
||||||
|
CaseApplication caseApplication2 = caseApplicationService.selectCaseApplication(caseApplication);
|
||||||
|
List<CaseAttach> caseAttachList1 = caseApplication2.getCaseAttachList();
|
||||||
|
if (caseAttachList1 != null && caseAttachList1.size() > 0) {
|
||||||
|
for (CaseAttach caseAttach : caseAttachList1) {
|
||||||
|
if (caseAttach.getAnnexType() == 6) { //被申请人证据材料
|
||||||
|
String annexName = caseAttach.getAnnexName();
|
||||||
|
boolean isImageFile = Pattern.matches(".*\\.(jpg|png|gif|bmp)$", annexName);
|
||||||
|
if (isImageFile) {
|
||||||
|
String annexPath = "/home/ruoyi" + caseAttach.getAnnexPath();
|
||||||
|
System.out.println("路径是===========" + annexPath);
|
||||||
|
PictureRenderData pictureRenderData = WordUtil
|
||||||
|
.rebuildImageContent(100, 100, null, annexPath);
|
||||||
|
datas.put("resEvidenceMaterial", pictureRenderData);
|
||||||
|
}
|
||||||
|
} else if (caseAttach.getAnnexType() == 2) { //申请人证据材料
|
||||||
|
String annexName = caseAttach.getAnnexName();
|
||||||
|
boolean isImageFile = Pattern.matches(".*\\.(jpg|png|gif|bmp)$", annexName);
|
||||||
|
if (isImageFile) {
|
||||||
|
String annexPath = "/home/ruoyi" + caseAttach.getAnnexPath();
|
||||||
|
System.out.println("路径是===========" + annexPath);
|
||||||
|
PictureRenderData pictureRenderData = WordUtil
|
||||||
|
.rebuildImageContent(100, 100, null, annexPath);
|
||||||
//申请人证据材料
|
//申请人证据材料
|
||||||
datas.put("appEvidenceMaterial", null);
|
datas.put("appEvidenceMaterial", pictureRenderData);
|
||||||
//被申请人证据材料
|
}
|
||||||
datas.put("resEvidenceMaterial", null);
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
datas.put("applicaCrossOpin", caseApplication1.getApplicaCrossOpin());
|
datas.put("applicaCrossOpin", caseApplication1.getApplicaCrossOpin());
|
||||||
if (arbitrateRecord1 != null) {
|
if (arbitrateRecord1 != null) {
|
||||||
datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
|
datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
|
||||||
|
|||||||
+180
-2
@@ -1,26 +1,42 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.service.impl;
|
package com.ruoyi.wisdomarbitrate.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
|
import com.ruoyi.common.constant.FileTransformation;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
||||||
import com.ruoyi.common.exception.EsignDemoException;
|
import com.ruoyi.common.exception.EsignDemoException;
|
||||||
|
import com.ruoyi.common.utils.SealUtil;
|
||||||
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||||
|
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||||
|
import com.ruoyi.wisdomarbitrate.domain.vo.SealListVO;
|
||||||
|
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
|
||||||
import com.ruoyi.wisdomarbitrate.mapper.DeptIdentifyMapper;
|
import com.ruoyi.wisdomarbitrate.mapper.DeptIdentifyMapper;
|
||||||
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
|
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
|
||||||
import com.ruoyi.wisdomarbitrate.utils.SignAward;
|
import com.ruoyi.wisdomarbitrate.utils.SignAward;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DeptIdentifyMapper deptIdentifyMapper;
|
private DeptIdentifyMapper deptIdentifyMapper;
|
||||||
|
@Autowired
|
||||||
|
private CaseAttachMapper caseAttachMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,13 +70,16 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
|||||||
DeptIdentify deptIdentifyselect = deptIdentifysnew.get(0);
|
DeptIdentify deptIdentifyselect = deptIdentifysnew.get(0);
|
||||||
EsignHttpResponse identifyUrl = SignAward.deptIdentifyUrl(deptIdentifyselect);
|
EsignHttpResponse identifyUrl = SignAward.deptIdentifyUrl(deptIdentifyselect);
|
||||||
JsonObject signUrlJsonObject = gson.fromJson(identifyUrl.getBody(), JsonObject.class);
|
JsonObject signUrlJsonObject = gson.fromJson(identifyUrl.getBody(), JsonObject.class);
|
||||||
|
int code = signUrlJsonObject.get("code").getAsInt();
|
||||||
JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
|
JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
|
||||||
String url = signUrlData.get("authUrl").getAsString();
|
String url = signUrlData.get("authUrl").getAsString();
|
||||||
|
//获取本次认证授权流程ID
|
||||||
|
String authFlowId = signUrlData.get("authFlowId").getAsString();
|
||||||
|
deptIdentify.setAuthFlowId(authFlowId);
|
||||||
deptIdentifynew.setIdentifyUrl(url);
|
deptIdentifynew.setIdentifyUrl(url);
|
||||||
}
|
|
||||||
|
|
||||||
deptIdentify.setIdentifyDate(new Date());
|
deptIdentify.setIdentifyDate(new Date());
|
||||||
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentify);
|
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentify);
|
||||||
|
}
|
||||||
return deptIdentifynew;
|
return deptIdentifynew;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,5 +112,164 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult sealUpload(DeptIdentify deptIdentify, MultipartFile file) {
|
||||||
|
try {
|
||||||
|
if (file.isEmpty()) {
|
||||||
|
return AjaxResult.error("请选择要上传的文件");
|
||||||
|
}
|
||||||
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
|
// 上传
|
||||||
|
String fileName = FileUploadUtils.upload(filePath, file);
|
||||||
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentifyBydeptid(deptIdentify);
|
||||||
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||||||
|
for (DeptIdentify identify : deptIdentifies) {
|
||||||
|
//先判断企业用户是否授予资源管理权限
|
||||||
|
String authFlowId = identify.getAuthFlowId();
|
||||||
|
EsignHttpResponse response1 = SealUtil.queryAuthProcess(authFlowId);
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(response1.getBody());
|
||||||
|
int authorizedStatus = jsonObject1.getJSONObject("data").getIntValue("authorizedStatus");
|
||||||
|
if (authorizedStatus == 1) {//授权流程状态 0流程过期失效 1已授权 2授权中 3审批未通过
|
||||||
|
String prefix = "/profile";
|
||||||
|
int startIndex = fileName.indexOf(prefix);
|
||||||
|
startIndex += prefix.length();
|
||||||
|
String annexPath = "/uploadPath" + fileName.substring(startIndex);
|
||||||
|
//创建机构图片印章
|
||||||
|
EsignHttpResponse response = SignAward.createOrgByImage(identify, annexPath);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(response.getBody());
|
||||||
|
int code = jsonObject.getIntValue("code");
|
||||||
|
if (code == 0) { //业务码,0表示成功,非0表示异常。
|
||||||
|
String sealId = jsonObject.getJSONObject("data").getString("sealId");
|
||||||
|
identify.setSealId(sealId);
|
||||||
|
identify.setIsUse(0); //设置印章使用状态为未启用
|
||||||
|
//保存到表里
|
||||||
|
int i = deptIdentifyMapper.updateDeptIdentify(identify);
|
||||||
|
if (i > 0) {
|
||||||
|
return AjaxResult.success("上传成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return AjaxResult.error("企业用户未授予资源管理权限");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (EsignDemoException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return AjaxResult.error();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult receiveNotify(String body) {
|
||||||
|
/* 请求Body数据格式如下:
|
||||||
|
{
|
||||||
|
"action":"SEAL_AUDIT",
|
||||||
|
"auditStatus":1,
|
||||||
|
"psnId":"c7e00294**41e7",
|
||||||
|
"rejectReason":"",
|
||||||
|
"sealBizType":"COMMON",
|
||||||
|
"sealId":"af80ba0f-xx-xx-xx-a2da292d7f7f",
|
||||||
|
"sealName":"赵四的图片印章",
|
||||||
|
"statusDescription":"通过"
|
||||||
|
}*/
|
||||||
|
//解析body数据
|
||||||
|
try {
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(body);
|
||||||
|
String action = jsonObject.getString("action");
|
||||||
|
if (action.equals("SEAL_AUDIT")) { //SEAL_AUDIT表示图片印章审核结果通知
|
||||||
|
String auditStatus = jsonObject.getString("auditStatus");
|
||||||
|
if (auditStatus.equals("1")) { //图片印章审核结果 1通过 ,0驳回
|
||||||
|
//审核通过,拿到印章id和机构账号ID
|
||||||
|
String orgId = jsonObject.getString("orgId");
|
||||||
|
String sealId = jsonObject.getString("sealId");
|
||||||
|
//查询指定印章详情(机构)
|
||||||
|
EsignHttpResponse response = SignAward.getOrgSeal(orgId, sealId);
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(response.getBody());
|
||||||
|
if (jsonObject1.getIntValue("code") == 0) { //业务码,0表示成功,非0表示异常。
|
||||||
|
int sealStatus = jsonObject1.getJSONObject("data").getIntValue("sealStatus");
|
||||||
|
if (sealStatus == 1) { //印章状态 1已启用,2待审核,3审核不通过,4 挂起
|
||||||
|
String sealImageDownloadUrl = jsonObject1.getString("sealImageDownloadUrl");
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(sealImageDownloadUrl, resultFilePath);
|
||||||
|
if (downLoadFile) {
|
||||||
|
CaseAttach caseAttach = new CaseAttach();
|
||||||
|
caseAttach.setAnnexType(10); //10代表印章图片
|
||||||
|
caseAttach.setAnnexPath(savePath);
|
||||||
|
caseAttach.setAnnexName(saveName);
|
||||||
|
int i1 = caseAttachMapper.save(caseAttach);
|
||||||
|
if (i1 > 0) {
|
||||||
|
//将附件id保存到公章管理表里
|
||||||
|
Integer annexId1 = caseAttach.getAnnexId();
|
||||||
|
DeptIdentify identify = new DeptIdentify();
|
||||||
|
identify.setSealId(sealId);
|
||||||
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentify(identify);
|
||||||
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||||||
|
DeptIdentify identify1 = deptIdentifies.get(0);
|
||||||
|
identify1.setAnnexId(annexId1);
|
||||||
|
identify1.setSealStatus(1); //启用
|
||||||
|
deptIdentifyMapper.updateDeptIdentify(identify1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (EsignDemoException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return new AjaxResult(200, "success");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SealListVO> getSealList(DeptIdentify deptIdentify) {
|
||||||
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentifylistother(deptIdentify);
|
||||||
|
List<SealListVO> sealListVOS = new ArrayList<>();
|
||||||
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||||||
|
for (DeptIdentify identify : deptIdentifies) {
|
||||||
|
SealListVO sealListVO = new SealListVO();
|
||||||
|
sealListVO.setSealId(identify.getSealId());
|
||||||
|
sealListVO.setSealName(identify.getSealName());
|
||||||
|
sealListVO.setSealStatus(identify.getSealStatus());
|
||||||
|
Integer annexId = identify.getAnnexId();
|
||||||
|
//根据附件id查询路径
|
||||||
|
CaseAttach caseAttach = caseAttachMapper.queryAnnexById(annexId);
|
||||||
|
String annexName = caseAttach.getAnnexName();
|
||||||
|
String prefix = "/profile";
|
||||||
|
int startIndex = annexName.indexOf(prefix);
|
||||||
|
startIndex += prefix.length();
|
||||||
|
String annexPath = "/uploadPath" + annexName.substring(startIndex);
|
||||||
|
sealListVO.setAnnexPath(annexPath);
|
||||||
|
sealListVO.setAnnexType(caseAttach.getAnnexType());
|
||||||
|
sealListVOS.add(sealListVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sealListVOS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult updateSealLockStatus(DeptIdentify deptIdentify) {
|
||||||
|
deptIdentifyMapper.updateDeptIdentify(deptIdentify);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+80
-6
@@ -1,5 +1,7 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.utils;
|
package com.ruoyi.wisdomarbitrate.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@@ -7,6 +9,7 @@ import com.ruoyi.common.constant.CaseApplicationConstants;
|
|||||||
import com.ruoyi.common.constant.FileTransformation;
|
import com.ruoyi.common.constant.FileTransformation;
|
||||||
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
||||||
import com.ruoyi.common.exception.EsignDemoException;
|
import com.ruoyi.common.exception.EsignDemoException;
|
||||||
|
import com.ruoyi.common.utils.SealUtil;
|
||||||
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
|
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
|
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
|
||||||
@@ -168,7 +171,6 @@ public class FixSelectFlowDetailUtils {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Scheduled(cron = "0/30 * * * * ?")
|
@Scheduled(cron = "0/30 * * * * ?")
|
||||||
@Transactional
|
@Transactional
|
||||||
public void fixExecuteSelectDeptIndentifyUtils() throws EsignDemoException {
|
public void fixExecuteSelectDeptIndentifyUtils() throws EsignDemoException {
|
||||||
@@ -182,9 +184,12 @@ public class FixSelectFlowDetailUtils {
|
|||||||
JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
|
JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
|
||||||
JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
|
JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
|
||||||
int realnameStatus = identifyInfoData.get("realnameStatus").getAsInt();
|
int realnameStatus = identifyInfoData.get("realnameStatus").getAsInt();
|
||||||
String orgId = identifyInfoData.get("orgId").getAsString();
|
|
||||||
if (realnameStatus == 1) {
|
if (realnameStatus == 1) {
|
||||||
|
String orgId = identifyInfoData.get("orgId").getAsString();
|
||||||
EsignHttpResponse identifyInfo1 = SignAward.deptIdentifySealList(orgId);
|
EsignHttpResponse identifyInfo1 = SignAward.deptIdentifySealList(orgId);
|
||||||
|
//将orgId保存到数据库里
|
||||||
|
DeptIdentify deptIdentifynew = deptIdentifysnew.get(i);
|
||||||
|
deptIdentifynew.setOrgId(orgId);
|
||||||
JsonObject identifyInfoJsonObject1 = gson.fromJson(identifyInfo1.getBody(), JsonObject.class);
|
JsonObject identifyInfoJsonObject1 = gson.fromJson(identifyInfo1.getBody(), JsonObject.class);
|
||||||
JsonObject identifyInfoData1 = identifyInfoJsonObject1.getAsJsonObject("data");
|
JsonObject identifyInfoData1 = identifyInfoJsonObject1.getAsJsonObject("data");
|
||||||
JsonArray sealArray = identifyInfoData1.get("seals").getAsJsonArray();
|
JsonArray sealArray = identifyInfoData1.get("seals").getAsJsonArray();
|
||||||
@@ -198,16 +203,85 @@ public class FixSelectFlowDetailUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String sealName = sealNames.substring(0, sealNames.length() - 1);
|
String sealName = sealNames.substring(0, sealNames.length() - 1);
|
||||||
DeptIdentify deptIdentifynew = deptIdentifysnew.get(i);
|
|
||||||
deptIdentifynew.setIdentifyStatus(1);
|
deptIdentifynew.setIdentifyStatus(1);
|
||||||
deptIdentifynew.setSealName(sealName);
|
deptIdentifynew.setSealName(sealName);
|
||||||
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentifynew);
|
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentifynew);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定时查询企业内部印章审核状态
|
||||||
|
*
|
||||||
|
* @throws EsignDemoException
|
||||||
|
*/
|
||||||
|
// @Scheduled(cron = "0/30 * * * * ?")
|
||||||
|
@Transactional
|
||||||
|
public void searchForInstitutionalSeal() {
|
||||||
|
try {
|
||||||
|
DeptIdentify deptIdentify = new DeptIdentify();
|
||||||
|
deptIdentify.setIsUse(0);
|
||||||
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentifylist(deptIdentify);
|
||||||
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||||||
|
for (DeptIdentify identify : deptIdentifies) {
|
||||||
|
//查询企业内部印章
|
||||||
|
Integer annexId = identify.getAnnexId();
|
||||||
|
if (annexId == null){
|
||||||
|
//说明之前没有下载过
|
||||||
|
EsignHttpResponse response = SignAward.orgOwnSealList(identify);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(response.getBody());
|
||||||
|
JSONObject data = jsonObject.getJSONObject("data");
|
||||||
|
JSONArray seals = data.getJSONArray("seals");
|
||||||
|
for (int i = 0; i < seals.size(); i++){
|
||||||
|
JSONObject seal = seals.getJSONObject(i);
|
||||||
|
int statusDescription = seal.getIntValue("statusDescription");
|
||||||
|
if (statusDescription==1){//印章状态 1已启用,2待审核,3审核不通过,4 挂起
|
||||||
|
//已启用证明审核通过,下载到数据库
|
||||||
|
String sealImageDownloadUrl = seal.getString("sealImageDownloadUrl");
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(sealImageDownloadUrl, resultFilePath);
|
||||||
|
if (downLoadFile) {
|
||||||
|
CaseAttach caseAttach = new CaseAttach();
|
||||||
|
caseAttach.setAnnexType(10); //10代表印章图片
|
||||||
|
caseAttach.setAnnexPath(savePath);
|
||||||
|
caseAttach.setAnnexName(saveName);
|
||||||
|
int i1 = caseAttachMapper.save(caseAttach);
|
||||||
|
if (i1>0){
|
||||||
|
//将附件id保存到公章管理表里
|
||||||
|
Integer annexId1 = caseAttach.getAnnexId();
|
||||||
|
identify.setAnnexId(annexId1);
|
||||||
|
deptIdentifyMapper.updateDeptIdentify(identify);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (EsignDemoException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.utils;
|
package com.ruoyi.wisdomarbitrate.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@@ -9,11 +10,13 @@ import com.ruoyi.common.exception.EsignDemoException;
|
|||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.EsignApplicaConfig;
|
import com.ruoyi.common.utils.EsignApplicaConfig;
|
||||||
import com.ruoyi.common.utils.EsignHttpHelper;
|
import com.ruoyi.common.utils.EsignHttpHelper;
|
||||||
|
import com.ruoyi.common.utils.SealUtil;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
|
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class SignAward {
|
public class SignAward {
|
||||||
@@ -23,7 +26,6 @@ public class SignAward {
|
|||||||
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws EsignDemoException {
|
public static void main(String[] args) throws EsignDemoException {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
|
|
||||||
@@ -89,8 +91,6 @@ public class SignAward {
|
|||||||
// System.out.println("机构印章名称:" +sealNames.substring(0,sealNames.length()-1));
|
// System.out.println("机构印章名称:" +sealNames.substring(0,sealNames.length()-1));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//查询签署流程详情
|
//查询签署流程详情
|
||||||
// EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord);
|
// EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord);
|
||||||
// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
|
// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
|
||||||
@@ -120,14 +120,12 @@ public class SignAward {
|
|||||||
// System.out.println(signFlowDetailJsonObject);
|
// System.out.println(signFlowDetailJsonObject);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询签署流程详情
|
* 查询签署流程详情
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static EsignHttpResponse signFlowDetail(SealSignRecord sealSignRecord) throws EsignDemoException {
|
public static EsignHttpResponse signFlowDetail(SealSignRecord sealSignRecord) throws EsignDemoException {
|
||||||
@@ -137,18 +135,19 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.GET;
|
EsignRequestType requestType = EsignRequestType.GET;
|
||||||
//生成签名鉴权方式的的header
|
//生成签名鉴权方式的的header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发起签署
|
* 发起签署
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
* @throws EsignDemoException
|
* @throws EsignDemoException
|
||||||
*/
|
*/
|
||||||
public static EsignHttpResponse createByFile(SealSignRecord sealSignRecord) throws EsignDemoException {
|
public static EsignHttpResponse createByFile(SealSignRecord sealSignRecord, List<String> sealIds) throws EsignDemoException {
|
||||||
String apiaddr = "/v3/sign-flow/create-by-file";
|
String apiaddr = "/v3/sign-flow/create-by-file";
|
||||||
|
|
||||||
String fileId = sealSignRecord.getFileid();
|
String fileId = sealSignRecord.getFileid();
|
||||||
@@ -169,7 +168,6 @@ public class SignAward {
|
|||||||
double positionXorg = sealSignRecord.getPositionXorg();
|
double positionXorg = sealSignRecord.getPositionXorg();
|
||||||
double positionYorg = sealSignRecord.getPositionYorg();
|
double positionYorg = sealSignRecord.getPositionYorg();
|
||||||
|
|
||||||
String availableSealId = "209af82b-5f87-4e0a-b0d8-cc4923b6e652";
|
|
||||||
|
|
||||||
String jsonParm = "{\n" +
|
String jsonParm = "{\n" +
|
||||||
" \"docs\": [\n" +
|
" \"docs\": [\n" +
|
||||||
@@ -247,7 +245,7 @@ public class SignAward {
|
|||||||
" \"freeMode\": false,\n" +
|
" \"freeMode\": false,\n" +
|
||||||
|
|
||||||
" \"availableSealIds\": [\n" +
|
" \"availableSealIds\": [\n" +
|
||||||
" \"" + availableSealId + "\"\n" +
|
" \"" + sealIds + "\"\n" +
|
||||||
" ],\n" +
|
" ],\n" +
|
||||||
|
|
||||||
|
|
||||||
@@ -270,13 +268,14 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.POST;
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
//生成请求签名鉴权方式的Header
|
//生成请求签名鉴权方式的Header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取合同文件签名链接
|
* 获取合同文件签名链接
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
* @throws EsignDemoException
|
* @throws EsignDemoException
|
||||||
*/
|
*/
|
||||||
@@ -297,13 +296,14 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.POST;
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
//生成请求签名鉴权方式的Header
|
//生成请求签名鉴权方式的Header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取合同文件用印链接
|
* 获取合同文件用印链接
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
* @throws EsignDemoException
|
* @throws EsignDemoException
|
||||||
*/
|
*/
|
||||||
@@ -327,15 +327,15 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.POST;
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
//生成请求签名鉴权方式的Header
|
//生成请求签名鉴权方式的Header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取机构认证链接
|
* 获取机构认证&授权页面链接
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
* @throws EsignDemoException
|
|
||||||
*/
|
*/
|
||||||
public static EsignHttpResponse deptIdentifyUrl(DeptIdentify deptIdentify) throws EsignDemoException {
|
public static EsignHttpResponse deptIdentifyUrl(DeptIdentify deptIdentify) throws EsignDemoException {
|
||||||
String apiaddr = "/v3/org-auth-url";
|
String apiaddr = "/v3/org-auth-url";
|
||||||
@@ -351,16 +351,26 @@ public class SignAward {
|
|||||||
" \"psnName\": \"" + nickName + "\",\n" +
|
" \"psnName\": \"" + nickName + "\",\n" +
|
||||||
" \"psnMobile\": \"" + phonenumber + "\"\n" +
|
" \"psnMobile\": \"" + phonenumber + "\"\n" +
|
||||||
" }\n" +
|
" }\n" +
|
||||||
|
|
||||||
" }\n" +
|
" }\n" +
|
||||||
|
" },\n" +
|
||||||
|
" \"authorizeConfig\": {\n" +
|
||||||
|
" \"authorizedScopes\": [\n" +
|
||||||
|
" \"get_org_identity_info\",\n" +
|
||||||
|
" \"get_psn_identity_info\",\n" +
|
||||||
|
" \"org_initiate_sign\",\n" +
|
||||||
|
" \"psn_initiate_sign\",\n" +
|
||||||
|
" \"manage_org_resource\",\n" +
|
||||||
|
" \"manage_psn_resource\",\n" +
|
||||||
|
" \"use_org_order\"\n" +
|
||||||
|
" ]\n" +
|
||||||
" }\n" +
|
" }\n" +
|
||||||
"}";
|
"}";
|
||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.POST;
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
//生成请求签名鉴权方式的Header
|
//生成请求签名鉴权方式的Header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -373,10 +383,11 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.GET;
|
EsignRequestType requestType = EsignRequestType.GET;
|
||||||
//生成签名鉴权方式的的header
|
//生成签名鉴权方式的的header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询企业认证印章信息
|
* 查询企业认证印章信息
|
||||||
*/
|
*/
|
||||||
@@ -388,15 +399,15 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.GET;
|
EsignRequestType requestType = EsignRequestType.GET;
|
||||||
//生成签名鉴权方式的的header
|
//生成签名鉴权方式的的header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取文件签名印章位置
|
* 获取文件签名印章位置
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
* @throws EsignDemoException
|
* @throws EsignDemoException
|
||||||
*/
|
*/
|
||||||
@@ -412,12 +423,96 @@ public class SignAward {
|
|||||||
//请求方法
|
//请求方法
|
||||||
EsignRequestType requestType = EsignRequestType.POST;
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
//生成请求签名鉴权方式的Header
|
//生成请求签名鉴权方式的Header
|
||||||
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建机构图片印章
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse createOrgByImage(DeptIdentify deptIdentify, String filePath) throws EsignDemoException {
|
||||||
|
//获取认证授权流程ID
|
||||||
|
String authFlowId = deptIdentify.getAuthFlowId();
|
||||||
|
//查询认证授权流程详情
|
||||||
|
EsignHttpResponse response = SealUtil.queryAuthProcess(authFlowId);
|
||||||
|
String body = response.getBody();
|
||||||
|
if (body != null) {
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(body);
|
||||||
|
//查询授权流程状态
|
||||||
|
int authorizedStatus = jsonObject.getJSONObject("data").getIntValue("authorizedStatus");
|
||||||
|
if (authorizedStatus == 1) {//0 -流程过期失效 1 - 已授权 2 - 授权中 3 - 审批未通过
|
||||||
|
String apiaddr = "/v3/seals/org-seals/create-by-image";
|
||||||
|
String orgId = deptIdentify.getOrgId();
|
||||||
|
//上传印章图片
|
||||||
|
//步骤一:获取印章图片上传地址fileUploadUrl
|
||||||
|
EsignHttpResponse response1 = SealUtil.getFileUploadUrl(filePath);
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(response1.getBody());
|
||||||
|
String fileUploadUrl = jsonObject1.getJSONObject("data").getString("fileUploadUrl");
|
||||||
|
//步骤二:将印章图片文件流上传到fileUploadUrl
|
||||||
|
EsignHttpResponse response2 = SealUtil.fileStreamUpload(fileUploadUrl, filePath);
|
||||||
|
JSONObject jsonObject2 = JSONObject.parseObject(response2.getBody());
|
||||||
|
int errCode = jsonObject2.getIntValue("errCode");
|
||||||
|
if (errCode == 0){ //业务码,0表示成功,非0表示异常。
|
||||||
|
//获取步骤一里面的fileKey
|
||||||
|
String sealImageFileKey = jsonObject1.getJSONObject("data").getString("fileKey");
|
||||||
|
String sealName = deptIdentify.getSealName();
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm = "{\n" +
|
||||||
|
" \"orgId\": \"" + orgId + "\",\n" +
|
||||||
|
" \"sealImageFileKey\": \"" + sealImageFileKey + "\",\n" +
|
||||||
|
" \"sealName\": \" " + sealName + " \",\n" +
|
||||||
|
" \"sealWidth\": 50,\n" +
|
||||||
|
" \"sealHeight\": 50,\n" +
|
||||||
|
"}";
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType = EsignRequestType.POST;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询企业内部印章
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static EsignHttpResponse orgOwnSealList(DeptIdentify deptIdentify) throws EsignDemoException {
|
||||||
|
String orgId=deptIdentify.getOrgId();
|
||||||
|
int pageNum=1;
|
||||||
|
int pageSize=20;
|
||||||
|
|
||||||
|
String apiaddr="/v3/seals/org-own-seal-list?orgId="+orgId+"&pageNum="+pageNum+"&pageSize="+pageSize;
|
||||||
|
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm=null;
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.GET;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,false);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,false);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查询指定印章详情(机构)
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static EsignHttpResponse getOrgSeal(String orgId,String sealId) throws EsignDemoException {
|
||||||
|
String apiaddr="/v3/seals/org-seal-info?orgId="+orgId+"&sealId="+sealId;
|
||||||
|
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm=null;
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.GET;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,false);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,10 +12,11 @@
|
|||||||
<result property="note" column="note" />
|
<result property="note" column="note" />
|
||||||
<result property="userId" column="use_id" />
|
<result property="userId" column="use_id" />
|
||||||
<result property="userName" column="use_account" />
|
<result property="userName" column="use_account" />
|
||||||
|
<result property="sealStatus" column="seal_status" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<insert id="save" useGeneratedKeys="true" keyProperty="annexId">
|
<insert id="save" useGeneratedKeys="true" keyProperty="annexId">
|
||||||
INSERT INTO case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account)
|
INSERT INTO case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account,seal_status)
|
||||||
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{userId},#{userName})
|
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{userId},#{userName},#{sealStatus})
|
||||||
</insert>
|
</insert>
|
||||||
<delete id="deleteByFileIds">
|
<delete id="deleteByFileIds">
|
||||||
delete from case_attach
|
delete from case_attach
|
||||||
@@ -62,6 +63,15 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="queryAnnexById" resultType="com.ruoyi.wisdomarbitrate.domain.CaseAttach">
|
||||||
|
select annex_id,annex_name,annex_path,annex_type,note,use_id,use_account
|
||||||
|
from case_attach
|
||||||
|
<where>
|
||||||
|
<if test="annexId != null ">
|
||||||
|
AND annex_id = #{annexId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
<update id="updateCaseAttach" parameterType="CaseAttach">
|
<update id="updateCaseAttach" parameterType="CaseAttach">
|
||||||
update case_attach
|
update case_attach
|
||||||
|
|||||||
@@ -14,6 +14,10 @@
|
|||||||
<result property="phonenumber" column="phonenumber" />
|
<result property="phonenumber" column="phonenumber" />
|
||||||
<result property="deptName" column="dept_name" />
|
<result property="deptName" column="dept_name" />
|
||||||
<result property="sealName" column="seal_name" />
|
<result property="sealName" column="seal_name" />
|
||||||
|
<result property="orgId" column="org_id" />
|
||||||
|
<result property="authFlowId" column="auth_flow_id" />
|
||||||
|
<result property="sealId" column="seal_id" />
|
||||||
|
<result property="sealStatus" column="seal_status" />
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
@@ -28,7 +32,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectDeptIdentifyBydeptid" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
<select id="selectDeptIdentifyBydeptid" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
||||||
SELECT d.id ,d.dept_id ,d.user_id
|
SELECT d.id ,d.dept_id ,d.user_id ,d.org_id ,d.auth_flow_id
|
||||||
from dept_identify d
|
from dept_identify d
|
||||||
<where>
|
<where>
|
||||||
<if test="deptId != null">
|
<if test="deptId != null">
|
||||||
@@ -53,8 +57,8 @@
|
|||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<select id="selectDeptIdentifylist" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
<select id="selectDeptIdentifylist" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
||||||
SELECT d.id ,d.dept_id ,d.user_id, d.identify_status ,d.identify_date ,d.is_use , d.seal_name, sd.dept_name ,
|
SELECT d.id ,d.dept_id ,d.user_id, d.identify_status ,d.identify_date ,d.is_use , d.seal_name,
|
||||||
u.nick_name ,u.phonenumber
|
d.org_id , d.seal_id ,sd.dept_name , u.nick_name ,u.phonenumber
|
||||||
from dept_identify d left join sys_dept sd on d.dept_id = sd.dept_id
|
from dept_identify d left join sys_dept sd on d.dept_id = sd.dept_id
|
||||||
left join sys_user u on u.user_id = d.user_id
|
left join sys_user u on u.user_id = d.user_id
|
||||||
<where>
|
<where>
|
||||||
@@ -71,18 +75,25 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectDeptIdentifylistother" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
<select id="selectDeptIdentifylistother" parameterType="DeptIdentify" resultMap="DeptIdentifyResult">
|
||||||
SELECT d.id ,d.dept_id ,d.user_id,d.identify_status ,d.is_use
|
SELECT d.id ,d.dept_id ,d.user_id,d.identify_status ,d.is_use ,d.sealName ,d.sealId ,d.annexId
|
||||||
from dept_identify d
|
from dept_identify d
|
||||||
<where>
|
<where>
|
||||||
<if test="identifyStatus != null">
|
<if test="identifyStatus != null">
|
||||||
AND d.identify_status = #{identifyStatus}
|
AND d.identify_status = #{identifyStatus}
|
||||||
</if>
|
</if>
|
||||||
<if test="id != null">
|
<if test="id != null">
|
||||||
AND d.id != #{id}
|
AND d.id = #{id}
|
||||||
|
</if>
|
||||||
|
<if test="sealStatus != null">
|
||||||
|
AND d.seal_status = #{sealStatus}
|
||||||
|
</if>
|
||||||
|
<if test="deptId != null">
|
||||||
|
AND d.dept_id = #{deptId}
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<update id="updateDeptIdentify" parameterType="DeptIdentify">
|
<update id="updateDeptIdentify" parameterType="DeptIdentify">
|
||||||
update dept_identify
|
update dept_identify
|
||||||
<set>
|
<set>
|
||||||
@@ -90,8 +101,17 @@
|
|||||||
<if test="isUse != null">is_use = #{isUse},</if>
|
<if test="isUse != null">is_use = #{isUse},</if>
|
||||||
<if test="identifyStatus != null ">identify_status = #{identifyStatus},</if>
|
<if test="identifyStatus != null ">identify_status = #{identifyStatus},</if>
|
||||||
<if test="sealName != null and sealName != ''">seal_name = #{sealName},</if>
|
<if test="sealName != null and sealName != ''">seal_name = #{sealName},</if>
|
||||||
|
<if test="sealId != null and sealId != ''">seal_id = #{sealId},</if>
|
||||||
|
<if test="sealStatus != null ">seal_status = #{sealStatus},</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
<where>
|
||||||
|
<if test="id != null">
|
||||||
|
AND d.id = #{id}
|
||||||
|
</if>
|
||||||
|
<if test="sealId != null">
|
||||||
|
AND seal_id = #{sealId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user