Ver Fonte

隐患排查的调整

Zimo há 1 semana atrás
pai
commit
ed67d50b56

+ 56 - 19
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/danger/IotDangerSourceController.java

@@ -1,35 +1,39 @@
 package cn.iocoder.yudao.module.pms.controller.admin.qhse.danger;
 
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.danger.vo.IotDangerSourcePageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.danger.vo.IotDangerSourceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.qhse.danger.vo.IotDangerSourceSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.qhse.measure.IotMeasureBookController;
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.danger.IotDangerSourceDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.qhse.danger.IotDangerSourceMapper;
 import cn.iocoder.yudao.module.pms.service.qhse.danger.IotDangerSourceService;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
+import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import cn.iocoder.yudao.module.system.service.dict.DictDataService;
+import com.google.common.collect.ImmutableMap;
 import io.swagger.v3.oas.annotations.Operation;
-
-import java.util.*;
-import java.io.IOException;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
 
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 
 @Tag(name = "管理后台 - 危险源")
@@ -40,6 +44,12 @@ public class IotDangerSourceController {
 
     @Resource
     private IotDangerSourceService iotDangerSourceService;
+    @Autowired
+    private DeptService deptService;
+    @Autowired
+    private IotDangerSourceMapper iotDangerSourceMapper;
+    @Autowired
+    private DictDataService dictDataService;
 
     @PostMapping("/create")
     @Operation(summary = "创建危险源")
@@ -95,4 +105,31 @@ public class IotDangerSourceController {
                         BeanUtils.toBean(list, IotDangerSourceRespVO.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);
+        }
+        IotDangerSourcePageReqVO reqVO = new IotDangerSourcePageReqVO();
+        List<IotDangerSourceDO> iotDangerSourceDOS = iotDangerSourceMapper.selectListByDept(reqVO, ids);
+        Map<String, Long> classifyCountMap = iotDangerSourceDOS.stream()
+                .collect(Collectors.groupingBy(
+                        IotDangerSourceDO::getRiskGrade,
+                        Collectors.counting()  // 直接统计每个分组的数量
+                ));
+        List<IotMeasureBookController.ClassifyMeasureBookStatVo> results = new ArrayList<>();
+        List<DictDataDO> dictType = dictDataService.getDictDataListByDictType("danger_grade");
+        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("classify", results));
+    }
 }

+ 7 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/qhse/hazard/IotHazardTypeController.java

@@ -79,7 +79,13 @@ public class IotHazardTypeController {
         PageResult<IotHazardTypeDO> pageResult = iotHazardTypeService.getIotHazardTypePage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, IotHazardTypeRespVO.class));
     }
-
+    @GetMapping("/list")
+    @Operation(summary = "获取产品分类列表")
+    @PreAuthorize("@ss.hasPermission('iot:iot-hazard-type:query')")
+    public CommonResult<List<IotHazardTypeRespVO>> getHazardTypeList(IotHazardTypePageReqVO reqVO) {
+        List<IotHazardTypeDO> list = iotHazardTypeService.getHazardTypeList(reqVO);
+        return success(BeanUtils.toBean(list, IotHazardTypeRespVO.class));
+    }
     @GetMapping("/export-excel")
     @Operation(summary = "导出QHSE-隐患排查分类 Excel")
     @PreAuthorize("@ss.hasPermission('rq:iot-hazard-type:export')")

+ 6 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/qhse/danger/IotDangerSourceMapper.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.qhse.danger.vo.IotDangerSour
 import cn.iocoder.yudao.module.pms.dal.dataobject.qhse.danger.IotDangerSourceDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -32,5 +33,9 @@ public interface IotDangerSourceMapper extends BaseMapperX<IotDangerSourceDO> {
                 .betweenIfPresent(IotDangerSourceDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(IotDangerSourceDO::getId));
     }
-
+    default List<IotDangerSourceDO> selectListByDept(IotDangerSourcePageReqVO reqVO, Set<Long> ids) {
+        return selectList(new LambdaQueryWrapperX<IotDangerSourceDO>()
+                .eq(IotDangerSourceDO::getDeleted, false)
+                .inIfPresent(IotDangerSourceDO::getDeptId, ids));
+    }
 }