8-8 查询项目下的设备和任务完成进度

This commit is contained in:
郝彬 2025-08-08 16:25:07 +08:00
parent 231faee0d0
commit 078f0699fa
7 changed files with 89 additions and 10 deletions

View File

@ -214,4 +214,7 @@ public class EquipmentEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic(value = "0", delval = "1")
private String delFlag;
@ApiModelProperty("项目id")
private String projectId;
}

View File

@ -0,0 +1,23 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("项目任务详情响应实体")
public class ProjectTasksDetailResp {
private List<ProjectTaskResp> list;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目任务总数")
private Integer total;
@ApiModelProperty("已完成任务数")
private Integer finished;
}

View File

@ -89,5 +89,7 @@ public interface ProjectTaskService extends IService<ProjectTaskEntity> {
* @date 2025/06/25 21:16
**/
void endTask(ProjectTaskStartReq taskStartReq);
List<ProjectTaskResp> getTaskByProjectId(String projectId);
}

View File

@ -90,6 +90,7 @@ public class EquipmentUseRecordServiceImpl extends ServiceImpl<EquipmentUseRecor
this.save(equipmentUseRecordEntity);
equipment.setUseStatus("1");
equipment.setProjectId(req.getProjectId());
equipment.setUseRecordId(equipmentUseRecordEntity.getUseRecordId());
equipmentService.updateById(equipment);
@ -132,6 +133,7 @@ public class EquipmentUseRecordServiceImpl extends ServiceImpl<EquipmentUseRecor
equipment.setUseRecordId(null);
equipment.setUseStatus("0");
equipment.setProjectId(null);
equipmentService.updateById(equipment);
}
}

View File

@ -2,9 +2,11 @@ package com.dite.znpt.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.constant.Message;
import com.dite.znpt.domain.entity.AttachInfoEntity;
@ -19,11 +21,13 @@ import com.dite.znpt.exception.ServiceException;
import com.dite.znpt.mapper.ProjectTaskGroupMapper;
import com.dite.znpt.mapper.ProjectTaskMapper;
import com.dite.znpt.service.AttachInfoService;
import com.dite.znpt.service.ProjectService;
import com.dite.znpt.service.ProjectTaskService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;
@ -41,6 +45,9 @@ public class ProjectTaskServiceImpl extends ServiceImpl<ProjectTaskMapper, Proje
private final AttachInfoService attachInfoService;
private final ProjectTaskGroupMapper projectTaskGroupMapper;
@Resource
private ProjectService projectService;
/**
* 功能描述查询项目任务信息列表
*
@ -265,4 +272,17 @@ public class ProjectTaskServiceImpl extends ServiceImpl<ProjectTaskMapper, Proje
});
baseMapper.updateById(list);
}
@Override
public List<ProjectTaskResp> getTaskByProjectId(String projectId) {
QueryWrapper<ProjectTaskEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
List<ProjectTaskEntity> list = baseMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(list)) {
return Collections.emptyList(); // 返回不可修改的空集合
}
String projectName = projectService.getById(projectId).getProjectName();
List<ProjectTaskResp> respList = list.stream().map(item -> BeanUtil.copyProperties(item, ProjectTaskResp.class)).toList();
return respList;
}
}

View File

@ -2,12 +2,12 @@ package com.dite.znpt.web.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dite.znpt.constant.Constants;
import com.dite.znpt.domain.vo.ProjectListReq;
import com.dite.znpt.domain.vo.ProjectListResp;
import com.dite.znpt.domain.vo.ProjectReq;
import com.dite.znpt.domain.vo.ProjectResp;
import com.dite.znpt.domain.entity.EquipmentEntity;
import com.dite.znpt.domain.vo.*;
import com.dite.znpt.domain.entity.ProjectEntity;
import com.dite.znpt.service.EquipmentService;
import com.dite.znpt.service.ProjectService;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.PageResult;
@ -35,6 +35,9 @@ public class ProjectController {
@Resource
private ProjectService projectService;
@Resource
private EquipmentService equipmentService;
@ApiOperation(value = "分页查询项目信息列表", httpMethod = "GET")
@GetMapping("/page")
public PageResult<ProjectListResp> page(ProjectListReq req) {
@ -100,5 +103,13 @@ public class ProjectController {
return Result.ok(projectService.list(req));
}
@ApiOperation(value = "查询项目下的设备列表", httpMethod = "GET")
@GetMapping("/{projectId}/equipments")
public Result<List<EquipmentEntity>> equipments(@PathVariable String projectId) {
QueryWrapper<EquipmentEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("del_flag", Constants.DEL_FLAG_0);
queryWrapper.eq("use_status", "1");
queryWrapper.eq("project_id", projectId);
return Result.ok(equipmentService.list(queryWrapper));
}
}

View File

@ -2,10 +2,14 @@ package com.dite.znpt.web.controller;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dite.znpt.constant.Constants;
import com.dite.znpt.domain.PageResult;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.entity.ProjectTaskEntity;
import com.dite.znpt.domain.vo.*;
import com.dite.znpt.service.ProjectService;
import com.dite.znpt.service.ProjectTaskService;
import com.dite.znpt.util.PageUtil;
import com.dite.znpt.util.ValidationGroup;
@ -19,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@ -32,6 +37,9 @@ public class ProjectTaskController {
@Resource
private ProjectTaskService projectTaskService;
@Resource
private ProjectService projectService;
@ApiOperation(value = "获取项目任务信息列表", httpMethod = "GET")
@GetMapping("/list")
public PageResult<ProjectTaskResp> list(ProjectTaskListReq projectTaskReq) {
@ -105,5 +113,15 @@ public class ProjectTaskController {
req.setUserId(StpUtil.getLoginIdAsString());
return Result.ok(projectTaskService.selectList(req));
}
}
@ApiOperation(value = "根据项目id查询任务列表", httpMethod = "GET")
@GetMapping("/{projectId}/tasks")
public Result<ProjectTasksDetailResp> getTaskByProjectId(@PathVariable String projectId) {
ProjectTasksDetailResp resp = new ProjectTasksDetailResp();
resp.setProjectName(projectService.getById(projectId).getProjectName());
resp.setList(projectTaskService.getTaskByProjectId(projectId));
resp.setTotal(resp.getList().size());
resp.setFinished((int) resp.getList().stream().filter(projectTaskResp -> projectTaskResp.getStatus() == 2).count());
return Result.ok(resp);
}
}