فهرست منبع

质检-断面仪
1、新增接口开发(30%)

LHB 2 روز پیش
والد
کامیت
bd0dd8230e
19فایلهای تغییر یافته به همراه713 افزوده شده و 0 حذف شده
  1. 1 0
      blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java
  2. 82 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerData.java
  3. 117 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerOffset.java
  4. 91 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerStandardSectionBean.java
  5. 43 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/profiler/ProfilerResult.java
  6. 16 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/profiler/ProfilerSaveDTO.java
  7. 54 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/QProfilerController.java
  8. 18 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerDataMapper.java
  9. 25 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerDataMapper.xml
  10. 18 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerOffsetMapper.java
  11. 33 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerOffsetMapper.xml
  12. 18 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerStandardSectionBeanMapper.java
  13. 28 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerStandardSectionBeanMapper.xml
  14. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerDataService.java
  15. 17 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerOffsetService.java
  16. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerStandardSectionBeanService.java
  17. 22 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerDataServiceImpl.java
  18. 82 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerOffsetServiceImpl.java
  19. 22 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerStandardSectionBeanServiceImpl.java

+ 1 - 0
blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java

@@ -69,6 +69,7 @@ public class AuthProvider {
         DEFAULT_SKIP_URL.add("/getArchiveToken"); //成渝第三方登录获取档案系统tokne
         DEFAULT_SKIP_URL.add("/meeting/**");//DingDing会议接口
         DEFAULT_SKIP_URL.add("/hczc/api/meter/**");//重庆高速计量获取分部分项划分
+        DEFAULT_SKIP_URL.add("/profiler/save");//成渝断面仪新增接口开放
 
     }
 

+ 82 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerData.java

@@ -0,0 +1,82 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 断面仪-测量点数组
+ * @author LHB
+ * @TableName q_profiler_data
+ */
+@TableName(value ="q_profiler_data")
+@Data
+public class QProfilerData {
+    /**
+     * 
+     */
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 基础信息id
+     */
+    private Long offsetId;
+
+    /**
+     * 测点角度
+     */
+    private String angle;
+
+    /**
+     * 超/欠挖值
+     */
+    private String backBreak;
+
+    /**
+     * 距离
+     */
+    private String dist;
+
+    /**
+     * x坐标
+     */
+    private String x;
+
+    /**
+     * z坐标
+     */
+    private String z;
+
+    /**
+     *  创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     *  创建人
+     */
+    private Long createUser;
+
+    /**
+     *  修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     *  修改人
+     */
+    private Long updateUser;
+
+}

+ 117 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerOffset.java

@@ -0,0 +1,117 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 断面仪-基础信息+测量者信息
+ * @author LHB
+ * @TableName q_profiler_offset
+ */
+@TableName(value ="q_profiler_offset")
+@Data
+public class QProfilerOffset {
+    /**
+     * 
+     */
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 断面仪测量设备编码或名称
+     */
+    private String deviceCode;
+
+    /**
+     * 仪器高度(米)
+     */
+    private String deviceHeight;
+
+    /**
+     * 椭圆半径
+     */
+    private String ellipseRadius;
+
+    /**
+     * 斜坡
+     */
+    private String slope;
+
+    /**
+     * x方向偏移量(米)
+     */
+    private String x;
+
+    /**
+     * z方向偏移量(米)
+     */
+    private String z;
+
+    /**
+     * 隧道名称
+     */
+    private String infoChannelName;
+
+    /**
+     * 施工单位
+     */
+    private String infoConstructionUnit;
+
+    /**
+     * 测量时间
+     */
+    private String infoDate;
+
+    /**
+     * 工程名称
+     */
+    private String infoNameOfProject;
+
+    /**
+     * 测量者
+     */
+    private String infoUserName;
+
+    /**
+     * 里程号
+     */
+    private String infoMileageNumber;
+
+    /**
+     * 文件地址
+     */
+    private String fileUrl;
+
+    /**
+     *  创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     *  创建人
+     */
+    private Long createUser;
+
+    /**
+     *  修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     *  修改人
+     */
+    private Long updateUser;
+
+}

+ 91 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/QProfilerStandardSectionBean.java

@@ -0,0 +1,91 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 断面仪-标准断面
+ * @author LHB
+ * @TableName q_profiler_standard_section_bean
+ */
+@TableName(value ="q_profiler_standard_section_bean")
+@Data
+public class QProfilerStandardSectionBean {
+    /**
+     * 
+     */
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 基础信息id
+     */
+    private Long offsetId;
+
+    /**
+     * 方向,true为顺时针,false为逆时针 
+     */
+    private String direction;
+
+    /**
+     * 终角
+     */
+    private String endAngle;
+
+    /**
+     * 半径
+     */
+    private String radius;
+
+    /**
+     * 查询
+     */
+    private String select;
+
+    /**
+     * 起角(米)
+     */
+    private String startAngle;
+
+    /**
+     * 圆心x(米)
+     */
+    private String x;
+
+    /**
+     * 圆心z(米)
+     */
+    private String y;
+
+    /**
+     *  创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     *  创建人
+     */
+    private Long createUser;
+
+    /**
+     *  修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     *  修改人
+     */
+    private Long updateUser;
+}

+ 43 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/profiler/ProfilerResult.java

@@ -0,0 +1,43 @@
+package org.springblade.manager.entity.profiler;
+
+import lombok.Data;
+
+/**
+ * @author LHB
+ */
+@Data
+public class ProfilerResult {
+    private String success;
+    private ProfilerError error;
+    private Object result;
+
+    @Data
+    static class ProfilerError{
+        private String code;
+        private String message;
+        private String details;
+
+        public ProfilerError(String code, String message, String details) {
+            this.code = code;
+            this.message = message;
+            this.details = details;
+        }
+    }
+
+
+    public static ProfilerResult success() {
+        ProfilerResult r = new ProfilerResult();
+        r.setSuccess("true");
+        r.setResult(null);
+        return r;
+    }
+
+
+    public static ProfilerResult error(String code, String message, String details) {
+        ProfilerResult r = new ProfilerResult();
+        r.setSuccess("false");
+        r.setError(new ProfilerError(code, message, details));
+        return r;
+    }
+
+}

+ 16 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/profiler/ProfilerSaveDTO.java

@@ -0,0 +1,16 @@
+package org.springblade.manager.entity.profiler;
+
+import lombok.Data;
+
+/**
+ * @author LHB
+ * 第三方推送数据结构
+ */
+@Data
+public class ProfilerSaveDTO {
+    private String appKey;
+    private Long timestamp;
+    private String sign;
+    private String deviceCode;
+    private String data;
+}

+ 54 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/QProfilerController.java

@@ -0,0 +1,54 @@
+package org.springblade.manager.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.manager.entity.QProfilerOffset;
+import org.springblade.manager.entity.profiler.ProfilerResult;
+import org.springblade.manager.entity.profiler.ProfilerSaveDTO;
+import org.springblade.manager.service.QProfilerOffsetService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @author LHB
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/profiler")
+@Api(value = "质检-综合管理-断面仪", tags = "质检-综合管理-断面仪")
+public class QProfilerController {
+
+    private final QProfilerOffsetService offsetService;
+
+    /**
+     * 新增接口
+     *  第三方推送数据过来
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "新增断面仪数据", notes = "")
+    public ProfilerResult add(ProfilerSaveDTO save,
+                              @RequestParam(value = "file", required = false) MultipartFile file) {
+        if(StringUtil.isBlank(save.getAppKey())){
+            return ProfilerResult.error("1001", "appKey不能为空", "");
+        }
+        if(save.getTimestamp() == null){
+            return ProfilerResult.error("1002", "timestamp不能为空", "");
+        }
+        if(StringUtil.isBlank(save.getSign())){
+            return ProfilerResult.error("1003", "sign不能为空", "");
+        }
+        if(StringUtil.isBlank(save.getDeviceCode())){
+            return ProfilerResult.error("1004", "deviceCode不能为空", "");
+        }
+        if(StringUtil.isBlank(save.getData())){
+            return ProfilerResult.error("1005", "data不能为空", "");
+        }
+        return offsetService.save(save, file);
+    }
+
+}

+ 18 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerDataMapper.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.mapper;
+
+import org.springblade.manager.entity.QProfilerData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_data(断面仪-测量点数组)】的数据库操作Mapper
+* @createDate 2025-10-27 15:58:56
+* @Entity org.springblade.manager.entity.QProfilerData
+*/
+public interface QProfilerDataMapper extends BaseMapper<QProfilerData> {
+
+}
+
+
+
+

+ 25 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerDataMapper.xml

@@ -0,0 +1,25 @@
+<?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="org.springblade.manager.mapper.QProfilerDataMapper">
+
+    <resultMap id="BaseResultMap" type="org.springblade.manager.entity.QProfilerData">
+            <id property="id" column="id" />
+            <result property="offsetId" column="offset_id" />
+            <result property="angle" column="angle" />
+            <result property="backBreak" column="back_break" />
+            <result property="dist" column="dist" />
+            <result property="x" column="x" />
+            <result property="z" column="z" />
+            <result property="createTime" column="create_time" />
+            <result property="createUser" column="create_user" />
+            <result property="updateTime" column="update_time" />
+            <result property="updateUser" column="update_user" />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,offset_id,angle,back_break,dist,x,
+        z,create_time,create_user,update_time,update_user
+    </sql>
+</mapper>

+ 18 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerOffsetMapper.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.mapper;
+
+import org.springblade.manager.entity.QProfilerOffset;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_offset(断面仪-基础信息+测量者信息)】的数据库操作Mapper
+* @createDate 2025-10-27 15:58:56
+* @Entity org.springblade.manager.entity.QProfilerOffset
+*/
+public interface QProfilerOffsetMapper extends BaseMapper<QProfilerOffset> {
+
+}
+
+
+
+

+ 33 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerOffsetMapper.xml

@@ -0,0 +1,33 @@
+<?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="org.springblade.manager.mapper.QProfilerOffsetMapper">
+
+    <resultMap id="BaseResultMap" type="org.springblade.manager.entity.QProfilerOffset">
+            <id property="id" column="id" />
+            <result property="deviceCode" column="device_code" />
+            <result property="deviceHeight" column="device_height" />
+            <result property="ellipseRadius" column="ellipse_radius" />
+            <result property="slope" column="slope" />
+            <result property="x" column="x" />
+            <result property="z" column="z" />
+            <result property="infoChannelName" column="info_channel_name" />
+            <result property="infoConstructionUnit" column="info_construction_unit" />
+            <result property="infoDate" column="info_date" />
+            <result property="infoNameOfProject" column="info_name_of_project" />
+            <result property="infoUserName" column="info_user_name" />
+            <result property="infoMileageNumber" column="info_mileage_number" />
+            <result property="fileUrl" column="file_url" />
+            <result property="createTime" column="create_time" />
+            <result property="createUser" column="create_user" />
+            <result property="updateTime" column="update_time" />
+            <result property="updateUser" column="update_user" />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,device_code,device_height,ellipse_radius,slope,x,z,
+        info_channel_name,info_construction_unit,info_date,info_name_of_project,info_user_name,
+        info_mileage_number,file_url,create_time,create_user,update_time,update_user
+    </sql>
+</mapper>

+ 18 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerStandardSectionBeanMapper.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.mapper;
+
+import org.springblade.manager.entity.QProfilerStandardSectionBean;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_standard_section_bean(断面仪-标准断面)】的数据库操作Mapper
+* @createDate 2025-10-27 15:58:56
+* @Entity org.springblade.manager.entity.QProfilerStandardSectionBean
+*/
+public interface QProfilerStandardSectionBeanMapper extends BaseMapper<QProfilerStandardSectionBean> {
+
+}
+
+
+
+

+ 28 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/QProfilerStandardSectionBeanMapper.xml

@@ -0,0 +1,28 @@
+<?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="org.springblade.manager.mapper.QProfilerStandardSectionBeanMapper">
+
+    <resultMap id="BaseResultMap" type="org.springblade.manager.entity.QProfilerStandardSectionBean">
+            <id property="id" column="id" />
+            <result property="offsetId" column="offset_id" />
+            <result property="direction" column="direction" />
+            <result property="endAngle" column="end_angle" />
+            <result property="radius" column="radius" />
+            <result property="select" column="select" />
+            <result property="startAngle" column="start_angle" />
+            <result property="x" column="x" />
+            <result property="y" column="y" />
+            <result property="createTime" column="create_time" />
+            <result property="createUser" column="create_user" />
+            <result property="updateTime" column="update_time" />
+            <result property="updateUser" column="update_user" />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,offset_id,direction,end_angle,radius,select,
+        start_angle,x,y,create_time,create_user,
+        update_time,update_user
+    </sql>
+</mapper>

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerDataService.java

@@ -0,0 +1,13 @@
+package org.springblade.manager.service;
+
+import org.springblade.manager.entity.QProfilerData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_data(断面仪-测量点数组)】的数据库操作Service
+* @createDate 2025-10-27 15:58:56
+*/
+public interface QProfilerDataService extends IService<QProfilerData> {
+
+}

+ 17 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerOffsetService.java

@@ -0,0 +1,17 @@
+package org.springblade.manager.service;
+
+import org.springblade.manager.entity.QProfilerOffset;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.manager.entity.profiler.ProfilerResult;
+import org.springblade.manager.entity.profiler.ProfilerSaveDTO;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_offset(断面仪-基础信息+测量者信息)】的数据库操作Service
+* @createDate 2025-10-27 15:58:56
+*/
+public interface QProfilerOffsetService extends IService<QProfilerOffset> {
+
+    ProfilerResult save(ProfilerSaveDTO save, MultipartFile file);
+}

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/QProfilerStandardSectionBeanService.java

@@ -0,0 +1,13 @@
+package org.springblade.manager.service;
+
+import org.springblade.manager.entity.QProfilerStandardSectionBean;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_standard_section_bean(断面仪-标准断面)】的数据库操作Service
+* @createDate 2025-10-27 15:58:56
+*/
+public interface QProfilerStandardSectionBeanService extends IService<QProfilerStandardSectionBean> {
+
+}

+ 22 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerDataServiceImpl.java

@@ -0,0 +1,22 @@
+package org.springblade.manager.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.manager.entity.QProfilerData;
+import org.springblade.manager.service.QProfilerDataService;
+import org.springblade.manager.mapper.QProfilerDataMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_data(断面仪-测量点数组)】的数据库操作Service实现
+* @createDate 2025-10-27 15:58:56
+*/
+@Service
+public class QProfilerDataServiceImpl extends ServiceImpl<QProfilerDataMapper, QProfilerData>
+    implements QProfilerDataService{
+
+}
+
+
+
+

+ 82 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerOffsetServiceImpl.java

@@ -0,0 +1,82 @@
+package org.springblade.manager.service.impl;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.druid.support.json.JSONUtils;
+import com.alibaba.nacos.common.utils.MD5Utils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.manager.entity.QProfilerOffset;
+import org.springblade.manager.entity.profiler.ProfilerResult;
+import org.springblade.manager.entity.profiler.ProfilerSaveDTO;
+import org.springblade.manager.service.QProfilerOffsetService;
+import org.springblade.manager.mapper.QProfilerOffsetMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.time.Instant;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_offset(断面仪-基础信息+测量者信息)】的数据库操作Service实现
+* @createDate 2025-10-27 15:58:56
+*/
+@Service
+public class QProfilerOffsetServiceImpl extends ServiceImpl<QProfilerOffsetMapper, QProfilerOffset>
+    implements QProfilerOffsetService{
+
+    //第三方的appKey 固定值
+    private final static  String APP_KEY = "QDM123";
+    //第三方密钥
+    private final static  String APP_SECRET = "MDc1YWI4OTMtY2M0NC00NDViLTlkZmUtYzAzZTVmZTUxMmE1";
+    // 时间戳有效期(秒),防止重放攻击 // 5分钟
+    private static final long TIMESTAMP_EXPIRE = 300;
+
+
+    @Override
+    public ProfilerResult save(ProfilerSaveDTO save, MultipartFile file) {
+        if(!save.getAppKey().equals(APP_KEY)){
+            return ProfilerResult.error("10006","appKey错误","");
+        }
+        String s = MD5Utils.md5Hex(APP_KEY + save.getTimestamp() + APP_SECRET, "UTF-8");
+        if(!s.equals(save.getSign())){
+            return ProfilerResult.error("10007","sign错误","");
+        }
+        if(!isValidTimestamp(save.getTimestamp())){
+            return ProfilerResult.error("10008","签名验证失败:timeTicks的时间和当前时间必须小于30分钟","");
+        }
+        //断面仪测量设备编码或名称
+        String deviceCode = save.getDeviceCode();
+        //字符串转json
+        JSONObject jsonObject = JSONUtil.parseObj(deviceCode);
+        //获取基础信息 + 测量者信息
+
+
+        System.out.println(save);
+
+        return null;
+    }
+
+    /**
+     * 验证时间戳有效性
+     * @param timestamp 时间戳字符串
+     * @return 是否有效
+     */
+    private static boolean isValidTimestamp(Long timestamp) {
+        try {
+            long currentTs = Instant.now().getEpochSecond();
+            // 检查时间戳是否在有效期内(前后5分钟)
+            return Math.abs(currentTs - timestamp) <= TIMESTAMP_EXPIRE;
+        } catch (NumberFormatException e) {
+            return false;
+        }
+    }
+
+    public static void main(String[] args) {
+        System.out.println(MD5Utils.md5Hex("QDM123" + 1761554359 + "MDc1YWI4OTMtY2M0NC00NDViLTlkZmUtYzAzZTVmZTUxMmE1", "UTF-8"));
+    }
+}
+
+
+
+

+ 22 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/QProfilerStandardSectionBeanServiceImpl.java

@@ -0,0 +1,22 @@
+package org.springblade.manager.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.manager.entity.QProfilerStandardSectionBean;
+import org.springblade.manager.service.QProfilerStandardSectionBeanService;
+import org.springblade.manager.mapper.QProfilerStandardSectionBeanMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author LHB
+* @description 针对表【q_profiler_standard_section_bean(断面仪-标准断面)】的数据库操作Service实现
+* @createDate 2025-10-27 15:58:56
+*/
+@Service
+public class QProfilerStandardSectionBeanServiceImpl extends ServiceImpl<QProfilerStandardSectionBeanMapper, QProfilerStandardSectionBean>
+    implements QProfilerStandardSectionBeanService{
+
+}
+
+
+
+