80 Commits
Author SHA1 Message Date
wangqiong123andGitea 4bced304c2 Merge branch 'dev' of SH-Arbitrate/Arbitrate-Backend into master 2023-10-15 23:02:30 +08:00
wangqiong123andGitea df8ed662e8 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 22:29:18 +08:00
18792927508 41660a5056 不区分权限案件查询 2023-10-15 22:28:44 +08:00
wangqiong123andGitea 969a4f09f8 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 20:03:58 +08:00
18792927508 4a6e28b629 缴费凭证修改 2023-10-15 20:01:40 +08:00
wangqiong123andGitea 8eddc035c5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 18:55:03 +08:00
18792927508 26c90d4c32 合并 2023-10-15 18:53:25 +08:00
18792927508 c91bbf834a 合并文件 2023-10-15 18:50:54 +08:00
18792927508 913ca3547a 合并 2023-10-15 18:38:28 +08:00
wangqiong123andGitea 5906bbc9ec Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 18:29:57 +08:00
18792927508 b3b6d25d91 合并 2023-10-15 18:27:12 +08:00
qtzandGitea b323e88504 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 17:57:19 +08:00
qitz 775d7c0d56 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-15 17:55:07 +08:00
qitz 3def3b69dc 实现提交仲裁结果功能 2023-10-15 17:54:46 +08:00
qtzandGitea 9132518de4 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 15:56:49 +08:00
qitz c52adbde4b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-15 15:54:17 +08:00
qitz 870c514a15 实现生成庭审笔录接口 2023-10-15 15:53:37 +08:00
18792927508 2300df715c 案件列表修改,缴费确认 2023-10-15 15:51:41 +08:00
qtzandGitea 94b304d417 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 10:27:54 +08:00
qitz c64b709e33 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-15 10:17:07 +08:00
qitz 6b56829d92 实现生成庭审笔录 2023-10-15 10:16:48 +08:00
bgyandGitea 2a40d552e3 Merge branch 'bgy' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 19:25:25 +08:00
gy b 032c7bfca1 优化报错代码 2023-10-13 19:24:52 +08:00
bgyandGitea 01d86180a9 Merge branch 'bgy' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 18:28:04 +08:00
gy b edfd847318 整合最新的代码 2023-10-13 18:25:51 +08:00
gy b 36ad2c9ecd Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into bgy 2023-10-13 15:26:32 +08:00
gy b ce01c9366a 取消部门接口权限校验 2023-10-13 15:20:50 +08:00
wangqiong123andGitea a74345ea5f Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 15:13:56 +08:00
18792927508 b7b46f1350 跳转微信小程序接口 2023-10-13 15:13:32 +08:00
hejinboandGitea c21e092c89 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 15:01:10 +08:00
hejinbo 867ce2d4ba Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
2023-10-13 15:00:24 +08:00
hejinbo 0a16acb362 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
#	ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml
2023-10-13 14:52:00 +08:00
wangqiong123andGitea 9a59fac610 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 14:35:57 +08:00
18792927508 f20736282b 合并代码及跳转小程序 2023-10-13 14:35:24 +08:00
qtzandGitea 08a6e72cc2 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 14:07:42 +08:00
qitz 16bfd769aa Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-13 14:05:37 +08:00
qitz 3c22cec221 优化定时查询接口 2023-10-13 14:05:12 +08:00
wangqiong123andGitea a583b2b195 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 13:33:14 +08:00
18792927508 bf92e05cbe 房间号短信id修改 2023-10-13 13:32:48 +08:00
hejinbo 7a2a662c5f 审核裁决书接口优化 2023-10-13 13:27:14 +08:00
qtzandGitea e4fa622b71 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 11:18:53 +08:00
qitz d6da8ddd2f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-13 11:17:07 +08:00
qitz 8306ae0f39 优化签名记录 2023-10-13 11:16:55 +08:00
qtzandGitea 616be649b5 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 11:11:44 +08:00
qitz a0ecc6bd69 1 2023-10-13 11:09:10 +08:00
qitz 3dcf07881a 查询流程状态 2023-10-13 10:57:45 +08:00
hejinbo 4d4276847b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-13 10:38:50 +08:00
hejinbo c7fad71ae2 暂存 2023-10-13 10:38:42 +08:00
wangqiong123andGitea dbc73da777 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-13 09:05:00 +08:00
18792927508 b28a16dcea bug修改 2023-10-13 09:04:29 +08:00
bgyandGitea cf73d6e338 Merge branch 'bgy' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 20:12:42 +08:00
gy b dcb1139a6a 修改数据库配置 2023-10-12 20:11:09 +08:00
hejinboandGitea 52e0baa614 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 18:22:51 +08:00
hejinbo ede7c4452d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SealSignRecordMapper.java
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
#	ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SealSignRecordMapper.xml
2023-10-12 18:20:58 +08:00
hejinbo 0ee4c53252 10.12开发 2023-10-12 18:12:12 +08:00
qtzandGitea a9c86dc6dc Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 17:52:08 +08:00
qitz 12ed3200a2 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
2023-10-12 17:48:23 +08:00
qitz 23614f7e9c 1 2023-10-12 17:44:17 +08:00
wangqiong123andGitea 40b623024c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 17:33:54 +08:00
18792927508 be6ec797c7 申请人发送短信名称修改 2023-10-12 17:32:43 +08:00
wangqiong123andGitea 35556e2acd Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 17:24:40 +08:00
18792927508 72d02890b0 给仲裁员发短信修改 2023-10-12 17:23:15 +08:00
qitz bcc07b181d 实现定时查询流程详情 2023-10-12 17:20:40 +08:00
wangqiong123andGitea 00f6ad1417 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 16:11:32 +08:00
18792927508 3398f0db3d 仲裁员改为和用户关联 2023-10-12 16:10:53 +08:00
hejinbo 3262548b25 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-12 13:59:10 +08:00
wangqiong123andGitea 08bb2af98e Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 13:53:54 +08:00
18792927508 8b3c5a3741 1 2023-10-12 13:53:01 +08:00
qtzandGitea bb642be13b Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 13:39:34 +08:00
qitz b2621ace43 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-12 13:37:15 +08:00
qitz 2a6a1b50af 修改签名功能 2023-10-12 13:36:59 +08:00
hejinbo 5a17ed48ae Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-12 13:35:35 +08:00
qtzandGitea c4fa3466a7 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 13:15:43 +08:00
qitz f9230eacc8 实现签名功能 2023-10-12 13:12:54 +08:00
qitz 2101dddcc6 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-12 13:02:01 +08:00
hejinbo 9c6303addb 暂存 2023-10-12 11:42:12 +08:00
wangqiong123andGitea 8ec8971f2a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-12 11:18:52 +08:00
18792927508 2158a9ee48 bug修改 2023-10-12 11:17:48 +08:00
18792927508 26bdf8f577 日志查询优化 2023-10-12 09:25:46 +08:00
qtzandGitea 6a913f49f0 Merge branch 'dev' of SH-Arbitrate/Arbitrate-Backend into master 2023-09-07 10:57:00 +08:00
47 changed files with 2200 additions and 257 deletions
@@ -3,6 +3,7 @@ package com.ruoyi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 启动程序
@@ -10,6 +11,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
* @author ruoyi
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableScheduling
public class RuoYiApplication
{
public static void main(String[] args)
@@ -25,7 +25,6 @@ public class AdjudicationController extends BaseController {
* @return
*/
@PostMapping("/document")
@PreAuthorize("@ss.hasPermi('caseManagement:list:createaward')")
public AjaxResult createDocument(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.createDocument(caseApplication);
}
@@ -46,7 +45,7 @@ public class AdjudicationController extends BaseController {
* @return
*/
@GetMapping("/logistics")
@PreAuthorize("@ss.hasPermi('delivery:detail')")
// @PreAuthorize("@ss.hasPermi('delivery:detail')")
public AjaxResult getLogisticsInfo(CaseApplication caseApplication){
List<LogisticsInfoVO> logisticsInfo = adjudicationService.getLogisticsInfo(caseApplication);
return AjaxResult.success(logisticsInfo);
@@ -58,7 +57,7 @@ public class AdjudicationController extends BaseController {
* @return
*/
@PostMapping("/signature")
@PreAuthorize("@ss.hasPermi('awardManagement:list:sign')")
// @PreAuthorize("@ss.hasPermi('awardManagement:list:sign')")
public AjaxResult signature(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.signature(caseApplication);
}
@@ -69,7 +68,7 @@ public class AdjudicationController extends BaseController {
* @return
*/
@PostMapping("/caseFile")
@PreAuthorize("@ss.hasPermi('awardManagement:list:file')")
// @PreAuthorize("@ss.hasPermi('awardManagement:list:file')")
public AjaxResult caseFile(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.caseFile(caseApplication);
}
@@ -80,7 +79,7 @@ public class AdjudicationController extends BaseController {
* @return
*/
@PostMapping("/service")
@PreAuthorize("@ss.hasPermi('awardManagement:list:sendaward')")
// @PreAuthorize("@ss.hasPermi('awardManagement:list:sendaward')")
public AjaxResult service(@RequestBody BookSendVO bookSendVO){
return adjudicationService.service(bookSendVO.getId(),bookSendVO.getAppEmail(),bookSendVO.getResEmail(),bookSendVO.getApptrackingNum(),bookSendVO.getRestrackingNum());
}
@@ -90,7 +89,7 @@ public class AdjudicationController extends BaseController {
* @return
*/
@PostMapping("/stamp")
@PreAuthorize("@ss.hasPermi('awardManagement:list:signprint')")
// @PreAuthorize("@ss.hasPermi('awardManagement:list:signprint')")
public AjaxResult stamp(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.stamp(caseApplication);
}
@@ -1,7 +1,10 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import com.ruoyi.wisdomarbitrate.service.IArbitratorService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,7 +19,7 @@ import java.util.List;
@RequestMapping("/arbitrator")
public class ArbitratorController extends BaseController {
@Autowired
private IArbitratorService arbitratorService;
private ISysUserService sysUserService;
/**
* 查询仲裁员信息
@@ -26,7 +29,7 @@ public class ArbitratorController extends BaseController {
public TableDataInfo list(Arbitrator arbitrator)
{
startPage();
List<Arbitrator> list = arbitratorService.selectArbitratorList(arbitrator);
List<SysUser> list = sysUserService.selectUserListByAdRole(arbitrator);
return getDataTable(list);
}
@@ -6,7 +6,11 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.WxAppletNotifyUtils;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +34,7 @@ public class CaseApplicationController extends BaseController {
/**
* 查询立案数据
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list')")
@GetMapping("/list")
public TableDataInfo list(CaseApplication caseApplication) {
startPage();
@@ -41,7 +45,7 @@ public class CaseApplicationController extends BaseController {
/**
* 新增立案数据
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:add')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:add')")
@Log(title = "新增立案数据", businessType = BusinessType.INSERT)
@PostMapping("/addCaseApplication")
public AjaxResult addCaseApplication(@Validated @RequestBody CaseApplication caseApplication)
@@ -54,7 +58,7 @@ public class CaseApplicationController extends BaseController {
/**
* 修改立案数据
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:update')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:update')")
@Log(title = "修改立案数据", businessType = BusinessType.UPDATE)
@PostMapping("/editCaseApplication")
public AjaxResult editCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
@@ -66,7 +70,7 @@ public class CaseApplicationController extends BaseController {
/**
* 提交立案申请
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:submit')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:submit')")
@Log(title = "提交立案申请", businessType = BusinessType.UPDATE)
@PostMapping("/submitCaseApplication")
public AjaxResult submitCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
@@ -77,7 +81,7 @@ public class CaseApplicationController extends BaseController {
/**
* 删除立案数据
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:delete')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:delete')")
@Log(title = "删除立案数据", businessType = BusinessType.DELETE)
@PostMapping("/removeCaseApplication")
public AjaxResult removeCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
@@ -88,13 +92,42 @@ public class CaseApplicationController extends BaseController {
/**
* 查询立案信息
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:detail')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:detail')")
@PostMapping("/selectCaseApplication")
public AjaxResult selectCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
CaseApplication caseApplicationselect = caseApplicationService.selectCaseApplication(caseApplication);
return success(caseApplicationselect);
}
/**
* 查询已签署裁决书URL
*/
@PostMapping("/selectSignSealUrl")
public AjaxResult selectSignSealUrl(@Validated @RequestBody CaseApplication caseApplication) throws EsignDemoException {
CaseApplication caseApplicationselect = caseApplicationService.selectSignSealUrl(caseApplication);
return success(caseApplicationselect);
}
/**
* 查询签名链接
*/
// @PreAuthorize("@ss.hasPermi('caseManagement:list:selectSignUrl')")
@PostMapping("/selectSignUrl")
public AjaxResult selectSignUrl(@Validated @RequestBody CaseApplication caseApplication) throws EsignDemoException {
SealSignRecord sealSignRecordselect = caseApplicationService.selectSignUrl(caseApplication);
return success(sealSignRecordselect);
}
/**
* 查询用印链接
*/
// @PreAuthorize("@ss.hasPermi('caseManagement:list:selectSealUrl')")
@PostMapping("/selectSealUrl")
public AjaxResult selectSealUrl(@Validated @RequestBody CaseApplication caseApplication) throws EsignDemoException {
SealSignRecord sealUrlRecordselect = caseApplicationService.selectSealUrl(caseApplication);
return success(sealUrlRecordselect);
}
/**
* 立案申请导入模板下载
*/
@@ -105,7 +138,7 @@ public class CaseApplicationController extends BaseController {
}
@Log(title = "立案信息导入", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('caseManagement:list:import')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception {
if(file==null){
@@ -121,7 +154,7 @@ public class CaseApplicationController extends BaseController {
/**
* 组庭
*/
@PreAuthorize("@ss.hasPermi('caseApplication:pendTral')")
// @PreAuthorize("@ss.hasPermi('caseApplication:pendTral')")
@Log(title = "组庭", businessType = BusinessType.UPDATE)
@PostMapping("/pendTral")
public AjaxResult pendTral(@Validated @RequestBody CaseApplication caseApplication) {
@@ -131,7 +164,7 @@ public class CaseApplicationController extends BaseController {
/**
* 组庭审核
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:checkgroup')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:checkgroup')")
@Log(title = "组庭审核", businessType = BusinessType.UPDATE)
@PostMapping("/pendTralCheck")
public AjaxResult pendTralCheck(@Validated @RequestBody CaseApplication caseApplication) {
@@ -141,7 +174,7 @@ public class CaseApplicationController extends BaseController {
/**
* 组庭确认
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:confirmgroup')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:confirmgroup')")
@Log(title = "组庭确认", businessType = BusinessType.UPDATE)
@PostMapping("/pendTralSure")
public AjaxResult pendTralSure(@Validated @RequestBody CaseApplication caseApplication) {
@@ -151,7 +184,7 @@ public class CaseApplicationController extends BaseController {
/**
* 核验裁决书
*/
@PreAuthorize("@ss.hasPermi('caseApplication:verificationArbitrateRecord')")
// @PreAuthorize("@ss.hasPermi('caseApplication:verificationArbitrateRecord')")
@Log(title = "核验裁决书", businessType = BusinessType.UPDATE)
@PostMapping("/verificationArbitrateRecord")
public AjaxResult verificationArbitrateRecord(@Validated @RequestBody CaseApplication caseApplication) {
@@ -161,7 +194,7 @@ public class CaseApplicationController extends BaseController {
/**
* 审核裁决书
*/
@PreAuthorize("@ss.hasPermi('caseApplication:checkArbitrateRecord')")
// @PreAuthorize("@ss.hasPermi('caseApplication:checkArbitrateRecord')")
@Log(title = "审核裁决书", businessType = BusinessType.UPDATE)
@PostMapping("/checkArbitrateRecord")
public AjaxResult checkArbitrateRecord(@Validated @RequestBody CaseApplication caseApplication) {
@@ -172,7 +205,7 @@ public class CaseApplicationController extends BaseController {
/**
* 是否指派仲裁员
*/
@PreAuthorize("@ss.hasPermi('caseApplication:pendingAppointArbotrar')")
// @PreAuthorize("@ss.hasPermi('caseApplication:pendingAppointArbotrar')")
@Log(title = "是否指派仲裁员", businessType = BusinessType.UPDATE)
@PostMapping("/pendingAppointArbotrar")
public AjaxResult pendingAppointArbotrar(@Validated @RequestBody CaseApplication caseApplication) {
@@ -182,7 +215,7 @@ public class CaseApplicationController extends BaseController {
/**
* 提交立案审查
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:check')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:check')")
@Log(title = "提交立案审查", businessType = BusinessType.UPDATE)
@PostMapping("/submitCaseApplicationCheck")
public AjaxResult submitCaseApplicationCheck(@Validated @RequestBody CaseApplication caseApplication) {
@@ -193,7 +226,7 @@ public class CaseApplicationController extends BaseController {
/**
* 确认缴费查询立案信息
*/
@PreAuthorize("@ss.hasPermi('paymentManagement:list:detail')")
// @PreAuthorize("@ss.hasPermi('paymentManagement:list:detail')")
@PostMapping("/selectCaseApplicationConfirm")
public AjaxResult selectCaseApplicationConfirm(@Validated @RequestBody CaseApplication caseApplication) {
CaseApplication caseApplicationselect = caseApplicationService.selectCaseApplicationConfirm(caseApplication);
@@ -210,5 +243,25 @@ public class CaseApplicationController extends BaseController {
String result = caseApplicationService.sendRoomNoMessage(messageVO);
return success(result);
}
/**
* 获取UrlScheme
*/
@Anonymous
@GetMapping("/getUrlScheme")
public AjaxResult getUrlScheme() {
String schemeUrl = WxAppletNotifyUtils.jumpAppletSchemeUrl();
return success(schemeUrl);
}
/**
* 生成庭审笔录
* @param arbitrateRecord
* @return
*/
@PostMapping("/creatTrialRecord")
@PreAuthorize("@ss.hasPermi('caseManagement:list:creatTrialRecord')")
public AjaxResult creatTrialRecord(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
return caseApplicationService.creatTrialRecord(arbitrateRecord);
}
}
@@ -23,7 +23,7 @@ public class CaseArbitrateController extends BaseController {
* @return
*/
@PutMapping("/method")
@PreAuthorize("@ss.hasPermi('caseManagement:list:checkarbitrationway')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:checkarbitrationway')")
public AjaxResult examineArbitrateMethod(@Validated @RequestBody CaseApplication caseApplication
,Integer opinion){
return caseArbitrateService.examineArbitrateMethod(caseApplication,opinion);
@@ -35,8 +35,8 @@ public class CaseArbitrateController extends BaseController {
* @return
*/
@PostMapping("/writtenHear")
@PreAuthorize("@ss.hasPermi('caseManagement:hear')")
public AjaxResult writtenHear(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
arbitrateRecord.setCreateBy(getUsername());
return caseArbitrateService.writtenHear(arbitrateRecord);
}
}
@@ -22,7 +22,7 @@ public class CaseLogRecordController extends BaseController {
/**
* 查询案件日志列表
*/
@PreAuthorize("@ss.hasPermi('caseLog:list')")
// @PreAuthorize("@ss.hasPermi('caseLog:list')")
@GetMapping("/list")
public TableDataInfo list(CaseLogRecord caseLogRecord)
{
@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import com.ruoyi.wisdomarbitrate.service.ICasePaymentService;
import com.ruoyi.wisdomarbitrate.domain.dto.CasePayDTO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,18 +26,28 @@ public class CasePaymentController {
* @param casePayDTO 缴费传入参数
* @return 统一响应结果
*/
@PreAuthorize("@ss.hasPermi('caseManagement:list:pay')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:pay')")
@PostMapping("/casePay")
public AjaxResult casePay(@Validated @RequestBody CasePayDTO casePayDTO) {
return paymentService.casePay(casePayDTO);
}
/**
* 确认缴费
* @param payDTO 缴费传入参数
* @return 统一响应结果
*/
// @PreAuthorize("@ss.hasPermi('caseManagement:list:pay')")
@PostMapping("/confirmPay")
public AjaxResult confirmPay(@Validated @RequestBody CaseConfirmPayDTO payDTO) {
return paymentService.confirmPay(payDTO);
}
/**
* 缴费确认
* @param caseApplication
* @return
*/
@PreAuthorize("@ss.hasPermi('paymentManagement:list:payconfirm')")
// @PreAuthorize("@ss.hasPermi('paymentManagement:list:payconfirm')")
@PutMapping("/confirm")
public AjaxResult confirmPayment(@Validated @RequestBody CaseApplication caseApplication) {
return paymentService.confirmPayment(caseApplication);
@@ -6,9 +6,9 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://121.40.189.20:3306/arbitrate?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false
url: jdbc:mysql://121.40.189.20:3306/smart_arbitration?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: root123456
password: YMzc157#
# 从库数据源
slave:
# 从数据源开关/默认关闭
@@ -94,14 +94,20 @@ spring:
mail:
host: smtp.163.com
port: 25
username: hjbjava@163.com
password: BSRSSEPJWGNNVYYL
username: lmj1549843951@163.com
password: JGIOQVFCLAZKXRKO
default-encoding: UTF-8
properties:
mail:
smtp:
connectiontimeout: 5000
timeout: 5000
writetimeout: 5000
socketFactoryClass: javax.net.ssl.SSLSocketFactory
socketFactoryFallback: false
socketFactoryPort: 465
debug: false
protocol: smtp
#上上签配置参数
ssq:
developerId: 1695872832013855470
@@ -33,9 +33,14 @@ public class SysUser extends BaseEntity
@Excel(name = "登录名称")
private String userName;
/** 用户昵称 */
@Excel(name = "用户名称")
private String nickName;
/** 用户身份证号 */
@Excel(name = "身份证号")
private String idCard;
/** 用户邮箱 */
@Excel(name = "用户邮箱")
@@ -297,12 +302,21 @@ public class SysUser extends BaseEntity
this.roleId = roleId;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("deptId", getDeptId())
.append("userName", getUserName())
.append("idCard", getIdCard())
.append("nickName", getNickName())
.append("email", getEmail())
.append("phonenumber", getPhonenumber())
@@ -0,0 +1,13 @@
package com.ruoyi.common.utils;
public class EsignApplicaConfig {
// 应用ID
public static final String EsignAppId = "7438987614";
// 应用密钥
public static final String EsignAppSecret = "9d7844f13830931037772b9d20cf1529";
// e签宝接口调用域名(模拟环境)
public static final String EsignHost = "https://smlopenapi.esign.cn";
// e签宝接口调用域名(正式环境)
// public static final String EsignHost = "https://openapi.esign.cn";
}
@@ -0,0 +1,64 @@
package com.ruoyi.common.utils;
/**
* @author wangqiong
* @description 获取微信小程序url scheme
* @date 2023-10-13 10:16
*/
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
public class WxAppletNotifyUtils {
/**
* scheme 跳转微信小程序,需中转H5
*/
public static String jumpAppletSchemeUrl(){
String token= getAccessToken();
//接口地址
String url = "https://api.weixin.qq.com/wxa/generatescheme?access_token="+token;
JSONObject body = JSONUtil.createObj();
JSONObject jumpWxa = JSONUtil.createObj();
jumpWxa.putOpt("path","pages/login");
jumpWxa.putOpt("query","");
jumpWxa.putOpt("env_version","release");
body.putOpt("jump_wxa",jumpWxa);
//链接过期类型:0时间戳 1间隔天数
body.putOpt("expire_type",1);
body.putOpt("is_expire",true);
//指定失效天数,最多30
body.putOpt("expire_interval",30);
String post = HttpUtil.post(url,body.toJSONString(2));
JSONObject result = JSONUtil.parseObj(post);
if(result!=null && result.containsKey("openlink")){
return result.getStr("openlink");
}
return null;
}
//凭证调用
public static String getAccessToken(){
String token;
//小程序APPID
String appid="wx91cb8459dca561b4";//自行获取
//小程序secret
String secret="190aaa3bda96a65d25318fbb0e133fc6";//自己去公众号后台获取
String httpUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
httpUrl= httpUrl+"&appid="+appid+"&secret="+secret;
//get请求
String result = HttpUtil.get(httpUrl);
//解析结果
JSONObject jsonObject = JSONUtil.parseObj(result);
//get AccessToken
token=jsonObject.get("access_token",String.class,false);
return token;
}
}
@@ -1,14 +1,20 @@
package com.ruoyi.common.utils.file;
import cn.hutool.json.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.config.EsignDemoConfig;
import com.ruoyi.common.constant.EsignHeaderConstant;
import com.ruoyi.common.constant.FileTransformation;
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
import com.ruoyi.common.enums.EsignRequestType;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.EsignHttpHelper;
import com.ruoyi.common.utils.bean.EsignFileBean;
import com.ruoyi.common.utils.uuid.IdUtils;
import java.time.LocalDate;
import java.util.Map;
public class SaaSAPIFileUtils {
@@ -64,20 +70,66 @@ public class SaaSAPIFileUtils {
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
// public static void main(String[] args) throws EsignDemoException {
// String filePath = "D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx";
// EsignHttpResponse uploadUrl = getUploadUrl(filePath);
// String body = uploadUrl.getBody();
// JSONObject jsonObject = new JSONObject(body);
// JSONObject dataObj = jsonObject.getJSONObject("data");
// String fileUploadUrl = dataObj.get("fileUploadUrl").toString();
// System.out.println("这是fileUploadUrl:"+fileUploadUrl);
// String fileId = dataObj.get("fileId").toString();
// System.out.println("这是fileId:"+fileId);
// EsignHttpResponse esignHttpResponse = uploadFile(fileUploadUrl, filePath);
// System.out.println("这是上传文件流的结果:"+esignHttpResponse.getBody());
/**
* 下载已签署文件及附属材料
*/
public static EsignHttpResponse fileDownloadUrl(String signFlowId) throws EsignDemoException {
String apiaddr = "/v3/sign-flow/"+ signFlowId +"/file-download-url";
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
String jsonParm=null;
//请求方法
EsignRequestType requestType= EsignRequestType.GET;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
public static void main1(String[] args) throws EsignDemoException {
String filePath = "D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\23893bfd3f2249ffa5c82850c11c482e.docx";
EsignHttpResponse uploadUrl = getUploadUrl(filePath);
String body = uploadUrl.getBody();
JSONObject jsonObject = new JSONObject(body);
JSONObject dataObj = jsonObject.getJSONObject("data");
String fileUploadUrl = dataObj.get("fileUploadUrl").toString();
System.out.println("这是fileUploadUrl:"+fileUploadUrl);
String fileId = dataObj.get("fileId").toString();
System.out.println("这是fileId:"+fileId);
//String fileUploadUrl = "https://esignoss.esign.cn/1111564182/ccf6db5a-92da-4523-89ba-385a30423596/23893bfd3f2249ffa5c82850c11c482e.docx?Expires=1697021257&OSSAccessKeyId=STS.NTmgvSC8n5Zg1y7EciQftF23N&Signature=CxVZmpwFksWmLYkxPjVz9K4mVyA%3D&callback-var=eyJ4OmZpbGVfa2V5IjoiJDAyODhjOTg3LWNlNzgtNDM1OC04NWYwLTdlNmUyM2NjOTJmNiQzNDk1NzQ3MjE5In0%3D%0A&callback=eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9zbWx0YXBpLnRzaWduLmNuL2FueWRvb3IvZmlsZS1zeXN0ZW0vY2FsbGJhY2svYWxpb3NzIiwiY2FsbGJhY2tCb2R5IjogIntcIm1pbWVUeXBlXCI6JHttaW1lVHlwZX0sXCJzaXplXCI6ICR7c2l6ZX0sXCJidWNrZXRcIjogJHtidWNrZXR9LFwib2JqZWN0XCI6ICR7b2JqZWN0fSxcImV0YWdcIjogJHtldGFnfSxcImZpbGVfa2V5XCI6JHt4OmZpbGVfa2V5fX0iLCJjYWxsYmFja0JvZHlUeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQ%3D%3D%0A&security-token=CAIS%2BAF1q6Ft5B2yfSjIr5fYLMznrudPgpiMM1%2BGoWM8XelYqfeYrDz2IHtKdXRvBu8Xs%2F4wnmxX7f4YlqB6T55OSAmcNZEofT7katr4MeT7oMWQweEurv%2FMQBqyaXPS2MvVfJ%2BOLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fm6%2FNgdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPnvm5DNs0uH1AKjkbRM9r6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1%2FIVpGiY4YDAWQYLv0rda7DOltFiMkpla7MmXqlft%2BhzcgeQY0pc%2FRqAAaxcPCSY0Du8wgErfR1llD8t2zeFG%2B1mktU4Rsl7AgxsSFxrwILBUk2x7imVsFVA0kkS8rNBMDKGIsIZTCl5M7S2L%2BD8364htwcZgIZYHK2fCN6gCuy%2Bfk9C%2FfQaTc00IWBMw8OubuJ%2Fq2mdMh32yoi7dLuJyhwt1z%2F%2BWf5vIFHdIAA%3D";
EsignHttpResponse esignHttpResponse = uploadFile(fileUploadUrl, filePath);
System.out.println("这是上传文件流的结果:"+esignHttpResponse.getBody());
// EsignHttpResponse fileStatus = getFileStatus(fileId);
// System.out.println("这是获取文件上传状态的结果:"+fileStatus.getBody());
// getFileStatus("a0c2ad21065f48ff8b872412c39d5d3a");
// }
// getFileStatus("a808f1f39a744357a2f018e4ab34c55d");
// fileDownloadUrl("");
}
public static void main(String[] args) throws EsignDemoException {
String signFlowId = "41e6732b48c54c63a91b2379c352212d";
Gson gson = new Gson();
EsignHttpResponse fileDownload = 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();
String fileName = java.util.UUID.randomUUID().toString().replace("-", "") + ".pdf";
String savePath = "/home/ruoyi/uploadPath/upload";
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 saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String dir = "F:\\ymkf\\shanghaixm\\testCaijueshu\\" + fileName;
String fileDownloadUrlnew = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
FileTransformation.downLoadFileByUrl(fileDownloadUrlnew,dir);
}
}
}
@@ -115,4 +115,6 @@ public interface SysDeptMapper
* @return 结果
*/
public int deleteDeptById(Long deptId);
List<Long> selectUserDeptListByRoleId(@Param("roleId")Long roleId);
}
@@ -1,6 +1,8 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.core.domain.entity.SysUser;
@@ -19,6 +21,12 @@ public interface SysUserMapper
*/
public List<SysUser> selectUserList(SysUser sysUser);
/**
* 查询仲裁员角色下的用户
* @return
*/
public List<SysUser> selectUserListByAdRole(Arbitrator arbitrator);
/**
* 根据条件分页查询已配用户角色列表
*
@@ -124,4 +132,6 @@ public interface SysUserMapper
* @return 结果
*/
public SysUser checkEmailUnique(String email);
List<SysUser> selectUserListByIds(@Param("idList") List<Long> idList);
}
@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
/**
* 用户 业务层
@@ -17,6 +18,7 @@ public interface ISysUserService
* @return 用户信息集合信息
*/
public List<SysUser> selectUserList(SysUser user);
public List<SysUser> selectUserListByAdRole(Arbitrator arbitrator);
/**
* 根据条件分页查询已分配用户角色列表
@@ -4,6 +4,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -74,6 +76,11 @@ public class SysUserServiceImpl implements ISysUserService
return userMapper.selectUserList(user);
}
@Override
public List<SysUser> selectUserListByAdRole(Arbitrator arbitrator) {
return userMapper.selectUserListByAdRole(arbitrator);
}
/**
* 根据条件分页查询已分配用户角色列表
*
@@ -15,6 +15,14 @@ public class CaseAffiliate extends BaseEntity {
/** 姓名 */
@Excel(name = "姓名")
private String name;
/**
* 申请机构id
*/
private String applicationOrganId;
/**
* 申请机构名称
*/
private String applicationOrganName;
/** 身份证号 */
@Excel(name = "身份证号")
private String identityNum;
@@ -49,6 +57,22 @@ public class CaseAffiliate extends BaseEntity {
/** 快递单号 */
private String trackNum;
public String getApplicationOrganId() {
return applicationOrganId;
}
public void setApplicationOrganId(String applicationOrganId) {
this.applicationOrganId = applicationOrganId;
}
public String getApplicationOrganName() {
return applicationOrganName;
}
public void setApplicationOrganName(String applicationOrganName) {
this.applicationOrganName = applicationOrganName;
}
public String getSendEmail() {
return sendEmail;
}
@@ -101,6 +101,16 @@ public class CaseApplication extends BaseEntity {
/** 案件描述 */
private String caseDescribe;
/** 裁决书URL */
private String filearbitraUrl;
public String getFilearbitraUrl() {
return filearbitraUrl;
}
public void setFilearbitraUrl(String filearbitraUrl) {
this.filearbitraUrl = filearbitraUrl;
}
/** 是否同意组庭 */
private Integer isAgreePendTral;
@@ -114,9 +124,45 @@ public class CaseApplication extends BaseEntity {
private Integer paymentStatus;
/** 支付状态描述 */
private String paymentStatusName;
/**
* 支付方式code,0线上支付,1线下支付
*/
private Integer payTypeCode;
/**
* 支付方式name,0线上支付,1线下支付
*/
private String payTypeName;
/**
* 缴费凭证
*/
private List<CaseAttach> payOrderList;
// 导入校验失败信息
private StringBuilder errorMsg;
public Integer getPayTypeCode() {
return payTypeCode;
}
public void setPayTypeCode(Integer payTypeCode) {
this.payTypeCode = payTypeCode;
}
public String getPayTypeName() {
return payTypeName;
}
public void setPayTypeName(String payTypeName) {
this.payTypeName = payTypeName;
}
public List<CaseAttach> getPayOrderList() {
return payOrderList;
}
public void setPayOrderList(List<CaseAttach> payOrderList) {
this.payOrderList = payOrderList;
}
public StringBuilder getErrorMsg() {
return errorMsg;
}
@@ -190,6 +236,39 @@ public class CaseApplication extends BaseEntity {
private String applicantName;
/** 被申请人名称 */
private String respondentName;
/**
* 用户身份证号
*/
private String idCard;
/**
* 用户id
*/
private String userId;
private List<Long> deptIds;
public List<Long> getDeptIds() {
return deptIds;
}
public void setDeptIds(List<Long> deptIds) {
this.deptIds = deptIds;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getApplicantName() {
return applicantName;
@@ -27,7 +27,7 @@ public class CaseAttach {
*/
private String annexPath;
/**
* 附件类型,立案申请书(1)、证据材料(2)、仲裁文书(3)、案件视频(4)、身份证件(5)
* 附件类型,立案申请书(1)、申请人证据材料(2)、仲裁文书(3)、案件视频(4)、身份证件(5)、被申请人证据材料 (6)、庭审笔录(7)、缴费凭证(8)'
*/
private Integer annexType;
/**
@@ -38,4 +38,8 @@ public class CasePaymentRecord {
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 支付方式 0线上支付,1线下支付
*/
private Integer payType;
}
@@ -0,0 +1,235 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.core.domain.BaseEntity;
public class SealSignRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** ID */
private Long id;
/** 文件id */
private String fileid;
/** 文件名称 */
private String filename;
/** 流程id */
private String signFlowid;
/** 签名人账户 */
private String pensonAccount;
/** 签名人姓名 */
private String pensonName;
/** 机构名称 */
private String orgnizeName;
/** 机构经办人 */
private String orgnizeNamePsnAccount;
/** 机构经办人名称 */
private String orgnizeNamepsnName;
String fileDownloadUrl;
public String getFileDownloadUrl() {
return fileDownloadUrl;
}
public void setFileDownloadUrl(String fileDownloadUrl) {
this.fileDownloadUrl = fileDownloadUrl;
}
/** 流程状态 */
private Integer signFlowStatus;
/** 签名状态 */
private Integer psnsignStatus;
/** 用印状态 */
private Integer orgsignStatus;
/** 签名链接 */
private String signUrl;
public String getSignUrl() {
return signUrl;
}
public void setSignUrl(String signUrl) {
this.signUrl = signUrl;
}
public String getSealUrl() {
return sealUrl;
}
public void setSealUrl(String sealUrl) {
this.sealUrl = sealUrl;
}
/** 用印链接 */
private String sealUrl;
private Long caseAppliId;
public Long getCaseAppliId() {
return caseAppliId;
}
public void setCaseAppliId(Long caseAppliId) {
this.caseAppliId = caseAppliId;
}
public Integer getPsnsignStatus() {
return psnsignStatus;
}
public void setPsnsignStatus(Integer psnsignStatus) {
this.psnsignStatus = psnsignStatus;
}
public Integer getOrgsignStatus() {
return orgsignStatus;
}
public void setOrgsignStatus(Integer orgsignStatus) {
this.orgsignStatus = orgsignStatus;
}
public Integer getSignFlowStatus() {
return signFlowStatus;
}
public void setSignFlowStatus(Integer signFlowStatus) {
this.signFlowStatus = signFlowStatus;
}
public String getFileid() {
return fileid;
}
public void setFileid(String fileid) {
this.fileid = fileid;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getSignFlowid() {
return signFlowid;
}
public void setSignFlowid(String signFlowid) {
this.signFlowid = signFlowid;
}
public String getPensonAccount() {
return pensonAccount;
}
public void setPensonAccount(String pensonAccount) {
this.pensonAccount = pensonAccount;
}
public String getPensonName() {
return pensonName;
}
public void setPensonName(String pensonName) {
this.pensonName = pensonName;
}
public String getOrgnizeName() {
return orgnizeName;
}
public void setOrgnizeName(String orgnizeName) {
this.orgnizeName = orgnizeName;
}
public String getOrgnizeNamePsnAccount() {
return orgnizeNamePsnAccount;
}
public void setOrgnizeNamePsnAccount(String orgnizeNamePsnAccount) {
this.orgnizeNamePsnAccount = orgnizeNamePsnAccount;
}
public String getOrgnizeNamepsnName() {
return orgnizeNamepsnName;
}
public void setOrgnizeNamepsnName(String orgnizeNamepsnName) {
this.orgnizeNamepsnName = orgnizeNamepsnName;
}
public String getPositionPagepsn() {
return positionPagepsn;
}
public void setPositionPagepsn(String positionPagepsn) {
this.positionPagepsn = positionPagepsn;
}
public double getPositionXpsn() {
return positionXpsn;
}
public void setPositionXpsn(double positionXpsn) {
this.positionXpsn = positionXpsn;
}
public double getPositionYpsn() {
return positionYpsn;
}
public void setPositionYpsn(double positionYpsn) {
this.positionYpsn = positionYpsn;
}
public String getPositionPageorg() {
return positionPageorg;
}
public void setPositionPageorg(String positionPageorg) {
this.positionPageorg = positionPageorg;
}
public double getPositionXorg() {
return positionXorg;
}
public void setPositionXorg(double positionXorg) {
this.positionXorg = positionXorg;
}
public double getPositionYorg() {
return positionYorg;
}
public void setPositionYorg(double positionYorg) {
this.positionYorg = positionYorg;
}
/** 签名位置页数 */
private String positionPagepsn;
/** 签名位置x坐标 */
private double positionXpsn;
/** 签名位置y坐标 */
private double positionYpsn;
/** 印章位置页数 */
private String positionPageorg;
/** 印章位置x坐标 */
private double positionXorg;
/** 印章位置y坐标 */
private double positionYorg;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
@@ -0,0 +1,28 @@
package com.ruoyi.wisdomarbitrate.domain.dto;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 案件确认缴费传入对象
*/
@Data
public class CaseConfirmPayDTO {
/**
* 案件id
*/
@NotNull(message = "案件id不能为空")
private Long caseId;
/**
* 支付方式 0线上支付,1线下支付
*/
private Integer payType;
/**
* 缴费凭证
*/
private List<CaseAttach> payOrderList;
}
@@ -1,6 +1,10 @@
package com.ruoyi.wisdomarbitrate.domain.dto;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import lombok.Data;
import java.util.List;
/**
* 案件缴费传入对象
*/
@@ -23,4 +27,12 @@ public class CasePayDTO {
* 支付方式 wxpay(微信) alipay(支付宝)
*/
private String platform;
/**
* 支付方式 0线上支付,1线下支付
*/
private Integer payType;
/**
* 缴费凭证
*/
private List<CaseAttach> payOrderList;
}
@@ -8,4 +8,5 @@ import java.util.List;
public interface ArbitratorMapper {
List<Arbitrator> selectArbitratorList(Arbitrator arbitrator);
}
@@ -1,7 +1,9 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -11,6 +13,13 @@ public interface CaseApplicationMapper {
int selectCaseApplicationCount(CaseApplication caseApplication);
/**
* 查询超级管理员案件
* @param caseApplication
* @return
*/
List<CaseApplication> selectAdminCaseApplicationList(CaseApplication caseApplication);
int insertCaseApplication(CaseApplication caseApplication);
@@ -31,4 +40,17 @@ public interface CaseApplicationMapper {
* @return
*/
Integer selectCaseNumLike(@Param("caseNum") String caseNum, @Param("length") int length);
/**
* 查询仲裁员根据案件id
* @param arbitrator
* @return
*/
String selectArbitratorList(@Param("id") String id);
/**
* 修改支付方式
* @param payDTO
*/
void updatePayType(CaseConfirmPayDTO payDTO);
}
@@ -2,6 +2,7 @@ package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import java.util.List;
@@ -14,4 +15,7 @@ public interface CaseAttachMapper {
int updateCaseAttach(CaseAttach caseAttach);
int updateCaseAttachBycaseid(CaseAttach caseAttach);
}
@@ -8,4 +8,6 @@ public interface CasePaymentRecordMapper {
CasePaymentRecord queryRecord(String orderNumber);
void update(CasePaymentRecord casePaymentRecord);
CasePaymentRecord selectRecordByCaseId(Long id);
}
@@ -0,0 +1,18 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import java.util.List;
public interface SealSignRecordMapper {
List<SealSignRecord> selectSealSignRecord(SealSignRecord sealSignRecord);
List<SealSignRecord> selectSealSignRecordbyStat(SealSignRecord sealSignRecord);
int updataSealSignRecord(SealSignRecord sealSignRecord);
void insertSealSignRecord(SealSignRecord sealSignRecord);
}
@@ -1,6 +1,10 @@
package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
import java.util.List;
@@ -40,4 +44,12 @@ public interface ICaseApplicationService {
CaseApplication selectCaseApplicationConfirm(CaseApplication caseApplication);
String sendRoomNoMessage(SendRoomNoMessageVO messageVO);
SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException;
SealSignRecord selectSealUrl(CaseApplication caseApplication) throws EsignDemoException;
AjaxResult creatTrialRecord(ArbitrateRecord arbitrateRecord);
CaseApplication selectSignSealUrl(CaseApplication caseApplication) throws EsignDemoException;
}
@@ -3,6 +3,7 @@ package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dto.PayRequest;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import com.ruoyi.wisdomarbitrate.domain.dto.CasePayDTO;
public interface ICasePaymentService {
@@ -12,4 +13,11 @@ public interface ICasePaymentService {
AjaxResult casePay(CasePayDTO casePayDTO);
AjaxResult confirmPayment(CaseApplication caseApplication);
/**
* 确认缴费
* @param payDTO
* @return
*/
AjaxResult confirmPay(CaseConfirmPayDTO payDTO);
}
@@ -56,6 +56,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
private ICaseLogRecordService caseLogRecordService;
@Override
@Transactional
public AjaxResult createDocument(CaseApplication caseApplication) {
try {
Map<String, Object> datas = new HashMap<>();
@@ -118,20 +119,6 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
datas.put("rulingFollows", arbitrateRecord1.getRulingFollows());
}
datas.put("legalProvisions", "仲裁法");
if (arbitratorName == null) {
datas.put("arbitratorName1", null);
datas.put("arbitratorName2", null);
} else if (arbitratorName.contains(",")) {
String[] nameArray = arbitratorName.split(",");
String firstName = nameArray[0];
String secondName = nameArray[1];
datas.put("arbitratorName1", firstName);
datas.put("arbitratorName2", secondName);
} else {
String secondName = "";
datas.put("arbitratorName1", arbitratorName);
datas.put("arbitratorName2", secondName);
}
LocalDate now = LocalDate.now();
String year = Integer.toString(now.getYear());
String month = String.format("%02d", now.getMonthValue());
@@ -140,9 +127,9 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
datas.put("months", month);
datas.put("day", day);
String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx";
//String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx";
// String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx";
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
//String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
// String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String resultFilePath = saveFolderPath + "/" + fileName;
@@ -202,9 +189,12 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
if (caseAttach.getAnnexType() == 3) {
String annexPath = caseAttach.getAnnexPath();
//File file = new File("/home/ruoyi/" + annexPath);
String path = "/home/ruoyi/" + annexPath;
File file = new File(path);
System.out.println("文件是:" + file);
String path = "/home/ruoyi" + annexPath;
System.out.println("原文件路径是:" + path);
String newpath = path.replace("/", "\\");
System.out.println("新文件路径是:" + newpath);
File file = new File(newpath);
System.out.println("新文件是:" + file);
fileList.add(file);
}
}
@@ -313,7 +303,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
caseApplicationMapper.submitCaseApplication(caseApplication);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.ARBITRATED_SEAL,"");
CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.ARBITRATED_SEAL, "");
return AjaxResult.success("签名成功,案件状态已改为待仲裁文书用印");
}
@@ -324,7 +314,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
caseApplication.setCaseStatus(CaseApplicationConstants.CASE_ARCHIVED);
caseApplicationMapper.submitCaseApplication(caseApplication);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.CASE_ARCHIVED,"");
CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CASE_ARCHIVED, "");
return AjaxResult.success("归档成功,案件状态已改为已归档");
}
@@ -357,19 +347,58 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
}
}
}
//发送邮件
sendCaseEmail(caseApplication1, appEmail, resEmail);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.CASE_FILING,"");
CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CASE_FILING, "");
return AjaxResult.success("仲裁文书送达成功");
}
/**
* 通过邮件发送裁决书文件
*
* @param caseApplication1
* @param appEmail
* @param resEmail
*/
private void sendCaseEmail(CaseApplication caseApplication1, String appEmail, String resEmail) {
List<File> fileList = new ArrayList<>();
File file = null;
List<CaseAttach> caseAttachList = caseApplication1.getCaseAttachList();
if (caseAttachList != null && caseAttachList.size() > 0) {
for (CaseAttach caseAttach : caseAttachList) {
if (caseAttach.getAnnexType() == 3) {
String annexPath = caseAttach.getAnnexPath();
String path = "/home/ruoyi/" + annexPath;
// String path = "/home/ruoyi/uploadPath/upload/2023/10/12/裁决书测试20231012test.docx";
// String path = "E:/WorkDoc/SH/裁决书测试20231012test.docx";
file = new File(path);
fileList.add(file);
System.out.println("文件长度:" + file.length());
}
}
}
if (file != null) {
JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender();
try {
// emailOutUtil.sendMessageCarryFile(appEmail, "裁决书", "您好,审核后的裁决书在附件中请查阅", file, "hjbjava@163.com", javaMailSender);
emailOutUtil.sendMessageCarryFiles(appEmail, "裁决书", "您好,审核后的裁决书在附件中请查阅", fileList, "lmj1549843951@163.com", javaMailSender);
} catch (Exception e) {
System.out.println("邮件发送失败++++++++++++++++++++++++++++++++");
System.out.println(e.toString());
}
}
}
@Override
public AjaxResult stamp(CaseApplication caseApplication) {
//更改案件状态(暂时)
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
caseApplicationMapper.submitCaseApplication(caseApplication);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.ARBITRATION_DELIVERY,"");
CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.ARBITRATION_DELIVERY, "");
return AjaxResult.success("用印成功,案件状态已改为待仲裁文书送达");
}
@@ -399,21 +428,21 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
return AjaxResult.success(archivesDetailVO);
}
/*public static void main(String[] args) {
public static void main(String[] args) {
try {
List<File> fileList = new ArrayList<>();
fileList.add(new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx"));
File file = fileList.get(0);
// List<File> fileList = new ArrayList<>();
// fileList.add(new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx"));
// File file = fileList.get(0);//System.out.println("这是文件"+file);
//电子邮件送达
EmailOutUtil emailOutUtil = new EmailOutUtil();
JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender();
if (javaMailSender != null) {
emailOutUtil.sendMessageCarryFile("1154956315@qq.com", "案件裁决书", "您的裁决书已送达,详情请查阅附件", file
, "hjbjava@163.com", javaMailSender);
}
// EmailOutUtil emailOutUtil = new EmailOutUtil();
// JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender();
// if (javaMailSender != null) {
// emailOutUtil.sendMessageCarryFile("1154956315@qq.com", "案件裁决书", "您的裁决书已送达,详情请查阅附件", file
// , "hjbjava@163.com", javaMailSender);
// }
} catch (MailSendException e) {
e.printStackTrace();
}
}*/
}
}
@@ -4,29 +4,57 @@ package com.ruoyi.wisdomarbitrate.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.*;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SmsUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
import com.ruoyi.wisdomarbitrate.mapper.*;
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
import com.ruoyi.wisdomarbitrate.utils.SignAward;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.ruoyi.common.utils.PageUtils.startPage;
import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
import static com.ruoyi.common.utils.SecurityUtils.getUsername;
@@ -39,25 +67,77 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
private CaseAffiliateMapper caseAffiliateMapper;
@Autowired
private ArbitratorMapper arbitratorMapper;
private CasePaymentRecordMapper casePaymentRecordMapper;
@Autowired
private ArbitrateRecordMapper arbitrateRecordMapper;
@Autowired
private ICaseApplicationService caseApplicationService;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Autowired
private SysDeptMapper sysDeptMapper;
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private SealSignRecordMapper sealSignRecordMapper;
@Autowired
private CaseLogRecordMapper caseLogRecordMapper;
// 手机号正则
private static final Pattern TELEPHONE_REGX = Pattern.compile("^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$");
/**
* 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态
* 2.申请人:金融机构下,可以看到改机构的所有的案件
* 3.被申请人:可以看到自己相关的案件(案件有被申请人相关的信息)
* 4.仲裁员:案件选定了某个仲裁员后,该仲裁员就可以查看该案件
* 5.仲裁委(部门长):可以查看所有的案件
* 6.法律顾问秘书:可以属于多个机构,可以查看相关机构的所有案件
* 7.超级管理员:可以查看所有的信息和数据
* @param caseApplication
* @return
*/
// @Override
// public List<CaseApplication> selectCaseApplicationList(CaseApplication caseApplication) {
// // 获取登录用户
// LoginUser loginUser = getLoginUser();
// SysUser user = loginUser.getUser();
// Long userId = user.getUserId();
// Long deptId = user.getDeptId();
// List<SysRole> roles = user.getRoles();
// // 查询登录人身份证号
// SysUser sysUser = sysUserMapper.selectUserById(userId);
// caseApplication.setIdCard(sysUser.getIdCard());
// caseApplication.setUserId(String.valueOf(userId));
// startPage();
// for (SysRole role : roles) {
// // 超级管理员和仲裁委(部门长)案件,可查看所有案件 √
// if(role.getRoleName().equals("超级管理员")
// ||role.getRoleName().equals("仲裁委")
// ||role.getRoleName().equals("部门长")){
// return caseApplicationMapper.selectAdminCaseApplicationList(caseApplication);
// }
// if(role.getRoleName().equals("法律顾问")){
// // 查询角色有关的用户部门
// List<Long> deptIds = sysDeptMapper.selectUserDeptListByRoleId(role.getRoleId());
// caseApplication.setDeptIds(deptIds);
// }
// if(StrUtil.isEmpty(caseApplication.getNameId())&&role.getRoleName().equals("申请人")){
// // 查询角色有关的用户部门
// caseApplication.setNameId(String.valueOf(sysUser.getDeptId()));
// }
// }
//
//
// // 根据条件查询申请人,被申请人,仲裁员,法律顾问案件
// return caseApplicationMapper.selectCaseApplicationList(caseApplication);
//
// }
@Override
public List<CaseApplication> selectCaseApplicationList(CaseApplication caseApplication) {
return caseApplicationMapper.selectCaseApplicationList(caseApplication);
return caseApplicationMapper.selectAdminCaseApplicationList(caseApplication);
}
@Override
@Transactional
public int insertcaseApplication(CaseApplication caseApplication) {
@@ -71,6 +151,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
// 获取自动编码
String caseNum = generateCaseNum();
caseApplication.setCaseNum(caseNum);
caseApplication.setCreateBy(getUsername());
int rows = caseApplicationMapper.insertCaseApplication(caseApplication);
List<CaseAffiliate> caseAffiliates = caseApplication.getCaseAffiliates();
@@ -87,8 +168,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
caseAffiliate.setCaseAppliId(caseApplication.getId());
if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) {
// 将组织机构id设为申请人名称
if (deptMap.containsKey(caseApplication.getName())) {
caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName())));
if (deptMap.containsKey(caseAffiliate.getName())) {
caseAffiliate.setApplicationOrganId(String.valueOf(deptMap.get(caseAffiliate.getName())));
caseAffiliate.setApplicationOrganName(caseAffiliate.getName());
} else {
// 如果不存在则新增
SysDept dept = new SysDept();
@@ -102,7 +184,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
dept.setUpdateBy(getUsername());
sysDeptMapper.insertDept(dept);
deptMap.put(dept.getDeptName(), dept.getDeptId());
caseAffiliate.setName(String.valueOf(dept.getDeptId()));
caseAffiliate.setApplicationOrganId(String.valueOf(dept.getDeptId()));
caseAffiliate.setApplicationOrganName(caseAffiliate.getName());
}
}
@@ -156,6 +239,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
BigDecimal feeRate = new BigDecimal(0.01);
BigDecimal feePayable = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2,BigDecimal.ROUND_HALF_UP);
caseApplication.setFeePayable(feePayable);
caseApplication.setUpdateBy(getUsername());
int rows = caseApplicationMapper.updataCaseApplication(caseApplication);
List<CaseAffiliate> caseAffiliates = caseApplication.getCaseAffiliates();
@@ -170,8 +254,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
caseAffiliate.setCaseAppliId(caseApplication.getId());
if(caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getName())) {
// 将组织机构id设为申请人名称
if (deptMap.containsKey(caseApplication.getName())) {
caseAffiliate.setName(String.valueOf(deptMap.get(caseAffiliate.getName())));
if (deptMap.containsKey(caseAffiliate.getName())) {
caseAffiliate.setApplicationOrganName(caseAffiliate.getName());
caseAffiliate.setApplicationOrganId(String.valueOf(deptMap.get(caseAffiliate.getName())));
} else {
// 如果不存在则新增
SysDept dept = new SysDept();
@@ -185,7 +270,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
dept.setUpdateBy(getUsername());
sysDeptMapper.insertDept(dept);
deptMap.put(dept.getDeptName(), dept.getDeptId());
caseAffiliate.setName(String.valueOf(dept.getDeptId()));
caseAffiliate.setApplicationOrganName(caseAffiliate.getName());
caseAffiliate.setApplicationOrganId(String.valueOf(dept.getDeptId()));
}
}
@@ -372,7 +459,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
CaseApplication caseApplicationItera = caseApplicationNewList.get(k);
// 新增立案信息
caseApplicationItera.setCaseStatus(CaseApplicationConstants.CASE_APPLICATION);
caseApplicationItera.setCreateBy(getUsername());
int rows = caseApplicationMapper.insertCaseApplication(caseApplicationItera);
List<CaseAffiliate> caseAffiliates = caseApplicationItera.getCaseAffiliates();
if(caseAffiliates!=null&&caseAffiliates.size()>0){
@@ -646,14 +733,15 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
@Override
@Transactional
public int pendTralCheck(CaseApplication caseApplication) {
int isAgreePendTral = caseApplication.getIsAgreePendTral();
Integer isAgreePendTral = caseApplication.getIsAgreePendTral();
caseApplication.setCaseStatus(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL);
int rows = 0;
//同意组庭
if(isAgreePendTral==1){
if(isAgreePendTral!=null&&isAgreePendTral==1){
rows = caseApplicationMapper.submitCaseApplication(caseApplication);
}else {
List<Arbitrator> arbitrators = caseApplication.getArbitrators();
// 仲裁员信息
if(arbitrators!=null&&arbitrators.size()>0){
List<Long> ids = arbitrators.stream().map(Arbitrator::getId).collect(Collectors.toList());
List<String> arbitratorNames = arbitrators.stream().map(Arbitrator::getArbitratorName).collect(Collectors.toList());
@@ -690,6 +778,121 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord);
Integer agreeOrNotCheck = caseApplication.getAgreeOrNotCheck();
if(agreeOrNotCheck.intValue()==1){//同意审核
try {
//获取当前案件的裁决书
CaseApplication caseApplication2 = caseApplicationService.selectCaseApplication(caseApplication);
List<CaseAttach> caseAttachList = caseApplication2.getCaseAttachList();
if (caseAttachList != null && caseAttachList.size() > 0) {
for (CaseAttach caseAttach : caseAttachList) {
if (caseAttach.getAnnexType() == 3) {
String annexPath = caseAttach.getAnnexPath();
String path = "/home/ruoyi/" + annexPath;
System.out.println("这是查询到的裁决书路径"+path);
//String path ="D:\\home\\仲裁裁决书模板.docx";
//获取文件上传地址
EsignHttpResponse response = SaaSAPIFileUtils.getUploadUrl(path);
String body = response.getBody();
if (body != null){
JSONObject jsonObject = JSONObject.parseObject(body);
String fileId = jsonObject.getJSONObject("data").getString("fileId");
String fileUploadUrl = jsonObject.getJSONObject("data").getString("fileUploadUrl");
//上传文件流
EsignHttpResponse response1 = SaaSAPIFileUtils.uploadFile(fileUploadUrl, path);
JSONObject jsonObject1 = JSONObject.parseObject(response1.getBody());
if (jsonObject1.getIntValue("errCode")==0){
//查看文件上传状态
Thread.sleep(5000);
EsignHttpResponse response2 = SaaSAPIFileUtils.getFileStatus(fileId);
JSONObject jsonObject2 = JSONObject.parseObject(response2.getBody());
JSONObject data = jsonObject2.getJSONObject("data");
int fileStatus =data.getIntValue("fileStatus");
if (fileStatus == 2 || fileStatus == 5){
String fileName = data.getString("fileName");
//上传成功,获取文件签名印章位置
SealSignRecord sealSignRecord = new SealSignRecord();
sealSignRecord.setFileid(fileId);
EsignHttpResponse positions = SignAward.getPositions(sealSignRecord);
Gson gson = new Gson();
JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class);
JsonObject positionsData = positionsJsonObject.getAsJsonObject("data");
String keywordPositions = positionsData.get("keywordPositions").toString();
//发起签署
sealSignRecord.setFilename(fileName);
String arbitratorId = caseApplication2.getArbitratorId();
if (arbitratorId!=null){
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(arbitratorId));
if (sysUser == null){
return rows;
}
sealSignRecord.setPensonAccount(sysUser.getPhonenumber());
sealSignRecord.setPensonName(sysUser.getNickName());
}
sealSignRecord.setOrgnizeName("西安云美电子科技有限公司");
sealSignRecord.setOrgnizeNamePsnAccount("17691338406");
sealSignRecord.setOrgnizeNamepsnName("韩超勃");
//解析文件签名印章位置
JSONArray jsonArray = JSONArray.parseArray(keywordPositions);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject3 = jsonArray.getJSONObject(i);
String keyword = jsonObject3.getString("keyword");
if (keyword.equals("仲裁员:")){
//签名
JSONArray positionsArray = jsonObject3.getJSONArray("positions");
// 遍历 positionsArray 中的每个元素
for (int j = 0; j < positionsArray.size(); j++){
JSONObject positionObj = positionsArray.getJSONObject(j);
int pageNum = positionObj.getIntValue("pageNum");
sealSignRecord.setPositionPagepsn(String.valueOf(pageNum));
JSONArray coordinatesArray = positionObj.getJSONArray("coordinates");
JSONObject coordinateObj = coordinatesArray.getJSONObject(0);
double positionX = coordinateObj.getDoubleValue("positionX");
double positionY = coordinateObj.getDoubleValue("positionY");
sealSignRecord.setPositionXpsn(positionX);
sealSignRecord.setPositionYpsn(positionY);
}
}else {
//用印
JSONArray positionsArray = jsonObject3.getJSONArray("positions");
// 遍历 positionsArray 中的每个元素
for (int j = 0; j < positionsArray.size(); j++) {
JSONObject positionObj = positionsArray.getJSONObject(j);
int pageNum = positionObj.getIntValue("pageNum");
sealSignRecord.setPositionPageorg(String.valueOf(pageNum));
JSONArray coordinatesArray = positionObj.getJSONArray("coordinates");
JSONObject coordinateObj = coordinatesArray.getJSONObject(0);
double positionX = coordinateObj.getDoubleValue("positionX");
double positionY = coordinateObj.getDoubleValue("positionY");
sealSignRecord.setPositionXorg(positionX);
sealSignRecord.setPositionYorg(positionY);
}
}
}
EsignHttpResponse response3 = SignAward.createByFile(sealSignRecord);
JSONObject jsonObject3 = JSONObject.parseObject(response3.getBody());
if (jsonObject3.getIntValue("code")==0){
//获取签署流程ID
JSONObject data1 = jsonObject3.getJSONObject("data");
String signFlowId = data1.getString("signFlowId");
//保存案件id,文件id,文件名称.流程id到签署用印记录表里
sealSignRecord.setCaseAppliId(caseApplication.getId());
sealSignRecord.setSignFlowid(signFlowId);
sealSignRecord.setSignFlowStatus(1);//待签名
sealSignRecordMapper.insertSealSignRecord(sealSignRecord);
}else {
throw new ServiceException("发起签署流程失败,请检查参数是否有误");
}
}
}
}
break;
}
}
}
} catch (EsignDemoException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
caseApplication.setCaseStatus(CaseApplicationConstants.SIGN_ARBITRATION);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.SIGN_ARBITRATION,"");
@@ -735,29 +938,22 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
caseAffiliate.setCaseAppliId(caseApplication.getId());
List<CaseAffiliate> caseAffiliatListeselect = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
if(caseAffiliatListeselect!=null){
// 查询组织机构
List<SysDept> sysDepts = sysDeptMapper.selectDeptList(new SysDept());
Map<String,String> deptMap=new HashMap<>();
if(CollectionUtil.isNotEmpty(sysDepts)){
for (SysDept sysDept : sysDepts) {
deptMap.put(String.valueOf(sysDept.getDeptId()),sysDept.getDeptName());
}
}
StringBuffer applicantName = new StringBuffer();
for (int i = 0; i < caseAffiliatListeselect.size(); i++){
CaseAffiliate caseAffiliateselect = caseAffiliatListeselect.get(i);
int identityType = caseAffiliateselect.getIdentityType();
if(identityType==1){
if(StrUtil.isNotEmpty(caseAffiliateselect.getName())&&deptMap.containsKey(caseAffiliateselect.getName())){
caseAffiliateselect.setName(deptMap.get(caseAffiliateselect.getName()));
}
applicantName.append(caseAffiliateselect.getName()).append(",");;
caseApplicationselect.setApplicantName(caseAffiliateselect.getApplicationOrganName());
}
}
caseApplicationselect.setApplicantName(applicantName.toString());
}
caseApplication.setAnnexType(8);
// 查询缴费凭证
List<CaseAttach> payOrderList = caseAttachMapper.queryCaseAttachList(caseApplication);
caseApplicationselect.setPayOrderList(payOrderList);
return caseApplicationselect;
}
@@ -778,7 +974,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
//发送短信通知
SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
request.setTemplateId("1948332");
request.setTemplateId("1952136");
// 1948332 普通短信 开庭审理房间号通知 尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},请知晓,如非本人操作,请忽略本短信。
request.setPhone(caseAffiliate.getContactTelphone());
request.setTemplateParamSet(new String[]{caseAffiliate.getName(), caseApplicationselect.getCaseNum(), messageVO.getRoomNo()});
@@ -787,6 +983,238 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
return "短信发送成功";
}
@Override
public SealSignRecord selectSignUrl(CaseApplication caseApplication) throws EsignDemoException {
SealSignRecord sealSignRecord = new SealSignRecord();
sealSignRecord.setCaseAppliId(caseApplication.getId());
Gson gson = new Gson();
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecord);
SealSignRecord sealSignRecordReslt = new SealSignRecord();
if(sealSignRecords!=null&&sealSignRecords.size()>0){
SealSignRecord sealSignRecordselect = sealSignRecords.get(0);
EsignHttpResponse signUrl = SignAward.signUrl(sealSignRecordselect);
JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class);
JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
String url = signUrlData.get("url").getAsString();
sealSignRecordReslt.setSignUrl(url);
}
return sealSignRecordReslt;
}
@Override
public SealSignRecord selectSealUrl(CaseApplication caseApplication) throws EsignDemoException {
SealSignRecord sealSignRecord = new SealSignRecord();
sealSignRecord.setCaseAppliId(caseApplication.getId());
Gson gson = new Gson();
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecord);
SealSignRecord sealSignRecordReslt = new SealSignRecord();
if(sealSignRecords!=null&&sealSignRecords.size()>0){
SealSignRecord sealSignRecordselect = sealSignRecords.get(0);
EsignHttpResponse signUrl = SignAward.usesealUrl(sealSignRecordselect);
JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class);
JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
String url = signUrlData.get("url").getAsString();
sealSignRecordReslt.setSealUrl(url);
}
return sealSignRecordReslt;
}
@Override
@Transactional
public AjaxResult creatTrialRecord(ArbitrateRecord arbitrateRecordselect) {
//生成仲裁结果
CaseApplication caseApplicationselect = new CaseApplication();
caseApplicationselect.setId(arbitrateRecordselect.getCaseAppliId());
CaseApplication caseApplication = caseApplicationMapper.selectCaseApplication(caseApplicationselect);
String createBy = caseApplication.getCreateBy();
if (createBy!=null){
arbitrateRecordselect.setCreateBy(createBy);
}
//先判断案件是否已经提交过仲裁结果
ArbitrateRecord arbitrateRecordsele = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecordselect);
if (arbitrateRecordsele!=null){
int i = arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecordselect);
if (i>0){
//案件日志表里添加数据
CaseLogRecord caseLogRecord = new CaseLogRecord();
caseLogRecord.setCaseAppliId(caseApplication.getId());
caseLogRecord.setCaseNode(caseApplication.getCaseStatus());
if (createBy!=null){
caseLogRecord.setCreateBy(createBy);
}
caseLogRecordMapper.insertCaseLogRecord(caseLogRecord);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.GENERATED_ARBITRATION,"");
}
}else {
//提交仲裁结果
int i = arbitrateRecordMapper.insertArbitrateRecord(arbitrateRecordselect);
if (i>0){
//案件日志表里添加数据
CaseLogRecord caseLogRecord = new CaseLogRecord();
caseLogRecord.setCaseAppliId(caseApplication.getId());
caseLogRecord.setCaseNode(caseApplication.getCaseStatus());
if (createBy!=null){
caseLogRecord.setCreateBy(createBy);
}
caseLogRecordMapper.insertCaseLogRecord(caseLogRecord);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.GENERATED_ARBITRATION,"");
}
}
//生成庭审笔录
try {
Map<String, Object> datas = new HashMap<>();
Long id = caseApplication.getId();
if (id == null) {
return null;
}
//获取仲裁记录表里的相关信息
ArbitrateRecord arbitrateRecord = new ArbitrateRecord();
arbitrateRecord.setCaseAppliId(id);
ArbitrateRecord arbitrateRecord1 = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecord);
//获取案件关联人信息
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(id);
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
if (caseAffiliates != null && caseAffiliates.size() > 0) {
for (CaseAffiliate affiliate : caseAffiliates) {
//获取身份类型
int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人
datas.put("appName", affiliate.getName());
datas.put("appIDNo", affiliate.getIdentityNum());
datas.put("appAddress", affiliate.getContactAddress());
datas.put("appAgentName", affiliate.getNameAgent());
datas.put("appAgentIDNo", affiliate.getIdentityNumAgent());
} else if (identityType == 2) { //被申请人
datas.put("resName", affiliate.getName());
datas.put("resIDNo", affiliate.getIdentityNum());
datas.put("resAddress", affiliate.getContactAddress());
datas.put("resAgentName", affiliate.getNameAgent());
datas.put("resAgentIDNo", affiliate.getIdentityNumAgent());
}
}
}
String arbitratorName = caseApplication.getArbitratorName();
datas.put("caseName", caseApplication.getCaseName());
datas.put("arbitratorName", arbitratorName);
Date hearDate = caseApplication.getHearDate();
if (hearDate != null) {
LocalDate localDate = hearDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
datas.put("hearYear", localDate.getYear());
datas.put("hearMonths", localDate.getMonthValue());
datas.put("hearDay", localDate.getDayOfMonth());
} else {
datas.put("hearYear", null);
datas.put("hearMonths", null);
datas.put("hearDay", null);
}
datas.put("appArbitrationClaims", caseApplication.getArbitratClaims());
if (arbitrateRecord1 != null) {
datas.put("evidenDetermi", arbitrateRecord1.getEvidenDetermi());
datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
datas.put("caseSketch", arbitrateRecord1.getCaseSketch());
datas.put("arbitrateThink", arbitrateRecord1.getArbitrateThink());
datas.put("rulingFollows", arbitrateRecord1.getRulingFollows());
}
datas.put("legalProvisions", "仲裁法");
LocalDate now = LocalDate.now();
String year = Integer.toString(now.getYear());
String month = String.format("%02d", now.getMonthValue());
String day = String.format("%02d", now.getDayOfMonth());
datas.put("year", year);
datas.put("months", month);
datas.put("day", day);
String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx";
// String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx";
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
// String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String resultFilePath = saveFolderPath + "/" + fileName;
// 创建日期目录
File saveFolder = new File(saveFolderPath);
if (!saveFolder.exists()) {
saveFolder.mkdirs();
}
Path sourcePath = new File(modalFilePath).toPath();
Path destinationPath = new File(resultFilePath).toPath();
Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
String docFilePath = WordUtil.getDocFilePath(datas, modalFilePath, resultFilePath);
String savePath = docFilePath.substring(0, docFilePath.indexOf("/upload/") + 8);
// String savePath = saveFolderPath;
// saveName = fileName;
caseApplication.setAnnexType(7);
List<CaseAttach> caseAttachs = caseAttachMapper.queryCaseAttachList(caseApplication);
if(caseAttachs!=null&&caseAttachs.size()>0){
CaseAttach caseAttach = CaseAttach.builder()
.caseAppliId(id)
.annexName(saveName)
.annexPath(savePath)
.annexType(7)
.build();
int i = caseAttachMapper.updateCaseAttachBycaseid(caseAttach);
}else {
//将庭审笔录保存到附件表里
CaseAttach caseAttach = CaseAttach.builder()
.caseAppliId(id)
.annexName(saveName)
.annexPath(savePath)
.annexType(7)
.build();
int i = caseAttachMapper.save(caseAttach);
}
//获取案件详细信息
CaseApplication caseApplicationSelct = selectCaseApplication(caseApplication);
return AjaxResult.success(caseApplicationSelct);
} catch (IOException e) {
e.printStackTrace();
return AjaxResult.error("生成庭审笔录异常");
}
}
@Override
public CaseApplication selectSignSealUrl(CaseApplication caseApplication) throws EsignDemoException {
Gson gson = new Gson();
SealSignRecord sealSignRecord = new SealSignRecord();
sealSignRecord.setCaseAppliId(caseApplication.getId());
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecord);
if(sealSignRecords!=null&&sealSignRecords.size()>0){
String signFlowid = sealSignRecords.get(0).getSignFlowid();
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowid);
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
if(filesArray!=null&&filesArray.size()>0){
JsonObject fileObject = (JsonObject)filesArray.get(0);
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
String filearbitraUrl = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
caseApplication.setFilearbitraUrl(filearbitraUrl);
}
}
return caseApplication;
}
@Override
@Transactional
public int pendTralSure(CaseApplication caseApplication) {
@@ -804,49 +1232,40 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
String hearDatestr = dateFormat.format(hearDate);
String arbitratorId = caseApplicationselect.getArbitratorId();
List<Arbitrator> arbitratorList = new ArrayList<>();
// List<Arbitrator> arbitratorList = new ArrayList<>();
if(StringUtils.isNotEmpty(arbitratorId)){
String[] idStrList = arbitratorId.split(",");
List<Long> idList = new ArrayList<>();
for(int i = 0;i < idStrList.length;i ++ ){
idList.add(Long.parseLong(idStrList[i]));
}
Arbitrator arbitrator = new Arbitrator();
arbitrator.setIdList(idList);
arbitratorList = arbitratorMapper.selectArbitratorList(arbitrator);
if(arbitratorList!=null) {
for (int i = 0; i < arbitratorList.size(); i++) {
Arbitrator arbitratorselect = arbitratorList.get(i);
//给仲裁员发送短信通知
request.setPhone(arbitratorselect.getTelephone());
// 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。
String name = arbitratorselect.getArbitratorName();
request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr});
SmsUtils.sendSms(request);
}
}
// 查询仲裁员电话号
List<SysUser> userList= sysUserMapper.selectUserListByIds(idList);
if(CollectionUtil.isNotEmpty(userList)) {
for (SysUser user : userList) {
//给仲裁员发送短信通知
request.setPhone(user.getPhonenumber());
// 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。
String name = user.getNickName();
request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr});
SmsUtils.sendSms(request);
}
}
}
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(caseApplication.getId());
List<CaseAffiliate> caseAffiliatListeselect = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
if(caseAffiliatListeselect!=null) {
// 查询组织机构
List<SysDept> sysDepts = sysDeptMapper.selectDeptList(new SysDept());
Map<String,String> deptMap=new HashMap<>();
if(CollectionUtil.isNotEmpty(sysDepts)){
for (SysDept sysDept : sysDepts) {
deptMap.put(String.valueOf(sysDept.getDeptId()),sysDept.getDeptName());
}
}
for (int j = 0; j < caseAffiliatListeselect.size(); j++) {
CaseAffiliate caseAffiliateselect = caseAffiliatListeselect.get(j);
int identityType = caseAffiliateselect.getIdentityType();
if(identityType==1){
if(StrUtil.isNotEmpty(caseAffiliateselect.getName())&&deptMap.containsKey(caseAffiliateselect.getName())){
caseAffiliateselect.setName(deptMap.get(caseAffiliateselect.getName()));
}
caseAffiliateselect.setName(caseAffiliateselect.getName());;
caseAffiliateselect.setName(caseAffiliateselect.getApplicationOrganName());
}
//给申请人、被申请人发送短信通知
request.setPhone(caseAffiliateselect.getContactTelphone());
@@ -927,7 +1346,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
// 将组织机构id设为申请人名称
if(deptMap.containsKey(caseApplication.getName())){
caseAffiliate.setName(String.valueOf(deptMap.get(caseApplication.getName())));
caseAffiliate.setApplicationOrganId(String.valueOf(deptMap.get(caseApplication.getName())));
caseAffiliate.setApplicationOrganName(caseApplication.getName());
}else {
// 如果不存在则新增
SysDept dept = new SysDept();
@@ -941,7 +1361,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
dept.setUpdateBy(getUsername());
sysDeptMapper.insertDept(dept);
deptMap.put(dept.getDeptName(),dept.getDeptId());
caseAffiliate.setName(String.valueOf(dept.getDeptId()));
caseAffiliate.setApplicationOrganId(String.valueOf(dept.getDeptId()));
caseAffiliate.setApplicationOrganName(caseApplication.getName());
}
@@ -984,4 +1405,79 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
caseApplicationNew.setFeePayable(caseApplicationinsertDiffer.getFeePayable());
}
// @Transactional
// public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException {
//
// Gson gson = new Gson();
//
// SealSignRecord sealSignRecordselect = new SealSignRecord();
// sealSignRecordselect.setSignFlowStatus(1);
//
// List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecordselect);
// if(sealSignRecords!=null&&sealSignRecords.size()>0){
// for (int i = 0; i < sealSignRecords.size(); i++) {
// SealSignRecord sealSignRecord = sealSignRecords.get(i);
// EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord);
// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
// JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
// JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
// for (int j = 0; j < signersArray.size(); j++) {
// JsonObject signerObject = (JsonObject)signersArray.get(j);
// Integer psnsignStatus ;
// Integer orgsignStatus ;
// if(!(signerObject.get("psnSigner").toString()).equals("null")){
// JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
// if(psnSignerData!=null){
// psnsignStatus = signerObject.get("signStatus").getAsInt();
// sealSignRecord.setPsnsignStatus(psnsignStatus);
//
// if(psnsignStatus.intValue()==2){
// //更新立案申请状态为待用印
// CaseApplication caseApplication = new CaseApplication();
// caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
// caseApplicationMapper.submitCaseApplication(caseApplication);
//
// //修改"签署用印记录表"的状态为待用印
// sealSignRecord.setSignFlowStatus(2);
// sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
//
// }
// }
// }
// if(!(signerObject.get("orgSigner").toString()).equals("null")){
// JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
// if(orgSignerData!=null){
// orgsignStatus = signerObject.get("signStatus").getAsInt();
// sealSignRecord.setOrgsignStatus(orgsignStatus);
// //更新立案申请状态为待送达
// CaseApplication caseApplication = new CaseApplication();
// caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
// caseApplicationMapper.submitCaseApplication(caseApplication);
//
// //修改"签署用印记录表"的状态为签署完成
// sealSignRecord.setSignFlowStatus(3);
// sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
//
// //下载审核完成的裁决书,
//// SaaSAPIFileUtils.fileDownloadUrl();
//
// }
//
// }
//
// }
//
// }
//
// }
// }
}
@@ -2,22 +2,24 @@ package com.ruoyi.wisdomarbitrate.service.impl;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.WordUtil;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.mapper.*;
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.SmsUtils;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
import com.ruoyi.wisdomarbitrate.mapper.ArbitrateRecordMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseAffiliateMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseLogRecordMapper;
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
@Service
public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
@@ -29,6 +31,8 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
private CaseLogRecordMapper caseLogRecordMapper;
@Autowired
private ArbitrateRecordMapper arbitrateRecordMapper;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Override
@Transactional
@@ -109,15 +113,14 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
}
@Override
@Transactional
public AjaxResult writtenHear(ArbitrateRecord arbitrateRecord) {
//查询案件详情
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(arbitrateRecord.getCaseAppliId());
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
String createBy = caseApplication1.getCreateBy();
if (createBy!=null){
arbitrateRecord.setCreateBy(createBy);
}
String createBy = arbitrateRecord.getCreateBy();
//先判断案件是否已经提交过仲裁结果
ArbitrateRecord arbitrateRecord1 = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecord);
if (arbitrateRecord1!=null){
@@ -131,13 +134,9 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
caseLogRecord.setCreateBy(createBy);
}
caseLogRecordMapper.insertCaseLogRecord(caseLogRecord);
//修改案件状态
caseApplication.setCaseStatus(CaseApplicationConstants.GENERATED_ARBITRATION);
caseApplicationMapper.submitCaseApplication(caseApplication);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.GENERATED_ARBITRATION,"");
return AjaxResult.success("提交成功");
}
}else {
//提交仲裁结果
@@ -152,15 +151,116 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
caseLogRecord.setCreateBy(createBy);
}
caseLogRecordMapper.insertCaseLogRecord(caseLogRecord);
//修改案件状态
caseApplication.setCaseStatus(CaseApplicationConstants.GENERATED_ARBITRATION);
caseApplicationMapper.submitCaseApplication(caseApplication);
// 新增日志
CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.GENERATED_ARBITRATION,"");
return AjaxResult.success("提交成功");
}
}
return AjaxResult.error("暂无需要提交仲裁结果的案件");
//生成庭审笔录
try {
Map<String, Object> datas = new HashMap<>();
Long id = caseApplication.getId();
//获取案件关联人信息
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(id);
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
if (caseAffiliates != null && caseAffiliates.size() > 0) {
for (CaseAffiliate affiliate : caseAffiliates) {
//获取身份类型
int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人
datas.put("appName", affiliate.getName());
datas.put("appIDNo", affiliate.getIdentityNum());
datas.put("appAddress", affiliate.getContactAddress());
datas.put("appAgentName", affiliate.getNameAgent());
datas.put("appAgentIDNo", affiliate.getIdentityNumAgent());
} else if (identityType == 2) { //被申请人
datas.put("resName", affiliate.getName());
datas.put("resIDNo", affiliate.getIdentityNum());
datas.put("resAddress", affiliate.getContactAddress());
datas.put("resAgentName", affiliate.getNameAgent());
datas.put("resAgentIDNo", affiliate.getIdentityNumAgent());
}
}
}
String arbitratorName = caseApplication.getArbitratorName();
datas.put("caseName", caseApplication.getCaseName());
datas.put("arbitratorName", arbitratorName);
Date hearDate = caseApplication.getHearDate();
if (hearDate != null) {
LocalDate localDate = hearDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
datas.put("hearYear", localDate.getYear());
datas.put("hearMonths", localDate.getMonthValue());
datas.put("hearDay", localDate.getDayOfMonth());
} else {
datas.put("hearYear", null);
datas.put("hearMonths", null);
datas.put("hearDay", null);
}
datas.put("appArbitrationClaims", caseApplication.getArbitratClaims());
datas.put("evidenDetermi", arbitrateRecord.getEvidenDetermi());
datas.put("factDetermi", arbitrateRecord.getFactDetermi());
datas.put("caseSketch", arbitrateRecord.getCaseSketch());
datas.put("arbitrateThink", arbitrateRecord.getArbitrateThink());
datas.put("rulingFollows", arbitrateRecord.getRulingFollows());
datas.put("legalProvisions", "仲裁法");
LocalDate now = LocalDate.now();
String year = Integer.toString(now.getYear());
String month = String.format("%02d", now.getMonthValue());
String day = String.format("%02d", now.getDayOfMonth());
datas.put("year", year);
datas.put("months", month);
datas.put("day", day);
String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx";
// String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx";
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
// String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String resultFilePath = saveFolderPath + "/" + fileName;
// 创建日期目录
File saveFolder = new File(saveFolderPath);
if (!saveFolder.exists()) {
saveFolder.mkdirs();
}
Path sourcePath = new File(modalFilePath).toPath();
Path destinationPath = new File(resultFilePath).toPath();
Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
String docFilePath = WordUtil.getDocFilePath(datas, modalFilePath, resultFilePath);
String savePath = docFilePath.substring(0, docFilePath.indexOf("/upload/") + 8);
//修改案件状态
caseApplication1.setCaseStatus(CaseApplicationConstants.VERPRIF_ARBITRATION);
caseApplicationMapper.submitCaseApplication(caseApplication1);
//将裁决书保存到附件表里
CaseAttach caseAttach = CaseAttach.builder()
.caseAppliId(id)
.annexName(saveName)
.annexPath(savePath)
.annexType(3)
.build();
int i = caseAttachMapper.save(caseAttach);
if (i > 0) {
if (arbitrateRecord1 != null) {
Integer annexId = caseAttach.getAnnexId();
//将附件id保存到仲裁记录表里面
arbitrateRecord1.setAnnexId(annexId);
arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord1);
}
}
return AjaxResult.success("裁决书已生成");
} catch (IOException e) {
e.printStackTrace();
return AjaxResult.error("裁决书生成异常");
}
}
}
@@ -101,7 +101,7 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
.userName(userName)
.build();
int count = caseAttachMapper.save(caseAttach);
if (count > 0) {
if (count > 0 && annexType!=null && annexType!=8) {
if(id!=null){
//修改案件状态
CaseApplication caseApplication = new CaseApplication();
@@ -121,6 +121,8 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
return AjaxResult.error("上传失败");
}
@Autowired
IdentityAuthenticationMapper identityAuthenticationMapper;
@@ -30,67 +30,9 @@ public class CaseLogRecordServiceImpl implements ICaseLogRecordService {
}
contentBuilder.append(record.getCreateNickName()).append("(").append(record.getCreateBy()).append(")").append("于").append(caseNodeTime);
switch(record.getCaseNode()){
case 0:
contentBuilder.append("创建立案申请");
break;
case 1:
contentBuilder.append("提交立案申请");
break;
case 2:
contentBuilder.append("立案审查");
break;
case 3:
contentBuilder.append("支付成功");
break;
case 4:
contentBuilder.append("缴费确认");
break;
case 5:
contentBuilder.append("案件质证");
break;
case 6:
contentBuilder.append("组庭审核");
break;
case 7:
contentBuilder.append("组庭确认");
break;
case 8:
contentBuilder.append("待开庭审理");
break;
case 9:
contentBuilder.append("待书面审理");
break;
case 10:
contentBuilder.append("书面审理");
break;
case 11:
contentBuilder.append("审核裁决书,拒绝");
break;
case 12:
contentBuilder.append("核验裁决书");
break;
case 13:
contentBuilder.append("审核裁决书,同意");
break;
case 14:
contentBuilder.append("签名成功");
break;
case 15:
contentBuilder.append("用印成功");
break;
case 16:
contentBuilder.append("送达仲裁文书");
break;
case 17:
contentBuilder.append("案件归档");
break;
case 26:
contentBuilder.append("证据确认成功");
break;
default:break;
if(StrUtil.isNotEmpty(record.getContent())){
contentBuilder.append(record.getContent());
}
record.setContent(contentBuilder.toString());
});
@@ -1,9 +1,15 @@
package com.ruoyi.wisdomarbitrate.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.ElegentPay;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.SmsUtils;
import com.ruoyi.dto.PayRequest;
@@ -29,6 +35,8 @@ public class CasePaymentServiceImpl implements ICasePaymentService {
private final CaseApplicationMapper caseApplicationMapper;
private final CasePaymentRecordMapper casePaymentRecordMapper;
private final CaseAffiliateMapper caseAffiliateMapper;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Autowired
public CasePaymentServiceImpl(ElegentPay elegentPay
@@ -78,13 +86,7 @@ public class CasePaymentServiceImpl implements ICasePaymentService {
casePaymentRecord.setPaymentTime(new Date());
casePaymentRecord.setUpdateTime(new Date());
casePaymentRecordMapper.update(casePaymentRecord);
//根据案件id查询案件信息
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(caseId);
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
caseApplication1.setCaseStatus(CaseApplicationConstants.PENDING_PAYMENT_CONFIRM);
//修改案件状态
caseApplicationMapper.submitCaseApplication(caseApplication1);
return AjaxResult.success("支付成功");
}
@@ -135,4 +137,28 @@ public class CasePaymentServiceImpl implements ICasePaymentService {
}
return AjaxResult.error("暂无需要确认的缴费清单");
}
@Transactional
@Override
public AjaxResult confirmPay(CaseConfirmPayDTO payDTO) {
if(payDTO.getCaseId()!=null&&payDTO.getPayType()!=null){
// 修改支付方式
caseApplicationMapper.updatePayType(payDTO);
}
if(CollectionUtil.isNotEmpty(payDTO.getPayOrderList())){
for (CaseAttach caseAttach : payDTO.getPayOrderList()) {
caseAttach.setCaseAppliId(payDTO.getCaseId());
caseAttachMapper.updateCaseAttach(caseAttach);
}
}
// 修改节点状态
//根据案件id查询案件信息
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(payDTO.getCaseId());
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
caseApplication1.setCaseStatus(CaseApplicationConstants.PENDING_PAYMENT_CONFIRM);
//修改案件状态
caseApplicationMapper.submitCaseApplication(caseApplication1);
return AjaxResult.success("确认缴费成功");
}
}
@@ -0,0 +1,128 @@
package com.ruoyi.wisdomarbitrate.utils;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.constant.FileTransformation;
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
import com.ruoyi.wisdomarbitrate.mapper.SealSignRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;
@Component
public class FixSelectFlowDetailUtils {
@Autowired
private CaseApplicationMapper caseApplicationMapper;
@Autowired
private SealSignRecordMapper sealSignRecordMapper;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Scheduled(cron = "0/3 * * * * ?")
@Transactional
public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException {
Gson gson = new Gson();
SealSignRecord sealSignRecordselect = new SealSignRecord();
// sealSignRecordselect.setSignFlowStatus(1);
List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecordbyStat(sealSignRecordselect);
if(sealSignRecords!=null&&sealSignRecords.size()>0){
for (int i = 0; i < sealSignRecords.size(); i++) {
SealSignRecord sealSignRecord = sealSignRecords.get(i);
EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord);
JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
Integer psnsignStatus = null;
Integer orgsignStatus = null;
for (int j = 0; j < signersArray.size(); j++) {
JsonObject signerObject = (JsonObject)signersArray.get(j);
if(!(signerObject.get("psnSigner").toString()).equals("null")){
JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
if(psnSignerData!=null){
psnsignStatus = signerObject.get("signStatus").getAsInt();
}
}
if(!(signerObject.get("orgSigner").toString()).equals("null")){
JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
if(orgSignerData!=null){
orgsignStatus = signerObject.get("signStatus").getAsInt();
}
}
}
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==1)){
//更新立案申请状态为待用印
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(sealSignRecord.getCaseAppliId());
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
if(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.SIGN_ARBITRATION){
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
caseApplicationMapper.submitCaseApplication(caseApplication);
//修改"签署用印记录表"的状态为待用印
sealSignRecord.setSignFlowStatus(2);
sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
}
}
if((psnsignStatus.intValue()==2)&&(orgsignStatus.intValue()==2)){
//更新立案申请状态为待送达
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(sealSignRecord.getCaseAppliId());
CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
if(caseApplicationselect.getCaseStatus().intValue()==CaseApplicationConstants.ARBITRATED_SEAL){
caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
//下载审核完成的裁决书,
String signFlowId = sealSignRecord.getSignFlowid();
EsignHttpResponse fileDownload = SaaSAPIFileUtils.fileDownloadUrl(signFlowId);
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
JsonObject 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();
//修改"签署用印记录表"的状态为签署完成
sealSignRecord.setSignFlowStatus(3);
sealSignRecord.setFileDownloadUrl(fileDownloadUrl.substring(1,fileDownloadUrl.length()-1));
sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
String filearbitraUrl = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
caseApplication.setFilearbitraUrl(filearbitraUrl);
caseApplicationMapper.submitCaseApplication(caseApplication);
}
}
}
}
}
}
}
@@ -0,0 +1,326 @@
package com.ruoyi.wisdomarbitrate.utils;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
import com.ruoyi.common.enums.EsignRequestType;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.EsignApplicaConfig;
import com.ruoyi.common.utils.EsignHttpHelper;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import java.util.Map;
public class SignAward {
private static String eSignHost= EsignApplicaConfig.EsignHost;
private static String eSignAppId= EsignApplicaConfig.EsignAppId;
private static String eSignAppSecret= EsignApplicaConfig.EsignAppSecret;
// public static String fileId = "95d0c307d91e4985bdb8874f6f84daa5";
public static String fileId = "a0c2ad21065f48ff8b872412c39d5d3a";
public static void main(String[] args) throws EsignDemoException {
Gson gson = new Gson();
SealSignRecord sealSignRecord = new SealSignRecord();
/* 发起签署*/
// EsignHttpResponse createByFile = createByFile(sealSignRecord);
// JsonObject createByFileJsonObject = gson.fromJson(createByFile.getBody(), JsonObject.class);
// JsonObject createByFileData = createByFileJsonObject.getAsJsonObject("data");
// String signFlowId = createByFileData.get("signFlowId").getAsString();
// System.err.println("流程id:"+signFlowId);
/* 获取文件签名印章位置*/
// EsignHttpResponse positions = getPositions(sealSignRecord);
// JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class);
// JsonObject positionsData = positionsJsonObject.getAsJsonObject("data");
// JsonArray keywordPositions = positionsData.get("keywordPositions").getAsJsonArray();
// System.out.println("获取文件签名印章位置:" +keywordPositions.toString());
// String signFlowId = "c9955453716344f9971d308abdc13464";
//获取合同文件签名链接
// EsignHttpResponse signUrl = signUrl(sealSignRecord);
// JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class);
// JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
// String shortUrl = signUrlData.get("shortUrl").getAsString();
// String url = signUrlData.get("url").getAsString();
// System.out.println("签署短链接:" +shortUrl);
// System.out.println("签署长链接:"+url);
//获取合同文件用印链接
// EsignHttpResponse usesealUrl = usesealUrl(sealSignRecord);
// JsonObject usesealUrlJsonObject = gson.fromJson(usesealUrl.getBody(), JsonObject.class);
// JsonObject usesealUrlData = usesealUrlJsonObject.getAsJsonObject("data");
// String shortusesealUrl = usesealUrlData.get("shortUrl").getAsString();
// String sealUrl = usesealUrlData.get("url").getAsString();
// System.out.println("签署长链接:" +shortusesealUrl);
// System.out.println("签署短链接:"+sealUrl);
//查询签署流程详情
EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord);
JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
for (int i = 0; i < signersArray.size(); i++) {
JsonObject signerObject = (JsonObject)signersArray.get(i);
Integer psnsignStatus ;
Integer orgsignStatus ;
if(!(signerObject.get("psnSigner").toString()).equals("null")){
JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
if(psnSignerData!=null){
psnsignStatus = signerObject.get("signStatus").getAsInt();
sealSignRecord.setPsnsignStatus(psnsignStatus);
}
}
if(!(signerObject.get("orgSigner").toString()).equals("null")){
JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
if(orgSignerData!=null){
orgsignStatus = signerObject.get("signStatus").getAsInt();
sealSignRecord.setOrgsignStatus(orgsignStatus);
}
}
}
System.out.println(signFlowDetailJsonObject);
}
/**
* 查询签署流程详情
* @return
*/
public static EsignHttpResponse signFlowDetail(SealSignRecord sealSignRecord) throws EsignDemoException {
String signFlowId = sealSignRecord.getSignFlowid();
String apiaddr= "/v3/sign-flow/"+ signFlowId + "/detail";
String jsonParm = null;
//请求方法
EsignRequestType requestType = EsignRequestType.GET;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
/**
* 发起签署
* @return
* @throws EsignDemoException
*/
public static EsignHttpResponse createByFile(SealSignRecord sealSignRecord) throws EsignDemoException {
String apiaddr = "/v3/sign-flow/create-by-file";
String fileId = sealSignRecord.getFileid();
String fileName = sealSignRecord.getFilename();
String psnAccount = sealSignRecord.getPensonAccount();
String psnName = sealSignRecord.getPensonName();
String orgName = sealSignRecord.getOrgnizeName();
String orgNamePsnAccount = sealSignRecord.getOrgnizeNamePsnAccount();
String orgNamepsnName = sealSignRecord.getOrgnizeNamepsnName();
String positionPagepsn = sealSignRecord.getPositionPagepsn();
double positionXpsn = sealSignRecord.getPositionXpsn();
double positionYpsn = sealSignRecord.getPositionYpsn();
String positionPageorg = sealSignRecord.getPositionPageorg();
double positionXorg = sealSignRecord.getPositionXorg();
double positionYorg = sealSignRecord.getPositionYorg();
String jsonParm = "{\n" +
" \"docs\": [\n" +
" {\n" +
" \"fileId\": \"" + fileId + "\",\n" +
" \"fileName\": \"" + fileName + "\"\n" +
" }\n" +
" ],\n" +
" \"signFlowConfig\": {\n" +
" \"signFlowTitle\": \"测试合同\",\n" +
" \"autoStart\": true,\n" +
" \"authConfig\": {\n" +
" \"willingnessAuthModes\": [\n" +
" \"CODE_SMS\"\n" +
" ],\n" +
" \"psnAvailableAuthModes\": [\n" +
" \"PSN_MOBILE3\"\n" +
" ],\n" +
" \"orgAvailableAuthModes\": [\n" +
" \"ORG_LEGALREP\"\n" +
" ]\n" +
" },\n" +
" \"autoFinish\": true\n" +
" },\n" +
" \"signers\": [\n" +
" {\n" +
" \"psnSignerInfo\": {\n" +
" \"psnAccount\": \"" + psnAccount + "\",\n" +
" \"psnInfo\": {\n" +
" \"psnName\": \"" + psnName + "\"\n" +
" }\n" +
" },\n" +
" \"signFields\": [\n" +
" {\n" +
" \"fileId\": \"" + fileId + "\",\n" +
" \"normalSignFieldConfig\": {\n" +
" \"autoSign\": false,\n" +
" \"freeMode\": false,\n" +
" \"movableSignField\": false,\n" +
" \"signFieldPosition\": {\n" +
" \"positionPage\": \"" + positionPagepsn + "\",\n" +
" \"positionX\": " + positionXpsn + ",\n" +
" \"positionY\": " + positionYpsn + "\n" +
" },\n" +
" \"signFieldStyle\": 1\n" +
" },\n" +
" \"signFieldType\": 0\n" +
" }\n" +
" ],\n" +
" \"signerType\": 0\n" +
" },\n" +
" {\n" +
" \"orgSignerInfo\": {\n" +
" \"orgName\": \"" + orgName + "\",\n" +
" \"transactorInfo\": {\n" +
" \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" +
" \"psnInfo\": {\n" +
" \"psnName\": \"" + orgNamepsnName + "\"\n" +
" }\n" +
" }\n" +
" },\n" +
" \"signFields\": [\n" +
" {\n" +
" \"fileId\": \"" + fileId + "\",\n" +
" \"normalSignFieldConfig\": {\n" +
" \"autoSign\": false,\n" +
" \"freeMode\": false,\n" +
" \"signFieldPosition\": {\n" +
" \"positionPage\": \"" + positionPageorg + "\",\n" +
" \"positionX\": " + positionXorg + ",\n" +
" \"positionY\": " + positionYorg + "\n" +
" },\n" +
" \"signFieldStyle\": 1\n" +
" },\n" +
" \"signFieldType\": 0\n" +
" }\n" +
" ],\n" +
" \"signerType\": 1\n" +
" }\n" +
" ]\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 获取合同文件签名链接
* @return
* @throws EsignDemoException
*/
public static EsignHttpResponse signUrl(SealSignRecord sealSignRecord) throws EsignDemoException {
String signFlowId = sealSignRecord.getSignFlowid();
String psnAccount = sealSignRecord.getPensonAccount();
String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url";
String jsonParm = "{\n" +
" \"operator\": {\n" +
" \"psnAccount\": \"" + psnAccount + "\"\n" +
" }\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 获取合同文件用印链接
* @return
* @throws EsignDemoException
*/
public static EsignHttpResponse usesealUrl(SealSignRecord sealSignRecord) throws EsignDemoException {
String signFlowId = sealSignRecord.getSignFlowid();
String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url";
String psnAccount = sealSignRecord.getOrgnizeNamePsnAccount();
String orgName = sealSignRecord.getOrgnizeName();
String jsonParm = "{\n" +
" \"operator\": {\n" +
" \"psnAccount\": \"" + psnAccount + "\"\n" +
" },\n" +
" \"organization\": {\n" +
" \"orgName\": \"" + orgName + "\"\n" +
" }\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 获取文件签名印章位置
* @return
* @throws EsignDemoException
*/
public static EsignHttpResponse getPositions(SealSignRecord sealSignRecord) throws EsignDemoException {
String fileId = sealSignRecord.getFileid();
String apiaddr = "/v3/files/" + fileId + "/keyword-positions";
String jsonParm = "{\n" +
" \"keywords\": [\n" +
" \"仲裁员:\",\n" +
" \"(仲裁委员会盖章)\"\n" +
" ]\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
}
@@ -86,8 +86,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectDeptVo"/>
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
</select>
<insert id="insertDept" parameterType="SysDept" useGeneratedKeys="true" keyColumn="dept_id" keyProperty="deptId">
<select id="selectUserDeptListByRoleId" resultType="java.lang.Long">
select u.dept_id from sys_user_role r
join sys_user u on r.role_id=#{roleId} and r.user_id=u.user_id
</select>
<insert id="insertDept" parameterType="SysDept" useGeneratedKeys="true" keyColumn="dept_id" keyProperty="deptId">
insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="deptId" column="dept_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="idCard" column="id_card" />
<result property="email" column="email" />
<result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" />
@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="orderNum" column="order_num" />
<result property="leader" column="leader" />
<result property="status" column="dept_status" />
</resultMap>
<resultMap id="RoleResult" type="SysRole">
@@ -49,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, 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,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
@@ -57,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
select u.user_id, u.dept_id, u.nick_name, u.user_name,u.id_card, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
@@ -86,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name,u.id_card, u.email, u.phonenumber, u.status, u.create_time
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
@@ -103,7 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name,u.id_card, u.email, u.phonenumber, u.status, u.create_time
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
@@ -141,13 +143,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
</select>
<select id="selectUserListByAdRole" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name,u.id_card, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark from sys_user u
join sys_user_role ur on ur.user_id =u.user_id
join sys_role r on ur.role_id = r.role_id and r.role_name='仲裁员'
where r.del_flag = '0' and r.status='0'
and u.del_flag = '0' and u.status='0'
<if test="arbitratorName != null and arbitratorName != ''">
AND u.nick_name like concat('%', #{arbitratorName}, '%')
</if>
<if test="idList != null and idList.size() > 0">
AND u.user_id in
<foreach item="id" collection="idList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="selectUserListByIds" resultMap="SysUserResult">
select u.user_id, u.nick_name, u.user_name,u.id_card, u.phonenumber, u.remark from sys_user u
<where>
<if test="idList != null and idList.size() > 0">
AND u.user_id in
<foreach item="id" collection="idList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="userName != null and userName != ''">user_name,</if>
<if test="nickName != null and nickName != ''">nick_name,</if>
<if test="idCard != null and idCard != ''">id_card,</if>
<if test="email != null and email != ''">email,</if>
<if test="avatar != null and avatar != ''">avatar,</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
@@ -162,6 +198,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId != null and deptId != ''">#{deptId},</if>
<if test="userName != null and userName != ''">#{userName},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="idCard != null and idCard != ''">#{idCard},</if>
<if test="email != null and email != ''">#{email},</if>
<if test="avatar != null and avatar != ''">#{avatar},</if>
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
@@ -180,6 +217,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
<if test="email != null ">email = #{email},</if>
<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
<if test="sex != null and sex != ''">sex = #{sex},</if>
@@ -19,13 +19,15 @@
<result property="contactTelphoneAgent" column="contact_telphone_agent" />
<result property="contactAddressAgent" column="contact_address_agent" />
<result property="trackNum" column="track_num" />
<result property="applicationOrganId" column="application_organ_id" />
<result property="applicationOrganName" column="application_organ_name" />
</resultMap>
<select id="selectCaseAffiliate" parameterType="CaseAffiliate" resultMap="CaseAffiliateResult">
select c.id ,c.case_appli_id ,c.identity_type ,c.name ,c.identity_num ,c.contact_telphone ,c.contact_address ,
c.work_address ,c.work_telphone ,c.name_agent, c.identity_num_agent ,c.contact_telphone_agent ,c.contact_address_agent,
c.track_num
c.track_num,c.application_organ_id,c.application_organ_name
from case_affiliate c
<where>
<if test="caseAppliId != null ">
@@ -36,7 +38,7 @@
<select id="selectCaseAffiliateByIdentityType" resultMap="CaseAffiliateResult">
select c.id ,c.case_appli_id ,c.identity_type ,c.name ,c.identity_num ,c.contact_telphone ,c.contact_address ,
c.work_address ,c.work_telphone ,c.name_agent, c.identity_num_agent ,c.contact_telphone_agent ,c.contact_address_agent,
c.track_num
c.track_num,c.application_organ_id,c.application_organ_name
from case_affiliate c
<where>
<if test="caseAppliId != null ">
@@ -50,11 +52,11 @@
<insert id="batchCaseAffiliate">
insert into case_affiliate(case_appli_id, identity_type,name,identity_num,contact_telphone,
insert into case_affiliate(case_appli_id, identity_type,application_organ_id,application_organ_name,name,identity_num,contact_telphone,
contact_address,work_address,work_telphone ,name_agent,identity_num_agent,contact_telphone_agent,
contact_address_agent ) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.caseAppliId},#{item.identityType},#{item.name},#{item.identityNum},#{item.contactTelphone},
(#{item.caseAppliId},#{item.identityType},#{item.applicationOrganId},#{item.applicationOrganName},#{item.name},#{item.identityNum},#{item.contactTelphone},
#{item.contactAddress},#{item.workAddress},#{item.workTelphone}, #{item.nameAgent},#{item.identityNumAgent},
#{item.contactTelphoneAgent},#{item.contactAddressAgent})
</foreach>
@@ -67,6 +69,8 @@
set
case_appli_id=#{caseAppliId},
identity_type= #{identityType},
application_organ_id= #{applicationOrganId},
application_organ_name= #{applicationOrganName},
name = #{name},
identity_num = #{identityNum},
contact_telphone = #{contactTelphone},
@@ -34,11 +34,12 @@
<result property="arbitratorName" column="arbitrator_name" />
<result property="paymentStatus" column="payment_status" />
<result property="paymentStatusName" column="paymentStatusName" />
<result property="filearbitraUrl" column="filearbitra_url" />
</resultMap>
<select id="selectCaseApplicationList" parameterType="CaseApplication" resultMap="CaseApplicationResult">
select t1.* from(
select t.* from(
select c.id ,c.case_num ,c.case_subject_amount ,c.register_date ,c.arbitrat_method ,
CASE c.arbitrat_method when 1 then '开庭审理' when 2 then '书面审理'
ELSE '无审理方式'
@@ -49,16 +50,80 @@
when 6 then '待组庭确定' when 7 then '待审核仲裁方式' when 8 then '待开庭审理'
when 9 then '待书面审理' when 10 then '待生成仲裁文书' when 11 then '待核验仲裁文书'
when 12 then '待审核仲裁文书' when 13 then '待仲裁文书签名' when 14 then '待仲裁文书用印'
when 15 then '待仲裁文书送达' when 16 then '待案件归档'
when 15 then '待仲裁文书送达' when 16 then '待案件归档' when 17 then '已归档'
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,
c.update_by ,c.update_time , c.arbitrator_name,d.dept_name as applicantName
c.update_by ,c.update_time , c.arbitrator_name,ca.name,ca.application_organ_id,ca.application_organ_name as applicantName,
c.arbitrator_id,ca.identity_num , ca.identity_type,c.filearbitra_url
from case_application c
LEFT JOIN case_affiliate ca ON ca.case_appli_id = c.id and ca.identity_type=1
LEFT JOIN sys_dept d ON ca.NAME = d.dept_id and ca.name=d.dept_id
<where>
<if test="caseStatus != null">
AND c.case_status = #{caseStatus}
</if>
<if test="caseNum != null and caseNum != ''">
AND c.case_num = #{caseNum}
</if>
<if test="caseStatusList != null and caseStatusList.size() > 0">
and c.case_status in
<foreach item="caseStatus" collection="caseStatusList" open="(" separator="," close=")">
#{caseStatus}
</foreach>
</if>
</where>
) t
<where>
<!--被申请人-->
<if test="idCard != null and idCard != ''">
or (t.identity_num=#{idCard} AND t.identity_type=2)
</if>
<!--仲裁员-->
<if test="userId != null and userId != ''">
or instr (t.arbitrator_id,#{userId})>0
</if>
<!--法律顾问-->
<if test="deptIds != null and deptIds.size() > 0">
or t.name
in
<foreach item="item" collection="deptIds" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
) t1
<where>
<!--申请人-->
<if test="nameId != null and nameId != ''">
and ( t1.application_organ_id = #{nameId} AND t1.identity_type=1 )
</if>
</where>
order by t1.create_time desc,t1.case_num desc
</select>
<select id="selectAdminCaseApplicationList" parameterType="CaseApplication" resultMap="CaseApplicationResult">
select c.id ,c.case_num ,c.case_subject_amount ,c.register_date ,c.arbitrat_method ,
CASE c.arbitrat_method when 1 then '开庭审理' when 2 then '书面审理'
ELSE '无审理方式'
END arbitratMethodName,
c.case_status ,
CASE c.case_status when 0 then '立案申请' when 1 then '待立案审查' when 2 then '待缴费'
when 3 then '待缴费确认' when 4 then '待案件质证' when 5 then '待组庭审核'
when 6 then '待组庭确定' when 7 then '待审核仲裁方式' when 8 then '待开庭审理'
when 9 then '待书面审理' when 10 then '待生成仲裁文书' when 11 then '待核验仲裁文书'
when 12 then '待审核仲裁文书' when 13 then '待仲裁文书签名' when 14 then '待仲裁文书用印'
when 15 then '待仲裁文书送达' when 16 then '待案件归档' when 17 then '已归档'
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,
c.update_by ,c.update_time , c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName,c.filearbitra_url
from case_application c
LEFT JOIN case_affiliate ca ON ca.case_appli_id = c.id AND ca.identity_type=1
<where>
<if test="caseStatus != null">
AND c.case_status = #{caseStatus}
@@ -67,7 +132,7 @@
AND c.case_num = #{caseNum}
</if>
<if test="nameId != null and nameId != ''">
AND ca.NAME=#{nameId} AND ca.identity_type=1 and ca.name=d.dept_id
AND ca.application_organ_id=#{nameId} AND ca.identity_type=1
</if>
<if test="caseStatusList != null and caseStatusList.size() > 0">
and c.case_status in
@@ -93,7 +158,7 @@
<if test="caseNum != null and caseNum != ''">case_num,</if>
<if test="caseSubjectAmount != null">case_subject_amount,</if>
<if test="registerDate != null">register_date,</if>
register_date,
<if test="arbitratMethod != null and arbitratMethod != ''">arbitrat_method,</if>
<if test="caseStatus != null ">case_status,</if>
<if test="hearDate != null ">hear_date,</if>
@@ -114,7 +179,7 @@
)values(
<if test="caseNum != null and caseNum != ''">#{caseNum},</if>
<if test="caseSubjectAmount != null">#{caseSubjectAmount},</if>
<if test="registerDate != null">#{registerDate},</if>
sysdate(),
<if test="arbitratMethod != null and arbitratMethod != ''">#{arbitratMethod},</if>
<if test="caseStatus != null ">#{caseStatus},</if>
<if test="hearDate != null ">#{hearDate},</if>
@@ -181,9 +246,13 @@
<if test="objectionAddEviden != null">objection_add_eviden = #{objectionAddEviden},</if>
<if test="openCourtHear != null">open_court_hear = #{openCourtHear},</if>
<if test="hearDate != null">hear_date = #{hearDate},</if>
<if test="filearbitraUrl != null and filearbitraUrl != ''">filearbitra_url = #{filearbitraUrl},</if>
</set>
where id = #{id}
</update>
<update id="updatePayType">
update case_application set pay_type=#{payType} where id = #{caseId}
</update>
<delete id="deletecaseApplication" parameterType="CaseApplication">
delete from case_application where id = #{id}
@@ -206,10 +275,10 @@
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,d.dept_name as applicantName
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName
from case_application c
LEFT JOIN case_affiliate ca ON ca.case_appli_id = c.id and ca.identity_type=1
LEFT JOIN sys_dept d ON ca.NAME = d.dept_id and ca.name=d.dept_id
<where>
<if test="id != null ">
AND c.id = #{id}
@@ -238,7 +307,8 @@
p.payment_status ,
CASE p.payment_status when 1 then '已支付' when 0 then '未支付'
ELSE '无支付状态'
END paymentStatusName
END paymentStatusName,c.pay_type,
CASE c.pay_type when 0 then '线上支付' when 0 then '线下支付' else '' end payTypeName
from case_application c left join case_payment_record p on c.id = p.case_id
where c.case_status = 3 and p.payment_status = 1
AND c.id = #{id}
@@ -248,6 +318,9 @@
select max(substring(case_num, #{length}+1,12)+1) as maxCaseNum
from case_application where case_num like CONCAT(#{caseNum},'%') ;
</select>
<select id="selectArbitratorList" resultType="java.lang.String">
select a.arbitrator_id id from case_application a where a.id=#{id}
</select>
</mapper>
@@ -17,6 +17,7 @@
INSERT INTO case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account)
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{userId},#{userName})
</insert>
<select id="queryAnnexPathByCaseId" resultType="com.ruoyi.wisdomarbitrate.domain.CaseAttach" resultMap="CaseAttachResult">
select annex_id,case_appli_id,annex_name,annex_path,annex_type,note,use_id,use_account
from case_attach
@@ -49,6 +50,22 @@
where annex_id = #{annexId}
</update>
<update id="updateCaseAttachBycaseid" parameterType="CaseAttach">
update case_attach
<set>
<if test="annexName != null and annexName != ''">annex_name = #{annexName},</if>
<if test="annexPath != null and annexPath != ''">annex_path = #{annexPath}</if>
</set>
<where>
<if test="caseAppliId != null ">
AND case_appli_id = #{caseAppliId}
</if>
<if test="annexType != null ">
AND annex_type = #{annexType}
</if>
</where>
</update>
</mapper>
@@ -22,7 +22,16 @@
</insert>
<select id="selectCaseLogRecordList" resultType="com.ruoyi.wisdomarbitrate.domain.CaseLogRecord">
select cl.case_node caseNode ,cl.case_node_time caseNodeTime ,cl.notes ,cl.id ,cl.case_appli_id caseAppliId,
cl.create_by createBy,cl.create_nick_name createNickName,cl.create_time createTime,cl.update_by updateBy,cl.update_time updateTime
cl.create_by createBy,cl.create_nick_name createNickName,cl.create_time createTime,cl.update_by updateBy,cl.update_time updateTime,
CASE cl.case_node when 0 then '立案申请' when 1 then '提交立案申请' when 2 then '立案审查'
when 3 then '支付成功' when 4 then '缴费确认' when 5 then '案件质证'
when 6 then '组庭审核' when 7 then '组庭确认' when 8 then '待开庭审理'
when 9 then '待书面审理' when 10 then '书面审理' when 11 then '拒绝裁决书'
when 12 then '核验裁决书' when 13 then '同意裁决书' when 14 then '签名成功'
when 15 then '用印成功' when 16 then '送达仲裁文书' when 17 then '案件归档'
when 26 then '证据确认成功'
ELSE '无案件状态'
END content
from case_log_record cl
<where>
@@ -11,6 +11,7 @@
<result property="paymentTime" column="payment_time" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="payType" column="pay_type" />
</resultMap>
<insert id="saveRecord">
INSERT INTO case_payment_record (case_id, order_number, payment_status , create_time)
@@ -24,6 +25,7 @@
<if test="paymentTime != null ">payment_time = #{paymentTime},</if>
<if test="paymentStatus != null ">payment_status = #{paymentStatus},</if>
<if test="updateTime != null ">update_time = #{updateTime},</if>
<if test="payType != null ">pay_type = #{payType},</if>
</set>
where id = #{id}
</update>
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.wisdomarbitrate.mapper.SealSignRecordMapper">
<insert id="insertSealSignRecord" useGeneratedKeys="true" keyProperty="id">
INSERT INTO seal_sign_record (file_id, file_name, sign_flow_id , penson_account
,penson_name,orgnize_name,orgn_name_psn_acc,orgn_name_psn_name,position_pagepsn
,position_xpsn,position_ypsn,position_pageorg,position_xorg,position_yorg,case_appli_id
,sign_flow_status)
VALUES (#{fileid}, #{filename}, #{signFlowid},#{pensonAccount},#{pensonName},#{orgnizeName}
,#{orgnizeNamePsnAccount},#{orgnizeNamepsnName},#{positionPagepsn},#{positionXpsn},#{positionYpsn}
,#{positionPageorg},#{positionXorg},#{positionYorg},#{caseAppliId},#{signFlowStatus})
</insert>
<resultMap type="SealSignRecord" id="SealSignRecordResult">
<id property="id" column="id" />
<result property="caseAppliId" column="case_appli_id" />
<result property="fileid" column="file_id" />
<result property="signFlowid" column="sign_flow_id" />
<result property="signFlowStatus" column="sign_flow_status" />
<result property="pensonAccount" column="penson_account" />
<result property="orgnizeName" column="orgnize_name" />
<result property="orgnizeNamePsnAccount" column="orgn_name_psn_acc" />
</resultMap>
<select id="selectSealSignRecord" parameterType="SealSignRecord" resultMap="SealSignRecordResult">
SELECT s.id ,s.case_appli_id ,s.file_id ,s.sign_flow_id,s.penson_account ,s.orgnize_name ,s.orgn_name_psn_acc
from seal_sign_record s
<where>
<if test="signFlowStatus != null ">
AND s.sign_flow_status = #{signFlowStatus}
</if>
<if test="caseAppliId != null ">
AND s.case_appli_id = #{caseAppliId}
</if>
</where>
</select>
<select id="selectSealSignRecordbyStat" parameterType="SealSignRecord" resultMap="SealSignRecordResult">
SELECT s.id ,s.case_appli_id ,s.file_id ,s.sign_flow_id
from seal_sign_record s
where s.sign_flow_status in (1,2)
</select>
<update id="updataSealSignRecord" parameterType="SealSignRecord">
update seal_sign_record
<set>
<if test="signFlowStatus != null">sign_flow_status = #{signFlowStatus},</if>
<if test="fileDownloadUrl != null and fileDownloadUrl != ''">file_download_url = #{fileDownloadUrl}</if>
</set>
where id = #{id}
</update>
</mapper>