zhangnaisong
2024-02-22 60a9ab1441177c4c489f8a2dd12bfb779124e4ea
查看巡检下最近兴趣点提交
已修改5个文件
306 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/mapper/ArdAlarmpointsWellMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
@@ -248,4 +248,13 @@
        return AjaxResult.success(result);
    }
    @GetMapping("/getWellDataByPatrolplanIdAndPosition")
    @ApiOperation("查询最近巡检设备动静态属性")
    public AjaxResult getWellDataByPatrolplanIdAndPosition(@RequestBody Map<String,Object> para){
        SysConfig config = new SysConfig();
        config.setConfigKey("3coracle");
        List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config);
        Map<String,Object> result = ardAlarmpointsWellService.getWellDataByPatrolplanIdAndPosition(para,sysConfigResult);
        return AjaxResult.success(result);
    }
}
ard-work/src/main/java/com/ruoyi/alarmpoints/well/mapper/ArdAlarmpointsWellMapper.java
@@ -6,6 +6,7 @@
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellDeptVo;
import com.ruoyi.common.annotation.DataScope;
import org.apache.ibatis.annotations.Param;
/**
@@ -98,4 +99,6 @@
    List<ArdAlarmpointsWellDeptVo> wellListDept(List<Long> deptList);
    ArdAlarmpointsWell getWellDataByPatrolplanIdAndPosition(@Param("patrolplanId") String patrolplanId,@Param("longitude") Double longitude,@Param("latitude") Double latitude);
}
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java
@@ -137,4 +137,6 @@
     * 查询油井动静态数据
     */
    Map<String,Object> getWellDataByWellId(String wellId, List<SysConfig> config);
    Map<String,Object> getWellDataByPatrolplanIdAndPosition(Map<String,Object> para,List<SysConfig> sysConfigResult);
}
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.alarmpoints.well.service.impl;
import java.math.BigDecimal;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -582,6 +583,261 @@
        return result;
    }
    @Override
    public Map<String, Object> getWellDataByPatrolplanIdAndPosition(Map<String, Object> para, List<SysConfig> config) {
        String patrolplanId = (String) para.get("patrolplanId");
        Double longitude = null;
        Double latitude = null;
        try{
            longitude = (Double) para.get("longitude");
            latitude = (Double) para.get("latitude");
        } catch (Exception e){
            longitude = ((BigDecimal) para.get("longitude")).doubleValue();
            latitude = ((BigDecimal) para.get("latitude")).doubleValue();
        }
        ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.getWellDataByPatrolplanIdAndPosition(patrolplanId,longitude,latitude);
        if(ardAlarmpointsWell != null){
            Map<String, Object> result = new HashMap();
            if (ardAlarmpointsWell.getWellId() != null) {
                result.put("wellId", ardAlarmpointsWell.getWellId());
            } else {
                result.put("wellId", "");
            }
            if (ardAlarmpointsWell.getWellNumber() != null) {
                result.put("wellNumber", ardAlarmpointsWell.getWellNumber());
            } else {
                result.put("wellNumber", "");
            }
            if (ardAlarmpointsWell.getOilProduction() != null) {
                result.put("oilProduction", ardAlarmpointsWell.getOilProduction());
            } else {
                result.put("oilProduction", "");
            }
            if (ardAlarmpointsWell.getWellBlock() != null) {
                result.put("wellBlock", ardAlarmpointsWell.getWellBlock());
            } else {
                result.put("wellBlock", "");
            }
            if (ardAlarmpointsWell.getProductionDate() != null) {
                result.put("productionDate", ardAlarmpointsWell.getProductionDate());
            } else {
                result.put("productionDate", "");
            }
            if (ardAlarmpointsWell.getDisplacementMode() != null) {
                result.put("displacementMode", ardAlarmpointsWell.getDisplacementMode());
            } else {
                result.put("displacementMode", "");
            }
            if (ardAlarmpointsWell.getSurroundingEnvironment() != null) {
                result.put("surroundingEnvironment", ardAlarmpointsWell.getSurroundingEnvironment());
            } else {
                result.put("surroundingEnvironment", "");
            }
            if (ardAlarmpointsWell.getWellType() != null) {
                result.put("wellType", ardAlarmpointsWell.getWellType());
            } else {
                result.put("wellType", "");
            }
            if (ardAlarmpointsWell.getInstalledLoad() != null) {
                result.put("installedLoad", ardAlarmpointsWell.getInstalledLoad());
            } else {
                result.put("installedLoad", "");
            }
            if (ardAlarmpointsWell.getMeteringStation() != null) {
                result.put("meteringStation", ardAlarmpointsWell.getMeteringStation());
            } else {
                result.put("meteringStation", "");
            }
            if (ardAlarmpointsWell.getTransferStation() != null) {
                result.put("transferStation", ardAlarmpointsWell.getTransferStation());
            } else {
                result.put("transferStation", "");
            }
            if (ardAlarmpointsWell.getDehydrationStation() != null) {
                result.put("dehydrationStation", ardAlarmpointsWell.getDehydrationStation());
            } else {
                result.put("dehydrationStation", "");
            }
            if (ardAlarmpointsWell.getRunStatus() != null) {
                result.put("runStatus", ardAlarmpointsWell.getRunStatus());
            } else {
                result.put("runStatus", "");
            }
            if (ardAlarmpointsWell.getLongitude() != null) {
                result.put("longitude", ardAlarmpointsWell.getLongitude());
            } else {
                result.put("longitude", "");
            }
            if (ardAlarmpointsWell.getLatitude() != null) {
                result.put("latitude", ardAlarmpointsWell.getLatitude());
            } else {
                result.put("latitude", "");
            }
            if (ardAlarmpointsWell.getAltitude() != null) {
                result.put("altitude", ardAlarmpointsWell.getAltitude());
            } else {
                result.put("altitude", "");
            }
            if (ardAlarmpointsWell.getUserId() != null) {
                result.put("userId", ardAlarmpointsWell.getUserId());
            } else {
                result.put("userId", "");
            }
            if (ardAlarmpointsWell.getDeptId() != null) {
                result.put("deptId", ardAlarmpointsWell.getDeptId());
                SysDept sysDept = sysDeptMapper.selectDeptById(ardAlarmpointsWell.getDeptId());//查询兴趣点所在部门
                if (sysDept != null) {
                    result.put("deptName", sysDept.getDeptName());
                } else {
                    result.put("deptName", "");
                }
            } else {
                result.put("deptId", "");
                result.put("deptName", "");
            }
            if (ardAlarmpointsWell.getCreateBy() != null) {
                result.put("createBy", ardAlarmpointsWell.getCreateBy());
            } else {
                result.put("createBy", "");
            }
            if (ardAlarmpointsWell.getCreateTime() != null) {
                result.put("createTime", ardAlarmpointsWell.getCreateTime());
            } else {
                result.put("createTime", "");
            }
            if (ardAlarmpointsWell.getUpdateBy() != null) {
                result.put("updateBy", ardAlarmpointsWell.getUpdateBy());
            } else {
                result.put("updateBy", "");
            }
            if (ardAlarmpointsWell.getUpdateTime() != null) {
                result.put("updateTime", ardAlarmpointsWell.getUpdateTime());
            } else {
                result.put("updateTime", "");
            }
            if (config.size() != 0) {
                String oracle = config.get(0).getConfigValue();
                String[] oracleArr = oracle.split(";");
                if (oracleArr.length == 3) {
                    String url = oracle.split(";")[0];
                    String username = oracle.split(";")[1];
                    String password = oracle.split(";")[2];
                    try {
                        int checkMark = checkTable(url, username, password, "\'RTU_DATA_YJ_8\'");//三厂表存在
                        if (checkMark == 1) {
                            Map<String, Object> resultRTU = getRtuDataYjByJH(url, username, password, "RTU_DATA_YJ_8", "\'" + ardAlarmpointsWell.getWellId() + "\'");
                            result.putAll(resultRTU);
                        } else {
                            result.put("wellRunningState", "n");//油井运行状态
                            result.put("totalPowerConsumption", "n");//总耗电量
                            result.put("communicationMachine", "n");//设备通讯
                            result.put("remark", "n");//备注
                            result.put("singleWellWaterTemperature", "n");//单井掺水温度//
                            result.put("meteringPlantWaterPressure", "n");//计量间掺水压力//
                            result.put("torque", "n");//扭矩
                            result.put("MAT", "n");//回油温度
                            result.put("TGP", "n");//井口油压
                            result.put("CPV", "n");//井口套压
                            result.put("ADL", "n");//A相电流
                            result.put("ADY", "n");//A相电压
                            result.put("BDL", "n");//B相电流
                            result.put("BDY", "n");//B相电压
                            result.put("CDL", "n");//C相电流
                            result.put("CDY", "n");//C相电压
                            result.put("UCV", "n");//上行电流
                            result.put("DCV", "n");//下行电流
                            result.put("SLV", "n");//冲程
                            result.put("CHC", "n");//冲次
                            result.put("BPV", "n");//井口回压
                            result.put("ZWG", "n");//总无功功率
                            result.put("ZYG", "n");//总有功功率
                            result.put("GYS", "n");//功率因数
                            result.put("UWL", "n");//最大载荷
                            result.put("DWL", "n");//最小载荷
                            result.put("ZHS", "n");//转速
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else if (oracleArr.length == 4) {
                    String url = oracle.split(";")[0];
                    String username = oracle.split(";")[1];
                    String password = oracle.split(";")[2];
                    String prod = oracle.split(";")[3];
                    try {
                        //int checkMark = checkTable(url,username,password,"\'RTU_DATA_YJ_8\'");//三厂表存在
                        int checkMark = checkTable(url, username, password, "\'" + prod + ".RTU_DATA_YJ_8\'");//三厂表存在
                        if (checkMark == 1) {
                            Map<String, Object> resultRTU = getRtuDataYjByJH(url, username, password, prod + ".RTU_DATA_YJ_8", "\'" + ardAlarmpointsWell.getWellId() + "\'");
                            result.putAll(resultRTU);
                        } else {
                            result.put("wellRunningState", "n");//油井运行状态
                            result.put("totalPowerConsumption", "n");//总耗电量
                            result.put("communicationMachine", "n");//设备通讯
                            result.put("remark", "n");//备注
                            result.put("singleWellWaterTemperature", "n");//单井掺水温度//
                            result.put("meteringPlantWaterPressure", "n");//计量间掺水压力//
                            result.put("torque", "n");//扭矩
                            result.put("MAT", "n");//回油温度
                            result.put("TGP", "n");//井口油压
                            result.put("CPV", "n");//井口套压
                            result.put("ADL", "n");//A相电流
                            result.put("ADY", "n");//A相电压
                            result.put("BDL", "n");//B相电流
                            result.put("BDY", "n");//B相电压
                            result.put("CDL", "n");//C相电流
                            result.put("CDY", "n");//C相电压
                            result.put("UCV", "n");//上行电流
                            result.put("DCV", "n");//下行电流
                            result.put("SLV", "n");//冲程
                            result.put("CHC", "n");//冲次
                            result.put("BPV", "n");//井口回压
                            result.put("ZWG", "n");//总无功功率
                            result.put("ZYG", "n");//总有功功率
                            result.put("GYS", "n");//功率因数
                            result.put("UWL", "n");//最大载荷
                            result.put("DWL", "n");//最小载荷
                            result.put("ZHS", "n");//转速
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            } else {
                result.put("wellRunningState", "n");//油井运行状态
                result.put("totalPowerConsumption", "n");//总耗电量
                result.put("communicationMachine", "n");//设备通讯
                result.put("remark", "n");//备注
                result.put("singleWellWaterTemperature", "n");//单井掺水温度//
                result.put("meteringPlantWaterPressure", "n");//计量间掺水压力//
                result.put("torque", "n");//扭矩
                result.put("MAT", "n");//回油温度
                result.put("TGP", "n");//井口油压
                result.put("CPV", "n");//井口套压
                result.put("ADL", "n");//A相电流
                result.put("ADY", "n");//A相电压
                result.put("BDL", "n");//B相电流
                result.put("BDY", "n");//B相电压
                result.put("CDL", "n");//C相电流
                result.put("CDY", "n");//C相电压
                result.put("UCV", "n");//上行电流
                result.put("DCV", "n");//下行电流
                result.put("SLV", "n");//冲程
                result.put("CHC", "n");//冲次
                result.put("BPV", "n");//井口回压
                result.put("ZWG", "n");//总无功功率
                result.put("ZYG", "n");//总有功功率
                result.put("GYS", "n");//功率因数
                result.put("UWL", "n");//最大载荷
                result.put("DWL", "n");//最小载荷
                result.put("ZHS", "n");//转速
            }
            return result;
        }else{
            return null;
        }
    }
    public int checkTable(String url, String username, String password, String tableName) throws ClassNotFoundException, SQLException {
        Connection connection = null;
ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
@@ -70,6 +70,32 @@
                 left join sys_user u on u.user_id = c.user_id
    </sql>
    <resultMap type="ArdAlarmpointsWell" id="ArdAlarmpointsWellOnlyResult">
        <result property="id" column="id"/>
        <result property="wellId" column="well_id"/>
        <result property="wellNumber" column="well_number"/>
        <result property="oilProduction" column="oil_production"/>
        <result property="wellBlock" column="well_block"/>
        <result property="productionDate" column="production_date"/>
        <result property="displacementMode" column="displacement_mode"/>
        <result property="surroundingEnvironment" column="surrounding_environment"/>
        <result property="wellType" column="well_type"/>
        <result property="installedLoad" column="installed_load"/>
        <result property="meteringStation" column="metering_station"/>
        <result property="transferStation" column="transfer_station"/>
        <result property="dehydrationStation" column="dehydration_station"/>
        <result property="runStatus" column="run_status"/>
        <result property="longitude" column="longitude"/>
        <result property="latitude" column="latitude"/>
        <result property="altitude" column="altitude"/>
        <result property="deptId" column="dept_id"/>
        <result property="userId" column="user_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <select id="selectArdAlarmpointsWellList" parameterType="ArdAlarmpointsWell" resultMap="ArdAlarmpointsWellResult">
        <include refid="selectArdAlarmpointsWellVo"/>
        <where>
@@ -258,4 +284,14 @@
            #{item}
        </foreach>
    </select>
    <select id="getWellDataByPatrolplanIdAndPosition" resultMap="ArdAlarmpointsWellOnlyResult">
        select aaw.* from ard_app_patrolplan aap
        inner join ard_app_patrolpoint aap0 on aap.id = aap0.patrolplan_id
        inner join ard_alarmpoints_well aaw on aap0.alarmpoints_id = aaw.id
        where del is null and aap.id = #{patrolplanId}
        and f_compute_distance(cast(#{longitude} as decimal),cast(#{latitude} as decimal),aaw.longitude,aaw.latitude)
        &lt;= (select cast(sc.config_value as decimal) from sys_config sc where sc.config_key = 'appAlarmPointsDistance')
        order by f_compute_distance(cast(#{longitude} as decimal),cast(#{latitude} as decimal),aaw.longitude,aaw.latitude) desc limit 1 offset 0
    </select>
</mapper>