塔吊设备页面接口

This commit is contained in:
fl 2025-04-18 14:51:48 +08:00
parent 4cf272fbe3
commit 5014975bb7
8 changed files with 518 additions and 0 deletions

View File

@ -0,0 +1,159 @@
package com.bonus.base.common.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
public interface JsonHelper {
public String jsonSerialize(Object value);
public <T> T jsonDeserialize(String value, Class<?> tClass);
/**
* 将任意bean转换成json字符串
* fast json
* @param bean
* @param <T>
* @return
*/
public static <T> String beanToJsonStr(T bean) {
String jsonStr = JSON.toJSONString(bean);
return jsonStr;
}
/**
* 把一个json字符串转换成bean对象
* fast json
* @param str
* @param <T>
* @return
*/
public static <T> T jsonStrToBean(String str, Class<T> clazz) {
T bean = JSON.parseObject(str, clazz);
return bean;
}
/**
* 把一个jsonObj转换成bean对象
* fast json
* @param jsonObj
* @param <T>
* @return
*/
public static <T> T jsonObjToBean(JSONObject jsonObj, Class<T> clazz) {
String s = jsonObj.toJSONString();
T bean = JSON.parseObject(s, clazz);
return bean;
}
/**
* 把一个bean对象转换成jsonObj
* fast json
* @param bean
* @param <T>
* @return
*/
public static <T> JSONObject beanToJsonObj(T bean) {
Object o = JSON.toJSON(bean);
return (JSONObject) o;
}
/**
* 把一个jsonStr转换成jsonObj
* fast json
* @param str
* @return
*/
public static JSONObject jsonStrToJsonObj(String str) {
Object o = JSON.parseObject(str);
return (JSONObject) o;
}
/**
* 把一个jsonObj转换成jsonStr
* fast json
* @param jsonObj
* @return
*/
public static String jsonObjToJsonStr(JSONObject jsonObj) {
String s = jsonObj.toJSONString();
return s;
}
/**
* 把一个beanList对象转换成jsonArrStr
* fast json
* @param beanList
* @param <T>
* @return
*/
public static <T> JSONArray beanListToJsonArrStr(List<T> beanList) {
Object o = JSON.toJSON(beanList);
return (JSONArray) o;
}
/**
* 把一个jsonArrStr转换成beanList对象
* fast json
* @param jsonArrStr
* @param <T>
* @return
*/
public static <T> List<T> jsonArrStrToBeanList(String jsonArrStr,Class<T> clazz) {
List<T> ts = JSON.parseArray(jsonArrStr, clazz);
return ts;
}
/**
* 把一个JsonArr转换成JsonArrStr
* fast json
* @param jsonArr
* @return
*/
public static String jsonArrToJsonArrStr(JSONArray jsonArr) {
String s = JSON.toJSONString(jsonArr);
return s;
}
/**
* 把一个JsonArrStr文本转换成JsonArr
* fast json
* @param jsonArrStr
* @return
*/
public static JSONArray jsonArrStrToJsonArr(String jsonArrStr) {
Object o = JSON.parse(jsonArrStr);
return (JSONArray) o;
}
/**
* 把一个JsonArr转换成beanList
* fast json
* @param jsonArr
* @return
*/
public static <T> List<T> jsonArrToBeanList(JSONArray jsonArr,Class<T> clazz) {
String s = JSON.toJSONString(jsonArr);
List<T> ts = JSON.parseArray(s, clazz);
return ts;
}
/**
* 把一个beanList文本转换成JsonArr
* fast json
* @param beanList
* @return
*/
public static <T> JSONArray beanListToJsonArr(List<T> beanList) {
Object o = JSON.toJSON(beanList);
return (JSONArray) o;
}
}

View File

@ -22,5 +22,10 @@ public class TypeCodeUtils {
*/
public final static String SJK_CODE="9000300";
/**
* 塔吊设备
*/
public final static String TC_CODE="9000400";
}

View File

@ -0,0 +1,85 @@
package com.bonus.base.screen.controller;
import com.bonus.base.basic.domain.CollectDevVo;
import com.bonus.base.basic.domain.ConstInfoVo;
import com.bonus.base.common.utils.TypeCodeUtils;
import com.bonus.base.screen.domain.DeviceAlarmVo;
import com.bonus.base.screen.domain.ProjectOverviewVo;
import com.bonus.base.screen.domain.TowerCraneInfoVo;
import com.bonus.base.screen.service.ExcavationDetectionService;
import com.bonus.base.screen.service.TowerCraneDetectionService;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 塔吊监测
* @author fl
* @date 2025/4/18
*/
@Slf4j
@RestController
@RequestMapping("/towerCraneDetection")
public class TowerCraneDetectionController extends BaseController {
@Resource
private TowerCraneDetectionService service;
@ApiOperation(value = "塔吊设备列表")
@PostMapping("/getConstDeviceList")
public AjaxResult getCollectDeviceList(@RequestBody ConstInfoVo constInfoVo) {
try {
List<ConstInfoVo> collectDevVoList = service.getConstDeviceList(constInfoVo);
return success(collectDevVoList);
}catch (Exception e){
log.error("查询塔吊设备列表失败",e.getMessage());
return error("查询塔吊设备列表失败");
}
}
@ApiOperation(value = "塔吊设备信息")
@PostMapping("/getConstDeviceMsgById")
public AjaxResult getConstDeviceMsgById(@RequestBody ConstInfoVo constInfoVo) {
try {
TowerCraneInfoVo vo = service.getConstDeviceMsgById(constInfoVo);
return success(vo);
}catch (Exception e){
log.error("查询塔吊设备信息失败",e.getMessage());
return error("查询塔吊设备信息失败");
}
}
@ApiOperation(value = "塔吊实时运行信息")
@PostMapping("/getTowerCraneRunMsgById")
public AjaxResult getTowerCraneRunMsgById(@RequestBody ConstInfoVo constInfoVo) {
try {
return service.getTowerCraneRunMsgById(constInfoVo);
}catch (Exception e){
log.error("获取塔吊实时运行信息失败",e.getMessage());
return error("塔吊实时运行信息失败");
}
}
@ApiOperation(value = "塔吊报警信息")
@PostMapping("/getTowerCraneAlarmList")
public AjaxResult getTowerCraneAlarmList(@RequestBody ConstInfoVo constInfoVo) {
try {
List<DeviceAlarmVo> deviceAlarmVoList = service.getTowerCraneAlarmList(constInfoVo);
return success(deviceAlarmVoList);
}catch (Exception e){
log.error("查询塔吊报警信息失败",e.getMessage());
return error("查询塔吊报警信息失败");
}
}
}

View File

@ -0,0 +1,58 @@
package com.bonus.base.screen.domain;
import lombok.Data;
/**
* @author fly
* 塔吊设备信息
*/
@Data
public class TowerCraneInfoVo {
/**
* 设备名称
*/
private String name;
/**
* 设备编号
*/
private String num;
/**
* 设备厂家
*/
private String manufacturer;
/**
* 型号规格
*/
private String model;
/**
* 所在班组
*/
private String team;
/**
* 安装单位
*/
private String installationUnit;
/**
* 安装时间
*/
private String installDate;
/**
* 塔高
*/
private Double towerHeight;
/**
* 臂长
*/
private Integer boomLength;
private String faceMachineNum;
}

View File

@ -0,0 +1,38 @@
package com.bonus.base.screen.mapper;
import com.bonus.base.basic.domain.CollectDevVo;
import com.bonus.base.basic.domain.ConstInfoVo;
import com.bonus.base.screen.domain.DeviceAlarmVo;
import com.bonus.base.screen.domain.MapValueVo;
import java.util.List;
public interface TowerCraneDetectionMapper {
/**
* 查询塔吊设备列表
* @param constInfoVo
* @return
*/
List<ConstInfoVo> getConstDeviceList(ConstInfoVo constInfoVo);
/**
* 塔吊报警信息
* @param constInfoVo
* @return
*/
List<DeviceAlarmVo> getTowerCraneAlarmList(ConstInfoVo constInfoVo);
/**
* 根据id查询具体塔吊设备信息
* @param constInfoVo
* @return
*/
ConstInfoVo getConstDeviceMsgById(ConstInfoVo constInfoVo);
/**
* 根据id查询具体实时运行信息
* @param constInfoVo
* @return
*/
List<MapValueVo> getTowerCraneRunMsgById(ConstInfoVo constInfoVo);
}

View File

@ -0,0 +1,39 @@
package com.bonus.base.screen.service;
import com.bonus.base.basic.domain.CollectDevVo;
import com.bonus.base.basic.domain.ConstInfoVo;
import com.bonus.base.screen.domain.DeviceAlarmVo;
import com.bonus.base.screen.domain.ProjectOverviewVo;
import com.bonus.base.screen.domain.TowerCraneInfoVo;
import com.bonus.common.core.web.domain.AjaxResult;
import java.util.List;
public interface TowerCraneDetectionService {
/**
* 查询塔吊设备列表
* @param constInfoVo
* @return
*/
List<ConstInfoVo> getConstDeviceList(ConstInfoVo constInfoVo);
/**
* 塔吊报警信息
* @param constInfoVo
* @return
*/
List<DeviceAlarmVo> getTowerCraneAlarmList(ConstInfoVo constInfoVo);
/**
* 根据id查询具体塔吊设备信息
* @param constInfoVo
* @return
*/
TowerCraneInfoVo getConstDeviceMsgById(ConstInfoVo constInfoVo);
/**
* 根据id查询具体实时运行信息
* @param constInfoVo
* @return
*/
AjaxResult getTowerCraneRunMsgById(ConstInfoVo constInfoVo);
}

View File

@ -0,0 +1,81 @@
package com.bonus.base.screen.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.bonus.base.basic.domain.ConstInfoVo;
import com.bonus.base.common.utils.JsonHelper;
import com.bonus.base.common.utils.TypeCodeUtils;
import com.bonus.base.screen.domain.DeviceAlarmVo;
import com.bonus.base.screen.domain.MapValueVo;
import com.bonus.base.screen.domain.TowerCraneInfoVo;
import com.bonus.base.screen.mapper.TowerCraneDetectionMapper;
import com.bonus.base.screen.service.TowerCraneDetectionService;
import com.bonus.common.core.web.domain.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author fl
* @date 2025/4/18
*/
@Slf4j
@Service
public class TowerCraneDetectionServiceImpl implements TowerCraneDetectionService {
@Resource
private TowerCraneDetectionMapper mapper;
/**
* 查询塔吊设备列表
* @param constInfoVo
* @return
*/
@Override
public List<ConstInfoVo> getConstDeviceList(ConstInfoVo constInfoVo) {
//设置查询类型
constInfoVo.setTypeCode(TypeCodeUtils.TC_CODE);
List<ConstInfoVo> collectDevVoList = mapper.getConstDeviceList(constInfoVo);
return collectDevVoList;
}
/**
* 塔吊报警信息
* @param constInfoVo
* @return
*/
@Override
public List<DeviceAlarmVo> getTowerCraneAlarmList(ConstInfoVo constInfoVo) {
List<DeviceAlarmVo> deviceAlarmVoList = mapper.getTowerCraneAlarmList(constInfoVo);
return deviceAlarmVoList;
}
/**
* 根据id查询具体塔吊设备信息
* @param constInfoVo
* @return
*/
@Override
public TowerCraneInfoVo getConstDeviceMsgById(ConstInfoVo constInfoVo) {
ConstInfoVo c = mapper.getConstDeviceMsgById(constInfoVo);
TowerCraneInfoVo deviceDetail = new TowerCraneInfoVo();
if(c != null && c.getConfigData() != null){
JSONObject jsonObject = JsonHelper.jsonStrToJsonObj(c.getConfigData());
deviceDetail = JsonHelper.jsonObjToBean(jsonObject.getJSONObject("deviceDetail"), TowerCraneInfoVo.class);
}
return deviceDetail;
}
/**
* 根据id查询具体实时运行信息
* @param constInfoVo
* @return
*/
@Override
public AjaxResult getTowerCraneRunMsgById(ConstInfoVo constInfoVo) {
List<MapValueVo> list = mapper.getTowerCraneRunMsgById(constInfoVo);
return AjaxResult.success(list);
}
}

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.base.screen.mapper.TowerCraneDetectionMapper">
<select id="getConstDeviceList" resultType="com.bonus.base.basic.domain.ConstInfoVo">
SELECT
tci.id,
tci.`name`,
tci.`code`,
tcd.is_online,
tcd.dev_location
FROM
tb_const_info tci
LEFT JOIN tb_collect_device tcd ON tci.id = tcd.const_id
WHERE
tci.type_code = #{typeCode}
</select>
<select id="getConstDeviceMsgById" resultType="com.bonus.base.basic.domain.ConstInfoVo">
SELECT
tci.config_data
FROM
tb_const_info tci
WHERE
tci.id = #{id}
</select>
<select id="getTowerCraneRunMsgById" resultType="com.bonus.base.screen.domain.MapValueVo">
SELECT
tcda.attr_name as `name`,
tcda.attr_val as `value`
FROM
tb_const_info tci
LEFT JOIN tb_collect_device tcd ON tci.id = tcd.const_id
LEFT JOIN tb_collect_device_attr tcda ON tcda.dev_id = tcd.id
WHERE
tci.id = #{id}
</select>
<select id="getTowerCraneAlarmList" resultType="com.bonus.base.screen.domain.DeviceAlarmVo">
SELECT
tcdh.create_time AS createTime,
tcdh.remark AS remark,
tcd.dev_name AS devName
FROM
tb_const_info tci
LEFT JOIN tb_collect_device tcd ON tci.id = tcd.const_id
LEFT JOIN tb_collect_device_his tcdh ON tcdh.dev_id = tcd.id
WHERE
tci.type_code = #{typeCode}
</select>
</mapper>