From d69032723838199b64b399b7522e0cb0b46dc0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 15:56:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yanzhu-bigscreen/src/views/projectChecked.vue | 10 +- .../device/TowerCraneApiController.java | 176 +++++++++++++++--- 2 files changed, 161 insertions(+), 25 deletions(-) diff --git a/yanzhu-bigscreen/src/views/projectChecked.vue b/yanzhu-bigscreen/src/views/projectChecked.vue index 274507a8..d9106f13 100644 --- a/yanzhu-bigscreen/src/views/projectChecked.vue +++ b/yanzhu-bigscreen/src/views/projectChecked.vue @@ -325,12 +325,18 @@ export default { item.checkImages = []; } - if (item.checkResult == 1 && item.approveStatus == 100) { + if(item.checkResult == 1 && (item.approveStatus == 4 || item.approveStatus == 100)) { item.checkResultName = "验收通过"; item.checkResultColor = 1; - } else { + }else if(item.checkResult == 2) { item.checkResultName = "验收不通过"; item.checkResultColor = 2; + }else if(item.approveStatus == 3) { + item.checkResultName = "验收已驳回"; + item.checkResultColor = 2; + }else{ + item.checkResultName = "正在验收中"; + item.checkResultColor = 1; } let task = this.$tryToJson(item.workingPosition, {}) diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java index 18efee32..108f438e 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java @@ -9,10 +9,7 @@ import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.device.domain.*; -import com.yanzhu.manage.domain.vo.TowerReqVo; -import com.yanzhu.manage.domain.vo.TyTowerRoundReqVO; -import com.yanzhu.manage.domain.vo.TyTowerRunReqVO; -import com.yanzhu.manage.domain.vo.TyTowerWarningReqVO; +import com.yanzhu.manage.domain.vo.*; import com.yanzhu.manage.enums.HttpStatusEnum; import com.yanzhu.manage.enums.TowerTypeEnums; import com.yanzhu.manage.service.*; @@ -394,6 +391,58 @@ public class TowerCraneApiController { devTowerDataLocalService.insertDevTowerDataLocal(devTowerDataLocal); } + /** + * 塔吊监测++ + * 限流规则[60秒内最多请求10次,限流策略IP] + * + * @param req 请求信息 + * @author JiangYuQi + * @date 2024-01-13 + */ + @ApiOperation(value = "山东探越-塔吊监测-实时数据") + @RateLimiter(count = 10, limitType = LimitType.IP) + @PostMapping("/tyLinux/run/push") + public AjaxResult tyLinuxPushRunData(@RequestBody @Valid TyTowerLinuxRunReqVO req) { + log.info("desApi.towerCrane.tyLinux.run.push...{}",req.getEid()); + DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + if (config == null) { + throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); + } + String deviceKey = req.getEid().toString(); + DevTowerDataLimit devTowerDataLimit = staticLimitMap.get(deviceKey); + if(devTowerDataLimit==null){ + DevTowerDataLimit devTowerDataLimitQuery = new DevTowerDataLimit(); + devTowerDataLimitQuery.setDeviceKey(deviceKey); + devTowerDataLimitQuery.setProjectId(config.getProjectId()); + List limitList = devTowerDataLimitService.selectDevTowerDataLimitList(devTowerDataLimitQuery); + if(limitList.size()>0){ + devTowerDataLimit = limitList.get(0); + staticLimitMap.put(deviceKey,devTowerDataLimit); + }else{ + devTowerDataLimit = new DevTowerDataLimit(); + } + } + + DevTowerDataRun devTowerDataRun = new DevTowerDataRun(); + devTowerDataRun.setCfgId(config.getId()); + devTowerDataRun.setProjectId(config.getProjectId()); + devTowerDataRun.setComId(config.getComId()); + devTowerDataRun.setDeviceKey(config.getDeviceSn()); + devTowerDataRun.setHeight(Convert.toStr(req.getHeight())); + devTowerDataRun.setRange(Convert.toStr(req.getAmplitude())); + devTowerDataRun.setRotation(Convert.toStr(req.getRound())); + devTowerDataRun.setLoad(String.format("%.2f", req.getWeight()/1000)); + Double limitLoad = Convert.toDouble(devTowerDataLimit.getLoadAlarm(),50.0); + devTowerDataRun.setLoadPercent(String.format("%.2f", (req.getWeight()/10)/limitLoad)); + devTowerDataRun.setWindSpeed(Convert.toStr(req.getWind_speed())); + devTowerDataRun.setLeanAngleX(Convert.toStr(req.getAngle_x())); + devTowerDataRun.setLeanAngleY(Convert.toStr(req.getAngle_y())); + devTowerDataRun.setMomentPercent(Convert.toStr(req.getMoment_percent())); + devTowerDataRun.setRate(Convert.toStr(req.getOverride())); + devTowerDataRunService.insertDevTowerDataRun(devTowerDataRun); + return AjaxResult.success(); + } + /** * 塔吊监测++ * 限流规则[60秒内最多请求10次,限流策略IP] @@ -446,6 +495,46 @@ public class TowerCraneApiController { return AjaxResult.success(); } + /** + * 塔吊监测++ + * 限流规则[60秒内最多请求10次,限流策略IP] + * + * @param req 请求信息 + * @author JiangYuQi + * @date 2024-01-13 + */ + @ApiOperation(value = "山东探越-塔吊监测-循环数据") + @RateLimiter(count = 10, limitType = LimitType.IP) + @PostMapping("/tyLinux/round/push") + public AjaxResult tyLinuxPushRoundData(@RequestBody @Valid TyTowerLinuxRoundReqVO req) { + log.info("desApi.towerCrane.tyLinux.round.push...{}",req.getEid()); + DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + if (config == null) { + throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); + } + DevTowerDataRound devTowerDataRound = new DevTowerDataRound(); + devTowerDataRound.setCfgId(config.getId()); + devTowerDataRound.setProjectId(config.getProjectId()); + devTowerDataRound.setComId(config.getComId()); + devTowerDataRound.setDeviceKey(config.getDeviceSn()); + devTowerDataRound.setWorkStartTime(Convert.toStr(req.getStart_time())); + devTowerDataRound.setWorkEndTime(Convert.toStr(req.getEnd_time())); + devTowerDataRound.setMinHeight(Convert.toStr(req.getStart_height())); + devTowerDataRound.setMaxHeight(Convert.toStr(req.getEnd_height())); + devTowerDataRound.setMinRange(Convert.toStr(req.getStart_range())); + devTowerDataRound.setMaxRange(Convert.toStr(req.getEnd_range())); + devTowerDataRound.setStartHeight(Convert.toStr(req.getStart_height())); + devTowerDataRound.setEndHeight(Convert.toStr(req.getEnd_height())); + devTowerDataRound.setStartRange(Convert.toStr(req.getStart_range())); + devTowerDataRound.setEndRange(Convert.toStr(req.getEnd_range())); + devTowerDataRound.setStartRotation(Convert.toStr(req.getStart_rotation_angle())); + devTowerDataRound.setEndRotation(Convert.toStr(req.getEnd_rotation_angle())); + devTowerDataRound.setMaxLoad(String.format("%.2f", req.getWeight()/1000)); + devTowerDataRound.setMaxMomentPercent(Convert.toStr(req.getMoment_percent())); + devTowerDataRoundService.insertDevTowerDataRound(devTowerDataRound); + return AjaxResult.success(); + } + /** * 塔吊监测++ * 限流规则[60秒内最多请求10次,限流策略IP] @@ -486,6 +575,47 @@ public class TowerCraneApiController { return AjaxResult.success(); } + /** + * 塔吊监测++ + * 限流规则[60秒内最多请求10次,限流策略IP] + * + * @param req 请求信息 + * @author JiangYuQi + * @date 2024-01-13 + */ + @ApiOperation(value = "山东探越-塔吊监测-预警数据") + @RateLimiter(count = 10, limitType = LimitType.IP) + @PostMapping("/tyLinux/warning/push") + public AjaxResult tyLinuxPushWarningData(@RequestBody @Valid TyTowerLinuxWarningReqVO req) { + log.info("desApi.towerCrane.tyLinux.warning.push...{}",req.getEid()); + DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + if (config == null) { + throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); + } + DevTowerDataWarning devTowerDataWarning = new DevTowerDataWarning(); + devTowerDataWarning.setCfgId(config.getId()); + devTowerDataWarning.setProjectId(config.getProjectId()); + devTowerDataWarning.setComId(config.getComId()); + devTowerDataWarning.setDeviceKey(config.getDeviceSn()); + String[] warningTypes = convertTyTowerLinuxWarningType(req.getAlarm_type().toString()).split(","); + devTowerDataWarning.setWarnType(Convert.toLong(warningTypes[0])); + devTowerDataWarning.setWarnNote(warningTypes[1]); + devTowerDataWarning.setHeight(Convert.toStr(req.getHeight())); + devTowerDataWarning.setRange(Convert.toStr(req.getAmplitude())); + devTowerDataWarning.setRotation(Convert.toStr(req.getRound())); + devTowerDataWarning.setLoad(String.format("%.2f", req.getWeight()/1000)); + devTowerDataWarning.setWindSpeed(Convert.toStr(req.getWind_speed())); + devTowerDataWarning.setLeanAngleX(Convert.toStr(req.getAngle_x())); + devTowerDataWarning.setLeanAngleY(Convert.toStr(req.getAngle_y())); + devTowerDataWarning.setMomentPercent(Convert.toStr(req.getMoment_percent())); + devTowerDataWarning.setRate(Convert.toStr(req.getOverride())); + if(devTowerDataWarning.getWarnType()>100){ + devTowerDataWarning.setAlarmed(1L); + } + devTowerDataWarningService.insertDevTowerDataWarning(devTowerDataWarning); + return AjaxResult.success(); + } + /** * 塔吊监测++ * 限流规则[60秒内最多请求10次,限流策略IP] @@ -654,61 +784,61 @@ public class TowerCraneApiController { String warningTypeEs; switch (warningType) { case "1": - warningTypeEs = "1"; + warningTypeEs = "1,高度上限预警"; break; case "2": - warningTypeEs = "101"; + warningTypeEs = "101,高度上限报警"; break; case "3": - warningTypeEs = "4"; + warningTypeEs = "4,幅度近限预警"; break; case "4": - warningTypeEs = "103"; + warningTypeEs = "103,幅度近限报警"; break; case "5": - warningTypeEs = "3"; + warningTypeEs = "3,幅度远限预警"; break; case "6": - warningTypeEs = "102"; + warningTypeEs = "102,幅度远限报警"; break; case "7": - warningTypeEs = "7"; + warningTypeEs = "7,重量预警"; break; case "8": - warningTypeEs = "106"; + warningTypeEs = "106,重量报警"; break; case "9": - warningTypeEs = "10"; + warningTypeEs = "10,力矩预警"; break; case "10": - warningTypeEs = "107"; + warningTypeEs = "107,力矩报警"; break; case "11": - warningTypeEs = "13"; + warningTypeEs = "13,风速预警"; break; case "12": - warningTypeEs = "108"; + warningTypeEs = "108,风速报警"; break; case "13": - warningTypeEs = "5"; + warningTypeEs = "5,防碰撞左转预警"; break; case "14": - warningTypeEs = "104"; + warningTypeEs = "104,防碰撞左转报警"; break; case "15": - warningTypeEs = "6"; + warningTypeEs = "6,防碰撞右转预警"; break; case "16": - warningTypeEs = "105"; + warningTypeEs = "105,防碰撞右转报警"; break; case "17": - warningTypeEs = "14"; + warningTypeEs = "14,倾角预警"; break; case "18": - warningTypeEs = "109"; + warningTypeEs = "109,倾角报警"; break; default: - warningTypeEs = "0"; + warningTypeEs = "0,未知预警"; break; } return warningTypeEs;