opt:优化输送线状态采集

This commit is contained in:
2024-11-29 15:33:01 +08:00
parent 15c500f10e
commit e7d1c76a9f

View File

@@ -13,7 +13,6 @@ import org.nl.acs.device_driver.basedriver.agv.ndcone.AgvNdcOneDeviceDriver;
import org.nl.acs.device_driver.tianneng.baoshijian.BaoshijianSiteDeviceDriver; import org.nl.acs.device_driver.tianneng.baoshijian.BaoshijianSiteDeviceDriver;
import org.nl.acs.device_driver.tianneng.guhuashi.GuhuashiSiteDeviceDriver; import org.nl.acs.device_driver.tianneng.guhuashi.GuhuashiSiteDeviceDriver;
import org.nl.acs.device_driver.tianneng.site.SiteDeviceDriver; import org.nl.acs.device_driver.tianneng.site.SiteDeviceDriver;
import org.nl.acs.device_driver.tianneng.site_status.SiteStatusDeviceDriver;
import org.nl.acs.enums.AcsDefineEnum; import org.nl.acs.enums.AcsDefineEnum;
import org.nl.acs.instruction.domain.InstructionMybatis; import org.nl.acs.instruction.domain.InstructionMybatis;
import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.InstructionService;
@@ -145,18 +144,6 @@ public class SyncDeviceStatus {
json.put("back_door", guhuashiSiteDeviceDriver.getVW70006() == 0 ? 0 : 1); json.put("back_door", guhuashiSiteDeviceDriver.getVW70006() == 0 ? 0 : 1);
json.put("error", guhuashiSiteDeviceDriver.getVD7046()); json.put("error", guhuashiSiteDeviceDriver.getVD7046());
guhuashi.add(json); guhuashi.add(json);
} else if (device.getDeviceDriver() instanceof SiteStatusDeviceDriver) {
SiteStatusDeviceDriver siteStatusDeviceDriver=(SiteStatusDeviceDriver)device.getDeviceDriver();
JSONObject json = new JSONObject();
json.put("device_code", siteStatusDeviceDriver.getDevice_code());
json.put("mode",siteStatusDeviceDriver.getMode());
json.put("open_time",siteStatusDeviceDriver.getOpen_time());
json.put("standby_time",siteStatusDeviceDriver.getStandby_time());
json.put("production_time",siteStatusDeviceDriver.getProduction_time());
json.put("error_time",siteStatusDeviceDriver.getError_time());
json.put("end_time",siteStatusDeviceDriver.getEnd_time());
json.put("device_status", siteStatusDeviceDriver.getError()==0?1:0);
site.add(json);
} else if (device.getDeviceDriver() instanceof SiteDeviceDriver) { } else if (device.getDeviceDriver() instanceof SiteDeviceDriver) {
SiteDeviceDriver siteDeviceDriver = (SiteDeviceDriver) device.getDeviceDriver(); SiteDeviceDriver siteDeviceDriver = (SiteDeviceDriver) device.getDeviceDriver();
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
@@ -165,7 +152,9 @@ public class SyncDeviceStatus {
json.put("action", siteDeviceDriver.getAction()); json.put("action", siteDeviceDriver.getAction());
json.put("vehicle_type", siteDeviceDriver.getPallet_type()); json.put("vehicle_type", siteDeviceDriver.getPallet_type());
json.put("error", siteDeviceDriver.getError()); json.put("error", siteDeviceDriver.getError());
json.put("device_status", siteDeviceDriver.getError()==0?1:0); //todo 检查mode值是否正常
json.put("device_status", siteDeviceDriver.getMode() == 0 ? 1 : 0);
// json.put("device_status", siteDeviceDriver.getError() == 0 ? 1 : 0);
site.add(json); site.add(json);
} else if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) { } else if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
AgvNdcOneDeviceDriver agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver(); AgvNdcOneDeviceDriver agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver();
@@ -183,7 +172,45 @@ public class SyncDeviceStatus {
} }
redisUtils.set("baoshijian", baoshijian); redisUtils.set("baoshijian", baoshijian);
redisUtils.set("guhuashi", guhuashi); redisUtils.set("guhuashi", guhuashi);
redisUtils.set("site", site); //获取输送线设备主体信息
if (ObjectUtil.isNotEmpty(site)) {
//输送线前缀ZCSSX01
List<String> siteList = site.stream()
.map(obj -> {
JSONObject jsonObj = (JSONObject) obj;
String deviceCode = jsonObj.getString("device_code");
return StringUtils.isNotBlank(deviceCode) && deviceCode.contains("ZCSSX") ? deviceCode.substring(0, 7) : null;
})
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
JSONArray siteJsonArray = new JSONArray();
for (String deviceCode : siteList) {
JSONArray siteJSONArray = site.stream()
.filter(obj -> ((JSONObject) obj).getString("device_code").startsWith(deviceCode))
.collect(Collectors.toCollection(JSONArray::new));
long siteCount = site.stream()
.filter(obj -> "0".equals(((JSONObject) obj).getString("device_status")))
.count();
JSONObject json = new JSONObject();
json.put("device_code", deviceCode);
json.put("device_status", siteCount > 0 ? 0 : 1);
if (!siteList.isEmpty()) {
JSONObject item = siteJSONArray.getJSONObject(0);
json.put("vehicle_type", item.getString("vehicle_type"));
json.put("action", item.getString("action"));
}
siteJsonArray.add(json);
}
JSONArray ptJsonArray = site.stream()
.filter(obj -> ((JSONObject) obj).getString("device_code").startsWith("PTHCW"))
.collect(Collectors.toCollection(JSONArray::new));
JSONArray ssxJsonArray = site.stream()
.filter(obj -> ((JSONObject) obj).getString("device_code").startsWith("ZCSSX"))
.collect(Collectors.toCollection(JSONArray::new));
redisUtils.set("siteMain", siteJsonArray);
redisUtils.set("site", ssxJsonArray);
redisUtils.set("ptx", ptJsonArray);
if (ObjectUtil.isNotEmpty(agv)) { if (ObjectUtil.isNotEmpty(agv)) {
List<String> deviceCodes = agv.stream() List<String> deviceCodes = agv.stream()
.map(r -> { .map(r -> {
@@ -215,12 +242,12 @@ public class SyncDeviceStatus {
}); });
} }
} }
}
} }
redisUtils.set("agv", agv); redisUtils.set("agv", agv);
// log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime); // log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime);
} catch (Exception e) { } catch (Exception e) {
//log.error("自动线程开始查询AGV设备自动上报驱动状态失败{}{}", e, e.getMessage()); log.error("自动线程开始查询AGV设备自动上报驱动状态失败{}{}", e, e.getMessage());
} }
} }
} }