From cfbcd247f61b6c7b134e0c9c5c50c72803f8c999 Mon Sep 17 00:00:00 2001 From: guo Date: Wed, 20 Mar 2024 17:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E6=A2=B0=E6=8C=87=E6=8C=A5=E5=AE=98?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=BA=E6=A2=B0=E8=AE=BE=E5=A4=87=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D-=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...anicalEquipmentPositionDataController.java | 20 +++++-- .../MechanicalEquipmentPositionData.java | 5 +- .../MechanicalEquipmentPositionDev.java | 3 ++ ...echanicalEquipmentPositionDataService.java | 2 + ...nicalEquipmentPositionDataServiceImpl.java | 52 +++++++++++++++++-- ...anicalEquipmentPositionDevServiceImpl.java | 14 +++++ .../zhgd/xmgl/security/WebSecurityConfig.java | 1 + 7 files changed, 88 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDataController.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDataController.java index ae398defe..bb365a338 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDataController.java @@ -122,10 +122,7 @@ public class MechanicalEquipmentPositionDataController { return result; } - @ApiOperation(value = "外部添加机械设备定位-实时和报警数据信息", notes = "外部添加机械设备定位-实时和报警数据信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), - }) + @ApiOperation(value = "机械工时通添加机械设备定位-实时和报警数据信息", notes = "机械工时通添加机械设备定位-实时和报警数据信息", httpMethod = "POST") @PostMapping(value = "/addData") public Result addData(@ApiIgnore @RequestBody HashMap paramMap) { log.info("外部添加机械设备定位-实时和报警数据信息:{}", JSON.toJSONString(paramMap)); @@ -137,4 +134,19 @@ public class MechanicalEquipmentPositionDataController { return Result.ok(); } + @ApiOperation(value = "机械指挥官添加机械设备定位-实时数据信息", notes = "机械指挥官添加机械设备定位-实时数据信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/jxzhgAddData") + public Result jxzhgAddData(@ApiIgnore @RequestBody HashMap paramMap) { + log.info("机械指挥官添加机械设备定位-实时数据信息:{}", JSON.toJSONString(paramMap)); + try { + mechanicalEquipmentPositionDataService.jxzhgAddData(paramMap); + } catch (Exception e) { + return Result.ok(e.getMessage()); + } + return Result.ok(); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionData.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionData.java index b5bc1bc06..730840c24 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionData.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionData.java @@ -69,7 +69,10 @@ public class MechanicalEquipmentPositionData implements Serializable { * 工作状态 */ @Excel(name = "工作状态", width = 15) - @ApiModelProperty(value = "工作状态(1:ACC开(工作状态),2:ACC关(怠速状态)") + /** + * 工作状态(1:ACC开(工作状态),2:ACC关(怠速状态),3静止状态,4离线状态 + */ + @ApiModelProperty(value = "工作状态(1:工作状态,2:怠速状态,3静止状态,4离线状态") private java.lang.Integer workStatus; /** * 设备电量 diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java index 3d279c86d..58f13ec00 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java @@ -88,4 +88,7 @@ public class MechanicalEquipmentPositionDev implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "在线状态(0.离线 1.在线)") private java.lang.Integer online; + @TableField(exist = false) + @ApiModelProperty(value = "速度") + private java.lang.Double speed; } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDataService.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDataService.java index f28c57e1c..be4ec65b2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDataService.java @@ -26,4 +26,6 @@ public interface IMechanicalEquipmentPositionDataService extends IService paramMap); + + void jxzhgAddData(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDataServiceImpl.java index 74de32467..d0a84042a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDataServiceImpl.java @@ -33,10 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * @Description: 机械设备定位-实时数据 @@ -101,6 +98,10 @@ public class MechanicalEquipmentPositionDataServiceImpl extends ServiceImpl fenceList = mechanicalEquipmentPositionFenceMapper.selectList(new LambdaQueryWrapper() .eq(MechanicalEquipmentPositionFence::getProjectSn, dev.getProjectSn())); boolean inFence = false; @@ -180,6 +181,46 @@ public class MechanicalEquipmentPositionDataServiceImpl extends ServiceImpl paramMap) { + Map machineInfo = MapUtils.getMap(paramMap, "machine_info"); + Map locationInfo = MapUtils.getMap(paramMap, "location_info"); + Map stateInfo = MapUtils.getMap(paramMap, "state_info"); + MechanicalEquipmentPositionData data = new MechanicalEquipmentPositionData(); + data.setDevSn(MapUtils.getString(machineInfo, "machine_uuid")); + data.setLatitude(MapUtils.getDouble(locationInfo, "latitude")); + data.setLongitude(MapUtils.getDouble(locationInfo, "longitude")); + data.setUploadTime(new Date(MapUtils.getLong(stateInfo, "state_update_time") * 1000L)); + data.setSpeed(MapUtils.getDouble(locationInfo, "speed")); + data.setWorkStatus(getWorkStatusJzhg(MapUtils.getString(stateInfo, "machine_state"))); + data.setEquipmentPower(100D); + data.setEquipmentVoltage(12D); + add(data); + } + + private Integer getWorkStatusJzhg(String hardwareState) { + /* + 'working':工作; + 'off':静止; + 'out_watching':离线; + 'idle':怠速; + */ + //工作状态(1:工作状态,2:怠速状态,3静止状态,4离线状态 + if (StringUtils.isNotBlank(hardwareState)) { + switch (hardwareState) { + case "working": + return 1; + case "off": + return 4; + case "out_watching": + return 4; + case "idle": + return 2; + } + } + return null; + } + private void insertData(PositionAddData data) { MechanicalEquipmentPositionDev dev = mechanicalEquipmentPositionDevMapper.selectOne(new LambdaQueryWrapper() .eq(MechanicalEquipmentPositionDev::getDevSn, data.getDeviceid())); @@ -212,6 +253,9 @@ public class MechanicalEquipmentPositionDataServiceImpl extends ServiceImpl implements IMechanicalEquipmentPositionDevService { @Autowired private MechanicalEquipmentPositionDevMapper mechanicalEquipmentPositionDevMapper; + @Autowired + private MechanicalEquipmentPositionDataMapper mechanicalEquipmentPositionDataMapper; @Override public IPage queryPageList(HashMap paramMap) { @@ -71,6 +75,16 @@ public class MechanicalEquipmentPositionDevServiceImpl extends ServiceImpl dealList(List list) { + for (MechanicalEquipmentPositionDev dev : list) { + MechanicalEquipmentPositionData data = mechanicalEquipmentPositionDataMapper.selectOne(new LambdaQueryWrapper() + .eq(MechanicalEquipmentPositionData::getDevSn, dev.getDevSn()) + .last("limit 1") + .orderByDesc(MechanicalEquipmentPositionData::getUploadTime) + ); + if (data != null) { + dev.setSpeed(data.getSpeed()); + } + } return list; } diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index 765114679..973d84570 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -335,6 +335,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/mechanicalEquipmentPositionData/addData").permitAll() .antMatchers("/xmgl/mechanicalEquipmentPositionData/add").permitAll() .antMatchers("/xmgl/mechanicalEquipmentPositionAlarm/add").permitAll() + .antMatchers("/xmgl/mechanicalEquipmentPositionData/jxzhgAddData").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证. .and()