diff --git a/pom.xml b/pom.xml
index 9c62fbb..61d1b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,6 +194,10 @@
${java.version}
${java.version}
${project.build.sourceEncoding}
+
+ ruoyi-system/**
+ ruoyi-common/**
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseEvidenceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseEvidenceController.java
index f3bc7b2..c4f1455 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseEvidenceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseEvidenceController.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
+import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import com.ruoyi.wisdomarbitrate.service.ICaseEvidenceService;
@@ -134,4 +135,13 @@ public class CaseEvidenceController extends BaseController {
public AjaxResult caseCrossexamination(@Validated @RequestBody CaseEvidenceDTO caseEvidenceDTO) {
return caseEvidenceService.caseCrossexamination(caseEvidenceDTO);
}
+ /**
+ * 获取证据目录树列表
+ */
+ @GetMapping("/evidenceTree")
+ public AjaxResult evidenceTree(CaseEvidenceDirectory caseEvidenceDirectory)
+ {
+ return success(caseEvidenceService.selectEvidenceTreeList(caseEvidenceDirectory)) ;
+ }
+
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
index bd835db..4f8e08d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
+
/**
* Treeselect树结构实体类
*
@@ -38,6 +39,7 @@ public class TreeSelect implements Serializable
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
+
public TreeSelect(SysMenu menu)
{
this.id = menu.getMenuId();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseEvidenceDirectory.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseEvidenceDirectory.java
index ddee777..a6aead9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseEvidenceDirectory.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseEvidenceDirectory.java
@@ -6,6 +6,9 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.util.ArrayList;
+import java.util.List;
+
@Data
@Builder
@AllArgsConstructor
@@ -16,12 +19,12 @@ public class CaseEvidenceDirectory extends BaseEntity {
/**
* id
*/
- private Integer id;
+ private Long id;
/**
* 父id
*/
- private Integer parentId;
+ private Long parentId;
/**
* 证据名称
@@ -41,5 +44,8 @@ public class CaseEvidenceDirectory extends BaseEntity {
/**
* 案件id
*/
- private Integer caseId;
+ private Long caseId;
+
+ /** 子目录 */
+ private List children = new ArrayList<>();
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/CaseEvidenceDirectoryVO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/CaseEvidenceDirectoryVO.java
new file mode 100644
index 0000000..56c0ab9
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/CaseEvidenceDirectoryVO.java
@@ -0,0 +1,176 @@
+package com.ruoyi.wisdomarbitrate.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 目录查询返回类
+ */
+public class CaseEvidenceDirectoryVO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 父id
+ */
+ private Long parentId;
+
+ /**
+ * 证据名称
+ */
+ private String evidenceName;
+
+ /**
+ * 附件id
+ */
+ private Integer annexId;
+
+ /**
+ * 级数
+ */
+ private Integer series;
+
+ /**
+ * 案件id
+ */
+ private Long caseId;
+
+ /** 子目录 */
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
+ private List children;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
+ private Date createTime;
+ /**
+ * 创建者
+ */
+ private String createBy;
+ /**
+ * 更新者
+ */
+ private String updateBy;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
+ private Date updateTime;
+ public CaseEvidenceDirectoryVO(){
+ }
+
+ public static long getSerialVersionUID() {
+ return serialVersionUID;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getEvidenceName() {
+ return evidenceName;
+ }
+
+ public void setEvidenceName(String evidenceName) {
+ this.evidenceName = evidenceName;
+ }
+
+ public Integer getAnnexId() {
+ return annexId;
+ }
+
+ public void setAnnexId(Integer annexId) {
+ this.annexId = annexId;
+ }
+
+ public Integer getSeries() {
+ return series;
+ }
+
+ public void setSeries(Integer series) {
+ this.series = series;
+ }
+
+ public Long getCaseId() {
+ return caseId;
+ }
+
+ public void setCaseId(Long caseId) {
+ this.caseId = caseId;
+ }
+
+ public List getChildren() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public String getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(String updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public CaseEvidenceDirectoryVO(CaseEvidenceDirectory caseEvidenceDirectory) {
+ this.id = caseEvidenceDirectory.getId();
+ this.parentId = caseEvidenceDirectory.getParentId();
+ this.evidenceName = caseEvidenceDirectory.getEvidenceName();
+ this.annexId = caseEvidenceDirectory.getAnnexId();
+ this.series = caseEvidenceDirectory.getSeries();
+ this.caseId = caseEvidenceDirectory.getCaseId();
+ this.children = caseEvidenceDirectory.getChildren();
+ this.createTime = caseEvidenceDirectory.getCreateTime();
+ this.createBy = caseEvidenceDirectory.getCreateBy();
+ this.updateBy = caseEvidenceDirectory.getUpdateBy();
+ this.updateTime = caseEvidenceDirectory.getUpdateTime();
+ }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseEvidenceService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseEvidenceService.java
index 969e13f..816e2e2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseEvidenceService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseEvidenceService.java
@@ -3,7 +3,9 @@ package com.ruoyi.wisdomarbitrate.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
+import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
+import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceDirectoryVO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import org.springframework.web.multipart.MultipartFile;
@@ -35,4 +37,32 @@ public interface ICaseEvidenceService {
AjaxResult fileList(Long caseAppliId, List annexTypeList);
int deleteFile( List fileIds);
+
+ List selectEvidenceTreeList(CaseEvidenceDirectory caseEvidenceDirectory);
+
+
+ /**
+ * 查询证据目录数据
+ *
+ * @param caseEvidenceDirectory 证据目录信息
+ * @return 证据目录信息集合
+ */
+ List selectCaseEvidenceList(CaseEvidenceDirectory caseEvidenceDirectory);
+
+
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param caseEvidenceDirectorys 证据列表
+ * @return 树结构列表
+ */
+ List buildCaseEvidenceTree(List caseEvidenceDirectorys);
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param caseEvidenceDirectorys 证据目录列表
+ * @return 下拉树结构列表
+ */
+ List buildCaseEvidenceTreeSelect(List caseEvidenceDirectorys);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java
index b742dda..47d7dbd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java
@@ -7,6 +7,8 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceDirectoryVO;
import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.wisdomarbitrate.domain.*;
@@ -24,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
@@ -39,6 +42,8 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
private CaseAttachMapper caseAttachMapper;
@Autowired
private CaseLogRecordMapper caseLogRecordMapper;
+ @Autowired
+ private CaseEvidenceDirectoryMapper caseEvidenceDirectoryMapper;
@Override
@Transactional
@@ -103,8 +108,8 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
.userName(userName)
.build();
int count = caseAttachMapper.save(caseAttach);
- if (count > 0 && annexType!=null && annexType!=8) {
- if(id!=null){
+ if (count > 0 && annexType != null && annexType != 8) {
+ if (id != null) {
//修改案件状态
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(id);
@@ -115,7 +120,7 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
caseAttachselect.setAnnexId(caseAttach.getAnnexId());
caseAttachselect.setAnnexName(caseAttach.getAnnexName());
caseAttachselect.setAnnexType(caseAttach.getAnnexType());
- return AjaxResult.success("上传成功",caseAttachselect);
+ return AjaxResult.success("上传成功", caseAttachselect);
}
} catch (IOException e) {
e.printStackTrace();
@@ -125,19 +130,19 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
}
-@Autowired
-IdentityAuthenticationMapper identityAuthenticationMapper;
+ @Autowired
+ IdentityAuthenticationMapper identityAuthenticationMapper;
@Override
public List getCaseListAll(String identityNum) {
- if(StringUtils.isBlank(identityNum)){
+ if (StringUtils.isBlank(identityNum)) {
LoginUser loginUser = SecurityUtils.getLoginUser();
String username = loginUser.getUsername();
- IdentityAuthentication authentication=new IdentityAuthentication();
+ IdentityAuthentication authentication = new IdentityAuthentication();
authentication.setUserName(username);
IdentityAuthentication authentication1 = identityAuthenticationMapper.selectIdentityAuthentication(authentication);
- if(authentication1!=null){
- identityNum = authentication1.getIdentityNo();
+ if (authentication1 != null) {
+ identityNum = authentication1.getIdentityNo();
}
}
List caseStatusList = Arrays.asList(CaseApplicationConstants.CASE_CROSSEXAMI);
@@ -150,7 +155,7 @@ IdentityAuthenticationMapper identityAuthenticationMapper;
int i = caseApplicationMapper.submitCaseApplication(caseApplication);
if (i > 0) {
// 新增日志
- CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.PENDING_TRIAL,"");
+ CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.PENDING_TRIAL, "");
return AjaxResult.success("证据确认成功");
}
@@ -182,25 +187,26 @@ IdentityAuthenticationMapper identityAuthenticationMapper;
//修改案件状态
caseApplication1.setCaseStatus(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL_SUBMMIT);
//选择仲裁方式
- if (caseEvidenceDTO.getOpenCourtHear()==1){ //开庭审理
+ if (caseEvidenceDTO.getOpenCourtHear() == 1) { //开庭审理
caseApplication1.setArbitratMethod(1);
- }else {
+ } else {
caseApplication1.setArbitratMethod(2); //书面审理
}
int i = caseApplicationMapper.submitCaseApplication(caseApplication1);
if (i > 0) {
// 新增日志
- CaseLogUtils.insertCaseLog(caseApplication.getId(),CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL_SUBMMIT,"");
+ CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL_SUBMMIT, "");
return AjaxResult.success("提交成功");
}
}
return null;
}
+
@Transactional
@Override
public AjaxResult batchUpload(MultipartFile[] files, Integer annexType, Long id, String userName, Long userId) {
- List successList= new ArrayList<>();
+ List successList = new ArrayList<>();
try {
String filePath = RuoYiConfig.getUploadPath();
for (MultipartFile file : files) {
@@ -214,8 +220,8 @@ IdentityAuthenticationMapper identityAuthenticationMapper;
.userName(userName)
.build();
int count = caseAttachMapper.save(caseAttach);
- if (count > 0 && annexType!=null && annexType!=8) {
- if(id!=null){
+ if (count > 0 && annexType != null && annexType != 8) {
+ if (id != null) {
//修改案件状态
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(id);
@@ -236,41 +242,111 @@ IdentityAuthenticationMapper identityAuthenticationMapper;
return AjaxResult.error("上传失败");
}
- return AjaxResult.success("上传成功",successList);
+ return AjaxResult.success("上传成功", successList);
}
@Override
- public AjaxResult fileList(Long caseAppliId, List annexTypeList) {
+ public AjaxResult fileList(Long caseAppliId, List annexTypeList) {
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(caseAppliId);
caseApplication.setAnnexTypeList(annexTypeList);
List caseAttachList = caseAttachMapper.queryCaseAttachList(caseApplication);
- if(CollectionUtil.isNotEmpty(caseAttachList)){
- 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);
- }
+ if (CollectionUtil.isNotEmpty(caseAttachList)) {
+ 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 AjaxResult.success(caseAttachList);
+ }
+ return AjaxResult.success(caseAttachList);
}
return null;
}
@Override
- public int deleteFile( List fileIds) {
-
+ public int deleteFile(List fileIds) {
return caseAttachMapper.deleteByFileIds(fileIds);
}
+ @Override
+ public List selectEvidenceTreeList(CaseEvidenceDirectory caseEvidenceDirectory) {
+ List caseEvidenceDirectorys = SpringUtils.getAopProxy(this).selectCaseEvidenceList(caseEvidenceDirectory);
+ return buildCaseEvidenceTreeSelect(caseEvidenceDirectorys);
+ }
+
+ @Override
+ public List selectCaseEvidenceList(CaseEvidenceDirectory caseEvidenceDirectory) {
+ return caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectory);
+ }
+
+ @Override
+ public List buildCaseEvidenceTree(List caseEvidenceDirectorys) {
+ List returnList = new ArrayList<>();
+ List tempList = caseEvidenceDirectorys.stream().map(CaseEvidenceDirectory::getId).collect(Collectors.toList());
+ for (CaseEvidenceDirectory caseEvidenceDirectory : caseEvidenceDirectorys) {
+ // 如果是顶级节点, 遍历该父节点的所有子节点
+ if (!tempList.contains(caseEvidenceDirectory.getParentId())) {
+ recursionFn(caseEvidenceDirectorys, caseEvidenceDirectory);
+ returnList.add(caseEvidenceDirectory);
+ }
+ }
+ if (returnList.isEmpty())
+ {
+ returnList = caseEvidenceDirectorys;
+ }
+ return returnList;
+ }
+
+ @Override
+ public List buildCaseEvidenceTreeSelect(List caseEvidenceDirectorys) {
+ List caseEvidenceDirectories = buildCaseEvidenceTree(caseEvidenceDirectorys);
+ return caseEvidenceDirectories.stream().map(CaseEvidenceDirectoryVO::new).collect(Collectors.toList());
+ }
+
+ /**
+ * 递归列表
+ */
+ private void recursionFn(List list, CaseEvidenceDirectory t) {
+ // 得到子节点列表
+ List childList = getChildList(list, t);
+ t.setChildren(childList);
+ for (CaseEvidenceDirectory tChild : childList) {
+ if (hasChild(list, tChild)) {
+ recursionFn(list, tChild);
+ }
+ }
+ }
+
+ /**
+ * 得到子节点列表
+ */
+ private List getChildList(List list, CaseEvidenceDirectory t) {
+ List tlist = new ArrayList<>();
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ CaseEvidenceDirectory n = it.next();
+ if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) {
+ tlist.add(n);
+ }
+ }
+ return tlist;
+ }
+
+ /**
+ * 判断是否有子节点
+ */
+ private boolean hasChild(List list, CaseEvidenceDirectory t) {
+ return getChildList(list, t).size() > 0;
+ }
+
private List getCaseEvidenceVOList(String identityNum, List caseStatusList, Integer identityType) {
List caseListByRespondent = caseEvidenceMapper.getCaseListByRespondent(identityNum, caseStatusList, identityType);
if (caseListByRespondent != null && caseListByRespondent.size() > 0) {
diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseEvidenceDirectoryMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseEvidenceDirectoryMapper.xml
index 0a47466..f73c072 100644
--- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseEvidenceDirectoryMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseEvidenceDirectoryMapper.xml
@@ -35,7 +35,7 @@
sysdate()
)
-