Browse Source

Merge branch '2.0_y' into V2.0

Yue 1 month ago
parent
commit
656a7905f1
24 changed files with 330 additions and 351 deletions
  1. 2 58
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsDeviceFailureBo.java
  2. 4 21
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsInspectionMissedBo.java
  3. 11 29
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsMechanicRepairDetailsBo.java
  4. 1 1
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsDeviceFailureVo.java
  5. 1 1
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsInspectionMissedVo.java
  6. 1 1
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsMechanicRepairDetailsVo.java
  7. 11 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsDeviceFailureMapper.java
  8. 9 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsInspectionMissedMapper.java
  9. 11 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsMechanicRepairDetailsMapper.java
  10. 0 19
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsDeviceFailureService.java
  11. 0 14
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsInspectionMissedService.java
  12. 0 19
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsMechanicRepairDetailsService.java
  13. 11 62
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsDeviceFailureServiceImpl.java
  14. 14 54
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsInspectionMissedServiceImpl.java
  15. 11 59
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsMechanicRepairDetailsServiceImpl.java
  16. 35 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsDeviceFailureMapper.xml
  17. 45 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsInspectionMissedMapper.xml
  18. 33 0
      SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsMechanicRepairDetailsMapper.xml
  19. 0 1
      UI/VB.VUE/src/components/form/models.ts
  20. 62 10
      UI/VB.VUE/src/components/reports/VbCommonReport.vue
  21. 2 2
      UI/VB.VUE/src/components/table/partials/toolbar/TableSearchFrom.vue
  22. 18 0
      UI/VB.VUE/src/views/device/report/fault.vue
  23. 30 0
      UI/VB.VUE/src/views/device/report/inspection.vue
  24. 18 0
      UI/VB.VUE/src/views/device/report/repair.vue

+ 2 - 58
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsDeviceFailureBo.java

@@ -26,72 +26,16 @@ import java.util.Date;
 
 public class StatisticsDeviceFailureBo extends BaseEntity {
 
-    /**
-     * 主键ID
-     */
-    @NotNull(message = "主键ID不能为空", groups = {EditGroup.class})
-    private Long id;
 
     /**
-     * 设备ID
+     * 设备
      */
-    @NotNull(message = "设备ID不能为空", groups = {AddGroup.class, EditGroup.class})
-    private Long deviceId;
+    private String deviceName;
 
     /**
      * 统计周期(例如:2025-W42表示2025年第42周)
      */
-    @NotBlank(message = "统计周期(例如:2025-W42表示2025年第42周)不能为空", groups = {AddGroup.class, EditGroup.class})
     private String statCycle;
 
-    /**
-     * 故障时长(小时)
-     */
-    @NotNull(message = "故障时长(小时)不能为空", groups = {AddGroup.class, EditGroup.class})
-    private BigDecimal failureDuration;
-
-    /**
-     * 完好时长(小时)
-     */
-    @NotNull(message = "完好时长(小时)不能为空", groups = {AddGroup.class, EditGroup.class})
-    private BigDecimal goodDuration;
-
-    /**
-     * 带病运行时长(小时)
-     */
-    @NotNull(message = "带病运行时长(小时)不能为空", groups = {AddGroup.class, EditGroup.class})
-    private BigDecimal sickDuration;
-
-    /**
-     * 故障率(故障时长/完好时长)
-     */
-    @NotNull(message = "故障率(故障时长/完好时长)不能为空", groups = {AddGroup.class, EditGroup.class})
-    private BigDecimal failureRate;
-
-    /**
-     * 带病运行率(带病时长/完好时长)
-     */
-    @NotNull(message = "带病运行率(带病时长/完好时长)不能为空", groups = {AddGroup.class, EditGroup.class})
-    private BigDecimal sickRate;
-
-    /**
-     * 统计开始时间
-     */
-    @NotNull(message = "统计开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date statStartTime;
-
-    /**
-     * 统计结束时间
-     */
-    @NotNull(message = "统计结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date statEndTime;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
 
 }

+ 4 - 21
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsInspectionMissedBo.java

@@ -24,40 +24,23 @@ import java.math.BigDecimal;
 
 public class StatisticsInspectionMissedBo extends BaseEntity {
 
-    /**
-     * 主键ID
-     */
-    @NotNull(message = "主键ID不能为空", groups = {EditGroup.class})
-    private Long id;
 
     /**
      * 点检规则ID
      */
-    @NotNull(message = "点检规则ID不能为空", groups = {AddGroup.class, EditGroup.class})
-    private Long ruleId;
+    private String ruleName;
 
     /**
-     * 点检人ID
+     * 点检人
      */
-    @NotNull(message = "点检人ID不能为空", groups = {AddGroup.class, EditGroup.class})
-    private Long inspectorId;
+    private String inspectorName;
+
 
     /**
      * 统计周期(例如:2025-W42表示2025年第42周)
      */
-    @NotBlank(message = "统计周期(例如:2025-W42表示2025年第42周)不能为空", groups = {AddGroup.class, EditGroup.class})
     private String statCycle;
 
-    /**
-     * 漏检次数
-     */
-    @NotNull(message = "漏检次数不能为空", groups = {AddGroup.class, EditGroup.class})
-    private Integer missedCount;
-
-    /**
-     * 漏检时长(小时)
-     */
-    private BigDecimal missedDuration;
 
     /**
      * 备注

+ 11 - 29
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/bo/StatisticsMechanicRepairDetailsBo.java

@@ -17,38 +17,20 @@ import jakarta.validation.constraints.*;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = StatisticsMechanicRepairDetails.class,reverseConvertGenerate =false)
+@AutoMapper(target = StatisticsMechanicRepairDetails.class, reverseConvertGenerate = false)
 
 public class StatisticsMechanicRepairDetailsBo extends BaseEntity {
 
-            /**
-             * 主键ID
-             */
-                @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
-        private Long id;
-
-            /**
-             * 统计周期(例如:2025-W42表示2025年第42周)
-             */
-                @NotBlank(message = "统计周期(例如:2025-W42表示2025年第42周)不能为空", groups = { AddGroup.class, EditGroup.class })
-        private String statCycle;
-
-            /**
-             * 机修工ID
-             */
-                @NotNull(message = "机修工ID不能为空", groups = { AddGroup.class, EditGroup.class })
-        private Long mechanicId;
-
-            /**
-             * 设备列表(JSON格式存储多个设备)
-             */
-                @NotBlank(message = "设备列表(JSON格式存储多个设备)不能为空", groups = { AddGroup.class, EditGroup.class })
-        private String devices;
-
-            /**
-             * 备注
-             */
-        private String remark;
+
+    /**
+     * 统计周期(例如:2025-W42表示2025年第42周)
+     */
+    private String statCycle;
+
+    /**
+     * 机修工
+     */
+    private String mechanicName;
 
 
 }

+ 1 - 1
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsDeviceFailureVo.java

@@ -48,7 +48,7 @@ public class StatisticsDeviceFailureVo implements Serializable {
      * 设备名称
      */
     @ExcelProperty(value = "设备名称")
-    @Translation(type = TransConstant.DEVICE_ID_TO_NAME, mapper = "deviceId")
+//    @Translation(type = TransConstant.DEVICE_ID_TO_NAME, mapper = "deviceId")
     private String deviceName;
 
     /**

+ 1 - 1
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsInspectionMissedVo.java

@@ -58,7 +58,7 @@ public class StatisticsInspectionMissedVo implements Serializable {
      * 点检人名称
      */
     @ExcelProperty(value = "点检人名称")
-    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspectorId")
+//    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspectorId")
     private String inspectorName;
 
     /**

+ 1 - 1
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/vo/StatisticsMechanicRepairDetailsVo.java

@@ -52,7 +52,7 @@ public class StatisticsMechanicRepairDetailsVo implements Serializable {
      * 机修工名称
      */
     @ExcelProperty(value = "机修工名称")
-    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "mechanicId")
+//    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "mechanicId")
     private String mechanicName;
 
     /**

+ 11 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsDeviceFailureMapper.java

@@ -2,9 +2,13 @@ package cn.vber.device.mapper;
 
 import cn.vber.common.mybatis.core.mapper.BaseMapperPlus;
 import cn.vber.device.domain.StatisticsDeviceFailure;
+import cn.vber.device.domain.StatisticsDeviceFailure;
+import cn.vber.device.domain.vo.StatisticsDeviceFailureVo;
 import cn.vber.device.domain.vo.StatisticsDeviceFailureVo;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -29,4 +33,11 @@ public interface StatisticsDeviceFailureMapper extends BaseMapperPlus<Statistics
      */
     @MapKey("deviceId")
     List<Map<String, Object>> selectSumDurationByDeviceId(@Param(Constants.WRAPPER) Wrapper<?> queryWrapper);
+
+    Page<StatisticsDeviceFailureVo> selectListVoPage(
+            @Param("page") Page<StatisticsDeviceFailure> page,
+            @Param("ew") QueryWrapper<StatisticsDeviceFailure> queryWrapper
+    );
+
+    List<StatisticsDeviceFailureVo> selectListVo(@Param("ew") QueryWrapper<StatisticsDeviceFailure> queryWrapper);
 }

+ 9 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsInspectionMissedMapper.java

@@ -5,7 +5,9 @@ import cn.vber.device.domain.StatisticsInspectionMissed;
 import cn.vber.device.domain.vo.StatisticsInspectionMissedVo;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -25,4 +27,11 @@ public interface StatisticsInspectionMissedMapper extends BaseMapperPlus<Statist
     @MapKey("ruleId")
     List<Map<String, Object>> selectInspectionLoseByRuleId(@Param(Constants.WRAPPER) Wrapper<?> queryWrapper);
 
+
+    Page<StatisticsInspectionMissedVo> selectListVoPage(
+            @Param("page") Page<StatisticsInspectionMissed> page,
+            @Param("ew") QueryWrapper<StatisticsInspectionMissed> queryWrapper
+    );
+
+    List<StatisticsInspectionMissedVo> selectListVo(@Param("ew") QueryWrapper<StatisticsInspectionMissed> queryWrapper);
 }

+ 11 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/StatisticsMechanicRepairDetailsMapper.java

@@ -2,9 +2,13 @@ package cn.vber.device.mapper;
 
 import cn.vber.common.mybatis.core.mapper.BaseMapperPlus;
 import cn.vber.device.domain.StatisticsMechanicRepairDetails;
+import cn.vber.device.domain.StatisticsMechanicRepairDetails;
+import cn.vber.device.domain.vo.StatisticsMechanicRepairDetailsVo;
 import cn.vber.device.domain.vo.StatisticsMechanicRepairDetailsVo;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -29,4 +33,11 @@ public interface StatisticsMechanicRepairDetailsMapper extends BaseMapperPlus<St
      */
     @MapKey("mechanicId")
     List<Map<String, Object>> selectMechanicRepairDetailsByDeviceId(@Param(Constants.WRAPPER) Wrapper<?> queryWrapper);
+
+    Page<StatisticsMechanicRepairDetailsVo> selectListVoPage(
+            @Param("page") Page<StatisticsMechanicRepairDetails> page,
+            @Param("ew") QueryWrapper<StatisticsMechanicRepairDetails> queryWrapper
+    );
+
+    List<StatisticsMechanicRepairDetailsVo> selectListVo(@Param("ew") QueryWrapper<StatisticsMechanicRepairDetails> queryWrapper);
 }

+ 0 - 19
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsDeviceFailureService.java

@@ -16,11 +16,6 @@ import java.util.List;
  */
 public interface IStatisticsDeviceFailureService {
 
-    /**
-     * 查询设备故障率统计
-     */
-    StatisticsDeviceFailureVo queryById(Long id);
-
     /**
      * 查询设备故障率统计列表
      */
@@ -31,20 +26,6 @@ public interface IStatisticsDeviceFailureService {
      */
     List<StatisticsDeviceFailureVo> queryList(StatisticsDeviceFailureBo bo);
 
-    /**
-     * 新增设备故障率统计
-     */
-    Boolean insertByBo(StatisticsDeviceFailureBo bo);
-
-    /**
-     * 修改设备故障率统计
-     */
-    Boolean updateByBo(StatisticsDeviceFailureBo bo);
-
-    /**
-     * 校验并批量删除设备故障率统计信息
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     /**
      * 生成设备故障率统计

+ 0 - 14
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsInspectionMissedService.java

@@ -31,20 +31,6 @@ public interface IStatisticsInspectionMissedService {
      */
     List<StatisticsInspectionMissedVo> queryList(StatisticsInspectionMissedBo bo);
 
-    /**
-     * 新增点检漏检情况统计
-     */
-    Boolean insertByBo(StatisticsInspectionMissedBo bo);
-
-    /**
-     * 修改点检漏检情况统计
-     */
-    Boolean updateByBo(StatisticsInspectionMissedBo bo);
-
-    /**
-     * 校验并批量删除点检漏检情况统计信息
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     /**
      * 生成点检漏报率统计列表

+ 0 - 19
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IStatisticsMechanicRepairDetailsService.java

@@ -17,11 +17,6 @@ import java.util.List;
  */
 public interface IStatisticsMechanicRepairDetailsService {
 
-    /**
-     * 查询机修工维修明细统计
-     */
-    StatisticsMechanicRepairDetailsVo queryById(Long id);
-
     /**
      * 查询机修工维修明细统计列表
      */
@@ -32,20 +27,6 @@ public interface IStatisticsMechanicRepairDetailsService {
      */
     List<StatisticsMechanicRepairDetailsVo> queryList(StatisticsMechanicRepairDetailsBo bo);
 
-    /**
-     * 新增机修工维修明细统计
-     */
-    Boolean insertByBo(StatisticsMechanicRepairDetailsBo bo);
-
-    /**
-     * 修改机修工维修明细统计
-     */
-    Boolean updateByBo(StatisticsMechanicRepairDetailsBo bo);
-
-    /**
-     * 校验并批量删除机修工维修明细统计信息
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     /**
      * 生成机修工维修明细统计

+ 11 - 62
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsDeviceFailureServiceImpl.java

@@ -16,6 +16,7 @@ import cn.vber.device.domain.vo.StatisticsDeviceFailureVo;
 import cn.vber.device.mapper.StatisticsDeviceFailureMapper;
 import cn.vber.device.service.IStatisticsDeviceFailureService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -42,21 +43,14 @@ public class StatisticsDeviceFailureServiceImpl implements IStatisticsDeviceFail
 
     private final StatisticsDeviceFailureMapper baseMapper;
 
-    /**
-     * 查询设备故障率统计
-     */
-    @Override
-    public StatisticsDeviceFailureVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
-    }
 
     /**
      * 查询设备故障率统计列表
      */
     @Override
     public TableDataInfo<StatisticsDeviceFailureVo> queryPageList(StatisticsDeviceFailureBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<StatisticsDeviceFailure> lqw = buildQueryWrapper(bo);
-        Page<StatisticsDeviceFailureVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        QueryWrapper<StatisticsDeviceFailure> lqw = buildQueryWrapper(bo);
+        Page<StatisticsDeviceFailureVo> result = baseMapper.selectListVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -65,62 +59,17 @@ public class StatisticsDeviceFailureServiceImpl implements IStatisticsDeviceFail
      */
     @Override
     public List<StatisticsDeviceFailureVo> queryList(StatisticsDeviceFailureBo bo) {
-        LambdaQueryWrapper<StatisticsDeviceFailure> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        QueryWrapper<StatisticsDeviceFailure> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectListVo(lqw);
     }
 
-    private LambdaQueryWrapper<StatisticsDeviceFailure> buildQueryWrapper(StatisticsDeviceFailureBo bo) {
+    private QueryWrapper<StatisticsDeviceFailure> buildQueryWrapper(StatisticsDeviceFailureBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<StatisticsDeviceFailure> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getDeviceId() != null, StatisticsDeviceFailure::getDeviceId, bo.getDeviceId());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsDeviceFailure::getStatCycle, bo.getStatCycle());
-        lqw.between(StringUtils.isNotEmpty(params.get("beginStatStartTime")) && StringUtils.isNotEmpty(params.get("endStatStartTime")),
-                StatisticsDeviceFailure::getStatStartTime, params.get("beginStatStartTime"), params.get("endStatStartTime"));
-        lqw.between(StringUtils.isNotEmpty(params.get("beginStatEndTime")) && StringUtils.isNotEmpty(params.get("endStatEndTime")),
-                StatisticsDeviceFailure::getStatEndTime, params.get("beginStatEndTime"), params.get("endStatEndTime"));
-        return lqw;
-    }
-
-    /**
-     * 新增设备故障率统计
-     */
-    @Override
-    public Boolean insertByBo(StatisticsDeviceFailureBo bo) {
-        StatisticsDeviceFailure add = MapstructUtils.convert(bo, StatisticsDeviceFailure.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改设备故障率统计
-     */
-    @Override
-    public Boolean updateByBo(StatisticsDeviceFailureBo bo) {
-        StatisticsDeviceFailure update = MapstructUtils.convert(bo, StatisticsDeviceFailure.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(StatisticsDeviceFailure entity) {
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 批量删除设备故障率统计
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if (isValid) {
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
+        QueryWrapper<StatisticsDeviceFailure> qw = Wrappers.query();
+        qw.like(bo.getDeviceName() != null, "d.name", bo.getDeviceName());
+        qw.lambda()
+                .eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsDeviceFailure::getStatCycle, bo.getStatCycle());
+        return qw;
     }
 
     /**

+ 14 - 54
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsInspectionMissedServiceImpl.java

@@ -17,6 +17,7 @@ import cn.vber.device.mapper.StatisticsInspectionMissedMapper;
 import cn.vber.device.service.IInspectionRuleService;
 import cn.vber.device.service.IStatisticsInspectionMissedService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -54,8 +55,8 @@ public class StatisticsInspectionMissedServiceImpl implements IStatisticsInspect
      */
     @Override
     public TableDataInfo<StatisticsInspectionMissedVo> queryPageList(StatisticsInspectionMissedBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<StatisticsInspectionMissed> lqw = buildQueryWrapper(bo);
-        Page<StatisticsInspectionMissedVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        QueryWrapper<StatisticsInspectionMissed> qw = buildQueryWrapper(bo);
+        Page<StatisticsInspectionMissedVo> result = baseMapper.selectListVoPage(pageQuery.build(), qw);
         return TableDataInfo.build(result);
     }
 
@@ -64,62 +65,21 @@ public class StatisticsInspectionMissedServiceImpl implements IStatisticsInspect
      */
     @Override
     public List<StatisticsInspectionMissedVo> queryList(StatisticsInspectionMissedBo bo) {
-        LambdaQueryWrapper<StatisticsInspectionMissed> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        QueryWrapper<StatisticsInspectionMissed> qw = buildQueryWrapper(bo);
+        return baseMapper.selectListVo(qw);
     }
 
-    private LambdaQueryWrapper<StatisticsInspectionMissed> buildQueryWrapper(StatisticsInspectionMissedBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<StatisticsInspectionMissed> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getRuleId() != null, StatisticsInspectionMissed::getRuleId, bo.getRuleId());
-        lqw.eq(bo.getInspectorId() != null, StatisticsInspectionMissed::getInspectorId, bo.getInspectorId());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsInspectionMissed::getStatCycle, bo.getStatCycle());
-        lqw.eq(bo.getMissedCount() != null, StatisticsInspectionMissed::getMissedCount, bo.getMissedCount());
-        lqw.eq(bo.getMissedDuration() != null, StatisticsInspectionMissed::getMissedDuration, bo.getMissedDuration());
-        return lqw;
-    }
-
-    /**
-     * 新增点检漏检情况统计
-     */
-    @Override
-    public Boolean insertByBo(StatisticsInspectionMissedBo bo) {
-        StatisticsInspectionMissed add = MapstructUtils.convert(bo, StatisticsInspectionMissed.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
+    private QueryWrapper<StatisticsInspectionMissed> buildQueryWrapper(StatisticsInspectionMissedBo bo) {
+        QueryWrapper<StatisticsInspectionMissed> qw = Wrappers.query();
+        qw.lambda()
+                .eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsInspectionMissed::getStatCycle, bo.getStatCycle())
+                .like(StringUtils.isNotBlank(bo.getRuleName()), StatisticsInspectionMissed::getRuleName, bo.getRuleName());
+        if (StringUtils.isNotBlank(bo.getInspectorName())) {
+            qw.like("u.nick_name", bo.getInspectorName());
         }
-        return flag;
-    }
-
-    /**
-     * 修改点检漏检情况统计
-     */
-    @Override
-    public Boolean updateByBo(StatisticsInspectionMissedBo bo) {
-        StatisticsInspectionMissed update = MapstructUtils.convert(bo, StatisticsInspectionMissed.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
+        return qw;
     }
 
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(StatisticsInspectionMissed entity) {
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 批量删除点检漏检情况统计
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if (isValid) {
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
 
     /**
      * 生成设备故障统计列表
@@ -135,7 +95,7 @@ public class StatisticsInspectionMissedServiceImpl implements IStatisticsInspect
         ruleList.forEach(rule -> {
             inspectionRuleService.checkin(rule.getId(), null, true);
         });
-       
+
         //删除周期内的旧数据
         baseMapper.delete(new LambdaQueryWrapper<StatisticsInspectionMissed>()
                 .eq(StatisticsInspectionMissed::getStatCycle, cycle));

+ 11 - 59
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/StatisticsMechanicRepairDetailsServiceImpl.java

@@ -10,6 +10,7 @@ import cn.vber.device.core.enums.WorkOrderStatusEnum;
 import cn.vber.device.core.enums.WorkOrderTypeEnum;
 import cn.vber.device.domain.DeviceOrder;
 import cn.vber.device.domain.StatisticsDeviceFailure;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -38,21 +39,14 @@ public class StatisticsMechanicRepairDetailsServiceImpl implements IStatisticsMe
 
     private final StatisticsMechanicRepairDetailsMapper baseMapper;
 
-    /**
-     * 查询机修工维修明细统计
-     */
-    @Override
-    public StatisticsMechanicRepairDetailsVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
-    }
 
     /**
      * 查询机修工维修明细统计列表
      */
     @Override
     public TableDataInfo<StatisticsMechanicRepairDetailsVo> queryPageList(StatisticsMechanicRepairDetailsBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<StatisticsMechanicRepairDetails> lqw = buildQueryWrapper(bo);
-        Page<StatisticsMechanicRepairDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        QueryWrapper<StatisticsMechanicRepairDetails> lqw = buildQueryWrapper(bo);
+        Page<StatisticsMechanicRepairDetailsVo> result = baseMapper.selectListVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -61,59 +55,17 @@ public class StatisticsMechanicRepairDetailsServiceImpl implements IStatisticsMe
      */
     @Override
     public List<StatisticsMechanicRepairDetailsVo> queryList(StatisticsMechanicRepairDetailsBo bo) {
-        LambdaQueryWrapper<StatisticsMechanicRepairDetails> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        QueryWrapper<StatisticsMechanicRepairDetails> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectListVo(lqw);
     }
 
-    private LambdaQueryWrapper<StatisticsMechanicRepairDetails> buildQueryWrapper(StatisticsMechanicRepairDetailsBo bo) {
+    private QueryWrapper<StatisticsMechanicRepairDetails> buildQueryWrapper(StatisticsMechanicRepairDetailsBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<StatisticsMechanicRepairDetails> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsMechanicRepairDetails::getStatCycle, bo.getStatCycle());
-        lqw.eq(bo.getMechanicId() != null, StatisticsMechanicRepairDetails::getMechanicId, bo.getMechanicId());
-        lqw.eq(StringUtils.isNotBlank(bo.getDevices()), StatisticsMechanicRepairDetails::getDevices, bo.getDevices());
-        return lqw;
-    }
-
-    /**
-     * 新增机修工维修明细统计
-     */
-    @Override
-    public Boolean insertByBo(StatisticsMechanicRepairDetailsBo bo) {
-        StatisticsMechanicRepairDetails add = MapstructUtils.convert(bo, StatisticsMechanicRepairDetails.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改机修工维修明细统计
-     */
-    @Override
-    public Boolean updateByBo(StatisticsMechanicRepairDetailsBo bo) {
-        StatisticsMechanicRepairDetails update = MapstructUtils.convert(bo, StatisticsMechanicRepairDetails.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(StatisticsMechanicRepairDetails entity) {
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 批量删除机修工维修明细统计
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if (isValid) {
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
+        QueryWrapper<StatisticsMechanicRepairDetails> qw = Wrappers.query();
+        qw.like(StringUtils.isNotBlank(bo.getMechanicName()), "u.nick_name", bo.getMechanicName());
+        qw.lambda()
+                .eq(StringUtils.isNotBlank(bo.getStatCycle()), StatisticsMechanicRepairDetails::getStatCycle, bo.getStatCycle());
+        return qw;
     }
 
     /**

+ 35 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsDeviceFailureMapper.xml

@@ -3,6 +3,9 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.vber.device.mapper.StatisticsDeviceFailureMapper">
+    <resultMap type="cn.vber.device.domain.vo.StatisticsDeviceFailureVo"
+               id="StatisticsDeviceFailureVoResult"></resultMap>
+
 
     <select id="selectSumDurationByDeviceId" resultType="map"
             parameterType="com.baomidou.mybatisplus.core.conditions.Wrapper">
@@ -13,4 +16,36 @@
         GROUP BY device_id
     </select>
 
+    <sql id="Base_Select_Clause">
+        SELECT f.id,
+               f.device_id,
+               f.failure_duration,
+               f.good_duration,
+               f.sick_duration,
+               f.failure_rate,
+               f.sick_rate,
+               f.stat_cycle,
+               f.stat_start_time,
+               f.stat_end_time,
+               f.remark,
+               d.name AS device_name
+        FROM d_statistics_device_failure f
+                 LEFT JOIN d_device d ON f.device_id = d.id
+        WHERE d.del_flag = '0' AND
+
+    </sql>
+
+    <select id="selectListVoPage" resultMap="StatisticsDeviceFailureVoResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
+
+    <select id="selectListVo" resultMap="StatisticsDeviceFailureVoResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
 </mapper>

+ 45 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsInspectionMissedMapper.xml

@@ -4,6 +4,19 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.vber.device.mapper.StatisticsInspectionMissedMapper">
 
+    <resultMap type="cn.vber.device.domain.vo.StatisticsInspectionMissedVo" id="StatisticsInspectionMissedResult">
+        <!--        <result property="id" column="id"/>-->
+        <!--        <result property="ruleId" column="rule_id"/>-->
+        <!--        <result property="ruleName" column="rule_name"/>-->
+        <!--        <result property="inspectorId" column="inspector_id"/>-->
+        <!--        <result property="inspectorName" column="inspector_name"/>-->
+        <!--        <result property="statCycle" column="stat_cycle"/>-->
+        <!--        <result property="missedCount" column="missed_count"/>-->
+        <!--        <result property="missedDuration" column="missed_duration"/>-->
+        <!--        <result property="statStartTime" column="stat_start_time"/>-->
+        <!--        <result property="statEndTime" column="stat_end_time"/>-->
+    </resultMap>
+
     <select id="selectInspectionLoseByRuleId" resultType="map"
             parameterType="com.baomidou.mybatisplus.core.conditions.Wrapper">
         SELECT ir.id           AS ruleId,
@@ -16,4 +29,36 @@
         GROUP BY ir.id, ir.task_name, ic.inspector_id, ir.cycle_hours
     </select>
 
+    <sql id="Base_Select_Clause">
+        SELECT d.id,
+               d.rule_id,
+               d.rule_name,
+               d.inspector_id,
+               d.stat_cycle,
+               d.missed_count,
+               d.missed_duration,
+               d.stat_start_time,
+               d.stat_end_time,
+               d.remark,
+               u.nick_name AS mechanic_name
+        FROM d_statistics_inspection_missed d
+                 LEFT JOIN sys_user u ON u.user_id = d.inspector_id
+        WHERE d.del_flag = '0' AND
+
+    </sql>
+
+    <select id="selectListVoPage" resultMap="StatisticsInspectionMissedResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
+
+    <select id="selectListVo" resultMap="StatisticsInspectionMissedResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
+
 </mapper>

+ 33 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/resources/mapper/device/StatisticsMechanicRepairDetailsMapper.xml

@@ -4,6 +4,9 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.vber.device.mapper.StatisticsMechanicRepairDetailsMapper">
 
+    <resultMap type="cn.vber.device.domain.vo.StatisticsMechanicRepairDetailsVo"
+               id="StatisticsMechanicRepairDetailsVoResult"></resultMap>
+
     <select id="selectMechanicRepairDetailsByDeviceId" resultType="map"
             parameterType="com.baomidou.mybatisplus.core.conditions.Wrapper">
         SELECT doa.user_id                                                                                             AS mechanicId,
@@ -14,4 +17,34 @@
                  LEFT JOIN (select id, name from d_device) AS d ON do.device_id = d.id ${ew.customSqlSegment}
         GROUP BY doa.user_id
     </select>
+
+    <sql id="Base_Select_Clause">
+        SELECT d.id,
+               d.mechanic_id,
+               d.devices,
+               d.repair_count,
+               d.stat_cycle,
+               d.stat_start_time,
+               d.stat_end_time,
+               d.remark,
+               u.nick_name AS mechanic_name
+        FROM d_statistics_mechanic_repair_details d
+                 LEFT JOIN sys_user u ON u.user_id = d.mechanic_id
+        WHERE d.del_flag = '0' AND
+
+    </sql>
+
+    <select id="selectListVoPage" resultMap="StatisticsMechanicRepairDetailsVoResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
+
+    <select id="selectListVo" resultMap="StatisticsMechanicRepairDetailsVoResult">
+        <include refid="Base_Select_Clause"/>
+        <if test="ew.getSqlSegment() != null">
+            ${ew.getSqlSegment()}
+        </if>
+    </select>
 </mapper>

+ 0 - 1
UI/VB.VUE/src/components/form/models.ts

@@ -1,6 +1,5 @@
 import type { Component } from "vue"
 import type { FormItemRule } from "element-plus/es/components/form/src/types"
-import type { AlertProps } from "element-plus/es/components/alert/src/alert"
 
 export interface VbFormItem {
 	id?: string | (() => string)

+ 62 - 10
UI/VB.VUE/src/components/reports/VbCommonReport.vue

@@ -1,5 +1,7 @@
 <script setup lang="ts">
 import VbDataTable from "@@@/table/VbDataTable.vue"
+import type { VbFormItem, VbFormRowItem } from "@@@/form/models"
+
 const props = withDefaults(
 	defineProps<{
 		columns: any[]
@@ -7,6 +9,9 @@ const props = withDefaults(
 		width?: string | number
 		title?: string
 		cycleStr?: string
+		searchData?: any
+		searchItems?: VbFormItem[]
+		searchFormSpan?: number
 		cycleType?: "Y" | "Q" | "M" | "D" | "W" | "ALL"
 		tableListFun: (query: any) => Promise<any>
 		genReportFun: (cycle: string) => Promise<any>
@@ -14,7 +19,8 @@ const props = withDefaults(
 	{
 		title: "",
 		cycleStr: "",
-		cycleType: "M"
+		cycleType: "M",
+		searchItems: () => []
 	}
 )
 const emits = defineEmits<{
@@ -26,18 +32,30 @@ const cycleType = "M"
 const cycle = ref()
 const cycleStr = ref()
 
-const queryParams = ref({
-	statCycle: cycle.value
-})
+const queryParams = ref(
+	Object.assign(
+		{
+			statCycle: cycle.value
+		},
+		props.searchData
+	)
+)
+
 const boxWidth = computed(() => {
 	if (typeof props.width == "number") {
 		return props.width + "px"
 	}
-	console.log("props.width", props.width)
 	return props.width || "1200px"
 })
+const searchFormSpan = computed(() => {
+	if (props.searchFormSpan) {
+		return props.searchFormSpan
+	}
+	return 24 / props.searchItems.length
+})
+
 function handleQuery(query?: any) {
-	query = query || tableRef.value?.getQueryParams() || queryParams.value
+	query = query || queryParams.value
 	query.statCycle = cycle.value
 	tableRef.value?.query(query)
 }
@@ -49,11 +67,27 @@ function genReport() {
 		message.msgSuccess("生成成功")
 	})
 }
+const formSlotSuffix = "search_"
+// form表单的插槽 需要search_开头,并去除search_传递给VbForm组件
+function formatterFormSlot(v: string | number): string | undefined {
+	v = v as string
+	if (v.search(formSlotSuffix) == 0) {
+		return v.substring(formSlotSuffix.length)
+	}
+	return undefined
+}
 function init() {
-	handleQuery()
+	queryParams.value = Object.assign(
+		{
+			statCycle: cycle.value
+		},
+		props.searchData
+	)
 }
 onMounted(() => {
-	init()
+	nextTick(() => {
+		init()
+	})
 })
 </script>
 
@@ -67,7 +101,25 @@ onMounted(() => {
 					v-model="cycle"
 					v-model:cycleStr="cycleStr"
 					:cycle-type="cycleType"></VbCycleSelect>
-				<el-button type="primary" @click="handleQuery()">查询</el-button>
+				<VbForm
+					v-if="searchItems"
+					ref="searchFormRef"
+					v-model:data="queryParams"
+					:items="searchItems as any"
+					:span="searchFormSpan">
+					<template v-for="(_, name) in $slots" #[`${formatterFormSlot(name)}`]>
+						<slot v-if="name.toString().search(formSlotSuffix) == 0" :name="name" />
+					</template>
+				</VbForm>
+				<el-form
+					v-else-if="$slots['search-form']"
+					ref="searchFormRef"
+					:inline="true"
+					:model="queryParams"
+					class="el-row mb-3">
+					<slot name="search-form" />
+				</el-form>
+				<el-button class="ms-5" type="primary" @click="handleQuery()">查询</el-button>
 				<el-button type="success" @click="genReport()">生成</el-button>
 			</div>
 			<h2 class="">{{ cycleStr }}{{ title }}</h2>
@@ -77,7 +129,7 @@ onMounted(() => {
 				:columns="columns"
 				:columns-fun="columnsFun"
 				:init-search="false"
-				:query-params="queryParams"
+				v-model:query-params="queryParams"
 				:custom-search-fun="handleQuery"
 				:remote-fun="tableListFun"
 				:has-checkbox="false"

+ 2 - 2
UI/VB.VUE/src/components/table/partials/toolbar/TableSearchFrom.vue

@@ -25,7 +25,7 @@ const _searchFormItems = computed(() => {
 				field: "searchbtn",
 				component: "slot",
 				span: 1.5
-			})
+			} as any)
 		return items
 	}
 	return propOpts.searchFormItems
@@ -56,7 +56,7 @@ function resetForm() {
 		ref="searchFormRef"
 		v-model:data="queryParams"
 		:row-items="searchFormRowItems"
-		:items="_searchFormItems"
+		:items="_searchFormItems as any"
 		:span="propOpts.searchFormSpan">
 		<template v-for="(_, name) in $slots" #[`${formatterFormSlot(name)}`]>
 			<slot v-if="name.toString().search(formSlotSuffix) == 0" :name="name" />

+ 18 - 0
UI/VB.VUE/src/views/device/report/fault.vue

@@ -19,6 +19,22 @@ const opts = reactive({
 		{ field: "sickDuration", name: "带病时长(时)", width: 120, isSort: true, tooltip: true },
 		{ field: "goodDuration", name: "完好时长(时)", width: 120, isSort: true, tooltip: true }
 	],
+	searchItems: [
+		{
+			field: "deviceName",
+			label: "设备名称",
+			class: "w-100",
+			required: false,
+			placeholder: "请输入设备名称",
+			component: "I",
+			props: {
+				clearable: true
+			}
+		}
+	] as any[],
+	queryParams: {
+		deviceName: undefined
+	},
 	tableListFun: apis.device.reportApi.queryFault,
 	genReportFun: apis.device.reportApi.generateFault
 })
@@ -31,6 +47,8 @@ const opts = reactive({
 			:cycle-type="opts.cycleType as 'Y' | 'Q' | 'M' | 'D' | 'W' | 'ALL'"
 			:columns="opts.columns"
 			:width="900"
+			:search-items="opts.searchItems"
+			:search-data="opts.queryParams"
 			:table-list-fun="opts.tableListFun"
 			:gen-report-fun="opts.genReportFun" />
 	</div>

+ 30 - 0
UI/VB.VUE/src/views/device/report/inspection.vue

@@ -19,6 +19,34 @@ const opts = reactive({
 		{ field: "missedCount", name: "漏检次数", width: 120, isSort: true, tooltip: true },
 		{ field: "missedDuration", name: "漏检时长(时)", width: 120, isSort: true, tooltip: true }
 	],
+	searchItems: [
+		{
+			field: "ruleName",
+			label: "任务名称",
+			class: "w-100",
+			required: false,
+			placeholder: "请输入任务名称",
+			component: "I",
+			props: {
+				clearable: true
+			}
+		},
+		{
+			field: "inspectorName",
+			label: "维修工",
+			class: "w-100",
+			required: false,
+			placeholder: "请输入维修工",
+			component: "I",
+			props: {
+				clearable: true
+			}
+		}
+	] as any[],
+	queryParams: {
+		ruleName: undefined,
+		inspectorName: undefined
+	},
 	tableListFun: apis.device.reportApi.queryInspectionMissed,
 	genReportFun: apis.device.reportApi.generateInspectionMissed
 })
@@ -30,6 +58,8 @@ const opts = reactive({
 			:title="opts.title"
 			:cycle-type="opts.cycleType as 'Y' | 'Q' | 'M' | 'D' | 'W' | 'ALL'"
 			:columns="opts.columns"
+			:search-items="opts.searchItems"
+			:search-data="opts.queryParams"
 			:table-list-fun="opts.tableListFun"
 			:gen-report-fun="opts.genReportFun" />
 	</div>

+ 18 - 0
UI/VB.VUE/src/views/device/report/repair.vue

@@ -18,6 +18,22 @@ const opts = reactive({
 		{ field: "repairCount", name: "维修次数", width: 100, isSort: true, tooltip: true },
 		{ field: "devices", name: "维修设备", width: "auto", isSort: false, tooltip: true }
 	],
+	searchItems: [
+		{
+			field: "mechanicName",
+			label: "维修工",
+			class: "w-100",
+			required: false,
+			placeholder: "请输入维修工",
+			component: "I",
+			props: {
+				clearable: true
+			}
+		}
+	] as any[],
+	queryParams: {
+		mechanicName: undefined
+	},
 	tableListFun: apis.device.reportApi.queryRepair,
 	genReportFun: apis.device.reportApi.generateRepair
 })
@@ -29,6 +45,8 @@ const opts = reactive({
 			:title="opts.title"
 			:cycle-type="opts.cycleType as 'Y' | 'Q' | 'M' | 'D' | 'W' | 'ALL'"
 			:columns="opts.columns"
+			:search-items="opts.searchItems"
+			:search-data="opts.queryParams"
 			:table-list-fun="opts.tableListFun"
 			:gen-report-fun="opts.genReportFun" />
 	</div>