Zimo пре 10 часа
родитељ
комит
0dec00cbd3

+ 19 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/qhse/cert/IotMeasureCertServiceImpl.java

@@ -14,6 +14,7 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.HashSet;
 import java.util.Objects;
 import java.util.Set;
@@ -43,7 +44,15 @@ public class IotMeasureCertServiceImpl implements IotMeasureCertService {
         iotMeasureCert.setExpired(false);
         LocalDateTime certExpire = iotMeasureCert.getCertExpire();
         //证书已过期的话,更新expired为true
-        iotMeasureCert.setExpired(certExpire.isBefore(LocalDateTime.now()));
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            //证书已过期的话,更新expired为true
+            iotMeasureCert.setExpired(true);
+        } else  {
+            if (ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 60) {
+                iotMeasureCert.setAlertWarn(true);//设置为60天预警过期
+            }
+            iotMeasureCert.setExpired(false);
+        }
         iotMeasureCertMapper.insert(iotMeasureCert);
         // 返回
         return iotMeasureCert.getId();
@@ -57,7 +66,15 @@ public class IotMeasureCertServiceImpl implements IotMeasureCertService {
         IotMeasureCertDO updateObj = BeanUtils.toBean(updateReqVO, IotMeasureCertDO.class);
         LocalDateTime certExpire = updateObj.getCertExpire();
         //证书已过期的话,更新expired为true
-        updateObj.setExpired(certExpire.isBefore(LocalDateTime.now()));
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            //证书已过期的话,更新expired为true
+            updateObj.setExpired(true);
+        } else  {
+            if (ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 60) {
+                updateObj.setAlertWarn(true);//设置为60天预警过期
+            }
+            updateObj.setExpired(false);
+        }
         iotMeasureCertMapper.updateById(updateObj);
     }
 

+ 14 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/qhse/devicecert/QhseDeviceCertServiceImpl.java

@@ -12,6 +12,9 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
 /**
@@ -33,6 +36,17 @@ public class QhseDeviceCertServiceImpl implements QhseDeviceCertService {
         qhseDeviceCert.setDeleted(false);
         qhseDeviceCert.setExpired(false);
         qhseDeviceCert.setAlertWarn(false);
+        LocalDateTime certExpire = qhseDeviceCert.getCertExpire();
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            qhseDeviceCert.setExpired(true);
+        } else {
+            qhseDeviceCert.setExpired(false);
+        }
+        //如果相差不到90天了就进行预警
+        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
+            qhseDeviceCert.setAlertWarn(true);
+            qhseDeviceCert.setExpired(false);
+        }
         qhseDeviceCertMapper.insert(qhseDeviceCert);
         // 返回
         return qhseDeviceCert.getId();

+ 28 - 7
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/qhse/measure/IotMeasureDetectServiceImpl.java

@@ -1,23 +1,26 @@
 package cn.iocoder.yudao.module.pms.service.qhse.measure;
 
 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.measure.vo.IotMeasureDetectPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.measure.vo.IotMeasureDetectSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.measure.IotMeasureBookDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.measure.IotMeasureDetectDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.qhse.measure.IotMeasureBookMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.qhse.measure.IotMeasureDetectMapper;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
@@ -34,12 +37,30 @@ public class IotMeasureDetectServiceImpl implements IotMeasureDetectService {
     private IotMeasureDetectMapper iotMeasureDetectMapper;
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private IotMeasureBookMapper iotMeasureBookMapper;
 
     @Override
     public Long createIotMeasureDetect(IotMeasureDetectSaveReqVO createReqVO) {
         // 插入
         IotMeasureDetectDO iotMeasureDetect = BeanUtils.toBean(createReqVO, IotMeasureDetectDO.class);
         iotMeasureDetect.setDeleted(false);
+        LocalDateTime validityPeriod = createReqVO.getValidityPeriod();
+        IotMeasureBookDO iotMeasureBookDO = iotMeasureBookMapper.selectById(createReqVO.getMeasureId());
+        if (Objects.isNull(iotMeasureBookDO)) {
+            throw new ServiceException(new ErrorCode(3, "不存在"));
+        }
+        if (validityPeriod.isBefore(LocalDateTime.now())) {
+            iotMeasureBookDO.setExpired(true);
+        } else {
+            iotMeasureBookDO.setExpired(false);
+        }
+        //如果相差不到90天了就进行预警
+        if (validityPeriod.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), validityPeriod) < 90) {
+            iotMeasureBookDO.setAlertWarn(true);
+            iotMeasureBookDO.setExpired(false);
+        }
+        iotMeasureBookMapper.updateById(iotMeasureBookDO);
         iotMeasureDetectMapper.insert(iotMeasureDetect);
         // 返回
         return iotMeasureDetect.getId();