ソースを参照

资质证书的预警设置

Zimo 1 日 前
コミット
dcd64aac4d

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

@@ -9,10 +9,8 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo.IotMeasureCertPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo.IotMeasureCertRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo.IotMeasureCertSaveReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.qhse.measure.IotMeasureBookController;
-import cn.iocoder.yudao.module.pms.controller.admin.qhse.measure.vo.IotMeasureBookPageReqVO;
 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.mysql.qhse.cert.IotMeasureCertMapper;
 import cn.iocoder.yudao.module.pms.service.qhse.cert.IotMeasureCertService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -34,7 +32,10 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
-import java.util.*;
+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;
@@ -57,6 +58,8 @@ public class IotMeasureCertController {
     private DictDataService dictDataService;
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private IotMeasureCertMapper iotMeasureCertMapper;
 
     @PostMapping("/create")
     @Operation(summary = "创建计量器具-证书管理")
@@ -155,29 +158,20 @@ public class IotMeasureCertController {
             ids.add(deptId);
         }
         //到期
-        IotMeasureBookPageReqVO reqVO = new IotMeasureBookPageReqVO();
+        IotMeasureCertPageReqVO reqVO = new IotMeasureCertPageReqVO();
         reqVO.setExpired(true);
-        long expired = iotMeasureBookMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        long expired = iotMeasureCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
         reqVO.setExpired(null);
         reqVO.setAlertWarn(true);
         //90天预警
-        long warn = iotMeasureBookMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        long warn = iotMeasureCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
         reqVO.setAlertWarn(null);
-        List<IotMeasureBookDO> iotMeasureBookDOS = iotMeasureBookMapper.selectListByDept(reqVO, ids);
-        Map<String, Long> classifyCountMap = iotMeasureBookDOS.stream()
-                .collect(Collectors.groupingBy(
-                        IotMeasureBookDO::getClassify,
-                        Collectors.counting()  // 直接统计每个分组的数量
-                ));
-        List<IotMeasureBookController.ClassifyMeasureBookStatVo> results = new ArrayList<>();
-        List<DictDataDO> dictType = dictDataService.getDictDataListByDictType("measure_type");
-        classifyCountMap.forEach((key, value) -> dictType.stream().filter(e -> e.getValue().equals(key)).findFirst().ifPresent(f ->{
-            IotMeasureBookController.ClassifyMeasureBookStatVo statVo = new IotMeasureBookController.ClassifyMeasureBookStatVo();
-            statVo.setClassify(f.getLabel());
-            statVo.setCount(value);
-            results.add(statVo);
-        }));
-
-        return success(ImmutableMap.of("expired", expired, "warn", warn, "classify", results));
+        reqVO.setType("personal");
+        Long personal = iotMeasureCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        reqVO.setType("organization");
+        Long org = iotMeasureCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        reqVO.setType(null);
+        Long total = iotMeasureCertMapper.selectCountByDeptAndExpireAndWarn(reqVO, ids);
+        return success(ImmutableMap.of("expired", expired, "warn", warn,"personal", personal,"organization", org,"total", total));
     }
 }

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/cert/vo/IotMeasureCertPageReqVO.java

@@ -58,4 +58,7 @@ public class IotMeasureCertPageReqVO extends PageParam {
     private Boolean expired;
 
     private String userName;
+
+    @Schema(description = "60天预警")
+    private Boolean alertWarn;
 }

+ 17 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/qhse/cert/IotMeasureCertMapper.java

@@ -1,12 +1,13 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.qhse.cert;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.IotMeasureCertDO;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.cert.vo.IotMeasureCertPageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.cert.IotMeasureCertDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -36,4 +37,18 @@ public interface IotMeasureCertMapper extends BaseMapperX<IotMeasureCertDO> {
                 .orderByDesc(IotMeasureCertDO::getId));
     }
 
+    default Long selectCountByDeptAndExpireAndWarn(IotMeasureCertPageReqVO reqVO, Set<Long> ids) {
+        return selectCount(new LambdaQueryWrapperX<IotMeasureCertDO>()
+                .eqIfPresent(IotMeasureCertDO::getExpired, reqVO.getExpired())
+                .eqIfPresent(IotMeasureCertDO::getAlertWarn, reqVO.getAlertWarn())
+                .eqIfPresent(IotMeasureCertDO::getType, reqVO.getType())
+                .inIfPresent(IotMeasureCertDO::getDeptId, ids)
+                .betweenIfPresent(IotMeasureCertDO::getCreateTime, reqVO.getCreateTime()));
+    }
+
+    default List<IotMeasureCertDO> selectListByDept(IotMeasureCertPageReqVO reqVO, Set<Long> ids) {
+        return selectList(new LambdaQueryWrapperX<IotMeasureCertDO>()
+                .eqIfPresent(IotMeasureCertDO::getExpired, reqVO.getExpired())
+                .inIfPresent(IotMeasureCertDO::getDeptId, ids));
+    }
 }

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.java

@@ -37,7 +37,7 @@ public class SocialUserController {
     @Operation(summary = "社交绑定,使用 code 授权码")
     public CommonResult<Boolean> socialBind(@RequestBody @Valid SocialUserBindReqVO reqVO) {
         socialUserService.bindSocialUser(SocialUserConvert.INSTANCE.convert(
-                getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO));
+                getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO.getType()));
         return CommonResult.success(true);
     }
 

+ 2 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java

@@ -1,7 +1,6 @@
 package cn.iocoder.yudao.module.system.convert.social;
 
 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
-import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
@@ -11,7 +10,7 @@ public interface SocialUserConvert {
 
     SocialUserConvert INSTANCE = Mappers.getMapper(SocialUserConvert.class);
 
-    @Mapping(source = "reqVO.type", target = "socialType")
-    SocialUserBindReqDTO convert(Long userId, Integer userType, SocialUserBindReqVO reqVO);
+    @Mapping(source = "type", target = "socialType")
+    SocialUserBindReqDTO convert(Long userId, Integer userType, Integer type);
 
 }