Commit 855b365b authored by wanghao's avatar wanghao

1 基础信息维护-用户管理-燃气用户 大屏展示数据结构 接口封装。测试通过,待跟大屏联调。

2 基础信息维护-用户管理 和 居住区(村、庄) 界面优化,及 标注经纬度是 有时地图不展示问题修复。
parent e8dad920
......@@ -6,14 +6,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelXorHtmlUtil;
import cn.afterturn.easypoi.excel.entity.ExcelToHtmlParams;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.export.ExcelExportService;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.zehong.common.core.domain.entity.SysUser;
import com.zehong.common.core.domain.model.LoginUser;
import com.zehong.common.utils.SecurityUtils;
......@@ -144,6 +137,14 @@ public class TDetectorUserController extends BaseController
}
/**
* 获取探测器用户列表 大屏地图 labelsLayer 标注的方式
* @return ajaxResult
*/
@GetMapping("/labelsLayerMarksDUserVillageSafDevInfoMap")
public AjaxResult labelsLayerMarksDUserVillageSafDevInfoMap(TDetectorUser tDetectorUser){
return AjaxResult.success(tDetectorUserService.labelsLayerMarksDUserVillageSafDevInfoMap(tDetectorUser));
}
/**
* 获取探测器用户列表
......
package com.zehong.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 带有村 和 安全装置的 燃气用户 VO
*/
@Data
public class TDetectorUserVillageSafetyDeviceInfoVo {
/**
* 燃气用户ID
*/
private Long userId;
/**
* 用户类型 1=居民用户,2=工商业用户,4=餐饮用户
*/
private String userType;
/**
* 燃气用户名称
*/
private String nickName;
/**
* 燃气用户电话
*/
private String phone;
/**
* 燃气用户地址
*/
private String address;
/**
* 村庄id
*/
private Long villageId;
/**
* 村庄名称
*/
private String villageName;
/**
* 村庄地址
*/
private String regionName;
/**
* 安全装置 id
*/
private Long gasUserSafetyDeviceId;
/**
* 编号
*/
private String iotNo;
/**
* 设备名称
*/
private String deviceName;
/**
* 设备介质
*/
private String detctionMedium;
/**
* 设备安装时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date deviceInstallTime;
/**
* 图标类型默认 61
*/
private String iconType;
}
......@@ -7,6 +7,7 @@ import com.zehong.system.domain.TDetectorUser;
import com.zehong.system.domain.TDetectorUserCount;
import com.zehong.system.domain.vo.TDetectorUserInspectVo;
import com.zehong.system.domain.vo.TDetectorUserVO;
import com.zehong.system.domain.vo.TDetectorUserVillageSafetyDeviceInfoVo;
import org.apache.ibatis.annotations.Param;
/**
......@@ -32,6 +33,13 @@ public interface TDetectorUserMapper
*/
public List<TDetectorUserVO> countTDetectorUser(TDetectorUser tDetectorUser);
/**
* 查询 带有 设备 村庄的 燃气用户数据
* @param tDetectorUser t
* @return l
*/
List<TDetectorUserVillageSafetyDeviceInfoVo> queryDuserVilSafDevInfo(TDetectorUser tDetectorUser);
/**
* 查询燃气用户统计信息大屏界面 使用massMarks标注的方式
* @param tDetectorUser
......
......@@ -33,12 +33,20 @@ public interface ITDetectorUserService
*/
// public Map<String, List<TMassMarksDetectorUserVO>> massMarksDetectorUserList(TDetectorUser tDetectorUser);
/**
* 查询探测器用户列表 地图使用 labelsLayerMarks 标注的方式
* @param tDetectorUser tDetectorUser
* @return r
*/
Map<String, List<TDetectorUserVO>> labelsLayerMarksDetectorUserList(TDetectorUser tDetectorUser);
/**
* 查询探测器用户列表 地图使用 labelsLayer 标注的方式
* 查询探测器用户列表 地图使用 labelsLayer 标注的方式 带有村 和 安全装置数据
* @param tDetectorUser tDetectorUser
* @return r
*/
public Map<String, List<TDetectorUserVO>> labelsLayerMarksDetectorUserList(TDetectorUser tDetectorUser);
Map<Object,List<Map<String,Object>>> labelsLayerMarksDUserVillageSafDevInfoMap(TDetectorUser tDetectorUser);
/**
* 查询探测器用户列表
......
......@@ -277,7 +277,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a2.detector_type,
a2.detector_status FROM t_detector_user a1
LEFT JOIN t_detector_info a2 ON a1.user_id = a2.user_id AND a2.is_del = '0'
<where> a1.is_del = '0' and a1.error_msg is null
<where> a1.is_del = '0' and a1.error_msg is null and a1.user_type != '2'
<if test="userId != null and userId != ''"> and a1.user_id = #{userId}</if>
</where>) a
group by a.user_id,a.detector_type
......@@ -292,7 +292,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from t_detector_report_data b1
left join t_detector_info b2 on b1.detector_code = b2.detector_code
right join t_detector_user b3 on b2.user_id = b3.user_id
<where> b2.is_del = '0' and b3.is_del = '0' and b3.error_msg is null
<where> b2.is_del = '0' and b3.is_del = '0' and b3.error_msg is null and b3.user_type != '2'
<if test="userId != null and userId != ''"> and b3.user_id = #{userId}</if>
</where>) b
group by b.user_id,b.detector_type
......@@ -300,6 +300,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) t2 on t2.userId = t1.userId
</select>
<select id="queryDuserVilSafDevInfo" resultType="TDetectorUserVillageSafetyDeviceInfoVo" parameterType="TDetectorUser">
SELECT
dUser.user_id as userId,
dUser.nick_name as nickName,
dUser.phone,
dUser.address,
dUser.user_type as userType,
userVillage.f_village_id as villageId,
userVillage.f_village_name as villageName,
region.f_name AS regionName ,
safetyDeviceInfo.f_gasUser_safety_device_id as gasUserSafetyDeviceId,
safetyDeviceInfo.f_iot_no as iotNo,
safetyDeviceInfo.f_device_name as deviceName,
safetyDeviceInfo.f_detection_medium as detctionMedium,
safetyDeviceInfo.f_device_install_time as deviceInstallTime,
'61' as iconType
FROM
t_detector_user dUser
LEFT JOIN t_user_manage_village userVillage ON dUser.f_village_id = userVillage.f_village_id
LEFT JOIN t_gasuser_safety_device_info safetyDeviceInfo on safetyDeviceInfo.f_relation_gasUser_id = dUser.user_id
LEFT JOIN t_county_level_region region ON region.f_id = userVillage.f_region
WHERE
(safetyDeviceInfo.is_del = '0' or safetyDeviceInfo.is_del is null)
</select>
<select id="getDetectorUserAlarmList" resultType="Map">
select a2.user_id as userId
from t_detector_info a1
......
......@@ -26,6 +26,18 @@ export function labelsLayerMarksDetectorUserList(query) {
params: query
})
}
// 探测器用户列表 大屏端 labelsLayerMarks 标注方式 居民用户 特殊处理 带有 村 和 安全装置了。。。
export function labelsLayerMarksDUserVillageSafDevInfoMap(query) {
return request({
url: '/supervise/user/labelsLayerMarksDUserVillageSafDevInfoMap',
method: 'get',
params: query
})
}
// 探测器用户列表
export function detectorUserList(query) {
return request({
......
......@@ -131,6 +131,7 @@ import {
detectorUserList,
massMarksDetectorUserList,
labelsLayerMarksDetectorUserList,
labelsLayerMarksDUserVillageSafDevInfoMap,
} from "@/api/detector/detectorUser";
import {
pipeData,
......@@ -308,6 +309,8 @@ export default {
},
async mounted() {
labelsLayerMarksDUserVillageSafDevInfoMap();
// console.log(99999999999999)
// getPipe().then(res=>{
// console.log("成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功",res)
......
......@@ -186,7 +186,7 @@
</el-form-item>
</el-col>
<el-col :span="11">
<el-col :span="11" v-if="form.userType === '1'">
<el-form-item label="居住区(村、庄)" prop="villageId">
<el-select v-model="form.villageId" placeholder="请在下拉框中选择名称" maxlength="255" :disabled="false" clearable style="width: 100%;">
<el-option v-for="item in villageList" :key="item.fVillageId" :label="item.fVillageName" :value="item.fVillageId">
......@@ -518,7 +518,7 @@ export default {
// 遮罩层
loading: true,
//下级数据的遮罩层
loadings:true,
loadings:false,
//下级数据的遮罩层
safetyDeviceManageLoadings:true,
// 导出遮罩层
......@@ -589,10 +589,6 @@ export default {
{ required: true, message: "请输入地址", trigger: "blur" },
// { min: 0, max: 30, message: "长度30位", trigger: "blur" },
],
villageId: [
{ required: true, message: "请选择居住区(村、庄)", trigger: "blur" },
// { min: 0, max: 30, message: "长度30位", trigger: "blur" },
],
},
//关联设备下级数据 表单校验
......@@ -1004,13 +1000,16 @@ export default {
this.test = response.data;
});
this.reset();
this.devicePos = [];
//清空关联设备数据
this.DetailInfoList=''
this.DetailInfoList=[]
this.open = true;
this.title = "添加燃气用户";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loadings = true;
//查询企业名称下拉框数据
selectTEnterprise().then(response => {
this.test = response.data;
......@@ -1021,7 +1020,11 @@ export default {
this.form = response.data;
this.open = true;
this.title = "修改燃气用户";
if (response.data.longitude == null || response.data.latitude == null) {
this.devicePos = [];
} else {
this.devicePos = [response.data.longitude, response.data.latitude];
}
});
//查询关联设备信息数据
......@@ -1032,6 +1035,14 @@ export default {
},
/** 提交按钮 */
submitForm() {
if (this.form.userType === '1' && this.form.villageId == null ) {
alert("当用户类型是 ‘居民用户’ 时,居住区(村、庄) 必选");
return
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.userId != null) {
......
......@@ -61,10 +61,10 @@
<el-table v-loading="loading" :data="villageList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属企业" align="center" prop="beyondEnterpriseName" >
<!-- <el-table-column label="所属企业" align="center" prop="beyondEnterpriseName" >
<span slot-scope="scope" v-if="scope.row.beyondEnterpriseName">{{scope.row.beyondEnterpriseName}}</span>
<span v-else>-</span>
</el-table-column>
</el-table-column> -->
<el-table-column label="居住区(村庄)名称" align="center" prop="fVillageName" >
<span slot-scope="scope" v-if="scope.row.fVillageName">{{scope.row.fVillageName}}</span>
......@@ -122,23 +122,21 @@
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
<el-row>
<el-col :span="11">
<!-- <el-col :span="11">
<el-form-item label="所属企业" prop="beyondEnterpriseId">
<el-select v-model="form.beyondEnterpriseId" placeholder="请在下拉框中选择名称" maxlength="255" :disabled="false" clearable style="width: 100%;">
<el-option v-for="item in enterpriseList" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="11">
<el-form-item label="居住区(村庄)名称" prop="fVillageName">
<el-input v-model="form.fVillageName" placeholder="请输入居住区(村庄)名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="县级行政区" prop="fRegion">
<el-select
......@@ -153,15 +151,24 @@
:value="county.fId"
/>
</el-select>
<!--<el-input v-model="form.fRegion" placeholder="请输入项目所在县级行政区ID" />-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="居民总户数" prop="fTotalNumHouse">
<el-input @input="fTotalNumHousefilterInput" v-model="form.fTotalNumHouse" placeholder="请输入居民总户数" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="瓶装燃气用户数" prop="fBottledGasUsers">
<el-input @input="fBottledGasUsersfilterInput" v-model="form.fBottledGasUsers" placeholder="请输入瓶装燃气用户数" />
</el-form-item>
</el-col>
</el-row>
<el-row>
......@@ -170,11 +177,6 @@
<el-input @input="fPipeGasUsersfilterInput" v-model="form.fPipeGasUsers" placeholder="请输入管道燃气用户数" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="瓶装燃气用户数" prop="fBottledGasUsers">
<el-input @input="fBottledGasUsersfilterInput" v-model="form.fBottledGasUsers" placeholder="请输入瓶装燃气用户数" />
</el-form-item>
</el-col>
</el-row>
<el-row>
......@@ -374,6 +376,7 @@ export default {
this.enterpriseList = response.data;
});
this.devicePos = [];
this.reset();
this.open = true;
this.title = "添加居住区(村庄)";
......@@ -390,7 +393,11 @@ export default {
this.form = response.data;
this.open = true;
this.title = "修改居住区(村庄)";
if (response.data.longitude == null || response.data.latitude == null) {
this.devicePos = [];
} else {
this.devicePos = [response.data.longitude, response.data.latitude];
}
});
},
/** 提交按钮 */
......
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