lipenghui 1 vecka sedan
förälder
incheckning
db134ddabe

+ 8 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/IotInspectOrderDetailController.java

@@ -6,13 +6,14 @@ 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.inspect.order.vo.*;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderDetailSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcountdata.IotCountDataDO;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
-import cn.iocoder.yudao.module.pms.service.IotDeviceServiceImpl;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderDetailService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderServiceImpl;
@@ -32,8 +33,10 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.io.Serializable;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
+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;
@@ -158,4 +161,5 @@ public class IotInspectOrderDetailController {
         }).collect(Collectors.toList());
         return success(new PageResult<>(collect, deviceStatus.getTotal()));
     }
+
 }

+ 36 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -1,6 +1,8 @@
 package cn.iocoder.yudao.module.pms.controller.admin.stat;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -891,5 +893,39 @@ public class IotStaticController {
         return success(ImmutableMap.of("xAxis", xAxis, "series", ImmutableList.of(fillResult, waterResult)));
 
     }
+
+    @PermitAll
+    @GetMapping("/project/{dept}")
+    public CommonResult<List<ImmutableMap<String, ? extends Serializable>>> projectStat(@PathVariable("dept") String dept) {
+        List<DeptRespDTO> deptByName = deptApi.getDeptByName("瑞鹰国际");
+        if (CollUtil.isEmpty(deptByName)) {
+            throw new ServiceException(new ErrorCode(122, "没有部门"));
+        }
+        List<DeptRespDTO> childDeptList = deptApi.getChildDeptList(deptByName.get(0).getId());
+        List<DeptRespDTO> projects = childDeptList.stream().filter(e -> deptByName.get(0).getId().equals(e.getParentId())).collect(Collectors.toList());
+        List<ImmutableMap<String, ? extends Serializable>> result = projects.stream().map(e -> {
+            List<DeptRespDTO> allSubclasses = findAllSubclasses(childDeptList, e.getId());
+            Set<Long> collect = allSubclasses.stream().map(DeptRespDTO::getId).collect(Collectors.toSet());
+            collect.add(e.getId());
+            Long l = iotDeviceMapper.selectByDept(collect);
+            return ImmutableMap.of("name", e.getName(), "value", l);
+        }).collect(Collectors.toList());
+        return success(result);
+    }
+
+
+    private List<DeptRespDTO> findAllSubclasses(List<DeptRespDTO> allNodes, Long parentId) {
+        List<DeptRespDTO> result = new ArrayList<>();
+
+        // 先找到直接子节点
+        for (DeptRespDTO node : allNodes) {
+            if (parentId.equals(node.getParentId())) {
+                result.add(node);
+                // 递归查找子节点的子节点,并添加到结果中
+                result.addAll(findAllSubclasses(allNodes, node.getId()));
+            }
+        }
+        return result;
+    }
 }
 

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceServiceImpl.java

@@ -247,7 +247,7 @@ public class IotDeviceServiceImpl implements IotDeviceService {
         //更新pms树
         List<IotTreeDO> iotTreeDOS = iotTreeMapper.selectListByOriginId(updateObj.getId(), "device");
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(iotTreeDOS)) {
-            throw new ServiceException(ErrorCodeConstants.DEPT_NOT_FOUND.getCode(),"无该部门");
+            throw new ServiceException(ErrorCodeConstants.DEPT_NOT_FOUND.getCode(),"无资料库信息");
         }
         IotTreeDO iotTreeDO = iotTreeDOS.get(0);
         iotTreeDO.setName(updateObj.getDeviceName());