From ae6d707075bbb673755ac150356590ae83ff75da Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 19 一月 2026 15:55:19 +0800
Subject: [PATCH] 大屏项目接口
---
ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceCountVo.java | 15 +
ruoyi-system/src/main/java/com/ruoyi/system/model/Check.java | 96 ++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java | 6
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPersonListQuery.java | 31 ++
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonInfoVo.java | 16 +
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CheckMapper.java | 27 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OnDutyServiceImpl.java | 14 +
ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceDetailCheckPlanListVo.java | 25 ++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/CheckService.java | 27 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PlanServiceImpl.java | 19 +
ruoyi-system/src/main/resources/mapper/system/CheckMapper.xml | 46 +++
ruoyi-system/src/main/java/com/ruoyi/system/service/OnDutyService.java | 10
ruoyi-system/src/main/java/com/ruoyi/system/service/PlanService.java | 17 +
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonOnDutyListVo.java | 39 +++
ruoyi-system/src/main/resources/mapper/system/PlanMapper.xml | 26 ++
ruoyi-system/src/main/resources/mapper/system/OnDutyMapper.xml | 31 ++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/OnDutyMapper.java | 10
ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceDetailCheckPlanListQuery.java | 16 +
ruoyi-system/src/main/java/com/ruoyi/system/model/Plan.java | 62 +++++
ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml | 10
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java | 108 ++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CheckServiceImpl.java | 35 ++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/PlanMapper.java | 14 +
ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java | 3
25 files changed, 700 insertions(+), 5 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
index 0c9dbf5..650d7fb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
@@ -7,9 +7,7 @@
import com.ruoyi.system.dto.EditHiddenDangerResponsiblePersonDto;
import com.ruoyi.system.model.*;
import com.ruoyi.system.model.Record;
-import com.ruoyi.system.query.DeviceDetailCheckListQuery;
-import com.ruoyi.system.query.DeviceListQuery;
-import com.ruoyi.system.query.HiddenDangerListQuery;
+import com.ruoyi.system.query.*;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
@@ -21,8 +19,14 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
+
+import static java.util.stream.Collectors.groupingBy;
@RestController
@RequestMapping("/project")
@@ -44,6 +48,19 @@
@Autowired
private RecordService recordService;
+
+ @Autowired
+ private CheckService checkService;
+
+ @Autowired
+ private OnDutyService onDutyService;
+
+ @Autowired
+ private PositionService positionService;
+
+
+ @Autowired
+ private PlanService planService;
@@ -70,7 +87,7 @@
}
- @ApiOperation(value = "获取项目隐患数量",response = Project.class)
+ @ApiOperation(value = "获取项目隐患数量",response = HiddenDangerVo.class)
@GetMapping("/getProjectHiddenDangerCount/{id}")
public R<HiddenDangerVo> getProjectHiddenDangerCount(@PathVariable Integer id) {
HiddenDangerVo hiddenDangerVo = new HiddenDangerVo();
@@ -85,6 +102,13 @@
hiddenDangerVo.setUnRectified(records.size()-rectified);
}
return R.ok(hiddenDangerVo);
+ }
+
+ @ApiOperation(value = "获取设备数量",response = DeviceCountVo.class)
+ @GetMapping("/getProjectDeviceCount/{id}")
+ public R<List<DeviceCountVo>> getProjectDeviceCount(@PathVariable Integer id) {
+ List<DeviceCountVo> list = deviceUsageService.getProjectDeviceCount(id);
+ return R.ok(list);
}
@@ -137,7 +161,7 @@
}
- @ApiOperation(value = "获取设备详情检查列表")
+ @ApiOperation(value = "获取设备详情检查列表",response = DeviceDetailCheckListVo.class)
@PostMapping("/getDeviceDetailCheckList")
public R<Page<DeviceDetailCheckListVo>> getDeviceDetailCheckList(@RequestBody DeviceDetailCheckListQuery query) {
Page<DeviceDetailCheckListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
@@ -145,4 +169,78 @@
page.setRecords(list);
return R.ok(page);
}
+
+
+ @ApiOperation(value = "获取设备详情检查资料列表")
+ @GetMapping("/getDeviceDetailCheckPlanList")
+ public R<List<Check>> getDeviceDetailCheckPlanList(@RequestParam Integer planId) {
+ List<Check> list = checkService.list(new LambdaQueryWrapper<Check>().eq(Check::getPlanId,planId).orderByDesc(Check::getTime));
+ return R.ok(list);
+ }
+
+ @ApiOperation(value = "获取设备详情检查资料详情")
+ @GetMapping("/getDeviceDetailCheckPlanDetail")
+ public R<Check> getDeviceDetailCheckPlanDetail(@RequestParam Integer id) {
+ Check check = checkService.getDeviceDetailCheckPlanDetail(id);
+ return R.ok(check);
+ }
+
+
+
+ @ApiOperation(value = "获取大屏人员在岗信息")
+ @GetMapping("/getProjectPersonInfo")
+ public R<List<ProjectPersonInfoVo>> getProjectPersonInfo(@RequestParam Integer projectId) {
+ List<OnDuty> list = onDutyService.list(new LambdaQueryWrapper<OnDuty>().eq(OnDuty::getProjectId,projectId));
+ Map<Integer, List<OnDuty>> map = list.stream().collect(groupingBy(OnDuty::getPositionId));
+ List<ProjectPersonInfoVo> resultList = new ArrayList<>();
+ // map循环
+ for (Map.Entry<Integer, List<OnDuty>> entry : map.entrySet()){
+ Integer key = entry.getKey();
+ Position position = positionService.getById(key);
+ ProjectPersonInfoVo projectPersonInfoVo = new ProjectPersonInfoVo();
+ projectPersonInfoVo.setPostName(position.getName());
+ List<OnDuty> onDuties = entry.getValue();
+ long count = onDuties.stream().filter(e -> e.getState() == 1).count();
+ int size = onDuties.size();
+ BigDecimal rate = BigDecimal.valueOf(count).divide(BigDecimal.valueOf(size), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
+ projectPersonInfoVo.setRate(rate.toString());
+ resultList.add(projectPersonInfoVo);
+ }
+
+ return R.ok(resultList);
+ }
+
+
+ @ApiOperation(value = "获取岗位下拉框信息",response = Position.class)
+ @GetMapping("/getPositionList")
+ public R<List<Position>> getPositionList() {
+ List<Position> list = positionService.list(new LambdaQueryWrapper<Position>().eq(Position::getDeleted, false));
+ return R.ok(list);
+ }
+
+
+ @ApiOperation(value = "获取计划下拉框信息",response = Plan.class)
+ @GetMapping("/getPlanList")
+ public R<List<Plan>> getPlanList() {
+ List<Plan> list = planService.list(new LambdaQueryWrapper<Plan>().eq(Plan::getDeleted, false));
+ return R.ok(list);
+ }
+
+ @ApiOperation(value = "获取人员在岗列表",response = ProjectPersonOnDutyListVo.class)
+ @PostMapping("/getProjectOnDutyList")
+ public R<Page<ProjectPersonOnDutyListVo>> getProjectOnDutyList(@RequestBody @Valid ProjectPersonListQuery query) {
+ Page<ProjectPersonOnDutyListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
+ List<ProjectPersonOnDutyListVo> list = onDutyService.getProjectOnDutyList(page,query);
+ page.setRecords(list);
+ return R.ok(page);
+ }
+
+
+ @ApiOperation(value = "获取人员在岗详情")
+ @GetMapping("/getProjectOnDutyDetail/{id}")
+ public R<?> getProjectOnDutyDetail(@PathVariable Integer id) {
+ ProjectPersonOnDutyListVo vo = onDutyService.getProjectOnDutyDetail(id);
+ return R.ok(vo);
+ }
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CheckMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CheckMapper.java
new file mode 100644
index 0000000..9e255e3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CheckMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.system.model.Check;
+import com.ruoyi.system.query.DeviceDetailCheckPlanListQuery;
+import com.ruoyi.system.vo.DeviceDetailCheckPlanListVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 检查情况 Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+public interface CheckMapper extends BaseMapper<Check> {
+
+ List<DeviceDetailCheckPlanListVo> getDeviceDetailCheckPlanList(@Param("page") Page<DeviceDetailCheckPlanListVo> page, @Param("query") DeviceDetailCheckPlanListQuery query);
+
+ Check getDeviceDetailCheckPlanDetail(@Param("id") Integer id);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
index 2393b8a..9969bae 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
@@ -6,6 +6,7 @@
import com.ruoyi.system.model.DeviceUsage;
import com.ruoyi.system.model.Record;
import com.ruoyi.system.query.DeviceListQuery;
+import com.ruoyi.system.vo.DeviceCountVo;
import com.ruoyi.system.vo.DeviceListVo;
import org.apache.ibatis.annotations.Param;
@@ -27,5 +28,6 @@
List<DeviceListVo> getDeviceList(@Param("page") Page<DeviceListVo> page, @Param("query") DeviceListQuery query);
+ List<DeviceCountVo> getProjectDeviceCount(@Param("id") Integer id);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OnDutyMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OnDutyMapper.java
index 20d9757..d8af877 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OnDutyMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OnDutyMapper.java
@@ -1,7 +1,13 @@
package com.ruoyi.system.mapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.model.OnDuty;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.ProjectPersonListQuery;
+import com.ruoyi.system.vo.ProjectPersonOnDutyListVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +19,8 @@
*/
public interface OnDutyMapper extends BaseMapper<OnDuty> {
+ List<ProjectPersonOnDutyListVo> getProjectOnDutyList(@Param("page") Page<ProjectPersonOnDutyListVo> page, @Param("query") ProjectPersonListQuery query);
+
+ ProjectPersonOnDutyListVo getProjectOnDutyDetail(@Param("id") Integer id);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PlanMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PlanMapper.java
new file mode 100644
index 0000000..b050f88
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PlanMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.mapper;
+
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+public interface PlanMapper extends BaseMapper<Plan> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/Check.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/Check.java
new file mode 100644
index 0000000..5620b5a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/Check.java
@@ -0,0 +1,96 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 检查情况
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("check_info")
+public class Check extends Model<Check> {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 计划id
+ */
+ @TableField("plan_id")
+ private Integer planId;
+ /**
+ * 项目id
+ */
+ @TableField("project_id")
+ private Integer projectId;
+ /**
+ * 委托方id
+ */
+ @TableField("client_id")
+ private Integer clientId;
+ /**
+ * 安全告知单
+ */
+ @TableField("safety_slip")
+ @ApiModelProperty("安全告知单")
+ private String safetySlip;
+ /**
+ * 检查人员照片
+ */
+ @TableField("check_user_img")
+ @ApiModelProperty("检查人员照片")
+ private String checkUserImg;
+ /**
+ * 廉政告知单
+ */
+ @TableField("integrity_notification")
+ @ApiModelProperty("廉政告知单")
+ private String integrityNotification;
+ /**
+ * 检查时间
+ */
+ @TableField("time")
+ @ApiModelProperty("检查时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date time;
+ @TableField("create_time")
+ private Date createTime;
+
+
+ @TableField("title")
+ @ApiModelProperty("检查标题")
+ private String title;
+
+
+
+ @TableField(exist = false)
+ @ApiModelProperty("计划名称")
+ private String planName;
+
+ @TableField(exist = false)
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/Plan.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/Plan.java
new file mode 100644
index 0000000..8b1ae5d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/Plan.java
@@ -0,0 +1,62 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Plan extends Model<Plan> {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("create_time")
+ private Date createTime;
+ private Boolean deleted;
+ private String name;
+ @TableField("update_time")
+ private Date updateTime;
+ @TableField("completed_time")
+ private Date completedTime;
+ private Integer state;
+ private Integer type;
+ @TableField("creator_id")
+ private Integer creatorId;
+ @TableField("client_id")
+ private Integer clientId;
+ @TableField("device_fuzzy_math_id")
+ private Integer deviceFuzzyMathId;
+ @TableField("device_model_id")
+ private Integer deviceModelId;
+ @TableField("device_score_expert_id")
+ private Integer deviceScoreExpertId;
+ @TableField("system_fuzzy_expert_id")
+ private Integer systemFuzzyExpertId;
+ @TableField("system_model_id")
+ private Integer systemModelId;
+ @TableField("system_score_expert_id")
+ private Integer systemScoreExpertId;
+ @TableField("project_id")
+ private Integer projectId;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceDetailCheckPlanListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceDetailCheckPlanListQuery.java
new file mode 100644
index 0000000..09e48b9
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceDetailCheckPlanListQuery.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel("设备详情检查计划列表查询参数")
+public class DeviceDetailCheckPlanListQuery extends BasePage {
+ @ApiModelProperty("计划id")
+ @NotNull(message = "计划id不能为空")
+ private Integer planId;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPersonListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPersonListQuery.java
new file mode 100644
index 0000000..ab32af6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPersonListQuery.java
@@ -0,0 +1,31 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel("项目人员在岗列表查询参数")
+public class ProjectPersonListQuery extends BasePage {
+ @ApiModelProperty(value = "项目id")
+ @NotNull(message = "项目id不能为空")
+ private Integer projectId;
+
+ @ApiModelProperty(value = "岗位id")
+ private Integer positionId;
+
+ @ApiModelProperty(value = "计划id")
+ private Integer planId;
+
+ @ApiModelProperty(value = "开始时间")
+ private String startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ private String endTime;
+
+ @ApiModelProperty(value = "搜索内容")
+ private String remark;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CheckService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CheckService.java
new file mode 100644
index 0000000..f61591b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CheckService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.service;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.Check;
+import com.ruoyi.system.query.DeviceDetailCheckPlanListQuery;
+import com.ruoyi.system.vo.DeviceDetailCheckPlanListVo;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查情况 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+public interface CheckService extends IService<Check> {
+
+ List<DeviceDetailCheckPlanListVo> getDeviceDetailCheckPlanList(Page<DeviceDetailCheckPlanListVo> page, @Valid DeviceDetailCheckPlanListQuery query);
+
+ Check getDeviceDetailCheckPlanDetail(Integer id);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
index 0e0f7e0..aeed6e3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.model.DeviceUsage;
import com.ruoyi.system.query.DeviceListQuery;
+import com.ruoyi.system.vo.DeviceCountVo;
import com.ruoyi.system.vo.DeviceListVo;
import javax.validation.Valid;
@@ -24,4 +25,6 @@
List<DeviceListVo> getDeviceList(Page<DeviceListVo> page, @Valid DeviceListQuery query);
+ List<DeviceCountVo> getProjectDeviceCount(Integer id);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OnDutyService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OnDutyService.java
index ee5a1ea..092bc58 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OnDutyService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OnDutyService.java
@@ -1,7 +1,13 @@
package com.ruoyi.system.service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.model.OnDuty;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.query.ProjectPersonListQuery;
+import com.ruoyi.system.vo.ProjectPersonOnDutyListVo;
+
+import javax.validation.Valid;
+import java.util.List;
/**
* <p>
@@ -13,4 +19,8 @@
*/
public interface OnDutyService extends IService<OnDuty> {
+ List<ProjectPersonOnDutyListVo> getProjectOnDutyList(Page<ProjectPersonOnDutyListVo> page, @Valid ProjectPersonListQuery query);
+
+ ProjectPersonOnDutyListVo getProjectOnDutyDetail(Integer id);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/PlanService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/PlanService.java
new file mode 100644
index 0000000..41f79f4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/PlanService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.Plan;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+public interface PlanService extends IService<Plan> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CheckServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CheckServiceImpl.java
new file mode 100644
index 0000000..967e92c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CheckServiceImpl.java
@@ -0,0 +1,35 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.CheckMapper;
+import com.ruoyi.system.model.Check;
+import com.ruoyi.system.query.DeviceDetailCheckPlanListQuery;
+import com.ruoyi.system.service.CheckService;
+import com.ruoyi.system.vo.DeviceDetailCheckPlanListVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 检查情况 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+@Service
+public class CheckServiceImpl extends ServiceImpl<CheckMapper, Check> implements CheckService {
+
+ @Override
+ public List<DeviceDetailCheckPlanListVo> getDeviceDetailCheckPlanList(Page<DeviceDetailCheckPlanListVo> page, DeviceDetailCheckPlanListQuery query) {
+ return this.baseMapper.getDeviceDetailCheckPlanList(page, query);
+ }
+
+ @Override
+ public Check getDeviceDetailCheckPlanDetail(Integer id) {
+ return this.baseMapper.getDeviceDetailCheckPlanDetail(id);
+ }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
index dafccf6..c27f6e2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.system.model.Record;
import com.ruoyi.system.query.DeviceListQuery;
import com.ruoyi.system.service.DeviceUsageService;
+import com.ruoyi.system.vo.DeviceCountVo;
import com.ruoyi.system.vo.DeviceListVo;
import org.springframework.stereotype.Service;
@@ -49,5 +50,10 @@
return deviceList;
}
+ @Override
+ public List<DeviceCountVo> getProjectDeviceCount(Integer id) {
+ return this.baseMapper.getProjectDeviceCount(id);
+ }
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OnDutyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OnDutyServiceImpl.java
index ff7ce6b..00b7c5c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OnDutyServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OnDutyServiceImpl.java
@@ -1,10 +1,15 @@
package com.ruoyi.system.service.impl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.model.OnDuty;
import com.ruoyi.system.mapper.OnDutyMapper;
+import com.ruoyi.system.query.ProjectPersonListQuery;
import com.ruoyi.system.service.OnDutyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.vo.ProjectPersonOnDutyListVo;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* <p>
@@ -17,4 +22,13 @@
@Service
public class OnDutyServiceImpl extends ServiceImpl<OnDutyMapper, OnDuty> implements OnDutyService {
+ @Override
+ public List<ProjectPersonOnDutyListVo> getProjectOnDutyList(Page<ProjectPersonOnDutyListVo> page, ProjectPersonListQuery query) {
+ return this.baseMapper.getProjectOnDutyList(page,query);
+ }
+
+ @Override
+ public ProjectPersonOnDutyListVo getProjectOnDutyDetail(Integer id) {
+ return this.baseMapper.getProjectOnDutyDetail(id);
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PlanServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PlanServiceImpl.java
new file mode 100644
index 0000000..dd310ba
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PlanServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.ruoyi.system.model.Plan;
+import com.ruoyi.system.service.PlanService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-19
+ */
+@Service
+public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceCountVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceCountVo.java
new file mode 100644
index 0000000..f7c1bd8
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceCountVo.java
@@ -0,0 +1,15 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("设备数量信息")
+public class DeviceCountVo {
+ @ApiModelProperty("设备数量")
+ private Integer count;
+
+ @ApiModelProperty("设备类型")
+ private Integer type;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceDetailCheckPlanListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceDetailCheckPlanListVo.java
new file mode 100644
index 0000000..a09753a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceDetailCheckPlanListVo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("设备详情检查计划列表")
+public class DeviceDetailCheckPlanListVo {
+ private Integer id;
+
+ @ApiModelProperty("计划名称")
+ private String planName;
+
+ @ApiModelProperty("计划类型")
+ private Integer planType;
+
+ @ApiModelProperty("检查时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDateTime checkTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonInfoVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonInfoVo.java
new file mode 100644
index 0000000..bd4cc81
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonInfoVo.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("项目人员信息")
+public class ProjectPersonInfoVo {
+ @ApiModelProperty("岗位名称")
+ private String postName;
+
+
+ @ApiModelProperty("在岗位率")
+ private String rate;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonOnDutyListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonOnDutyListVo.java
new file mode 100644
index 0000000..d990c9f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPersonOnDutyListVo.java
@@ -0,0 +1,39 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("项目人员在岗列表")
+public class ProjectPersonOnDutyListVo {
+ private Integer id;
+
+ @ApiModelProperty(value = "检查计划名称")
+ private String planName;
+
+ @ApiModelProperty(value = "检查内容")
+ private String checkContent;
+
+
+ @ApiModelProperty(value = "岗位名称")
+ private String postName;
+
+ @ApiModelProperty(value = "问题备注")
+ private String remark;
+
+
+ @ApiModelProperty(value = "检查结果图片")
+ private String img;
+
+ @ApiModelProperty(value = "检查时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDateTime time;
+
+ @ApiModelProperty(value = "在岗情况 1在岗 2未在岗 3请假")
+ private Integer state;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/CheckMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CheckMapper.xml
new file mode 100644
index 0000000..5795f37
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/CheckMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.CheckMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.Check">
+ <id column="id" property="id" />
+ <result column="plan_id" property="planId" />
+ <result column="project_id" property="projectId" />
+ <result column="client_id" property="clientId" />
+ <result column="safety_slip" property="safetySlip" />
+ <result column="check_user_img" property="checkUserImg" />
+ <result column="integrity_notification" property="integrityNotification" />
+ <result column="time" property="time" />
+ <result column="create_time" property="createTime" />
+ </resultMap>
+
+ <select id="getDeviceDetailCheckPlanList" resultType="com.ruoyi.system.vo.DeviceDetailCheckPlanListVo">
+ select t2.name as planName,t2.type as planType,t1.time as checkTime from check t1 left join plan t2 on t1.plan_id = t2.id
+ where t1.project_id = #{query.projectId}
+ <if test="query.planType != null">
+ and t2.type = #{query.planType}
+ </if>
+ <if test="query.planName != null">
+ and t2.name like concat('%',#{query.planName},'%')
+ </if>
+ <if test="query.startTime != null ">
+ and t1.time >= #{query.startTime}
+ </if>
+ <if test="query.endTime != null">
+ and #{query.endTime} >= t1.time
+ </if>
+ order by t1.time desc
+
+ </select>
+ <select id="getDeviceDetailCheckPlanDetail" resultType="com.ruoyi.system.model.Check"
+ parameterType="java.lang.Integer">
+ select t1.id,t1.title,t1.time,t1.safety_slip,t1.check_user_img,t1.integrity_notification ,t2.name as planName,t3.name as projectName
+ from check_info t1
+ left join plan t2 on t1.plan_id = t2.id
+ left join project t3 on t1.project_id = t3.id
+ where t1.id = #{id}
+
+ </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
index 33c49a1..05596bb 100644
--- a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
@@ -45,5 +45,15 @@
</if>
order by latest.record_time desc
</select>
+ <select id="getProjectDeviceCount" resultType="com.ruoyi.system.vo.DeviceCountVo"
+ parameterType="java.lang.Integer">
+
+ select t1.type, count(t1.id) as count
+ from device t1
+ left join device_usage t2
+ on t1.id = t2.device_id
+ where t2.project_id = #{projectId} and t2.deleted = 0
+ group by t1.type
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/OnDutyMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OnDutyMapper.xml
index e32eb09..ae6ba67 100644
--- a/ruoyi-system/src/main/resources/mapper/system/OnDutyMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/OnDutyMapper.xml
@@ -22,5 +22,36 @@
<sql id="Base_Column_List">
id, plan_id, project_id, client_id, content, position_id, position_name, remark, img, time, state, create_time
</sql>
+ <select id="getProjectOnDutyList" resultType="com.ruoyi.system.vo.ProjectPersonOnDutyListVo">
+ select t1.id,t2.name as planName,t1.content,t3.name as postName,t1.remark,t1.img,t1.time,t1.state
+ from on_duty t1
+ left join plan t2 on t1.plan_id = t2.id
+ left join position t3 on t1.position_id = t3.id
+ where t1.project_id = #{query.projectId}
+ <if test="query.planId != null">
+ and t1.plan_id = #{query.planId}
+ </if>
+ <if test="query.positionId != null">
+ and t1.position_id = #{query.positionId}
+ </if>
+ <if test="query.startTime != null">
+ and t1.time >= #{query.startTime}
+ </if>
+ <if test="query.endTime != null">
+ and #{query.endTime} >= t1.time
+ </if>
+ <if test="query.remark != null">
+ and t1.remark like concat('%',#{query.remark},'%')
+ </if>
+ order by t1.time desc
+ </select>
+ <select id="getProjectOnDutyDetail" resultType="com.ruoyi.system.vo.ProjectPersonOnDutyListVo"
+ parameterType="java.lang.Integer">
+ select t1.id,t2.name as planName,t1.content,t3.name as postName,t1.remark,t1.img,t1.time,t1.state
+ from on_duty t1
+ left join plan t2 on t1.plan_id = t2.id
+ left join position t3 on t1.position_id = t3.id
+ where t1.id =#{id}
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/PlanMapper.xml b/ruoyi-system/src/main/resources/mapper/system/PlanMapper.xml
new file mode 100644
index 0000000..dfba04f
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/PlanMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.PlanMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.Plan">
+ <id column="id" property="id" />
+ <result column="create_time" property="createTime" />
+ <result column="deleted" property="deleted" />
+ <result column="name" property="name" />
+ <result column="update_time" property="updateTime" />
+ <result column="completed_time" property="completedTime" />
+ <result column="state" property="state" />
+ <result column="type" property="type" />
+ <result column="creator_id" property="creatorId" />
+ <result column="client_id" property="clientId" />
+ <result column="device_fuzzy_math_id" property="deviceFuzzyMathId" />
+ <result column="device_model_id" property="deviceModelId" />
+ <result column="device_score_expert_id" property="deviceScoreExpertId" />
+ <result column="system_fuzzy_expert_id" property="systemFuzzyExpertId" />
+ <result column="system_model_id" property="systemModelId" />
+ <result column="system_score_expert_id" property="systemScoreExpertId" />
+ <result column="project_id" property="projectId" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.7.1