合并 #111

Merged
hejinbo merged 4 commits from hjb into dev 2023-10-17 08:08:54 +00:00
3 changed files with 198 additions and 51 deletions
@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.BookSendVO; import com.ruoyi.wisdomarbitrate.domain.vo.BookSendVO;
import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO; import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO;
@@ -19,6 +20,7 @@ public class AdjudicationController extends BaseController {
@Autowired @Autowired
private IAdjudicationService adjudicationService; private IAdjudicationService adjudicationService;
/** /**
* 生成裁决书 * 生成裁决书
* @param caseApplication * @param caseApplication
@@ -103,4 +105,5 @@ public class AdjudicationController extends BaseController {
public AjaxResult getArchivesDetail(Long id){ public AjaxResult getArchivesDetail(Long id){
return adjudicationService.getArchivesDetail(id); return adjudicationService.getArchivesDetail(id);
} }
} }
@@ -4,16 +4,14 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.CaseApplicationConstants; import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult; 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.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.EmailOutUtil; import com.ruoyi.common.utils.EmailOutUtil;
import com.ruoyi.common.utils.WordUtil; import com.ruoyi.common.utils.WordUtil;
import com.ruoyi.wisdomarbitrate.domain.*; import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.vo.ArchivesDetailVO; import com.ruoyi.wisdomarbitrate.domain.vo.ArchivesDetailVO;
import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO; 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.IAdjudicationService;
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService; import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
import com.ruoyi.wisdomarbitrate.service.ICaseLogRecordService; import com.ruoyi.wisdomarbitrate.service.ICaseLogRecordService;
@@ -31,6 +29,7 @@ import java.net.URLEncoder;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.*; import java.util.*;
@@ -54,6 +53,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
private ICaseApplicationService caseApplicationService; private ICaseApplicationService caseApplicationService;
@Autowired @Autowired
private ICaseLogRecordService caseLogRecordService; private ICaseLogRecordService caseLogRecordService;
@Autowired
private CasePaymentRecordMapper casePaymentRecordMapper;
@Autowired
private RedisCache redisCache;
@Override @Override
@Transactional @Transactional
@@ -66,11 +69,13 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
} }
//获取案件详细信息 //获取案件详细信息
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication); CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
//生成编码
String equipmentNo = getNewEquipmentNo();
datas.put("num",equipmentNo);
//获取仲裁记录表里的相关信息 //获取仲裁记录表里的相关信息
ArbitrateRecord arbitrateRecord = new ArbitrateRecord(); ArbitrateRecord arbitrateRecord = new ArbitrateRecord();
arbitrateRecord.setCaseAppliId(id); arbitrateRecord.setCaseAppliId(id);
ArbitrateRecord arbitrateRecord1 = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecord); ArbitrateRecord arbitrateRecord1 = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecord);
//获取案件关联人信息 //获取案件关联人信息
CaseAffiliate caseAffiliate = new CaseAffiliate(); CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(id); caseAffiliate.setCaseAppliId(id);
@@ -81,55 +86,178 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
int identityType = affiliate.getIdentityType(); int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人 if (identityType == 1) { //申请人
datas.put("appName", affiliate.getName()); datas.put("appName", affiliate.getName());
datas.put("appIDNo", affiliate.getIdentityNum());
datas.put("appAddress", affiliate.getContactAddress()); datas.put("appAddress", affiliate.getContactAddress());
datas.put("appContactAddress", null);
datas.put("appLegalPerson", null);
datas.put("appLegalPersonTitle", null);
datas.put("appAgentName", affiliate.getNameAgent()); datas.put("appAgentName", affiliate.getNameAgent());
datas.put("appAgentIDNo", affiliate.getIdentityNumAgent()); datas.put("appAgentTitle", null);
} else if (identityType == 2) { //被申请人 } else if (identityType == 2) { //被申请人
datas.put("resName", affiliate.getName()); datas.put("resName", affiliate.getName());
datas.put("resIDNo", affiliate.getIdentityNum());
datas.put("resAddress", affiliate.getContactAddress()); datas.put("resAddress", affiliate.getContactAddress());
datas.put("resAgentName", affiliate.getNameAgent()); datas.put("resSex", null);
datas.put("resAgentIDNo", affiliate.getIdentityNumAgent()); datas.put("resDateOfBirth", null);
datas.put("resContactAddress", null);
} }
} }
} }
String arbitratorName = caseApplication1.getArbitratorName(); Date createTime = caseApplication1.getCreateTime();
datas.put("caseName", caseApplication1.getCaseName()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
datas.put("arbitratorName", arbitratorName); // 将日期格式化为字符串
Date hearDate = caseApplication1.getHearDate(); String createTimeStr = sdf.format(createTime);
if (hearDate != null) { datas.put("submissionDate", createTimeStr);
LocalDate localDate = hearDate.toInstant() datas.put("qutsider", null);
.atZone(ZoneId.systemDefault()) datas.put("signingDate", null);
.toLocalDate(); datas.put("agreementNumber", null);
datas.put("hearYear", localDate.getYear()); CasePaymentRecord casePaymentRecord = casePaymentRecordMapper.selectRecordByCaseId(id);
datas.put("hearMonths", localDate.getMonthValue()); //受理时间取得是支付时间
datas.put("hearDay", localDate.getDayOfMonth()); if (casePaymentRecord != null) {
} else { Date paymentTime = casePaymentRecord.getPaymentTime();
datas.put("hearYear", null); String paymentTimeStr = sdf.format(paymentTime);
datas.put("hearMonths", null); datas.put("acceptDate",paymentTimeStr);
datas.put("hearDay", null);
} }
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) { if (arbitrateRecord1 != null) {
datas.put("evidenDetermi", arbitrateRecord1.getEvidenDetermi());
datas.put("factDetermi", arbitrateRecord1.getFactDetermi()); datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
datas.put("caseSketch", arbitrateRecord1.getCaseSketch());
datas.put("arbitrateThink", arbitrateRecord1.getArbitrateThink()); datas.put("arbitrateThink", arbitrateRecord1.getArbitrateThink());
datas.put("rulingFollows", arbitrateRecord1.getRulingFollows()); datas.put("rulingFollows", arbitrateRecord1.getRulingFollows());
} }
datas.put("legalProvisions", "仲裁法");
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
String year = Integer.toString(now.getYear()); String year = Integer.toString(now.getYear());
datas.put("year", year);
String month = String.format("%02d", now.getMonthValue()); String month = String.format("%02d", now.getMonthValue());
String day = String.format("%02d", now.getDayOfMonth()); String day = String.format("%02d", now.getDayOfMonth());
datas.put("year", year); String modalFilePath = "/data/arbitrate-document/template/新裁决书模板.docx";
datas.put("months", month); //String modalFilePath = "D:/develop/新裁决书模板.docx";
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 = "/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 fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName; String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String resultFilePath = saveFolderPath + "/" + fileName; String resultFilePath = saveFolderPath + "/" + fileName;
@@ -424,22 +552,29 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
} }
return AjaxResult.success(archivesDetailVO); return AjaxResult.success(archivesDetailVO);
} }
public String getNewEquipmentNo() {
public static void main(String[] args) { Object awardNum = redisCache.getCacheObject("awardNum");
try { if (awardNum == null) {
// List<File> fileList = new ArrayList<>(); redisCache.setCacheObject("awardNum", "00001");
// fileList.add(new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\b442880179844a848f1f8b08c29e3d0c.docx")); String s = redisCache.getCacheObject("awardNum").toString();
// File file = fileList.get(0);//System.out.println("这是文件"+file); // 字符串数字解析为整数
//电子邮件送达 int no = Integer.parseInt(s);
// EmailOutUtil emailOutUtil = new EmailOutUtil(); // 最新设备编号自增1
// JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender(); int newEquipment = ++no;
// if (javaMailSender != null) { // 将整数格式化为5位数字
// emailOutUtil.sendMessageCarryFile("1154956315@qq.com", "案件裁决书", "您的裁决书已送达,详情请查阅附件", file s = String.format("%05d", newEquipment);
// , "hjbjava@163.com", javaMailSender); redisCache.setCacheObject("awardNum", s);
// } return s;
} catch (MailSendException e) { } else {
e.printStackTrace(); 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;
} }
} }
} }
@@ -38,4 +38,13 @@
</if> </if>
</where> </where>
</select> </select>
<select id="selectRecordByCaseId" resultType="com.ruoyi.wisdomarbitrate.domain.CasePaymentRecord" resultMap="CasePaymentRecordResult">
select c.id ,c.case_id ,c.order_number ,c.payment_time ,c.create_time ,c.update_time ,c.payment_status
from case_payment_record c
<where>
<if test="id != null ">
AND c.case_id = #{id}
</if>
</where>
</select>
</mapper> </mapper>