From 1a3848e339a1079c1a692baaeaab7b884f7a85d2 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Wed, 28 Feb 2024 09:51:33 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application-druid.yml | 4 ++-- ruoyi-admin/src/main/resources/application.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 4d5b672..4fc7270 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,8 +6,8 @@ spring: druid: # 主库数据源 master: -# url: jdbc:mysql://121.40.189.20:3306/mediation_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false - url: jdbc:mysql://121.40.189.20:3306/mediation_system_prod?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false + url: jdbc:mysql://121.40.189.20:3306/mediation_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false +# url: jdbc:mysql://121.40.189.20:3306/mediation_system_prod?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false username: root password: YMzc157# # 从库数据源 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index aa0993a..de22e23 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -18,7 +18,7 @@ ruoyi: # 开发环境配置 server: # 测试环境6001,开发环境7001 - port: 7001 + port: 6001 servlet: # 应用的访问路径 context-path: / From e02dc537763e44c75cade632fc412908de08dd71 Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Thu, 29 Feb 2024 15:26:24 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E8=A7=A3?= =?UTF-8?q?=E7=9A=84=E7=9F=AD=E4=BF=A1=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MsCaseApplicationServiceImpl.java | 68 ++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java index c157816..2de7cd7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java @@ -1710,6 +1710,26 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } Boolean aBoolean = SmsUtils.sendSms(request); + if(StringUtils.isNotBlank(nameAgent)){ + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getContactTelphoneAgent(), new Date(), "尊敬的" + caseAffiliate.getNameAgent() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlapplynew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + }else { + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getApplicationPhone(), new Date(), "尊敬的" + caseAffiliate.getApplicationName() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlapplynew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + } + SealSignRecord sealSignRecordRespon = new SealSignRecord(); sealSignRecordRespon.setSignFlowid(signFlowId); sealSignRecordRespon.setPensonAccount(caseAffiliate.getRespondentPhone()); @@ -1725,6 +1745,15 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { request1.setTemplateParamSet(new String[]{caseAffiliate.getRespondentName(), application.getCaseNum(),urlResponnew}); Boolean aBoolean1 = SmsUtils.sendSms(request1); + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getRespondentPhone(), new Date(), "尊敬的" + caseAffiliate.getRespondentName() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlResponnew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean1) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + SealSignRecord sealSignRecordMedi = new SealSignRecord(); sealSignRecordMedi.setSignFlowid(signFlowId); sealSignRecordMedi.setPensonAccount(sealSignRecord.getPensonAccountMedi()); @@ -1740,6 +1769,15 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { requestMedi.setTemplateParamSet(new String[]{sealSignRecord.getPensonNameMedi(), application.getCaseNum(),urlResponnewMedi}); Boolean aBooleanMedi = SmsUtils.sendSms(requestMedi); + SmsSendRecord smsSendRecord1 = new SmsSendRecord(application.getId(), application.getCaseNum(), sealSignRecord.getPensonAccountMedi(), new Date(), "尊敬的" + sealSignRecord.getPensonNameMedi() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlResponnewMedi + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBooleanMedi) { + smsSendRecord1.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord1.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord1); + } else { throw new ServiceException(jsonObject3.getString("message")); } @@ -2018,6 +2056,26 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } Boolean aBoolean = SmsUtils.sendSms(request); + if(StringUtils.isNotBlank(nameAgent)){ + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getContactTelphoneAgent(), new Date(), "尊敬的" + caseAffiliate.getNameAgent() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlapplynew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + }else { + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getApplicationPhone(), new Date(), "尊敬的" + caseAffiliate.getApplicationName() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlapplynew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + } + SealSignRecord sealSignRecordRespon = new SealSignRecord(); sealSignRecordRespon.setSignFlowid(signFlowId); sealSignRecordRespon.setPensonAccount(caseAffiliate.getRespondentPhone()); @@ -2033,6 +2091,15 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { request1.setTemplateParamSet(new String[]{caseAffiliate.getRespondentName(), application.getCaseNum(),urlResponnew}); Boolean aBoolean1 = SmsUtils.sendSms(request1); + SmsSendRecord smsSendRecord = new SmsSendRecord(application.getId(), application.getCaseNum(), caseAffiliate.getRespondentPhone(), new Date(), "尊敬的" + caseAffiliate.getRespondentName() + "用户,您的" + application.getCaseNum() + "调解案件,签名链接https://smlt.esign.cn/" + urlResponnew + ",请点击链接签名,如非本人操作,请忽略本短信"); + // 新增短信记录 + if (aBoolean1) { + smsSendRecord.setSendStatus(YesOrNoEnum.YES.getCode()); + } else { + smsSendRecord.setSendStatus(YesOrNoEnum.NO.getCode()); + } + smsRecordMapper.saveSmsSendRecord(smsSendRecord); + } else { throw new ServiceException(jsonObject3.getString("message")); } @@ -2049,7 +2116,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { application.setCaseStatusName(caseFlow.getCaseStatusName()); // 新增日志 CaseLogUtils.insertCaseLog(application.getId(), currentFlow.getNodeId(), currentFlow.getCaseStatusName(),""); - } application.setMediaResult(mediaResult); From b3398e9828de9a720b78d436883310b09802efbc Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Thu, 29 Feb 2024 17:56:31 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java | 2 +- .../service/mscase/impl/MsSignSealServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java index 57f4766..d262e57 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java @@ -31,6 +31,6 @@ public interface MsCaseLogRecordMapper extends Mapper { " ") List selectCaseLogRecordList(@Param("caseLogRecord") MsCaseLogRecord caseLogRecord); - @Select("SELECT group_concat( DISTINCT t.createNickName) createNickName,t.nodeName content,t.nodeId,t.sort FROM (SELECT l.create_nick_name createNickName ,f.node_name nodeName,f.node_id nodeId, f.sort FROM ms_case_log_record l left join ms_case_flow f on l.case_node = f.node_id WHERE l.case_appli_id = #{caseAppliId} and f.node_name is not null ) t group by t.nodeName,t.nodeId,t.sort order by t.sort ") + @Select("SELECT group_concat( DISTINCT t.createNickName) createNickName,t.nodeName content,t.nodeId,t.sort ,t.caseStatusName FROM (SELECT l.create_nick_name createNickName ,f.node_name nodeName,f.node_id nodeId, f.sort, f.case_status_name caseStatusName FROM ms_case_log_record l left join ms_case_flow f on l.case_node = f.node_id WHERE l.case_appli_id = #{caseAppliId} and f.node_name is not null ) t group by t.nodeName,t.nodeId,t.sort ,t.caseStatusName order by t.sort ") List selectCaseLogRecordListCaseProgress(Long caseAppliId); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index a22cf34..d299642 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -465,12 +465,13 @@ public class MsSignSealServiceImpl implements MsSignSealService { List recordsNew = new ArrayList<>(); if (records != null && records.size() > 0) { for (MsCaseLogRecordVO msCaseLogRecordVO : records) { - String content = msCaseLogRecordVO.getContent(); +// String content = msCaseLogRecordVO.getContent(); + String content = msCaseLogRecordVO.getCaseStatusName(); if(StringUtils.isNotEmpty(content)){ if(content.equals("结束")){ recordsNew.add(msCaseLogRecordVO); }else { - if(!content.equals(msCaseFlow.getNodeName())){ + if(!content.equals(msCaseFlow.getCaseStatusName())){ recordsNew.add(msCaseLogRecordVO); }else{ break; From 07a1bad4a131a87cd5a570276fe9f6a91eb83118 Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Wed, 6 Mar 2024 11:26:00 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A1=88=E4=BB=B6?= =?UTF-8?q?=E5=8F=97=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/mscase/impl/MsCaseApplicationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java index 2de7cd7..1eb90fe 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java @@ -1404,7 +1404,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { caseApplication.setCaseFlowId(17); caseApplication.setCaseStatusName("结束"); msCaseApplicationMapper.updateByPrimaryKeySelective(caseApplication); - CaseLogUtils.insertCaseLog(application.getId(), 17, "结束", null); + CaseLogUtils.insertCaseLog(application.getId(), 4, "受理分配", null); } } From c92755927042a525aad5cb963f20b39ffb5b058b Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Wed, 6 Mar 2024 16:28:27 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E8=A7=A3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/mscase/impl/MsCaseApplicationServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java index 1eb90fe..4ce9cac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -46,7 +47,7 @@ import com.ruoyi.wisdomarbitrate.mapper.template.FatchRuleMapper; import com.ruoyi.wisdomarbitrate.mapper.template.TemplateManageMapper; import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService; import com.ruoyi.wisdomarbitrate.utils.*; -import org.apache.http.HttpResponse; + import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.BeanUtils; @@ -1883,11 +1884,12 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { long timestamp = System.currentTimeMillis(); String signStr = SignCheckUtils.getSign(paramsbody, accessSec, timestamp); String urlstr = arbitrateUrl; - HttpResponse httpResponse = (HttpResponse) HttpRequest.post(urlstr) + HttpResponse httpResponse = HttpRequest.post(urlstr) .header("timestampstr", String.valueOf(timestamp)) .header("signstr", signStr) .body(paramsbody) .execute(); + return AjaxResult.success(); }else if(mediaResult.intValue()==5){ // 达成和解 List caseAttachList = msCaseAttachMapper.queryAnnexPathByCaseId(req.getId()); From 2696ac11564a6da2401d9b7a5057c4ed14b219a1 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Wed, 6 Mar 2024 17:05:22 +0800 Subject: [PATCH 6/7] bug --- .../mscase/MsCaseApplicationController.java | 33 +- .../com/ruoyi/common/enums/AnnexTypeEnum.java | 1 + .../common/utils/file/MimeTypeUtils.java | 9 +- .../system/domain/entity/flow/MsCaseFlow.java | 8 +- .../system/domain/vo/flow/MsCaseFlowVO.java | 10 +- .../service/flow/CaseFlowServiceImpl.java | 43 +- .../domain/entity/mscase/MsCaseAudit.java | 1 + .../domain/vo/mscase/CaseToDoCount.java | 30 + .../domain/vo/mscase/CaseToDoCountVO.java | 21 + .../domain/vo/mscase/MediatorVO.java | 4 + .../mscase/MsCaseApplicationMapper.java | 44 ++ .../mscase/MsCaseApplicationService.java | 20 +- .../impl/MsCaseApplicationServiceImpl.java | 689 +++++++++++++++++- .../mscase/impl/MsSignSealServiceImpl.java | 8 +- 14 files changed, 867 insertions(+), 54 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCount.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCountVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java index 6802630..12291b8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java @@ -48,10 +48,18 @@ public class MsCaseApplicationController extends BaseController { @GetMapping("/list") public TableDataInfo page(MsCaseApplicationReq req) { - //startPage(); List list = caseApplicationService.list(req); return getDataTable(list); } + /** + * 首页待办数量 + */ + @GetMapping("/todoCount") + public AjaxResult todoCount() + { + CaseToDoCountVO vo= caseApplicationService.todoCount(); + return success(vo); + } /** * 根据登录人返回用户信息 */ @@ -79,10 +87,10 @@ public class MsCaseApplicationController extends BaseController { * 根据身份证号获取性别和出生日期 */ @GetMapping("/getInfoByIdCard") - public AjaxResult getInfoByIdCard(@RequestParam("idCard") String idCard) + public AjaxResult getInfoByIdCard(@RequestParam(value = "idCard" ,required = false) String idCard) { if(StrUtil.isEmpty(idCard)){ - error("参数校验失败"); + error("身份证号不能为空"); } if(!IdcardUtil.isValidCard(idCard)){ error("身份证不合法,请输入正确的身份证号"); @@ -145,6 +153,7 @@ public class MsCaseApplicationController extends BaseController { * @return * @throws IOException */ + @PostMapping("/uploadCaseZipFile") public AjaxResult uploadCaseZipFile(@RequestParam("file") MultipartFile file, @RequestParam("templateId") Long templateId) throws IOException { if(file.isEmpty()||templateId==null){ @@ -152,6 +161,20 @@ public class MsCaseApplicationController extends BaseController { } return caseApplicationService.uploadCaseZipFile(file,templateId); } + /** + * 用户信息压缩包导入 + * @param file + * @return + * @throws IOException + */ + @Anonymous + @PostMapping("/userIdentify") + public AjaxResult userIdentify(@RequestParam("file") MultipartFile file) throws IOException { + if(file.isEmpty()){ + return error("参数不能为空"); + } + return caseApplicationService.userIdentify(file); + } /** * 生成调解申请书 @@ -218,8 +241,8 @@ public class MsCaseApplicationController extends BaseController { * @return */ @GetMapping("/listMediator") - public AjaxResult listMediator( ) { - return caseApplicationService.listMediator(); + public AjaxResult listMediator( @RequestParam(value = "caseAppliId",required = false) Long caseAppliId) { + return caseApplicationService.listMediator(caseAppliId); } /** * 保存预约 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java index 1480ddc..5f861d0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java @@ -20,6 +20,7 @@ public enum AnnexTypeEnum implements EnumsInterface { MEDIATION_FILES(8, "调解资料"), RES_PAYMENT_RECEIPT(9, "被申请人缴费单"), SEAL_PICTURE(10, "印章图片"), + FLOW_SVG(11, "流程节点SVG"), ; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java index f968f1a..1975edf 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java @@ -16,8 +16,9 @@ public class MimeTypeUtils public static final String IMAGE_BMP = "image/bmp"; public static final String IMAGE_GIF = "image/gif"; - - public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" }; + public static final String IMAGE_SVG = "image/svg"; + + public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png","svg" }; public static final String[] FLASH_EXTENSION = { "swf", "flv" }; @@ -28,7 +29,7 @@ public class MimeTypeUtils public static final String[] DEFAULT_ALLOWED_EXTENSION = { // 图片 - "bmp", "gif", "jpg", "jpeg", "png", + "bmp", "gif", "jpg", "jpeg", "png","svg", // word excel powerpoint "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt", // 压缩文件 @@ -52,6 +53,8 @@ public class MimeTypeUtils return "bmp"; case IMAGE_GIF: return "gif"; + case IMAGE_SVG: + return "svg"; default: return ""; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java index 445922c..80fee67 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java @@ -1,10 +1,11 @@ package com.ruoyi.system.domain.entity.flow; -import javax.persistence.*; import lombok.Getter; import lombok.Setter; import lombok.ToString; +import javax.persistence.*; + @Getter @Setter @ToString @@ -51,4 +52,9 @@ public class MsCaseFlow { */ @Column(name = "button_auth_flag") private String buttonAuthFlag; + /** + * svg路径 + */ + @Column(name = "file_name") + private String fileName; } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java index 9a9147c..5ff8a51 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java @@ -5,7 +5,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Column; import java.util.List; @@ -57,6 +56,13 @@ public class MsCaseFlowVO { * 按钮权限标识符 */ private String buttonAuthFlag; - + /** + * 角色名 + */ private String roleName; + /** + * svg图片路径 + */ + private String fileName; + } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java index 7598d0d..5636c6a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java @@ -4,7 +4,6 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated; import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO; @@ -14,12 +13,15 @@ import com.ruoyi.system.mapper.flow.MsCaseFlowMapper; import com.ruoyi.system.mapper.flow.MsCaseFlowRoleRelatedMapper; import com.ruoyi.system.util.NewStringUtil; import com.ruoyi.system.util.TableDataUtil; -import org.bouncycastle.crypto.DataLengthException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import tk.mybatis.mapper.entity.Example; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; @@ -40,15 +42,12 @@ public class CaseFlowServiceImpl implements CaseFlowService { */ @Override public Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO) { - //查询某个案件流程节点信息 - if (caseFlowSearchVO.getId() != null) { + if (caseFlowSearchVO == null || caseFlowSearchVO.getPageNum() == null || caseFlowSearchVO.getPageSize() == null) { + //查询所有案件流程节点信息 + return msCaseFlowMapper.selectAll(); + } else if (caseFlowSearchVO.getId() != null) { + //查询某个案件流程节点信息 return msCaseFlowMapper.selectByPrimaryKey(caseFlowSearchVO.getId()); - } else if (caseFlowSearchVO == null) { - //查询所有案件流程节点信息 - return msCaseFlowMapper.selectAll(); - } else if (caseFlowSearchVO.getPageNum() == null || caseFlowSearchVO.getPageSize() == null) { - //查询所有案件流程节点信息 - return msCaseFlowMapper.selectAll(); } else { //分页查询案件流程节点信息 Map> sysRoleMap = queryRoleByFlowId(null); @@ -125,6 +124,27 @@ public class CaseFlowServiceImpl implements CaseFlowService { return map; } + /** + * 本地图片装64 + * @param imgPath + * @return + * @throws Exception + */ + public static String convertToBase64( String imgPath) { + byte[] data = null; + // 读取图片字节数组 + try { + imgPath=imgPath.replace("/profile/upload", "/home/ruoyi/uploadPath/upload/"); + InputStream in = Files.newInputStream(Paths.get(imgPath)); + data = new byte[in.available()]; + in.read(data); + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + // 返回Base64编码过的字节数组字符串 + return Base64.getEncoder().encodeToString(Objects.requireNonNull(data)); + } /** * 新增或编辑案件流程节点信息 * @@ -133,6 +153,7 @@ public class CaseFlowServiceImpl implements CaseFlowService { */ @Override public Boolean saveCaseFlow(MsCaseFlowVO caseFlowVO) { + if (caseFlowVO.getId() != null) { //更新案件流程信息 MsCaseFlow msCaseFlow = new MsCaseFlow(); @@ -228,6 +249,8 @@ public class CaseFlowServiceImpl implements CaseFlowService { return false; } + + /** * 排序案件流程节点 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAudit.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAudit.java index d4ea3fd..7b57763 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAudit.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAudit.java @@ -64,5 +64,6 @@ public class MsCaseAudit { /** * 拒绝原因 */ + @Column(name = "reason") private String reason; } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCount.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCount.java new file mode 100644 index 0000000..8d5450f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCount.java @@ -0,0 +1,30 @@ +package com.ruoyi.wisdomarbitrate.domain.vo.mscase; + +import lombok.Data; + +/** + * @Classname CaseToDoCount + * @Description 代办案件数量 + * @Version 1.0.0 + * @Date 2024/1/15 15:48 + * @Created wangqiong + */ +@Data +public class CaseToDoCount { + /** + * 流程表id + */ + private Integer caseFlowId; + /** + * 流程状态 + */ + private String caseStatusName; + /** + * 数量 + */ + private Long caseCount; + /** + * base64 + */ + private String fileName; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCountVO.java new file mode 100644 index 0000000..fb78948 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/CaseToDoCountVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.wisdomarbitrate.domain.vo.mscase; + +import lombok.Data; + +import java.util.List; + +/** + * @Classname CaseToDoCountVO + * @Description 代办案件数量返回VO + * @Version 1.0.0 + * @Date 2024/1/15 15:48 + * @Created wangqiong + */ +@Data +public class CaseToDoCountVO { + /** + * 待办数量 + */ + private List toDoCountList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MediatorVO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MediatorVO.java index 3d16e61..8d3ef45 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MediatorVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MediatorVO.java @@ -31,4 +31,8 @@ public class MediatorVO { * 已办数量 */ private Long completeAmount; + /** + * 是否回显,true为回显,false为不回显 + */ + private Boolean EchoFlag=false; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java index fd6fdb3..61ef9d7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.wisdomarbitrate.mapper.mscase; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication; +import com.ruoyi.wisdomarbitrate.domain.vo.mscase.CaseToDoCount; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationReq; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO; import org.apache.ibatis.annotations.Param; @@ -160,4 +161,47 @@ public interface MsCaseApplicationMapper extends Mapper { */ @Select("select max(room_id) maxRoomId from ms_reserved_conference") Long selectMaxRoomId(); + + /** + * 待办数量 + * @param o + * @return + */ + @Select(" " + ) + List todoCount(@Param("req")MsCaseApplicationReq req, @Param("caseStatusNames") List caseStatusNames); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java index 741b8c4..a9b451b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java @@ -9,10 +9,7 @@ import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.BookingVO; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationReq; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseAttachVO; +import com.ruoyi.wisdomarbitrate.domain.vo.mscase.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -32,6 +29,11 @@ public interface MsCaseApplicationService { * @return */ List list(MsCaseApplicationReq req); + /** + * 首页待办数量 + * @return + */ + CaseToDoCountVO todoCount(); /** * 根据id查询案件 @@ -74,6 +76,13 @@ public interface MsCaseApplicationService { */ AjaxResult uploadCaseZipFile(MultipartFile file, Long templateId); + /** + * 用户信息压缩包导入 + * @param file + * @return + */ + AjaxResult userIdentify(MultipartFile file); + /** * 生成调解申请书 * @param req @@ -138,7 +147,7 @@ public interface MsCaseApplicationService { * 查询调解员 * @return */ - AjaxResult listMediator(); + AjaxResult listMediator(Long caseAppliId); /** * 保存预约 * @param @@ -234,5 +243,4 @@ public interface MsCaseApplicationService { */ List getSmsSendRecord(SmsSendRecord smsSendRecord); - } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java index 4ce9cac..974c55b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java @@ -161,7 +161,11 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { // admin查询所有案件 if (StrUtil.equals(SecurityUtils.getUsername(), "admin")) { startPage(); - return msCaseApplicationMapper.list(req, null); + List list = msCaseApplicationMapper.list(req, null); + for (MsCaseApplicationVO vo : list) { + vo.setSignButtonFlag(0); + } + return list; } // 根据用户查询角色 LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -244,6 +248,111 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { return list; } + /** + * 首页代办数量 + * @return + */ + @Override + public CaseToDoCountVO todoCount() { + CaseToDoCountVO vo = new CaseToDoCountVO(); + List selectTodoList=null; + // 根据用户查询角色 + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 根据id查询用户 + SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId()); + List roles = loginUser.getUser().getRoles(); + + // 根据角色查询关联的案件状态 + Example example = new Example(MsCaseFlowRoleRelated.class); + + // 如果是admin,查询所有案件流程 + if (CollectionUtil.isNotEmpty(roles)) { + example.createCriteria().andIn("roleid", roles.stream().map(SysRole::getRoleId).collect(Collectors.toList())); + } + + List caseFlowRoleRelatedList = caseFlowRoleRelatedMapper.selectByExample(example); + if (CollectionUtil.isEmpty(caseFlowRoleRelatedList)) { + throw new ServiceException("该角色为绑定案件流程"); + } + + Example flowExample = new Example(MsCaseFlow.class); + flowExample.setOrderByClause("sort asc"); + flowExample.createCriteria().andIn("id", caseFlowRoleRelatedList.stream().map(MsCaseFlowRoleRelated::getFlowId).collect(Collectors.toList())); + List caseFlows = caseFlowMapper.selectByExample(flowExample); + if (CollectionUtil.isEmpty(caseFlows)) { + throw new ServiceException("该角色为绑定案件流程"); + } + MsCaseApplicationReq req=new MsCaseApplicationReq(); + if (StrUtil.equals(SecurityUtils.getUsername(), "admin")) { + selectTodoList= msCaseApplicationMapper.todoCount( req,null); + }else { + + req.setUserName(SecurityUtils.getUsername()); + req.setContactTelphoneAgent(sysUser.getPhonenumber()); + + List caseStatusNames = caseFlows.stream().map(MsCaseFlow::getCaseStatusName).collect(Collectors.toList()); + // 如果是申请人,可以看见申请人为自己(即自然人)或者委托代理人为自己的案件(即机构) + for (SysRole role : roles) { + if (StrUtil.isNotEmpty(role.getRoleName())) { + if (StrUtil.equals(role.getRoleName(), "申请人")) { + List applicationOrganIds = new ArrayList<>(); + applicationOrganIds.add(sysUser.getUserId()); + caseStatusNames.add("待调解"); + req.setApplicantFlag(1); + // 根据用户查询部门ids + List deptList = sysDeptMapper.selectDeptByUserId(loginUser.getUserId()); + if (CollectionUtil.isNotEmpty(deptList)) { + List deptIds = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + applicationOrganIds.addAll(deptIds); + + } + req.setApplicationOrganIds(applicationOrganIds); + break; + } + if (StrUtil.equals(role.getRoleName(), "被申请人")) { + caseStatusNames.add("待调解"); + req.setRespondentIdentityNum(sysUser.getIdCard()); + break; + } + if (StrUtil.equals(role.getRoleName(), "调解员")) { + req.setMediatorId(String.valueOf(sysUser.getUserId())); + break; + } + } + } + if (req.getMediationMethod() != null) { + // 查询视频审理 + req.setCaseFlowId(9); + } + // 查询案件列表 + selectTodoList = msCaseApplicationMapper.todoCount(req, caseStatusNames); + } + // 设置每个案件节点的数量 + List toDoCountList = new ArrayList<>(); + Map todoMap =null; + if(CollectionUtil.isNotEmpty(selectTodoList)){ + todoMap = selectTodoList.stream().collect(Collectors.toMap(CaseToDoCount::getCaseFlowId, CaseToDoCount::getCaseCount, (n1, n2) -> n2)); + + } + for (MsCaseFlow caseFlow : caseFlows) { + if(StrUtil.isEmpty(caseFlow.getCaseStatusName())||StrUtil.equals(caseFlow.getCaseStatusName(),"结束")){ + continue; + } + CaseToDoCount caseToDoCount = new CaseToDoCount(); + caseToDoCount.setCaseFlowId(caseFlow.getId()); + caseToDoCount.setCaseStatusName(caseFlow.getCaseStatusName()); + caseToDoCount.setFileName(caseFlow.getFileName()); + if(null==todoMap){ + caseToDoCount.setCaseCount(0L); + }else { + caseToDoCount.setCaseCount(todoMap.getOrDefault(caseFlow.getId(), 0L)); + } + toDoCountList.add(caseToDoCount); + } + vo.setToDoCountList(toDoCountList); + return vo; + } + @Override public MsCaseApplicationVO selectById(Long id) { MsCaseApplicationVO vo = new MsCaseApplicationVO(); @@ -322,25 +431,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } // 压缩包导入,则根据身份证号获取性别和出生日期 - String identityNum = affiliate.getRespondentIdentityNum(); - if (caseApplication.isImportFlag() && StrUtil.isNotEmpty(identityNum)) { - - identityNum = identityNum.replace("\n", ""); - Map identityNumMap = IdCardUtils.getBirAgeSex(identityNum); - if (identityNumMap != null) { - String birthday = identityNumMap.get("birthday"); - if (StrUtil.isNotEmpty(birthday)) { - Date birthdayDate = null; - try { - birthdayDate = yyyymmddFormat.parse(birthday); - } catch (Exception e) { - e.printStackTrace(); - } - affiliate.setRespondentBirth(birthdayDate); - } - //从身份证抓取性别 - affiliate.setRespondentSex(identityNumMap.get("sexCode")); - } + if (caseApplication.isImportFlag() && StrUtil.isNotEmpty(affiliate.getRespondentIdentityNum())) { + setBirthByIdentityNum(affiliate); } if (StrUtil.isNotEmpty(affiliate.getAgentEmail())) { affiliate.setAgentEmail(affiliate.getAgentEmail().replace("\n", "").replaceAll("\\s", "")); @@ -563,7 +655,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { req.setTemplateType(TemplateTypeEnum.MEDIATION_APPLICATION.getCode()); } req.setTemplateId(String.valueOf(selectByPrimaryKey.getTemplateId())); - caseApplicationService.generateApplication(req); // 新增日志 CaseLogUtils.insertCaseLog(caseApplication.getId(), 0, "修改案件",null); @@ -707,6 +798,533 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { return AjaxResult.error("请检查压缩包!"); } } + /** + * 用户信息压缩包导入 + * @param file + * @return + */ + @Override + public AjaxResult userIdentify(MultipartFile file) { + UUID uuid = UUID.randomUUID(); + // 压缩包解压路径 + String targetPath = "/home/ruoyi/uploadPath/upload/unzipFile/" + uuid + "/"; + File zipFile = null; + InputStream ins = null; + try { + ins = file.getInputStream(); + //上传的压缩包保存的路径 + String savePath = "/home/ruoyi/uploadPath/upload/zipFile/"; + String saveName = uuid + "_" + file.getOriginalFilename(); + zipFile = new File(savePath + saveName); + inputChangeToFile(ins, zipFile); + } catch (IOException e) { + e.printStackTrace(); + } + if (zipFile == null) { + return AjaxResult.error("压缩包上传失败"); + } + //解压缩上传的压缩包 + boolean unzipSuccess = UnZipFileUtils.unZipFile(zipFile, targetPath); + if (!unzipSuccess) { + // 解压失败 + return AjaxResult.error("解压失败"); + } + // 根据机构代码查询模板id + Long templateId = templateManageMapper.selectByCreditCode(creditCode); + if(templateId==null){ + return AjaxResult.error("未找到模板"); + } + // 查询抓取规则 + List fatchRuleList = fatchRuleMapper.listByTemplateId(templateId); + if (CollectionUtil.isEmpty(fatchRuleList)) { + return AjaxResult.error("未设置抓取规则"); + } + // 判断解压后的文件夹是否存在 + File directory = new File(targetPath); + if (!directory.exists()) { + return AjaxResult.error("文件不存在"); + } + if (!directory.isDirectory() || directory.listFiles() == null) { + return AjaxResult.error("未找到文件夹"); + } + File[] files = directory.listFiles(); + if (files == null) { + return AjaxResult.error("压缩包格式不正确"); + } + // 抓取规则,0-内置字段,1-自定义字段 + Map> fatchRuleMap = fatchRuleList.stream().collect(Collectors.groupingBy(FatchRule::getFileName)); + // 在系统表中查询案件内置字段 + SysDictData sysDictData = new SysDictData(); + sysDictData.setDictType("case_built_type"); + List dictDataList = dictDataMapper.selectDictDataList(sysDictData); + if (CollectionUtil.isEmpty(dictDataList)) { + return AjaxResult.error("未找到案件内置字段"); + } + // 组装案件信息 + MsCaseApplicationVO caseApplicationVO = new MsCaseApplicationVO(); + for (File outFile : files) { + if (outFile==null || !outFile.isDirectory() || outFile.listFiles() == null) { + continue; + } + MsCaseApplication caseApplication=new MsCaseApplication(); + // 抓取内容 + Map fatchMap = new HashMap<>(); + Map fileMap=new HashMap<>(); + // 一个infile对应一个案件 + for (File inFile : outFile.listFiles()) { + // 所有的文件,fileMap + fileMap.put(inFile.getName(), inFile.getAbsolutePath()); + } + if (!fileMap.isEmpty()) { + + // 根据抓取规则设置字段值 + for (Map.Entry> entry : fatchRuleMap.entrySet()) { + getFatchContent(fileMap, entry.getKey(), fatchMap, entry.getValue()); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + if (fatchMap.size() > 0) { + MsCaseAffiliate affiliate = new MsCaseAffiliate(); + // 组装案件内置字段 + for (SysDictData dictData : dictDataList) { + // 主表字段 + if (CASE_BASE_COLUMN.contains(dictData.getDictValue())) { + ObjectFieldUtils.setValue(caseApplication, dictData.getDictValue(), fatchMap.get(dictData.getDictLabel())); + } else { + // 相关人员字段 + ObjectFieldUtils.setValue(affiliate, dictData.getDictValue(), fatchMap.get(dictData.getDictLabel())); + } + } + // 识别身份证回显性别和出生年月日 + setBirthByIdentityNum(affiliate); + BeanUtil.copyProperties(caseApplication, caseApplicationVO); + caseApplicationVO.setAffiliate(affiliate); + } + } + } + + return AjaxResult.success(caseApplicationVO); + } + + /** + * 根据身份证设置被申性别和生日 + * @param affiliate + */ + private void setBirthByIdentityNum(MsCaseAffiliate affiliate) { + String identityNum = affiliate.getRespondentIdentityNum(); + if(StrUtil.isNotEmpty(identityNum)){ + // 识别身份证回显性别和出生年月日 + identityNum = identityNum.replace("\n", ""); + Map identityNumMap = IdCardUtils.getBirAgeSex(identityNum); + if (identityNumMap != null) { + String birthday = identityNumMap.get("birthday"); + if (StrUtil.isNotEmpty(birthday)) { + Date birthdayDate = null; + try { + birthdayDate = yyyymmddFormat.parse(birthday); + } catch (Exception e) { + e.printStackTrace(); + } + affiliate.setRespondentBirth(birthdayDate); + } + //从身份证抓取性别 + affiliate.setRespondentSex(identityNumMap.get("sexCode")); + } + } + } /** * 生成调解申请书 @@ -1045,13 +1663,16 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @return */ @Override - public AjaxResult listMediator() { + public AjaxResult listMediator(Long caseAppliId) { + // 已选择的调解员 + List selectedMediatorIds =new ArrayList<>(); List mediatorVOS = new ArrayList(); // 查出所有调解员 List users = userMapper.selectUserByRole("调解员"); if (CollectionUtil.isEmpty(users)) { return AjaxResult.error("暂无调解员"); } + // todo 根据角色查询是否已经选择了调解员进行回显 List userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList()); // 状态为未结束的是待办数量,结束的是已办数量 Map> caseMap=null; @@ -1059,13 +1680,35 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { List caseApplicationList = msCaseApplicationMapper.listMediator(userIds); if (CollectionUtil.isNotEmpty(caseApplicationList)) { caseMap = caseApplicationList.stream().collect(Collectors.groupingBy(MsCaseApplication::getMediatorId, Collectors.toList())); + } + if(caseAppliId!=null) { + // 根据案件id和用户id查询已选择的调解员进行回显 + Example example = new Example(MsCaseMediator.class); + Example.Criteria criteria = example.createCriteria(); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUser() != null && CollectionUtil.isNotEmpty(loginUser.getUser().getRoles())) { + for (SysRole role : loginUser.getUser().getRoles()) { + if (role.getRoleName().equals("被申请人")) { + criteria.andEqualTo("type", YesOrNoEnum.YES.getCode()); + } else if (role.getRoleName().equals("申请人")) { + criteria.andEqualTo("type", YesOrNoEnum.NO.getCode()); + } + } + } + criteria.andEqualTo("caseAppliId", caseAppliId); + // 已选择的调解员 + List selectedMediators = msCaseMediatorMapper.selectByExample(example); + selectedMediatorIds = selectedMediators.stream().map(MsCaseMediator::getMediatorId).collect(Collectors.toList()); } for (SysUser user : users) { MediatorVO mediatorVO = new MediatorVO(); mediatorVO.setMediatorId(user.getUserId()); mediatorVO.setMediatorName(user.getNickName()); mediatorVO.setSpecialty(user.getSpecialty()); + if(selectedMediatorIds.contains(user.getUserId())){ + mediatorVO.setEchoFlag(true); + } if(caseMap==null){ mediatorVO.setTodoAmount(0L); mediatorVO.setCompleteAmount(0L); @@ -1078,6 +1721,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } mediatorVOS.add(mediatorVO); } + return AjaxResult.success(mediatorVOS); } @@ -1362,7 +2006,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if(StrUtil.isEmpty(caseId)){ return; } - // todo Long id = Long.valueOf(caseId); // 根据案件id查询案件 MsCaseApplication application = msCaseApplicationMapper.selectByPrimaryKey(id); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index d299642..b1f26c8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -696,9 +696,9 @@ public class MsSignSealServiceImpl implements MsSignSealService { SendMailRecord sendMailRecord = new SendMailRecord(); sendMailRecord.setCaseId(id); sendMailRecord.setMailAddress(appEmail); - sendMailRecord.setMailContent("您好,审核后的裁决书在附件中请查阅"); + sendMailRecord.setMailContent("您好,审核后的调解书在附件中请查阅"); // sendMailRecord.setMailContent("您好,您的{"+caseApplication1.getCaseNum()+"}案件,审核后的裁决书在附件中请查阅"); - sendMailRecord.setMailName("签署后的裁决书"); + sendMailRecord.setMailName("签署后的调解书"); sendMailRecord.setSendTime(new Date()); sendMailRecord.setCreateBy(SecurityUtils.getUsername()); if (appEmailFlag) { @@ -714,8 +714,8 @@ public class MsSignSealServiceImpl implements MsSignSealService { sendMailRecord1.setCaseId(id); sendMailRecord1.setMailAddress(resEmail); // sendMailRecord.setMailContent("您好,您的{"+caseApplication1.getCaseNum()+"}案件,审核后的裁决书在附件中请查阅"); - sendMailRecord1.setMailContent("您好,审核后的裁决书在附件中请查阅"); - sendMailRecord1.setMailName("签署后的裁决书"); + sendMailRecord1.setMailContent("您好,审核后的调解书在附件中请查阅"); + sendMailRecord1.setMailName("签署后的调解书"); sendMailRecord1.setSendTime(new Date()); sendMailRecord1.setCreateBy(SecurityUtils.getUsername()); if (resEmailFlag) { From bf0a8345776f2c9b6945db304539739bd44971b5 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Wed, 6 Mar 2024 18:14:39 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application-druid.yml | 4 ++-- ruoyi-admin/src/main/resources/application.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 4fc7270..4d5b672 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,8 +6,8 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://121.40.189.20:3306/mediation_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false -# url: jdbc:mysql://121.40.189.20:3306/mediation_system_prod?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false +# url: jdbc:mysql://121.40.189.20:3306/mediation_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false + url: jdbc:mysql://121.40.189.20:3306/mediation_system_prod?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false username: root password: YMzc157# # 从库数据源 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index de22e23..aa0993a 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -18,7 +18,7 @@ ruoyi: # 开发环境配置 server: # 测试环境6001,开发环境7001 - port: 6001 + port: 7001 servlet: # 应用的访问路径 context-path: /