Bladeren bron

应急物资证书逻辑调整

Zimo 5 dagen geleden
bovenliggende
commit
cc0ba5b578

+ 17 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/cert/QhseOrgCertController.java

@@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo.QhseOrgCertSave
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.QhseOrgCertDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.qhse.cert.QhseOrgCertMapper;
 import cn.iocoder.yudao.module.pms.service.qhse.cert.QhseOrgCertService;
+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;
@@ -30,6 +32,7 @@ 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;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -47,6 +50,8 @@ public class QhseOrgCertController {
     private DeptService deptService;
     @Autowired
     private QhseOrgCertMapper qhseOrgCertMapper;
+    @Autowired
+    private DeptApi deptApi;
 
     @PostMapping("/create")
     @Operation(summary = "创建QHSE组织证书管理")
@@ -86,7 +91,18 @@ public class QhseOrgCertController {
     @PreAuthorize("@ss.hasPermission('rq:qhse-org-cert:query')")
     public CommonResult<PageResult<QhseOrgCertRespVO>> getQhseOrgCertPage(@Valid QhseOrgCertPageReqVO pageReqVO) {
         PageResult<QhseOrgCertDO> pageResult = qhseOrgCertService.getQhseOrgCertPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, QhseOrgCertRespVO.class));
+        List<QhseOrgCertRespVO> collect = pageResult.getList().stream().map(e -> {
+            QhseOrgCertRespVO qhseOrgCertRespVO = new QhseOrgCertRespVO();
+            BeanUtils.copyProperties(e, qhseOrgCertRespVO);
+            if (Objects.nonNull(qhseOrgCertRespVO.getDeptId())) {
+                DeptRespDTO dept = deptApi.getDept(qhseOrgCertRespVO.getDeptId());
+                if(Objects.nonNull(dept)){
+                    qhseOrgCertRespVO.setDeptName(dept.getName());
+                }
+            }
+            return qhseOrgCertRespVO;
+        }).collect(Collectors.toList());
+        return success(new PageResult<>(collect, pageResult.getTotal()));
     }
 
     @GetMapping("/export-excel")

+ 6 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/cert/vo/QhseOrgCertRespVO.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
 
 @Schema(description = "管理后台 - QHSE组织证书管理 Response VO")
 @Data
@@ -76,4 +76,6 @@ public class QhseOrgCertRespVO {
     @ExcelProperty("是否预警")
     private Boolean alertWarn;
 
+    @Schema(description = "部门名称")
+    private String deptName;
 }

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

@@ -65,6 +65,17 @@ public class QhseDeviceCertServiceImpl implements QhseDeviceCertService {
         validateQhseDeviceCertExists(updateReqVO.getId());
         // 更新
         QhseDeviceCertDO updateObj = BeanUtils.toBean(updateReqVO, QhseDeviceCertDO.class);
+        LocalDateTime certExpire = updateObj.getCertExpire();
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            updateObj.setExpired(true);
+        } else {
+            updateObj.setExpired(false);
+        }
+        //如果相差不到90天了就进行预警
+        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
+            updateObj.setAlertWarn(true);
+            updateObj.setExpired(false);
+        }
         qhseDeviceCertMapper.updateById(updateObj);
     }
 

+ 27 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/qhse/emergency/QhseEmergencyCertServiceImpl.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;
 
 /**
@@ -31,6 +34,19 @@ public class QhseEmergencyCertServiceImpl implements QhseEmergencyCertService {
         // 插入
         QhseEmergencyCertDO qhseEmergencyCert = BeanUtils.toBean(createReqVO, QhseEmergencyCertDO.class);
         qhseEmergencyCert.setDeleted(false);
+        qhseEmergencyCert.setExpired(false);
+        qhseEmergencyCert.setAlertWarn(false);
+        LocalDateTime certExpire = qhseEmergencyCert.getCertExpire();
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            qhseEmergencyCert.setExpired(true);
+        } else {
+            qhseEmergencyCert.setExpired(false);
+        }
+        //如果相差不到90天了就进行预警
+        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
+            qhseEmergencyCert.setAlertWarn(true);
+            qhseEmergencyCert.setExpired(false);
+        }
         qhseEmergencyCertMapper.insert(qhseEmergencyCert);
         // 返回
         return qhseEmergencyCert.getId();
@@ -42,6 +58,17 @@ public class QhseEmergencyCertServiceImpl implements QhseEmergencyCertService {
         validateQhseEmergencyCertExists(updateReqVO.getId());
         // 更新
         QhseEmergencyCertDO updateObj = BeanUtils.toBean(updateReqVO, QhseEmergencyCertDO.class);
+        LocalDateTime certExpire = updateObj.getCertExpire();
+        if (certExpire.isBefore(LocalDateTime.now())) {
+            updateObj.setExpired(true);
+        } else {
+            updateObj.setExpired(false);
+        }
+        //如果相差不到90天了就进行预警
+        if (certExpire.isAfter(LocalDateTime.now()) && ChronoUnit.DAYS.between(LocalDateTime.now(), certExpire) < 90) {
+            updateObj.setAlertWarn(true);
+            updateObj.setExpired(false);
+        }
         qhseEmergencyCertMapper.updateById(updateObj);
     }
 

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

@@ -72,6 +72,22 @@ public class IotMeasureDetectServiceImpl implements IotMeasureDetectService {
         validateIotMeasureDetectExists(updateReqVO.getId());
         // 更新
         IotMeasureDetectDO updateObj = BeanUtils.toBean(updateReqVO, IotMeasureDetectDO.class);
+        LocalDateTime validityPeriod = updateReqVO.getValidityPeriod();
+        IotMeasureBookDO iotMeasureBookDO = iotMeasureBookMapper.selectById(updateReqVO.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.updateById(updateObj);
     }