lipenghui 2 veckor sedan
förälder
incheckning
4fb8797dcd

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

@@ -162,12 +162,28 @@ public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
 //                .or()
 //                .like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getChargeName, reqVO.getCommonParam()).orderByDesc(IotDeviceDO::getLastInlineTime)
 //        ;
-        wrapper.isNotNull(IotDeviceDO::getIfInline)
-                .and(i -> i.like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getDeviceName, reqVO.getCommonParam())
-                        .or()
-                        .like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getDeviceCode, reqVO.getCommonParam())
-                        .or()
-                        .like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getChargeName, reqVO.getCommonParam())).orderByDesc(IotDeviceDO::getLastInlineTime);
+//        wrapper.isNotNull(IotDeviceDO::getIfInline)
+//                .and(i -> i.like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getDeviceName, reqVO.getCommonParam())
+//                        .or()
+//                        .like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getDeviceCode, reqVO.getCommonParam())
+//                        .or()
+//                        .like(StringUtils.isNotBlank(reqVO.getCommonParam()), IotDeviceDO::getChargeName, reqVO.getCommonParam())).orderByDesc(IotDeviceDO::getLastInlineTime);
+
+
+        // 基础条件:isInline不为空
+        wrapper.isNotNull(IotDeviceDO::getIfInline);
+        // 获取查询参数
+        String commonParam = reqVO.getCommonParam();
+        // 只有当commonParam不为空时,才添加and条件
+        if (StringUtils.isNotBlank(commonParam)) {
+            wrapper.and(i -> i.like(IotDeviceDO::getDeviceName, commonParam)
+                    .or()
+                    .like(IotDeviceDO::getDeviceCode, commonParam)
+                    .or()
+                    .like(IotDeviceDO::getChargeName, commonParam));
+        }
+        // 排序条件
+        wrapper.orderByAsc(IotDeviceDO::getIfInline).orderByDesc(IotDeviceDO::getLastInlineTime);
 
         return selectPage(reqVO, wrapper);
     }

+ 27 - 12
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/TdCronJob.java

@@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
 import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -55,26 +56,40 @@ public class TdCronJob implements JobHandler {
                     }
                 }
                 if (e.getStatus()==1) {
-//                    if (Objects.nonNull(device.getLastInlineTime())) {
-                        try {
+                        if (StringUtils.isNotBlank(device.getLastInlineTime())) {
+                            try {
+                                if (DateUtils.checkIfFullDayDifference(device.getLastInlineTime())) {
+                                    device.setIfInline(4);
+                                } else {
+                                    device.setIfInline(3);
+                                }
+                            } catch (Exception ex) {
+                                throw new RuntimeException(ex.getMessage());
+                            }
+                        } else {
+                            device.setIfInline(4);
+                        }
+
+                } else {
+                        if (StringUtils.isNotBlank(device.getLastInlineTime())) {
                             if (DateUtils.checkIfFullDayDifference(device.getLastInlineTime())) {
                                 device.setIfInline(4);
                             } else {
-                                device.setIfInline(3);
+                                device.setIfInline(e.getStatus());
                             }
-                        } catch (Exception ex) {
-                            throw new RuntimeException(ex);
+                        } else {
+                            device.setIfInline(4);
                         }
-//                    } else {
-//                        device.setIfInline(5);
-//                    }
-//                    device.setIfInline(5);
-                } else {
-                    device.setIfInline(e.getStatus());
-                }
+                    }
             });
         }
         iotDeviceMapper.updateBatch(devices);
         return "";
     }
+
+
+    public static void main(String[] args) {
+        String abc = "2025-07-14 20:07:40";
+        System.out.println(DateUtils.checkIfFullDayDifference(abc));
+    }
 }