ソースを参照

统计巡检计划

lipenghui 3 週間 前
コミット
2d43bb5372

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

@@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.plan.vo.IotInspectPlanPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicerunlog.vo.IotDeviceRunLogPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicerunlog.vo.IotDeviceRunLogRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderPageReqVO;
@@ -27,6 +28,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 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.inspect.IotInspectPlanDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcountdata.IotCountDataDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorder.IotMainWorkOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
@@ -38,6 +40,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectPlanMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicerunlog.IotDeviceRunLogMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotmainworkorder.IotMainWorkOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
@@ -53,8 +56,11 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 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.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
@@ -126,6 +132,8 @@ public class IotStaticController {
     private TDDeviceMapper deviceMapper;
     @Autowired
     private IotOutboundMapper iotOutboundMapper;
+    @Autowired
+    private IotInspectPlanMapper iotInspectPlanMapper;
 
     @GetMapping("/main/day")
     public CommonResult<Map<String, Object>> getMaintainDay() {
@@ -1019,5 +1027,42 @@ public class IotStaticController {
         return success(ImmutableMap.of("xAxis", lastYearMonthRanges, "series", ImmutableList.of(fillResult)));
 
     }
+
+    @GetMapping("/number")
+    @Operation(summary = "获取巡检计划数量")
+    @PermitAll
+    public CommonResult<ImmutableMap> getPlanDeviceNumber() {
+        Set<Long> rhids = getDeptIds("rh");
+        Set<Long> rdids = getDeptIds("rd");
+        Set<Long> ryids = getDeptIds("ry");
+        IotInspectPlanPageReqVO rh = new IotInspectPlanPageReqVO();
+        rh.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<IotInspectPlanDO> rhplans = iotInspectPlanMapper.selectPage(rh, rhids).getList().stream().filter(e -> !e.getDeleted()).collect(Collectors.toList());
+        List<IotInspectPlanDO> rdplans = iotInspectPlanMapper.selectPage(rh, rdids).getList().stream().filter(e -> !e.getDeleted()).collect(Collectors.toList());
+        List<IotInspectPlanDO> ryplans = iotInspectPlanMapper.selectPage(rh, ryids).getList().stream().filter(e -> !e.getDeleted()).collect(Collectors.toList());
+
+        AtomicInteger rhcount = new AtomicInteger();
+        rhplans.forEach(e ->{
+            JSONArray objects = JSON.parseArray(e.getDeviceIds());
+            int size = objects.size();
+            rhcount.set(rhcount.get() + size);
+        });
+
+        AtomicInteger rdcount = new AtomicInteger();
+        rdplans.forEach(e ->{
+            JSONArray objects = JSON.parseArray(e.getDeviceIds());
+            int size = objects.size();
+            rdcount.set(rdcount.get() + size);
+        });
+
+        AtomicInteger rycount = new AtomicInteger();
+        ryplans.forEach(e ->{
+            JSONArray objects = JSON.parseArray(e.getDeviceIds());
+            int size = objects.size();
+            rycount.set(rycount.get() + size);
+        });
+
+        return success(ImmutableMap.of("瑞恒", rhcount.get(),"瑞都",rdcount.get(),"瑞鹰",rycount.get()));
+    }
 }