diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/VideoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/VideoController.java
index c5958ad..db1f865 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/VideoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/VideoController.java
@@ -132,6 +132,18 @@ public class VideoController extends BaseController {
return videoService.htmlToPDF(reservedConferenceVO);
}
+ /**
+ * 根据案件id和类型查询附件
+ * @param caseAppliId
+ * @param annexType
+ * @return
+ */
+
+ @GetMapping("attachListByCaseId")
+ public AjaxResult attachListByCaseId( @RequestParam("caseAppliId") Long caseAppliId,@RequestParam("annexType") Integer annexType) {
+
+ return videoService.attachListByCaseId(caseAppliId,annexType);
+ }
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
index 26e9f2f..68a1ef1 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
@@ -142,7 +142,7 @@ public class RuoYiConfig
}
public static String getHtml2PDFPath()
{
- return getProfile() + "/upload/html2PDF/";
+ return getProfile() + "/upload/html2PDF";
}
// https://1304001529.vod-qcloud.com/b78823bbvodcq1304001529/3ce565bf3270835011486046286/f0.mp4
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java
index 328d5e0..05afb65 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java
@@ -32,13 +32,10 @@ public class PdfUtils {
* @param pdfFilePath 保存的路径
* @param htmlcontent:必须是完整的html格式,比如
123
*/
- public boolean htmlStringConvertToPDF(String pdfFilePath, String htmlcontent) {
+ public static boolean htmlStringConvertToPDF(String pdfFilePath, String htmlcontent) {
Document document = new Document();
PdfWriter writer = null;
try {
-// if(!new File(pdfFilePath).exists()){
-// new File(pdfFilePath).createNewFile();
-// }
writer = PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
// 设置底部距离60,解决重叠问题
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java
index d934a3c..97eca71 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java
@@ -19,6 +19,7 @@ public interface CaseAffiliateMapper {
List selectCaseAffiliate(CaseAffiliate caseAffiliate);
+ List selectCaseAffiliateByCaseIds(@Param("ids") List ids);
CaseAffiliate selectCaseAffiliateByIdentityType(@Param("caseAppliId") Long caseAppliId, @Param("identityType")int identityType);
int updataCaseAffiliate(CaseAffiliate caseAffiliate);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java
index 9dd368e..8306178 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java
@@ -2,9 +2,11 @@ package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
import java.util.List;
-
+@Mapper
public interface CaseLogRecordMapper {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/VideoService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/VideoService.java
index 76e76af..c1c8c71 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/VideoService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/VideoService.java
@@ -47,4 +47,12 @@ public interface VideoService {
* @return
*/
AjaxResult htmlToPDF(ReservedConferenceVO reservedConferenceVO);
+
+ /**
+ * 根据案件id和类型查询附件
+ * @param caseAppliId
+ * @param annexType
+ * @return
+ */
+ AjaxResult attachListByCaseId(Long caseAppliId, Integer annexType);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java
index 17eaef7..5b39293 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java
@@ -257,9 +257,9 @@ public class CaseApplicationLogServiceImpl implements CaseApplicationLogService
compareCaseVO.setBeforeCase(beforeCase);
compareCaseVO.setAfterCase(afterCase);
// 对比两个版本修改的字段
- String[] columns = {"caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
+ String[] columns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
"claimPrinciOwed","arbitratClaims","properPreser","requestRule"};
- String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress",
+ String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress","email",
"nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent","residenAffili","compLegalPerson",
"compLegalperPost","responSex","responBirth"};
StringBuilder changeColumn = new StringBuilder();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
index 6f5d47e..77b1eb4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
@@ -70,6 +70,7 @@ import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
+import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
@@ -136,8 +137,19 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
private static final Pattern TELEPHONE_REGX = Pattern.compile("^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$");
// 邮箱正则
private static final Pattern EMAIL_PATTERN = Pattern.compile("^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$");
- // 身份证号码正则表达式
- private static final String ID_REGEX = "^(\\\\d{15}$|\\\\d{18}$|\\\\d{17}([0-9]|X))$";
+
+ // 基本字段校验
+ private static final String[] baseColumns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
+ "claimPrinciOwed","arbitratClaims"};
+ // 申请人字段校验
+ private static final String[] applicAffiliateColumns = {"name", "contactTelphone","contactAddress","workTelphone","workAddress",
+ "residenAffili","compLegalPerson",
+ "compLegalperPost","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
+ // 申请人/被申请人代理人字段校验
+ private static final String[] applicAgentAffiliateColumns = {"nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
+ // 被申请人字段校验
+ private static final String[] dectborAffiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress",
+ "residenAffili","responSex","responBirth","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
/**
* 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态
@@ -1275,14 +1287,65 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
@Transactional
public int submitCaseApplication(List ids) {
int rows = 0;
- for (Long id : ids) {
- CaseApplication application = new CaseApplication();
- application.setId(id);
- //提交立案申请
- application.setCaseStatus(CaseApplicationConstants.CASE_CHECK);
- rows += caseApplicationMapper.submitCaseApplication(application);
- // 新增日志
- insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, "");
+ // 查询案件信息,做必填校验,校验不通过,提示,不能提交
+ StringBuilder errorMsg = new StringBuilder();
+ List caseApplications = caseApplicationMapper.listCaseApplicationByIds(ids);
+ if(CollectionUtil.isNotEmpty(caseApplications)) {
+
+ Map applicationMap = caseApplications.stream().collect(Collectors.toMap(CaseApplication::getId, Function.identity(), (n1, n2) -> n2));
+ List caseAffiliates = caseAffiliateMapper.selectCaseAffiliateByCaseIds(ids);
+ // 转换为Map>形式
+ Map> caseAffiliateMap = caseAffiliates.stream().collect(Collectors.groupingBy(CaseAffiliate::getCaseAppliId));
+ for (Long id : ids) {
+ // 必填校验
+ CaseApplication caseApplication = applicationMap.get(id);
+ // 基本字段校验
+ if(caseApplication!=null) {
+ for (String baseColumn : baseColumns) {
+ if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, baseColumn))){
+ errorMsg.append(baseColumn).append("不能为空,");
+ // todo 暂抛出异常,后边改为提示具体的字段
+ throw new ServiceException("必填字段未填写,请完善案件信息!");
+ }
+ }
+ // 校验人员
+ if(CollectionUtil.isNotEmpty(caseAffiliates)){
+ List affiliateList = caseAffiliateMap.get(id);
+ if(CollectionUtil.isNotEmpty(affiliateList)){
+ for (CaseAffiliate caseAffiliate : affiliateList) {
+ if(caseAffiliate.getIdentityType()==1){
+ // 校验申请人
+ for (String applicAffiliateColumn : applicAffiliateColumns) {
+ if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){
+ errorMsg.append(applicAffiliateColumn).append("不能为空,");
+ // todo 暂抛出异常,后边改为提示具体的字段
+ throw new ServiceException("必填字段未填写,请完善案件信息!");
+ }
+ }
+ }else {
+ // 校验被申请人
+ // 校验申请人
+ for (String applicAffiliateColumn : dectborAffiliateColumns) {
+ if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){
+ errorMsg.append(applicAffiliateColumn).append("不能为空,");
+ // todo 暂抛出异常,后边改为提示具体的字段
+ throw new ServiceException("必填字段未填写,请完善案件信息!");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ CaseApplication application = new CaseApplication();
+ application.setId(id);
+ //提交立案申请
+ application.setCaseStatus(CaseApplicationConstants.CASE_CHECK);
+ rows += caseApplicationMapper.submitCaseApplication(application);
+ // 新增日志
+ insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, "");
+ }
}
return rows;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java
index 3d8b731..0648491 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java
@@ -331,15 +331,14 @@ public class VideoServiceImpl implements VideoService {
}
String htmlContent = "" +reservedConferenceVO.getHtmlContent()+"";
// html转pdf并上传到服务器
- PdfUtils pdfUtils = new PdfUtils();
- boolean convertFlag = pdfUtils.htmlStringConvertToPDF(RuoYiConfig.getHtml2PDFPath() + currentFileName, htmlContent);
+ boolean convertFlag = PdfUtils.htmlStringConvertToPDF(RuoYiConfig.getHtml2PDFPath() +"/"+ currentFileName, htmlContent);
// 绑定案件
if(convertFlag){
CaseAttach caseAttach = CaseAttach.builder().caseAppliId(reservedConferenceVO.getCaseId())
.annexName(fileName)
.annexPath(RuoYiConfig.getHtml2PDFPath())
- .annexType(11)
+ .annexType(7)
.build();
caseAttachMapper.save(caseAttach);
return AjaxResult.success();
@@ -348,6 +347,37 @@ public class VideoServiceImpl implements VideoService {
}
}
+ @Override
+ public AjaxResult attachListByCaseId(Long caseAppliId, Integer annexType) {
+ CaseApplication caseApplication = new CaseApplication();
+ caseApplication.setId(caseAppliId);
+ caseApplication.setAnnexType(annexType);
+ List caseAttachList = caseAttachMapper.queryCaseAttachList(caseApplication);
+ if(CollectionUtil.isEmpty(caseAttachList)){
+ return success(caseAttachList);
+ }
+
+ // 附件转换
+ if (caseAttachList != null && caseAttachList.size() > 0) {
+ for (CaseAttach caseAttach : caseAttachList) {
+ String annexName = caseAttach.getAnnexName();
+ String prefix = "/profile";
+ int startIndex = annexName.indexOf(prefix);
+ startIndex += prefix.length();
+ String annexPath = "/uploadPath" + annexName.substring(startIndex);
+ caseAttach.setAnnexPath(annexPath);
+ int startIndexnew = annexName.lastIndexOf("/");
+ if (startIndexnew != -1) {
+ String annexNamenew = annexName.substring(startIndexnew + 1);
+ caseAttach.setAnnexName(annexNamenew);
+ }
+
+
+ }
+ }
+ return success(caseAttachList);
+ }
+
/**
* 查询出音视频集合,并下载,在将云点播上面的音视频删除
diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml
index abd290e..b89b6eb 100644
--- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml
@@ -45,6 +45,19 @@
+
+
insert into case_affiliate(case_appli_id, identity_type,application_organ_id,application_organ_name,name,identity_num,contact_telphone,
contact_address,work_address,work_telphone ,name_agent,identity_num_agent,contact_telphone_agent,