合并 #25

Merged
hejinbo merged 14 commits from hjb into dev 2023-09-23 02:56:32 +00:00
20 changed files with 724 additions and 96 deletions
@@ -0,0 +1,23 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/adjudication")
public class AdjudicationController extends BaseController {
@Autowired
private IAdjudicationService adjudicationService;
@PostMapping("/document")
public AjaxResult createDocument(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.createDocument(caseApplication);
}
}
@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,27 +16,24 @@ public class CaseArbitrateController extends BaseController {
private ICaseArbitrateService caseArbitrateService;
/**
* 确定仲裁方式
* 审核仲裁方式
* @param caseApplication
* @param arbitratMethod
* @param opinion 1同意,0拒绝
* @return
*/
@PutMapping("/method")
public AjaxResult chooseArbitrateMethod(@Validated @RequestBody CaseApplication caseApplication
,Integer arbitratMethod){
return caseArbitrateService.chooseArbitrateMethod(caseApplication,arbitratMethod);
public AjaxResult examineArbitrateMethod(@Validated @RequestBody CaseApplication caseApplication
,Integer opinion){
return caseArbitrateService.examineArbitrateMethod(caseApplication,opinion);
}
/**
* 书面审理
* @param caseApplication
* @param accidentDescription
* @param arbitrationResult
* @param arbitrateRecord
* @return
*/
@PostMapping("/writtenHear")
public AjaxResult writtenHear(@Validated @RequestBody CaseApplication caseApplication
,String accidentDescription , String arbitrationResult){
return caseArbitrateService.writtenHear(caseApplication,accidentDescription,arbitrationResult);
public AjaxResult writtenHear(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
return caseArbitrateService.writtenHear(arbitrateRecord);
}
}
@@ -4,6 +4,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import com.ruoyi.wisdomarbitrate.service.ICaseEvidenceService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -78,4 +79,14 @@ public class CaseEvidenceController extends BaseController {
public AjaxResult evidenceConfirmation(@Validated @RequestBody CaseApplication caseApplication){
return caseEvidenceService.evidenceConfirmation(caseApplication);
}
/**
* 案件质证
* @param caseEvidenceDTO
* @return
*/
@PostMapping("/crossexami")
public AjaxResult caseCrossexamination(@Validated @RequestBody CaseEvidenceDTO caseEvidenceDTO){
return caseEvidenceService.caseCrossexamination(caseEvidenceDTO);
}
}
@@ -143,8 +143,8 @@ elegent:
alipay:
appId: 2021003141676135
callback:
domain: http://121.40.189.20:9000/
watch: false
domain: http://121.40.189.20:9001/
watch: true
cycle: 10
identityAuthentication:
credentialSecretId: 123
+6
View File
@@ -145,6 +145,12 @@
<version>3.1.701</version>
</dependency>
<!-- poi-tl-->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
@@ -74,12 +74,4 @@ public class SmsUtils {
private String[] templateParamSet;
}
public static void main(String[] args) {
SendSmsRequest sendSmsRequest = new SendSmsRequest();
sendSmsRequest.setPhone("18792613219");
sendSmsRequest.setTemplateId("1928003");
sendSmsRequest.setTemplateParamSet(new String[]{"xxx","仲裁","编号"});
SmsUtils.sendSms(sendSmsRequest);
}
}
@@ -0,0 +1,157 @@
package com.ruoyi.common.utils;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.ParagraphStyle;
import com.deepoove.poi.data.style.Style;
import com.deepoove.poi.util.PoitlIOUtils;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Author: ymbgy
* @Date: 2022-09-21 13:26
*/
public class WordUtil {
private CellRenderData cell;
/**
* 查询生成的word文件流
*
* @param response
* @param datas
* @param modalFilePath
* @param resultFilePath
* @throws IOException
*/
public static void getDocStreamFile(HttpServletResponse response, Map<String, Object> datas, String modalFilePath, String resultFilePath, String fileName) throws IOException {
//获取word模板和填充数据
XWPFTemplate template = XWPFTemplate.compile(modalFilePath).render(datas);
//设置返回类型及文件名
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=\"" + fileName + "\"");
//获取返回输出流
OutputStream out = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(out);
template.write(bos);
bos.flush();
out.flush();
PoitlIOUtils.closeQuietlyMulti(template, bos, out);
}
/**
* 查询生成的word文件路径
*
* @param datas
* @param modalFilePath
* @param resultFilePath
* @return
* @throws IOException
*/
public static String getDocFilePath(Map<String, Object> datas, String modalFilePath, String resultFilePath) throws IOException {
//获取word模板和填充数据
XWPFTemplate template = XWPFTemplate.compile(modalFilePath).render(datas);
template.writeAndClose(new FileOutputStream(resultFilePath));
return resultFilePath;
}
/**
* 构造绘制表格的方法
*/
public static TableRenderData rebuildWordTableData(List<String> headerList, String headerBackgroundColor, String textColor, List<List<String>> tableContentList) {
RowRenderData header = rebuildWordTableHead(headerList, headerBackgroundColor, textColor);
List<RowRenderData> content = rebuildWordTableContent(tableContentList);
TableRenderData tableRenderData = Tables.create().addRow(header);
for (int i = 0; content != null && i < content.size(); i++) {
tableRenderData.addRow(content.get(i));
}
return tableRenderData;
}
/**
* 构造表格表头
*
* @return
*/
public static RowRenderData rebuildWordTableHead(List<String> headerList, String headerBackgroundColor, String textColor) {
RowRenderData header = new RowRenderData();
for (int i = 0; headerList != null && i < headerList.size(); i++) {
CellRenderData cellRenderData = new CellRenderData();
ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
Style style = new Style();
style.setColor(textColor);
style.setFontSize(12.0);
ParagraphStyle paragraphStyle = ParagraphStyle.builder()
.withAlign(ParagraphAlignment.CENTER)
// .withBackgroundColor(headerBackgroundColor)
.withDefaultTextStyle(style)
.build();
paragraphRenderData.addText(headerList.get(i));
paragraphRenderData.setParagraphStyle(paragraphStyle);
cellRenderData.addParagraph(paragraphRenderData);
header.addCell(cellRenderData);
}
return header;
}
/**
* 构造表格内容
*
* @return
*/
public static List<RowRenderData> rebuildWordTableContent(List<List<String>> tableContentList) {
List<RowRenderData> rowContentList = new ArrayList<>();
for (int i = 0; tableContentList != null && i < tableContentList.size(); i++) {
List<String> rowdataList = tableContentList.get(i);
RowRenderData rowcontent = new RowRenderData();
for (int j = 0; rowdataList != null && j < rowdataList.size(); j++) {
CellRenderData cellRenderData = new CellRenderData();
ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
Style style = new Style();
style.setFontSize(12.0);
ParagraphStyle paragraphStyle = ParagraphStyle.builder()
.withAlign(ParagraphAlignment.CENTER)
.withDefaultTextStyle(style)
.build();
paragraphRenderData.addText(rowdataList.get(j));
paragraphRenderData.setParagraphStyle(paragraphStyle);
cellRenderData.addParagraph(paragraphRenderData);
rowcontent.addCell(cellRenderData);
}
rowContentList.add(rowcontent);
}
return rowContentList;
}
/**
* 构建图片内容
*/
public static PictureRenderData rebuildImageContent(Integer with, Integer height, String imageUrl, String relatedPath, Byte[] imageBytes) {
PictureRenderData pictureRenderData = null;
if (!StringUtils.isBlank(imageUrl)) {
// pictureRenderData = Pictures.of(imageUrl).size(with, height).create();
//Pictures.PictureBuilder pictureBuilder = Pictures.of("https://res.wx.qq.com/a/wx_fed/weixin_portal/res/static/img/1EtCRvm.png");
}else if (!StringUtils.isBlank(relatedPath)) {
pictureRenderData = Pictures.ofLocal(relatedPath).size(with,height).create();
// Pictures.PictureBuilder pictureBuilder = Pictures.of("https://res.wx.qq.com/a/wx_fed/weixin_portal/res/static/img/1EtCRvm.png");
}
return pictureRenderData;
}
public static String getResultFilePath(Map<String, Object> datas, Configure config, String modalFilePath, String resultFilePath) throws IOException {
//获取word模板和填充数据
XWPFTemplate template = XWPFTemplate.compile(modalFilePath,config).render(datas);
template.writeAndClose(new FileOutputStream(resultFilePath));
return resultFilePath;
}
}
@@ -0,0 +1,188 @@
package com.ruoyi.wisdomarbitrate.domain;
import lombok.Data;
@Data
public class Adjudication {
/**
* 申请人姓名
*/
private String appName;
/**
* 申请人性别
*/
private String appSex;
/**
* 申请人身份证号码
*/
private String appIDNo;
/**
* 申请人住所
*/
private String appAddress;
/**
* 申请人代理人姓名
*/
private String appAgentName;
/**
* 申请人代理人身份证
*/
private String appAgentIDNo;
/**
* 被申请人姓名
*/
private String resName;
/**
* 被申请人性别
*/
private String resSex;
/**
* 被申请人身份证号码
*/
private String resIDNo;
/**
* 被申请人住所
*/
private String resAddress;
/**
* 被申请人代理人姓名
*/
private String resAgentName;
/**
* 被申请人代理人身份证
*/
private String resAgentIDNo;
/**
* 案件名称
*/
private String caseName;
/**
* 仲裁员名称
*/
private String arbitratorName;
/**
* 开庭年
*/
private String hearYear;
/**
* 开庭月
*/
private String hearMonths;
/**
* 开庭日
*/
private String hearDay;
/**
* 申请人具体仲裁请求
*/
private String appArbitrationClaims;
/**
* 申请人证据名称
*/
private String appEvidenceName;
/**
* 申请人拟证事实
*/
private String appProveFacts;
/**
* 被申请人对申请人答辩内容
*/
private String resDefenseContentToApp;
/**
* 被申请人具体仲裁请求
*/
private String resArbitrationClaims;
/**
* 被申请人证据名称
*/
private String resEvidenceName;
/**
* 被申请人拟证事实
*/
private String resProveFacts;
/**
* 申请人对被申请人答辩内容
*/
private String appDefenseContentToRes;
/**
* 第三人答辩内容
*/
private String thirdDefenseContent;
/**
* 第三人证据名称
*/
private String thirdEvidenceName;
/**
* 第三人拟证事实
*/
private String thirdProveFacts;
/**
* 申请人对第三人答辩内容
*/
private String appDefenseContentToThird;
/**
* 被申请人对第三人答辩内容
*/
private String resDefenseContentToThird;
/**
* 证据认定
*/
private String evidenDetermi;
/**
* 认定事实
*/
private String factDetermi;
/**
* 综上所述
*/
private String caseSketch;
/**
* 本庭认为
*/
private String arbitrateThink;
/**
* 裁决如下
*/
private String rulingFollows;
/**
* 法律条款
*/
private String legalProvisions;
/**
* 首席仲裁
*/
private String umpire;
/**
* 仲裁员1
*/
private String arbitratorName1;
/**
* 仲裁员2
*/
private String arbitratorName2;
/**
* 年
*/
private String year;
/**
* 月
*/
private String months;
/**
* 日
*/
private String day;
/**
* 书记员
*/
private String clerk;
}
@@ -26,7 +26,7 @@ public class ArbitrateRecord extends BaseEntity {
/** 审核裁决书意见 */
private String checkOpinion;
/** 裁决书附件id */
private Long annexId;
private Integer annexId;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CaseAttach {
public class CaseAttach {
/**
* 附件id
*/
@@ -0,0 +1,37 @@
package com.ruoyi.wisdomarbitrate.domain.dto;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import lombok.Data;
import java.util.List;
/**
* 案件质证传入对象
*/
@Data
public class CaseEvidenceDTO {
/**
* 案件id
*/
private Long caseId;
/**
* 是否有异议需要举证,1是,0否
*/
private Integer objectionAddEviden;
/**
* 是否需要开庭审理,1是,0否
*/
private Integer openCourtHear;
/**
* 是否指派仲裁员,1是,2否
*/
private Integer pendingAppointArbotrar;
/**
* 案件仲裁员
*/
private List<Arbitrator> arbitrators;
}
@@ -2,7 +2,7 @@ package com.ruoyi.wisdomarbitrate.domain.dto;
import lombok.Data;
/**
* 案件缴费传入参数
* 案件缴费传入对象
*/
@Data
public class CasePayDTO {
@@ -0,0 +1,8 @@
package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
public interface IAdjudicationService {
AjaxResult createDocument(CaseApplication caseApplication);
}
@@ -1,10 +1,13 @@
package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
public interface ICaseArbitrateService {
AjaxResult chooseArbitrateMethod(CaseApplication caseApplication,Integer arbitratMethod);
AjaxResult writtenHear(CaseApplication caseApplication, String accidentDescription, String arbitrationResult);
AjaxResult writtenHear(ArbitrateRecord arbitrateRecord);
AjaxResult examineArbitrateMethod(CaseApplication caseApplication, Integer opinion);
}
@@ -3,6 +3,7 @@ package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import org.springframework.web.multipart.MultipartFile;
@@ -18,4 +19,5 @@ public interface ICaseEvidenceService {
AjaxResult evidenceConfirmation(CaseApplication caseApplication);
AjaxResult caseCrossexamination(CaseEvidenceDTO caseEvidenceDTO);
}
@@ -0,0 +1,150 @@
package com.ruoyi.wisdomarbitrate.service.impl;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.WordUtil;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.mapper.ArbitrateRecordMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseAffiliateMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.*;
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.time.format.DateTimeFormatter;
import java.util.*;
@Service
public class AdjudicationServiceImpl implements IAdjudicationService {
@Autowired
private CaseApplicationMapper caseApplicationMapper;
@Autowired
private CaseAffiliateMapper caseAffiliateMapper;
@Autowired
private ArbitrateRecordMapper arbitrateRecordMapper;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Override
public AjaxResult createDocument(CaseApplication caseApplication) {
try {
Map<String, Object> datas = new HashMap<>();
Adjudication adjudication = new Adjudication();
Long id = caseApplication.getId();
if (id == null){
return null;
}
//获取案件详细信息
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
//获取仲裁记录表里的相关信息
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("appSex", null);
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("resSex", null);
datas.put("resIDNo", affiliate.getIdentityNum());
datas.put("resAddress", affiliate.getContactAddress());
datas.put("resAgentName", affiliate.getNameAgent());
datas.put("resAgentIDNo",affiliate.getIdentityNumAgent());
}
}
}
String arbitratorName = caseApplication1.getArbitratorName();
datas.put("caseName",caseApplication1.getCaseName());
datas.put("arbitratorName",arbitratorName);
LocalDate localDate = caseApplication1.getHearDate()
.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
datas.put("hearYear", localDate.getYear());
datas.put("hearMonths", localDate.getMonthValue());
datas.put("hearDay", localDate.getDayOfMonth());
datas.put("appArbitrationClaims", null);
datas.put("appEvidenceName", null);
datas.put("appProveFacts", null);
datas.put("resDefenseContentToApp", null);
datas.put("resArbitrationClaims", null);
datas.put("resEvidenceName", null);
datas.put("resProveFacts", null);
datas.put("appDefenseContentToRes", null);
datas.put("evidenDetermi", arbitrateRecord1.getEvidenDetermi());
datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
datas.put("caseSketch", arbitrateRecord1.getCaseSketch());
datas.put("arbitrateThink", arbitrateRecord1.getArbitrateThink());
datas.put("legalProvisions", null);
datas.put("rulingFollows", arbitrateRecord1.getRulingFollows());
datas.put("umpire", null);
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();
datas.put("year", now.getYear());
datas.put("months", now.getMonthValue());
datas.put("day", now.getDayOfMonth());
datas.put("clerk", null);
String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx";
String currentDateStr = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String saveFolderPath = "/data/arbitrate-document/formal/" + currentDateStr;
// 创建日期目录
File saveFolder = new File(saveFolderPath);
if (!saveFolder.exists()) {
saveFolder.mkdirs();
}
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String resultFilePath = saveFolderPath+ fileName;
String docFilePath = WordUtil.getDocFilePath(datas, modalFilePath, resultFilePath);
//将裁决书保存到附件表里
CaseAttach caseAttach = CaseAttach.builder()
.caseAppliId(id)
.annexName(fileName)
.annexPath(docFilePath)
.annexType(3)
.build();
int i = caseAttachMapper.save(caseAttach);
if (i>0){
Integer annexId = caseAttach.getAnnexId();
//将附件id保存到仲裁记录表里面
arbitrateRecord1.setAnnexId(annexId);
arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord1);
}
return AjaxResult.success("裁决书保存路径为" + docFilePath);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
@@ -13,6 +13,7 @@ import org.springframework.stereotype.Component;
public class CallBackHandleServiceImpl implements CallBackService {
@Autowired
private CasePaymentServiceImpl casePaymentService;
@Override
public void successPay(String orderSn) {
casePaymentService.callback(orderSn);
@@ -3,9 +3,11 @@ package com.ruoyi.wisdomarbitrate.service.impl;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult;
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;
@@ -24,70 +26,79 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
private CaseAffiliateMapper caseAffiliateMapper;
@Autowired
private CaseLogRecordMapper caseLogRecordMapper;
@Autowired
private ArbitrateRecordMapper arbitrateRecordMapper;
@Override
@Transactional
public AjaxResult chooseArbitrateMethod(CaseApplication caseApplication, Integer arbitratMethod) {
if (arbitratMethod != null) {
String arbitratMethodStr = arbitratMethod == 1 ? "开庭审理" : "书面审理";
//查询案件详细信息
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
if (caseApplication1 == null) {
return AjaxResult.error();
public AjaxResult examineArbitrateMethod(CaseApplication caseApplication, Integer opinion) {
//查询案件详细信息
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
if (caseApplication1 == null) {
return AjaxResult.error();
}
int arbitratMethod = caseApplication1.getArbitratMethod();
String caseNum = caseApplication1.getCaseNum();
if (opinion==0){ //拒绝
if (arbitratMethod == 2){
caseApplication1.setArbitratMethod(1); // 更改仲裁方式
}else {
caseApplication1.setArbitratMethod(2);
}
String caseNum = caseApplication1.getCaseNum();
//选择仲裁方式
caseApplication.setArbitratMethod(arbitratMethod);
//修改案件状态为待开庭
caseApplication.setCaseStatus(CaseApplicationConstants.PENDING_OPENCOURT_HEAR);
int i = caseApplicationMapper.submitCaseApplication(caseApplication);
if (i > 0) {
//发送短信通知
SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
request.setTemplateId("1931000");
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(caseApplication1.getId());
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate); //获取案件关联人信息
if (caseAffiliates != null && caseAffiliates.size() > 0) {
for (CaseAffiliate affiliate : caseAffiliates) {
//获取身份类型
int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人
request.setPhone(affiliate.getContactTelphone());
// 这个值,要看你的模板中是否预留了占位符,如果没有则不需要设置
// 1931000 普通短信 确定仲裁方式通知 尊敬的{1}用户,您的{2}仲裁案件,仲裁方式已确定为{3},请知晓,如非本人操作,请忽略本短信。
String name = affiliate.getName();
request.setTemplateParamSet(new String[]{name, caseNum, arbitratMethodStr});
SmsUtils.sendSms(request);
} else { //被申请人
request.setPhone(affiliate.getContactTelphone());
// 模板id1928006 普通短信 案件应诉通知 尊敬的{1}用户,您的{2}案件{3}已成功受理,请点击https://phmapp.xayunmei.com选择是否应诉。
String name = affiliate.getName();
request.setTemplateParamSet(new String[]{name, caseNum, arbitratMethodStr});
SmsUtils.sendSms(request);
}
}
//修改案件状态为待开庭
caseApplication1.setCaseStatus(CaseApplicationConstants.PENDING_OPENCOURT_HEAR);
int i = caseApplicationMapper.submitCaseApplication(caseApplication1);
if (i > 0) {
String arbitratMethodStr = caseApplication1.getArbitratMethod() == 1 ? "开庭审理" : "书面审理";
//发送短信通知
SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
request.setTemplateId("1931000");
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(caseApplication1.getId());
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate); //获取案件关联人信息
if (caseAffiliates != null && caseAffiliates.size() > 0) {
for (CaseAffiliate affiliate : caseAffiliates) {
//获取身份类型
int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人
request.setPhone(affiliate.getContactTelphone());
// 这个值,要看你的模板中是否预留了占位符,如果没有则不需要设置
// 1931000 普通短信 确定仲裁方式通知 尊敬的{1}用户,您的{2}仲裁案件,仲裁方式已确定为{3},请知晓,如非本人操作,请忽略本短信。
String name = affiliate.getName();
request.setTemplateParamSet(new String[]{name, caseNum, arbitratMethodStr});
SmsUtils.sendSms(request);
} else { //被申请人
request.setPhone(affiliate.getContactTelphone());
// 模板id1928006 普通短信 案件应诉通知 尊敬的{1}用户,您的{2}案件{3}已成功受理,请点击https://phmapp.xayunmei.com选择是否应诉。
String name = affiliate.getName();
request.setTemplateParamSet(new String[]{name, caseNum, arbitratMethodStr});
SmsUtils.sendSms(request);
}
}
return AjaxResult.success("选择成功");
}
return AjaxResult.success("审核成功");
}
return AjaxResult.error("请选择开庭方式");
return AjaxResult.error();
}
@Override
public AjaxResult writtenHear(CaseApplication caseApplication, String accidentDescription, String arbitrationResult) {
//提交仲裁结果
public AjaxResult writtenHear(ArbitrateRecord arbitrateRecord) {
//查询案件详情
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(arbitrateRecord.getCaseAppliId());
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
caseApplication1.setCaseDescribe(accidentDescription); //案情描述
caseApplication1.setCaseResult(arbitrationResult); //仲裁结果
int i = caseApplicationMapper.updataCaseApplication(caseApplication1);
String createBy = caseApplication1.getCreateBy();
if (createBy!=null){
arbitrateRecord.setCreateBy(createBy);
}
//提交仲裁结果
int i = arbitrateRecordMapper.insertArbitrateRecord(arbitrateRecord);
if (i>0){
//案件日志表里添加数据
CaseLogRecord caseLogRecord = new CaseLogRecord();
caseLogRecord.setCaseAppliId(caseApplication1.getId());
caseLogRecord.setCaseNode(caseApplication1.getCaseStatus());
String createBy = caseApplication1.getCreateBy();
if (createBy!=null){
caseLogRecord.setCreateBy(createBy);
}
@@ -4,15 +4,11 @@ import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseDetailVO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import com.ruoyi.wisdomarbitrate.mapper.CaseAffiliateMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseApplicationMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
import com.ruoyi.wisdomarbitrate.mapper.CaseEvidenceMapper;
import com.ruoyi.wisdomarbitrate.mapper.*;
import com.ruoyi.wisdomarbitrate.service.ICaseEvidenceService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,12 +17,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
@@ -38,10 +31,12 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
private CaseApplicationMapper caseApplicationMapper;
@Autowired
private CaseAttachMapper caseAttachMapper;
@Autowired
private CaseLogRecordMapper caseLogRecordMapper;
@Override
@Transactional
public AjaxResult getCaseDetailsById(Long id,String userName) {
public AjaxResult getCaseDetailsById(Long id, String userName) {
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(id);
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
@@ -52,10 +47,12 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
caseAffiliate.setCaseAppliId(id);
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
for (CaseAffiliate affiliate : caseAffiliates) {
String name = affiliate.getName();
//判断当前登录人和案件关联人姓名是否一致
if (name.equals(userName)) { //一致,将案件关联人的身份类型赋给当前登录人
caseDetailVO.setIdentityType(affiliate.getIdentityType());
if (affiliate.getName() != null) {
String name = affiliate.getName();
//判断当前登录人和案件关联人姓名是否一致
if (name.equals(userName)) { //一致,将案件关联人的身份类型赋给当前登录人
caseDetailVO.setIdentityType(affiliate.getIdentityType());
}
}
if (affiliate.getIdentityType() == 1) { //申请人
caseDetailVO.setApplicantName(affiliate.getName());
@@ -64,13 +61,13 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
}
//根据案件id查询案件证据材料
List<CaseAttach> evidenceMaterialList = caseAttachMapper.queryAnnexPathByCaseId(id);
if (evidenceMaterialList!=null&&evidenceMaterialList.size()>0){
if (evidenceMaterialList != null && evidenceMaterialList.size() > 0) {
for (CaseAttach caseAttach : evidenceMaterialList) {
String path =caseAttach.getAnnexName();
String path = caseAttach.getAnnexName();
String prefix = "/profile";
int startIndex = path.indexOf(prefix);
startIndex += prefix.length();
String extractedPath = "/uploadPath"+path.substring(startIndex);
String extractedPath = "/uploadPath" + path.substring(startIndex);
caseAttach.setAnnexPath(extractedPath);
}
}
@@ -116,10 +113,9 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
}
@Override
public List<CaseEvidenceVO> getCaseListAll(String identityNum) {
List<Integer> caseStatusList = Arrays.asList(3, 4, 5, 9);
List<Integer> caseStatusList = Arrays.asList(CaseApplicationConstants.CASE_CROSSEXAMI);
return getCaseEvidenceVOList(identityNum, caseStatusList, null);
}
@@ -127,12 +123,57 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
public AjaxResult evidenceConfirmation(CaseApplication caseApplication) {
caseApplication.setCaseStatus(CaseApplicationConstants.PENDING_TRIAL);
int i = caseApplicationMapper.submitCaseApplication(caseApplication);
if (i>0){
if (i > 0) {
return AjaxResult.success("证据确认成功");
}
return AjaxResult.error("暂无需要确认的证据");
}
@Override
public AjaxResult caseCrossexamination(CaseEvidenceDTO caseEvidenceDTO) {
//查询案件详细信息
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(caseEvidenceDTO.getCaseId());
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
if (caseApplication1 != null) {
int caseStatus = caseApplication1.getCaseStatus();
caseApplication1.setObjectionAddEviden(caseEvidenceDTO.getObjectionAddEviden());
caseApplication1.setOpenCourtHear(caseEvidenceDTO.getOpenCourtHear());
caseApplication1.setPendingAppointArbotrar(caseEvidenceDTO.getPendingAppointArbotrar());
List<Arbitrator> arbitrators = caseEvidenceDTO.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());
String idstr = ids.stream().map(Object::toString).collect(Collectors.joining(","));
String arbitratorNamestr = arbitratorNames.stream().map(Object::toString).collect(Collectors.joining(","));
caseApplication1.setArbitratorId(idstr);
caseApplication1.setArbitratorName(arbitratorNamestr);
}
//修改案件状态
caseApplication1.setCaseStatus(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL_SUBMMIT);
//选择仲裁方式
if (caseEvidenceDTO.getOpenCourtHear()==1){ //开庭审理
caseApplication1.setArbitratMethod(1);
}else {
caseApplication1.setArbitratMethod(2); //书面审理
}
int i = caseApplicationMapper.submitCaseApplication(caseApplication1);
if (i > 0) {
//案件日志表里添加数据
CaseLogRecord caseLogRecord = new CaseLogRecord();
caseLogRecord.setCaseAppliId(caseApplication1.getId());
caseLogRecord.setCaseNode(caseStatus);
String createBy = caseApplication1.getCreateBy();
if (createBy != null) {
caseLogRecord.setCreateBy(createBy);
}
caseLogRecordMapper.insertCaseLogRecord(caseLogRecord);
return AjaxResult.success("提交成功");
}
}
return null;
}
private List<CaseEvidenceVO> getCaseEvidenceVOList(String identityNum, List<Integer> caseStatusList, Integer identityType) {
List<CaseEvidenceVO> caseListByRespondent = caseEvidenceMapper.getCaseListByRespondent(identityNum, caseStatusList, identityType);
if (caseListByRespondent != null && caseListByRespondent.size() > 0) {
@@ -13,7 +13,7 @@
<result property="userId" column="use_id" />
<result property="userName" column="use_account" />
</resultMap>
<insert id="save">
<insert id="save" useGeneratedKeys="true" keyProperty="annexId">
INSERT INTO case_attach (case_appli_id, annex_name, annex_path , annex_type,note,use_id,use_account)
VALUES (#{caseAppliId}, #{annexName}, #{annexPath},#{annexType},#{note},#{userId},#{userName})
</insert>