Bladeren bron

数采定时任务更新设备调整

Zimo 4 dagen geleden
bovenliggende
commit
cecb0d775d

+ 18 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.pms.dal.mysql;
 
+import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.SortablePageParam;
@@ -14,6 +15,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSimple;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Mapper;
@@ -359,4 +361,20 @@ public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
     Long getTotalA(@Param("reqVO") IotDevicePageReqVO reqVO);
     List<Long> getFailureCount(@Param("reqVO") IotDevicePageReqVO reqVO);
     List<Long> getRepairCount(@Param("reqVO") IotDevicePageReqVO reqVO);
+
+    default int updateTdCron(IotDeviceDO iotDeviceDO) {
+        // 非空校验保留
+        Assert.notNull(iotDeviceDO);
+        LambdaUpdateWrapper<IotDeviceDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<IotDeviceDO>()
+                // 逐个设置更新字段,MyBatis-Plus自动处理类型和SQL拼接
+                .set(IotDeviceDO::getYfDeviceId, iotDeviceDO.getYfDeviceId())
+                .set(IotDeviceDO::getLastInlineTime, iotDeviceDO.getLastInlineTime())
+                .set(IotDeviceDO::getIfInline, iotDeviceDO.getIfInline())
+                .set(IotDeviceDO::getLat, iotDeviceDO.getLat())
+                .set(IotDeviceDO::getLng, iotDeviceDO.getLng())
+                // 条件匹配:根据主键ID更新(原CAS逻辑保留)
+                .eq(IotDeviceDO::getId, iotDeviceDO.getId());
+        // 第一个参数传null,仅使用wrapper作为更新条件和字段,符合原逻辑
+        return update(null, lambdaUpdateWrapper);
+    }
 }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/TdCronJob.java

@@ -103,9 +103,10 @@ public class TdCronJob implements JobHandler {
                             device.setIfInline(4);
                         }
                     }
+                iotDeviceMapper.updateTdCron(device);
             });
         }
-        iotDeviceMapper.updateBatch(devices);
+//        iotDeviceMapper.updateBatch(devices);
         return "";
     }