Browse Source

数据采集优化

lxb 1 year ago
parent
commit
26e6cde97b

+ 29 - 7
src/main/java/com/imcs/admin/common/collection/DeviceCollectionTaskJob.java

@@ -232,7 +232,7 @@ public class DeviceCollectionTaskJob {
         Date date = new Date();
         String nowDate = DateUtil.format(date, "yyyy-MM-dd");
 
-        Map<String, Object> deviceCollectionDetailInfoMap = jdbcService.findOne("select id,device_rate,today_earliest_power_on_time,detail_info,today_power_on_time from device_collection_detail where device_ip = ? and create_date = ?", ip,nowDate);
+        Map<String, Object> deviceCollectionDetailInfoMap = jdbcService.findOne("select id,device_rate,today_earliest_power_on_time,detail_info,today_power_on_time,today_work_time from device_collection_detail where device_ip = ? and create_date = ?", ip,nowDate);
 
         String detailInfo = "";
         if(CollectionUtil.isNotEmpty(deviceCollectionDetailInfoMap)){
@@ -270,6 +270,8 @@ public class DeviceCollectionTaskJob {
 
             //当日设备开机时长
             Object todayPowerOnTimeObj = deviceCollectionDetailInfoMap.get("todayPowerOnTime");
+            //当日设备工作时长
+            Object todayWorkTimeObj = deviceCollectionDetailInfoMap.get("todayWorkTime");
             //设备主轴利用率
             Object deviceRateObj = deviceCollectionDetailInfoMap.get("deviceRate");
 
@@ -278,19 +280,33 @@ public class DeviceCollectionTaskJob {
                 todayPowerOnTime = new BigDecimal(todayPowerOnTimeObj.toString());
             }
 
+            BigDecimal todayWorkTime = BigDecimal.ZERO;
+            if(!Objects.isNull(todayWorkTimeObj)){
+                todayWorkTime = new BigDecimal(todayWorkTimeObj.toString());
+            }
+
 
             BigDecimal deviceRate = BigDecimal.ZERO;
             if(!Objects.isNull(deviceRateObj)){
                 deviceRate = new BigDecimal(deviceRateObj.toString());
             }
-
-            if(!Objects.isNull(returnJson.get("deviceState")) && "在线".equals(returnJson.get("deviceState").toString())){
+            log.info("设备状态:{}",returnJson.get("deviceState"));
+            if(!Objects.isNull(returnJson.get("deviceState")) && "在线".equals(returnJson.get("deviceState").toString()) ){
                 BigDecimal currentPowerOnTime = new BigDecimal(powerOnTime.toString());
+                log.info("当前时间:{}",currentPowerOnTime);
                 if(hisPowerOnTime.compareTo(BigDecimal.ZERO) > 0  && currentPowerOnTime.compareTo(hisPowerOnTime) > 0){
                     // 间隔时间 = 当前开机总时长 - 最近的上一次采集开机总时长
                     BigDecimal intervalTime =  currentPowerOnTime.subtract(hisPowerOnTime);
                     //当日设备开机时长 = 当日设备开机时长 + 间隔时间
                     todayPowerOnTime = todayPowerOnTime.add(intervalTime);
+
+                    BigDecimal actFeed = Objects.isNull(returnJson.get("actFeed")) ? BigDecimal.ZERO : new BigDecimal(returnJson.get("actFeed").toString());
+                    BigDecimal actSpindle = Objects.isNull(returnJson.get("actSpindle")) ? BigDecimal.ZERO : new BigDecimal(returnJson.get("actSpindle").toString());
+                    log.info("actFeed:{},actSpindle:{},intervalTime:{}",
+                            returnJson.get("actFeed"),returnJson.get("actSpindle"),intervalTime);
+                    if(actFeed.compareTo(BigDecimal.ZERO) > 0 || actSpindle.compareTo(BigDecimal.ZERO) > 0){
+                        todayWorkTime = todayWorkTime.add(intervalTime);
+                    }
                 }
 
                 String startDate = nowDate + " " + "00:00:00"; //默认早上0点
@@ -299,7 +315,13 @@ public class DeviceCollectionTaskJob {
                 long workhour = DateUtil.between(DateUtil.parse(startDate), date, DateUnit.MINUTE);//当天的实际工作时长(分钟)
 
                 BigDecimal sumBig = new BigDecimal(workhour);
-                deviceRate = todayPowerOnTime.divide(sumBig, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
+                //deviceRate = todayPowerOnTime.divide(sumBig, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
+                if(todayPowerOnTime.compareTo(BigDecimal.ZERO) > 0 && todayWorkTime.compareTo(BigDecimal.ZERO) > 0){
+                    deviceRate = todayWorkTime.divide(todayPowerOnTime, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
+
+                }else{
+                    deviceRate = BigDecimal.ZERO;
+                }
                 if(deviceRate.compareTo(new BigDecimal("100")) > 0){
                     deviceRate = new BigDecimal("100");
                 }
@@ -307,8 +329,8 @@ public class DeviceCollectionTaskJob {
             }
 
 
-            String sql = "update device_collection_detail set detail_info = ? , device_rate = ? , today_power_on_time = ? where id = ? ";
-            jdbcService.update("更新",sql,detailInfo, deviceRate,todayPowerOnTime,deviceCollectionDetailInfoMap.get("id"));
+            String sql = "update device_collection_detail set detail_info = ? , device_rate = ? , today_power_on_time = ? ,today_work_time = ? where id = ? ";
+            jdbcService.update("更新",sql,detailInfo, deviceRate,todayPowerOnTime,todayWorkTime,deviceCollectionDetailInfoMap.get("id"));
 
         }else{
             //新增
@@ -392,7 +414,7 @@ public class DeviceCollectionTaskJob {
             e.printStackTrace();
             log.info("连接报错:{}",getMsg(e));
         }
-        //returnInfo = "{\"code\":0,\"result\":false,\"msg\":\"调用失败\",\"statusCode\":200,\"toolsInfo\":null,\"toolsData\":null,\"errorsInfo\":\"\",\"runDatasInfo\":\"\",\"deviceData\":null,\"mainProg\":null,\"actFeed\":null,\"spindleMagnification\":null,\"feedRateOvr\":null,\"actSpindle\":null,\"powerOnTime\":null,\"deviceState\":\"离线\"}";
+        //returnInfo = "{\"msg\":\"调用成功\",\"actFeed\":\"900\",\"code\":0,\"powerOnTime\":\"1544522\",\"deviceData\":null,\"feedRateOvr\":\"30\",\"mainProg\":\"111.PTP\",\"result\":true,\"toolsInfo\":null,\"runDatasInfo\":\"\",\"errorsInfo\":\"\",\"spindleMagnification\":\"78\",\"actSpindle\":\"1570\",\"deviceState\":\"在线\",\"toolsData\":null,\"statusCode\":200}";
         log.info("返回值:{}",returnInfo);
         return returnInfo;
     }

BIN
src/main/resources/static/admin/picture/device/未知.png