|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.pms.job.qhse;
|
|
package cn.iocoder.yudao.module.pms.job.qhse;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
|
|
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
|
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
|
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.IotMeasureCertDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.IotMeasureCertDO;
|
|
@@ -9,13 +10,20 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.measure.IotMeasureDetectD
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.qhse.cert.IotMeasureCertMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.qhse.cert.IotMeasureCertMapper;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.qhse.measure.IotMeasureBookMapper;
|
|
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.dal.mysql.qhse.measure.IotMeasureDetectMapper;
|
|
|
|
|
+import cn.iocoder.yudao.module.pms.message.PmsMessage;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Component
|
|
@Component
|
|
@@ -26,13 +34,25 @@ public class CertJob implements JobHandler {
|
|
|
private IotMeasureBookMapper iotMeasureBookMapper;
|
|
private IotMeasureBookMapper iotMeasureBookMapper;
|
|
|
@Resource
|
|
@Resource
|
|
|
private IotMeasureDetectMapper iotMeasureDetectMapper;
|
|
private IotMeasureDetectMapper iotMeasureDetectMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private DeptApi deptApi;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private AdminUserApi adminUserApi;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PmsMessage pmsMessage;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@TenantIgnore
|
|
@TenantIgnore
|
|
|
|
|
+ @DataPermission(enable = false)
|
|
|
public String execute(String param) throws Exception {
|
|
public String execute(String param) throws Exception {
|
|
|
List<IotMeasureCertDO> iotMeasureCertDOS = iotMeasureCertMapper.selectList();
|
|
List<IotMeasureCertDO> iotMeasureCertDOS = iotMeasureCertMapper.selectList();
|
|
|
|
|
+ List<IotMeasureCertDO> needMessage = new ArrayList<>();
|
|
|
iotMeasureCertDOS.forEach(item -> {
|
|
iotMeasureCertDOS.forEach(item -> {
|
|
|
LocalDateTime certExpire = item.getCertExpire();
|
|
LocalDateTime certExpire = item.getCertExpire();
|
|
|
|
|
+ LocalDateTime expireMinus10Days = certExpire.minusDays(10);
|
|
|
|
|
+ if (expireMinus10Days.isBefore(LocalDateTime.now())) {
|
|
|
|
|
+ needMessage.add(item);
|
|
|
|
|
+ }
|
|
|
if (certExpire.isBefore(LocalDateTime.now())) {
|
|
if (certExpire.isBefore(LocalDateTime.now())) {
|
|
|
//证书已过期的话,更新expired为true
|
|
//证书已过期的话,更新expired为true
|
|
|
item.setExpired(true);
|
|
item.setExpired(true);
|
|
@@ -40,6 +60,17 @@ public class CertJob implements JobHandler {
|
|
|
item.setExpired(false);
|
|
item.setExpired(false);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ //添加消息提醒逻辑,异步发送消息
|
|
|
|
|
+ CompletableFuture.runAsync(() -> {
|
|
|
|
|
+ needMessage.forEach(item -> {
|
|
|
|
|
+ Long deptId = item.getDeptId();
|
|
|
|
|
+ String userName = item.getUserName();
|
|
|
|
|
+ List<AdminUserRespDTO> userListByDeptId = adminUserApi.getUserListByDeptId(deptId);
|
|
|
|
|
+ userListByDeptId.stream().filter(e -> e.getNickname().equals(userName)).findFirst().ifPresent(adminUserRespDTO -> {
|
|
|
|
|
+// pmsMessage.sendMessage();
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
iotMeasureCertMapper.updateBatch(iotMeasureCertDOS);
|
|
iotMeasureCertMapper.updateBatch(iotMeasureCertDOS);
|
|
|
//处理计量器具的检测是否过期
|
|
//处理计量器具的检测是否过期
|
|
|
List<IotMeasureDetectDO> collect = iotMeasureDetectMapper.selectList().stream().filter(e -> Objects.nonNull(e.getValidityPeriod()) && (e.getValidityPeriod().isBefore(LocalDateTime.now()))).collect(Collectors.toList());
|
|
List<IotMeasureDetectDO> collect = iotMeasureDetectMapper.selectList().stream().filter(e -> Objects.nonNull(e.getValidityPeriod()) && (e.getValidityPeriod().isBefore(LocalDateTime.now()))).collect(Collectors.toList());
|