瀏覽代碼

概况统计相关

tanbin 1 年之前
父節點
當前提交
5bfc44f28e

+ 9 - 0
device-api-service/src/main/java/com/xy/mapper/DeviceDataMapper.java

@@ -2,6 +2,7 @@ package com.xy.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xy.dto.DeviceDataDto;
+import com.xy.dto.DeviceFaultInfoDto;
 import com.xy.entity.DeviceData;
 import org.apache.ibatis.annotations.Param;
 
@@ -23,4 +24,12 @@ public interface DeviceDataMapper extends BaseMapper<DeviceData> {
             , @Param("endDateInt") Integer endDateInt
             , @Param("type") String type
     );
+
+    /**
+     * 根据事件编码分组统计故障已解决、未解决设备数
+     * @return {@link DeviceFaultInfoDto.CountByDeviceVO}
+     */
+    List<DeviceFaultInfoDto.CountByDeviceVO> deviceFaultInfoCount(  );
+
 }
+

+ 26 - 24
device-api-service/src/main/java/com/xy/service/DeviceFaultInfoServiceImpl.java

@@ -1,9 +1,9 @@
 package com.xy.service;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,14 +12,15 @@ import com.xy.collections.map.JMap;
 import com.xy.consts.CommConsts;
 import com.xy.dto.DeviceFaultInfoDto;
 import com.xy.dto.DeviceFaultInfoFlowDto;
-import com.xy.dto.SysCodeConfigureDto;
 import com.xy.dto.SysWorkUser.ListDto;
 import com.xy.dto.SysWorkUser.SysWorkVo;
 import com.xy.dto.be.MercDto;
 import com.xy.entity.DeviceFaultInfo;
 import com.xy.entity.DeviceFaultLog;
 import com.xy.entity.DeviceInfo;
+import com.xy.entity.SysCodeConfigureRedis;
 import com.xy.error.CommRuntimeException;
+import com.xy.mapper.DeviceDataMapper;
 import com.xy.mapper.DeviceFaultInfoMapper;
 import com.xy.service.be.MercService;
 import com.xy.utils.*;
@@ -32,11 +33,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
-import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 import static com.xy.utils.Beans.copy;
@@ -62,8 +60,27 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
     private final DeviceInfoServiceImpl deviceInfoService;
     private final DeviceFaultInfoFlowServiceImpl deviceFaultInfoFlowService;
     private final SysWorkUserService sysWorkUserService;
-    private final SysCodeConfigureService sysCodeConfigureService;
+    private final DeviceDataMapper deviceDataMapper;
 
+    @PostMapping("countToDo")
+    @ApiOperation("待处理设备故障统计")
+    public R<Long> countToDo() {
+        long count = count(Wrappers.<DeviceFaultInfo>lambdaQuery().eq(DeviceFaultInfo::getState, 0));
+        return R.ok(count);
+    }
+
+    @PostMapping("countByDevice")
+    @ApiOperation("按故障类型统计设备数")
+    public R<List<DeviceFaultInfoDto.CountByDeviceVO>> countByDevice() {
+        List<DeviceFaultInfoDto.CountByDeviceVO> list = deviceDataMapper.deviceFaultInfoCount();
+        list.forEach(d->{
+            SysCodeConfigureRedis s = SysCodeConfigureUtils.get(d.getEventCode());
+            if(s!=null){
+                d.setEventName(s.getTitle());
+            }
+        });
+        return R.ok(list);
+    }
     @PostMapping("obj")
     @ApiOperation("对象查询")
     public R<DeviceFaultInfoDto.Vo> obj(@RequestBody DeviceFaultInfoDto.Vo vo) {
@@ -85,7 +102,7 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
 
     @PostMapping("page")
     @ApiOperation("分页查询")
-    public R<PageBean<DeviceFaultInfoDto.Vo>> page(@RequestBody DeviceFaultInfoDto.Page page, HttpServletRequest request) {
+    public R<PageBean<DeviceFaultInfoDto.Vo>> page(@RequestBody DeviceFaultInfoDto.Page page) {
         PageBean pageBean = page.getPage();
         LocalDateTime beginTime = page.getBeginCreateTime();
         LocalDateTime endTime = page.getEndCreateTime();
@@ -106,29 +123,14 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
         List<DeviceFaultInfoDto.Vo> records = data.getRecords();
         if (CollUtil.isNotEmpty(records)) {
             List<Long> mercIds = records.stream().map(DeviceFaultInfoDto.Vo::getMercId).distinct().collect(Collectors.toList());
-            List<String> codes = records.stream().map(DeviceFaultInfoDto.Vo::getEventCode).distinct().collect(Collectors.toList());
-            SysCodeConfigureDto.SelectList selectList = new SysCodeConfigureDto.SelectList();
-            selectList.setCodes(codes);
-            List<SysCodeConfigureDto.Vo> vos = R.feignCheckData(sysCodeConfigureService.list(selectList));
-            Map<String, SysCodeConfigureDto.Vo> sysCodeMap = MapUtil.newHashMap();
-            if(CollUtil.isNotEmpty(vos)){
-               sysCodeMap = vos.stream().collect(Collectors.toMap(SysCodeConfigureDto.Vo::getCode, i -> i));
-             }
             List<MercDto.Vo> mercs = mercService.list(new MercDto.SelectList().setMercIds(mercIds)).getData();
             JMap<Long, MercDto.Vo> longVoJMap = new JArrayList<>(mercs).toMap(MercDto.Vo::getId).cover();
-            for (DeviceFaultInfoDto.Vo r : records) {
+            records.forEach(r -> {
                 Long mercId = r.getMercId();
                 if (longVoJMap.get(mercId) != null) {
                     r.setMercName(longVoJMap.get(mercId).getName());
                 }
-                SysCodeConfigureDto.Vo sysCodeInfo = sysCodeMap.get(r.getEventCode());
-                    //故障说明与建议
-                if (sysCodeInfo != null) {
-                    r.setMsg(sysCodeInfo.getMsg());
-                    r.setPropose(sysCodeInfo.getPropose());
-                }
-            }
-
+            });
             data.setRecords(records);
         }
 

+ 3 - 3
device-api-service/src/main/java/com/xy/service/factory/device/impl/alipay/AliPayOpenDeviceFatoryImpl.java

@@ -250,9 +250,9 @@ public class AliPayOpenDeviceFatoryImpl implements DeviceFactory, SpiDeviceServi
         FunctionUtils.NoParamsNoResult updateTmp = () -> {
 //            deviceStatus.setTempValue(Integer.valueOf(value));
 //            deviceStatusService.updateById(deviceStatus);
-            DeviceSysinfoDto.Up sysUp = new DeviceSysinfoDto.Up();
-            sysUp.setDeviceId(deviceInfo.getDeviceId()).setIsHaveTemp(true);
-            deviceSysinfoService.up(sysUp);
+//            DeviceSysinfoDto.Up sysUp = new DeviceSysinfoDto.Up();
+//            sysUp.setDeviceId(deviceInfo.getDeviceId()).setIsHaveTemp(true);
+//            deviceSysinfoService.up(sysUp);
             DeviceStatusDto.Up up = new DeviceStatusDto.Up();
             up.setDeviceId(deviceInfo.getDeviceId())
                     .setTempState(0)

+ 16 - 0
device-api-service/src/main/resources/mapper/DeviceDataMapper.xml

@@ -9,4 +9,20 @@
           and date_value BETWEEN #{beginDateInt} and #{endDateInt}
         GROUP BY date_value
     </select>
+
+
+    <select id="deviceFaultInfoCount" resultType="com.xy.dto.DeviceFaultInfoDto$CountByDeviceVO">
+            SELECT
+            event_code eventCode,
+            sum( state = '0'  ) todoNum,
+            sum( state = '1'   ) doneNum
+        FROM
+            device_fault_info
+        GROUP BY
+            event_code
+
+
+    </select>
+
+
 </mapper>

+ 13 - 0
device-api/src/main/java/com/xy/dto/DeviceFaultInfoDto.java

@@ -53,6 +53,19 @@ public class DeviceFaultInfoDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class CountByDeviceVO {
+        @ApiModelProperty(value = "事件编码")
+        private String eventCode;
+        @ApiModelProperty(value = "事件名称")
+        private String eventName;
+        @ApiModelProperty(value = "待解决数量")
+        private String todoNum;
+        @ApiModelProperty(value = "已解决数量")
+        private String doneNum;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Vo {