Преглед изворни кода

任务提交 停泊点上报数据 加入起点距和水位

秦国才 пре 1 година
родитељ
комит
8a4423c51f

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/MeasureUpload.java

@@ -55,5 +55,15 @@ public class MeasureUpload implements Serializable {
      */
     private String taskid;
 
+    /**
+     * 水位
+     */
+    private Double waterlevel;
+
+    /**
+     * 起点距
+     */
+    private Double pointX;
+
 }
 

+ 28 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SaveDataServiceImpl.java

@@ -1,14 +1,21 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.TypeReference;
 import com.ruoyi.system.domain.*;
+import com.ruoyi.system.dto.PrintExcelDTO;
 import com.ruoyi.system.mapper.*;
+import com.ruoyi.system.service.ReportDataService;
 import com.ruoyi.system.service.SaveDataService;
 import lombok.extern.slf4j.Slf4j;
+import org.aspectj.weaver.Position;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.List;
 
 /**
  * classname: 站点信息
@@ -39,6 +46,12 @@ public class SaveDataServiceImpl implements SaveDataService {
     @Resource
     private WaterLevelMapper waterLevelMapper;
 
+    @Resource
+    ReportDataService reportDataService;
+
+    @Resource
+    private BerthingPointConfigMapper berthingPointConfigMapper;
+
     @Override
     public void saveDate(String data, String topics) {
         String[] topicsList = topics.split("/");
@@ -191,9 +204,23 @@ public class SaveDataServiceImpl implements SaveDataService {
             MeasureUpload measureUpload= JSONUtil.toBean(data, MeasureUpload.class);
             SiteInfo siteInfo = siteInfoMapper.queryBySiteCode(measureUpload.getId());
             if (siteInfo == null) {
-                log.error("查询站点失败入库失败 站码:{}", measureUpload.getId());
+                log.error("查询站点失败入库失败 无法查询站点 站码:{}", measureUpload.getId());
+                return;
+            }
+            WaterLevel waterLevel = reportDataService.getWaterLevel(siteInfo.getSiteId());
+            if (waterLevel == null){
+                log.error("查询站点失败入库失败 无法查询水位 站码:{}", measureUpload.getId());
+                return;
+            }
+            BerthingPointConfig berthingPointConfig = berthingPointConfigMapper.queryByPlanid(siteInfo.getSiteId(), measureUpload.getPlanid());
+            if (berthingPointConfig == null){
+                log.error("查询站点失败入库失败 无法查询停泊点信息 站码:{}", measureUpload.getId());
                 return;
             }
+            List<PrintExcelDTO> positions = JSON.parseObject(berthingPointConfig.getPositions(), new TypeReference<>() {});
+            PrintExcelDTO printExcelDTO = positions.get(Math.toIntExact(measureUpload.getPn()) - 1);
+            measureUpload.setPointX(printExcelDTO.getX());
+            measureUpload.setWaterlevel(waterLevel.getWaterlevel());
             measureUpload.setSiteId(siteInfo.getSiteId());
             measureUpload.setMeasureId(0L);
             measureUpload.setCreateTime(new Date());

+ 32 - 10
ruoyi-system/src/main/resources/mapper/MeasureUploadMapper.xml

@@ -12,12 +12,14 @@
         <result property="status" column="status" jdbcType="INTEGER"/>
         <result property="id" column="id" jdbcType="VARCHAR"/>
         <result property="taskid" column="taskid" jdbcType="VARCHAR"/>
+        <result property="waterlevel" column="waterlevel" jdbcType="NUMERIC"/>
+        <result property="pointX" column="point_x" jdbcType="NUMERIC"/>
     </resultMap>
 
     <!--查询单个-->
     <select id="queryById" resultMap="MeasureUploadMap">
         select
-            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid
+            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid, waterlevel, point_x
         from measure_upload
         where measure_id = #{measureId}
     </select>
@@ -25,7 +27,7 @@
     <!--查询多个-->
     <select id="queryBySiteIdTime" resultMap="MeasureUploadMap">
         select
-            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid
+            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid, waterlevel, point_x
         from measure_upload
         where site_id = #{siteId}
         <if test="createTime != null">
@@ -39,7 +41,7 @@
     <!--查询指定行数据-->
     <select id="queryAllByLimit" resultMap="MeasureUploadMap">
         select
-            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid
+            measure_id, planid, pn, wspeed, create_time, site_id, status, id, taskid, waterlevel, point_x
         from measure_upload
         <where>
             <if test="measureId != null">
@@ -69,6 +71,12 @@
             <if test="taskid != null and taskid != ''">
                 and taskid = #{taskid}
             </if>
+            <if test="waterlevel != null">
+                and waterlevel = #{waterlevel}
+            </if>
+            <if test="pointX != null">
+                and point_x = #{pointX}
+            </if>
         </where>
         limit #{pageable.offset}, #{pageable.pageSize}
     </select>
@@ -105,28 +113,34 @@
             <if test="taskid != null and taskid != ''">
                 and taskid = #{taskid}
             </if>
+            <if test="waterlevel != null">
+                and waterlevel = #{waterlevel}
+            </if>
+            <if test="pointX != null">
+                and point_x = #{pointX}
+            </if>
         </where>
     </select>
 
     <!--新增所有列-->
     <insert id="insert" keyProperty="measureId" useGeneratedKeys="true">
-        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status, id, taskid)
-        values (#{planid}, #{pn}, #{wspeed}, #{createTime}, #{siteId}, #{status},#{id},#{taskid})
+        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status, id, taskid, waterlevel, point_x)
+        values (#{planid}, #{pn}, #{wspeed}, #{createTime}, #{siteId}, #{status},#{id},#{taskid},#{waterlevel},#{pointX})
     </insert>
 
     <insert id="insertBatch" keyProperty="measureId" useGeneratedKeys="true">
-        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status,id, taskid)
+        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status,id, taskid, waterlevel, point_x)
         values
         <foreach collection="entities" item="entity" separator=",">
-        (#{entity.planid}, #{entity.pn}, #{entity.wspeed}, #{entity.createTime}, #{entity.siteId}, #{entity.status},#{entity.id},#{entity.taskid})
+        (#{entity.planid}, #{entity.pn}, #{entity.wspeed}, #{entity.createTime}, #{entity.siteId}, #{entity.status},#{entity.id},#{entity.taskid},#{entity.waterlevel},#{entity.pointX})
         </foreach>
     </insert>
 
     <insert id="insertOrUpdateBatch" keyProperty="measureId" useGeneratedKeys="true">
-        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status, id, taskid)
+        insert into measure_upload(planid, pn, wspeed, create_time, site_id, status, id, taskid, waterlevel, point_x)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.planid}, #{entity.pn}, #{entity.wspeed}, #{entity.createTime}, #{entity.siteId}, #{entity.status}, #{entity.id},#{entity.taskid})
+            (#{entity.planid}, #{entity.pn}, #{entity.wspeed}, #{entity.createTime}, #{entity.siteId}, #{entity.status}, #{entity.id},#{entity.taskid},#{entity.waterlevel},#{entity.pointX})
         </foreach>
         on duplicate key update
         planid = values(planid),
@@ -136,7 +150,9 @@
         site_id = values(site_id),
         status = values(status),
         id = values(id),
-        taskid = values(taskid)
+        taskid = values(taskid),
+        waterlevel = values(waterlevel),
+        point_x = values(point_x)
     </insert>
 
     <!--通过主键修改数据-->
@@ -167,6 +183,12 @@
             <if test="taskid != null">
                 taskid = #{taskid},
             </if>
+            <if test="waterlevel != null">
+                waterlevel = #{waterlevel},
+            </if>
+            <if test="pointX != null">
+                point_x = #{pointX},
+            </if>
         </set>
         where measure_id = #{measureId}
     </update>