Merge branch 'dev' of SH-Arbitrate/Mediation-Backend into prod
This commit was merged in pull request #127.
This commit is contained in:
@@ -1,11 +1,19 @@
|
|||||||
package com.ruoyi;
|
package com.ruoyi;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
import com.ruoyi.system.mapper.SysUserMapper;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动程序
|
* 启动程序
|
||||||
*
|
*
|
||||||
@@ -30,5 +38,14 @@ public class RuoYiApplication
|
|||||||
" | | \\ `' /| `-' / \n" +
|
" | | \\ `' /| `-' / \n" +
|
||||||
" | | \\ / \\ / \n" +
|
" | | \\ / \\ / \n" +
|
||||||
" ''-' `'-' `-..-' ");
|
" ''-' `'-' `-..-' ");
|
||||||
|
// 启动成功后,查询用户表,将用户信息存到redis
|
||||||
|
RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
|
||||||
|
SysUserMapper userMapper = SpringUtils.getBean(SysUserMapper.class);
|
||||||
|
List<SysUser> sysUsers = userMapper.selectUserListByIds(null);
|
||||||
|
if(CollectionUtil.isNotEmpty(sysUsers)){
|
||||||
|
for (SysUser sysUser : sysUsers) {
|
||||||
|
redisCache.setCacheObject(CacheConstants.USER_KEY+sysUser.getUserId(),sysUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
|
|||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
||||||
import com.ruoyi.system.service.flow.CaseFlowService;
|
import com.ruoyi.system.service.flow.CaseFlowService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import static com.ruoyi.common.core.domain.AjaxResult.success;
|
import static com.ruoyi.common.core.domain.AjaxResult.success;
|
||||||
|
|
||||||
@@ -28,6 +25,13 @@ public class CaseFlowController {
|
|||||||
public Object queryCaseFlowInfo(@RequestBody MsCaseFlowSearchVO caseFlowSearchVO) {
|
public Object queryCaseFlowInfo(@RequestBody MsCaseFlowSearchVO caseFlowSearchVO) {
|
||||||
return caseFlowService.queryCaseFlowInfo(caseFlowSearchVO);
|
return caseFlowService.queryCaseFlowInfo(caseFlowSearchVO);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 查询案件流程信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/selectCaseFlow")
|
||||||
|
public AjaxResult selectCaseFlow() {
|
||||||
|
return caseFlowService.selectCaseFlow();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增或编辑案件流程节点信息
|
* 新增或编辑案件流程节点信息
|
||||||
|
|||||||
+23
-14
@@ -1,19 +1,6 @@
|
|||||||
package com.ruoyi.web.controller.system;
|
package com.ruoyi.web.controller.system;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import java.util.List;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
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;
|
||||||
@@ -24,6 +11,14 @@ import com.ruoyi.common.utils.StringUtils;
|
|||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.system.service.ISysDictDataService;
|
import com.ruoyi.system.service.ISysDictDataService;
|
||||||
import com.ruoyi.system.service.ISysDictTypeService;
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据字典信息
|
* 数据字典信息
|
||||||
@@ -82,6 +77,20 @@ public class SysDictDataController extends BaseController
|
|||||||
}
|
}
|
||||||
return success(data);
|
return success(data);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 根据字典类型查询字典数据信息,跳过token
|
||||||
|
*/
|
||||||
|
@Anonymous
|
||||||
|
@GetMapping(value = "/type/skipToken/{dictType}")
|
||||||
|
public AjaxResult skipToken(@PathVariable String dictType)
|
||||||
|
{
|
||||||
|
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
|
||||||
|
if (StringUtils.isNull(data))
|
||||||
|
{
|
||||||
|
data = new ArrayList<SysDictData>();
|
||||||
|
}
|
||||||
|
return success(data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增字典类型
|
* 新增字典类型
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
package com.ruoyi.web.controller.system;
|
package com.ruoyi.web.controller.system;
|
||||||
|
|
||||||
import java.util.List;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import java.util.Set;
|
import cn.hutool.crypto.digest.MD5;
|
||||||
|
import com.ruoyi.common.constant.Constants;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysMenu;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginBody;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.framework.web.service.SysLoginService;
|
||||||
|
import com.ruoyi.framework.web.service.SysPermissionService;
|
||||||
|
import com.ruoyi.framework.web.service.TokenService;
|
||||||
|
import com.ruoyi.system.service.ISysMenuService;
|
||||||
import com.ruoyi.system.service.ISysUserService;
|
import com.ruoyi.system.service.ISysUserService;
|
||||||
import com.ruoyi.system.service.flow.CaseFlowService;
|
import com.ruoyi.system.service.flow.CaseFlowService;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.dto.miniprogress.IdentityAuthentication;
|
import com.ruoyi.wisdomarbitrate.domain.dto.miniprogress.IdentityAuthentication;
|
||||||
@@ -12,15 +21,9 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import com.ruoyi.common.constant.Constants;
|
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import java.util.List;
|
||||||
import com.ruoyi.common.core.domain.entity.SysMenu;
|
import java.util.Set;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
||||||
import com.ruoyi.common.core.domain.model.LoginBody;
|
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
|
||||||
import com.ruoyi.framework.web.service.SysLoginService;
|
|
||||||
import com.ruoyi.framework.web.service.SysPermissionService;
|
|
||||||
import com.ruoyi.system.service.ISysMenuService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
@@ -43,6 +46,8 @@ public class SysLoginController {
|
|||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CaseFlowService caseFlowService;
|
private CaseFlowService caseFlowService;
|
||||||
|
@Autowired
|
||||||
|
private TokenService tokenService;
|
||||||
/**
|
/**
|
||||||
* 登录方法
|
* 登录方法
|
||||||
*
|
*
|
||||||
@@ -102,4 +107,19 @@ public class SysLoginController {
|
|||||||
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
||||||
return AjaxResult.success(menuService.buildMenus(menus));
|
return AjaxResult.success(menuService.buildMenus(menus));
|
||||||
}
|
}
|
||||||
|
/**sso登录接口*/
|
||||||
|
@PostMapping("login/sso")
|
||||||
|
public AjaxResult loginSSO( @RequestBody LoginBody loginBody){
|
||||||
|
if(StrUtil.isEmpty(loginBody.getUsername()) || StrUtil.isEmpty(loginBody.getTicket())
|
||||||
|
|| StrUtil.isEmpty(loginBody.getRoleName()) ){
|
||||||
|
return AjaxResult.error("参数错误");
|
||||||
|
}
|
||||||
|
return loginService.loginSSO(loginBody);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println( MD5.create().digestHex("BMceshi" ));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+31
-7
@@ -73,14 +73,25 @@ public class MsCaseApplicationController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增案件
|
* 新增案件
|
||||||
*/
|
*/
|
||||||
|
// todo 重复提交校验
|
||||||
@PostMapping("/insert")
|
@PostMapping("/insert")
|
||||||
public AjaxResult insert(@RequestBody MsCaseApplicationVO caseApplication )
|
public AjaxResult insert(@RequestBody MsCaseApplicationVO caseApplication )
|
||||||
{
|
{
|
||||||
if(caseApplication.getAffiliate()==null||caseApplication.getAffiliate().getOrganizeFlag()==null){
|
if(caseApplication.getAffiliate()==null||caseApplication.getAffiliate().getOrganizeFlag()==null){
|
||||||
error("参数校验失败");
|
error("参数校验失败");
|
||||||
}
|
}
|
||||||
|
AjaxResult ajaxResult = AjaxResult.success();
|
||||||
|
ajaxResult.put("caseNum",caseApplicationService.insert(caseApplication));
|
||||||
|
return ajaxResult;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 批量新增案件
|
||||||
|
*/
|
||||||
|
@PostMapping("/batchInsert")
|
||||||
|
public AjaxResult batchInsert(@RequestBody MsCaseBatchInsertVO list )
|
||||||
|
{
|
||||||
|
|
||||||
return success(caseApplicationService.insert(caseApplication));
|
return caseApplicationService.batchInsert(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,10 +101,10 @@ public class MsCaseApplicationController extends BaseController {
|
|||||||
public AjaxResult getInfoByIdCard(@RequestParam(value = "idCard" ,required = false) String idCard)
|
public AjaxResult getInfoByIdCard(@RequestParam(value = "idCard" ,required = false) String idCard)
|
||||||
{
|
{
|
||||||
if(StrUtil.isEmpty(idCard)){
|
if(StrUtil.isEmpty(idCard)){
|
||||||
error("身份证号不能为空");
|
return error("身份证号不能为空");
|
||||||
}
|
}
|
||||||
if(!IdcardUtil.isValidCard(idCard)){
|
if(!IdcardUtil.isValidCard(idCard)){
|
||||||
error("身份证不合法,请输入正确的身份证号");
|
return error("身份证不合法,请输入正确的身份证号");
|
||||||
}
|
}
|
||||||
AjaxResult ajax = AjaxResult.success();
|
AjaxResult ajax = AjaxResult.success();
|
||||||
Map<String, String> identityNumMap = IdCardUtils.getBirAgeSex(idCard);
|
Map<String, String> identityNumMap = IdCardUtils.getBirAgeSex(idCard);
|
||||||
@@ -140,12 +151,12 @@ public class MsCaseApplicationController extends BaseController {
|
|||||||
* 根据id查询案件
|
* 根据id查询案件
|
||||||
*/
|
*/
|
||||||
@GetMapping("/selectById")
|
@GetMapping("/selectById")
|
||||||
public AjaxResult selectById(@RequestParam Long id )
|
public AjaxResult selectById(@RequestParam(required = false) Long id ,@RequestParam(required = false) String caseNum )
|
||||||
{
|
{
|
||||||
if(id==null){
|
if(id==null && caseNum==null ){
|
||||||
error("id不能为空");
|
error("参数校验失败");
|
||||||
}
|
}
|
||||||
return success(caseApplicationService.selectById(id));
|
return success(caseApplicationService.selectById(id,caseNum));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 案件压缩包导入
|
* 案件压缩包导入
|
||||||
@@ -402,4 +413,17 @@ public class MsCaseApplicationController extends BaseController {
|
|||||||
List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
|
List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 保存onlyOffice在线编辑的文件
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/saveOnlyOfficeFile")
|
||||||
|
public AjaxResult saveOnlyOfficeFile( @RequestBody MsCaseAttach caseAttach) {
|
||||||
|
if(caseAttach.getCaseAppliId()==null||StrUtil.isEmpty(caseAttach.getOnlyOfficeFileId())||StrUtil.isEmpty(caseAttach.getAnnexPath())){
|
||||||
|
return error("参数校验失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return caseApplicationService.saveOnlyOfficeFile(caseAttach);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
@@ -2,6 +2,8 @@ package com.ruoyi.web.controller.wisdomarbitrate.mscase;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
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;
|
||||||
import com.ruoyi.common.exception.EsignDemoException;
|
import com.ruoyi.common.exception.EsignDemoException;
|
||||||
@@ -10,6 +12,8 @@ import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
|
|||||||
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
|
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseLogRecordVO;
|
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseLogRecordVO;
|
||||||
import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
|
import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
|
||||||
|
import com.ruoyi.wisdomarbitrate.utils.SignVerifyUtils;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
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.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -57,6 +61,22 @@ public class MsSignSealController extends BaseController {
|
|||||||
return success(sealUrlRecordselect);
|
return success(sealUrlRecordselect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签名用印回调
|
||||||
|
*/
|
||||||
|
@Anonymous
|
||||||
|
@PostMapping("/signSeaalCaseApplicaCallback")
|
||||||
|
public AjaxResult signSeaalCaseApplicaCallback() throws Exception {
|
||||||
|
boolean checkResult= SignVerifyUtils.checkSignuter();
|
||||||
|
if(checkResult){
|
||||||
|
String reqbodystr =SignVerifyUtils.getRequestBody();
|
||||||
|
return msSignSealService.signSeaalCaseApplicaCallback(reqbodystr);
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("error");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询案件进度
|
* 查询案件进度
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -191,6 +191,13 @@ organizeConfig:
|
|||||||
# 引入仲裁系统url配置
|
# 引入仲裁系统url配置
|
||||||
arbitrateConfig:
|
arbitrateConfig:
|
||||||
url: http://121.40.189.20:9001/callArbitrateCaseApplication/generateCaseApplication
|
url: http://121.40.189.20:9001/callArbitrateCaseApplication/generateCaseApplication
|
||||||
|
# 回调通知
|
||||||
|
signSealCallbackConfig:
|
||||||
|
url: http://121.40.189.20:7001/mssignSeal/signSeaalCaseApplicaCallback
|
||||||
|
# onlyOffice系统url配置
|
||||||
|
onlyOfficeConfig:
|
||||||
|
# url: http://172.16.0.254:9090/files/upload
|
||||||
|
url: http://121.40.189.20:9090/files/upload
|
||||||
#jodconverter:
|
#jodconverter:
|
||||||
# local:
|
# local:
|
||||||
# host: 121.40.189.20
|
# host: 121.40.189.20
|
||||||
|
|||||||
@@ -46,4 +46,8 @@ public class CacheConstants
|
|||||||
* 案件 redis key
|
* 案件 redis key
|
||||||
*/
|
*/
|
||||||
public static final String CASE_KEY = "case_codes:";
|
public static final String CASE_KEY = "case_codes:";
|
||||||
|
/**
|
||||||
|
* 所有用户 redis key
|
||||||
|
*/
|
||||||
|
public static final String USER_KEY = "user_key:";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,8 +63,12 @@ public class SysUser extends BaseEntity
|
|||||||
|
|
||||||
|
|
||||||
/** 用户身份证号 */
|
/** 用户身份证号 */
|
||||||
@Excel(name = "身份证号")
|
|
||||||
private String idCard;
|
private String idCard;
|
||||||
|
/** 身份类别,0-身份证,1-护照,默认0 */
|
||||||
|
private Integer idType;
|
||||||
|
/** 国籍,0-国内,1-国外,默认0 */
|
||||||
|
|
||||||
|
private Integer nationality;
|
||||||
|
|
||||||
/** 用户邮箱 */
|
/** 用户邮箱 */
|
||||||
@Excel(name = "用户邮箱")
|
@Excel(name = "用户邮箱")
|
||||||
@@ -136,6 +140,22 @@ public class SysUser extends BaseEntity
|
|||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdType() {
|
||||||
|
return idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdType(Integer idType) {
|
||||||
|
this.idType = idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNationality() {
|
||||||
|
return nationality;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNationality(Integer nationality) {
|
||||||
|
this.nationality = nationality;
|
||||||
|
}
|
||||||
|
|
||||||
public Long getUserId()
|
public Long getUserId()
|
||||||
{
|
{
|
||||||
return userId;
|
return userId;
|
||||||
@@ -361,6 +381,8 @@ public class SysUser extends BaseEntity
|
|||||||
.append("deptIds", getDeptIds())
|
.append("deptIds", getDeptIds())
|
||||||
.append("userName", getUserName())
|
.append("userName", getUserName())
|
||||||
.append("idCard", getIdCard())
|
.append("idCard", getIdCard())
|
||||||
|
.append("idType", getIdType())
|
||||||
|
.append("nationality", getNationality())
|
||||||
.append("nickName", getNickName())
|
.append("nickName", getNickName())
|
||||||
.append("email", getEmail())
|
.append("email", getEmail())
|
||||||
.append("phonenumber", getPhonenumber())
|
.append("phonenumber", getPhonenumber())
|
||||||
|
|||||||
@@ -26,12 +26,36 @@ public class LoginBody
|
|||||||
* 唯一标识
|
* 唯一标识
|
||||||
*/
|
*/
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
/**
|
||||||
|
* 密文:BM+用户名用MD5加密
|
||||||
|
*/
|
||||||
|
private String ticket;
|
||||||
|
/**
|
||||||
|
* 角色名,申请人,被申请人,委托代理人
|
||||||
|
*/
|
||||||
|
private String roleName;
|
||||||
|
|
||||||
|
public String getRoleName() {
|
||||||
|
return roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoleName(String roleName) {
|
||||||
|
this.roleName = roleName;
|
||||||
|
}
|
||||||
|
|
||||||
public String getUsername()
|
public String getUsername()
|
||||||
{
|
{
|
||||||
return username;
|
return username;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTicket() {
|
||||||
|
return ticket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTicket(String ticket) {
|
||||||
|
this.ticket = ticket;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUsername(String username)
|
public void setUsername(String username)
|
||||||
{
|
{
|
||||||
this.username = username;
|
this.username = username;
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
|
|||||||
// 过滤请求
|
// 过滤请求
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
||||||
.antMatchers("/login", "/register", "/captchaImage","/uploadPath/**","/websocket/**").permitAll()
|
.antMatchers("/login","/login/sso", "/register", "/captchaImage","/uploadPath/**","/websocket/**").permitAll()
|
||||||
// 静态资源,可匿名访问
|
// 静态资源,可匿名访问
|
||||||
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
|
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
|
||||||
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
|
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
|
||||||
|
|||||||
+103
-23
@@ -1,33 +1,35 @@
|
|||||||
package com.ruoyi.framework.web.service;
|
package com.ruoyi.framework.web.service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import cn.hutool.crypto.digest.MD5;
|
||||||
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
|
import com.ruoyi.common.constant.Constants;
|
||||||
|
import com.ruoyi.common.constant.UserConstants;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginBody;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.common.exception.user.*;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import com.ruoyi.common.utils.MessageUtils;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.common.utils.ip.IpUtils;
|
||||||
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
|
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
|
||||||
|
import com.ruoyi.system.mapper.SysRoleMapper;
|
||||||
|
import com.ruoyi.system.service.ISysConfigService;
|
||||||
|
import com.ruoyi.system.service.ISysUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import com.ruoyi.common.constant.CacheConstants;
|
|
||||||
import com.ruoyi.common.constant.Constants;
|
import javax.annotation.Resource;
|
||||||
import com.ruoyi.common.constant.UserConstants;
|
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
|
||||||
import com.ruoyi.common.exception.user.BlackListException;
|
|
||||||
import com.ruoyi.common.exception.user.CaptchaException;
|
|
||||||
import com.ruoyi.common.exception.user.CaptchaExpireException;
|
|
||||||
import com.ruoyi.common.exception.user.UserNotExistsException;
|
|
||||||
import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
|
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
|
||||||
import com.ruoyi.common.utils.MessageUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import com.ruoyi.common.utils.ip.IpUtils;
|
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
|
||||||
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
|
|
||||||
import com.ruoyi.system.service.ISysConfigService;
|
|
||||||
import com.ruoyi.system.service.ISysUserService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录校验方法
|
* 登录校验方法
|
||||||
@@ -51,6 +53,8 @@ public class SysLoginService
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysConfigService configService;
|
private ISysConfigService configService;
|
||||||
|
@Autowired
|
||||||
|
private SysRoleMapper roleMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
@@ -63,7 +67,6 @@ public class SysLoginService
|
|||||||
*/
|
*/
|
||||||
public String login(String username, String password, String code, String uuid)
|
public String login(String username, String password, String code, String uuid)
|
||||||
{
|
{
|
||||||
// 验证码校验
|
|
||||||
validateCaptcha(username, code, uuid);
|
validateCaptcha(username, code, uuid);
|
||||||
// 登录前置校验
|
// 登录前置校验
|
||||||
loginPreCheck(username, password);
|
loginPreCheck(username, password);
|
||||||
@@ -99,6 +102,45 @@ public class SysLoginService
|
|||||||
// 生成token
|
// 生成token
|
||||||
return tokenService.createToken(loginUser);
|
return tokenService.createToken(loginUser);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 无需验证码登录
|
||||||
|
* 重写login方法将验证码模块去掉
|
||||||
|
* @param username
|
||||||
|
* @param password
|
||||||
|
* @param uuid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String loginNoCaptcha(String username, String password, String uuid)
|
||||||
|
{
|
||||||
|
// 用户验证
|
||||||
|
Authentication authentication = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
|
||||||
|
AuthenticationContextHolder.setContext(authenticationToken);
|
||||||
|
// 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
|
||||||
|
authentication = authenticationManager.authenticate(authenticationToken);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
if (e instanceof BadCredentialsException)
|
||||||
|
{
|
||||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
|
||||||
|
throw new UserPasswordNotMatchException();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
|
||||||
|
throw new ServiceException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||||
|
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
|
||||||
|
recordLoginInfo(loginUser.getUserId());
|
||||||
|
// 生成token
|
||||||
|
return tokenService.createToken(loginUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验验证码
|
* 校验验证码
|
||||||
@@ -178,4 +220,42 @@ public class SysLoginService
|
|||||||
sysUser.setLoginDate(DateUtils.getNowDate());
|
sysUser.setLoginDate(DateUtils.getNowDate());
|
||||||
userService.updateUserProfile(sysUser);
|
userService.updateUserProfile(sysUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AjaxResult loginSSO(LoginBody loginBody) {
|
||||||
|
// MD5加密并和Ticket比对
|
||||||
|
String currentTicket = MD5.create().digestHex("BM" + loginBody.getUsername());
|
||||||
|
if(!currentTicket.equals(loginBody.getTicket())){
|
||||||
|
return AjaxResult.error("ticket校验失败");
|
||||||
|
}
|
||||||
|
AjaxResult ajax = AjaxResult.success();
|
||||||
|
String username = loginBody.getUsername();
|
||||||
|
// 根据用户名获取用户信息,如果用户不存在则新增用户
|
||||||
|
SysUser user = userService.selectUserByUserName(username);
|
||||||
|
if(user==null){
|
||||||
|
// 新增用户
|
||||||
|
user = new SysUser();
|
||||||
|
user.setUserName(username);
|
||||||
|
user.setPassword(SecurityUtils.encryptPassword("abc123456"));
|
||||||
|
user.setNickName(username);
|
||||||
|
// 代理人角色相当于申请人角色
|
||||||
|
if(loginBody.getRoleName().contains("代理人")){
|
||||||
|
loginBody.setRoleName("申请人");
|
||||||
|
}
|
||||||
|
// 根据角色名查询角色id
|
||||||
|
Long roleIdByName = roleMapper.selectRoleIdByName(loginBody.getRoleName());
|
||||||
|
if(roleIdByName==null){
|
||||||
|
return AjaxResult.error("角色不存在");
|
||||||
|
}
|
||||||
|
user.setRoleIds( new Long[]{roleIdByName});
|
||||||
|
userService.insertUser(user);
|
||||||
|
|
||||||
|
}// 生成token
|
||||||
|
LoginUser loginUser = new LoginUser();
|
||||||
|
loginUser.setUser(user);
|
||||||
|
loginUser.setUserId(user.getUserId());
|
||||||
|
String token = tokenService.createToken(loginUser);
|
||||||
|
ajax.put("userName", user.getUserName());
|
||||||
|
ajax.put(Constants.TOKEN, token);
|
||||||
|
return ajax;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,5 @@
|
|||||||
package com.ruoyi.framework.web.service;
|
package com.ruoyi.framework.web.service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import com.ruoyi.common.constant.CacheConstants;
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
@@ -22,6 +13,16 @@ import eu.bitwalker.useragentutils.UserAgent;
|
|||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import io.jsonwebtoken.SignatureAlgorithm;
|
import io.jsonwebtoken.SignatureAlgorithm;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* token验证处理
|
* token验证处理
|
||||||
@@ -119,6 +120,8 @@ public class TokenService
|
|||||||
refreshToken(loginUser);
|
refreshToken(loginUser);
|
||||||
|
|
||||||
Map<String, Object> claims = new HashMap<>();
|
Map<String, Object> claims = new HashMap<>();
|
||||||
|
claims.put("userName",loginUser.getUsername());
|
||||||
|
claims.put("userId",loginUser.getUserId());
|
||||||
claims.put(Constants.LOGIN_USER_KEY, token);
|
claims.put(Constants.LOGIN_USER_KEY, token);
|
||||||
return createToken(claims);
|
return createToken(claims);
|
||||||
}
|
}
|
||||||
@@ -207,14 +210,24 @@ public class TokenService
|
|||||||
Claims claims = parseToken(token);
|
Claims claims = parseToken(token);
|
||||||
return claims.getSubject();
|
return claims.getSubject();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 从令牌中获取用户名
|
||||||
|
*
|
||||||
|
* @param token 令牌
|
||||||
|
* @return 用户名
|
||||||
|
*/
|
||||||
|
public String getUserNameFromToken(String token)
|
||||||
|
{
|
||||||
|
Claims claims = parseToken(token);
|
||||||
|
return claims.get("userName").toString();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获取请求token
|
* 获取请求token
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @return token
|
* @return token
|
||||||
*/
|
*/
|
||||||
private String getToken(HttpServletRequest request)
|
public String getToken(HttpServletRequest request)
|
||||||
{
|
{
|
||||||
String token = request.getHeader(header);
|
String token = request.getHeader(header);
|
||||||
if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
|
if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.ruoyi.system.domain.vo.flow;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
@Data
|
||||||
|
public class MsBaseCaseFlow {
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顺序
|
||||||
|
*/
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案件状态名称
|
||||||
|
*/
|
||||||
|
private String caseStatusName;
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.system.mapper.flow;
|
package com.ruoyi.system.mapper.flow;
|
||||||
|
|
||||||
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
||||||
|
import com.ruoyi.system.domain.vo.flow.MsBaseCaseFlow;
|
||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import tk.mybatis.mapper.common.Mapper;
|
import tk.mybatis.mapper.common.Mapper;
|
||||||
@@ -25,4 +26,7 @@ public interface MsCaseFlowMapper extends Mapper<MsCaseFlow> {
|
|||||||
|
|
||||||
@Select("SELECT r.role_name as roleName ,f.node_name as nodeName ,f.case_status_name as caseStatusName FROM ms_case_flow f left join ms_case_flow_role_related fr on f.id = fr.flow_id left join ms_sys_role r on fr.roleid = r.role_id WHERE f.id = #{caseFlowId} ")
|
@Select("SELECT r.role_name as roleName ,f.node_name as nodeName ,f.case_status_name as caseStatusName FROM ms_case_flow f left join ms_case_flow_role_related fr on f.id = fr.flow_id left join ms_sys_role r on fr.roleid = r.role_id WHERE f.id = #{caseFlowId} ")
|
||||||
List<MsCaseFlowVO> selectFlowRole(Integer caseFlowId);
|
List<MsCaseFlowVO> selectFlowRole(Integer caseFlowId);
|
||||||
|
@Select("select f1.id,f1.case_status_name caseStatusName,f1.sort from ms_case_flow f1 order by f1.sort")
|
||||||
|
|
||||||
|
List<MsBaseCaseFlow> selectCaseFlow();
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.system.service.flow;
|
package com.ruoyi.system.service.flow;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
|
||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
||||||
|
|
||||||
@@ -12,6 +13,11 @@ public interface CaseFlowService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO);
|
Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO);
|
||||||
|
/**
|
||||||
|
* 查询案件流程信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult selectCaseFlow();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增或编辑案件流程节点信息
|
* 新增或编辑案件流程节点信息
|
||||||
@@ -40,4 +46,6 @@ public interface CaseFlowService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Set<Integer> getCaseStatusIdByRoleKey(Set<String> roles);
|
Set<Integer> getCaseStatusIdByRoleKey(Set<String> roles);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package com.ruoyi.system.service.flow;
|
|||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
||||||
import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated;
|
import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated;
|
||||||
|
import com.ruoyi.system.domain.vo.flow.MsBaseCaseFlow;
|
||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO;
|
||||||
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
||||||
import com.ruoyi.system.mapper.SysRoleMapper;
|
import com.ruoyi.system.mapper.SysRoleMapper;
|
||||||
@@ -95,6 +97,12 @@ public class CaseFlowServiceImpl implements CaseFlowService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult selectCaseFlow() {
|
||||||
|
List<MsBaseCaseFlow> caseFlows = msCaseFlowMapper.selectCaseFlow();
|
||||||
|
return AjaxResult.success(caseFlows);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询流程信息相关的角色信息
|
* 查询流程信息相关的角色信息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.ruoyi.common.core.domain.entity.SysRole;
|
|||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUserDept;
|
import com.ruoyi.common.core.domain.entity.SysUserDept;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanValidators;
|
import com.ruoyi.common.utils.bean.BeanValidators;
|
||||||
@@ -241,6 +242,8 @@ public class SysUserServiceImpl implements ISysUserService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public AjaxResult insertUser(SysUser user) {
|
public AjaxResult insertUser(SysUser user) {
|
||||||
// 新增用户信息
|
// 新增用户信息
|
||||||
|
user.setCreateBy("admin");
|
||||||
|
user.setCreateTime(DateUtils.getNowDate());
|
||||||
int rows = userMapper.insertUser(user);
|
int rows = userMapper.insertUser(user);
|
||||||
// 新增用户部门关联
|
// 新增用户部门关联
|
||||||
if(CollectionUtil.isNotEmpty(user.getDeptIds())) {
|
if(CollectionUtil.isNotEmpty(user.getDeptIds())) {
|
||||||
|
|||||||
+24
-1
@@ -1,7 +1,6 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.domain.dto.miniprogress;
|
package com.ruoyi.wisdomarbitrate.domain.dto.miniprogress;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -20,6 +19,14 @@ public class IdentityAuthentication extends BaseEntity {
|
|||||||
private String name;
|
private String name;
|
||||||
/** 身份证号 */
|
/** 身份证号 */
|
||||||
private String identityNo;
|
private String identityNo;
|
||||||
|
/**
|
||||||
|
* 身份类别,0-身份证,1-护照,默认0
|
||||||
|
*/
|
||||||
|
private Integer idType;
|
||||||
|
/**
|
||||||
|
* 国籍,0-国内,1-国外,默认0
|
||||||
|
*/
|
||||||
|
private Integer nationality;
|
||||||
/**
|
/**
|
||||||
* 短信验证码
|
* 短信验证码
|
||||||
*/
|
*/
|
||||||
@@ -104,6 +111,22 @@ public class IdentityAuthentication extends BaseEntity {
|
|||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdType() {
|
||||||
|
return idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdType(Integer idType) {
|
||||||
|
this.idType = idType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNationality() {
|
||||||
|
return nationality;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNationality(Integer nationality) {
|
||||||
|
this.nationality = nationality;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUserId(Long userId) {
|
public void setUserId(Long userId) {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|||||||
+21
@@ -144,6 +144,27 @@ public class MsSealSignRecord {
|
|||||||
@Column(name = "position_ypsn_medi")
|
@Column(name = "position_ypsn_medi")
|
||||||
private double positionYpsnMedi;
|
private double positionYpsnMedi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请人签名状态
|
||||||
|
*/
|
||||||
|
@Column(name = "sign_status_apply")
|
||||||
|
private Integer signStatusApply;
|
||||||
|
/**
|
||||||
|
* 被申请人签名状态
|
||||||
|
*/
|
||||||
|
@Column(name = "sign_status_response")
|
||||||
|
private Integer signStatusResponse;
|
||||||
|
/**
|
||||||
|
* 调解员签名状态
|
||||||
|
*/
|
||||||
|
@Column(name = "sign_status_mediator")
|
||||||
|
private Integer signStatusMediator;
|
||||||
|
/**
|
||||||
|
* 用印状态
|
||||||
|
*/
|
||||||
|
@Column(name = "seal_status")
|
||||||
|
private Integer sealStatus;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+10
@@ -154,4 +154,14 @@ public class MsCaseAffiliate {
|
|||||||
*/
|
*/
|
||||||
@Column(name = "is_sign_respon")
|
@Column(name = "is_sign_respon")
|
||||||
private Integer isSignRespon;
|
private Integer isSignRespon;
|
||||||
|
/**
|
||||||
|
* 身份类别,0-身份证,1-护照,默认0
|
||||||
|
*/
|
||||||
|
@Column(name = "id_type")
|
||||||
|
private Integer idType;
|
||||||
|
/**
|
||||||
|
* 国籍,0-国内,1-国外,默认0
|
||||||
|
*/
|
||||||
|
@Column(name = "nationality")
|
||||||
|
private Integer nationality;
|
||||||
}
|
}
|
||||||
+3
-3
@@ -73,8 +73,8 @@ public class MsCaseAttach {
|
|||||||
private Long sealStatus;
|
private Long sealStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是证据上传,0-否,1-是
|
* onlyOffice附件id
|
||||||
*/
|
*/
|
||||||
@Column(name = "is_batch_upload")
|
@Column(name = "only_office_file_id")
|
||||||
private Long isBatchUpload;
|
private String onlyOfficeFileId;
|
||||||
}
|
}
|
||||||
+7
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.domain.vo.mscase;
|
package com.ruoyi.wisdomarbitrate.domain.vo.mscase;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate;
|
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication;
|
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach;
|
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach;
|
||||||
@@ -7,6 +8,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,6 +79,10 @@ public class MsCaseApplicationVO extends MsCaseApplication {
|
|||||||
* 签名按钮显示,0-显示,1-不显示
|
* 签名按钮显示,0-显示,1-不显示
|
||||||
*/
|
*/
|
||||||
private Integer signButtonFlag;
|
private Integer signButtonFlag;
|
||||||
|
/**
|
||||||
|
* 结束时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
||||||
|
private Date endTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package com.ruoyi.wisdomarbitrate.domain.vo.mscase;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Classname MsCaseBatchInsertVO
|
||||||
|
* @Description 批量新增案件
|
||||||
|
* @Version 1.0.0
|
||||||
|
* @Date 2024/3/11 10:04
|
||||||
|
* @Created wangqiong
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MsCaseBatchInsertVO implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private List<MsCaseApplicationVO> list;
|
||||||
|
}
|
||||||
+10
@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import tk.mybatis.mapper.common.Mapper;
|
import tk.mybatis.mapper.common.Mapper;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface MsCaseLogRecordMapper extends Mapper<MsCaseLogRecord> {
|
public interface MsCaseLogRecordMapper extends Mapper<MsCaseLogRecord> {
|
||||||
@@ -33,4 +34,13 @@ public interface MsCaseLogRecordMapper extends Mapper<MsCaseLogRecord> {
|
|||||||
|
|
||||||
@Select("SELECT group_concat( DISTINCT t.createNickName) createNickName,t.nodeName content,t.nodeId,t.sort ,t.caseStatusName FROM (SELECT l.create_nick_name createNickName ,f.node_name nodeName,f.node_id nodeId, f.sort, f.case_status_name caseStatusName FROM ms_case_log_record l left join ms_case_flow f on l.case_node = f.node_id WHERE l.case_appli_id = #{caseAppliId} and f.node_name is not null ) t group by t.nodeName,t.nodeId,t.sort ,t.caseStatusName order by t.sort ")
|
@Select("SELECT group_concat( DISTINCT t.createNickName) createNickName,t.nodeName content,t.nodeId,t.sort ,t.caseStatusName FROM (SELECT l.create_nick_name createNickName ,f.node_name nodeName,f.node_id nodeId, f.sort, f.case_status_name caseStatusName FROM ms_case_log_record l left join ms_case_flow f on l.case_node = f.node_id WHERE l.case_appli_id = #{caseAppliId} and f.node_name is not null ) t group by t.nodeName,t.nodeId,t.sort ,t.caseStatusName order by t.sort ")
|
||||||
List<MsCaseLogRecordVO> selectCaseLogRecordListCaseProgress(Long caseAppliId);
|
List<MsCaseLogRecordVO> selectCaseLogRecordListCaseProgress(Long caseAppliId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据案件id查询结束时间
|
||||||
|
* @param caseAppliId
|
||||||
|
* @param caseStatusName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Select("SELECT create_time endTime FROM ms_case_log_record where case_appli_id=#{caseAppliId} and case_status_name=#{caseStatusName} order by create_time desc limit 1")
|
||||||
|
Date selectEndTimeByCaseId(@Param("caseAppliId") Long caseAppliId, @Param("caseStatusName") String caseStatusName);
|
||||||
}
|
}
|
||||||
+2
@@ -161,6 +161,8 @@ public class WeChatUserServiceImpl implements WeChatUserService {
|
|||||||
sysUser.setPhonenumber(ientityAuthentication.getPhone());
|
sysUser.setPhonenumber(ientityAuthentication.getPhone());
|
||||||
sysUser.setEmail(ientityAuthentication.getEmail());
|
sysUser.setEmail(ientityAuthentication.getEmail());
|
||||||
sysUser.setCreateBy(ientityAuthentication.getUserName());
|
sysUser.setCreateBy(ientityAuthentication.getUserName());
|
||||||
|
sysUser.setIdType(ientityAuthentication.getIdType());
|
||||||
|
sysUser.setNationality(ientityAuthentication.getNationality());
|
||||||
sysUser.setPassword(SecurityUtils.encryptPassword(ientityAuthentication.getPassWord()));
|
sysUser.setPassword(SecurityUtils.encryptPassword(ientityAuthentication.getPassWord()));
|
||||||
int row = sysUserMapper.insertUser(sysUser);
|
int row = sysUserMapper.insertUser(sysUser);
|
||||||
if(row<1) {
|
if(row<1) {
|
||||||
|
|||||||
+27
-2
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.service.mscase;
|
package com.ruoyi.wisdomarbitrate.service.mscase;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
@@ -40,14 +41,27 @@ public interface MsCaseApplicationService {
|
|||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
MsCaseApplicationVO selectById(Long id);
|
MsCaseApplicationVO selectById(Long id ,String caseNum );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增案件
|
* 新增案件
|
||||||
* @param caseApplication
|
* @param caseApplication
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
int insert(MsCaseApplicationVO caseApplication);
|
String insert(MsCaseApplicationVO caseApplication);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增案件
|
||||||
|
* @param caseApplication
|
||||||
|
* @param caseFlow
|
||||||
|
*/
|
||||||
|
String insert(MsCaseApplicationVO caseApplication, MsCaseFlow caseFlow);
|
||||||
|
/**
|
||||||
|
* 批量新增案件
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult batchInsert(MsCaseBatchInsertVO vo);
|
||||||
/**
|
/**
|
||||||
* 新增用户
|
* 新增用户
|
||||||
* @param affiliate
|
* @param affiliate
|
||||||
@@ -206,6 +220,11 @@ public interface MsCaseApplicationService {
|
|||||||
* @param dictDataList 内置字段
|
* @param dictDataList 内置字段
|
||||||
*/
|
*/
|
||||||
void createMediateApplication(MsCaseApplication application, MsCaseAffiliate affiliate, String templatePath, List<String> bookmarkList, List<SysDictData> dictDataList, Integer templateType) ;
|
void createMediateApplication(MsCaseApplication application, MsCaseAffiliate affiliate, String templatePath, List<String> bookmarkList, List<SysDictData> dictDataList, Integer templateType) ;
|
||||||
|
/**
|
||||||
|
* 调解书上传到onlyoffice服务器
|
||||||
|
* @param annexPath
|
||||||
|
*/
|
||||||
|
JSONArray uploadOnlyOffice(String annexPath,Long id);
|
||||||
/**
|
/**
|
||||||
* 案件受理
|
* 案件受理
|
||||||
* @param application
|
* @param application
|
||||||
@@ -242,5 +261,11 @@ public interface MsCaseApplicationService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
|
List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
|
||||||
|
/**
|
||||||
|
* 保存onlyOffice在线编辑的文件
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
|
||||||
|
AjaxResult saveOnlyOfficeFile(MsCaseAttach caseAttach);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -7,6 +7,7 @@ import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
|
|||||||
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
|
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseLogRecordVO;
|
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseLogRecordVO;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface MsSignSealService {
|
public interface MsSignSealService {
|
||||||
@@ -34,4 +35,6 @@ public interface MsSignSealService {
|
|||||||
AjaxResult msCaseSignUrlApplyAPP(MsSignSealDTO dto) throws EsignDemoException;
|
AjaxResult msCaseSignUrlApplyAPP(MsSignSealDTO dto) throws EsignDemoException;
|
||||||
|
|
||||||
AjaxResult msCaseSignUrlResAPP(MsSignSealDTO dto) throws EsignDemoException;
|
AjaxResult msCaseSignUrlResAPP(MsSignSealDTO dto) throws EsignDemoException;
|
||||||
|
|
||||||
|
AjaxResult signSeaalCaseApplicaCallback(String reqbodystr) throws EsignDemoException, IOException;
|
||||||
}
|
}
|
||||||
|
|||||||
+307
-103
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import cn.hutool.http.HttpResponse;
|
import cn.hutool.http.HttpResponse;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -47,7 +48,6 @@ import com.ruoyi.wisdomarbitrate.mapper.template.FatchRuleMapper;
|
|||||||
import com.ruoyi.wisdomarbitrate.mapper.template.TemplateManageMapper;
|
import com.ruoyi.wisdomarbitrate.mapper.template.TemplateManageMapper;
|
||||||
import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService;
|
import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService;
|
||||||
import com.ruoyi.wisdomarbitrate.utils.*;
|
import com.ruoyi.wisdomarbitrate.utils.*;
|
||||||
|
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -92,6 +92,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
|
|
||||||
@Value("${arbitrateConfig.url}")
|
@Value("${arbitrateConfig.url}")
|
||||||
private String arbitrateUrl;
|
private String arbitrateUrl;
|
||||||
|
@Value("${onlyOfficeConfig.url}")
|
||||||
|
private String onlyOfficeUrl;
|
||||||
@Autowired
|
@Autowired
|
||||||
MsCaseApplicationService caseApplicationService;
|
MsCaseApplicationService caseApplicationService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -158,22 +160,20 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<MsCaseApplicationVO> list(MsCaseApplicationReq req) {
|
public List<MsCaseApplicationVO> list(MsCaseApplicationReq req) {
|
||||||
// admin查询所有案件
|
|
||||||
if (StrUtil.equals(SecurityUtils.getUsername(), "admin")) {
|
|
||||||
startPage();
|
|
||||||
List<MsCaseApplicationVO> list = msCaseApplicationMapper.list(req, null);
|
|
||||||
for (MsCaseApplicationVO vo : list) {
|
|
||||||
vo.setSignButtonFlag(0);
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
// 根据用户查询角色
|
// 根据用户查询角色
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
// 根据id查询用户
|
// 根据id查询用户
|
||||||
SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId());
|
SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId());
|
||||||
List<SysRole> roles = loginUser.getUser().getRoles();
|
List<SysRole> roles = loginUser.getUser().getRoles();
|
||||||
if (CollectionUtil.isEmpty(roles)) {
|
if (StrUtil.equals(SecurityUtils.getUsername(), "admin")||CollectionUtil.isEmpty(roles)) {
|
||||||
throw new ServiceException("该用户未指定角色");
|
// 如果角色为空,按admin处理,查所有案件
|
||||||
|
startPage();
|
||||||
|
List<MsCaseApplicationVO> list = msCaseApplicationMapper.list(req, null);
|
||||||
|
for (MsCaseApplicationVO vo : list) {
|
||||||
|
vo.setSignButtonFlag(0);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
req.setUserName(SecurityUtils.getUsername());
|
req.setUserName(SecurityUtils.getUsername());
|
||||||
req.setContactTelphoneAgent(sysUser.getPhonenumber());
|
req.setContactTelphoneAgent(sysUser.getPhonenumber());
|
||||||
@@ -353,10 +353,29 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据案件id或者案件编号查询详情
|
||||||
|
* @param id
|
||||||
|
* @param caseNum
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public MsCaseApplicationVO selectById(Long id) {
|
public MsCaseApplicationVO selectById(Long id,String caseNum ) {
|
||||||
|
// 根据案件id或者案件编号查询详情
|
||||||
MsCaseApplicationVO vo = new MsCaseApplicationVO();
|
MsCaseApplicationVO vo = new MsCaseApplicationVO();
|
||||||
MsCaseApplication caseApplication = msCaseApplicationMapper.selectByPrimaryKey(id);
|
MsCaseApplication caseApplication = null;
|
||||||
|
if(id!=null) {
|
||||||
|
caseApplication = msCaseApplicationMapper.selectByPrimaryKey(id);
|
||||||
|
}else {
|
||||||
|
// 根据案件编号查
|
||||||
|
Example example = new Example(MsCaseApplication.class);
|
||||||
|
example.createCriteria().andEqualTo("caseNum", caseNum);
|
||||||
|
caseApplication = msCaseApplicationMapper.selectOneByExample(example);
|
||||||
|
}
|
||||||
|
if(caseApplication==null){
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
BeanUtil.copyProperties(caseApplication, vo);
|
BeanUtil.copyProperties(caseApplication, vo);
|
||||||
// 查询案件相关人员
|
// 查询案件相关人员
|
||||||
MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(id);
|
MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(id);
|
||||||
@@ -369,6 +388,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
vo.setColumnValueList(columnValueVOS);
|
vo.setColumnValueList(columnValueVOS);
|
||||||
// 查询拒绝原因
|
// 查询拒绝原因
|
||||||
vo.setReason(auditMapper.selectByCaseId(id,caseApplication.getCaseFlowId()));
|
vo.setReason(auditMapper.selectByCaseId(id,caseApplication.getCaseFlowId()));
|
||||||
|
// todo 在日志表查詢结束时间返回
|
||||||
|
vo.setEndTime(caseLogRecordMapper.selectEndTimeByCaseId(caseApplication.getId(),"结束"));
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -380,21 +401,36 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public int insert(MsCaseApplicationVO caseApplication) {
|
public String insert(MsCaseApplicationVO caseApplication) {
|
||||||
|
|
||||||
|
|
||||||
|
// todo 第三方调用该接口,未绑定角色,暂时不根据角色查询流程,根据角色获取案件流程
|
||||||
|
/** List<MsCaseFlow> caseFlows= selectCaseFlows();
|
||||||
|
if (CollectionUtil.isEmpty(caseFlows)) {
|
||||||
|
throw new ServiceException("该角色未绑定案件流程");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
// 设置模板id,根据机构代码查询模板
|
||||||
|
Long templateId = getTemplate();
|
||||||
|
caseApplication.setTemplateId(templateId);
|
||||||
|
// 获取第一个流程节点
|
||||||
|
MsCaseFlow caseFlow = getCaseFlow();
|
||||||
|
return insert(caseApplication,caseFlow);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增案件
|
||||||
|
* @param caseApplication
|
||||||
|
* @param caseFlow
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
@Override
|
||||||
|
public String insert(MsCaseApplicationVO caseApplication, MsCaseFlow caseFlow) {
|
||||||
if (caseApplication.getId() == null) {
|
if (caseApplication.getId() == null) {
|
||||||
caseApplication.setId(IdWorkerUtil.getId());
|
caseApplication.setId(IdWorkerUtil.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据角色获取案件流程
|
|
||||||
List<MsCaseFlow> caseFlows= selectCaseFlows();
|
|
||||||
if (CollectionUtil.isEmpty(caseFlows)) {
|
|
||||||
throw new ServiceException("该角色为绑定案件流程");
|
|
||||||
}
|
|
||||||
// 设置模板id,根据机构代码查询模板
|
|
||||||
Long templateId = templateManageMapper.selectByCreditCode(creditCode);
|
|
||||||
caseApplication.setTemplateId(templateId);
|
|
||||||
|
|
||||||
MsCaseFlow caseFlow = caseFlows.get(0);
|
|
||||||
caseApplication.setCaseStatusName(caseFlow.getCaseStatusName());
|
caseApplication.setCaseStatusName(caseFlow.getCaseStatusName());
|
||||||
caseApplication.setCaseFlowId(caseFlow.getId());
|
caseApplication.setCaseFlowId(caseFlow.getId());
|
||||||
caseApplication.setCreateTime(new Date());
|
caseApplication.setCreateTime(new Date());
|
||||||
@@ -416,51 +452,51 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
if (msCaseApplicationMapper.insertSelective(caseApplication) > 0) {
|
if (msCaseApplicationMapper.insertSelective(caseApplication) > 0) {
|
||||||
List<MsCaseAttach> caseAttachList = caseApplication.getCaseAttachList();
|
List<MsCaseAttach> caseAttachList = caseApplication.getCaseAttachList();
|
||||||
// 保存案件相关人员
|
// 保存案件相关人员
|
||||||
// 设置申请机构
|
// 设置申请机构
|
||||||
if (StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==1) {
|
if (StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==1) {
|
||||||
// 组装申请机构
|
// 组装申请机构
|
||||||
// insertDept(affiliate);
|
// insertDept(affiliate);
|
||||||
// 新增申请机构和代理人
|
// 新增申请机构和代理人
|
||||||
caseApplicationService.insertAgentUser(affiliate);
|
caseApplicationService.insertAgentUser(affiliate);
|
||||||
}else if(StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==0){
|
}else if(StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==0){
|
||||||
// 查询申请人角色id
|
// 查询申请人角色id
|
||||||
Long roleId = roleMapper.selectRoleIdByName("申请人");
|
Long roleId = roleMapper.selectRoleIdByName("申请人");
|
||||||
caseApplicationService.insertApplicantUser(affiliate,false,roleId);
|
caseApplicationService.insertApplicantUser(affiliate,false,roleId);
|
||||||
caseApplicationService.insertApplicantUser(affiliate,true,roleId);
|
caseApplicationService.insertApplicantUser(affiliate,true,roleId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// 压缩包导入,则根据身份证号获取性别和出生日期
|
// 压缩包导入,则根据身份证号获取性别和出生日期
|
||||||
if (caseApplication.isImportFlag() && StrUtil.isNotEmpty(affiliate.getRespondentIdentityNum())) {
|
if (caseApplication.isImportFlag() && StrUtil.isNotEmpty(affiliate.getRespondentIdentityNum())) {
|
||||||
setBirthByIdentityNum(affiliate);
|
setBirthByIdentityNum(affiliate);
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotEmpty(affiliate.getAgentEmail())) {
|
if (StrUtil.isNotEmpty(affiliate.getAgentEmail())) {
|
||||||
affiliate.setAgentEmail(affiliate.getAgentEmail().replace("\n", "").replaceAll("\\s", ""));
|
affiliate.setAgentEmail(affiliate.getAgentEmail().replace("\n", "").replaceAll("\\s", ""));
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotEmpty(affiliate.getRespondentEmail())) {
|
if (StrUtil.isNotEmpty(affiliate.getRespondentEmail())) {
|
||||||
affiliate.setRespondentEmail(affiliate.getRespondentEmail().replace("\n", "").replaceAll("\\s", ""));
|
affiliate.setRespondentEmail(affiliate.getRespondentEmail().replace("\n", "").replaceAll("\\s", ""));
|
||||||
}
|
}
|
||||||
msCaseAffiliateMapper.insert(affiliate);
|
msCaseAffiliateMapper.insert(affiliate);
|
||||||
// 批量生成调解申请书
|
// 批量生成调解申请书
|
||||||
MsCaseApplicationReq req = new MsCaseApplicationReq();
|
MsCaseApplicationReq req = new MsCaseApplicationReq();
|
||||||
req.setCaseFlowId(caseFlow.getId());
|
req.setCaseFlowId(caseFlow.getId());
|
||||||
if(!caseApplication.isImportFlag()) {
|
if(!caseApplication.isImportFlag()) {
|
||||||
req.setId(caseApplication.getId());
|
req.setId(caseApplication.getId());
|
||||||
}else {
|
}else {
|
||||||
// 压缩包导入
|
// 压缩包导入
|
||||||
req.setBatchNumber(caseApplication.getBatchNumber());
|
req.setBatchNumber(caseApplication.getBatchNumber());
|
||||||
}
|
}
|
||||||
// 生成调解申请书
|
// 生成调解申请书
|
||||||
if(affiliate.getOrganizeFlag()==0){
|
if(affiliate.getOrganizeFlag()==0){
|
||||||
// 自然人
|
// 自然人
|
||||||
req.setTemplateType(TemplateTypeEnum.PERSON_MEDIATION_APPLICATION.getCode());
|
req.setTemplateType(TemplateTypeEnum.PERSON_MEDIATION_APPLICATION.getCode());
|
||||||
}else {
|
}else {
|
||||||
// 机构
|
// 机构
|
||||||
req.setTemplateType(TemplateTypeEnum.MEDIATION_APPLICATION.getCode());
|
req.setTemplateType(TemplateTypeEnum.MEDIATION_APPLICATION.getCode());
|
||||||
}
|
}
|
||||||
req.setTemplateId(String.valueOf(templateId));
|
req.setTemplateId(String.valueOf(caseApplication.getTemplateId()));
|
||||||
|
// todo 部署放开
|
||||||
caseApplicationService.generateApplication(req);
|
caseApplicationService.generateApplication(req);
|
||||||
// 保存案件附件
|
// 保存案件附件
|
||||||
if (CollectionUtil.isNotEmpty(caseAttachList)) {
|
if (CollectionUtil.isNotEmpty(caseAttachList)) {
|
||||||
for (MsCaseAttach caseAttach : caseAttachList) {
|
for (MsCaseAttach caseAttach : caseAttachList) {
|
||||||
@@ -482,10 +518,61 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
columnValueMapper.batchSave(columnValueList);
|
columnValueMapper.batchSave(columnValueList);
|
||||||
}
|
}
|
||||||
CaseLogUtils.insertCaseLog(caseApplication.getId(), 0, "新增案件", "");
|
CaseLogUtils.insertCaseLog(caseApplication.getId(), 0, "新增案件", "");
|
||||||
return 1;
|
return caseApplication.getCaseNum();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取第一个流程节点
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private MsCaseFlow getCaseFlow() {
|
||||||
|
|
||||||
|
// 查询所有流程节点
|
||||||
|
Example flowExample = new Example(MsCaseFlow.class);
|
||||||
|
flowExample.setOrderByClause("sort asc");
|
||||||
|
List<MsCaseFlow> caseFlows = caseFlowMapper.selectByExample(flowExample);
|
||||||
|
if (CollectionUtil.isEmpty(caseFlows)) {
|
||||||
|
throw new ServiceException("请先配置流程");
|
||||||
|
}
|
||||||
|
return caseFlows.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取模板id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Long getTemplate() {
|
||||||
|
|
||||||
|
return templateManageMapper.selectByCreditCode(creditCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
@Override
|
||||||
|
public AjaxResult batchInsert(MsCaseBatchInsertVO vo) {
|
||||||
|
if(CollectionUtil.isEmpty(vo.getList())){
|
||||||
|
return AjaxResult.error("案件不能为空");
|
||||||
|
}
|
||||||
|
// 设置模板id,根据机构代码查询模板
|
||||||
|
Long templateId = getTemplate();
|
||||||
|
// 获取第一个流程节点
|
||||||
|
MsCaseFlow caseFlow = getCaseFlow();
|
||||||
|
List<String> caseNumList = new ArrayList<>();
|
||||||
|
for (MsCaseApplicationVO caseApplicationVO : vo.getList()) {
|
||||||
|
caseApplicationVO.setTemplateId(templateId);
|
||||||
|
String caseNum = caseApplicationService.insert(caseApplicationVO, caseFlow);
|
||||||
|
caseNumList.add(caseNum);
|
||||||
|
}
|
||||||
|
AjaxResult success = AjaxResult.success();
|
||||||
|
success.put("caseNumList",caseNumList);
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -518,6 +605,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
sysUser.setNickName(name);
|
sysUser.setNickName(name);
|
||||||
sysUser.setPhonenumber(phone);
|
sysUser.setPhonenumber(phone);
|
||||||
sysUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
|
sysUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
|
||||||
|
sysUser.setIdType(affiliate.getIdType());
|
||||||
|
sysUser.setNationality(affiliate.getNationality());
|
||||||
sysUser.setCreateBy(SecurityUtils.getUsername());
|
sysUser.setCreateBy(SecurityUtils.getUsername());
|
||||||
userMapper.insertUser(sysUser);
|
userMapper.insertUser(sysUser);
|
||||||
userRoleMapper.insertUserRole(sysUser.getUserId(), roleId);
|
userRoleMapper.insertUserRole(sysUser.getUserId(), roleId);
|
||||||
@@ -565,7 +654,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
example.createCriteria().andIn("roleid", roles.stream().map(SysRole::getRoleId).collect(Collectors.toList()));
|
example.createCriteria().andIn("roleid", roles.stream().map(SysRole::getRoleId).collect(Collectors.toList()));
|
||||||
List<MsCaseFlowRoleRelated> caseFlowRoleRelatedList = caseFlowRoleRelatedMapper.selectByExample(example);
|
List<MsCaseFlowRoleRelated> caseFlowRoleRelatedList = caseFlowRoleRelatedMapper.selectByExample(example);
|
||||||
if (CollectionUtil.isEmpty(caseFlowRoleRelatedList)) {
|
if (CollectionUtil.isEmpty(caseFlowRoleRelatedList)) {
|
||||||
throw new ServiceException("该角色为绑定案件流程");
|
throw new ServiceException("该角色未绑定案件流程");
|
||||||
}
|
}
|
||||||
Example flowExample = new Example(MsCaseFlow.class);
|
Example flowExample = new Example(MsCaseFlow.class);
|
||||||
flowExample.setOrderByClause("sort asc");
|
flowExample.setOrderByClause("sort asc");
|
||||||
@@ -1461,7 +1550,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
.annexType(annexType)
|
.annexType(annexType)
|
||||||
.useId(SecurityUtils.getUserId())
|
.useId(SecurityUtils.getUserId())
|
||||||
.useAccount(SecurityUtils.getUsername())
|
.useAccount(SecurityUtils.getUsername())
|
||||||
.isBatchUpload(1L)
|
|
||||||
.build();
|
.build();
|
||||||
int count = msCaseAttachMapper.save(caseAttach);
|
int count = msCaseAttachMapper.save(caseAttach);
|
||||||
if (count > 0 ) {
|
if (count > 0 ) {
|
||||||
@@ -1672,7 +1760,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
if (CollectionUtil.isEmpty(users)) {
|
if (CollectionUtil.isEmpty(users)) {
|
||||||
return AjaxResult.error("暂无调解员");
|
return AjaxResult.error("暂无调解员");
|
||||||
}
|
}
|
||||||
// todo 根据角色查询是否已经选择了调解员进行回显
|
// 根据角色查询是否已经选择了调解员进行回显
|
||||||
List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
|
List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
|
||||||
// 状态为未结束的是待办数量,结束的是已办数量
|
// 状态为未结束的是待办数量,结束的是已办数量
|
||||||
Map<Long, List<MsCaseApplication>> caseMap=null;
|
Map<Long, List<MsCaseApplication>> caseMap=null;
|
||||||
@@ -1777,7 +1865,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
// 申请人预约
|
// 申请人预约
|
||||||
if (vo.getMiniProgressFlag() == null || vo.getMiniProgressFlag().equals( YesOrNoEnum.NO.getCode())) {
|
if (vo.getMiniProgressFlag() == null || vo.getMiniProgressFlag().equals( YesOrNoEnum.NO.getCode())) {
|
||||||
// 新增日志
|
// 新增日志
|
||||||
CaseLogUtils.insertCaseLog(vo.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "申请人选择调解员");
|
CaseLogUtils.insertCaseLog(vo.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), null);
|
||||||
|
|
||||||
if (StrUtil.isEmpty(msCaseAffiliate.getRespondentIdentityNum())) {
|
if (StrUtil.isEmpty(msCaseAffiliate.getRespondentIdentityNum())) {
|
||||||
return AjaxResult.error("被申请人身份证为空");
|
return AjaxResult.error("被申请人身份证为空");
|
||||||
@@ -1788,7 +1876,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
} else {
|
} else {
|
||||||
// 被申请人预约
|
// 被申请人预约
|
||||||
// 新增日志
|
// 新增日志
|
||||||
CaseLogUtils.insertCaseLog(vo.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "被申请人选择调解员");
|
CaseLogUtils.insertCaseLog(vo.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), null);
|
||||||
// 判断申请人是否预约
|
// 判断申请人是否预约
|
||||||
caseApplicationService. isReservation( vo,userIds);
|
caseApplicationService. isReservation( vo,userIds);
|
||||||
|
|
||||||
@@ -2067,6 +2155,26 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
public List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord) {
|
public List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord) {
|
||||||
return smsRecordMapper.getSmsSendRecord(smsSendRecord);
|
return smsRecordMapper.getSmsSendRecord(smsSendRecord);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 保存onlyOffice在线编辑的文件
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
@Override
|
||||||
|
public AjaxResult saveOnlyOfficeFile(MsCaseAttach caseAttach) {
|
||||||
|
if(StrUtil.isEmpty(caseAttach.getAnnexName())) {
|
||||||
|
caseAttach.setAnnexName("调解书");
|
||||||
|
}
|
||||||
|
caseAttach.setAnnexType(AnnexTypeEnum.MEDIATE_BOOK.getCode());
|
||||||
|
caseAttach.setUseId(getUserInfo().getUserId());
|
||||||
|
caseAttach.setUseAccount(getUserInfo().getUserName());
|
||||||
|
// 先删除之前的在新增
|
||||||
|
msCaseAttachMapper.deleteCaseAttachByCasedIdAndType(caseAttach.getCaseAppliId(), caseAttach.getAnnexType());
|
||||||
|
msCaseAttachMapper.save(caseAttach);
|
||||||
|
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询预约信息
|
* 查询预约信息
|
||||||
@@ -2117,6 +2225,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
if (currentFlow == null) {
|
if (currentFlow == null) {
|
||||||
throw new ServiceException("未找到当前流程节点");
|
throw new ServiceException("未找到当前流程节点");
|
||||||
}
|
}
|
||||||
|
Integer mediaResult = req.getMediaResult();
|
||||||
MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(req.getId());
|
MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(req.getId());
|
||||||
if (application.getMediationMethod().equals("1")) {
|
if (application.getMediationMethod().equals("1")) {
|
||||||
// 线上调解
|
// 线上调解
|
||||||
@@ -2129,18 +2238,17 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
msCaseAttachMapper.updateCaseAttach(attach);
|
msCaseAttachMapper.updateCaseAttach(attach);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Integer mediaResult = req.getMediaResult();
|
if(mediaResult ==1){
|
||||||
if(mediaResult!=null){
|
|
||||||
if(mediaResult.intValue()==1){
|
|
||||||
//达成调解
|
//达成调解
|
||||||
List<MsCaseAttach> caseAttachList = msCaseAttachMapper.queryAnnexPathByCaseId(req.getId());
|
List<MsCaseAttach> caseAttachList = msCaseAttachMapper.queryAnnexPathByCaseId(req.getId());
|
||||||
if (caseAttachList != null && caseAttachList.size() > 0) {
|
if (caseAttachList != null && caseAttachList.size() > 0) {
|
||||||
for (MsCaseAttach caseAttach : caseAttachList) {
|
for (MsCaseAttach caseAttach : caseAttachList) {
|
||||||
if (caseAttach.getAnnexType() == AnnexTypeEnum.MEDIATE_BOOK.getCode()) {
|
if (caseAttach.getAnnexType() == AnnexTypeEnum.MEDIATE_BOOK.getCode()) {
|
||||||
String prefix = "/profile";
|
// String prefix = "/profile";
|
||||||
int startIndex = prefix.length();
|
// int startIndex = prefix.length();
|
||||||
String annexPath = caseAttach.getAnnexPath();
|
String annexPath = caseAttach.getAnnexPath();
|
||||||
String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex+1);
|
// String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex+1);
|
||||||
|
String path = annexPath;
|
||||||
//获取文件上传地址
|
//获取文件上传地址
|
||||||
EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path);
|
EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path);
|
||||||
String body = response.getBody();
|
String body = response.getBody();
|
||||||
@@ -2485,11 +2593,9 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
||||||
application.setCaseFlowId(caseFlow.getId());
|
application.setCaseFlowId(caseFlow.getId());
|
||||||
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
||||||
|
application.setMediaResult(mediaResult);
|
||||||
msCaseApplicationMapper.updateByPrimaryKey(application);
|
msCaseApplicationMapper.updateByPrimaryKey(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
application.setMediaResult(mediaResult);
|
|
||||||
msCaseApplicationMapper.updateByPrimaryKeySelective(application);
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}else if(mediaResult.intValue()==3){
|
}else if(mediaResult.intValue()==3){
|
||||||
//未达成调解但不再争议
|
//未达成调解但不再争议
|
||||||
@@ -2500,14 +2606,12 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
if(caseFlow != null){
|
if(caseFlow != null){
|
||||||
application.setCaseFlowId(caseFlow.getId());
|
application.setCaseFlowId(caseFlow.getId());
|
||||||
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
||||||
|
application.setMediaResult(mediaResult);
|
||||||
msCaseApplicationMapper.updateByPrimaryKey(application);
|
msCaseApplicationMapper.updateByPrimaryKey(application);
|
||||||
// 新增日志
|
// 新增日志
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
application.setMediaResult(mediaResult);
|
|
||||||
msCaseApplicationMapper.updateByPrimaryKeySelective(application);
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}else if(mediaResult.intValue()==4){
|
}else if(mediaResult.intValue()==4){
|
||||||
//未达成调解但同意引入仲裁
|
//未达成调解但同意引入仲裁
|
||||||
@@ -2532,6 +2636,19 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
.header("signstr", signStr)
|
.header("signstr", signStr)
|
||||||
.body(paramsbody)
|
.body(paramsbody)
|
||||||
.execute();
|
.execute();
|
||||||
|
// 修改案件状态为结束
|
||||||
|
Example flowExample = new Example(MsCaseFlow.class);
|
||||||
|
flowExample.createCriteria().andEqualTo("caseStatusName", "结束");
|
||||||
|
MsCaseFlow caseFlow = caseFlowMapper.selectOneByExample(flowExample);
|
||||||
|
if(caseFlow != null){
|
||||||
|
// 新增日志
|
||||||
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
||||||
|
application.setCaseFlowId(caseFlow.getId());
|
||||||
|
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
||||||
|
application.setMediaResult(mediaResult);
|
||||||
|
msCaseApplicationMapper.updateByPrimaryKey(application);
|
||||||
|
}
|
||||||
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}else if(mediaResult.intValue()==5){
|
}else if(mediaResult.intValue()==5){
|
||||||
// 达成和解
|
// 达成和解
|
||||||
@@ -2539,10 +2656,11 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
if (caseAttachList != null && caseAttachList.size() > 0) {
|
if (caseAttachList != null && caseAttachList.size() > 0) {
|
||||||
for (MsCaseAttach caseAttach : caseAttachList) {
|
for (MsCaseAttach caseAttach : caseAttachList) {
|
||||||
if (caseAttach.getAnnexType() == AnnexTypeEnum.MEDIATE_BOOK.getCode()) {
|
if (caseAttach.getAnnexType() == AnnexTypeEnum.MEDIATE_BOOK.getCode()) {
|
||||||
String prefix = "/profile";
|
// String prefix = "/profile";
|
||||||
int startIndex = prefix.length();
|
// int startIndex = prefix.length();
|
||||||
String annexPath = caseAttach.getAnnexPath();
|
String annexPath = caseAttach.getAnnexPath();
|
||||||
String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex+1);
|
// String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex+1);
|
||||||
|
String path = annexPath;
|
||||||
//获取文件上传地址
|
//获取文件上传地址
|
||||||
EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path);
|
EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path);
|
||||||
String body = response.getBody();
|
String body = response.getBody();
|
||||||
@@ -2779,7 +2897,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// 线下调解
|
// 线下调解
|
||||||
List<MsCaseAttach> attachList = req.getAttachList();
|
List<MsCaseAttach> attachList = req.getAttachList();
|
||||||
@@ -2792,14 +2910,45 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
attach.setCaseAppliId(req.getId());
|
attach.setCaseAppliId(req.getId());
|
||||||
msCaseAttachMapper.updateCaseAttach(attach);
|
msCaseAttachMapper.updateCaseAttach(attach);
|
||||||
}
|
}
|
||||||
// msCaseAttachMapper.batchSave(attachList);
|
|
||||||
// 修改案件状态为待送达
|
// 修改案件状态为待送达
|
||||||
Example flowExample = new Example(MsCaseFlow.class);
|
Example flowExample = new Example(MsCaseFlow.class);
|
||||||
flowExample.createCriteria().andEqualTo("caseStatusName", "待送达");
|
if(mediaResult ==1 || mediaResult == 5){
|
||||||
|
// 达成调解,达成和解,案件状态改为待送达
|
||||||
|
flowExample.createCriteria().andEqualTo("caseStatusName", "待送达");
|
||||||
|
} else if(mediaResult == 2 || mediaResult == 3){
|
||||||
|
// 未达成调解,未达成调解但不在争议改为结束状态
|
||||||
|
flowExample.createCriteria().andEqualTo("caseStatusName", "结束");
|
||||||
|
}
|
||||||
|
else if(mediaResult == 4){
|
||||||
|
// 未达成调解但同意引入仲裁系统,改为结束状态,并调仲裁新增接口
|
||||||
|
flowExample.createCriteria().andEqualTo("caseStatusName", "结束");
|
||||||
|
String accessSec = "mCFMA6ffe938v79m";
|
||||||
|
MsCaseApplicationVO applicationVO = new MsCaseApplicationVO();
|
||||||
|
BeanUtils.copyProperties(application,applicationVO);
|
||||||
|
|
||||||
|
CaseApplicationVO caseApplicationVO = new CaseApplicationVO();
|
||||||
|
BeanUtils.copyProperties(applicationVO,caseApplicationVO);
|
||||||
|
boolean importFlag = applicationVO.isImportFlag();
|
||||||
|
if(importFlag==true){
|
||||||
|
caseApplicationVO.setImportFlag(1);
|
||||||
|
}else {
|
||||||
|
caseApplicationVO.setImportFlag(0);
|
||||||
|
}
|
||||||
|
String paramsbody = JSONUtil.toJsonStr(caseApplicationVO);
|
||||||
|
long timestamp = System.currentTimeMillis();
|
||||||
|
String signStr = SignCheckUtils.getSign(paramsbody, accessSec, timestamp);
|
||||||
|
String urlstr = arbitrateUrl;
|
||||||
|
HttpResponse httpResponse = HttpRequest.post(urlstr)
|
||||||
|
.header("timestampstr", String.valueOf(timestamp))
|
||||||
|
.header("signstr", signStr)
|
||||||
|
.body(paramsbody)
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
MsCaseFlow caseFlow = caseFlowMapper.selectOneByExample(flowExample);
|
MsCaseFlow caseFlow = caseFlowMapper.selectOneByExample(flowExample);
|
||||||
if(caseFlow != null){
|
if(caseFlow != null){
|
||||||
application.setCaseFlowId(caseFlow.getId());
|
application.setCaseFlowId(caseFlow.getId());
|
||||||
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
application.setCaseStatusName(caseFlow.getCaseStatusName());
|
||||||
|
application.setMediaResult(mediaResult);
|
||||||
msCaseApplicationMapper.updateByPrimaryKey(application);
|
msCaseApplicationMapper.updateByPrimaryKey(application);
|
||||||
// 新增日志
|
// 新增日志
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"");
|
||||||
@@ -2808,7 +2957,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return AjaxResult.error();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3633,15 +3782,68 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
// 将word中的标签替换掉,生成新的word
|
// 将word中的标签替换掉,生成新的word
|
||||||
wordChangeText(templatePath, bookmarkValueMap,saveFolderPath,resultFilePath);
|
wordChangeText(templatePath, bookmarkValueMap,saveFolderPath,resultFilePath);
|
||||||
|
|
||||||
MsCaseAttach caseAttach = MsCaseAttach.builder()
|
MsCaseAttach caseAttach = null;
|
||||||
.caseAppliId(application.getId())
|
String annexPath=resultFilePath.replace(RuoYiConfig.getProfile(),Constants.RESOURCE_PREFIX);
|
||||||
.annexName(orgFileName+".docx")
|
// 如果是调解书或者调解协议上传到onlyoffice服务器
|
||||||
.annexPath(resultFilePath.replace(RuoYiConfig.getProfile(),Constants.RESOURCE_PREFIX))
|
if(annexType != null && annexType.equals(AnnexTypeEnum.MEDIATE_BOOK.getCode())){
|
||||||
.annexType(annexType)
|
JSONArray jsonArray = caseApplicationService.uploadOnlyOffice(annexPath,application.getId());
|
||||||
.build();
|
if(jsonArray!=null && jsonArray.size() > 0){
|
||||||
|
for (Object obj : jsonArray) {
|
||||||
|
JSONObject jsonObject = (JSONObject) obj;
|
||||||
|
caseAttach= MsCaseAttach.builder()
|
||||||
|
.caseAppliId(application.getId())
|
||||||
|
.annexName(jsonObject.getString("fileName"))
|
||||||
|
.annexPath(jsonObject.getString("filePath"))
|
||||||
|
.annexType(annexType)
|
||||||
|
.onlyOfficeFileId(jsonObject.getString("fileId"))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
caseAttach = MsCaseAttach.builder()
|
||||||
|
.caseAppliId(application.getId())
|
||||||
|
.annexName(orgFileName+".docx")
|
||||||
|
.annexPath(resultFilePath.replace(RuoYiConfig.getProfile(),Constants.RESOURCE_PREFIX))
|
||||||
|
.annexType(annexType)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
//保存到附件表里,先删除之前的在保存
|
//保存到附件表里,先删除之前的在保存
|
||||||
msCaseAttachMapper.deleteCaseAttachByCasedIdAndType(caseAttach.getCaseAppliId(), annexType);
|
if(caseAttach != null) {
|
||||||
msCaseAttachMapper.save(caseAttach);
|
msCaseAttachMapper.deleteCaseAttachByCasedIdAndType(caseAttach.getCaseAppliId(), annexType);
|
||||||
|
msCaseAttachMapper.save(caseAttach);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调解书上传到onlyoffice服务器
|
||||||
|
* @param annexPath
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public JSONArray uploadOnlyOffice(String annexPath,Long caseId) {
|
||||||
|
annexPath=annexPath.replace("/profile","/home/ruoyi/uploadPath");
|
||||||
|
File file = new File(annexPath);
|
||||||
|
if (file.exists()) {
|
||||||
|
// 调用onlyoffice
|
||||||
|
try {
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("file", file);
|
||||||
|
String postResult = HttpUtil.post(onlyOfficeUrl+ "/"+String.valueOf(caseId), params);
|
||||||
|
if(StrUtil.isNotEmpty(postResult)){
|
||||||
|
// 转为jsonArray
|
||||||
|
JSONArray jsonArray = JSONArray.parseArray(postResult);
|
||||||
|
|
||||||
|
return jsonArray;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServiceException("上传OnlyOffice服务器失败");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
throw new ServiceException("文件不存在");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3878,6 +4080,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
|
|||||||
agentUser.setNickName(affiliate.getNameAgent());
|
agentUser.setNickName(affiliate.getNameAgent());
|
||||||
agentUser.setPhonenumber(affiliate.getContactTelphoneAgent());
|
agentUser.setPhonenumber(affiliate.getContactTelphoneAgent());
|
||||||
agentUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
|
agentUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
|
||||||
|
agentUser.setNationality(affiliate.getNationality());
|
||||||
|
agentUser.setIdType(affiliate.getIdType());
|
||||||
// agentUser.setDeptId(Long.valueOf(affiliate.getApplicationId()));
|
// agentUser.setDeptId(Long.valueOf(affiliate.getApplicationId()));
|
||||||
userMapper.insertUser(agentUser);
|
userMapper.insertUser(agentUser);
|
||||||
userRoleMapper.insertUserRole(agentUser.getUserId(), roleId);
|
userRoleMapper.insertUserRole(agentUser.getUserId(), roleId);
|
||||||
|
|||||||
+2
-2
@@ -350,7 +350,7 @@ public class MsCasePaymentServiceImpl implements MsCasePaymentService {
|
|||||||
}
|
}
|
||||||
// 新增日志
|
// 新增日志
|
||||||
if (dto.getYesOrNo().equals(YesOrNoEnum.YES.getCode())) {
|
if (dto.getYesOrNo().equals(YesOrNoEnum.YES.getCode())) {
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "确认已缴费");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), null);
|
||||||
}else {
|
}else {
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "拒绝确认缴费,拒绝原因为:"+dto.getReason());
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "拒绝确认缴费,拒绝原因为:"+dto.getReason());
|
||||||
}
|
}
|
||||||
@@ -509,7 +509,7 @@ public class MsCasePaymentServiceImpl implements MsCasePaymentService {
|
|||||||
application.setCaseFlowId(nextFlow.getId());
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"确认缴费");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+341
-5
@@ -60,6 +60,7 @@ import tk.mybatis.mapper.entity.Example;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -83,6 +84,8 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
MsCaseFlowMapper caseFlowMapper;
|
MsCaseFlowMapper caseFlowMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysUserMapper userMapper;
|
private SysUserMapper userMapper;
|
||||||
|
@Autowired
|
||||||
|
private MsCaseAttachMapper caseAttachMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysUserMapper sysUserMapper;
|
private SysUserMapper sysUserMapper;
|
||||||
@@ -408,7 +411,7 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
application.setCaseFlowId(nextFlow.getId());
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"用印申请");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 单独
|
// 单独
|
||||||
@@ -418,7 +421,7 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
application.setCaseFlowId(nextFlow.getId());
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"用印申请");
|
CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),null);
|
||||||
}
|
}
|
||||||
return AjaxResult.success("用印申请成功");
|
return AjaxResult.success("用印申请成功");
|
||||||
|
|
||||||
@@ -566,7 +569,13 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
caseNodeTime= DateUtil.format(record.getCreateTime(), DatePattern.NORM_DATETIME_FORMATTER);
|
caseNodeTime= DateUtil.format(record.getCreateTime(), DatePattern.NORM_DATETIME_FORMATTER);
|
||||||
}
|
}
|
||||||
Integer caseNode = record.getCaseNode();
|
Integer caseNode = record.getCaseNode();
|
||||||
contentBuilder.append(Optional.ofNullable(record.getCreateNickName()).orElse("")).append("(").append(record.getCreateBy()).append(")").append("于").append(caseNodeTime);
|
String createBy = record.getCreateBy();
|
||||||
|
if(StrUtil.isNotEmpty(createBy)){
|
||||||
|
contentBuilder.append(Optional.ofNullable(record.getCreateNickName()).orElse("")).append("(").append(record.getCreateBy()).append(")").append("于").append(caseNodeTime);
|
||||||
|
}else{
|
||||||
|
contentBuilder.append(Optional.ofNullable(record.getCreateNickName()).orElse("")).append("于").append(caseNodeTime);
|
||||||
|
}
|
||||||
|
|
||||||
if(StrUtil.isNotEmpty(record.getContent())){
|
if(StrUtil.isNotEmpty(record.getContent())){
|
||||||
contentBuilder.append(record.getContent());
|
contentBuilder.append(record.getContent());
|
||||||
}else if(caseNode.intValue() == 0){
|
}else if(caseNode.intValue() == 0){
|
||||||
@@ -777,7 +786,7 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
caseApplicationselect.setCaseFlowId(nextFlow.getId());
|
caseApplicationselect.setCaseFlowId(nextFlow.getId());
|
||||||
caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName());
|
caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect);
|
caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect);
|
||||||
CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"签收");
|
CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),null);
|
||||||
}
|
}
|
||||||
// if (dto.getIsSignRespon() != null && dto.getIsSignRespon().intValue() == 1) {
|
// if (dto.getIsSignRespon() != null && dto.getIsSignRespon().intValue() == 1) {
|
||||||
// caseAffiliate.setIsSignRespon(1);
|
// caseAffiliate.setIsSignRespon(1);
|
||||||
@@ -801,7 +810,7 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
caseApplicationselect.setCaseFlowId(nextFlow.getId());
|
caseApplicationselect.setCaseFlowId(nextFlow.getId());
|
||||||
caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName());
|
caseApplicationselect.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect);
|
caseApplicationMapper.updateByPrimaryKeySelective(caseApplicationselect);
|
||||||
CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),"签收");
|
CaseLogUtils.insertCaseLog(caseApplicationselect.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return AjaxResult.success("签收成功");
|
return AjaxResult.success("签收成功");
|
||||||
@@ -1008,6 +1017,333 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
return AjaxResult.success(sealSignRecordres);
|
return AjaxResult.success(sealSignRecordres);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public AjaxResult signSeaalCaseApplicaCallback(String reqbodystr) throws EsignDemoException, IOException {
|
||||||
|
JSONObject jsonObjectCallback = JSONObject.parseObject(reqbodystr);
|
||||||
|
Gson gson = new Gson();
|
||||||
|
if (jsonObjectCallback != null) {
|
||||||
|
int signResult = jsonObjectCallback.getIntValue("signResult");
|
||||||
|
String action = jsonObjectCallback.getString("action");
|
||||||
|
String signFlowId = jsonObjectCallback.getString("signFlowId");
|
||||||
|
Long operateTime = jsonObjectCallback.getLongValue("operateTime");
|
||||||
|
JSONObject operator = jsonObjectCallback.getJSONObject("operator");
|
||||||
|
JSONObject psnAccount = operator.getJSONObject("psnAccount");
|
||||||
|
String accountMobile = psnAccount.getString("accountMobile");
|
||||||
|
|
||||||
|
Example msSealSignRecordExample = new Example(MsSealSignRecord.class);
|
||||||
|
msSealSignRecordExample.createCriteria().andEqualTo("signFlowId", signFlowId);
|
||||||
|
MsSealSignRecord sealSignRecordsel = sealSignRecordMapper.selectOneByExample(msSealSignRecordExample);
|
||||||
|
|
||||||
|
String pensonAccountApply = sealSignRecordsel.getPensonAccount();
|
||||||
|
String orgnNamePsnAcc = sealSignRecordsel.getOrgnNamePsnAcc();
|
||||||
|
String pensonAccountRes = sealSignRecordsel.getPensonAccountRes();
|
||||||
|
String pensonAccountMedi = sealSignRecordsel.getPensonAccountMedi();
|
||||||
|
String pensonName = sealSignRecordsel.getPensonName();
|
||||||
|
String orgnNamePsnName = sealSignRecordsel.getOrgnNamePsnName();
|
||||||
|
String pensonNameRes = sealSignRecordsel.getPensonNameRes();
|
||||||
|
String pensonNameMedi = sealSignRecordsel.getPensonNameMedi();
|
||||||
|
Date dateOperate = new Date(operateTime);
|
||||||
|
|
||||||
|
Integer signStatusApply = sealSignRecordsel.getSignStatusApply();
|
||||||
|
Integer signStatusResponse = sealSignRecordsel.getSignStatusResponse();
|
||||||
|
Integer signStatusMediator = sealSignRecordsel.getSignStatusMediator();
|
||||||
|
Integer sealStatus = sealSignRecordsel.getSealStatus();
|
||||||
|
|
||||||
|
Long caseAppliId = sealSignRecordsel.getCaseAppliId();
|
||||||
|
MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(caseAppliId);
|
||||||
|
Integer mediaResult = caseApplicationselect.getMediaResult();
|
||||||
|
MsCaseFlow currentFlow = caseFlowMapper.selectByPrimaryKey(caseApplicationselect.getCaseFlowId());
|
||||||
|
Integer caseNode = currentFlow.getNodeId();
|
||||||
|
String caseStatusName = currentFlow.getCaseStatusName();
|
||||||
|
|
||||||
|
|
||||||
|
if("SIGN_MISSON_COMPLETE".equals(action) && signResult==2){
|
||||||
|
if(mediaResult.intValue()==1){
|
||||||
|
//调解
|
||||||
|
if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(pensonAccountApply)){
|
||||||
|
//申请人签名
|
||||||
|
sealSignRecordsel.setSignStatusApply(1);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(pensonName);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
if(signStatusResponse!=null&&signStatusResponse.intValue()==1&&
|
||||||
|
signStatusMediator!=null&&signStatusMediator.intValue()==1){
|
||||||
|
// 根据流程id查找下一个流程节点
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//修改"签署用印记录表"的状态为待用印
|
||||||
|
sealSignRecordsel.setSignFlowStatus(2);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
}
|
||||||
|
}else if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(pensonAccountRes)){
|
||||||
|
//被申请人签名
|
||||||
|
sealSignRecordsel.setSignStatusResponse(1);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(pensonNameRes);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
if(signStatusApply!=null&&signStatusApply.intValue()==1&&
|
||||||
|
signStatusMediator!=null&&signStatusMediator.intValue()==1){
|
||||||
|
// 根据流程id查找下一个流程节点
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//修改"签署用印记录表"的状态为待用印
|
||||||
|
sealSignRecordsel.setSignFlowStatus(2);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
}
|
||||||
|
}else if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(pensonAccountMedi)){
|
||||||
|
//调解员签名
|
||||||
|
sealSignRecordsel.setSignStatusMediator(1);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(pensonNameMedi);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
if(signStatusApply!=null&&signStatusApply.intValue()==1&&
|
||||||
|
signStatusResponse!=null&&signStatusResponse.intValue()==1){
|
||||||
|
// 根据流程id查找下一个流程节点
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//修改"签署用印记录表"的状态为待用印
|
||||||
|
sealSignRecordsel.setSignFlowStatus(2);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
}
|
||||||
|
}else if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(orgnNamePsnAcc)){
|
||||||
|
sealSignRecordsel.setSealStatus(1);
|
||||||
|
sealSignRecordsel.setSignFlowStatus(3);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(orgnNamePsnName);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
|
||||||
|
// 根据流程id查找下一个流程节点
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//下载审核完成的调解书
|
||||||
|
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
|
||||||
|
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(), JsonObject.class);
|
||||||
|
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
|
||||||
|
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
|
||||||
|
if (filesArray != null && filesArray.size() > 0) {
|
||||||
|
JsonObject fileObject = (JsonObject) filesArray.get(0);
|
||||||
|
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
String year = Integer.toString(now.getYear());
|
||||||
|
String month = String.format("%02d", now.getMonthValue());
|
||||||
|
String day = String.format("%02d", now.getDayOfMonth());
|
||||||
|
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||||||
|
String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf";
|
||||||
|
// String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
// String savePath = "/home/ruoyi/uploadPath/upload/";
|
||||||
|
String saveName = fileName;
|
||||||
|
String savePath = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
|
||||||
|
// 创建日期目录
|
||||||
|
File saveFolder = new File(saveFolderPath);
|
||||||
|
if (!saveFolder.exists()) {
|
||||||
|
saveFolder.mkdirs();
|
||||||
|
}
|
||||||
|
String resultFilePath = saveFolderPath + "/" + fileName;
|
||||||
|
File resultFilePathFile = new File(resultFilePath);
|
||||||
|
if (!resultFilePathFile.exists()) {
|
||||||
|
resultFilePathFile.createNewFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
String fileDownloadUrlnew = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1);
|
||||||
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath);
|
||||||
|
if (downLoadFile) {
|
||||||
|
MsCaseAttach caseAttach = new MsCaseAttach();
|
||||||
|
caseAttach.setCaseAppliId(caseAppliId);
|
||||||
|
caseAttach.setAnnexType(7);
|
||||||
|
caseAttach.setAnnexPath(savePath);
|
||||||
|
caseAttach.setAnnexName(saveName);
|
||||||
|
caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(mediaResult.intValue()==5){
|
||||||
|
//和解
|
||||||
|
if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(pensonAccountApply)){
|
||||||
|
//申请人签名
|
||||||
|
sealSignRecordsel.setSignStatusApply(1);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(pensonName);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
if(signStatusResponse!=null&&signStatusResponse.intValue()==1){
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow1(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//修改"签署用印记录表"的状态为完成
|
||||||
|
sealSignRecordsel.setSignFlowStatus(3);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
|
||||||
|
//下载审核完成的调解书
|
||||||
|
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
|
||||||
|
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(), JsonObject.class);
|
||||||
|
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
|
||||||
|
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
|
||||||
|
if (filesArray != null && filesArray.size() > 0) {
|
||||||
|
JsonObject fileObject = (JsonObject) filesArray.get(0);
|
||||||
|
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
String year = Integer.toString(now.getYear());
|
||||||
|
String month = String.format("%02d", now.getMonthValue());
|
||||||
|
String day = String.format("%02d", now.getDayOfMonth());
|
||||||
|
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||||||
|
String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf";
|
||||||
|
// String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
// String savePath = "/home/ruoyi/uploadPath/upload/";
|
||||||
|
String saveName = fileName;
|
||||||
|
String savePath = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
|
||||||
|
// 创建日期目录
|
||||||
|
File saveFolder = new File(saveFolderPath);
|
||||||
|
if (!saveFolder.exists()) {
|
||||||
|
saveFolder.mkdirs();
|
||||||
|
}
|
||||||
|
String resultFilePath = saveFolderPath + "/" + fileName;
|
||||||
|
File resultFilePathFile = new File(resultFilePath);
|
||||||
|
if (!resultFilePathFile.exists()) {
|
||||||
|
resultFilePathFile.createNewFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
String fileDownloadUrlnew = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1);
|
||||||
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath);
|
||||||
|
if (downLoadFile) {
|
||||||
|
MsCaseAttach caseAttach = new MsCaseAttach();
|
||||||
|
caseAttach.setCaseAppliId(caseAppliId);
|
||||||
|
caseAttach.setAnnexType(7);
|
||||||
|
caseAttach.setAnnexPath(savePath);
|
||||||
|
caseAttach.setAnnexName(saveName);
|
||||||
|
caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(StringUtils.isNotEmpty(accountMobile)&&accountMobile.equals(pensonAccountRes)){
|
||||||
|
//被申请人签名
|
||||||
|
sealSignRecordsel.setSignStatusResponse(1);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
MsCaseLogRecord operLog = new MsCaseLogRecord();
|
||||||
|
operLog.setCreateNickName(pensonNameRes);
|
||||||
|
operLog.setCaseStatusName(caseStatusName);
|
||||||
|
operLog.setCaseAppliId(caseAppliId);
|
||||||
|
operLog.setCaseNode(caseNode);
|
||||||
|
operLog.setCreateTime(dateOperate);
|
||||||
|
caseLogRecordMapper.insert(operLog);
|
||||||
|
if(signStatusApply!=null&&signStatusApply.intValue()==1){
|
||||||
|
MsCaseFlow nextFlow = caseFlowMapper.nextFlow1(caseApplicationselect.getCaseFlowId().intValue());
|
||||||
|
MsCaseApplication application = new MsCaseApplication();
|
||||||
|
application.setId(caseApplicationselect.getId());
|
||||||
|
application.setCaseFlowId(nextFlow.getId());
|
||||||
|
application.setCaseStatusName(nextFlow.getCaseStatusName());
|
||||||
|
caseApplicationMapper.updateByPrimaryKeySelective(application);
|
||||||
|
|
||||||
|
//修改"签署用印记录表"的状态为完成
|
||||||
|
sealSignRecordsel.setSignFlowStatus(3);
|
||||||
|
sealSignRecordMapper.updateByPrimaryKeySelective(sealSignRecordsel);
|
||||||
|
|
||||||
|
//下载审核完成的调解书
|
||||||
|
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
|
||||||
|
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(), JsonObject.class);
|
||||||
|
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
|
||||||
|
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
|
||||||
|
if (filesArray != null && filesArray.size() > 0) {
|
||||||
|
JsonObject fileObject = (JsonObject) filesArray.get(0);
|
||||||
|
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
String year = Integer.toString(now.getYear());
|
||||||
|
String month = String.format("%02d", now.getMonthValue());
|
||||||
|
String day = String.format("%02d", now.getDayOfMonth());
|
||||||
|
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||||||
|
String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf";
|
||||||
|
// String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
// String savePath = "/home/ruoyi/uploadPath/upload/";
|
||||||
|
String saveName = fileName;
|
||||||
|
String savePath = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||||||
|
|
||||||
|
// 创建日期目录
|
||||||
|
File saveFolder = new File(saveFolderPath);
|
||||||
|
if (!saveFolder.exists()) {
|
||||||
|
saveFolder.mkdirs();
|
||||||
|
}
|
||||||
|
String resultFilePath = saveFolderPath + "/" + fileName;
|
||||||
|
File resultFilePathFile = new File(resultFilePath);
|
||||||
|
if (!resultFilePathFile.exists()) {
|
||||||
|
resultFilePathFile.createNewFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
String fileDownloadUrlnew = fileDownloadUrl.substring(1, fileDownloadUrl.length() - 1);
|
||||||
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath);
|
||||||
|
if (downLoadFile) {
|
||||||
|
MsCaseAttach caseAttach = new MsCaseAttach();
|
||||||
|
caseAttach.setCaseAppliId(caseAppliId);
|
||||||
|
caseAttach.setAnnexType(7);
|
||||||
|
caseAttach.setAnnexPath(savePath);
|
||||||
|
caseAttach.setAnnexName(saveName);
|
||||||
|
caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
return AjaxResult.error("error");
|
||||||
|
}
|
||||||
|
return AjaxResult.success("success");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过邮件发送裁决书文件
|
* 通过邮件发送裁决书文件
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.ruoyi.wisdomarbitrate.utils;
|
||||||
|
|
||||||
|
import javax.crypto.Mac;
|
||||||
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.security.InvalidKeyException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
public class DigesdateUtils {
|
||||||
|
|
||||||
|
public static String getSignStr(String paramsStr, String accessSec ) {
|
||||||
|
Mac macDiges = null;
|
||||||
|
try {
|
||||||
|
macDiges = Mac.getInstance("HmacSHA256");
|
||||||
|
SecretKeySpec accessSecKey = new SecretKeySpec(accessSec.getBytes("UTF-8"), "HmacSHA256");
|
||||||
|
macDiges.init(accessSecKey);
|
||||||
|
macDiges.update(paramsStr.getBytes("UTF-8"));
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
} catch (InvalidKeyException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return byteTrasferhex(macDiges.doFinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String byteTrasferhex(byte[] byteArrayData) {
|
||||||
|
StringBuilder hashBuilder = new StringBuilder();
|
||||||
|
String stmpHex;
|
||||||
|
for (int n = 0; byteArrayData != null && n < byteArrayData.length; n++) {
|
||||||
|
stmpHex = Integer.toHexString(byteArrayData[n] & 0XFF);
|
||||||
|
if (stmpHex.length() == 1)
|
||||||
|
hashBuilder.append('0');
|
||||||
|
hashBuilder.append(stmpHex);
|
||||||
|
}
|
||||||
|
return hashBuilder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -243,7 +243,7 @@ public class FixSelectFlowDetailUtils {
|
|||||||
/*
|
/*
|
||||||
定时查询签署流程详情
|
定时查询签署流程详情
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron = "0/10 * * * * ?")
|
// @Scheduled(cron = "0/10 * * * * ?")
|
||||||
@Transactional
|
@Transactional
|
||||||
public void fixExecuteSelectFlowDetailUtils() {
|
public void fixExecuteSelectFlowDetailUtils() {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.ruoyi.common.utils.SealUtil;
|
|||||||
import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
|
import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.vo.base.StringIdsReq;
|
import com.ruoyi.wisdomarbitrate.domain.vo.base.StringIdsReq;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -22,6 +23,9 @@ public class SignAward {
|
|||||||
private static String eSignAppId = EsignApplicaConfig.EsignAppId;
|
private static String eSignAppId = EsignApplicaConfig.EsignAppId;
|
||||||
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
||||||
|
|
||||||
|
@Value("${signSealCallbackConfig.url}")
|
||||||
|
private static String signSealCallbackUrl;
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws EsignDemoException {
|
public static void main(String[] args) throws EsignDemoException {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
@@ -351,7 +355,7 @@ public class SignAward {
|
|||||||
" \"signConfig\": {\n" +
|
" \"signConfig\": {\n" +
|
||||||
" \"availableSignClientTypes\": \"1\"\n" +
|
" \"availableSignClientTypes\": \"1\"\n" +
|
||||||
" },\n" +
|
" },\n" +
|
||||||
|
// " \"notifyUrl\": \"" + signSealCallbackUrl + "\",\n" +
|
||||||
" \"autoFinish\": true\n" +
|
" \"autoFinish\": true\n" +
|
||||||
" },\n" +
|
" },\n" +
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,99 @@
|
|||||||
|
package com.ruoyi.wisdomarbitrate.utils;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.EsignApplicaConfig;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.wisdomarbitrate.service.miniprogress.impl.IdentityAuthenticationServiceImpl;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SignVerifyUtils {
|
||||||
|
private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static boolean checkSignuter() throws Exception {
|
||||||
|
HttpServletRequest httprequest = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
|
||||||
|
String orialsignature = httprequest.getHeader("X-Tsign-Open-SIGNATURE");
|
||||||
|
String timestampreq = httprequest.getHeader("X-Tsign-Open-TIMESTAMP");
|
||||||
|
String reqQuerystr =getHttpreqQuery();
|
||||||
|
//获取请求参数
|
||||||
|
String reqbodystr =getRequestBody();
|
||||||
|
String signOriaData = timestampreq + reqQuerystr + reqbodystr;
|
||||||
|
String newDisgSignuter= DigesdateUtils.getSignStr(signOriaData, eSignAppSecret);
|
||||||
|
|
||||||
|
|
||||||
|
if (StringUtils.equals(orialsignature, newDisgSignuter)) {
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String getHttpreqQuery() {
|
||||||
|
HttpServletRequest httprequest = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
|
||||||
|
List<String> reqNames= new ArrayList();
|
||||||
|
Enumeration<String> httpreqEle =httprequest.getParameterNames();
|
||||||
|
while (httpreqEle.hasMoreElements()){
|
||||||
|
reqNames.add(httpreqEle.nextElement());
|
||||||
|
}
|
||||||
|
Collections.sort(reqNames);
|
||||||
|
String httpreqQuery = "";
|
||||||
|
for (String reqName : reqNames) {
|
||||||
|
String reqvalue = httprequest.getParameter(reqName);
|
||||||
|
httpreqQuery += reqvalue == null ? "" : reqvalue;
|
||||||
|
}
|
||||||
|
return httpreqQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getRequestBody() {
|
||||||
|
HttpServletRequest httprequest = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
|
||||||
|
String requestBody = "";
|
||||||
|
int reqContentLen = httprequest.getContentLength();
|
||||||
|
if (reqContentLen < 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
byte bufByteArray[] = new byte[reqContentLen];
|
||||||
|
try {
|
||||||
|
for (int i = 0; i < reqContentLen;) {
|
||||||
|
int lengthReadInputStream = httprequest.getInputStream().read(bufByteArray, i, reqContentLen - i);
|
||||||
|
if (lengthReadInputStream == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i += lengthReadInputStream;
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
requestBody = new String(bufByteArray, "UTF-8");
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return requestBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -9,6 +9,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="userName" column="user_name" />
|
<result property="userName" column="user_name" />
|
||||||
<result property="nickName" column="nick_name" />
|
<result property="nickName" column="nick_name" />
|
||||||
<result property="idCard" column="id_card" />
|
<result property="idCard" column="id_card" />
|
||||||
|
<result property="idType" column="id_type" />
|
||||||
|
<result property="nationality" column="nationality" />
|
||||||
<result property="email" column="email" />
|
<result property="email" column="email" />
|
||||||
<result property="phonenumber" column="phonenumber" />
|
<result property="phonenumber" column="phonenumber" />
|
||||||
<result property="sex" column="sex" />
|
<result property="sex" column="sex" />
|
||||||
@@ -50,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<sql id="selectUserVo">
|
<sql id="selectUserVo">
|
||||||
select u.user_id, u.user_name, u.nick_name,u.specialty, u.id_card,u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
select u.user_id, u.user_name, u.nick_name,u.specialty, u.id_card,u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card
|
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card,u.id_type,u.nationality
|
||||||
from ms_sys_user u
|
from ms_sys_user u
|
||||||
left join ms_sys_user_role ur on u.user_id = ur.user_id
|
left join ms_sys_user_role ur on u.user_id = ur.user_id
|
||||||
left join ms_sys_role r on r.role_id = ur.role_id
|
left join ms_sys_role r on r.role_id = ur.role_id
|
||||||
@@ -200,6 +202,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="userName != null and userName != ''">user_name,</if>
|
<if test="userName != null and userName != ''">user_name,</if>
|
||||||
<if test="nickName != null and nickName != ''">nick_name,</if>
|
<if test="nickName != null and nickName != ''">nick_name,</if>
|
||||||
<if test="idCard != null and idCard != ''">id_card,</if>
|
<if test="idCard != null and idCard != ''">id_card,</if>
|
||||||
|
<if test="idType != null ">id_type,</if>
|
||||||
|
<if test="nationality != null ">nationality,</if>
|
||||||
<if test="email != null and email != ''">email,</if>
|
<if test="email != null and email != ''">email,</if>
|
||||||
<if test="avatar != null and avatar != ''">avatar,</if>
|
<if test="avatar != null and avatar != ''">avatar,</if>
|
||||||
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
|
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
|
||||||
@@ -216,6 +220,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="userName != null and userName != ''">#{userName},</if>
|
<if test="userName != null and userName != ''">#{userName},</if>
|
||||||
<if test="nickName != null and nickName != ''">#{nickName},</if>
|
<if test="nickName != null and nickName != ''">#{nickName},</if>
|
||||||
<if test="idCard != null and idCard != ''">#{idCard},</if>
|
<if test="idCard != null and idCard != ''">#{idCard},</if>
|
||||||
|
<if test="idType != null ">#{idType},</if>
|
||||||
|
<if test="nationality != null ">#{nationality},</if>
|
||||||
<if test="email != null and email != ''">#{email},</if>
|
<if test="email != null and email != ''">#{email},</if>
|
||||||
<if test="avatar != null and avatar != ''">#{avatar},</if>
|
<if test="avatar != null and avatar != ''">#{avatar},</if>
|
||||||
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
|
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
|
||||||
@@ -272,6 +278,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="userName != null and userName != ''">user_name = #{userName},</if>
|
<if test="userName != null and userName != ''">user_name = #{userName},</if>
|
||||||
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
|
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
|
||||||
<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
|
<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
|
||||||
|
<if test="idType != null">id_type = #{idType},</if>
|
||||||
|
<if test="nationality != null">nationality = #{nationality},</if>
|
||||||
<if test="email != null ">email = #{email},</if>
|
<if test="email != null ">email = #{email},</if>
|
||||||
<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
|
<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
|
||||||
<if test="sex != null and sex != ''">sex = #{sex},</if>
|
<if test="sex != null and sex != ''">sex = #{sex},</if>
|
||||||
|
|||||||
@@ -23,6 +23,10 @@
|
|||||||
<result column="position_xorg" jdbcType="DOUBLE" property="positionXorg" />
|
<result column="position_xorg" jdbcType="DOUBLE" property="positionXorg" />
|
||||||
<result column="position_yorg" jdbcType="DOUBLE" property="positionYorg" />
|
<result column="position_yorg" jdbcType="DOUBLE" property="positionYorg" />
|
||||||
<result column="file_download_url" jdbcType="LONGVARCHAR" property="fileDownloadUrl" />
|
<result column="file_download_url" jdbcType="LONGVARCHAR" property="fileDownloadUrl" />
|
||||||
|
<result column="sign_status_apply" jdbcType="INTEGER" property="signStatusApply" />
|
||||||
|
<result column="sign_status_response" jdbcType="INTEGER" property="signStatusResponse" />
|
||||||
|
<result column="sign_status_mediator" jdbcType="INTEGER" property="signStatusMediator" />
|
||||||
|
<result column="seal_status" jdbcType="INTEGER" property="sealStatus" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+8
-10
@@ -13,18 +13,19 @@
|
|||||||
<result property="sealStatus" column="seal_status" />
|
<result property="sealStatus" column="seal_status" />
|
||||||
<result property="useId" column="use_id" />
|
<result property="useId" column="use_id" />
|
||||||
<result property="useAccount" column="use_account" />
|
<result property="useAccount" column="use_account" />
|
||||||
|
<result property="onlyOfficeFileId" column="only_office_file_id" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<insert id="save" useGeneratedKeys="true" keyProperty="annexId">
|
<insert id="save" useGeneratedKeys="true" keyProperty="annexId">
|
||||||
INSERT INTO ms_case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account,seal_status,is_batch_upload)
|
INSERT INTO ms_case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account,seal_status,only_office_file_id)
|
||||||
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{useId},#{useAccount},#{sealStatus},#{isBatchUpload})
|
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{useId},#{useAccount},#{sealStatus},#{onlyOfficeFileId})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="batchSave" useGeneratedKeys="true" keyProperty="annexId">
|
<insert id="batchSave" useGeneratedKeys="true" keyProperty="annexId">
|
||||||
INSERT INTO ms_case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account,seal_status,is_batch_upload)
|
INSERT INTO ms_case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account,seal_status,only_office_file_id)
|
||||||
VALUES
|
VALUES
|
||||||
<foreach item="item" index="index" collection="list" separator=",">
|
<foreach item="item" index="index" collection="list" separator=",">
|
||||||
|
|
||||||
|
|
||||||
(#{item.caseAppliId}, #{item.annexName}, #{item.annexPath},#{item.annexType},#{item.note},#{item.useId},#{item.useAccount},#{item.sealStatus},#{item.isBatchUpload})
|
(#{item.caseAppliId}, #{item.annexName}, #{item.annexPath},#{item.annexType},#{item.note},#{item.useId},#{item.useAccount},#{item.sealStatus},#{item.onlyOfficeFileId})
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
<delete id="deleteByFileIds">
|
<delete id="deleteByFileIds">
|
||||||
@@ -38,19 +39,16 @@
|
|||||||
delete from ms_case_attach
|
delete from ms_case_attach
|
||||||
where case_appli_id = #{caseAppliId}
|
where case_appli_id = #{caseAppliId}
|
||||||
and annex_type = #{annexType}
|
and annex_type = #{annexType}
|
||||||
<if test="isBatchUpload != null ">
|
|
||||||
AND is_batch_upload = #{isBatchUpload}
|
|
||||||
</if>
|
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="queryAnnexPathByCaseId" resultType="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach" resultMap="CaseAttachResult">
|
<select id="queryAnnexPathByCaseId" resultType="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach" resultMap="CaseAttachResult">
|
||||||
select annex_id,case_appli_id,annex_name,annex_path,annex_type,note,use_id,use_account
|
select *
|
||||||
from ms_case_attach
|
from ms_case_attach
|
||||||
where case_appli_id =#{id}
|
where case_appli_id =#{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="listCaseAttachByCaseIdAndType" resultType="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach" resultMap="CaseAttachResult">
|
<select id="listCaseAttachByCaseIdAndType" resultType="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach" resultMap="CaseAttachResult">
|
||||||
select annex_id,case_appli_id,annex_name,annex_path,annex_type,note,use_id,use_account
|
select *
|
||||||
from ms_case_attach
|
from ms_case_attach
|
||||||
<where>
|
<where>
|
||||||
<if test="caseAppliId != null ">
|
<if test="caseAppliId != null ">
|
||||||
@@ -78,7 +76,7 @@
|
|||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="queryCaseAttachList" resultMap="CaseAttachResult">
|
<select id="queryCaseAttachList" resultMap="CaseAttachResult">
|
||||||
select annex_id,case_appli_id,annex_name,annex_path,annex_type,note,use_id,use_account
|
select *
|
||||||
from ms_case_attach
|
from ms_case_attach
|
||||||
<where>
|
<where>
|
||||||
<if test="id != null ">
|
<if test="id != null ">
|
||||||
|
|||||||
Reference in New Issue
Block a user