Browse Source

巡检统计处理跳页

lipenghui 1 tháng trước cách đây
mục cha
commit
626802d01a
12 tập tin đã thay đổi với 172 bổ sung26 xóa
  1. 10 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/IotInspectOrderController.java
  2. 14 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/vo/IotInspectDeviceVo.java
  3. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/vo/IotInspectOrderDetailPageReqVO.java
  4. 17 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/IotMaintainController.java
  5. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainRespVO.java
  6. 25 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java
  7. 7 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectOrderDetailMapper.java
  8. 4 7
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectOrderMapper.java
  9. 4 4
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectOrderDetailService.java
  10. 20 7
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectOrderDetailServiceImpl.java
  11. 63 0
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotInspectOrderDetailMapper.xml
  12. 1 0
      yudao-server/src/main/resources/application.yaml

+ 10 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/IotInspectOrderController.java

@@ -12,9 +12,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
-import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderRespVO;
-import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.*;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
@@ -22,6 +20,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
+import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderDetailService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectPlanService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -61,6 +60,8 @@ public class IotInspectOrderController {
     private IotDeviceService iotDeviceService;
     @Autowired
     private IotInspectPlanService iotInspectPlanService;
+    @Autowired
+    private IotInspectOrderDetailService iotInspectOrderDetailService;
 
     @PostMapping("/create")
     @Operation(summary = "创建巡检工单")
@@ -216,4 +217,10 @@ public class IotInspectOrderController {
         }
     }
 
+    @GetMapping("/device")
+    public CommonResult<PageResult<IotInspectDeviceVo>> getDeviceStatus(IotInspectOrderDetailPageReqVO pageReqVO){
+        PageResult<IotInspectDeviceVo> deviceStatus = iotInspectOrderDetailService.getDeviceStatus(pageReqVO);
+        return success(deviceStatus);
+    }
+
 }

+ 14 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/vo/IotInspectDeviceVo.java

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo;
+
+import lombok.Data;
+
+@Data
+public class IotInspectDeviceVo {
+    private String deviceId;
+    private String orderId;
+    private String orderName;
+    private String deviceName;
+    private String deviceCode;
+    private String ifNormal;
+    private String createTime;
+}

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/vo/IotInspectOrderDetailPageReqVO.java

@@ -43,4 +43,9 @@ public class IotInspectOrderDetailPageReqVO extends PageParam {
     @Schema(description = "部门id", example = "26288")
     private Long deptId;
 
+    private String status;
+
+    private String deviceCode;
+
+    private String deviceName;
 }

+ 17 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/IotMaintainController.java

@@ -21,8 +21,11 @@ import cn.iocoder.yudao.module.pms.service.failure.IotFailureReportService;
 import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainBomService;
 import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainService;
 import cn.iocoder.yudao.module.pms.service.maintain.material.IotMaintainMaterialService;
+import cn.iocoder.yudao.module.pms.util.IotDeviceConvert;
 import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
 import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
@@ -41,6 +44,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -66,6 +70,8 @@ public class IotMaintainController {
     private AdminUserApi adminUserApi;
     @Autowired
     private IotFailureReportService iotFailureReportService;
+    @Resource
+    private DeptApi deptApi;
 
     @PostMapping("/create")
     @Operation(summary = "创建维修工单")
@@ -117,7 +123,17 @@ public class IotMaintainController {
     @PreAuthorize("@ss.hasPermission('rq:iot-maintain:query')")
     public CommonResult<PageResult<IotMaintainRespVO>> getIotMaintainPage(@Valid IotMaintainPageReqVO pageReqVO) {
         PageResult<IotMaintainDO> pageResult = iotMaintainService.getIotMaintainPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, IotMaintainRespVO.class));
+        List<IotMaintainRespVO> collect = pageResult.getList().stream().map(e -> {
+            IotMaintainRespVO iotMaintainRespVO = new IotMaintainRespVO();
+            BeanUtils.copyProperties(e, iotMaintainRespVO);
+            DeptRespDTO dept = deptApi.getDept(e.getDeptId());
+            if (Objects.nonNull(dept)) {
+                iotMaintainRespVO.setDeptName(dept.getName());
+            }
+            return iotMaintainRespVO;
+        }).collect(Collectors.toList());
+        return success(new PageResult<>(collect, pageResult.getTotal()));
+//        return success(BeanUtils.toBean(pageResult, IotMaintainRespVO.class));
     }
 
     @GetMapping("/page/app")

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainRespVO.java

@@ -126,4 +126,6 @@ public class IotMaintainRespVO {
     private String maintainType;
 
     private String supplierName;
+
+    private String deptName;
 }

+ 25 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorder.IotMainWorkOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotsapstock.IotSapStockDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
@@ -23,6 +24,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotProductClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotmainworkorder.IotMainWorkOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotsapstock.IotSapStockMapper;
@@ -32,7 +34,6 @@ import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
 import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import com.alibaba.fastjson.JSON;
@@ -54,6 +55,7 @@ import javax.annotation.security.PermitAll;
 import javax.validation.Valid;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -92,6 +94,8 @@ public class IotStaticController {
     private IotMaintainService iotMaintainService;
     @Value("${yanfan.url}")
     private String yanfanUrl;
+    @Autowired
+    private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
 
     @GetMapping("/main/day")
     public CommonResult<Map<String, Object>> getMaintainDay() {
@@ -476,4 +480,24 @@ public class IotStaticController {
         });
         return CommonResult.success(ids.size());
     }
+
+    @GetMapping("/inspect/device")
+    public CommonResult<Map<String, Integer>> getDeviceStatus() {
+        List<IotInspectOrderDetailDO> detailDOList = iotInspectOrderDetailMapper.selectList();
+        Map<Long, List<IotInspectOrderDetailDO>> collect = detailDOList.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getOrderId));
+        AtomicInteger todo = new AtomicInteger();
+        AtomicInteger finished = new AtomicInteger();
+        collect.forEach( (k,v)->{
+            Map<Long, List<IotInspectOrderDetailDO>> collect1 = v.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getDeviceId));
+            collect1.forEach( (k1,v2)->{
+                boolean b = v2.stream().anyMatch(f -> Objects.isNull(f.getIfNormal()));
+                if (b) {
+                    todo.getAndIncrement();
+                }else {
+                    finished.getAndIncrement();
+                }
+            });
+        });
+        return success(ImmutableMap.of("todo", todo.get(),"finished", finished.get()));
+    }
 }

+ 7 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectOrderDetailMapper.java

@@ -1,13 +1,14 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.inspect;
 
-import java.util.*;
-
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 巡检工单巡检明细 Mapper
@@ -31,4 +32,7 @@ public interface IotInspectOrderDetailMapper extends BaseMapperX<IotInspectOrder
                 .orderByDesc(IotInspectOrderDetailDO::getId));
     }
 
+    IPage<IotInspectDeviceVo> getDeviceStatusWei(IPage<IotInspectOrderDetailPageReqVO> page, @Param("reqVO")  IotInspectOrderDetailPageReqVO reqVO);
+    IPage<IotInspectDeviceVo> getDeviceStatusYi(IPage<IotInspectOrderDetailPageReqVO> page, @Param("reqVO")  IotInspectOrderDetailPageReqVO reqVO);
+
 }

+ 4 - 7
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectOrderMapper.java

@@ -1,20 +1,17 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.inspect;
 
-import java.util.*;
-
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.Collection;
+import java.util.List;
+
 /**
  * 巡检工单 Mapper
  *

+ 4 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectOrderDetailService.java

@@ -1,20 +1,20 @@
 package cn.iocoder.yudao.module.pms.service.inspect;
 
-import java.util.*;
-import javax.validation.*;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 
+import javax.validation.Valid;
+
 /**
  * 巡检工单巡检明细 Service 接口
  *
  * @author 芋道源码
  */
 public interface IotInspectOrderDetailService {
-
+    PageResult<IotInspectDeviceVo> getDeviceStatus(IotInspectOrderDetailPageReqVO pageReqVO);
     /**
      * 创建巡检工单巡检明细
      *

+ 20 - 7
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectOrderDetailServiceImpl.java

@@ -1,19 +1,18 @@
 package cn.iocoder.yudao.module.pms.service.inspect;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 
+import javax.annotation.Resource;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ORDER_DETAIL_NOT_EXISTS;
@@ -72,4 +71,18 @@ public class IotInspectOrderDetailServiceImpl implements IotInspectOrderDetailSe
         return iotInspectOrderDetailMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<IotInspectDeviceVo> getDeviceStatus(IotInspectOrderDetailPageReqVO pageReqVO) {
+        IPage<IotInspectDeviceVo> page;
+        if ("todo".equals(pageReqVO.getStatus())) {
+            page = iotInspectOrderDetailMapper.getDeviceStatusWei(
+                    new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
+        } else {
+            page = iotInspectOrderDetailMapper.getDeviceStatusYi(
+                    new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
+        }
+
+        return new PageResult<>(page.getRecords(), page.getTotal());
+    }
+
 }

+ 63 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotInspectOrderDetailMapper.xml

@@ -0,0 +1,63 @@
+<?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="cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+    <select id="getDeviceStatusWei"
+            resultType="cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo">
+        select * from(select order_id, device_id,create_time, if_normal,
+        (select inspect_order_title from rq_iot_inspect_order aa where aa.id = fin.order_id) order_name,
+        (select device_name from rq_iot_device aa where aa.id = fin.device_id) device_name,
+        (select device_code from rq_iot_device aa where aa.id = fin.device_id) device_code
+        from (SELECT
+        order_id,
+        device_id,
+        DATE_FORMAT(max(create_time), '%Y-%m-%d')  create_time,
+            '未填写' AS if_normal
+        FROM
+        rq_iot_inspect_order_detail
+        GROUP BY
+        order_id, device_id
+        HAVING
+        SUM(CASE WHEN if_normal IS NULL THEN 1 ELSE 0 END)> 0) fin)finall
+        <where>
+            <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
+                and finall.device_name LIKE CONCAT('%',#{reqVO.deviceName},'%')
+            </if>
+            <if test="reqVO.deviceCode!=null and reqVO.deviceCode!=''">
+                and finall.device_code LIKE CONCAT('%',#{reqVO.deviceCode},'%')
+            </if>
+        </where>
+    </select>
+    <select id="getDeviceStatusYi"
+            resultType="cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo">
+        select * from(select order_id, device_id,create_time, if_normal,
+        (select inspect_order_title from rq_iot_inspect_order aa where aa.id = fin.order_id) order_name,
+        (select device_name from rq_iot_device aa where aa.id = fin.device_id) device_name,
+        (select device_code from rq_iot_device aa where aa.id = fin.device_id) device_code
+        from (SELECT
+        order_id,
+        device_id,
+        DATE_FORMAT(max(create_time), '%Y-%m-%d')  create_time,
+        '已填写' AS if_normal
+        FROM
+        rq_iot_inspect_order_detail
+        GROUP BY
+        order_id, device_id
+        HAVING
+        SUM(CASE WHEN if_normal IS NULL THEN 1 ELSE 0 END)= 0) fin)finall
+        <where>
+            <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
+                and finall.device_name LIKE CONCAT('%',#{reqVO.deviceName},'%')
+            </if>
+            <if test="reqVO.deviceCode!=null and reqVO.deviceCode!=''">
+                and finall.device_code LIKE CONCAT('%',#{reqVO.deviceCode},'%')
+            </if>
+        </where>
+    </select>
+</mapper>

+ 1 - 0
yudao-server/src/main/resources/application.yaml

@@ -245,6 +245,7 @@ yudao:
   security:
     permit-all_urls:
       - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,不需要登录
+      - /admin-api/rq/iot-app/**
   websocket:
     enable: true # websocket的开关
     path: /infra/ws # 路径