Ver Fonte

应监设备证书

Zimo há 11 horas atrás
pai
commit
08656c47ad

+ 6 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/devicecert/vo/QhseDeviceCertPageReqVO.java

@@ -37,7 +37,8 @@ public class QhseDeviceCertPageReqVO extends PageParam {
     private LocalDateTime[] certTime;
 
     @Schema(description = "有效期")
-    private LocalDateTime certExpire;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] certExpire;
 
     @Schema(description = "附件")
     private String file;
@@ -51,5 +52,8 @@ public class QhseDeviceCertPageReqVO extends PageParam {
 
     @Schema(description = "部门名称", example = "赵六")
     private String deptName;
-
+    @Schema(description = "预警")
+    private Boolean alertWarn;
+    @Schema(description = "过期")
+    private Boolean expired;
 }

+ 4 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/devicecert/vo/QhseDeviceCertRespVO.java

@@ -59,5 +59,8 @@ public class QhseDeviceCertRespVO {
     @Schema(description = "部门名称", example = "赵六")
     @ExcelProperty("部门名称")
     private String deptName;
-
+    @Schema(description = "预警")
+    private Boolean alertWarn;
+    @Schema(description = "过期")
+    private Boolean expired;
 }

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/qhse/devicecert/QhseDeviceCertDO.java

@@ -69,4 +69,7 @@ public class QhseDeviceCertDO extends BaseDO {
      */
     private String deptName;
 
+    private Boolean alertWarn;
+    private Boolean expired;
+
 }

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/qhse/devicecert/QhseDeviceCertMapper.java

@@ -23,7 +23,7 @@ public interface QhseDeviceCertMapper extends BaseMapperX<QhseDeviceCertDO> {
                 .eqIfPresent(QhseDeviceCertDO::getCertNo, reqVO.getCertNo())
                 .eqIfPresent(QhseDeviceCertDO::getCertOrg, reqVO.getCertOrg())
                 .betweenIfPresent(QhseDeviceCertDO::getCertTime, reqVO.getCertTime())
-                .eqIfPresent(QhseDeviceCertDO::getCertExpire, reqVO.getCertExpire())
+                .betweenIfPresent(QhseDeviceCertDO::getCertExpire, reqVO.getCertExpire())
                 .eqIfPresent(QhseDeviceCertDO::getFile, reqVO.getFile())
                 .eqIfPresent(QhseDeviceCertDO::getRemark, reqVO.getRemark())
                 .betweenIfPresent(QhseDeviceCertDO::getCreateTime, reqVO.getCreateTime())

+ 18 - 8
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/qhse/CertJob.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.IotMeasureCertDO;
 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.cert.IotMeasureCertMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.qhse.devicecert.QhseDeviceCertMapper;
 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.pms.message.PmsMessage;
@@ -39,6 +40,8 @@ public class CertJob implements JobHandler {
     private AdminUserApi adminUserApi;
     @Autowired
     private PmsMessage pmsMessage;
+    @Autowired
+    private QhseDeviceCertMapper qhseDeviceCertMapper;
 
     @Override
     @TenantIgnore
@@ -99,14 +102,21 @@ public class CertJob implements JobHandler {
                     });
         });
 
-
-//        List<IotMeasureDetectDO> collect = iotMeasureDetectMapper.selectList().stream().filter(e -> Objects.nonNull(e.getValidityPeriod()) && (e.getValidityPeriod().isBefore(LocalDateTime.now()))).collect(Collectors.toList());
-//        if (CollUtil.isNotEmpty(collect)) {
-//            Set<Long> collect1 = collect.stream().map(IotMeasureDetectDO::getMeasureId).collect(Collectors.toSet());
-//            List<IotMeasureBookDO> iotMeasureBookDOS = iotMeasureBookMapper.selectByIds(collect1);
-//            iotMeasureBookDOS.forEach(item -> item.setExpired(true));
-//            iotMeasureBookMapper.updateBatch(iotMeasureBookDOS);
-//        }
+        //处理计量器具的检测是否过期
+        qhseDeviceCertMapper.selectList().forEach(item -> {
+            LocalDateTime certExpire = item.getCertExpire();
+            if (certExpire.isBefore(LocalDateTime.now())) {
+                item.setExpired(true);
+            } else {
+                item.setExpired(false);
+            }
+            //如果相差不到90天了就进行预警
+            if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
+                item.setAlertWarn(true);
+                item.setExpired(false);
+            }
+            qhseDeviceCertMapper.updateById(item);
+        });
         return "执行成功";
     }
 }

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

@@ -31,6 +31,8 @@ public class QhseDeviceCertServiceImpl implements QhseDeviceCertService {
         // 插入
         QhseDeviceCertDO qhseDeviceCert = BeanUtils.toBean(createReqVO, QhseDeviceCertDO.class);
         qhseDeviceCert.setDeleted(false);
+        qhseDeviceCert.setExpired(false);
+        qhseDeviceCert.setAlertWarn(false);
         qhseDeviceCertMapper.insert(qhseDeviceCert);
         // 返回
         return qhseDeviceCert.getId();