增加变形位移

master
李一帆 2022-12-11 11:06:03 +08:00
parent a167b6bd38
commit 3e3e662333
13 changed files with 414 additions and 10 deletions

View File

@ -0,0 +1,51 @@
package com.whdc.zhdbaqapi.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.whdc.zhdbaqapi.mapper.DeviceGNSSMapper;
import com.whdc.zhdbaqapi.model.dto.FindPageDto;
import com.whdc.zhdbaqapi.model.dto.IntegerIdDto;
import com.whdc.zhdbaqapi.model.entity.DeviceGNSS;
import com.whdc.zhdbaqapi.model.entity.DeviceInfo;
import com.whdc.zhdbaqapi.utils.ResultJson;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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;
@Api(tags = "GNSS设备信息 - Controller")
@RestController
@RequestMapping("/v1/deviceGNSSInfo")
@Slf4j
public class DeviceGNSSController {
@Autowired
private DeviceGNSSMapper deviceGNSSMapper;
@ApiOperation(value = "新增")
@PostMapping("/save")
public ResultJson<Boolean> save(@RequestBody @Validated DeviceGNSS bean) {
return ResultJson.ok(deviceGNSSMapper.insert(bean) == 1);
}
@ApiOperation(value = "删除")
@PostMapping("/del")
public ResultJson<Boolean> del(@RequestBody @Validated IntegerIdDto bean) {
return ResultJson.ok(deviceGNSSMapper.deleteById(bean.getId()) == 1);
}
@ApiOperation(value = "修改")
@PostMapping("/edit")
public ResultJson<Boolean> edit(@RequestBody @Validated DeviceGNSS bean) {
return ResultJson.ok(deviceGNSSMapper.updateById(bean) == 1);
}
@ApiOperation(value = "分页查询")
@PostMapping(value = "/page")
public ResultJson<IPage<DeviceInfo>> page(@RequestBody FindPageDto findDto) {
return ResultJson.ok(deviceGNSSMapper.page(findDto.getPage()));
}
}

View File

@ -0,0 +1,54 @@
package com.whdc.zhdbaqapi.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.whdc.zhdbaqapi.mapper.DeviceRobotPointMapper;
import com.whdc.zhdbaqapi.model.dto.FindPageDto;
import com.whdc.zhdbaqapi.model.dto.IntegerIdDto;
import com.whdc.zhdbaqapi.model.entity.DeviceInfo;
import com.whdc.zhdbaqapi.model.entity.DeviceRobot;
import com.whdc.zhdbaqapi.utils.ResultJson;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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 java.util.Date;
@Api(tags = "变形机器人信息 - Controller")
@RestController
@RequestMapping("/v1/deviceRobotInfo")
@Slf4j
public class DeviceRobotController {
@Autowired
private DeviceRobotPointMapper deviceRobotPointMapper;
@ApiOperation(value = "新增")
@PostMapping("/save/point")
public ResultJson<Boolean> save(@RequestBody @Validated DeviceRobot bean) {
bean.getPoint().setEpoch(new Date());
return ResultJson.ok(deviceRobotPointMapper.insert(bean.getPoint()) == 1);
}
@ApiOperation(value = "删除")
@PostMapping("/del/point")
public ResultJson<Boolean> del(@RequestBody @Validated IntegerIdDto bean) {
return ResultJson.ok(deviceRobotPointMapper.deleteById(bean.getId()) == 1);
}
@ApiOperation(value = "修改")
@PostMapping("/edit/point")
public ResultJson<Boolean> edit(@RequestBody @Validated DeviceRobot bean) {
return ResultJson.ok(deviceRobotPointMapper.updateById(bean.getPoint()) == 1);
}
@ApiOperation(value = "分页查询")
@PostMapping(value = "/page/point")
public ResultJson<IPage<DeviceInfo>> page(@RequestBody FindPageDto findDto) {
return ResultJson.ok(deviceRobotPointMapper.page(findDto.getPage()));
}
}

View File

@ -0,0 +1,13 @@
package com.whdc.zhdbaqapi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.whdc.zhdbaqapi.model.entity.DeviceGNSS;
import com.whdc.zhdbaqapi.model.entity.SysUser;
import org.apache.ibatis.annotations.Param;
public interface DeviceGNSSMapper extends BaseMapper<DeviceGNSS> {
IPage<DeviceGNSS> page(@Param("page") IPage<SysUser> page);
}

View File

@ -0,0 +1,14 @@
package com.whdc.zhdbaqapi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.whdc.zhdbaqapi.model.entity.DeviceGNSS;
import com.whdc.zhdbaqapi.model.entity.RobotPoint;
import com.whdc.zhdbaqapi.model.entity.SysUser;
import org.apache.ibatis.annotations.Param;
public interface DeviceRobotPointMapper extends BaseMapper<RobotPoint> {
IPage<DeviceGNSS> page(@Param("page") IPage<SysUser> page);
}

View File

@ -0,0 +1,122 @@
package com.whdc.zhdbaqapi.model.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("DSM_GNSS_DEVICE")
@Accessors(chain = true) // chain = true 实现链式调用
@ApiModel(value = "DEVICE_GNSS 对象", description = "GNSS设备信息")
@JsonInclude(JsonInclude.Include.ALWAYS) // 表示序列化非null属性
public class DeviceGNSS implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@ApiParam(value = "主键id")
@ApiModelProperty(value = "主键id", dataType = "java.lang.Integer")
@TableId(value = "ID", type = IdType.AUTO)
protected Integer id;
/**
*
*/
@ApiParam(value = "设备名称")
@ApiModelProperty(value = "设备名称", dataType = "java.lang.String", required = true)
@Excel(name = "设备名称")
@NotEmpty(message = "设备名称")
@TableField("STATION_NAME")
private String stationName;
/**
*
* /
*/
@ApiParam(value = "设备类型")
@ApiModelProperty(value = "设备类型", dataType = "java.lang.String", required = true)
@Excel(name = "设备类型")
@NotEmpty(message = "设备类型")
@TableField("STATION_TYPE")
private String stationType;
/**
*
*/
@ApiParam(value = "开始解算时间")
@ApiModelProperty(value = "开始解算时间", dataType = "java.util.Date")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "开始解算时间")
@TableField("START_TIME")
private Date startTime;
/**
*
*/
@ApiParam(value = "终止解算时间")
@ApiModelProperty(value = "终止解算时间", dataType = "java.util.Date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "终止解算时间")
@TableField("END_TIME")
private Date endTime;
/**
*
*/
@ApiParam(value = "纬度")
@ApiModelProperty(value = "纬度", dataType = "java.math.BigDecimal")
@Excel(name = "纬度")
@TableField("B")
private BigDecimal b;
/**
*
*/
@ApiParam(value = "经度")
@ApiModelProperty(value = "经度", dataType = "java.math.BigDecimal")
@Excel(name = "经度")
@TableField("L")
private BigDecimal l;
/**
* X
*/
@ApiParam(value = "表面位移测点X方向值")
@ApiModelProperty(value = "表面位移测点X方向值", dataType = "java.math.BigDecimal")
@Excel(name = "表面位移测点X方向值")
@TableField("X")
private BigDecimal x;
/**
* Y
*/
@ApiParam(value = "表面位移测点Y方向值")
@ApiModelProperty(value = "表面位移测点Y方向值", dataType = "java.math.BigDecimal")
@Excel(name = "表面位移测点Y方向值")
@TableField("Y")
private BigDecimal y;
/**
* H
*/
@ApiParam(value = "表面位移测点H方向值")
@ApiModelProperty(value = "表面位移测点H方向值", dataType = "java.math.BigDecimal")
@Excel(name = "表面位移测点H方向值")
@TableField("H")
private BigDecimal h;
}

View File

@ -0,0 +1,8 @@
package com.whdc.zhdbaqapi.model.entity;
import lombok.Data;
@Data
public class DeviceRobot {
private RobotPoint point;
}

View File

@ -35,10 +35,7 @@ public class DeviceSLInfo implements Serializable {
public static final String FORMULA_ZHIXIAN = "直线"; //Delta(L) = G*(R1-R0) public static final String FORMULA_ZHIXIAN = "直线"; //Delta(L) = G*(R1-R0)
public static final String FORMULA_DUOXIANGSHI = "多项式"; //Delta(L) = A*R0*R0+B*R0+C-(A*R1*R1+B*R1+C) public static final String FORMULA_DUOXIANGSHI = "多项式"; //Delta(L) = A*R0*R0+B*R0+C-(A*R1*R1+B*R1+C)
public static final BigDecimal G = BigDecimal.valueOf(-0.044333);
public static final BigDecimal A = BigDecimal.valueOf(0.0000001374906702);
public static final BigDecimal B = BigDecimal.valueOf(0.0422409953153613);
public static final BigDecimal C = BigDecimal.valueOf(-184.94391862590900);
/** /**
* id * id
*/ */
@ -122,6 +119,32 @@ public class DeviceSLInfo implements Serializable {
@TableField("MAX_H") @TableField("MAX_H")
private BigDecimal maxH; private BigDecimal maxH;
@ApiParam(value = "直线系数G")
@ApiModelProperty(value = "直线系数G", dataType = "java.math.BigDecimal", required = true)
@Excel(name = "直线系数G")
@TableField("G")
private BigDecimal g;
@ApiParam(value = "多项式系数A")
@ApiModelProperty(value = "多项式系数A", dataType = "java.math.BigDecimal", required = true)
@Excel(name = "多项式系数A")
@TableField("A")
private BigDecimal a;
@ApiParam(value = "多项式系数B")
@ApiModelProperty(value = "多项式系数B", dataType = "java.math.BigDecimal", required = true)
@Excel(name = "多项式系数B")
@TableField("B")
private BigDecimal b;
@ApiParam(value = "多项式系数C")
@ApiModelProperty(value = "多项式系数C", dataType = "java.math.BigDecimal", required = true)
@Excel(name = "多项式系数C")
@TableField("C")
private BigDecimal c;
//endregion //endregion
//region ====================设备读数信息==================== //region ====================设备读数信息====================

View File

@ -0,0 +1,72 @@
package com.whdc.zhdbaqapi.model.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
@Data
@TableName("DSM_POINTS")
@Accessors(chain = true) // chain = true 实现链式调用
@ApiModel(value = "DSM_POINTS 对象", description = "变形机器人信息")
@JsonInclude(JsonInclude.Include.ALWAYS) // 表示序列化非null属性
public class RobotPoint {
/**
* id
*/
@ApiParam(value = "主键id")
@ApiModelProperty(value = "主键id", dataType = "java.lang.Integer")
@TableId(value = "ID", type = IdType.AUTO)
protected Integer id;
/**
* ID
*/
@ApiParam(value = "限差ID")
@ApiModelProperty(value = "限差ID", dataType = "java.lang.Integer")
@Excel(name = "限差ID")
@NotEmpty(message = "限差ID")
@TableField("LIMIT_ID")
private Integer limitId;
/**
* ID
*/
@ApiParam(value = "参考断面ID")
@ApiModelProperty(value = "参考断面ID", dataType = "java.lang.Integer")
@Excel(name = "参考断面ID")
@NotEmpty(message = "参考断面ID")
@TableField("PROFILE_ID")
private Integer profileId;
/**
*
*/
@ApiParam(value = "点名")
@ApiModelProperty(value = "点名", dataType = "java.lang.String", required = true)
@Excel(name = "点名")
@NotEmpty(message = "点名")
@TableField("NAME")
private String name;
/**
*
*/
@ApiParam(value = "点名创建时间")
@ApiModelProperty(value = "点名创建时间", dataType = "java.util.Date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "点名创建时间")
@TableField("EPOCH")
private Date epoch;
}

View File

@ -0,0 +1,20 @@
package com.whdc.zhdbaqapi.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@Data
public class RobotProfile {
/**
* id
*/
@ApiParam(value = "主键id")
@ApiModelProperty(value = "主键id", dataType = "java.lang.Integer")
@TableId(value = "ID", type = IdType.AUTO)
protected Integer id;
}

View File

@ -56,6 +56,9 @@ public class DeviceSLDataVo {
@ApiModelProperty(value = "", dataType = "java.math.BigDecimal") @ApiModelProperty(value = "", dataType = "java.math.BigDecimal")
private BigDecimal dataA; private BigDecimal dataA;
@ApiParam(value = "")
@ApiModelProperty(value = "", dataType = "java.math.BigDecimal")
private BigDecimal q;
/** /**
* *
*/ */

View File

@ -130,22 +130,26 @@ public class DeviceSLDataServiceImpl extends ServiceImpl<DeviceSLDataMapper, Dev
String formula = di.getFormula(); String formula = di.getFormula();
BigDecimal R0 = di.getReading0();// initialReading 初始读数 BigDecimal R0 = di.getReading0();// initialReading 初始读数
BigDecimal R1 = record.getDataC();// initialReading 初始读数 BigDecimal R1 = record.getDataC();// initialReading 初始读数
BigDecimal G = DeviceSLInfo.G; // calibrationCoefficient 率定系数(G)
if (R0 == null || formula == null) { if (R0 == null || formula == null) {
log.debug("参数数据不完整"); log.debug("参数数据不完整");
} else { } else {
BigDecimal L; BigDecimal L;
if (formula.equals(DeviceSLInfo.FORMULA_ZHIXIAN)) { if (formula.equals(DeviceSLInfo.FORMULA_ZHIXIAN)) {
BigDecimal G = di.getG();
//Delta(L) = G*(R1-R0) //Delta(L) = G*(R1-R0)
L = G.multiply(R1.subtract(R0)); L = G.multiply(R1.subtract(R0));
} else if (formula.equals(DeviceSLInfo.FORMULA_DUOXIANGSHI)) { } else if (formula.equals(DeviceSLInfo.FORMULA_DUOXIANGSHI)) {
BigDecimal A = di.getA();
BigDecimal B = di.getB();
BigDecimal C = di.getC();
//Delta(L) = A*R0*R0+B*R0+C-(A*R1*R1+B*R1+C) //Delta(L) = A*R0*R0+B*R0+C-(A*R1*R1+B*R1+C)
BigDecimal A = DeviceSLInfo.A.multiply(R0.multiply(R0)); BigDecimal a = A.multiply(R0.multiply(R0));
BigDecimal B = DeviceSLInfo.B.multiply(R0); BigDecimal b = B.multiply(R0);
BigDecimal D = DeviceSLInfo.A.multiply(R1.multiply(R1)); BigDecimal d = A.multiply(R1.multiply(R1));
BigDecimal E = DeviceSLInfo.B.multiply(R1); BigDecimal e = B.multiply(R1);
L = A.add(B).add(DeviceSLInfo.C).subtract(D).subtract(E); L = a.add(b).add(C).subtract(d).subtract(e);
} else { } else {
L = null; L = null;
} }

View File

@ -0,0 +1,10 @@
<?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.whdc.zhdbaqapi.mapper.DeviceGNSSMapper">
<select id="page" resultType="com.whdc.zhdbaqapi.model.entity.DeviceGNSS">
SELECT *
FROM "DAM_SAFE"."DSM_GNSS_DEVICE"
</select>
</mapper>

View File

@ -0,0 +1,10 @@
<?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.whdc.zhdbaqapi.mapper.DeviceRobotPointMapper">
<select id="page" resultType="com.whdc.zhdbaqapi.model.entity.RobotPoint">
SELECT *
FROM "DAM_SAFE"."DSM_POINTS"
</select>
</mapper>