Commit f5aa81f1 authored by zhangjianqian's avatar zhangjianqian

管线上图,巡检路线上图

parent 85b6074b
package com.zehong.web.controller.baseinfo;
import java.util.List;
import com.zehong.system.domain.TPipeTaskInspect;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -53,6 +55,17 @@ public class TPipeInfoController extends BaseController
return AjaxResult.success(list);
}
/**
* 已打点线段
* @return
*/
@GetMapping("/pointList")
public AjaxResult pointList()
{
List<TPipeTaskInspect> list = tPipeInfoService.selectTPipeInspectList();
return AjaxResult.success(list);
}
/**
* 导出管道信息列表
*/
......
......@@ -46,6 +46,11 @@ public class TPipePoint extends BaseEntity
@Excel(name = "创建人")
private String adminName;
private Integer sort;
private Integer isDel;
//巡线人id
private Long userId;
......@@ -57,6 +62,23 @@ public class TPipePoint extends BaseEntity
private List<TPipePoint> pipePointList;
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Integer getIsDel() {
return isDel;
}
public void setIsDel(Integer isDel) {
this.isDel = isDel;
}
public Long getUserId() {
return userId;
}
......
package com.zehong.system.domain;
import java.math.BigDecimal;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zehong.common.annotation.Excel;
......@@ -72,6 +74,17 @@ public class TPipeTaskInspect extends BaseEntity
private Integer hasImg;
//坐标线
private List<List<String>> coordinates;
public List<List<String>> getCoordinates() {
return coordinates;
}
public void setCoordinates(List<List<String>> coordinates) {
this.coordinates = coordinates;
}
public Integer getHasImg() {
return hasImg;
}
......
......@@ -79,4 +79,10 @@ public interface TPipeTaskInspectMapper
* @return 管线巡线任务执行集合
*/
List<TPipeTaskInspect> selectTPipeTaskPointInspectList(TPipeTaskInspect tPipeTaskInspect);
/**
* 查询所有巡线中打卡点
* @return
*/
List<TPipeTaskInspect> selectTPipeInspectList(String datastr);
}
......@@ -2,6 +2,7 @@ package com.zehong.system.service;
import java.util.List;
import com.zehong.system.domain.TPipeInfo;
import com.zehong.system.domain.TPipeTaskInspect;
/**
* 管道信息Service接口
......@@ -65,4 +66,10 @@ public interface ITPipeInfoService
* @return
*/
List<TPipeInfo> selectPipeInfoByUser(TPipeInfo tPipeInfo);
/**
* 已巡管线段
* @return
*/
List<TPipeTaskInspect> selectTPipeInspectList();
}
package com.zehong.system.service.impl;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
import com.zehong.common.utils.DateUtils;
import com.zehong.system.domain.TPipeTaskInspect;
import com.zehong.system.mapper.TPipeTaskInspectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zehong.system.mapper.TPipeInfoMapper;
......@@ -19,6 +23,8 @@ public class TPipeInfoServiceImpl implements ITPipeInfoService
{
@Autowired
private TPipeInfoMapper tPipeInfoMapper;
@Autowired
private TPipeTaskInspectMapper tPipeTaskInspectMapper;
/**
* 查询管道信息
......@@ -103,4 +109,52 @@ public class TPipeInfoServiceImpl implements ITPipeInfoService
public List<TPipeInfo> selectPipeInfoByUser(TPipeInfo tPipeInfo){
return tPipeInfoMapper.selectPipeInfoByUser(tPipeInfo);
}
/**
* 查询已巡线段
* @return
*/
@Override
public List<TPipeTaskInspect> selectTPipeInspectList() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String datestr = dateFormat.format(new Date());
List<TPipeTaskInspect> allPoint = tPipeTaskInspectMapper.selectTPipeInspectList(datestr);
//返回多个线段数组
List<TPipeTaskInspect> resplist = new ArrayList<>();
//单个线段
TPipeTaskInspect onelist = new TPipeTaskInspect();
for(TPipeTaskInspect inspect : allPoint){
if(inspect.getStatus()==0){
if(onelist.getStatus()!=null){
resplist.add(onelist);
onelist= new TPipeTaskInspect();
}
continue;
}
if(onelist.getStatus()==null){
inspect.setCoordinates(tolist(inspect));
onelist = inspect;
continue;
}
if(onelist.getTaskId()==inspect.getTaskId()&&inspect.getPipeId()==onelist.getPipeId()){
List<List<String>> list = onelist.getCoordinates();
list.add(tolist(inspect).get(0));
onelist.setCoordinates(list );
}else {
if(onelist!=null){
resplist.add(onelist);
}
onelist = new TPipeTaskInspect();
inspect.setCoordinates(tolist(inspect));
onelist= inspect;
}
}
return resplist;
}
public List<List<String>> tolist(TPipeTaskInspect inspect){
List<List<String>> list = new ArrayList<>();
list.add(new ArrayList<>(Arrays.asList(inspect.getLongitude().toString(), inspect.getLatitude().toString())));
return list;
}
}
......@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="pipeName" column="pipe_name" />
<result property="inspector" column="inspector" />
<result property="userId" column="user_id" />
<result property="sort" column="sort" />
</resultMap>
<sql id="selectTPipePointVo">
......@@ -27,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
latitude,
has_img,
admin_id,
sort,
create_time,
(select nick_name from sys_user where user_id = admin_id) as adminName
FROM
......@@ -35,7 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectTPipePointList" parameterType="TPipePoint" resultMap="TPipePointResult">
<include refid="selectTPipePointVo"/>
<where>
<where>
is_del = 0
<if test="pipeId != null "> and pipe_id = #{pipeId}</if>
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
<if test="longitude != null "> and longitude = #{longitude}</if>
......@@ -43,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="hasImg != null "> and has_img = #{hasImg}</if>
<if test="adminId != null "> and admin_id = #{adminId}</if>
</where>
ORDER BY create_time DESC
ORDER BY sort
</select>
<select id="selectAllpoint" resultMap="TPipePointResult">
SELECT
......@@ -55,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN t_pipe_info pipe ON pipe.pipe_id = p.pipe_id
LEFT JOIN sys_user sysUs ON sysUs.user_id = u.user_id
<where>
u.user_id is not NULL AND sysUs.status = '0'
u.user_id is not NULL AND sysUs.status = '0' and p.is_del = 0
<if test="pipeType != null and pipeType != ''">and pipe.cycle_type = #{pipeType}</if>
</where>
</select>
......@@ -96,6 +99,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="hasImg != null">has_img = #{hasImg},</if>
<if test="adminId != null">admin_id = #{adminId},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="sort != null">sort = #{sort},</if>
<if test="isDel != null">is_del = #{isDel},</if>
</trim>
where id = #{id}
</update>
......
......@@ -162,9 +162,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<insert id="inserts" >
INSERT INTO t_pipe_task_inspect(task_id,user_id,point) VALUES
INSERT INTO t_pipe_task_inspect(task_id,user_id,point,sort) VALUES
<foreach item="item" collection="list" separator="," >
(#{taskId},#{item.userId},#{item.id})
(#{taskId},#{item.userId},#{item.id},#{item.sort})
</foreach>
</insert>
<select id="selectTPipeInspectList" parameterType="String" resultMap="TPipeTaskInspectResult">
SELECT inspect.id,inspect.status,inspect.task_id,p.pipe_id,p.longitude,p.latitude FROM t_pipe_task_inspect inspect
LEFT JOIN t_pipe_point p on p.id = inspect.point
WHERE task_id IN (
SELECT id FROM t_pipe_task WHERE push_time =#{datastr} or #{datastr} BETWEEN push_time AND task_end_time
)
order by inspect.task_id,p.pipe_id,inspect.sort
</select>
</mapper>
\ No newline at end of file
......@@ -18,6 +18,14 @@ export function pipeInfoList(query) {
})
}
//查询所有已检管道信息
export function pointList() {
return request({
url: '/baseInfo/pipe/pointList',
method: 'get'
})
}
// 查询管道信息详细
export function getInfo(pipeId) {
return request({
......
......@@ -16,12 +16,12 @@ export const deviceIcon = {
}
export const pipeColor = {
1: "#2EE7E7",
1: "#52E6F8",
2: "#FFFFFF",
3: "#18FF0F",
4: "#DE67FA",
3: "#DE67FA",
4: "#B7791F",
// 运行监控-巡检巡查的线条颜色
5: "#1890FF",
5: "#18FF0F",
};
......@@ -464,7 +464,7 @@ export class EditorMap {
addPipeLine(objData, component) {
const { path, pipePressure, iconType } = objData;
// 根据压力获取颜色
const color = this.pipeColor[pipePressure + 1];
const color = this.pipeColor[pipePressure];
const pipe = this.createPipeLine({
path: eval(path),
strokeWeight: objData.strokeWeight || 4,
......@@ -500,7 +500,7 @@ export class EditorMap {
const target = e.target;
// 根据管道压力获取颜色
const { pipePressure } = target.getExtData();
const color = this.pipeColor[pipePressure + 1];
const color = this.pipeColor[pipePressure];
// 获取当前颜色
const options = target.getOptions();
......
......@@ -122,17 +122,23 @@
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="经度" prop="longitude">
<el-input v-model="form.longitude" placeholder="请输入经度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="纬度" prop="latitude">
<el-input v-model="form.latitude" placeholder="请输入纬度" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
</el-col>
</el-row>
<!-- 地图 -->
......@@ -215,6 +221,9 @@
],
latitude: [
{ required: true, message: "纬度不能为空", trigger: "blur" },
],
sort: [
{ required: true, message: "排序不能为空", trigger: "blur" },
]
},
searchinput: "",
......@@ -323,7 +332,8 @@
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delPoint(ids);
//return delPoint(ids);
return updatePoint({id:row.id,isDel:1})
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
......
......@@ -28,6 +28,8 @@ import StationInfo from ".//components/StationInfo";
import GyInfo from ".//components/GyInfo";
import { stationInfoList } from "@/api/baseinfo/stationInfo.js";
import { listIndustry} from "@/api/baseinfo/industry";
import { pipeInfoList,pointList } from "@/api/baseinfo/pipeInfo";
import PipeInfo from "./components/PipeInfo";
import {
deviceType,
deviceIcon,
......@@ -42,7 +44,8 @@ export default {
Bottom,
DeviceInfo,
StationInfo,
GyInfo
GyInfo,
PipeInfo
},
data() {
return {};
......@@ -78,12 +81,40 @@ export default {
this.getStationInfo();
//工业用户
this.getList();
this.getpipe();
this.getPointList();
},
getpipe(){
pipeInfoList().then((res) => {
if (res.code == 200 && res.data) {
res.data.forEach((item) => {
item.path = eval(item.coordinates);
item.pipePressure = item.pipeType;
item.strokeWeight = 4;
this.gaoMap.addPipeLine(item, PipeInfo);
});
}
});
},
getPointList(){
pointList().then((res) => {
if (res.code == 200 && res.data) {
console.log('yida',res.data)
res.data.forEach((item) => {
item.path = item.coordinates;
item.pipePressure = 5;
item.strokeWeight = 4;
this.gaoMap.addPipeLine(item, PipeInfo);
});
}
});
},
/** 查询工业用户列表 */
getList() {
listIndustry({pageNum:1,pageSize:1000}).then(response => {
//this.industryList = response.rows;
console.log(response.rows)
this.gaoMap.labelsLayerMarksDetectorUserList(response.rows, GyInfo, false);
});
},
......@@ -156,7 +187,7 @@ export default {
this.gaoMap.fmjlabelLayer.hide();
}else if(val==5){
this.hideMarker(item.val-2);
}else {
}else if(val==6){
this.gaoMap.businessDetectorUserlabelsLayer.hide();
}
}else {
......@@ -167,7 +198,7 @@ export default {
}else if(val==5){
//this.map.czlabelLayer.show();
this.showMarker(item.val-2);
}else {
}else if(val==6){
this.gaoMap.businessDetectorUserlabelsLayer.show();
}
}
......
......@@ -93,18 +93,18 @@
</div>
<div class="top-right">
<div class="left last">照片:</div>
<el-image
v-if="deviceData.pictureAddress"
style="width: 80px; height: 80px"
:src="deviceData.pictureAddress"
:preview-src-list="[deviceData.pictureAddress ]"
:z-index="999999"
>
</el-image>
<div class="imgtext" v-else>暂无图片</div>
</div>
<!--<div class="top-right">-->
<!--<div class="left last">照片:</div>-->
<!--<el-image-->
<!--v-if="deviceData.pictureAddress"-->
<!--style="width: 80px; height: 80px"-->
<!--:src="deviceData.pictureAddress"-->
<!--:preview-src-list="[deviceData.pictureAddress ]"-->
<!--:z-index="999999"-->
<!--&gt;-->
<!--</el-image>-->
<!--<div class="imgtext" v-else>暂无图片</div>-->
<!--</div>-->
</div>
</div>
......
<template>
<div class="user-wrapper">
<div class="title">{{ deviceData.pipeName }}</div>
<div class="close" @click="close">
<!-- <img src="@/assets/mapImages/closeBtn.png" alt="" /> -->
<i class="el-icon-close" style="font-size:20px;color:#5dfefe;"></i>
</div>
<div class="group flex first">
<div class="left first">管道名称:</div>
<div class="right zzz">{{ deviceData.pipeName }}</div>
<div class="left">管道长度:</div>
<div class="right last">{{ deviceData.pipeLength }}m</div>
</div>
<div class="group flex">
<div class="left first">管径:</div>
<div class="right zzz">
{{ deviceData.pipeDiameter }}mm
</div>
<div class="left">管道壁厚:</div>
<div class="right last">{{ deviceData.pipeThickness }}mm</div>
</div>
<div class="group flex">
<div class="first left">压力:</div>
<div class="right">{{ deviceData.pipePressure }}kpa</div>
<div class="left">材质:</div>
<div class="right last">{{ materialFormatte(deviceData) }}</div>
</div>
<div class="group flex">
<div class="left first">管道地址:</div>
<div class="right zzz" :title="deviceData.pipeAddr">{{ deviceData.pipeAddr }}</div>
<div class="left">敷设方式:</div>
<div class="right last zzz">
{{ layTypeFormatte(deviceData) }}
</div>
</div>
<div class="group flex">
<div class="first left">埋深:</div>
<div class="right">{{ deviceData.buriedDepth }}m</div>
<div class="left">架空高度:</div>
<div class="last right">{{ deviceData.overhead }}m</div>
</div>
</div>
</template>
<script>
export default {
name: "pipe-info",
created(){
this.getMaterialType();
this.getLayType();
},
data(){
return{
materialType: [],
layType: []
}
},
methods:{
close() {
this.mapClass.infowindowClose();
},
//材质类型
getMaterialType(){
this.getDicts("t_pipe_material").then((response) => {
this.materialType = response.data;
});
},
//敷设方式类型
getLayType(){
this.getDicts("t_lay_type").then((response) => {
this.layType = response.data;
});
},
//材质格式化
materialFormatte(row){
return this.selectDictLabel(
this.materialType,
row.pipeMaterial
);
},
//敷设方式格式化
layTypeFormatte(row){
return this.selectDictLabel(
this.layType,
row.layType
);
},
}
}
</script>
<style scoped lang="scss">
.user-wrapper {
box-shadow: 0px 0px 10px #54e0ef inset;
background-color: #071738;
padding: 10px;
position: relative;
width: 500px;
border-radius: 7px;
.title {
font-size: 14px;
line-height: 14px;
color: #ffffff;
}
.close {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
}
.group {
border-top: none;
height: 28px;
font-size: 14px;
line-height: 28px;
color: #ffffff;
&.first {
margin-top: 10px;
}
div {
flex: 1;
}
.left {
text-align: right;
}
.right {
box-sizing: border-box;
text-align: left;
padding: 0 1em;
}
.last {
border: none;
}
.once {
flex: 1;
}
.pipeAddr {
flex: 3;
padding: 0 3em 0 1em;
}
}
.flex {
display: flex;
justify-content: space-between;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment