diff --git a/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java index 4224af2..e6d836b 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java @@ -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; +} \ No newline at end of file diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTasksDetailResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTasksDetailResp.java new file mode 100644 index 0000000..b4b13c4 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTasksDetailResp.java @@ -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 list; + + @ApiModelProperty("项目名称") + private String projectName; + + @ApiModelProperty("项目任务总数") + private Integer total; + + @ApiModelProperty("已完成任务数") + private Integer finished; +} \ No newline at end of file diff --git a/core/src/main/java/com/dite/znpt/service/ProjectTaskService.java b/core/src/main/java/com/dite/znpt/service/ProjectTaskService.java index a142201..8eb9fe5 100644 --- a/core/src/main/java/com/dite/znpt/service/ProjectTaskService.java +++ b/core/src/main/java/com/dite/znpt/service/ProjectTaskService.java @@ -89,5 +89,7 @@ public interface ProjectTaskService extends IService { * @date 2025/06/25 21:16 **/ void endTask(ProjectTaskStartReq taskStartReq); + + List getTaskByProjectId(String projectId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/EquipmentUseRecordServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/EquipmentUseRecordServiceImpl.java index 2db0c74..33e7555 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/EquipmentUseRecordServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/EquipmentUseRecordServiceImpl.java @@ -90,6 +90,7 @@ public class EquipmentUseRecordServiceImpl extends ServiceImpl getTaskByProjectId(String projectId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_id", projectId); + List list = baseMapper.selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); // 返回不可修改的空集合 + } + String projectName = projectService.getById(projectId).getProjectName(); + List respList = list.stream().map(item -> BeanUtil.copyProperties(item, ProjectTaskResp.class)).toList(); + return respList; + } +} \ No newline at end of file diff --git a/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java b/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java index 88f58b4..4136c4b 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java @@ -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 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> equipments(@PathVariable String projectId) { + QueryWrapper 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)); + } +} \ No newline at end of file diff --git a/web/src/main/java/com/dite/znpt/web/controller/ProjectTaskController.java b/web/src/main/java/com/dite/znpt/web/controller/ProjectTaskController.java index dd59781..1bf92ce 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ProjectTaskController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ProjectTaskController.java @@ -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 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 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); + } +} \ No newline at end of file