Browse Source

项目管理列表暂提

dev
zxc 3 years ago
parent
commit
43203d76d1
  1. 43
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectManageListFormDTO.java
  2. 82
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectManageListResultDTO.java
  3. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  4. 7
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  5. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  6. 51
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  7. 25
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

43
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectManageListFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/5/17 14:14
* @DESC
*/
@Data
public class ProjectManageListFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = -3317804468566708838L;
public interface ProjectManageListForm{}
/**
* 标题
*/
private String title;
/**
* 转项目开始日期eg20220505
*/
private String startDate;
/**
* 转项目结束日期eg20220505
*/
private String endDate;
/**
* all全部closed已关闭pending待处理
*/
@NotBlank(message = "status不能为空",groups = ProjectManageListForm.class)
private String status;
private String userId;
}

82
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectManageListResultDTO.java

@ -0,0 +1,82 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/5/17 14:27
* @DESC
*/
@Data
public class ProjectManageListResultDTO implements Serializable {
private static final long serialVersionUID = 2374701362057175388L;
/**
* 所顺网格
*/
private String gridName;
private String gridId;
/**
* 项目ID
*/
private String projectId;
/**
* 项目标题
*/
private String title;
/**
* 转项目时间
*/
private String shiftProjectTime;
/**
* 项目方案
*/
private String projectScheme;
/**
* 内部备注
*/
private String internalRemark;
/**
* 滞留天数
*/
private Integer detentionDays;
/**
* 状态
*/
private String status;
private String statusValue;
/**
* 处理部门
*/
private List<String> departmentNameList;
private Date updatedTime;
private String isHandle;
public ProjectManageListResultDTO() {
this.gridName = "";
this.title = "";
this.shiftProjectTime = "";
this.projectScheme = "";
this.internalRemark = "";
this.detentionDays = NumConstant.ZERO;
this.status = "";
this.departmentNameList = new ArrayList<>();
this.projectId = "";
}
}

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java

@ -336,4 +336,18 @@ public class ProjectController {
public Result<ProjectAuditResetResultDTO> eventAuditReset(@RequestParam("gridId")String gridId){
return new Result<ProjectAuditResetResultDTO>().ok(projectService.eventAuditReset(gridId));
}
/**
* Desc: 列表项目管理
* @param tokenDto
* @param formDTO
* @author zxc
* @date 2022/5/17 14:19
*/
@PostMapping("project-list")
public Result<PageData> projectList(@LoginUser TokenDto tokenDto,ProjectManageListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ProjectManageListFormDTO.ProjectManageListForm.class);
formDTO.setUserId(tokenDto.getUserId());
return new Result<PageData>().ok(projectService.projectList(formDTO));
}
}

7
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -21,10 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.EventProjectInfoDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.ProjectStaffDTO;
import com.epmet.dto.form.LatestListFormDTO;
import com.epmet.dto.form.PatrolProjectFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.form.ShiftProjectsFromDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.ProjectEntity;
import org.apache.ibatis.annotations.Mapper;
@ -300,4 +297,6 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
*/
Integer selectEventStatus(@Param("gridId") String gridId);
List<ProjectManageListResultDTO> getProjectManageList(ProjectManageListFormDTO formDTO);
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -385,4 +385,12 @@ public interface ProjectService extends BaseService<ProjectEntity> {
*/
ProjectAuditResetResultDTO eventAuditReset(String gridId);
/**
* Desc: 列表项目管理
* @param formDTO
* @author zxc
* @date 2022/5/17 14:19
*/
PageData projectList(ProjectManageListFormDTO formDTO);
}

51
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -32,6 +32,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
@ -3170,6 +3171,56 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return result;
}
/**
* Desc: 列表项目管理,包括 待我处理的项目我发起的项目我参与的项目
* @param formDTO
* @author zxc
* @date 2022/5/17 14:19
*/
@Override
public PageData<ProjectManageListResultDTO> projectList(ProjectManageListFormDTO formDTO) {
PageData<ProjectManageListResultDTO> result = new PageData<>(new ArrayList<>(),NumConstant.ZERO);
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
List<ProjectManageListResultDTO> projectManageList = baseDao.getProjectManageList(formDTO);
if (CollectionUtils.isNotEmpty(projectManageList)){
// 获取滞留天数
Integer days = getDays(ConvertUtils.sourceToTarget(formDTO, ProjectListFromDTO.class));
projectManageList.forEach(p -> {
// 所属网格赋值
if (StringUtils.isNotBlank(p.getGridId())){
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(p.getGridId());
if (null == gridInfo){
throw new EpmetException("未查询到网格信息"+p.getGridId());
}
p.setGridName(gridInfo.getGridNamePath());
}
// 获取当前处理部门
List<String> departmentNameList = new ArrayList<>();
if (ProjectConstant.CLOSED.equals(p.getStatus())) {
p.setDepartmentNameList(departmentNameList);
p.setDetentionDays(NumConstant.ZERO);
} else {
ProjectDTO projectDTO = ConvertUtils.sourceToTarget(p, ProjectDTO.class);
projectDTO.setId(p.getProjectId());
if (p.getIsHandle().equals("unhandled")){
String detentionDays = getDetentionDays(projectDTO);
if (!ONE_DAY.equals(detentionDays) && Integer.parseInt(detentionDays) > days) {
p.setDetentionDays(Integer.valueOf(detentionDays));
} else {
p.setDetentionDays(Integer.valueOf(detentionDays));
}
}
departmentNameList = baseDao.selectDepartmentNameList(projectDTO);
p.setDepartmentNameList(departmentNameList);
}
});
result.setTotal(projectManageList.size());
result.setList(projectManageList);
}
return result;
}
/**
* @Description 区间项目分类数量处理
* 查询的是时间段内的分类项目数查询的时间 是传入一个日期拼上时间在进行比较大小

25
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -564,4 +564,29 @@
AND p.status = 'pending'
ORDER BY psp.created_time, p.created_time ASC<!-- 先按滞留时间降序再按创建时间升序 -->
</select>
<!-- -->
<select id="getProjectManageList" resultType="com.epmet.dto.result.ProjectManageListResultDTO">
SELECT
p.TITLE,
p.GRID_ID,
(CASE WHEN p.STATUS = 'closed' THEN '已结案' ELSE '未结案' END) AS statusValue,
p.STATUS,
p.CREATED_TIME AS shiftProjectTime,
ps.IS_HANDLE,
ps.CREATED_TIME AS updatedTime,
t.* FROM
(SELECT
DISTINCT pp.PROJECT_ID,
pp.INTERNAL_REMARK,
pp.PUBLIC_REPLY AS projectScheme
FROM project_process pp
WHERE DEL_FLAG = '0'
AND pp.STAFF_ID = #{userId}
ORDER BY pp.CREATED_TIME DESC) t
INNER JOIN project p ON p.ID = t.PROJECT_ID AND p.DEL_FLAG = '0'
LEFT JOIN project_staff ps ON ps.PROJECT_ID = t.PROJECT_ID AND ps.DEL_FLAG = '0'
GROUP BY t.PROJECT_ID
LIMIT #{pageNo}, #{pageSize}
</select>
</mapper>
Loading…
Cancel
Save