Browse Source

项目详情

dev_shibei_match
zxc 5 years ago
parent
commit
328a76a173
  1. 23
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectDetailResultDTO.java
  2. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
  3. 41
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessAndCurrentDeptResultDTO.java
  4. 3
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  5. 3
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  6. 4
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
  7. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
  8. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
  9. 62
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

23
epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectDetailResultDTO.java

@ -1,6 +1,7 @@
package com.epmet.project.dto.result; package com.epmet.project.dto.result;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
@ -40,6 +41,28 @@ public class ProjectDetailResultDTO implements Serializable {
*/ */
private List<ProjectProcessResultDTO> processList; private List<ProjectProcessResultDTO> processList;
/**
* 当前跟进部门
*/
private List<String> departmentNameList;
/**
* 当前跟进部门
*/
private List<com.epmet.dto.result.ProjectDetailResultDTO.DepartmentNameListBean> departmentList;
@NoArgsConstructor
@Data
public static class DepartmentNameListBean {
/**
* 部门名
*/
private String departmentName;
/**
* 工作人员
*/
private List<String> staffList;
}
public ProjectDetailResultDTO() { public ProjectDetailResultDTO() {
this.eventTitle = ""; this.eventTitle = "";
this.eventContent = ""; this.eventContent = "";

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java

@ -11,6 +11,7 @@ import com.epmet.datareport.service.evaluationindex.screen.ScreenDifficultyDataS
import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
import com.epmet.dto.result.ProcesslistResultDTO; import com.epmet.dto.result.ProcesslistResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.feign.GovProjectOpenFeignClient;
@ -190,13 +191,15 @@ public class ProjectServiceImpl implements ProjectService {
if (null == projectDetailResultDTO) { if (null == projectDetailResultDTO) {
return new ProjectDetailResultDTO(); return new ProjectDetailResultDTO();
} }
Result<List<ProcesslistResultDTO>> processList = govProjectOpenFeignClient.getProcessList(processListFormDTO); Result<ProcessAndCurrentDeptResultDTO> processList = govProjectOpenFeignClient.getProcessList(processListFormDTO);
if (!processList.success()) { if (!processList.success()) {
throw new RenException(ProjectConstant.PROCESS_FAILURE); throw new RenException(ProjectConstant.PROCESS_FAILURE);
} }
ProcessAndCurrentDeptResultDTO data = processList.getData();
List<ProjectProcessResultDTO> processResultDTOS = ConvertUtils.sourceToTarget(processList.getData(), ProjectProcessResultDTO.class); List<ProjectProcessResultDTO> processResultDTOS = ConvertUtils.sourceToTarget(data.getProcessList(), ProjectProcessResultDTO.class);
projectDetailResultDTO.setProcessList(processResultDTOS); projectDetailResultDTO.setProcessList(processResultDTOS);
projectDetailResultDTO.setDepartmentList(data.getDepartmentList());
projectDetailResultDTO.setDepartmentNameList(data.getDepartmentNameList());
return projectDetailResultDTO; return projectDetailResultDTO;
} }

41
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessAndCurrentDeptResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2020/10/26 9:36 上午
*/
@Data
public class ProcessAndCurrentDeptResultDTO implements Serializable {
private static final long serialVersionUID = 2977695657920536933L;
private List<ProcesslistResultDTO> processList;
/**
* 当前跟进部门
*/
private List<String> departmentNameList;
/**
* 当前跟进部门
*/
private List<ProjectDetailResultDTO.DepartmentNameListBean> departmentList;
@NoArgsConstructor
@Data
public static class DepartmentNameListBean {
/**
* 部门名
*/
private String departmentName;
/**
* 工作人员
*/
private List<String> staffList;
}
}

3
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.PendProjectListResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
import com.epmet.dto.result.ProcesslistResultDTO; import com.epmet.dto.result.ProcesslistResultDTO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -33,5 +34,5 @@ public interface GovProjectOpenFeignClient {
Result<List<PendProjectListResultDTO>> getPendProjectList(@RequestBody ProjectListFromDTO fromDTO); Result<List<PendProjectListResultDTO>> getPendProjectList(@RequestBody ProjectListFromDTO fromDTO);
@PostMapping("gov/project/trace/processlistnotrule") @PostMapping("gov/project/trace/processlistnotrule")
Result<List<ProcesslistResultDTO>> getProcessList(@RequestBody ProcessListFormDTO fromDTO); Result<ProcessAndCurrentDeptResultDTO> getProcessList(@RequestBody ProcessListFormDTO fromDTO);
} }

3
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.PendProjectListResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
import com.epmet.dto.result.ProcesslistResultDTO; import com.epmet.dto.result.ProcesslistResultDTO;
import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.feign.GovProjectOpenFeignClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -26,7 +27,7 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
} }
@Override @Override
public Result<List<ProcesslistResultDTO>> getProcessList(ProcessListFormDTO fromDTO) { public Result<ProcessAndCurrentDeptResultDTO> getProcessList(ProcessListFormDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO); return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO);
} }
} }

4
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java

@ -186,9 +186,9 @@ public class ProjectTraceController {
* @Description 项目跟踪-项目处理进展列表 * @Description 项目跟踪-项目处理进展列表
**/ **/
@PostMapping("processlistnotrule") @PostMapping("processlistnotrule")
public Result<List<ProcesslistResultDTO>> processListNotRule(@RequestBody ProcessListFormDTO formDTO) { public Result<ProcessAndCurrentDeptResultDTO> processListNotRule(@RequestBody ProcessListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
return new Result<List<ProcesslistResultDTO>>().ok(projectProcessService.progressList(formDTO)); return new Result<ProcessAndCurrentDeptResultDTO>().ok(projectProcessService.progressAndCurrentDept(formDTO));
} }
/** /**

9
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java

@ -24,7 +24,6 @@ import com.epmet.dto.ProjectProcessDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.ProjectProcessEntity; import com.epmet.entity.ProjectProcessEntity;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -136,4 +135,12 @@ public interface ProjectProcessService extends BaseService<ProjectProcessEntity>
*/ */
ProjectDetailCheckResultDTO checkProjectClose(ProjectIdFormDTO projectIdFormDTO); ProjectDetailCheckResultDTO checkProjectClose(ProjectIdFormDTO projectIdFormDTO);
/**
* @Description 查询项目进展和当前处理部门
* @Param formDTO
* @author zxc
* @date 2020/10/26 9:41 上午
*/
ProcessAndCurrentDeptResultDTO progressAndCurrentDept(ProcessListFormDTO formDTO);
} }

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java

@ -117,4 +117,6 @@ public interface ProjectTraceService {
* @return void * @return void
*/ */
void response(TokenDto tokenDto, ProjectResponseFormDTO formDTO); void response(TokenDto tokenDto, ProjectResponseFormDTO formDTO);
ProjectDetailResultDTO selectCurrentDept(String projectId);
} }

62
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

@ -35,15 +35,19 @@ import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant; import com.epmet.constant.ProjectConstant;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageConstant; import com.epmet.constant.UserMessageConstant;
import com.epmet.dao.ProjectDao;
import com.epmet.dao.ProjectProcessDao; import com.epmet.dao.ProjectProcessDao;
import com.epmet.dao.ProjectStaffDao; import com.epmet.dao.ProjectStaffDao;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.ProjectProcessDTO; import com.epmet.dto.ProjectProcessDTO;
import com.epmet.dto.ProjectStaffDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.ProjectEntity; import com.epmet.entity.ProjectEntity;
import com.epmet.entity.ProjectProcessEntity; import com.epmet.entity.ProjectProcessEntity;
import com.epmet.entity.ProjectStaffEntity; import com.epmet.entity.ProjectStaffEntity;
import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.ProjectProcessRedis; import com.epmet.redis.ProjectProcessRedis;
import com.epmet.service.ProjectProcessService; import com.epmet.service.ProjectProcessService;
@ -87,6 +91,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
private String scanApiUrl; private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}") @Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod; private String textSyncScanMethod;
@Autowired
private ProjectDao projectDao;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Override @Override
public PageData<ProjectProcessDTO> page(Map<String, Object> params) { public PageData<ProjectProcessDTO> page(Map<String, Object> params) {
@ -340,4 +348,58 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
return resultDTO; return resultDTO;
} }
/**
* @Description 查询项目进展和当前处理部门
* @Param formDTO
* @author zxc
* @date 2020/10/26 9:41 上午
*/
@Override
public ProcessAndCurrentDeptResultDTO progressAndCurrentDept(ProcessListFormDTO formDTO) {
ProcessAndCurrentDeptResultDTO result = new ProcessAndCurrentDeptResultDTO();
result.setProcessList(progressList(formDTO));
//获取当前跟进部门
List<String> departments = new ArrayList<>();
List<ProjectStaffDTO> departmentNameList = new ArrayList<>();
List<ProjectDetailResultDTO.DepartmentNameListBean> departmentList = new ArrayList<>();
ProjectDetailResultDTO projectDetailResultDTO = projectDao.selectProjectDetail(formDTO.getProjectId());
if (ProjectConstant.CLOSED.equals(projectDetailResultDTO.getProjectStatus())) {
//项目已结案,跟进部门为空
result.setDepartmentList(departmentList);
result.setDepartmentNameList(departments);
} else {
//项目未结案,找出所有跟进部门
ProjectDTO projectDTO = new ProjectDTO();
projectDTO.setId(formDTO.getProjectId());
departmentNameList = projectDao.selectCurrentDepartmentList(projectDTO);
//提取工作人员ID
List<String> staffIdList = departmentNameList.stream().map(ProjectStaffDTO::getStaffId).collect(Collectors.toList());
staffIdList = staffIdList.stream().distinct().collect(Collectors.toList());
//根据部门分组
Map<String, List<ProjectStaffDTO>> departmentMap =
departmentNameList.stream().collect(Collectors.groupingBy(ProjectStaffDTO::getDepartmentName));
//获取工作人员信息(姓名)
UserIdsFormDTO userIdsFormDTO = new UserIdsFormDTO();
userIdsFormDTO.setUserIds(staffIdList);
Result<List<StaffSinGridResultDTO>> staffListResult = epmetUserOpenFeignClient.getStaffInfoList(userIdsFormDTO);
if (!staffListResult.success()) {
throw new RenException(staffListResult.getCode(), staffListResult.getMsg());
}
List<StaffSinGridResultDTO> staffList = staffListResult.getData();
for (String departmentName : departmentMap.keySet()) {
ProjectDetailResultDTO.DepartmentNameListBean bean = new ProjectDetailResultDTO.DepartmentNameListBean();
bean.setDepartmentName(departmentName);
List<ProjectStaffDTO> staffDTOList = departmentMap.get(departmentName);
List<String> staffNameList =
staffDTOList.stream().flatMap(staffDto -> staffList.stream().filter(staffInfo ->
staffDto.getStaffId().equals(staffInfo.getStaffId())).map((StaffSinGridResultDTO::getStaffName))).collect(Collectors.toList());
bean.setStaffList(staffNameList);
departmentList.add(bean);
departments.add(departmentName);
}
result.setDepartmentList(departmentList);
result.setDepartmentNameList(departments);
}
return result;
}
} }
Loading…
Cancel
Save