BUG修复

This commit is contained in:
18792927508
2024-02-21 16:16:22 +08:00
parent 657df6d9a5
commit 0d246d5917
7 changed files with 157 additions and 56 deletions
@@ -278,12 +278,25 @@ public class MsCaseApplicationController extends BaseController {
*/
@PostMapping("/mediation")
public AjaxResult mediation(@RequestBody MsCaseApplicationReq req) throws EsignDemoException, InterruptedException {
if (req.getCaseFlowId() == null || req.getId() == null) {
if (req.getCaseFlowId() == null || req.getId() == null || req.getMediaResult()==null) {
return error("参数校验失败");
}
return caseApplicationService.mediation(req);
}
/**
* 确定会议结果
* @param
* @return
*/
@PostMapping("/confirmMeetingResult")
public AjaxResult confirmMeetingResult(@RequestBody MsCaseApplicationReq req) {
if (req.getCaseFlowId() == null || req.getId() == null || req.getMediaResult()==null) {
return error("参数校验失败");
}
return caseApplicationService.confirmMeetingResult(req);
}
/**
* 修改庭审笔录
* @param
@@ -10,9 +10,10 @@ import com.ruoyi.common.interfaces.EnumsInterface;
* @Created wangqiong
*/
public enum TemplateTypeEnum implements EnumsInterface {
MEDIATION_APPLICATION(1, "调解申请书模板"),
MEDIATION_APPLICATION(1, "机构调解申请书模板"),
MEDIATION_AGREEMENT(2, "和解协议模板"),
MEDIATE_BOOK(3, "调解书模板"),
PERSON_MEDIATION_APPLICATION(4, "自然人调解申请书模板"),
@@ -42,6 +42,10 @@ public interface MsCaseApplicationMapper extends Mapper<MsCaseApplication> {
"c.hear_date hearDate,c.case_status_name caseStatusName,c.create_time createTime from ms_case_application c " +
"join ms_case_affiliate a on c.id=a.case_appli_id <where> "
+
"<if test=\"req.mediatorId != null \">" +
" AND c.mediator_id = #{req.mediatorId} " +
"</if> "
+
"<if test='req.applicantFlag != null and req.applicationOrganIds != null and req.applicationOrganIds.size() > 0 '> and a.application_id in" +
"<foreach item='organId' index='index' collection='req.applicationOrganIds' open='(' separator=',' close=')'>" +
"#{organId}" +
@@ -87,8 +91,12 @@ public interface MsCaseApplicationMapper extends Mapper<MsCaseApplication> {
"join ms_case_affiliate a on c.id=a.case_appli_id <where> r.create_by=#{req.userName} and c.id not in (" +
"select c1.id from ms_case_application c1 JOIN ms_case_affiliate a1 ON a1.case_appli_id = c1.id"
+
"<if test=\"req.mediatorId != null \">" +
" AND c1.mediator_id = #{req.mediatorId} " +
"</if> "
+
"<if test=\"req.mediationMethod != null \">" +
" AND c.mediation_method = #{req.mediationMethod} " +
" AND c1.mediation_method = #{req.mediationMethod} " +
"</if> "
+
@@ -641,6 +641,7 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService {
ajax.put("temName",list.get(0).getTemName());
// 调节申请书
ajax.put("applicationFile",manageMap.get(TemplateTypeEnum.MEDIATION_APPLICATION.getCode()));
ajax.put("personApplicationFile",manageMap.get(TemplateTypeEnum.PERSON_MEDIATION_APPLICATION.getCode()));
// 和解协议
ajax.put("agreementFile",manageMap.get(TemplateTypeEnum.MEDIATION_AGREEMENT.getCode()));
// 调解书
@@ -166,6 +166,12 @@ public interface MsCaseApplicationService {
* @return
*/
AjaxResult mediation(MsCaseApplicationReq req) throws EsignDemoException, InterruptedException;
/**
* 确定会议结果
* @param req
* @return
*/
AjaxResult confirmMeetingResult(MsCaseApplicationReq req);
/**
* 修改庭审笔录
@@ -227,4 +233,6 @@ public interface MsCaseApplicationService {
* @return
*/
List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
}
@@ -168,6 +168,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
throw new ServiceException("该用户未指定角色");
}
req.setUserName(SecurityUtils.getUsername());
// 根据角色查询关联的案件状态
Example example = new Example(MsCaseFlowRoleRelated.class);
example.createCriteria().andIn("roleid", roles.stream().map(SysRole::getRoleId).collect(Collectors.toList()));
@@ -207,6 +208,10 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
req.setRespondentIdentityNum(sysUser.getIdCard());
break;
}
if(StrUtil.equals(role.getRoleName(),"调解员")) {
req.setMediatorId(String.valueOf(sysUser.getUserId()));
break;
}
}
}
if(req.getMediationMethod()!=null){
@@ -333,7 +338,13 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
req.setBatchNumber(caseApplication.getBatchNumber());
}
// 生成调解申请书
req.setTemplateType(TemplateTypeEnum.MEDIATION_APPLICATION.getCode());
if(affiliate.getOrganizeFlag()==0){
// 自然人
req.setTemplateType(TemplateTypeEnum.PERSON_MEDIATION_APPLICATION.getCode());
}else {
// 机构
req.setTemplateType(TemplateTypeEnum.MEDIATION_APPLICATION.getCode());
}
req.setTemplateId(String.valueOf(templateId));
caseApplicationService.generateApplication(req);
@@ -892,25 +903,10 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
application.setUpdateTime(new Date());
application.setBatchNumber(null);
msCaseApplicationMapper.updateByPrimaryKeySelective(application);
// MsCaseFlow caseFlow = caseApplicationService.nextFlow(application.getId(), req.getCaseFlowId(),req.getLockStatus());
// 给申请人被申请人发送短信
MsCaseFlow caseFlow = caseApplicationService.nextFlow(application.getId(), req.getCaseFlowId(),req.getLockStatus());
// 给被申请人发送短信
if (affiliateMap.containsKey(application.getId())) {
MsCaseAffiliate affiliate = affiliateMap.get(application.getId());
// if (StrUtil.isNotEmpty(affiliate.getContactTelphoneAgent())||StrUtil.isNotEmpty(affiliate.getApplicationPhone())) {
// String sendContent = "尊敬的" + affiliate.getNameAgent() + "用户,您的" + application.getCaseNum() + "案件,已成功受理,请知晓,如非本人操作,请忽略本短信";
// // 给申请人发送案件受理短信 尊敬的{1}用户,您的{2}仲裁案件,已成功受理,请知晓,如非本人操作,请忽略本短信
// Boolean smsFlag = SmsUtils.sendSms(application.getId(), "2073601", affiliate.getContactTelphoneAgent(), new String[]{affiliate.getNameAgent(), application.getCaseNum()});
// // CaseLogUtils.insertCaseLog(application.getId(), caseFlow.getNodeId(), caseFlow.getNodeName(), "向申请人发送短信," + sendContent);
// SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), affiliate.getContactTelphoneAgent(), new Date(), sendContent);
// if (smsFlag) {
// // 发送成功
// smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode());
// } else {
// smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode());
// }
// smsRecordMapper.saveSmsSendRecord(smsSendRecord);
// }
// 被申请人发送短信
if (StrUtil.isNotEmpty(affiliate.getRespondentPhone())) {
String sendContent = "尊敬的用户,您的" + application.getCaseNum() + "的案件已成功提交,请登录调解系统进行缴费处理。请知晓,如非本人操作,请忽略本短信";
@@ -1072,7 +1068,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
}
// Integer miniProgressFlag = vo.getMiniProgressFlag() == null ? MediatorTypeEnum.PC.getCode() : vo.getMiniProgressFlag();
// 预约,申请人预约为Null,否则为被申请人预约
Integer miniProgressFlag=null;
Integer miniProgressFlag=YesOrNoEnum.NO.getCode();
List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
if(CollectionUtil.isNotEmpty(roles)){
for (SysRole role : roles) {
@@ -1081,7 +1077,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
}
}
}
vo.setMiniProgressFlag(miniProgressFlag);
// 先删除已选择的调解员,在新增
Example mediatorExample = new Example(MsCaseMediator.class);
Example.Criteria mediatorCriteria = mediatorExample.createCriteria();
@@ -1103,7 +1099,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
}
// 申请人预约
if (vo.getMiniProgressFlag() == null) {
if (vo.getMiniProgressFlag() == null || vo.getMiniProgressFlag().equals( YesOrNoEnum.NO.getCode())) {
// 新增日志
CaseLogUtils.insertCaseLog(vo.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(), "申请人选择调解员");
@@ -1142,11 +1138,10 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
Map<Long, SysUser> userMap = mediatorUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
Example example = new Example(MsCaseMediator.class);
Example.Criteria criteria = example.createCriteria();
if(vo.getMiniProgressFlag() == null) {
if(vo.getMiniProgressFlag() == null || vo.getMiniProgressFlag().equals( YesOrNoEnum.NO.getCode())) {
// 申请人预约,需要查询被申请人是否预约,identity_type不为空
criteria.andEqualTo("type", MediatorTypeEnum.MI_NI_PROGRESS.getCode());
}else {
// todo PC端被申请人选择调解员时,未存到预约表,导致节点状态未改变
// 被申请人预约,需要查询申请人是否预约,identity_type为空
criteria.andEqualTo("type", MediatorTypeEnum.PC.getCode());
}
@@ -1202,12 +1197,12 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
application.setLockStatus(null);
msCaseApplicationMapper.updateByPrimaryKeySelective(application);
// 新增日志
if(vo.getMiniProgressFlag() == null) {
CaseLogUtils.insertCaseLog(vo.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), "申请人选择调解员");
}else {
CaseLogUtils.insertCaseLog(vo.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), "被申请人选择调解员");
}
// if(vo.getMiniProgressFlag() == null || vo.getMiniProgressFlag().equals( YesOrNoEnum.NO.getCode())) {
// CaseLogUtils.insertCaseLog(vo.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), "申请人选择调解员");
// }else {
// CaseLogUtils.insertCaseLog(vo.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), "被申请人选择调解员");
//
// }
}
}
@@ -1259,12 +1254,63 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
application.setCaseFlowId(nextFlow.getNodeId());
application.setCaseStatusName(nextFlow.getCaseStatusName());
msCaseApplicationMapper.updateByPrimaryKeySelective(application);
// todo 发送短信
// 根据案件id查询案件
MsCaseApplication caseApplication = msCaseApplicationMapper.selectByPrimaryKey(application.getId());
MsCaseAffiliate affiliate = msCaseAffiliateMapper.selectByPrimaryKey(application.getId());
if(caseApplication==null || affiliate==null){
throw new ServiceException("未找到该案件");
}
// 申请人电话
String phone="";
if(affiliate.getOrganizeFlag().equals(0)){
// 自然人
if(StrUtil.isNotEmpty(affiliate.getContactTelphoneAgent())){
phone=affiliate.getContactTelphoneAgent();
}else {
phone=affiliate.getApplicationPhone();
}
}else {
phone=affiliate.getContactTelphoneAgent();
}
// 申请人发送开庭日期短信
sendHearDateSms(application,phone);
// 被申发送开庭日期短信
sendHearDateSms(application,affiliate.getRespondentPhone());
// 调解员发送短信
// 根据调解员id查询用户
if(application.getMediatorId()!=null) {
SysUser sysUser = sysUserMapper.selectUserById(application.getMediatorId());
sendHearDateSms(application, sysUser.getPhonenumber());
}
// 新增日志
CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), "");
}
/**
* 发送开庭日期短信
* @param application
* @param phone
*/
private void sendHearDateSms(MsCaseApplication application, String phone) {
if(StrUtil.isEmpty(phone)){
return;
}
// 2075447 尊敬的用户,您的{1}案件,线上调解日期已确定为{2},请知晓,如非本人操作,请忽略本短信。
Boolean smsFlag = SmsUtils.sendSms(application.getId(), "2075447", phone, new String[]{application.getCaseNum(),application.getHearDate()});
String sendContent = "尊敬的用户,您的" + application.getCaseNum() + "的案件,线上调解日期已确定为"+application.getHearDate()+",请知晓,如非本人操作,请忽略本短信。";
// 新增短信记录
SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), phone, new Date(), sendContent);
if(smsFlag){
smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode());
}else {
smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode());
}
smsRecordMapper.saveSmsSendRecord(smsSendRecord);
}
/**
* 案件不予受理
* @param caseId
@@ -1389,19 +1435,19 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(req.getId());
if (application.getMediationMethod().equals("1")) {
// 线上调解
List<MsCaseAttach> attachList = req.getAttachList();
if(CollectionUtil.isNotEmpty(attachList)) {
// 先删除已经存在的调解书
msCaseAttachMapper.deleteCaseAttachByCasedIdAndType(req.getId(), AnnexTypeEnum.MEDIATE_BOOK.getCode());
for (MsCaseAttach attach : attachList) {
attach.setCaseAppliId(req.getId());
}
msCaseAttachMapper.batchSave(attachList);
}
Integer mediaResult = req.getMediaResult();
if(mediaResult!=null){
if(mediaResult.intValue()==1){
//达成调解
if (application.getTemplateId() == null) {
return AjaxResult.error("未找到模板");
}
String templateId = String.valueOf(application.getTemplateId());
req.setTemplateId(templateId);
req.setTemplateType(TemplateTypeEnum.MEDIATE_BOOK.getCode());
AjaxResult result = generateApplication(req);
if (result != null && result.isSuccess()) {
List<MsCaseAttach> caseAttachList = msCaseAttachMapper.queryAnnexPathByCaseId(req.getId());
if (caseAttachList != null && caseAttachList.size() > 0) {
for (MsCaseAttach caseAttach : caseAttachList) {
@@ -1690,7 +1736,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
}
}
}
}
return AjaxResult.success();
}else if(mediaResult.intValue()==2){
//未达成调解
@@ -1764,15 +1810,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
.body(paramsbody)
.execute();
}else if(mediaResult.intValue()==5){
//达成和解
if (application.getTemplateId() == null) {
return AjaxResult.error("未找到模板");
}
String templateId = String.valueOf(application.getTemplateId());
req.setTemplateId(templateId);
req.setTemplateType(TemplateTypeEnum.MEDIATION_AGREEMENT.getCode());
AjaxResult result = generateApplication(req);
if (result != null && result.isSuccess()) {
// 达成和解
List<MsCaseAttach> caseAttachList = msCaseAttachMapper.queryAnnexPathByCaseId(req.getId());
if (caseAttachList != null && caseAttachList.size() > 0) {
for (MsCaseAttach caseAttach : caseAttachList) {
@@ -1984,7 +2022,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
}
}
}
}
}
}
@@ -1994,6 +2031,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
if(CollectionUtil.isEmpty(attachList)){
return AjaxResult.error("请上传调解资料");
}
// 先删除已经存在的调解书
msCaseAttachMapper.deleteCaseAttachByCasedIdAndType(req.getId(),AnnexTypeEnum.MEDIATE_BOOK.getCode());
for (MsCaseAttach attach : attachList) {
attach.setCaseAppliId(req.getId());
}
@@ -2016,6 +2055,38 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
return AjaxResult.error();
}
/**
* 确定会议结果
* @param req
* @return
*/
@Override
public AjaxResult confirmMeetingResult(MsCaseApplicationReq req) {
// 查询案件是否存在
MsCaseApplication application = msCaseApplicationMapper.selectByPrimaryKey(req.getId());
if (application == null) {
return AjaxResult.error("未找到案件");
}
if (application.getTemplateId() == null) {
return AjaxResult.error("未找到模板");
}
String templateId = String.valueOf(application.getTemplateId());
req.setTemplateId(templateId);
// 调解结果
Integer mediaResult = req.getMediaResult();
if(mediaResult==1){
// 达成调解,生成调解协议
req.setTemplateType(TemplateTypeEnum.MEDIATE_BOOK.getCode());
}else if(mediaResult==5){
// 达成和解,生成和解协议
req.setTemplateType(TemplateTypeEnum.MEDIATION_AGREEMENT.getCode());
}
AjaxResult result = generateApplication(req);
return AjaxResult.success();
}
/**
* 修改庭审笔录
* @param attach
@@ -335,8 +335,7 @@ public class MsCasePaymentServiceImpl implements MsCasePaymentService {
}
casePaymentRecord.setCaseId(application.getId());
Example example = new Example(MsCasePaymentRecord.class);
example.createCriteria().andEqualTo("caseId", casePaymentRecord.getCaseId());
casePaymentRecordMapper.updateByExampleSelective(casePaymentRecord, example);
example.createCriteria().andEqualTo("caseId", casePaymentRecord.getCaseId());casePaymentRecordMapper.updateByExampleSelective(casePaymentRecord, example);
// 更改案件流程id和案件状态
application.setCaseFlowId(flow.getId());
application.setCaseStatusName(flow.getCaseStatusName());
@@ -354,7 +353,7 @@ public class MsCasePaymentServiceImpl implements MsCasePaymentService {
if (dto.getYesOrNo().equals(YesOrNoEnum.NO.getCode())) {
// 拒绝,新增审核记录
MsCaseAudit audit = new MsCaseAudit();
audit.setCaseNode(flow.getNodeId());
audit.setCaseNode(flow.getId());
audit.setCaseStatusName(flow.getCaseStatusName());
audit.setCaseAppliId(dto.getCaseId());
audit.setYesOrNo(dto.getYesOrNo());