|
@@ -2,13 +2,21 @@ package com.usky.iot.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.usky.backend.client.DataQueryClient;
|
|
|
+import com.usky.backend.domain.StatusVO;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.iot.domain.DmpDeviceStatus;
|
|
|
import com.usky.iot.mapper.DmpDeviceStatusMapper;
|
|
|
import com.usky.iot.service.DmpDeviceStatusService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@@ -23,6 +31,10 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class DmpDeviceStatusServiceImpl extends AbstractCrudService<DmpDeviceStatusMapper, DmpDeviceStatus> implements DmpDeviceStatusService {
|
|
|
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataQueryClient dataQueryClient;
|
|
|
+
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getCollectByProduct(List<Integer> productIds) {
|
|
|
QueryWrapper<DmpDeviceStatus> query = Wrappers.query();
|
|
@@ -31,4 +43,26 @@ public class DmpDeviceStatusServiceImpl extends AbstractCrudService<DmpDeviceSta
|
|
|
.groupBy("product_id");
|
|
|
return this.listMaps(query);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void status(){
|
|
|
+ List<StatusVO> list = dataQueryClient.status();
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ String date = list.get(i).getTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ String currentDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ LambdaUpdateWrapper<DmpDeviceStatus> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
+ if(date.equals(currentDate)){
|
|
|
+ updateWrapper.set(DmpDeviceStatus::getDeviceStatus,1)
|
|
|
+ .set(DmpDeviceStatus::getLastOnlineTime,list.get(i).getTime())
|
|
|
+ .eq(DmpDeviceStatus::getDeviceId,list.get(i).getDeviceId());
|
|
|
+ }else{
|
|
|
+ updateWrapper.set(DmpDeviceStatus::getDeviceStatus,2)
|
|
|
+ .set(DmpDeviceStatus::getLastOfflineTime,list.get(i).getTime())
|
|
|
+ .eq(DmpDeviceStatus::getDeviceId,list.get(i).getDeviceId());
|
|
|
+ }
|
|
|
+ this.update(updateWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|