|
@@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
|
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.iotmainworkorder.IotMainWorkOrderDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotsapstock.IotSapStockDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
|
|
@@ -23,6 +24,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.IotProductClassifyMapper;
|
|
|
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.iotmainworkorder.IotMainWorkOrderMapper;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotsapstock.IotSapStockMapper;
|
|
@@ -32,7 +34,6 @@ import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
|
|
|
import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainService;
|
|
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
|
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
@@ -54,6 +55,7 @@ import javax.annotation.security.PermitAll;
|
|
|
import javax.validation.Valid;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
@@ -92,6 +94,8 @@ public class IotStaticController {
|
|
|
private IotMaintainService iotMaintainService;
|
|
|
@Value("${yanfan.url}")
|
|
|
private String yanfanUrl;
|
|
|
+ @Autowired
|
|
|
+ private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
|
|
|
|
|
|
@GetMapping("/main/day")
|
|
|
public CommonResult<Map<String, Object>> getMaintainDay() {
|
|
@@ -476,4 +480,24 @@ public class IotStaticController {
|
|
|
});
|
|
|
return CommonResult.success(ids.size());
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping("/inspect/device")
|
|
|
+ public CommonResult<Map<String, Integer>> getDeviceStatus() {
|
|
|
+ List<IotInspectOrderDetailDO> detailDOList = iotInspectOrderDetailMapper.selectList();
|
|
|
+ Map<Long, List<IotInspectOrderDetailDO>> collect = detailDOList.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getOrderId));
|
|
|
+ AtomicInteger todo = new AtomicInteger();
|
|
|
+ AtomicInteger finished = new AtomicInteger();
|
|
|
+ collect.forEach( (k,v)->{
|
|
|
+ Map<Long, List<IotInspectOrderDetailDO>> collect1 = v.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getDeviceId));
|
|
|
+ collect1.forEach( (k1,v2)->{
|
|
|
+ boolean b = v2.stream().anyMatch(f -> Objects.isNull(f.getIfNormal()));
|
|
|
+ if (b) {
|
|
|
+ todo.getAndIncrement();
|
|
|
+ }else {
|
|
|
+ finished.getAndIncrement();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return success(ImmutableMap.of("todo", todo.get(),"finished", finished.get()));
|
|
|
+ }
|
|
|
}
|