Browse Source

项目进展V2

dev_shibei_match
zxc 5 years ago
parent
commit
315dc2f3c4
  1. 21
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListV2FormDTO.java
  2. 72
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java
  3. 61
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PublicAndInternalFileResultDTO.java
  4. 4
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
  5. 12
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
  6. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessAttachmentDao.java
  7. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
  8. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
  9. 37
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  10. 16
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml
  11. 14
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml

21
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;
}

72
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<PublicAndInternalFileResultDTO> publicFile;
/**
*
*/
private List<PublicAndInternalFileResultDTO> 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<>();
}
}

61
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;
}
}

4
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";
}

12
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<List<ProcessListV2ResultDTO>> processListV2(@RequestBody ProcessListV2FormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ProcessListV2FormDTO.ProcessListV2Form.class);
return new Result<List<ProcessListV2ResultDTO>>().ok(projectTraceService.processListV2(formDTO));
}
}

14
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<ProjectProcessAttachmentEntity> {
/**
* @Description 根据项目ID查询附件
* @Param projectId
* @author zxc
* @date 2020/12/21 下午4:33
*/
List<PublicAndInternalFileResultDTO> selectAttachByProjectId(@Param("projectId")String projectId);
}

9
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<ProjectProcessEntity> {
* @date 2020.09.17 17:56
**/
List<ProjectOrgRelationWhenResponseResultDTO> selectResponseTrace(@Param("projects") List<String> projects);
/**
* @Description 查询项目进展
* @Param projectId
* @author zxc
* @date 2020/12/21 下午4:18
*/
List<ProcessListV2ResultDTO> selectProcessList(@Param("projectId")String projectId);
}

9
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<ProcessListV2ResultDTO> processListV2(ProcessListV2FormDTO formDTO);
}

37
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<PendProjectListResultDTO> 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<ProcessListV2ResultDTO> processListV2(ProcessListV2FormDTO formDTO) {
List<ProcessListV2ResultDTO> processList = projectProcessDao.selectProcessList(formDTO.getProjectId());
if (CollectionUtils.isEmpty(processList)){
return new ArrayList<>();
}
List<PublicAndInternalFileResultDTO> files = attachmentDao.selectAttachByProjectId(formDTO.getProjectId());
if (!CollectionUtils.isEmpty(files)){
Map<String, List<PublicAndInternalFileResultDTO>> groupByPlace = files.stream().collect(Collectors.groupingBy(PublicAndInternalFileResultDTO::getFilePlace));
List<PublicAndInternalFileResultDTO> 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<PublicAndInternalFileResultDTO> 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;
}
}

16
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessAttachmentDao.xml

@ -3,5 +3,19 @@
<mapper namespace="com.epmet.dao.ProjectProcessAttachmentDao">
<!-- 根据项目ID查询附件 -->
<select id="selectAttachByProjectId" resultType="com.epmet.dto.result.PublicAndInternalFileResultDTO">
SELECT
ATTACHMENT_NAME AS name,
ATTACHMENT_URL AS url,
ATTACHMENT_TYPE AS type,
ATTACHMENT_FORMAT AS format,
ATTACHMENT_SIZE AS size,
DURATION,
PROCESS_ID,
FILE_PLACE
FROM project_process_attachment
WHERE DEL_FLAG = '0'
AND PROJECT_ID = #{projectId}
</select>
</mapper>

14
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
</select>
<!-- 查询项目进展 -->
<select id="selectProcessList" resultType="com.epmet.dto.result.ProcessListV2ResultDTO">
SELECT
PROJECT_ID,
ID AS processId,
OPERATION_NAME AS processName,
DEPARTMENT_NAME,
PUBLIC_REPLY,
INTERNAL_REMARK
FROM project_process
WHERE DEL_FLAG = '0'
AND PROJECT_ID = #{projectId}
</select>
</mapper>
Loading…
Cancel
Save