Parcourir la source

#MOD 小程序-商户设备搜索分页

谭斌 il y a 2 ans
Parent
commit
b257c8e99f

+ 5 - 0
device-api-service/src/main/java/com/xy/entity/DeviceStatus.java

@@ -170,4 +170,9 @@ public class DeviceStatus {
      * 最近一次补货后的库存数
      */
     private Integer afterFillStock;
+
+    /**
+     * 缺货状态
+     */
+    private Integer stockStatus;
 }

+ 28 - 4
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -3,6 +3,7 @@ package com.xy.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.StrBuilder;
+import cn.hutool.core.util.BooleanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,6 +19,7 @@ import com.xy.dto.DeviceInfoDto;
 import com.xy.dto.DeviceRegisterDto;
 import com.xy.dto.DeviceStatusDto;
 import com.xy.dto.DeviceSysinfoDto;
+import com.xy.entity.DeviceErrorsRecord;
 import com.xy.entity.DeviceInfo;
 import com.xy.entity.DeviceStatus;
 import com.xy.entity.SysDictRedis;
@@ -68,6 +70,8 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
     private final DeviceRegisterServiceImpl deviceRegisterService;
 
+    private final DeviceErrorsRecordServiceImpl deviceErrorsRecordService;
+
     private final RedisService<String> redisService;
 
     private final String keyPrefix = "device:history:";
@@ -450,10 +454,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             vo.setPlaceLineId(v.getPlaceLineId());
             //线路下的设备列表
             List<DeviceInfoDto.MercHomeDeviceVo> deviceInfos = Beans.copy(DeviceInfoDto.MercHomeDeviceVo.class, deviceMap.get(placeLineId));
-//            deviceInfos.stream().map(DeviceInfoDto.MercHomeDeviceVo::getDeviceId);
-            //状态信息
-//            DeviceStatusDto.Vo deviceStatus = deviceStatusService.obj(new DeviceStatusDto.Vo().setDeviceId(deviceInfo.getDeviceId())).getData();
-//            deviceStatusService.listByIds()
+
             deviceInfos.forEach(device -> {
                 //设备类型 反显
                 SysDictRedis dictDeviceType = SysDictUtils.get(DictConsts.DEVICE_TYPE, String.valueOf(device.getDeviceType()));
@@ -484,6 +485,29 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         return list(Wrappers.<DeviceInfo>lambdaQuery().eq(DeviceInfo::getMercId, mercId));
     }
 
+
+    @ApiOperation("小程序商户设备搜索")
+    @Override
+    public R<PageBean<DeviceInfoDto.Vo2>> mercDeviceSearchPage(@RequestBody DeviceInfoDto.Page page) {
+        //小程序独有查询字段 缺货状态:stockStatus ,是否查故障设备:fault
+        Boolean fault = page.getFault();
+        Long mercId = page.getMercId();
+        if (BooleanUtil.isTrue(fault)) {
+            //查询故障设备
+            List<DeviceErrorsRecord> deviceErrorsRecords = deviceErrorsRecordService.list(Wrappers.<DeviceErrorsRecord>lambdaQuery()
+                    .eq(mercId != null, DeviceErrorsRecord::getMercId, page.getMercId()));
+            List<Long> deviceIdList = deviceErrorsRecords.stream().map(DeviceErrorsRecord::getDeviceId).collect(Collectors.toList());
+            if (CollUtil.isEmpty(deviceIdList)) {
+                return R.ok(new PageBean<>());
+            }
+            page.setDeviceIdList(deviceIdList);
+
+        }
+        PageBean<DeviceInfoDto.Vo2> pageBean = queryPage(page);
+        return R.ok(pageBean);
+    }
+
+
     private PageBean<DeviceInfoDto.Vo2> queryPage(DeviceInfoDto.Page page) {
         IPage<DeviceInfoQueryPage> iPage = baseMapper.queryPage(toIPage(page.getPage()), page);
         return toPageBean(DeviceInfoDto.Vo2.class, iPage);

+ 17 - 0
device-api-service/src/main/resources/mapper/DeviceInfoMapper.xml

@@ -65,6 +65,9 @@
             <result column="device_state_l" property="deviceStateL"/>
             <result column="device_state_r" property="deviceStateR"/>
             <result column="update_time" property="updateTime"/>
+            <result column="stock" property="stock"/>
+            <result column="after_fill_stock" property="afterFillStock"/>
+            <result column="stock_status" property="stockStatus"/>
         </association>
         <association property="deviceRegister" javaType="com.xy.dto.DeviceRegisterDto$Vo">
             <result column="register_num" property="registerNum"/>
@@ -95,6 +98,7 @@
         status.disk_remain_space, status.memery_space, status.memery_remain_space, status.camera_l_main_state,
         status.camera_l_second_state, status.camera_r_main_state, status.camera_r_second_state,
         status.device_state_l, status.device_state_r, status.update_time,
+        status.stock, status.after_fill_stock, status.stock_status,
         mr.name as merc_name,
         mp.place_name,
         ml.line_name as place_line_name,
@@ -155,6 +159,13 @@
         <if test="queryPage.deviceId != null">
             and LOCATE(#{queryPage.deviceId}, info.device_id) > 0
         </if>
+        <if test="queryPage.deviceIdList != null">
+            and device_id IN
+            <foreach collection="queryPage.deviceIdList" item="deviceId" open="(" close=")" separator=",">
+                #{deviceId}
+            </foreach>
+        </if>
+
         <if test="queryPage.deviceName != null and queryPage.deviceName != ''">
             and LOCATE(#{queryPage.deviceName}, sysinfo.device_name) > 0
         </if>
@@ -170,6 +181,12 @@
         <if test="queryPage.netState != null">
             and status.net_state = #{queryPage.netState}
         </if>
+
+        <if test="queryPage.stockStatus != null">
+            and status.stock_status = #{queryPage.stockStatus}
+        </if>
+
+
         <if test="queryPage.busyState != null">
             and info.busy_state = #{queryPage.busyState}
         </if>

+ 14 - 11
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -133,6 +133,19 @@ public class DeviceInfoDto {
     @Accessors(chain = true)
     public static class Page extends Vo {
 
+        @ApiModelProperty("缺货状态")
+        private Integer stockStatus;
+
+        /**
+         * 设备ID
+         */
+        private List<Long> deviceIdList;
+
+
+        @ApiModelProperty("是否查询故障设备")
+        private Boolean fault;
+
+
         @ApiModelProperty("是否导出当前页")
         private Boolean exportPage = true;
 
@@ -538,15 +551,5 @@ public class DeviceInfoDto {
 
     }
 
-    @Data
-    @Accessors(chain = true)
-    public static class MercHomeDevicePage extends MercHomeQueryDTO {
-
-        @ApiModelProperty(value = "分页对象", required = true)
-        private PageBean page;
-
-
-    }
-
 
-}
+}

+ 6 - 0
device-api/src/main/java/com/xy/dto/DeviceStatusDto.java

@@ -136,6 +136,12 @@ public class DeviceStatusDto {
          */
         @ApiModelProperty("上次补货后库存")
         private Integer afterFillStock;
+
+        /**
+         * 缺货状态
+         */
+        @ApiModelProperty("缺货状态")
+        private Integer stockStatus;
     }
 
 }

+ 11 - 0
device-api/src/main/java/com/xy/service/DeviceInfoService.java

@@ -2,6 +2,7 @@ package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
 import com.xy.dto.DeviceInfoDto;
+import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -122,4 +123,14 @@ public interface DeviceInfoService {
      */
     @PostMapping("mercHomeList")
     R<List<DeviceInfoDto.MercHomeListVO>> mercHomeList(@RequestBody @Validated DeviceInfoDto.MercHomeQueryDTO dto);
+
+
+    /**
+     * 小程序商户设备搜索
+     *
+     * @param page
+     * @return
+     */
+    @PostMapping("mercDeviceSearchPage")
+    R<PageBean<DeviceInfoDto.Vo2>> mercDeviceSearchPage(@RequestBody @Validated DeviceInfoDto.Page page);
 }