Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev

This commit was merged in pull request #111.
This commit is contained in:
2023-10-17 16:08:54 +08:00
committed by Gitea
3 changed files with 198 additions and 51 deletions
@@ -4,16 +4,14 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.wisdomarbitrate.mapper.*;
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.EmailOutUtil;
import com.ruoyi.common.utils.WordUtil;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.vo.ArchivesDetailVO;
import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO;
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 com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
import com.ruoyi.wisdomarbitrate.service.ICaseLogRecordService;
@@ -31,6 +29,7 @@ import java.net.URLEncoder;
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.*;
@@ -54,6 +53,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
private ICaseApplicationService caseApplicationService;
@Autowired
private ICaseLogRecordService caseLogRecordService;
@Autowired
private CasePaymentRecordMapper casePaymentRecordMapper;
@Autowired
private RedisCache redisCache;
@Override
@Transactional
@@ -66,11 +69,13 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
}
//获取案件详细信息
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
//生成编码
String equipmentNo = getNewEquipmentNo();
datas.put("num",equipmentNo);
//获取仲裁记录表里的相关信息
ArbitrateRecord arbitrateRecord = new ArbitrateRecord();
arbitrateRecord.setCaseAppliId(id);
ArbitrateRecord arbitrateRecord1 = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecord);
//获取案件关联人信息
CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(id);
@@ -81,55 +86,178 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人
datas.put("appName", affiliate.getName());
datas.put("appIDNo", affiliate.getIdentityNum());
datas.put("appAddress", affiliate.getContactAddress());
datas.put("appContactAddress", null);
datas.put("appLegalPerson", null);
datas.put("appLegalPersonTitle", null);
datas.put("appAgentName", affiliate.getNameAgent());
datas.put("appAgentIDNo", affiliate.getIdentityNumAgent());
datas.put("appAgentTitle", null);
} 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());
datas.put("resSex", null);
datas.put("resDateOfBirth", null);
datas.put("resContactAddress", null);
}
}
}
String arbitratorName = caseApplication1.getArbitratorName();
datas.put("caseName", caseApplication1.getCaseName());
datas.put("arbitratorName", arbitratorName);
Date hearDate = caseApplication1.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);
Date createTime = caseApplication1.getCreateTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将日期格式化为字符串
String createTimeStr = sdf.format(createTime);
datas.put("submissionDate", createTimeStr);
datas.put("qutsider", null);
datas.put("signingDate", null);
datas.put("agreementNumber", null);
CasePaymentRecord casePaymentRecord = casePaymentRecordMapper.selectRecordByCaseId(id);
//受理时间取得是支付时间
if (casePaymentRecord != null) {
Date paymentTime = casePaymentRecord.getPaymentTime();
String paymentTimeStr = sdf.format(paymentTime);
datas.put("acceptDate",paymentTimeStr);
}
datas.put("appArbitrationClaims", caseApplication1.getArbitratClaims());
//反请求
Integer adjudicaCounter = caseApplication1.getAdjudicaCounter();
String counterclaim = "在《2022年版仲裁规则》第十八条第(一)项规定的期限内,被申请人向秘书处提交了" +
"《仲裁反请求申请书》及证据材料。仲裁委依据《2022年版仲裁规则》第十八条的规定受理了该仲裁反请求案申请。" +
"仲裁反请求案件受理后,秘书处向被申请人发送了仲裁反请求通知书及附件,向申请人发送了仲裁反请求通知书及附件、仲裁反请求申请书及附件。";
if (adjudicaCounter == null){
datas.put("counterclaim", null);
}else if (adjudicaCounter == 1){
datas.put("counterclaim", counterclaim);
} else {
datas.put("counterclaim", null);
}
//财产保全
Integer properPreser = caseApplication1.getProperPreser();
String preservation = "本案受理后,申请人向仲裁委提交了财产保全申请,仲裁委根据《中华人民共和国仲裁法》" +
"第二十八条之规定,将该申请提交至XXX市XXX区法院。";
if (properPreser == null) {
datas.put("preservation", null);
} else if(properPreser == 1) {
datas.put("preservation", preservation);
} else {
datas.put("preservation", null);
}
//管辖权异议
Integer objectiJuris = caseApplication1.getObjectiJuris();
String jurisdictionalObjection = "本案受理后,被申请人向仲裁委提交了《XX管辖异议申请书》,认为XXXXXX" +
",仲裁委经审理,当庭驳回了被申请人的管辖异议申请,并告知被申请人具体的事实和理由将在裁决书中一并列明。";
if (objectiJuris == null){
datas.put("jurisdictionalObjection", null);
}
else if (objectiJuris == 1) {
datas.put("jurisdictionalObjection", jurisdictionalObjection);
} else {
datas.put("jurisdictionalObjection", null);
}
String arbitratorName = caseApplication1.getArbitratorName();
datas.put("arbitratorName", arbitratorName);
Integer arbitratMethod = caseApplication1.getArbitratMethod();
Date hearDate = caseApplication1.getHearDate();
String hearDateStr = sdf.format(hearDate);
//线上开庭时
if (arbitratMethod == 1) {
String onLine1 = "仲裁庭审阅了申请人提交的仲裁申请书、证据材料后,于";
String onLine2 = "通过仲裁委智慧仲裁平台开庭审理了本案。";
datas.put("onLine1", onLine1);
datas.put("hearDate", hearDateStr);
datas.put("onLine2", onLine2);
} else {
//书面仲裁时
String written1 = "仲裁庭审阅了申请人提交的仲裁申请书、证据材料后,于";
String written2 = "在仲裁委所在地开庭审理了本案。";
datas.put("written1", written1);
datas.put("hearDate1", hearDateStr);
datas.put("written2", written2);
}
Integer isAbsence = caseApplication1.getIsAbsence();
if (isAbsence==null){
datas.put("onLine1", null);
datas.put("absent2", null);
datas.put("absent3", null);
datas.put("absent4", null);
datas.put("absent5", null);
datas.put("attend1", null);
datas.put("attend2", null);
datas.put("attend3", null);
datas.put("attend4", null);
datas.put("attend5", null);
datas.put("attend6", null);
datas.put("attend7", null);
datas.put("responCrossOpin", null);
}
else if (isAbsence == 1) {
//缺席审理
String absent1 = "申请人的特别授权委托代理人";
String absent2 = "出席了庭审。被申请人经依法送达开庭通知,无正当理由未出席庭审,故仲裁庭依据" +
"《2022年版仲裁规则》第四十条第(二)项的规定,对本案进行了缺席审理。";
String absent3 = "庭审中,申请人陈述了仲裁请求事项及事实与理由,出示了证据材料并进行了说明," +
"发表了意见,回答了仲裁庭的提问,并作了最后陈述。因被申请人缺席庭审,故仲裁庭无法组织调解。";
String absent4 = "(二/三)当事人提供的证据材料\n" +
"申请人为证明其主张的事实和理由,向仲裁庭提交了如下证据材料:";
String absent5 = "综上,仲裁庭依据《上海仲裁委员会仲裁规则》(2022年7月1日起施行的版本)" +
"第四十条第(二)项、第五十一条的规定,缺席裁决如下:";
datas.put("onLine1", absent1);
datas.put("absent2", absent2);
datas.put("absent3", absent3);
datas.put("absent4", absent4);
datas.put("absent5", absent5);
} else {
//出席审理
String attend1 = "申请人的特别授权委托代理人";
String attend2 = "和被申请人本人/的特别授权委托代理人";
String attend3 = "出席了庭审。";
String attend4 = "庭审中,申请人陈述了仲裁请求事项及所依据的事实与理由,被申请人进行了答辩;" +
"双方当事人均出示了证据材料并对对方的证据材料进行了质证;申请人出示了证据材料," +
"被申请人对对方的证据材料进行了质证;双方当事人均回答了仲裁庭的提问,进行了辩论," +
"并分别作了最后陈述。双方当事人在仲裁庭的主持下进行了调解,但未能达成调解协议。";
String attend5 = "(二)被申请人的答辩意见";
String attend6 = "(二/三)当事人提供的证据材料及对方的质证意见\n" +
"申请人为证明其主张的事实和理由,向仲裁庭提交了如下证据材料:";
String attend7 = "被申请人对上述材料的质证意见为:";
datas.put("attend1", attend1);
datas.put("attend2", attend2);
datas.put("attend3", attend3);
datas.put("attend4", attend4);
datas.put("attend5", attend5);
datas.put("attend6", attend6);
datas.put("attend7", attend7);
datas.put("responCrossOpin", caseApplication1.getResponCrossOpin());
if (arbitratMethod == 1) {
//被申出席+开庭
String attend8 = "综上,仲裁庭依据《上海仲裁委员会仲裁规则》(2022年7月1日起施行的版本)" +
"第五十一条的规定,裁决如下:";
datas.put("attend8", attend8);
} else {
//被申出席+书面
String attend9 = "综上,仲裁庭依据《上海仲裁委员会仲裁规则》(2022年7月1日起施行的版本)" +
"第五十一条、第五十八条的规定,裁决如下:";
datas.put("attend9", attend9);
}
}
datas.put("claims", caseApplication1.getArbitratClaims());
datas.put("request", caseApplication1.getRequestRule());
//申请人证据材料
datas.put("appEvidenceMaterial", null);
//被申请人证据材料
datas.put("resEvidenceMaterial", null);
datas.put("applicaCrossOpin", caseApplication1.getApplicaCrossOpin());
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());
datas.put("year", year);
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 modalFilePath = "/data/arbitrate-document/template/新裁决书模板.docx";
//String modalFilePath = "D:/develop/新裁决书模板.docx";
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
// String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
//String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day;
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String resultFilePath = saveFolderPath + "/" + fileName;
@@ -424,22 +552,29 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
}
return AjaxResult.success(archivesDetailVO);
}
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);//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);
// }
} catch (MailSendException e) {
e.printStackTrace();
public String getNewEquipmentNo() {
Object awardNum = redisCache.getCacheObject("awardNum");
if (awardNum == null) {
redisCache.setCacheObject("awardNum", "00001");
String s = redisCache.getCacheObject("awardNum").toString();
// 字符串数字解析为整数
int no = Integer.parseInt(s);
// 最新设备编号自增1
int newEquipment = ++no;
// 将整数格式化为5位数字
s = String.format("%05d", newEquipment);
redisCache.setCacheObject("awardNum", s);
return s;
} else {
String s = awardNum.toString();
// 字符串数字解析为整数
int no = Integer.parseInt(s);
// 最新设备编号自增1
int newEquipment = ++no;
// 将整数格式化为5位数字
s = String.format("%05d", newEquipment);
redisCache.setCacheObject("awardNum", s);
return s;
}
}
}