From 55ba50254a2f151ea62f132c368b95990763e2a5 Mon Sep 17 00:00:00 2001 From: pve-win10 Date: Mon, 21 Jul 2025 23:15:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=BF=9B=E5=BA=A6=E5=A2=9E=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AEid=E5=AD=97=E6=AE=B5=202.=E6=96=B0=E5=A2=9E=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E5=8F=B0=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=203.=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=95=B0=E7=BB=9F=E8=AE=A1=204.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=88=91=E7=9A=84=E9=A1=B9=E7=9B=AE=E3=80=81=E6=88=91=E7=9A=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dite/znpt/config/YoloModelRegistry.java | 8 +-- .../dite/znpt/domain/entity/DefectEntity.java | 2 + .../znpt/domain/entity/ProjectTaskEntity.java | 4 ++ .../domain/entity/ProjectTaskGroupEntity.java | 4 ++ .../dite/znpt/domain/vo/ProjectListReq.java | 3 ++ .../dite/znpt/domain/vo/ProjectListResp.java | 12 +++++ .../domain/vo/ProjectTaskGroupListReq.java | 3 ++ .../znpt/domain/vo/ProjectTaskGroupReq.java | 5 ++ .../znpt/domain/vo/ProjectTaskGroupResp.java | 2 + .../znpt/domain/vo/ProjectTaskImportReq.java | 4 ++ .../znpt/domain/vo/ProjectTaskListReq.java | 6 +++ .../dite/znpt/domain/vo/ProjectTaskReq.java | 4 ++ .../dite/znpt/domain/vo/ProjectTaskResp.java | 2 + .../znpt/domain/vo/WorkbenchInfoResp.java | 28 ++++++++++ .../dite/znpt/service/WorkbenchService.java | 15 ++++++ .../service/impl/ProjectTaskServiceImpl.java | 1 - .../service/impl/WorkbenchServiceImpl.java | 53 +++++++++++++++++++ .../main/resources/mapper/ProjectMapper.xml | 20 ++++++- .../mapper/ProjectTaskGroupMapper.xml | 8 ++- .../resources/mapper/ProjectTaskMapper.xml | 9 +++- .../web/controller/ProjectController.java | 10 ++++ .../web/controller/ProjectTaskController.java | 10 ++++ .../web/controller/WorkbenchController.java | 34 ++++++++++++ 23 files changed, 237 insertions(+), 10 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/WorkbenchInfoResp.java create mode 100644 core/src/main/java/com/dite/znpt/service/WorkbenchService.java create mode 100644 core/src/main/java/com/dite/znpt/service/impl/WorkbenchServiceImpl.java create mode 100644 web/src/main/java/com/dite/znpt/web/controller/WorkbenchController.java diff --git a/core/src/main/java/com/dite/znpt/config/YoloModelRegistry.java b/core/src/main/java/com/dite/znpt/config/YoloModelRegistry.java index 8d3584c..d820dd0 100644 --- a/core/src/main/java/com/dite/znpt/config/YoloModelRegistry.java +++ b/core/src/main/java/com/dite/znpt/config/YoloModelRegistry.java @@ -43,10 +43,10 @@ public class YoloModelRegistry { @PostConstruct public void loadModelsOnStartup() throws OrtException { - List configs = modelConfigMapper.selectList(Wrappers.emptyWrapper()); - for (ModelConfigEntity config : configs) { - loadModel(config); - } +// List configs = modelConfigMapper.selectList(Wrappers.emptyWrapper()); +// for (ModelConfigEntity config : configs) { +// loadModel(config); +// } } public void loadModel(ModelConfigEntity config) throws OrtException { diff --git a/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java index a4d352a..1921e16 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java @@ -1,5 +1,6 @@ package com.dite.znpt.domain.entity; +import java.io.Serial; import java.math.BigDecimal; import java.io.Serializable; import java.time.LocalDateTime; @@ -23,6 +24,7 @@ import com.alibaba.excel.annotation.ExcelProperty; @ApiModel(value="DefectEntity对象", description="缺陷记录表") public class DefectEntity extends AuditableEntity implements Serializable { + @Serial private static final long serialVersionUID = 721961595098309935L; @ExcelProperty("缺陷id") diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskEntity.java index 3c3560d..e2a25e8 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskEntity.java @@ -81,5 +81,9 @@ public class ProjectTaskEntity extends AuditableEntity implements Serializable { @ApiModelProperty("备注") @TableField("remark") private String remark; + + @ApiModelProperty("项目id") + @TableField("project_id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskGroupEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskGroupEntity.java index 15f38a0..e46c2c7 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskGroupEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectTaskGroupEntity.java @@ -33,5 +33,9 @@ public class ProjectTaskGroupEntity extends AuditableEntity implements Serializa @ApiModelProperty("项目任务组名") @TableField("group_name") private String groupName; + + @ApiModelProperty("项目id") + @TableField("project_id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java index 42f55e5..a285e33 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java @@ -41,5 +41,8 @@ public class ProjectListReq implements Serializable { @ApiModelProperty("项目结束日期") private LocalDate endDate; + @ApiModelProperty(value = "用户id", hidden = true) + private String userId; + } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java index 8947fcc..f0578ef 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java @@ -90,4 +90,16 @@ public class ProjectListResp implements Serializable { @ApiModelProperty(value = "结束时间") private LocalDate endDate; + + @ApiModelProperty(value = "未开始任务数") + private Integer taskPendingCount; + + @ApiModelProperty(value = "进行中任务数") + private Integer taskProgressCount; + + @ApiModelProperty(value = "已完成任务数") + private Integer taskCompleteCount; + + @ApiModelProperty(value = "总任务数") + private Integer taskCount; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupListReq.java index 26d9076..c203b19 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupListReq.java @@ -29,5 +29,8 @@ public class ProjectTaskGroupListReq implements Serializable { @ApiModelProperty("任务名称/负责人") private String keyword; + @ApiModelProperty("项目id") + private String projectId; + } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupReq.java index 6d91415..c069967 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupReq.java @@ -11,6 +11,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; /** @@ -34,5 +35,9 @@ public class ProjectTaskGroupReq implements Serializable { @Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "项目任务组名长度不能超过100字符") @ApiModelProperty("项目任务组名") private String groupName; + + @NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目id不能为空") + @ApiModelProperty("项目id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupResp.java index 14027da..3c1242a 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskGroupResp.java @@ -21,5 +21,7 @@ public class ProjectTaskGroupResp extends ProjectTaskGroupEntity { @ApiModelProperty("任务列表") private List taskList; + @ApiModelProperty("项目名称") + private String projectName; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskImportReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskImportReq.java index bc56499..f647f34 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskImportReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskImportReq.java @@ -2,6 +2,7 @@ package com.dite.znpt.domain.vo; import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -60,4 +61,7 @@ public class ProjectTaskImportReq implements Serializable { @ExcelProperty(value = "备注") private String remark; + + @ApiModelProperty("项目id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskListReq.java index ecca3b6..8e9ac9b 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskListReq.java @@ -65,5 +65,11 @@ public class ProjectTaskListReq implements Serializable { @ApiModelProperty(value = "导出?", hidden = true) private Boolean isExport; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty(value = "用户id", hidden = true) + private String userId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskReq.java index 14d6b97..cf66cad 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskReq.java @@ -80,5 +80,9 @@ public class ProjectTaskReq implements Serializable { @ApiModelProperty("备注") private String remark; + + @NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目id不能为空") + @ApiModelProperty("项目id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskResp.java index 605b3c6..df9696a 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectTaskResp.java @@ -23,5 +23,7 @@ public class ProjectTaskResp extends ProjectTaskEntity { @ApiModelProperty("附件列表") private List attachList; + @ApiModelProperty("项目名称") + private String projectName; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/WorkbenchInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/WorkbenchInfoResp.java new file mode 100644 index 0000000..197e778 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/WorkbenchInfoResp.java @@ -0,0 +1,28 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author huise23 + * @date 2025/04/11 23:17 + * @Description: 工作台信息响应实体 + */ +@Data +@ApiModel("工作台信息响应实体") +public class WorkbenchInfoResp { + + @ApiModelProperty("项目数量") + private long projectCount; + + @ApiModelProperty("进行中任务") + private long progressTaskCount; + + @ApiModelProperty("待审核报告数") + private long approvalReportCount; + + @ApiModelProperty("发现缺陷数") + private long findDefectCount; +} + diff --git a/core/src/main/java/com/dite/znpt/service/WorkbenchService.java b/core/src/main/java/com/dite/znpt/service/WorkbenchService.java new file mode 100644 index 0000000..8426f83 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/service/WorkbenchService.java @@ -0,0 +1,15 @@ +package com.dite.znpt.service; + +import com.dite.znpt.domain.vo.WorkbenchInfoResp; + +public interface WorkbenchService { + + /** + * 功能描述:获取工作台信息 + * + * @return {@link WorkbenchInfoResp } + * @author cuizhibin + * @date 2025/07/21 21:27 + **/ + WorkbenchInfoResp getInfo(); +} diff --git a/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java index 8c26691..16939d8 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java @@ -52,7 +52,6 @@ public class ProjectTaskServiceImpl extends ServiceImpl selectList(ProjectTaskListReq projectTaskReq) { - PageUtil.startPage(); List projectTaskList = this.baseMapper.queryBySelective(projectTaskReq); Map> attachMap; if (!BooleanUtil.isTrue(projectTaskReq.getIsExport())) { diff --git a/core/src/main/java/com/dite/znpt/service/impl/WorkbenchServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/WorkbenchServiceImpl.java new file mode 100644 index 0000000..75d6821 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/service/impl/WorkbenchServiceImpl.java @@ -0,0 +1,53 @@ +package com.dite.znpt.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import com.dite.znpt.domain.entity.DefectEntity; +import com.dite.znpt.domain.entity.InspectionReportEntity; +import com.dite.znpt.domain.entity.ProjectEntity; +import com.dite.znpt.domain.entity.ProjectTaskEntity; +import com.dite.znpt.domain.vo.WorkbenchInfoResp; +import com.dite.znpt.service.*; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class WorkbenchServiceImpl implements WorkbenchService { + private final ProjectService projectService; + private final ProjectTaskService projectTaskService; + private final InspectionReportService inspectionReportService; + private final DefectService defectService; + + @Override + public WorkbenchInfoResp getInfo() { + WorkbenchInfoResp resp = new WorkbenchInfoResp(); + String userId = StpUtil.getLoginIdAsString(); +// 项目数量 + Long projectCount = projectService.lambdaQuery() + .eq(ProjectEntity::getProjectManagerId, userId).or() + .eq(ProjectEntity::getAuditorId, userId).or() + .like(ProjectEntity::getConstructorIds, userId).or() + .eq(ProjectEntity::getQualityOfficerId, userId).or() + .eq(ProjectEntity::getConstructTeamLeaderId, userId) + .count(); + resp.setProjectCount(projectCount); + +// 进行中任务 + Long progressTaskCount = projectTaskService.lambdaQuery() + .eq(ProjectTaskEntity::getMainUserId, userId).or() + .like(ProjectTaskEntity::getUserIds, userId).count(); + resp.setProgressTaskCount(progressTaskCount); + +// 待审核报告数 + Long approvalReportCount = inspectionReportService.lambdaQuery().eq(InspectionReportEntity::getReportAuditor, userId).count(); + resp.setApprovalReportCount(approvalReportCount); + +// 发现缺陷数 + Long findDefectCount = defectService.lambdaQuery() + .eq(DefectEntity::getCreateBy, userId).count(); + resp.setFindDefectCount(findDefectCount); + return resp; + } +} diff --git a/core/src/main/resources/mapper/ProjectMapper.xml b/core/src/main/resources/mapper/ProjectMapper.xml index 181fd5a..25aabf1 100644 --- a/core/src/main/resources/mapper/ProjectMapper.xml +++ b/core/src/main/resources/mapper/ProjectMapper.xml @@ -2,13 +2,24 @@ diff --git a/core/src/main/resources/mapper/ProjectTaskGroupMapper.xml b/core/src/main/resources/mapper/ProjectTaskGroupMapper.xml index e47a1b9..76c368b 100644 --- a/core/src/main/resources/mapper/ProjectTaskGroupMapper.xml +++ b/core/src/main/resources/mapper/ProjectTaskGroupMapper.xml @@ -9,15 +9,19 @@ diff --git a/core/src/main/resources/mapper/ProjectTaskMapper.xml b/core/src/main/resources/mapper/ProjectTaskMapper.xml index a53848b..7b07675 100644 --- a/core/src/main/resources/mapper/ProjectTaskMapper.xml +++ b/core/src/main/resources/mapper/ProjectTaskMapper.xml @@ -11,9 +11,10 @@ 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 b9068cc..88f58b4 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 @@ -1,6 +1,7 @@ package com.dite.znpt.web.controller; +import cn.dev33.satoken.stp.StpUtil; import com.dite.znpt.constant.Constants; import com.dite.znpt.domain.vo.ProjectListReq; import com.dite.znpt.domain.vo.ProjectListResp; @@ -90,5 +91,14 @@ public class ProjectController { } return Result.okM("导入"+dataList.size()+"条数据"); } + + @ApiOperation(value = "查询我的项目", httpMethod = "GET") + @GetMapping("/my") + public Result> my() { + ProjectListReq req = new ProjectListReq(); + req.setUserId(StpUtil.getLoginIdAsString()); + return Result.ok(projectService.list(req)); + } + } 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 cbf1788..b2cd6b3 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 @@ -1,12 +1,14 @@ package com.dite.znpt.web.controller; +import cn.dev33.satoken.stp.StpUtil; 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.ProjectTaskService; +import com.dite.znpt.util.PageUtil; import com.dite.znpt.util.ValidationGroup; import com.pig4cloud.plugin.excel.annotation.RequestExcel; import com.pig4cloud.plugin.excel.annotation.ResponseExcel; @@ -34,6 +36,7 @@ public class ProjectTaskController { @ApiOperation(value = "获取项目任务信息列表", httpMethod = "GET") @GetMapping("/list") public PageResult list(ProjectTaskListReq projectTaskReq) { + PageUtil.startPage(); return PageResult.ok(projectTaskService.selectList(projectTaskReq)); } @@ -97,5 +100,12 @@ public class ProjectTaskController { return Result.ok(); } + @ApiOperation(value = "查询我的任务", httpMethod = "GET") + @GetMapping("/my") + public Result> my() { + ProjectTaskListReq req = new ProjectTaskListReq(); + req.setUserId(StpUtil.getLoginIdAsString()); + return Result.ok(projectTaskService.selectList(req)); + } } diff --git a/web/src/main/java/com/dite/znpt/web/controller/WorkbenchController.java b/web/src/main/java/com/dite/znpt/web/controller/WorkbenchController.java new file mode 100644 index 0000000..046cff6 --- /dev/null +++ b/web/src/main/java/com/dite/znpt/web/controller/WorkbenchController.java @@ -0,0 +1,34 @@ +package com.dite.znpt.web.controller; + +import com.dite.znpt.domain.PageResult; +import com.dite.znpt.domain.Result; +import com.dite.znpt.domain.vo.WeatherTypeListReq; +import com.dite.znpt.domain.vo.WeatherTypeResp; +import com.dite.znpt.domain.vo.WorkbenchInfoResp; +import com.dite.znpt.service.WorkbenchService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author huise23 + * @date 2025/04/11 23:17 + */ +@Api(tags = "工作台") +@RestController +@RequestMapping("/workbench") +@RequiredArgsConstructor +public class WorkbenchController { + + private final WorkbenchService workbenchService; + + @ApiOperation(value = "获取工作台信息", httpMethod = "GET") + @GetMapping("/info") + public Result info() { + return Result.ok(workbenchService.getInfo()); + } + +}