Browse Source

Merge branch 'hcp-创米BUG修复' into test

hechunping 1 year ago
parent
commit
7a8dee0af2

+ 14 - 11
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -43,10 +43,7 @@ import com.xy.sys.EnumDataClearSize;
 import com.xy.util.ExcelUtils;
 import com.xy.util.ExcelUtils;
 import com.xy.utils.*;
 import com.xy.utils.*;
 import com.xy.utils.Enum.AlgorithmTypeEnum;
 import com.xy.utils.Enum.AlgorithmTypeEnum;
-import com.xy.utils.enums.DeviceActiveStateEnum;
-import com.xy.utils.enums.DeviceLockState;
-import com.xy.utils.enums.DeviceNetSateType;
-import com.xy.utils.enums.DeviceTypeEnum;
+import com.xy.utils.enums.*;
 import com.xy.vo.DeviceQueryVO;
 import com.xy.vo.DeviceQueryVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
@@ -1066,14 +1063,20 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         mercHomeStatisticalVO.setOfflineNum(offlineNum);
         mercHomeStatisticalVO.setOfflineNum(offlineNum);
 
 
         //锁机、未锁机
         //锁机、未锁机
-        Map<Integer, Long> countLockLstateMap = deviceStatuses.stream().collect(Collectors
-                .groupingBy(DeviceStatus::getLockStateL, Collectors.counting()));
-        Long lockLStateNum = countLockLstateMap.get(DeviceLockState.LOCK.getCode());
-        Long unLockLStateNum = countLockLstateMap.get(DeviceLockState.UN_LOCK.getCode());
-        mercHomeStatisticalVO.setOperatingNum(unLockLStateNum == null ? 0 : unLockLStateNum.intValue());
-        mercHomeStatisticalVO.setClosedNum(lockLStateNum == null ? 0 : lockLStateNum.intValue());
+//        Map<Integer, Long> countLockLstateMap = deviceStatuses.stream().collect(Collectors
+//                .groupingBy(DeviceStatus::getLockStateL, Collectors.counting()));
+//        Long lockLStateNum = countLockLstateMap.get(DeviceLockState.LOCK.getCode());
+//        Long unLockLStateNum = countLockLstateMap.get(DeviceLockState.UN_LOCK.getCode());
+        Map<Integer, Long> countLockLstateMap = mercDevices.stream().collect(Collectors
+                .groupingBy(DeviceInfo::getBusyState, Collectors.counting()));
+        //运营
+        Long operatingNum = countLockLstateMap.get(DeviceBusySateType.OPERATING.getCode());
+        //停运
+        Long suspendedNum = countLockLstateMap.get(DeviceBusySateType.SUSPENDED.getCode());
+        mercHomeStatisticalVO.setOperatingNum(operatingNum == null ? 0 : operatingNum.intValue());
+        mercHomeStatisticalVO.setClosedNum(suspendedNum == null ? 0 : suspendedNum.intValue());
         //待补货
         //待补货
-        Integer deviceNum = R.feignCheckData(goodsDeviceService.countOutOfStockDevice(new GoodsDeviceDto.CountOutOfStockDevice().setMercId(mercId)));
+        Integer deviceNum = R.feignCheckData(goodsDeviceService.countOutOfStockDevice(new GoodsDeviceDto.CountOutOfStockDevice().setMercId(mercId).setDeviceIds(myDeviceIds)));
         mercHomeStatisticalVO.setNeedToFillNum(deviceNum);
         mercHomeStatisticalVO.setNeedToFillNum(deviceNum);
         return R.ok(mercHomeStatisticalVO);
         return R.ok(mercHomeStatisticalVO);
     }
     }

+ 27 - 1
device-api-service/src/main/java/com/xy/service/DeviceMqttConsumerImpl.java

@@ -305,6 +305,7 @@ public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
             Long mercId = deviceEventMsg.getMercId();
             Long mercId = deviceEventMsg.getMercId();
             LocalDateTime createTime = deviceEventMsg.getCreateTime();
             LocalDateTime createTime = deviceEventMsg.getCreateTime();
             String msg = deviceEventMsg.getMsg();
             String msg = deviceEventMsg.getMsg();
+            String code = deviceEventMsg.getCode();
             Long configId = MsgConfigId.DEVICE_EXCEPTION.getId();
             Long configId = MsgConfigId.DEVICE_EXCEPTION.getId();
             MsgConfigDto.Vo msgConfig = R.feignCheckData(msgSendApiService.getMsgConfig(new MsgConfigDto.Vo().setId(configId)));
             MsgConfigDto.Vo msgConfig = R.feignCheckData(msgSendApiService.getMsgConfig(new MsgConfigDto.Vo().setId(configId)));
             List<MsgConfigTestDto.BizParam> bizParams = R.feignCheckData(msgSendApiService.getBizParamByMsgConfig(new MsgConfigTestDto.MsgConfig().setConfigId(configId)));
             List<MsgConfigTestDto.BizParam> bizParams = R.feignCheckData(msgSendApiService.getBizParamByMsgConfig(new MsgConfigTestDto.MsgConfig().setConfigId(configId)));
@@ -318,9 +319,34 @@ public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
                 } else {
                 } else {
                     deviceName = deviceName + "(" + deviceId + ")";
                     deviceName = deviceName + "(" + deviceId + ")";
                 }
                 }
-                //TODO 获取售后及售后创建的角色用户
+                //  获取售后及售后创建的角色用户
                 UserInfoDto.SaleBackUsersVO saleBackUsersVO = R.feignCheckData(userInfoService.getSaleBackUsers());
                 UserInfoDto.SaleBackUsersVO saleBackUsersVO = R.feignCheckData(userInfoService.getSaleBackUsers());
                 List<String> mpOpenIds = saleBackUsersVO.getMpOpenIds();
                 List<String> mpOpenIds = saleBackUsersVO.getMpOpenIds();
+                //开门超时事件增加商户推送 ERR0020
+                if ("ERR0020".equals(code)) {
+                    MercDto.Vo merc = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setId(mercId)));
+                    Long userInfoId = merc.getUserInfoId();
+                    List<Long> userInfoIdList = new ArrayList<>();
+                    userInfoIdList.add(userInfoId);
+                    List<MercUserDeviceDto.Vo> mercUserDevices = R.feignCheckData(mercFeignService.mercDeviceUsers(
+                            new MercUserDeviceDto.Vo().setMercId(mercId).setDeviceId(deviceId)));
+                    if (CollUtil.isNotEmpty(mercUserDevices)) {
+                        mercUserDevices.forEach(mud -> {
+                            Long deviceIdUser = mud.getDeviceId();
+                            if (deviceId == deviceIdUser) {
+                                userInfoIdList.add(mud.getUserId());
+                            }
+                        });
+                    }
+                    List<UserInfoDto.Vo> userInfoList = R.feignCheckData(userInfoService.list(new UserInfoDto.SelectListDto().setUserIds(userInfoIdList)));
+                    if (CollUtil.isNotEmpty(userInfoList)) {
+                        Set<String> mercMpOpenIds = userInfoList.stream().filter(u -> ObjectUtil.isNotEmpty(u.getMpOpenid()))
+                                .map(UserInfoDto.Vo::getMpOpenid)
+                                .collect(Collectors.toSet());
+                        mpOpenIds.addAll(mercMpOpenIds);
+                    }
+                }
+
                 if (CollUtil.isNotEmpty(mpOpenIds)) {
                 if (CollUtil.isNotEmpty(mpOpenIds)) {
                     Set<String> mpIds = new HashSet<>(mpOpenIds);
                     Set<String> mpIds = new HashSet<>(mpOpenIds);
                     for (MsgConfigTestDto.BizData b : bizDataList) {
                     for (MsgConfigTestDto.BizData b : bizDataList) {