From eb2211c59a86efa98f65a7928d69503456c53962 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Tue, 4 Nov 2025 18:48:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ProjectEnterpriseMapper.java | 4 +++- .../mapper/xml/ProjectEnterpriseMapper.xml | 7 ++++++ .../impl/EnterpriseInfoServiceImpl.java | 22 ++++++++++--------- .../service/impl/WorkerInfoServiceImpl.java | 17 +++++++------- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/project/mapper/ProjectEnterpriseMapper.java b/src/main/java/com/zhgd/xmgl/modules/project/mapper/ProjectEnterpriseMapper.java index 4e601b451..379998ba1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/mapper/ProjectEnterpriseMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/mapper/ProjectEnterpriseMapper.java @@ -7,7 +7,6 @@ import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg; -import lombok.Data; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -90,4 +89,7 @@ public interface ProjectEnterpriseMapper extends BaseMapper { * @return */ List getChildren(Long id); + + @DataScope(enable = false) + int existProjectBySocialCodeAndProjectSn(@Param("socialCode") String socialCode, @Param("projectSn") String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/mapper/xml/ProjectEnterpriseMapper.xml b/src/main/java/com/zhgd/xmgl/modules/project/mapper/xml/ProjectEnterpriseMapper.xml index ade8c5165..78ab0d7e0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/mapper/xml/ProjectEnterpriseMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/project/mapper/xml/ProjectEnterpriseMapper.xml @@ -231,4 +231,11 @@ select * from project_enterprise where find_in_set(#{id}, ancestors) + + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java index 4aaeffdb3..c6abc38a9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java @@ -23,6 +23,7 @@ import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.base.CompanyVo; import com.zhgd.xmgl.call.api.WorkerManufacturer; import com.zhgd.xmgl.call.factory.WorkerManufacturerFactory; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl; import com.zhgd.xmgl.modules.exam.entity.ExamTrain; @@ -75,7 +76,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; @@ -246,7 +246,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(EnterpriseInfo::getSocialCode, enterpriseInfo.getSocialCode()); + queryWrapper.lambda().eq(EnterpriseInfo::getSocialCode, enterpriseInfo.getSocialCode()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); EnterpriseInfo tempEnterpriseInfo = enterpriseInfoMapper.selectOne(queryWrapper); if (enterpriseInfo.getParentEnterpriseId() == null) { enterpriseInfo.setParentEnterpriseId(0L); @@ -255,7 +255,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl queryWrapper1 = new QueryWrapper<>(); queryWrapper1.lambda().eq(ProjectEnterprise::getEnterpriseId, tempEnterpriseInfo.getId()) - .eq(ProjectEnterprise::getProjectSn, enterpriseInfo.getProjectSn()); + .eq(ProjectEnterprise::getProjectSn, enterpriseInfo.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count = projectEnterpriseMapper.selectCount(queryWrapper1); if (count > 0) { throw new OpenAlertException(MessageUtil.get("existsEnterpriseErr")); @@ -284,7 +284,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl() .eq(ProjectEnterprise::getEnterpriseId, projectEnterprise.getParentEnterpriseId()) - .eq(ProjectEnterprise::getProjectSn, projectEnterprise.getProjectSn()) + .eq(ProjectEnterprise::getProjectSn, projectEnterprise.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION) ); if (pOrg == null) { throw new OpenAlertException("上级不存在"); @@ -320,21 +320,21 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl 0) { throw new OpenAlertException(MessageUtil.get("notDeleteEnterpriseErr")); } Integer dCount = departmentInfoMapper.selectCount(new LambdaQueryWrapper() .eq(DepartmentInfo::getEnterpriseId, enterpriseId) - .eq(DepartmentInfo::getProjectSn, projectSn) + .eq(DepartmentInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION) ); if (dCount > 0) { throw new OpenAlertException("企业下存在部门,不允许删除"); } Integer parentEnterpriseNum = projectEnterpriseMapper.selectCount(new QueryWrapper().lambda() .eq(ProjectEnterprise::getParentEnterpriseId, enterpriseId) - .eq(ProjectEnterprise::getProjectSn, projectSn)); + .eq(ProjectEnterprise::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); if (parentEnterpriseNum != 0) { throw new OpenAlertException("企业下存在子企业,不允许删除"); } @@ -375,9 +375,11 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(EnterpriseInfo::getSocialCode, enterpriseInfo.getSocialCode()) - .ne(EnterpriseInfo::getId, enterpriseInfo.getId()); + .ne(EnterpriseInfo::getId, enterpriseInfo.getId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count = enterpriseInfoMapper.selectCount(queryWrapper); if (count > 0) { +// count = projectEnterpriseMapper.existProjectBySocialCodeAndProjectSn(enterpriseInfo.getSocialCode(), enterpriseInfo.getProjectSn()); +// throw new OpenAlertException("企业信用代码已存在,请使用新增企业方式"); throw new OpenAlertException(MessageUtil.get("existsEnterpriseSocialCodeErr")); } //企业如果选择有父级时候,需要排除企业和父级企业存在相互绑定的情况 @@ -385,7 +387,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl qu = new QueryWrapper<>(); qu.lambda().eq(ProjectEnterprise::getEnterpriseId, enterpriseInfo.getParentEnterpriseId()) .eq(ProjectEnterprise::getParentEnterpriseId, enterpriseInfo.getId()) - .eq(ProjectEnterprise::getProjectSn, enterpriseInfo.getProjectSn()); + .eq(ProjectEnterprise::getProjectSn, enterpriseInfo.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count1 = projectEnterpriseMapper.selectCount(qu); if (count1 > 0) { throw new OpenAlertException(MessageUtil.get("enterpriseBoundErr")); @@ -567,7 +569,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); Long enterpriseId = enterpriseInfo.getId(); - wrapper.lambda().eq(TeamInfo::getEnterpriseId, enterpriseId); + wrapper.lambda().eq(TeamInfo::getEnterpriseId, enterpriseId).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count = teamInfoMapper.selectCount(wrapper); if (count > 0) { throw new OpenAlertException(MessageUtil.get("notDeleteEnterpriseErr")); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index c7bc020f4..e73139d8a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -106,7 +106,6 @@ import java.math.RoundingMode; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicLong; @@ -550,14 +549,14 @@ public class WorkerInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkerInfo::getProjectSn, workerInfo.getProjectSn()) - .eq(WorkerInfo::getIdCard, workerInfo.getIdCard()); + .eq(WorkerInfo::getIdCard, workerInfo.getIdCard()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count = workerInfoMapper.selectCount(queryWrapper); if (count > 0) { throw new OpenAlertException(MessageUtil.get("existsIDCardErr")); } String locationCardno = workerInfo.getLocationCardno(); if (StringUtils.isNotBlank(locationCardno)) { - Integer cardCount = workerInfoMapper.selectCount(new LambdaQueryWrapper().eq(WorkerInfo::getLocationCardno, locationCardno)); + Integer cardCount = workerInfoMapper.selectCount(new LambdaQueryWrapper().eq(WorkerInfo::getLocationCardno, locationCardno).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); if (cardCount > 0) { throw new OpenAlertException("定位标签号已存在"); } @@ -567,7 +566,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(WorkerInfo::getProjectSn, workerInfo.getProjectSn()) - .eq(WorkerInfo::getAttendanceNumber, workerInfo.getAttendanceNumber()); + .eq(WorkerInfo::getAttendanceNumber, workerInfo.getAttendanceNumber()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count2 = workerInfoMapper.selectCount(qw); if (count2 > 0) { throw new OpenAlertException(MessageUtil.get("AttendanceCardExistErr")); @@ -641,7 +640,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkerInfo::getProjectSn, workerInfo.getProjectSn()) .eq(WorkerInfo::getIdCard, workerInfo.getIdCard()) - .ne(WorkerInfo::getId, workerInfo.getId()); + .ne(WorkerInfo::getId, workerInfo.getId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); ThreadLocalUtil.addInKey("now", new Date()); int count = workerInfoMapper.selectCount(queryWrapper); if (count > 0) { @@ -649,7 +648,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl().eq(WorkerInfo::getLocationCardno, locationCardno).ne(WorkerInfo::getId, workerInfo.getId())); + Integer cardCount = workerInfoMapper.selectCount(new LambdaQueryWrapper().eq(WorkerInfo::getLocationCardno, locationCardno).ne(WorkerInfo::getId, workerInfo.getId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); if (cardCount > 0) { throw new OpenAlertException("定位标签号已存在"); } @@ -660,7 +659,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(WorkerInfo::getProjectSn, workerInfo.getProjectSn()) .eq(WorkerInfo::getAttendanceNumber, workerInfo.getAttendanceNumber()) - .ne(WorkerInfo::getId, workerInfo.getId()); + .ne(WorkerInfo::getId, workerInfo.getId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION); int count2 = workerInfoMapper.selectCount(qw); if (count2 > 0) { throw new OpenAlertException(MessageUtil.get("AttendanceCardExistErr")); @@ -1926,7 +1925,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl workerSafeEducations = workerSafeEducationMapper.selectList(Wrappers.lambdaQuery() .eq(WorkerSafeEducation::getProjectSn, projectSn) - .eq(WorkerSafeEducation::getEduType, 1) + .eq(WorkerSafeEducation::getEduType, 1).last(Cts.IGNORE_DATA_SCOPE_CONDITION) .orderByDesc(WorkerSafeEducation::getAddTime)); if (workerSafeEducations == null || workerSafeEducations.size() == 0) { throw new OpenAlertException("该人员未参加过入场安全教育培训!"); @@ -2487,7 +2486,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl() - .eq(UfaceDev::getDevSn, deviceId)); + .eq(UfaceDev::getDevSn, deviceId).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); if (dev == null) { throw new OpenAlertException("设备编号不存在"); } From 702642e49b14627ea60e86888b04686064542a34 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 5 Nov 2025 15:48:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=AB=98=E6=94=AF=E6=A8=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B0=B4=E5=B9=B3=E5=80=BE=E6=96=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/HighFormworkSupportService.java | 33 ++++++++++++------- .../entity/HighFormworkAlarmData.java | 2 +- .../HighFormworkMeasureCurrentData.java | 7 +++- .../HighFormworkMeasurePointThreshold.java | 12 +++---- .../entity/vo/DataPerHourForTheLastDayVo.java | 2 ++ .../HighFormworkMeasureCurrentDataMapper.xml | 4 ++- .../HighFormworkAlarmDataServiceImpl.java | 11 +++++++ ...FormworkMeasureCurrentDataServiceImpl.java | 3 +- .../com/zhgd/xmgl/task/HighFormworkTask.java | 3 ++ 9 files changed, 54 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zhgd/netty/tcp/service/HighFormworkSupportService.java b/src/main/java/com/zhgd/netty/tcp/service/HighFormworkSupportService.java index 05937aee7..c43bb03c5 100644 --- a/src/main/java/com/zhgd/netty/tcp/service/HighFormworkSupportService.java +++ b/src/main/java/com/zhgd/netty/tcp/service/HighFormworkSupportService.java @@ -276,38 +276,49 @@ public class HighFormworkSupportService { if (StringUtils.isNotBlank(no)) { String noType = no.substring(no.length() - 1); String f = "F"; + String val = dataMap.get(gzDs2); if (f.equals(noType)) { - currentData.setPoleAxialForce(String.valueOf(Double.parseDouble(dataMap.get(gzDs2)))); + currentData.setPoleAxialForce(String.valueOf(Double.parseDouble(val))); } String h = "H"; if (h.equals(noType)) { - currentData.setHorizontalDisplacement(dataMap.get(gzDs2)); + currentData.setHorizontalDisplacement(val); } String v = "V"; if (v.equals(noType)) { - currentData.setFormworkSettlement(dataMap.get(gzDs2)); + currentData.setFormworkSettlement(val); } String l = "L"; if (l.equals(noType)) { - currentData.setPoleTilt(dataMap.get(gzDs2)); + currentData.setPoleTilt(val); } String d = "D"; if (d.equals(noType)) { - currentData.setFoundationSettlement(dataMap.get(gzDs2)); + currentData.setFoundationSettlement(val); + } + String s = "S"; + if (s.equals(noType)) { + currentData.setHorizontalTilt(val); } } } private void setAlarmStatus(HashMap dataMap, HighFormworkMeasureCurrentData currentData) { Integer alarmState = null; - if (getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT1)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || - getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT2)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || - getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT3)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode())) { + if (Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT1)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT2)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT3)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT4)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT5)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT6)), HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode())) { //报警 alarmState = HighFormworkMeasureCurrentDataAlarmStateEnum.ALARM.getCode(); - } else if (getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT1)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || - getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT2)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || - getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT3)).equals(HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode())) { + } else if (Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT1)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT2)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT3)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT4)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT5)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode()) || + Objects.equals(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT6)), HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode())) { //预警 alarmState = HighFormworkMeasureCurrentDataAlarmStateEnum.PRE_ALARM.getCode(); } else { diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkAlarmData.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkAlarmData.java index 84a5d264c..0351fea4c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkAlarmData.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkAlarmData.java @@ -31,7 +31,7 @@ public class HighFormworkAlarmData implements Serializable { @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "id") private java.lang.Long id; - @ApiModelProperty(value = "类型:1立杆轴力2水平位移3模板沉降4立杆倾斜5地基沉降") + @ApiModelProperty(value = "类型:1立杆轴力2水平位移3模板沉降4立杆倾斜5地基沉降6水平倾斜") private java.lang.Integer type; /** * 监测点ID diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java index 1477be733..dcef5445f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java @@ -51,22 +51,26 @@ public class HighFormworkMeasureCurrentData implements Serializable { /**X轴倾角(°)*/ @Excel(name = "X轴倾角(°)", width = 15) @ApiModelProperty(value="X轴倾角(°)") + @Deprecated private java.lang.String angleXAxis ; /**Y轴倾角(°)*/ @Excel(name = "Y轴倾角(°)", width = 15) @ApiModelProperty(value = "Y轴倾角(°)") + @Deprecated private java.lang.String angleYAxis; /** * 压力(kN) */ @Excel(name = "压力(kN)", width = 15) @ApiModelProperty(value = "压力(kN)") + @Deprecated private java.lang.String pressure; /** * 沉降(mm) */ @Excel(name = "沉降(mm)", width = 15) @ApiModelProperty(value = "沉降(mm)") + @Deprecated private java.lang.String subside; @ApiModelProperty(value = "立杆轴力") private java.lang.String poleAxialForce; @@ -91,7 +95,8 @@ public class HighFormworkMeasureCurrentData implements Serializable { @Excel(name = "采集仪编号", width = 15) @ApiModelProperty(value = "采集仪编号") private java.lang.String acquisitionInstrumentNumber; - + @ApiModelProperty(value = "水平倾斜") + private java.lang.String horizontalTilt; @TableField(exist = false) @ApiModelProperty(value = "测量点名称") private java.lang.String measurePointName; diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasurePointThreshold.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasurePointThreshold.java index b91c247b8..86d0b0d55 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasurePointThreshold.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasurePointThreshold.java @@ -1,16 +1,14 @@ package com.zhgd.xmgl.modules.highformwork.entity; -import java.io.Serializable; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; /** * @Description: 高支模-测量点报警预警阀值 * @author: pds @@ -36,7 +34,7 @@ public class HighFormworkMeasurePointThreshold implements Serializable { @ApiModelProperty(value = "监测点ID") private java.lang.Long measurePointId; - @ApiModelProperty(value = "类型:1立杆轴力2水平位移3模板沉降4立杆倾斜5地基沉降") + @ApiModelProperty(value = "类型:1立杆轴力2水平位移3模板沉降4立杆倾斜5地基沉降6水平倾斜") private java.lang.Integer type; /** * 预警值 diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/vo/DataPerHourForTheLastDayVo.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/vo/DataPerHourForTheLastDayVo.java index 46bc28440..257bd6005 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/vo/DataPerHourForTheLastDayVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/vo/DataPerHourForTheLastDayVo.java @@ -25,4 +25,6 @@ public class DataPerHourForTheLastDayVo { private java.lang.String poleTilt; @ApiModelProperty(value = "地基沉降") private java.lang.String foundationSettlement; + @ApiModelProperty(value = "水平倾斜") + private java.lang.String horizontalTilt; } diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/mapper/xml/HighFormworkMeasureCurrentDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/highformwork/mapper/xml/HighFormworkMeasureCurrentDataMapper.xml index 5e3fe8793..b1f5f6f44 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/mapper/xml/HighFormworkMeasureCurrentDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/mapper/xml/HighFormworkMeasureCurrentDataMapper.xml @@ -19,6 +19,7 @@ hfmcd.formwork_settlement, hfmcd.pole_tilt, hfmcd.foundation_settlement, + hfmcd.horizontal_tilt, hfmp.measure_point_name from high_formwork_measure_current_data hfmcd join high_formwork_measure_point hfmp on hfmcd.measure_point_number = hfmp.measure_point_number and @@ -74,7 +75,8 @@ ifnull(avg(cd.horizontal_displacement),0) as horizontal_displacement, ifnull(avg(cd.formwork_settlement),0) as formwork_settlement, ifnull(avg(cd.pole_tilt),0) as pole_tilt, - ifnull(avg(cd.foundation_settlement),0) as foundation_settlement + ifnull(avg(cd.foundation_settlement),0) as foundation_settlement, + ifnull(avg(cd.horizontal_tilt),0) as horizontal_tilt from high_formwork_measure_current_data cd INNER JOIN high_formwork_measure_point mp ON mp.measure_point_number = cd.measure_point_number and cd.acquisition_instrument_number = mp.acquisition_instrument_number diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/service/impl/HighFormworkAlarmDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/service/impl/HighFormworkAlarmDataServiceImpl.java index b0258a8e7..9c2da7430 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/service/impl/HighFormworkAlarmDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/service/impl/HighFormworkAlarmDataServiceImpl.java @@ -140,6 +140,17 @@ public class HighFormworkAlarmDataServiceImpl extends ServiceImpl Date: Wed, 5 Nov 2025 17:32:55 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=89=A7=E6=B3=95=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BB=AA=E7=9A=84=E7=8A=B6=E6=80=81=E6=94=B9=E6=88=90=E5=8F=96?= =?UTF-8?q?isc=E7=9A=84=E7=9B=91=E6=8E=A7=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../policecamera/entity/PoliceCameraItem.java | 4 +- .../entity/bo/PoliceCameraVideoConfigBo.java | 14 ++ .../mapper/PoliceCameraVideoConfigMapper.java | 13 +- .../java/com/zhgd/xmgl/task/Mcs8Task.java | 36 +++--- .../java/com/zhgd/xmgl/task/VideoTask.java | 122 +++++++++++++++--- 5 files changed, 147 insertions(+), 42 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/policecamera/entity/bo/PoliceCameraVideoConfigBo.java diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/PoliceCameraItem.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/PoliceCameraItem.java index 8864a7597..876a50e52 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/PoliceCameraItem.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/PoliceCameraItem.java @@ -123,9 +123,9 @@ public class PoliceCameraItem implements Serializable { @ApiModelProperty(value = "电量") private java.lang.String batteryLevel; /** - * 设备状态,1在线,2离线 + * 设备状态,1在线,2离线(监控) */ - @ApiModelProperty(value = "设备状态,1在线,2离线") + @ApiModelProperty(value = "设备状态,1在线,2离线(监控)") private java.lang.Integer deviceState; /** * 排序 diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/bo/PoliceCameraVideoConfigBo.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/bo/PoliceCameraVideoConfigBo.java new file mode 100644 index 000000000..41d35d654 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/bo/PoliceCameraVideoConfigBo.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.policecamera.entity.bo; + +import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraVideoConfig; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PoliceCameraVideoConfigBo extends PoliceCameraVideoConfig { + /** + *projectSns + */ + @ApiModelProperty("projectSns") + private String projectSns; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraVideoConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraVideoConfigMapper.java index 3ce0b6dca..f3a8fd4d2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraVideoConfigMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraVideoConfigMapper.java @@ -1,18 +1,17 @@ package com.zhgd.xmgl.modules.policecamera.mapper; -import java.util.List; -import java.util.HashMap; - -import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraVideoConfig; -import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraVideoConfigVo; -import com.zhgd.xmgl.modules.policecamera.entity.dto.PoliceCameraVideoConfigDto; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraVideoConfig; +import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraVideoConfigVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.HashMap; +import java.util.List; /** * @Description: 执法记录仪视频配置 diff --git a/src/main/java/com/zhgd/xmgl/task/Mcs8Task.java b/src/main/java/com/zhgd/xmgl/task/Mcs8Task.java index a83e9ae9a..004632d3d 100644 --- a/src/main/java/com/zhgd/xmgl/task/Mcs8Task.java +++ b/src/main/java/com/zhgd/xmgl/task/Mcs8Task.java @@ -61,24 +61,24 @@ public class Mcs8Task { } - /** - * 定时更新执法仪设备状态 - */ - @Scheduled(cron = "*/5 * * * * ?") - @RequestMapping("updateStatus") - public void updateStatus() { - List projects = projectService.list(); - for (Project project : projects) { - try { - PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(project.getProjectSn()); - if (manufacturer != null) { - manufacturer.updateStatus(3L); - } - } catch (Exception e) { - log.error("定时更新执法仪设备状态err,{}", project.getProjectName(), e); - } - } - } +// /** +// * 定时更新执法仪设备状态 +// */ +// @Scheduled(cron = "*/5 * * * * ?") +// @RequestMapping("updateStatus") +// public void updateStatus() { +// List projects = projectService.list(); +// for (Project project : projects) { +// try { +// PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(project.getProjectSn()); +// if (manufacturer != null) { +// manufacturer.updateStatus(3L); +// } +// } catch (Exception e) { +// log.error("定时更新执法仪设备状态err,{}", project.getProjectName(), e); +// } +// } +// } } diff --git a/src/main/java/com/zhgd/xmgl/task/VideoTask.java b/src/main/java/com/zhgd/xmgl/task/VideoTask.java index ec7938d9a..6c9bed9f0 100644 --- a/src/main/java/com/zhgd/xmgl/task/VideoTask.java +++ b/src/main/java/com/zhgd/xmgl/task/VideoTask.java @@ -10,6 +10,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zhgd.xmgl.async.AsyncEnvironment; +import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem; +import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraVideoConfig; +import com.zhgd.xmgl.modules.policecamera.service.IPoliceCameraItemService; +import com.zhgd.xmgl.modules.policecamera.service.IPoliceCameraVideoConfigService; import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig; import com.zhgd.xmgl.modules.project.entity.bo.ProjectVideoConfigBo; import com.zhgd.xmgl.modules.project.enums.ProjectVideoConfigVideoTypeEnum; @@ -55,6 +59,12 @@ public class VideoTask { @Lazy @Autowired private VideoItemServiceImpl videoItemService; + @Lazy + @Autowired + private IPoliceCameraVideoConfigService policeCameraVideoConfigService; + @Lazy + @Autowired + private IPoliceCameraItemService policeCameraItemService; @SchedulerLock(name = "updateVideoState", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) @Scheduled(cron = "0 */3 * * * ?") @@ -151,20 +161,23 @@ public class VideoTask { if (CollUtil.isEmpty(itemDbs)) { continue; } - do { - resultJo = HikVideoUtil.callPostApiOnlineStatus(videoConfig.getAccount(), - videoConfig.getPassword(), videoConfig.getAppId(), - videoConfig.getAppSecret(), ++pageNo); - if (resultJo != null && "0".equals(resultJo.getString("code"))) { - alls.addAll(resultJo.getJSONObject("data").getJSONArray("list")); - } else { - log.error("高频更新isc监控状态返回错误:项目sn:{}:code:{},msg:{}", - videoConfig.getProjectSn(), resultJo != null ? resultJo.getString("code") : "", - resultJo != null ? resultJo.getString("msg") : ""); - break; - } - } while (pageNo * 1000 < resultJo.getJSONObject("data").getInteger("total")); - + try { + do { + resultJo = HikVideoUtil.callPostApiOnlineStatus(videoConfig.getAccount(), + videoConfig.getPassword(), videoConfig.getAppId(), + videoConfig.getAppSecret(), ++pageNo); + if (resultJo != null && "0".equals(resultJo.getString("code"))) { + alls.addAll(resultJo.getJSONObject("data").getJSONArray("list")); + } else { + log.error("高频更新isc监控状态返回错误:项目sn:{}:code:{},msg:{}", + videoConfig.getProjectSn(), resultJo != null ? resultJo.getString("code") : "", + resultJo != null ? resultJo.getString("msg") : ""); + break; + } + } while (pageNo * 1000 < resultJo.getJSONObject("data").getInteger("total")); + } catch (Exception e) { + log.error("高频更新isc监控状态返回异常", e); + } Map indexCodeMap = alls.stream().collect(Collectors.toMap(j -> ((JSONObject) j).getString("indexCode"), j -> ((JSONObject) j), (o1, o2) -> o1)); for (VideoItem videoItem : itemDbs) { JSONObject jsonObject = indexCodeMap.get(videoItem.getSerialNumber()); @@ -183,7 +196,8 @@ public class VideoTask { .set(VideoItem::getDeviceState, 1) .in(VideoItem::getItemId, onlineIds) ); - } List offlineIds = videoItemsToUpdate.stream().filter(v -> Objects.equals(v.getDeviceState(), 2)).map(VideoItem::getItemId).collect(Collectors.toList()); + } + List offlineIds = videoItemsToUpdate.stream().filter(v -> Objects.equals(v.getDeviceState(), 2)).map(VideoItem::getItemId).collect(Collectors.toList()); if (CollUtil.isNotEmpty(offlineIds)) { videoItemService.update(null, new LambdaUpdateWrapper() .set(VideoItem::getDeviceState, 2) @@ -197,6 +211,84 @@ public class VideoTask { } } + /** + * 高频更新执法记录仪的isc监控状态 + */ + @Scheduled(cron = "*/10 * * * * ?") + @RequestMapping("updatePoliceCameraItemIscVideoState") + public void updatePoliceCameraItemIscVideoState() { + try { + List configs = policeCameraVideoConfigService.list(new QueryWrapper<>()); + Map> projectSnMap2ItemsMap = policeCameraItemService.list(new LambdaQueryWrapper()).stream().collect(Collectors.groupingBy(PoliceCameraItem::getProjectSn)); + Map> projectSn2IndexCodeMap = new HashMap<>(); + for (PoliceCameraVideoConfig videoConfig : configs) { + // 收集需要更新的视频设备 + List videoItemsToUpdate = new ArrayList<>(); + List itemDbs = projectSnMap2ItemsMap.get(videoConfig.getProjectSn()); + if (CollUtil.isEmpty(itemDbs)) { + continue; + } + Map indexCodeMap = projectSn2IndexCodeMap.computeIfAbsent(StrUtil.format("{},{},{},{}", videoConfig.getIp(), + videoConfig.getPort(), videoConfig.getAppId(), + videoConfig.getAppSecret()), key -> { + if (StrUtil.isBlank(videoConfig.getIp()) || StrUtil.isBlank(videoConfig.getPort()) || StrUtil.isBlank(videoConfig.getAppId()) || StrUtil.isBlank(videoConfig.getAppSecret())) { + return new HashMap<>(); + } + JSONArray alls = new JSONArray(); + try { + JSONObject resultJo; + int pageNo = 0; + do { + resultJo = HikVideoUtil.callPostApiOnlineStatus(videoConfig.getIp(), + videoConfig.getPort(), videoConfig.getAppId(), + videoConfig.getAppSecret(), ++pageNo); + if (resultJo != null && "0".equals(resultJo.getString("code"))) { + alls.addAll(resultJo.getJSONObject("data").getJSONArray("list")); + } else { + log.error("高频更新执法记录仪的isc监控状态返回错误:项目sn:{}:code:{},msg:{}", + videoConfig.getProjectSn(), resultJo != null ? resultJo.getString("code") : "", + resultJo != null ? resultJo.getString("msg") : ""); + break; + } + } while (pageNo * 1000 < resultJo.getJSONObject("data").getInteger("total")); + } catch (Exception e) { + log.error("高频更新执法记录仪的isc监控状态返回异常", e); + } + return alls.stream().collect(Collectors.toMap(j -> ((JSONObject) j).getString("indexCode"), j -> ((JSONObject) j), (o1, o2) -> o1)); + }); + + for (PoliceCameraItem item : itemDbs) { + JSONObject jsonObject = indexCodeMap.get(item.getMonitoringNumber()); + Integer newOnlineStatus = jsonObject != null && Objects.equals(jsonObject.getInteger("online"), 1) ? 1 : 2; + // 只有当设备状态发生变化时才更新 + if (!newOnlineStatus.equals(item.getDeviceState())) { + item.setDeviceState(newOnlineStatus); + videoItemsToUpdate.add(item); + } + } + // 批量更新 + if (CollUtil.isNotEmpty(videoItemsToUpdate)) { + List onlineIds = videoItemsToUpdate.stream().filter(v -> Objects.equals(v.getDeviceState(), 1)).map(PoliceCameraItem::getItemId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(onlineIds)) { + policeCameraItemService.update(null, new LambdaUpdateWrapper() + .set(PoliceCameraItem::getDeviceState, 1) + .in(PoliceCameraItem::getItemId, onlineIds) + ); + } + List offlineIds = videoItemsToUpdate.stream().filter(v -> Objects.equals(v.getDeviceState(), 2)).map(PoliceCameraItem::getItemId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(offlineIds)) { + policeCameraItemService.update(null, new LambdaUpdateWrapper() + .set(PoliceCameraItem::getDeviceState, 2) + .in(PoliceCameraItem::getItemId, offlineIds) + ); + } + } + } + } catch (Exception e) { + log.error("高频更新执法记录仪的isc监控状态返回错误", e); + } + } + private void sendVideoData(VideoItem videoItem, ProjectVideoConfig videoConfig) { List> list = new ArrayList<>(); Map video = new HashMap<>(16);