公章管理开发 #202
+49
-2
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.web.controller.wisdomarbitrate;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
@@ -9,16 +10,19 @@ import com.ruoyi.common.exception.EsignDemoException;
|
||||
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/deptIdentify")
|
||||
public class DeptIdentifyController extends BaseController {
|
||||
public class DeptIdentifyController extends BaseController {
|
||||
@Autowired
|
||||
private IDeptIdentifyService deptIdentifyService;
|
||||
|
||||
@@ -49,8 +53,51 @@ public class DeptIdentifyController extends BaseController {
|
||||
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
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.ruoyi.wisdomarbitrate.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class DeptIdentify extends BaseEntity {
|
||||
@@ -33,6 +32,56 @@ public class DeptIdentify extends BaseEntity {
|
||||
/** 印章名称 */
|
||||
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() {
|
||||
return sealName;
|
||||
}
|
||||
@@ -123,4 +172,12 @@ public class DeptIdentify extends BaseEntity {
|
||||
public void setIsUse(Integer 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);
|
||||
|
||||
List<CaseAttach> getCaseAttachByCaseIdAndType(CaseAttach caseAttach);
|
||||
|
||||
CaseAttach queryAnnexById(Integer annexId);
|
||||
}
|
||||
|
||||
@@ -19,4 +19,5 @@ public interface DeptIdentifyMapper {
|
||||
int updateDeptIdentify(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.exception.EsignDemoException;
|
||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||
import com.ruoyi.wisdomarbitrate.domain.vo.SealListVO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -15,4 +17,15 @@ public interface IDeptIdentifyService {
|
||||
DeptIdentify selectDeptIndefiUrl(DeptIdentify deptIdentify) throws EsignDemoException;
|
||||
|
||||
AjaxResult enableDept(DeptIdentify deptIdentify);
|
||||
|
||||
AjaxResult sealUpload(DeptIdentify deptIdentify, MultipartFile file);
|
||||
|
||||
|
||||
AjaxResult receiveNotify(String body);
|
||||
|
||||
List<SealListVO> getSealList(DeptIdentify deptIdentify);
|
||||
|
||||
AjaxResult updateSealLockStatus(DeptIdentify deptIdentify);
|
||||
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -296,9 +296,9 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
|
||||
String month = String.format("%02d", now.getMonthValue());
|
||||
String day = String.format("%02d", now.getDayOfMonth());
|
||||
String modalFilePath = "/data/arbitrate-document/template/新裁决书模板.docx";
|
||||
//String modalFilePath = "D:/develop/新裁决书模板.docx";
|
||||
// String modalFilePath = "D:/develop/新裁决书模板.docx";
|
||||
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||||
//String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day;
|
||||
// String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day;
|
||||
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
|
||||
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||
String resultFilePath = saveFolderPath + "/" + fileName;
|
||||
@@ -729,7 +729,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
|
||||
//财产保全
|
||||
Integer properPreser = caseApplication1.getProperPreser();
|
||||
String preservation = "本案受理后,申请人向仲裁委提交了财产保全申请,仲裁委根据《中华人民共和国仲裁法》" +
|
||||
"第二十八条之规定,将该申请提交至XXX市XXX区法院。";
|
||||
"第二十八条之规定,将该申请提交至法院。";
|
||||
if (properPreser == null) {
|
||||
datas.put("preservation", null);
|
||||
} else if (properPreser == 1) {
|
||||
|
||||
+33
-4
@@ -113,6 +113,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
private DeptIdentifyMapper deptIdentifyMapper;
|
||||
@Autowired
|
||||
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}$");
|
||||
|
||||
@@ -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());
|
||||
if (jsonObject3.getIntValue("code") == 0) {
|
||||
//获取签署流程ID
|
||||
@@ -1903,6 +1923,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
|
||||
for (CaseAffiliate caseAffiliate : caseAffiliates) {
|
||||
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());
|
||||
if(messageVO.getScheduleStartTime()==null) {
|
||||
// 1983692 开庭审理创建会议通知 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。
|
||||
@@ -1918,7 +1940,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
smsSendRecord.setCaseNum(caseApplicationselect.getCaseNum());
|
||||
smsSendRecord.setPhone(request.getPhone());
|
||||
smsSendRecord.setSendTime(new Date());
|
||||
String content="";
|
||||
String content = "";
|
||||
if(messageVO.getScheduleStartTime()==null) {
|
||||
content = "尊敬的" + caseAffiliate.getName() + "用户,您的" + caseApplicationselect.getCaseNum() + "仲裁案件,开庭审理房间号为" + messageVO.getRoomNo() + userId + ",请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。";
|
||||
}else {
|
||||
@@ -1943,6 +1965,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
}
|
||||
return returnResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException {
|
||||
SealSignRecord sealSignRecord = new SealSignRecord();
|
||||
@@ -2486,10 +2509,11 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
|
||||
/**
|
||||
* 获取userSign,默认过期时间10小时
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public String generateUserSign(String userId){
|
||||
public String generateUserSign(String userId) {
|
||||
TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, secretKey);
|
||||
return tlsSigAPIv2.genUserSig(userId, 60 * 60 * 10);
|
||||
}
|
||||
@@ -2497,6 +2521,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
|
||||
/**
|
||||
* 预约会议
|
||||
*
|
||||
* @param reservedConferenceVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
@@ -2514,7 +2539,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
Date endTime = reservedConferenceVO.getScheduleEndTime();
|
||||
Random rand = new Random();
|
||||
int random = rand.nextInt(214748365);
|
||||
String url="https://roomkit.trtc.tencent-cloud.com/room_api/v1/roomctl/create?usersig=" + userSign + "&identifier=" + administrator + "&sdkappid=" + sdkAppId + "&random=" +random + "&contenttype=json";
|
||||
String url = "https://roomkit.trtc.tencent-cloud.com/room_api/v1/roomctl/create?usersig=" + userSign + "&identifier=" + administrator + "&sdkappid=" + sdkAppId + "&random=" + random + "&contenttype=json";
|
||||
HttpPost post = new HttpPost(url);
|
||||
String result = "";
|
||||
//添加参数
|
||||
@@ -2522,6 +2547,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
JSONObject roomParams = new JSONObject();
|
||||
bodyParams.put("ownerId", reservedConferenceVO.getOwnerId());
|
||||
bodyParams.put("roomId", reservedConferenceVO.getRoomId());
|
||||
bodyParams.put("scheduleStartTime", startTime);
|
||||
bodyParams.put("scheduleEndTime", endTime);
|
||||
|
||||
bodyParams.put("scheduleStartTime",startTime.getTime()/1000 );
|
||||
bodyParams.put("scheduleEndTime",endTime.getTime()/1000);
|
||||
roomParams.put("roomType", 1);
|
||||
@@ -2565,6 +2593,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
||||
|
||||
/**
|
||||
* 销毁房间回调
|
||||
*
|
||||
* @param body
|
||||
* @param request
|
||||
*/
|
||||
|
||||
+39
-5
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.wisdomarbitrate.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.deepoove.poi.data.PictureRenderData;
|
||||
import com.ruoyi.common.constant.CaseApplicationConstants;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
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.mapper.*;
|
||||
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
|
||||
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
|
||||
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
|
||||
import com.ruoyi.common.utils.SmsUtils;
|
||||
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
|
||||
@@ -28,6 +30,7 @@ import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.ruoyi.common.utils.SecurityUtils.getUsername;
|
||||
@@ -50,6 +53,8 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
||||
private IAdjudicationService adjudicationService;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@Autowired
|
||||
private ICaseApplicationService caseApplicationService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -346,7 +351,12 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
||||
} else if (identityType == 2) { //被申请人
|
||||
datas.put("resName", affiliate.getName());
|
||||
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();
|
||||
if (responBirth != null) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
@@ -495,10 +505,34 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
|
||||
}
|
||||
datas.put("claims", caseApplication1.getArbitratClaims());
|
||||
datas.put("request", caseApplication1.getRequestRule());
|
||||
//申请人证据材料
|
||||
datas.put("appEvidenceMaterial", null);
|
||||
//被申请人证据材料
|
||||
datas.put("resEvidenceMaterial", null);
|
||||
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", pictureRenderData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
datas.put("applicaCrossOpin", caseApplication1.getApplicaCrossOpin());
|
||||
if (arbitrateRecord1 != null) {
|
||||
datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
|
||||
|
||||
+188
-10
@@ -1,39 +1,55 @@
|
||||
package com.ruoyi.wisdomarbitrate.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.gson.Gson;
|
||||
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.entity.EsignHttpResponse;
|
||||
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.vo.SealListVO;
|
||||
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
|
||||
import com.ruoyi.wisdomarbitrate.mapper.DeptIdentifyMapper;
|
||||
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
|
||||
import com.ruoyi.wisdomarbitrate.utils.SignAward;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import 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.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@Service
|
||||
public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
||||
|
||||
@Autowired
|
||||
private DeptIdentifyMapper deptIdentifyMapper;
|
||||
@Autowired
|
||||
private CaseAttachMapper caseAttachMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<DeptIdentify> selectDeptIdentify(DeptIdentify deptIdentify) {
|
||||
List<DeptIdentify> deptIdentifys = deptIdentifyMapper.selectDeptIdentify(deptIdentify);
|
||||
if(deptIdentifys!=null&&deptIdentifys.size()>0){
|
||||
if (deptIdentifys != null && deptIdentifys.size() > 0) {
|
||||
for (int i = 0; i < deptIdentifys.size(); i++) {
|
||||
DeptIdentify deptIdentifyselect = deptIdentifys.get(i);
|
||||
List<DeptIdentify> deptIdentifylist = deptIdentifyMapper.selectDeptIdentifyBydeptid(deptIdentifyselect);
|
||||
if(deptIdentifylist!=null&&deptIdentifylist.size()>0){
|
||||
if (deptIdentifylist != null && deptIdentifylist.size() > 0) {
|
||||
continue;
|
||||
}else {
|
||||
} else {
|
||||
deptIdentifyselect.setIdentifyStatus(0);
|
||||
deptIdentifyMapper.insertDeptIdentify(deptIdentifyselect);
|
||||
}
|
||||
@@ -49,18 +65,21 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
||||
public DeptIdentify selectDeptIndefiUrl(DeptIdentify deptIdentify) throws EsignDemoException {
|
||||
List<DeptIdentify> deptIdentifysnew = deptIdentifyMapper.selectDeptIdentifylist(deptIdentify);
|
||||
DeptIdentify deptIdentifynew = new DeptIdentify();
|
||||
if(deptIdentifysnew!=null&&deptIdentifysnew.size()>0){
|
||||
if (deptIdentifysnew != null && deptIdentifysnew.size() > 0) {
|
||||
Gson gson = new Gson();
|
||||
DeptIdentify deptIdentifyselect = deptIdentifysnew.get(0);
|
||||
EsignHttpResponse identifyUrl = SignAward.deptIdentifyUrl(deptIdentifyselect);
|
||||
JsonObject signUrlJsonObject = gson.fromJson(identifyUrl.getBody(), JsonObject.class);
|
||||
int code = signUrlJsonObject.get("code").getAsInt();
|
||||
JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
|
||||
String url = signUrlData.get("authUrl").getAsString();
|
||||
//获取本次认证授权流程ID
|
||||
String authFlowId = signUrlData.get("authFlowId").getAsString();
|
||||
deptIdentify.setAuthFlowId(authFlowId);
|
||||
deptIdentifynew.setIdentifyUrl(url);
|
||||
deptIdentify.setIdentifyDate(new Date());
|
||||
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentify);
|
||||
}
|
||||
|
||||
deptIdentify.setIdentifyDate(new Date());
|
||||
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentify);
|
||||
return deptIdentifynew;
|
||||
}
|
||||
|
||||
@@ -70,9 +89,9 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
||||
List<DeptIdentify> deptIdentifysnew = deptIdentifyMapper.selectDeptIdentifylist(deptIdentify);
|
||||
DeptIdentify deptIdentifyselect = deptIdentifysnew.get(0);
|
||||
Integer identifyStatus = deptIdentifyselect.getIdentifyStatus();
|
||||
if(identifyStatus.intValue()==0){
|
||||
if (identifyStatus.intValue() == 0) {
|
||||
return AjaxResult.error("这个认证数据未进行认证,不能启用");
|
||||
}else if(identifyStatus.intValue()==1){
|
||||
} else if (identifyStatus.intValue() == 1) {
|
||||
deptIdentifyselect.setIsUse(1);
|
||||
deptIdentifyMapper.updateDeptIdentify(deptIdentifyselect);
|
||||
|
||||
@@ -80,7 +99,7 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
|
||||
deptIdentifySel.setId(deptIdentify.getId());
|
||||
deptIdentifySel.setIdentifyStatus(1);
|
||||
List<DeptIdentify> deptIdentifysother = deptIdentifyMapper.selectDeptIdentifylistother(deptIdentifySel);
|
||||
if(deptIdentifysother!=null&&deptIdentifysother.size()>0){
|
||||
if (deptIdentifysother != null && deptIdentifysother.size() > 0) {
|
||||
for (int i = 0; i < deptIdentifysother.size(); i++) {
|
||||
DeptIdentify deptIdentifyother = deptIdentifysother.get(i);
|
||||
deptIdentifyother.setIsUse(0);
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
+119
-45
@@ -1,5 +1,7 @@
|
||||
package com.ruoyi.wisdomarbitrate.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
@@ -7,6 +9,7 @@ import com.ruoyi.common.constant.CaseApplicationConstants;
|
||||
import com.ruoyi.common.constant.FileTransformation;
|
||||
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
||||
import com.ruoyi.common.exception.EsignDemoException;
|
||||
import com.ruoyi.common.utils.SealUtil;
|
||||
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
|
||||
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
||||
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
|
||||
@@ -41,7 +44,7 @@ public class FixSelectFlowDetailUtils {
|
||||
|
||||
@Scheduled(cron = "0/10 * * * * ?")
|
||||
@Transactional
|
||||
public void fixExecuteSelectFlowDetailUtils(){
|
||||
public void fixExecuteSelectFlowDetailUtils() {
|
||||
Gson gson = new Gson();
|
||||
|
||||
SealSignRecord sealSignRecordselect = new SealSignRecord();
|
||||
@@ -49,40 +52,40 @@ public class FixSelectFlowDetailUtils {
|
||||
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecordbyStat(sealSignRecordselect);
|
||||
|
||||
try {
|
||||
if(sealSignRecords!=null&&sealSignRecords.size()>0){
|
||||
if (sealSignRecords != null && sealSignRecords.size() > 0) {
|
||||
for (int i = 0; i < sealSignRecords.size(); i++) {
|
||||
SealSignRecord sealSignRecord = sealSignRecords.get(i);
|
||||
EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord);
|
||||
JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
|
||||
JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(), JsonObject.class);
|
||||
JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
|
||||
JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
|
||||
Integer psnsignStatus = null;
|
||||
Integer orgsignStatus = null;
|
||||
for (int j = 0; j < signersArray.size(); j++) {
|
||||
JsonObject signerObject = (JsonObject)signersArray.get(j);
|
||||
JsonObject signerObject = (JsonObject) signersArray.get(j);
|
||||
|
||||
if(!(signerObject.get("psnSigner").toString()).equals("null")){
|
||||
if (!(signerObject.get("psnSigner").toString()).equals("null")) {
|
||||
JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
|
||||
if(psnSignerData!=null){
|
||||
if (psnSignerData != null) {
|
||||
psnsignStatus = signerObject.get("signStatus").getAsInt();
|
||||
}
|
||||
}
|
||||
if(!(signerObject.get("orgSigner").toString()).equals("null")){
|
||||
if (!(signerObject.get("orgSigner").toString()).equals("null")) {
|
||||
JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
|
||||
if(orgSignerData!=null){
|
||||
if (orgSignerData != null) {
|
||||
orgsignStatus = signerObject.get("signStatus").getAsInt();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==1)){
|
||||
if ((psnsignStatus.intValue() == 2) && (orgsignStatus.intValue() == 1)) {
|
||||
//更新立案申请状态为待用印
|
||||
CaseApplication caseApplication = new CaseApplication();
|
||||
caseApplication.setId(sealSignRecord.getCaseAppliId());
|
||||
|
||||
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
|
||||
if(caseApplicationselect!=null){
|
||||
if((caseApplicationselect.getCaseStatus()!=null)&&(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.SIGN_ARBITRATION)){
|
||||
if (caseApplicationselect != null) {
|
||||
if ((caseApplicationselect.getCaseStatus() != null) && (caseApplicationselect.getCaseStatus().intValue() == CaseApplicationConstants.SIGN_ARBITRATION)) {
|
||||
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
|
||||
caseApplicationMapper.submitCaseApplication(caseApplication);
|
||||
|
||||
@@ -93,30 +96,30 @@ public class FixSelectFlowDetailUtils {
|
||||
}
|
||||
|
||||
}
|
||||
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==2)){
|
||||
if ((psnsignStatus.intValue() == 2) && (orgsignStatus.intValue() == 2)) {
|
||||
//更新立案申请状态为待送达
|
||||
CaseApplication caseApplication = new CaseApplication();
|
||||
caseApplication.setId(sealSignRecord.getCaseAppliId());
|
||||
|
||||
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
|
||||
if(caseApplicationselect!=null){
|
||||
if((caseApplicationselect.getCaseStatus()!=null)&&(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.ARBITRATED_SEAL)){
|
||||
if (caseApplicationselect != null) {
|
||||
if ((caseApplicationselect.getCaseStatus() != null) && (caseApplicationselect.getCaseStatus().intValue() == CaseApplicationConstants.ARBITRATED_SEAL)) {
|
||||
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
|
||||
//下载审核完成的裁决书,
|
||||
String signFlowId = sealSignRecord.getSignFlowid();
|
||||
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
|
||||
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
|
||||
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);
|
||||
if (filesArray != null && filesArray.size() > 0) {
|
||||
JsonObject fileObject = (JsonObject) filesArray.get(0);
|
||||
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
|
||||
//修改"签署用印记录表"的状态为签署完成
|
||||
sealSignRecord.setSignFlowStatus(3);
|
||||
sealSignRecord.setFileDownloadUrl(fileDownloadUrl.substring(1,fileDownloadUrl.length()-1));
|
||||
sealSignRecord.setFileDownloadUrl(fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1));
|
||||
sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
|
||||
|
||||
String filearbitraUrl = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
|
||||
String filearbitraUrl = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1);
|
||||
caseApplication.setFilearbitraUrl(filearbitraUrl);
|
||||
caseApplicationMapper.submitCaseApplication(caseApplication);
|
||||
|
||||
@@ -135,22 +138,22 @@ public class FixSelectFlowDetailUtils {
|
||||
saveFolder.mkdirs();
|
||||
}
|
||||
String resultFilePath = saveFolderPath + "/" + fileName;
|
||||
File resultFilePathFile = new File(resultFilePath);
|
||||
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();
|
||||
CaseAttach caseAttach = new CaseAttach();
|
||||
caseAttach.setCaseAppliId(caseAppliId);
|
||||
caseAttach.setAnnexType(3);
|
||||
caseAttach.setAnnexPath(savePath);
|
||||
caseAttach.setAnnexName(saveName);
|
||||
caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
|
||||
}
|
||||
String fileDownloadUrlnew = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1);
|
||||
boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath);
|
||||
if (downLoadFile) {
|
||||
Long caseAppliId = sealSignRecord.getCaseAppliId();
|
||||
CaseAttach caseAttach = new CaseAttach();
|
||||
caseAttach.setCaseAppliId(caseAppliId);
|
||||
caseAttach.setAnnexType(3);
|
||||
caseAttach.setAnnexPath(savePath);
|
||||
caseAttach.setAnnexName(saveName);
|
||||
caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -162,13 +165,12 @@ public class FixSelectFlowDetailUtils {
|
||||
}
|
||||
} catch (EsignDemoException e) {
|
||||
e.printStackTrace();
|
||||
}catch (IOException e) {
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Scheduled(cron = "0/30 * * * * ?")
|
||||
@Transactional
|
||||
public void fixExecuteSelectDeptIndentifyUtils() throws EsignDemoException {
|
||||
@@ -176,38 +178,110 @@ public class FixSelectFlowDetailUtils {
|
||||
DeptIdentify deptIdentify = new DeptIdentify();
|
||||
deptIdentify.setIdentifyStatus(0);
|
||||
List<DeptIdentify> deptIdentifysnew = deptIdentifyMapper.selectDeptIdentifylist(deptIdentify);
|
||||
if(deptIdentifysnew!=null&&deptIdentifysnew.size()>0){
|
||||
if (deptIdentifysnew != null && deptIdentifysnew.size() > 0) {
|
||||
for (int i = 0; i < deptIdentifysnew.size(); i++) {
|
||||
EsignHttpResponse identifyInfo = SignAward.getDeptIdentifyInfo(deptIdentifysnew.get(i));
|
||||
JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
|
||||
JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
|
||||
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);
|
||||
//将orgId保存到数据库里
|
||||
DeptIdentify deptIdentifynew = deptIdentifysnew.get(i);
|
||||
deptIdentifynew.setOrgId(orgId);
|
||||
JsonObject identifyInfoJsonObject1 = gson.fromJson(identifyInfo1.getBody(), JsonObject.class);
|
||||
JsonObject identifyInfoData1 = identifyInfoJsonObject1.getAsJsonObject("data");
|
||||
JsonArray sealArray = identifyInfoData1.get("seals").getAsJsonArray();
|
||||
String sealNames = "";
|
||||
if(sealArray.size()>0){
|
||||
if (sealArray.size() > 0) {
|
||||
for (int j = 0; j < sealArray.size(); j++) {
|
||||
JsonObject sealObject = (JsonObject)sealArray.get(j);
|
||||
JsonObject sealObject = (JsonObject) sealArray.get(j);
|
||||
String sealName = sealObject.get("sealName").toString();
|
||||
String sealNamenew = sealName.substring(1,sealName.length()-1);
|
||||
sealNames += sealNamenew +",";
|
||||
String sealNamenew = sealName.substring(1, sealName.length() - 1);
|
||||
sealNames += sealNamenew + ",";
|
||||
}
|
||||
}
|
||||
String sealName = sealNames.substring(0,sealNames.length()-1);
|
||||
DeptIdentify deptIdentifynew = deptIdentifysnew.get(i);
|
||||
String sealName = sealNames.substring(0, sealNames.length() - 1);
|
||||
deptIdentifynew.setIdentifyStatus(1);
|
||||
deptIdentifynew.setSealName(sealName);
|
||||
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;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
@@ -9,19 +10,20 @@ import com.ruoyi.common.exception.EsignDemoException;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.EsignApplicaConfig;
|
||||
import com.ruoyi.common.utils.EsignHttpHelper;
|
||||
import com.ruoyi.common.utils.SealUtil;
|
||||
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
|
||||
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class SignAward {
|
||||
|
||||
private static String eSignHost= EsignApplicaConfig.EsignHost;
|
||||
private static String eSignAppId= EsignApplicaConfig.EsignAppId;
|
||||
private static String eSignAppSecret= EsignApplicaConfig.EsignAppSecret;
|
||||
|
||||
private static String eSignHost = EsignApplicaConfig.EsignHost;
|
||||
private static String eSignAppId = EsignApplicaConfig.EsignAppId;
|
||||
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
||||
|
||||
|
||||
public static void main(String[] args) throws EsignDemoException {
|
||||
@@ -89,8 +91,6 @@ public class SignAward {
|
||||
// System.out.println("机构印章名称:" +sealNames.substring(0,sealNames.length()-1));
|
||||
|
||||
|
||||
|
||||
|
||||
//查询签署流程详情
|
||||
// EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord);
|
||||
// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
|
||||
@@ -120,35 +120,34 @@ public class SignAward {
|
||||
// System.out.println(signFlowDetailJsonObject);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询签署流程详情
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static EsignHttpResponse signFlowDetail(SealSignRecord sealSignRecord) throws EsignDemoException {
|
||||
String signFlowId = sealSignRecord.getSignFlowid();
|
||||
String apiaddr= "/v3/sign-flow/"+ signFlowId + "/detail";
|
||||
String apiaddr = "/v3/sign-flow/" + signFlowId + "/detail";
|
||||
String jsonParm = null;
|
||||
//请求方法
|
||||
EsignRequestType requestType = EsignRequestType.GET;
|
||||
//生成签名鉴权方式的的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
|
||||
* @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 fileId = sealSignRecord.getFileid();
|
||||
@@ -169,13 +168,12 @@ public class SignAward {
|
||||
double positionXorg = sealSignRecord.getPositionXorg();
|
||||
double positionYorg = sealSignRecord.getPositionYorg();
|
||||
|
||||
String availableSealId = "209af82b-5f87-4e0a-b0d8-cc4923b6e652";
|
||||
|
||||
String jsonParm = "{\n" +
|
||||
" \"docs\": [\n" +
|
||||
" {\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"fileName\": \"" + fileName + "\"\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"fileName\": \"" + fileName + "\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"signFlowConfig\": {\n" +
|
||||
@@ -203,22 +201,22 @@ public class SignAward {
|
||||
" \"signers\": [\n" +
|
||||
" {\n" +
|
||||
" \"psnSignerInfo\": {\n" +
|
||||
" \"psnAccount\": \"" + psnAccount + "\",\n" +
|
||||
" \"psnAccount\": \"" + psnAccount + "\",\n" +
|
||||
" \"psnInfo\": {\n" +
|
||||
" \"psnName\": \"" + psnName + "\"\n" +
|
||||
" \"psnName\": \"" + psnName + "\"\n" +
|
||||
" }\n" +
|
||||
" },\n" +
|
||||
" \"signFields\": [\n" +
|
||||
" {\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"normalSignFieldConfig\": {\n" +
|
||||
" \"autoSign\": false,\n" +
|
||||
" \"freeMode\": false,\n" +
|
||||
" \"movableSignField\": false,\n" +
|
||||
" \"signFieldPosition\": {\n" +
|
||||
" \"positionPage\": \"" + positionPagepsn + "\",\n" +
|
||||
" \"positionX\": " + positionXpsn + ",\n" +
|
||||
" \"positionY\": " + positionYpsn + "\n" +
|
||||
" \"positionPage\": \"" + positionPagepsn + "\",\n" +
|
||||
" \"positionX\": " + positionXpsn + ",\n" +
|
||||
" \"positionY\": " + positionYpsn + "\n" +
|
||||
" },\n" +
|
||||
" \"signFieldStyle\": 1\n" +
|
||||
" },\n" +
|
||||
@@ -230,31 +228,31 @@ public class SignAward {
|
||||
|
||||
" {\n" +
|
||||
" \"orgSignerInfo\": {\n" +
|
||||
" \"orgName\": \"" + orgName + "\",\n" +
|
||||
" \"orgName\": \"" + orgName + "\",\n" +
|
||||
" \"transactorInfo\": {\n" +
|
||||
" \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" +
|
||||
" \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" +
|
||||
" \"psnInfo\": {\n" +
|
||||
" \"psnName\": \"" + orgNamepsnName + "\"\n" +
|
||||
" \"psnName\": \"" + orgNamepsnName + "\"\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" },\n" +
|
||||
|
||||
" \"signFields\": [\n" +
|
||||
" {\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"fileId\": \"" + fileId + "\",\n" +
|
||||
" \"normalSignFieldConfig\": {\n" +
|
||||
" \"autoSign\": false,\n" +
|
||||
" \"freeMode\": false,\n" +
|
||||
|
||||
" \"availableSealIds\": [\n" +
|
||||
" \"" + availableSealId + "\"\n" +
|
||||
" \"" + sealIds + "\"\n" +
|
||||
" ],\n" +
|
||||
|
||||
|
||||
" \"signFieldPosition\": {\n" +
|
||||
" \"positionPage\": \"" + positionPageorg + "\",\n" +
|
||||
" \"positionX\": " + positionXorg + ",\n" +
|
||||
" \"positionY\": " + positionYorg + "\n" +
|
||||
" \"positionPage\": \"" + positionPageorg + "\",\n" +
|
||||
" \"positionX\": " + positionXorg + ",\n" +
|
||||
" \"positionY\": " + positionYorg + "\n" +
|
||||
" },\n" +
|
||||
" \"signFieldStyle\": 1\n" +
|
||||
" },\n" +
|
||||
@@ -270,13 +268,14 @@ public class SignAward {
|
||||
//请求方法
|
||||
EsignRequestType requestType = EsignRequestType.POST;
|
||||
//生成请求签名鉴权方式的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
|
||||
* @throws EsignDemoException
|
||||
*/
|
||||
@@ -291,19 +290,20 @@ public class SignAward {
|
||||
" \"clientType\": \"PC\",\n" +
|
||||
|
||||
" \"operator\": {\n" +
|
||||
" \"psnAccount\": \"" + psnAccount + "\"\n" +
|
||||
" \"psnAccount\": \"" + psnAccount + "\"\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
//请求方法
|
||||
EsignRequestType requestType = EsignRequestType.POST;
|
||||
//生成请求签名鉴权方式的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
|
||||
* @throws EsignDemoException
|
||||
*/
|
||||
@@ -317,25 +317,25 @@ public class SignAward {
|
||||
String jsonParm = "{\n" +
|
||||
" \"operator\": {\n" +
|
||||
|
||||
" \"psnAccount\": \"" + psnAccount + "\"\n" +
|
||||
" \"psnAccount\": \"" + psnAccount + "\"\n" +
|
||||
" },\n" +
|
||||
" \"organization\": {\n" +
|
||||
" \"orgName\": \"" + orgName + "\"\n" +
|
||||
" \"orgName\": \"" + orgName + "\"\n" +
|
||||
|
||||
" }\n" +
|
||||
"}";
|
||||
//请求方法
|
||||
EsignRequestType requestType = EsignRequestType.POST;
|
||||
//生成请求签名鉴权方式的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
|
||||
* @throws EsignDemoException
|
||||
*/
|
||||
public static EsignHttpResponse deptIdentifyUrl(DeptIdentify deptIdentify) throws EsignDemoException {
|
||||
String apiaddr = "/v3/org-auth-url";
|
||||
@@ -343,60 +343,71 @@ public class SignAward {
|
||||
String phonenumber = deptIdentify.getPhonenumber();
|
||||
String deptName = deptIdentify.getDeptName();
|
||||
String jsonParm = "{\n" +
|
||||
" \"orgAuthConfig\": {\n" +
|
||||
" \"orgName\": \"" + deptName + "\",\n" +
|
||||
" \"transactorInfo\": {\n" +
|
||||
" \"psnAccount\": \"" + phonenumber + "\",\n" +
|
||||
" \"psnInfo\": {\n" +
|
||||
" \"psnName\": \"" + nickName + "\",\n" +
|
||||
" \"psnMobile\": \"" + phonenumber + "\"\n" +
|
||||
" }\n" +
|
||||
|
||||
" }\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);
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询企业认证状态
|
||||
*/
|
||||
public static EsignHttpResponse getDeptIdentifyInfo(DeptIdentify deptIdentify) throws EsignDemoException {
|
||||
String apiaddr="/v3/organizations/identity-info?orgName="+deptIdentify.getDeptName();
|
||||
String apiaddr = "/v3/organizations/identity-info?orgName=" + deptIdentify.getDeptName();
|
||||
|
||||
String jsonParm="{}";
|
||||
String jsonParm = "{}";
|
||||
//请求方法
|
||||
EsignRequestType requestType= EsignRequestType.GET;
|
||||
EsignRequestType requestType = EsignRequestType.GET;
|
||||
//生成签名鉴权方式的的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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询企业认证印章信息
|
||||
*/
|
||||
public static EsignHttpResponse deptIdentifySealList(String orgId) throws EsignDemoException {
|
||||
int pageNum=1;
|
||||
int pageSize=10;
|
||||
String apiaddr="/v3/seals/org-own-seal-list?orgId="+orgId+"&pageNum="+pageNum+"&pageSize="+pageSize;
|
||||
String jsonParm=null;
|
||||
int pageNum = 1;
|
||||
int pageSize = 10;
|
||||
String apiaddr = "/v3/seals/org-own-seal-list?orgId=" + orgId + "&pageNum=" + pageNum + "&pageSize=" + pageSize;
|
||||
String jsonParm = null;
|
||||
//请求方法
|
||||
EsignRequestType requestType= EsignRequestType.GET;
|
||||
EsignRequestType requestType = EsignRequestType.GET;
|
||||
//生成签名鉴权方式的的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
|
||||
* @throws EsignDemoException
|
||||
*/
|
||||
@@ -412,12 +423,96 @@ public class SignAward {
|
||||
//请求方法
|
||||
EsignRequestType requestType = EsignRequestType.POST;
|
||||
//生成请求签名鉴权方式的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="userId" column="use_id" />
|
||||
<result property="userName" column="use_account" />
|
||||
<result property="sealStatus" column="seal_status" />
|
||||
</resultMap>
|
||||
<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)
|
||||
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{userId},#{userName})
|
||||
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},#{sealStatus})
|
||||
</insert>
|
||||
<delete id="deleteByFileIds">
|
||||
delete from case_attach
|
||||
@@ -62,6 +63,15 @@
|
||||
</if>
|
||||
</where>
|
||||
</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 case_attach
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
<result property="phonenumber" column="phonenumber" />
|
||||
<result property="deptName" column="dept_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>
|
||||
|
||||
@@ -28,7 +32,7 @@
|
||||
</select>
|
||||
|
||||
<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
|
||||
<where>
|
||||
<if test="deptId != null">
|
||||
@@ -53,8 +57,8 @@
|
||||
</insert>
|
||||
|
||||
<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 ,
|
||||
u.nick_name ,u.phonenumber
|
||||
SELECT d.id ,d.dept_id ,d.user_id, d.identify_status ,d.identify_date ,d.is_use , d.seal_name,
|
||||
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
|
||||
left join sys_user u on u.user_id = d.user_id
|
||||
<where>
|
||||
@@ -71,18 +75,25 @@
|
||||
</select>
|
||||
|
||||
<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
|
||||
<where>
|
||||
<if test="identifyStatus != null">
|
||||
AND d.identify_status = #{identifyStatus}
|
||||
</if>
|
||||
<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>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<update id="updateDeptIdentify" parameterType="DeptIdentify">
|
||||
update dept_identify
|
||||
<set>
|
||||
@@ -90,8 +101,17 @@
|
||||
<if test="isUse != null">is_use = #{isUse},</if>
|
||||
<if test="identifyStatus != null ">identify_status = #{identifyStatus},</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>
|
||||
where id = #{id}
|
||||
<where>
|
||||
<if test="id != null">
|
||||
AND d.id = #{id}
|
||||
</if>
|
||||
<if test="sealId != null">
|
||||
AND seal_id = #{sealId}
|
||||
</if>
|
||||
</where>
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user