小程序 首页 项目 完成任务最新一条
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
|||||||
|
package cn.iocoder.yudao.framework.common.page;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(value = "PageDTO", description = "分页对象")
|
||||||
|
public class PageDTO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("页码")
|
||||||
|
private Integer pageNum = 1;
|
||||||
|
|
||||||
|
@ApiModelProperty("每页数量")
|
||||||
|
private Integer pageSize = 10;
|
||||||
|
|
||||||
|
@ApiModelProperty("搜索关键字")
|
||||||
|
private String searchKey;
|
||||||
|
}
|
||||||
+8
-1
@@ -1,12 +1,13 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.project;
|
package cn.iocoder.yudao.module.farm.controller.admin.project;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
import javax.validation.constraints.*;
|
|
||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
import javax.servlet.http.*;
|
import javax.servlet.http.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -105,4 +106,10 @@ public class ProjectController {
|
|||||||
ExcelUtils.write(response, "农场项目.xls", "数据", ProjectExcelVO.class, datas);
|
ExcelUtils.write(response, "农场项目.xls", "数据", ProjectExcelVO.class, datas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("小程序项目列表")
|
||||||
|
@PostMapping("/findProjectList")
|
||||||
|
public List<ProjectListDTO> findProjectList(ProjectPageDTO pageDTO){
|
||||||
|
return projectService.findProjectList(pageDTO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.project.dto;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ProjectListDTO extends ProjectDO {
|
||||||
|
|
||||||
|
|
||||||
|
List<String> areaName;
|
||||||
|
|
||||||
|
List<String> executorName;
|
||||||
|
|
||||||
|
String taskName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.project.dto;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageDTO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ProjectPageDTO extends PageDTO {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer state;
|
||||||
|
}
|
||||||
+7
@@ -5,6 +5,7 @@ import java.util.*;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
||||||
@@ -49,4 +50,10 @@ public interface ProjectMapper extends BaseMapperX<ProjectDO> {
|
|||||||
|
|
||||||
List<ProjectDO> getProjectSearchPage(ProjectSearchPageReqVO reqVO);
|
List<ProjectDO> getProjectSearchPage(ProjectSearchPageReqVO reqVO);
|
||||||
|
|
||||||
|
default List<ProjectDO> findProjectList(ProjectPageDTO pageDTO){
|
||||||
|
return selectList(new LambdaQueryWrapperX<ProjectDO>()
|
||||||
|
.eqIfPresent(ProjectDO::getState, pageDTO.getState())
|
||||||
|
.orderByDesc(ProjectDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.farm.service.project;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
@@ -72,4 +75,10 @@ public interface ProjectService {
|
|||||||
*/
|
*/
|
||||||
List<ProjectDO> getProjectList(ProjectExportReqVO exportReqVO);
|
List<ProjectDO> getProjectList(ProjectExportReqVO exportReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description 小程序项目列表
|
||||||
|
**/
|
||||||
|
List<ProjectListDTO> findProjectList(ProjectPageDTO pageDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+119
@@ -1,10 +1,31 @@
|
|||||||
package cn.iocoder.yudao.module.farm.service.project;
|
package cn.iocoder.yudao.module.farm.service.project;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.taskCate.TaskCateDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
||||||
|
import cn.iocoder.yudao.module.farm.service.task.TaskService;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.service.CpUser.CpUserService;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.vo.*;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
@@ -26,6 +47,14 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ProjectMapper projectMapper;
|
private ProjectMapper projectMapper;
|
||||||
|
@Resource
|
||||||
|
private TaskMapper taskMapper;
|
||||||
|
@Resource
|
||||||
|
private CpUserMapper cpUserMapper;
|
||||||
|
@Resource
|
||||||
|
private AreaMapper areaMapper;
|
||||||
|
@Resource
|
||||||
|
private TaskCateMapper taskCateMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createProject(ProjectCreateReqVO createReqVO) {
|
public Long createProject(ProjectCreateReqVO createReqVO) {
|
||||||
@@ -89,4 +118,94 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
return projectMapper.selectList(exportReqVO);
|
return projectMapper.selectList(exportReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProjectListDTO> findProjectList(ProjectPageDTO pageDTO){
|
||||||
|
List<ProjectDO> list = projectMapper.findProjectList(pageDTO);
|
||||||
|
List<Long> idList = list.stream().map(ProjectDO::getId).collect(Collectors.toList());
|
||||||
|
//任务完成的
|
||||||
|
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery().in(TaskDO::getProjectId, idList)
|
||||||
|
.eq(TaskDO::getStatus, TaskStatus.COMPLETE.getCode()));
|
||||||
|
|
||||||
|
Set<Long> personSet = new HashSet<>();
|
||||||
|
Set<Long> areaSet = new HashSet<>();
|
||||||
|
Set<Long> taskCateSet = new HashSet<>();
|
||||||
|
|
||||||
|
taskList.stream().forEach(item ->{
|
||||||
|
//项目参与人
|
||||||
|
item.getExecutorPerson().forEach(p ->{
|
||||||
|
if (p != null) {
|
||||||
|
personSet.add(Long.valueOf( p.toString()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//项目区域
|
||||||
|
if (item.getAreas() != null){
|
||||||
|
item.getAreas().forEach(area ->{
|
||||||
|
JSONArray array = JSONArray.parseArray(area.toString());
|
||||||
|
areaSet.add(Long.valueOf(array.get(0).toString()));
|
||||||
|
areaSet.add(Long.valueOf(array.get(1).toString()));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//任务分类名
|
||||||
|
taskCateSet.add(item.getTaskCateId().longValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
List<Long> joinPerson = new ArrayList<Long>(personSet);
|
||||||
|
List<CpUserDO> cpUserList = cpUserMapper.selectList(Wrappers.<CpUserDO>lambdaQuery().in(CpUserDO::getId, joinPerson));
|
||||||
|
List<Long> joinArea = new ArrayList<Long>(areaSet);
|
||||||
|
List<AreaDO> areaDOList = areaMapper.selectList(Wrappers.<AreaDO>lambdaQuery().in(AreaDO::getId, joinArea));
|
||||||
|
List<Long> joinTaskCate = new ArrayList<>(taskCateSet);
|
||||||
|
List<TaskCateDO> taskCateDOList = taskCateMapper.selectList(Wrappers.<TaskCateDO>lambdaQuery().in(TaskCateDO::getId, joinTaskCate));
|
||||||
|
|
||||||
|
//拼接 姓名/区域/任务名
|
||||||
|
List<ProjectListDTO> dto = BeanUtil.copyToList(list, ProjectListDTO.class);
|
||||||
|
for (ProjectListDTO projectListDTO : dto) {
|
||||||
|
for (TaskDO taskDO : taskList) {
|
||||||
|
|
||||||
|
if (Long.valueOf(taskDO.getProjectId()).equals(projectListDTO.getId())){
|
||||||
|
//任务名
|
||||||
|
for (TaskCateDO taskCateDO : taskCateDOList) {
|
||||||
|
if (taskCateDO.getId().equals(Long.valueOf(taskDO.getTaskCateId()))){
|
||||||
|
projectListDTO.setTaskName(taskCateDO.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//执行人
|
||||||
|
List<String> personNameList = new ArrayList<>();
|
||||||
|
for (Long executorPerson : taskDO.getExecutorPerson().toJavaList(Long.class)) {
|
||||||
|
for (CpUserDO cpUserDO : cpUserList) {
|
||||||
|
if (cpUserDO.getId().equals(executorPerson)){
|
||||||
|
personNameList.add(cpUserDO.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectListDTO.setExecutorName(personNameList);
|
||||||
|
}
|
||||||
|
//任务区域
|
||||||
|
List<String> areaNameList = new ArrayList<>();
|
||||||
|
for (Object area : taskDO.getAreas()) {
|
||||||
|
JSONArray array = JSONArray.parseArray(area.toString());
|
||||||
|
Long areaParent = Long.valueOf(String.valueOf(array.get(0)));
|
||||||
|
Long areaSon = Long.valueOf(String.valueOf(array.get(1)));
|
||||||
|
|
||||||
|
StringBuilder areaName = new StringBuilder();
|
||||||
|
for (AreaDO areaDO : areaDOList) {
|
||||||
|
if (areaDO.getId().equals(areaParent)){
|
||||||
|
areaName.append(areaDO.getName());
|
||||||
|
}
|
||||||
|
if (areaDO.getId().equals(areaSon)){
|
||||||
|
areaName.append(areaDO.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(areaName)){
|
||||||
|
areaNameList.add(areaName.toString());
|
||||||
|
}
|
||||||
|
projectListDTO.setAreaName(areaNameList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user