Quellcode durchsuchen

应检设备证书调整

Zimo vor 3 Wochen
Ursprung
Commit
0ac49d8647

+ 30 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/devicecert/QhseDeviceCertController.java

@@ -10,9 +10,12 @@ import cn.iocoder.yudao.module.pms.controller.admin.qhse.devicecert.vo.QhseDevic
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.devicecert.vo.QhseDeviceCertRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.devicecert.vo.QhseDeviceCertSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.devicecert.QhseDeviceCertDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.qhse.devicecert.QhseDeviceCertMapper;
 import cn.iocoder.yudao.module.pms.service.qhse.devicecert.QhseDeviceCertService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.google.common.collect.ImmutableMap;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -25,8 +28,10 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -43,6 +48,10 @@ public class QhseDeviceCertController {
     private QhseDeviceCertService qhseDeviceCertService;
     @Autowired
     private DeptApi deptApi;
+    @Autowired
+    private DeptService deptService;
+    @Autowired
+    private QhseDeviceCertMapper qhseDeviceCertMapper;
 
     @PostMapping("/create")
     @Operation(summary = "创建QHSE应检设备证书")
@@ -123,4 +132,25 @@ public class QhseDeviceCertController {
                         BeanUtils.toBean(list, QhseDeviceCertRespVO.class));
     }
 
+
+    @GetMapping("/stat")
+    @Operation(summary = "设备应检证书统计")
+    public CommonResult<ImmutableMap> generateNum(Long deptId) {
+        Set<Long> ids = new HashSet<>();
+        if (Objects.nonNull(deptId)) {
+            ids = deptService.getChildDeptIdListFromCache(deptId);
+            ids.add(deptId);
+        }
+        //到期
+        QhseDeviceCertPageReqVO reqVO = new QhseDeviceCertPageReqVO();
+        reqVO.setExpired(true);
+        long expired = qhseDeviceCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        reqVO.setExpired(null);
+        reqVO.setAlertWarn(true);
+        //90天预警
+        long warn = qhseDeviceCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        reqVO.setAlertWarn(null);
+        Long total = qhseDeviceCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        return success(ImmutableMap.of("expired", expired, "warn", warn, "total", total));
+    }
 }

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

@@ -28,10 +28,19 @@ public interface QhseDeviceCertMapper extends BaseMapperX<QhseDeviceCertDO> {
                 .betweenIfPresent(QhseDeviceCertDO::getCertExpire, reqVO.getCertExpire())
                 .eqIfPresent(QhseDeviceCertDO::getFile, reqVO.getFile())
                 .eqIfPresent(QhseDeviceCertDO::getCertType, reqVO.getCertType())
+                .eqIfPresent(QhseDeviceCertDO::getAlertWarn, reqVO.getAlertWarn())
+                .eqIfPresent(QhseDeviceCertDO::getExpired, reqVO.getExpired())
                 .eqIfPresent(QhseDeviceCertDO::getRemark, reqVO.getRemark())
                 .betweenIfPresent(QhseDeviceCertDO::getCreateTime, reqVO.getCreateTime())
                 .likeIfPresent(QhseDeviceCertDO::getDeptName, reqVO.getDeptName())
                 .orderByDesc(QhseDeviceCertDO::getId));
     }
 
+    default Long selectCountByDeptAndExpireAndWarn(QhseDeviceCertPageReqVO reqVO, Set<Long> ids) {
+        return selectCount(new LambdaQueryWrapperX<QhseDeviceCertDO>()
+                .eqIfPresent(QhseDeviceCertDO::getExpired, reqVO.getExpired())
+                .eqIfPresent(QhseDeviceCertDO::getAlertWarn, reqVO.getAlertWarn())
+                .inIfPresent(QhseDeviceCertDO::getDeptId, ids)
+                .betweenIfPresent(QhseDeviceCertDO::getCreateTime, reqVO.getCreateTime()));
+    }
 }

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

@@ -45,13 +45,14 @@ public class QhseDeviceCertServiceImpl implements QhseDeviceCertService {
         qhseDeviceCert.setAlertWarn(false);
         LocalDateTime certExpire = qhseDeviceCert.getCertExpire();
         if (certExpire.isBefore(LocalDateTime.now())) {
+            //证书已过期的话,更新expired为true
             qhseDeviceCert.setExpired(true);
-        } else {
-            qhseDeviceCert.setExpired(false);
-        }
-        //如果相差不到90天了就进行预警
-        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
-            qhseDeviceCert.setAlertWarn(true);
+        } else  {
+            if (ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 60) {
+                qhseDeviceCert.setAlertWarn(true);//设置为60天预警过期
+            } else {
+                qhseDeviceCert.setAlertWarn(false);
+            }
             qhseDeviceCert.setExpired(false);
         }
         qhseDeviceCertMapper.insert(qhseDeviceCert);
@@ -67,13 +68,14 @@ public class QhseDeviceCertServiceImpl implements QhseDeviceCertService {
         QhseDeviceCertDO updateObj = BeanUtils.toBean(updateReqVO, QhseDeviceCertDO.class);
         LocalDateTime certExpire = updateObj.getCertExpire();
         if (certExpire.isBefore(LocalDateTime.now())) {
+            //证书已过期的话,更新expired为true
             updateObj.setExpired(true);
-        } else {
-            updateObj.setExpired(false);
-        }
-        //如果相差不到90天了就进行预警
-        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
-            updateObj.setAlertWarn(true);
+        } else  {
+            if (ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 60) {
+                updateObj.setAlertWarn(true);//设置为60天预警过期
+            }else {
+                updateObj.setAlertWarn(false);
+            }
             updateObj.setExpired(false);
         }
         qhseDeviceCertMapper.updateById(updateObj);