|
@@ -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;
|
|
|
}
|