diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListV2FormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListV2FormDTO.java new file mode 100644 index 0000000000..cad3cb0026 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListV2FormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/12/21 下午3:24 + */ +@Data +public class ProcessListV2FormDTO implements Serializable { + + private static final long serialVersionUID = -7922290706507984148L; + + public interface ProcessListV2Form{} + + @NotBlank(message = "项目ID不能为空",groups = {ProcessListV2Form.class}) + private String projectId; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java new file mode 100644 index 0000000000..1e7460c5ad --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java @@ -0,0 +1,72 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/12/21 下午3:31 + */ +@Data +public class ProcessListV2ResultDTO implements Serializable { + + /** + * 项目ID + */ + private String projectId; + + /** + * 进展Id + */ + private String processId; + + /** + * 处理进展名称 + */ + private String processName; + + /** + * 处理进展时间 + */ + private Long processTime; + + /** + * 处理部门 + */ + private String departmentName; + + /** + * 公开答复 + */ + private String publicReply; + + /** + * 内部备注 + */ + private String internalRemark; + + /** + * + */ + private List publicFile; + + /** + * + */ + private List internalFile; + + public ProcessListV2ResultDTO() { + this.projectId = ""; + this.processId = ""; + this.processName = ""; + this.processTime = 0L; + this.departmentName = ""; + this.publicReply = ""; + this.internalRemark = ""; + this.publicFile = new ArrayList<>(); + this.internalFile = new ArrayList<>(); + } +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PublicAndInternalFileResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PublicAndInternalFileResultDTO.java new file mode 100644 index 0000000000..b51747cc3b --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PublicAndInternalFileResultDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/12/21 下午3:44 + */ +@Data +public class PublicAndInternalFileResultDTO implements Serializable { + + private static final long serialVersionUID = -4258868880494403603L; + + /** + * 文件名 + */ + private String name; + + /** + * url地址 + */ + private String url; + + /** + * 文件类型(图片 - image、 视频 - video、 语音 - voice、 文档 - doc) + */ + private String type; + + /** + * 后缀名 + */ + private String format; + + /** + * 文件大小 kb + */ + private Integer size; + + /** + * 语音或视频文件时长,单位秒 + */ + private Long duration; + + @JsonIgnore + private String processId; + + @JsonIgnore + private String filePlace; + + public PublicAndInternalFileResultDTO() { + this.name = ""; + this.url = ""; + this.type = ""; + this.format = ""; + this.size = 0; + this.duration = 0L; + } +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index d529abf12e..a1a8259b48 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -152,4 +152,8 @@ public interface ProjectConstant { * 非精准计算 */ String IMPRECISE_CALCULATION = "imprecise"; + + String PUBLIC = "public"; + + String INTERNAL = "internal"; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index 379e1b2965..d0c1124bdc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -267,5 +267,17 @@ public class ProjectTraceController { projectTraceService.response(tokenDTO, formDTO); return new Result(); } + + /** + * @Description 项目处理进展列表V2 + * @Param formDTO + * @author zxc + * @date 2020/12/21 下午3:55 + */ + @PostMapping("processlist-v2") + public Result> processListV2(@RequestBody ProcessListV2FormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, ProcessListV2FormDTO.ProcessListV2Form.class); + return new Result>().ok(projectTraceService.processListV2(formDTO)); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessAttachmentDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessAttachmentDao.java index afe77492a6..ea6d467deb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessAttachmentDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessAttachmentDao.java @@ -18,8 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.PublicAndInternalFileResultDTO; import com.epmet.entity.ProjectProcessAttachmentEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 项目节点附件表 @@ -29,5 +33,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ProjectProcessAttachmentDao extends BaseDao { - + + /** + * @Description 根据项目ID查询附件 + * @Param projectId + * @author zxc + * @date 2020/12/21 下午4:33 + */ + List selectAttachByProjectId(@Param("projectId")String projectId); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java index dc3260b2c8..80fa2b05a0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.ProcessProjectIdFormDTO; import com.epmet.dto.form.ProjectIdFormDTO; +import com.epmet.dto.result.ProcessListV2ResultDTO; import com.epmet.dto.result.ProcesslistResultDTO; import com.epmet.dto.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.dto.result.ProjectProcessListResultDTO; @@ -77,4 +78,12 @@ public interface ProjectProcessDao extends BaseDao { * @date 2020.09.17 17:56 **/ List selectResponseTrace(@Param("projects") List projects); + + /** + * @Description 查询项目进展 + * @Param projectId + * @author zxc + * @date 2020/12/21 下午4:18 + */ + List selectProcessList(@Param("projectId")String projectId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index 88891a3a87..256e595ce6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -1,7 +1,6 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -128,4 +127,12 @@ public interface ProjectTraceService { * @return void */ void response(TokenDto tokenDto, ProjectResponseFormDTO formDTO); + + /** + * @Description 项目处理进展列表V2 + * @Param formDTO + * @author zxc + * @date 2020/12/21 下午3:55 + */ + List processListV2(ProcessListV2FormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 229bdd5a81..b378c67891 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -4,6 +4,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ProjectConstant; +import com.epmet.dao.ProjectProcessAttachmentDao; +import com.epmet.dao.ProjectProcessDao; import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -15,8 +17,12 @@ import com.epmet.service.ProjectStaffService; import com.epmet.service.ProjectTraceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author zhaoqifeng @@ -33,6 +39,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { private ProjectStaffService projectStaffService; @Autowired private GovOrgFeignClient govOrgFeignClient; + @Autowired + private ProjectProcessDao projectProcessDao; + @Autowired + private ProjectProcessAttachmentDao attachmentDao; @Override public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { @@ -116,4 +126,31 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { formDTO.setUserId(tokenDto.getUserId()); projectService.response(formDTO); } + + /** + * @Description 项目处理进展列表V2 + * @Param formDTO + * @author zxc + * @date 2020/12/21 下午3:55 + */ + @Override + public List processListV2(ProcessListV2FormDTO formDTO) { + List processList = projectProcessDao.selectProcessList(formDTO.getProjectId()); + if (CollectionUtils.isEmpty(processList)){ + return new ArrayList<>(); + } + List files = attachmentDao.selectAttachByProjectId(formDTO.getProjectId()); + if (!CollectionUtils.isEmpty(files)){ + Map> groupByPlace = files.stream().collect(Collectors.groupingBy(PublicAndInternalFileResultDTO::getFilePlace)); + List publicFiles = groupByPlace.get(ProjectConstant.PUBLIC); + if (!CollectionUtils.isEmpty(publicFiles)){ + processList.forEach(p -> publicFiles.stream().filter(f -> p.getProcessId().equals(f.getProcessId())).forEach(f -> p.getPublicFile().add(f))); + } + List internalFiles = groupByPlace.get(ProjectConstant.INTERNAL); + if (!CollectionUtils.isEmpty(internalFiles)){ + processList.forEach(p -> internalFiles.stream().filter(f -> p.getProcessId().equals(f.getProcessId())).forEach(f -> p.getInternalFile().add(f))); + } + } + return processList; + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml index 7070a392ff..a7a58493cc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml @@ -3,5 +3,19 @@ - + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml index ceb579138d..f2bac29d4c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml @@ -84,4 +84,18 @@ ) ORDER BY process.PROJECT_ID , process.STAFF_ID , process.CREATED_TIME ASC + + + \ No newline at end of file