package com.skyline.electricity.controller;
|
|
import org.springframework.stereotype.*;
|
import com.skyline.electricity.service.*;
|
import org.springframework.beans.factory.annotation.*;
|
import com.skyline.electricity.timer.*;
|
import org.springframework.web.client.*;
|
import java.nio.charset.*;
|
import org.springframework.http.converter.*;
|
import com.vividsolutions.jts.geom.*;
|
import java.text.*;
|
import com.alibaba.fastjson.*;
|
import org.springframework.util.*;
|
import com.vividsolutions.jts.io.*;
|
import org.springframework.http.*;
|
import org.springframework.web.bind.annotation.*;
|
import java.util.*;
|
import java.net.*;
|
import java.io.*;
|
import io.swagger.annotations.*;
|
import com.skyline.electricity.pojo.*;
|
import com.skyline.electricity.entity.*;
|
import org.slf4j.*;
|
|
@RequestMapping({ "/electricity" })
|
@Controller
|
@Api("基于Swagger的电力区域报警系统")
|
@CrossOrigin
|
public class DetectController
|
{
|
private static Logger log;
|
@Autowired
|
private DetectService detectService;
|
@Autowired
|
private SchedulerTask schedulerTask;
|
@Autowired
|
private ConfigInfo configInfo;
|
GeometryFactory geometryFactory;
|
WKTReader reader;
|
|
public DetectController() {
|
this.geometryFactory = new GeometryFactory();
|
this.reader = new WKTReader(this.geometryFactory);
|
}
|
|
@RequestMapping(value = { "/getAlarmInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("实时判断电子围栏和人员定位的位置关系并存储预警信息")
|
public void getAlarmInfo() {
|
this.schedulerTask.getInfo();
|
}
|
|
@RequestMapping(value = { "/saveFixedFence" }, method = { RequestMethod.POST })
|
@ApiOperation("保存固定电子围栏信息以及返回围栏重叠信息")
|
@ResponseBody
|
public String saveFixedFence(@RequestBody final FencePosition fence) {
|
final RestTemplate restTemplate = new RestTemplate();
|
final String url = this.configInfo.getSafeSystem_ip()+ "/a/in/api/woWt/saveInElectronicFence";
|
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
final HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
final GeometryFactory geometryFactory = new GeometryFactory();
|
final WKTReader reader = new WKTReader(geometryFactory);
|
try {
|
final Polygon polygon = (Polygon)reader.read("POLYGON(("+ fence.getFenceposition() + "))");
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("polygon", polygon.toString());
|
final FencePosition fencePosition = new FencePosition();
|
fencePosition.setFenceposition(polygon.toString());
|
fencePosition.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
|
fencePosition.setWorkId(fence.getWorkId());
|
fencePosition.setFname(fence.getFname());
|
fencePosition.setStartaltitude(fence.getStartaltitude());
|
fencePosition.setEndaltitude(fence.getEndaltitude());
|
fencePosition.setStatus("enabled");
|
fencePosition.setType("fixed");
|
final FenceDto fenceDto = new FenceDto();
|
fenceDto.setWorkId(fence.getWorkId());
|
fenceDto.setFname(fence.getFname());
|
final String json = JSON.toJSONString((Object)fenceDto);
|
final HttpEntity<MultiValueMap<String, String>> request = (HttpEntity<MultiValueMap<String, String>>)new HttpEntity((Object)json, (MultiValueMap)headers);
|
final ResponseEntity<String> responseEntity = (ResponseEntity<String>)restTemplate.postForEntity(url, (Object)request, (Class)String.class, new Object[0]);
|
final FencePosition existPosition = this.detectService.selectPolygon(fencePosition);
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfo(fence.getWorkId());
|
if (existPosition == null) {
|
this.detectService.insertPolygon(fencePosition);
|
}
|
else {
|
this.detectService.updateFenceById(fencePosition);
|
}
|
final List<String> info = new ArrayList<String>();
|
for (int i = 0; i < list.size(); ++i) {
|
final Polygon py = (Polygon)reader.read("POLYGON((" + list.get(i).getFenceposition() +"))");
|
map.put("py", py.toString());
|
final String flag = this.detectService.intersects((Map)map);
|
final boolean remark = fence.getEndaltitude() < list.get(i).getStartaltitude() | fence.getStartaltitude() > list.get(i).getEndaltitude();
|
if (flag.equals("t") && !remark) {
|
info.add("当前围栏与围栏"+ list.get(i).getWorkId() + "发生重叠");
|
}
|
}
|
return info.toString();
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
@RequestMapping(value = { "/saveTempFence" }, method = { RequestMethod.POST })
|
@ApiOperation("保存临时电子围栏信息以及返回围栏重叠信息")
|
@ResponseBody
|
public String saveTempFence(@RequestBody final FencePosition fence) {
|
final RestTemplate restTemplate = new RestTemplate();
|
final String url = this.configInfo.getSafeSystem_ip()+ "/a/in/api/woWt/saveInElectronicFence";
|
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
final HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
final GeometryFactory geometryFactory = new GeometryFactory();
|
final WKTReader reader = new WKTReader(geometryFactory);
|
try {
|
final Polygon polygon = (Polygon)reader.read("POLYGON(("+ fence.getFenceposition() + "))");
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("polygon", polygon.toString());
|
final FencePosition fencePosition = new FencePosition();
|
fencePosition.setFenceposition(polygon.toString());
|
fencePosition.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
|
fencePosition.setWorkId(fence.getWorkId());
|
fencePosition.setFname(fence.getFname());
|
fencePosition.setStartaltitude(fence.getStartaltitude());
|
fencePosition.setEndaltitude(fence.getEndaltitude());
|
fencePosition.setStatus("disabled");
|
fencePosition.setType("temp");
|
final FenceDto fenceDto = new FenceDto();
|
fenceDto.setWorkId(fence.getWorkId());
|
fenceDto.setFname(fence.getFname());
|
final String json = JSON.toJSONString((Object)fenceDto);
|
final HttpEntity<MultiValueMap<String, String>> request = (HttpEntity<MultiValueMap<String, String>>)new HttpEntity((Object)json, (MultiValueMap)headers);
|
final ResponseEntity<String> responseEntity = (ResponseEntity<String>)restTemplate.postForEntity(url, (Object)request, (Class)String.class, new Object[0]);
|
final FencePosition existPosition = this.detectService.selectPolygon(fencePosition);
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfo(fence.getWorkId());
|
final List<String> info = new ArrayList<String>();
|
if (fence.getUserId() != null) {
|
FenceTemp ft = this.detectService.queryFenceTemp(fence.getWorkId(), fence.getUserId());
|
if (ft != null) {
|
info.add("当前围栏"+ fence.getWorkId() + "发生重叠人员" + fence.getUserId());
|
}
|
else {
|
ft = new FenceTemp();
|
ft.setType("temp");
|
ft.setUserId(fence.getUserId());
|
ft.setWorkId(fence.getWorkId());
|
this.detectService.insetFenceTemp(ft);
|
}
|
}
|
if (existPosition == null) {
|
this.detectService.insertPolygon(fencePosition);
|
}
|
else {
|
this.detectService.updateFenceById(fencePosition);
|
}
|
for (int i = 0; i < list.size(); ++i) {
|
final Polygon py = (Polygon)reader.read("POLYGON((" + list.get(i).getFenceposition() + "))");
|
map.put("py", py.toString());
|
final String flag = this.detectService.intersects((Map)map);
|
final boolean remark = fence.getEndaltitude() < list.get(i).getStartaltitude() | fence.getStartaltitude() > list.get(i).getEndaltitude();
|
if (flag.equals("t") && !remark) {
|
info.add("当前围栏与围栏" + list.get(i).getWorkId() + "发生重叠");
|
}
|
}
|
return info.toString();
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
@RequestMapping(value = { "/getRoute" }, method = { RequestMethod.POST })
|
@ApiImplicitParam(paramType = "query", name = "username", value = "人员姓名", required = true, dataType = "String")
|
@ApiOperation("获取人员活动轨迹")
|
@ResponseBody
|
public String getRoute(final String username) {
|
final List<String> route = (List<String>)this.detectService.getRoute(username);
|
return route.toString();
|
}
|
|
@RequestMapping(value = { "/getWifiInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取Wifi设备坐标")
|
@ResponseBody
|
public Object getWifiInfo() {
|
final List<Wifi> list = (List<Wifi>)this.detectService.getWifiInfo();
|
final List<WifiDto> dtoList = new ArrayList<WifiDto>();
|
for (final Wifi wifi : list) {
|
final WifiDto dto = new WifiDto();
|
final String[] gemo = wifi.getGemo().split(" ");
|
final String compoint = gemo[0]+ " " + gemo[1];
|
final String[] newgemo = this.detectService.transLocation(compoint).split(" ");
|
dto.setGid(wifi.getGid());
|
dto.setAltitude(gemo[2]);
|
dto.setLongitude(newgemo[0]);
|
dto.setLatitude(newgemo[1]);
|
dto.setDesc(wifi.getTe_desc());
|
dtoList.add(dto);
|
}
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", dtoList);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getMonitorInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取摄像头设备坐标")
|
@ResponseBody
|
public Object getMonitorInfo() {
|
final List<Monitor> list = (List<Monitor>)this.detectService.getMonitorInfo();
|
final List<MonitorDto> dtoList = new ArrayList<MonitorDto>();
|
for (final Monitor monitor : list) {
|
final MonitorDto dto = new MonitorDto();
|
final String[] gemo = monitor.getGemo().split(" ");
|
final String compoint = gemo[0]+ " " + gemo[1];
|
final String[] newgemo = this.detectService.transLocation(compoint).split(" ");
|
dto.setGid(monitor.getGid());
|
dto.setAltitude(gemo[2]);
|
dto.setLongitude(newgemo[0]);
|
dto.setLatitude(newgemo[1]);
|
dto.setDesc(monitor.getTe_desc());
|
dto.setRegionPath(monitor.getRegionPath());
|
dto.setCameraName(monitor.getCameraName());
|
dto.setCameraIndex(monitor.getCameraIndex());
|
dto.setTransPtz(monitor.getTransPtz());
|
dto.setStatus(monitor.getStatus());
|
dtoList.add(dto);
|
}
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", dtoList);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getMonitorDeviceInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取摄像头设备信息")
|
@ResponseBody
|
public Object getMonitorDeviceInfo() {
|
final List<MonitorInfo> list = (List<MonitorInfo>)this.detectService.getMonitorDeviceInfo();
|
for (final MonitorInfo monitorInfo : list) {
|
if (monitorInfo.getAisle_no() != null) {
|
monitorInfo.setAisle_no(monitorInfo.getAisle_no().trim());
|
}
|
if (monitorInfo.getAisle_type() != null) {
|
monitorInfo.setAisle_type(monitorInfo.getAisle_type().trim());
|
}
|
if (monitorInfo.getBelong_device() != null) {
|
monitorInfo.setBelong_device(monitorInfo.getBelong_device().trim());
|
}
|
if (monitorInfo.getMonitor_name() != null) {
|
monitorInfo.setMonitor_name(monitorInfo.getMonitor_name().trim());
|
}
|
if (monitorInfo.getMonitor_type() != null) {
|
monitorInfo.setMonitor_type(monitorInfo.getMonitor_type().trim());
|
}
|
}
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getMonitorDeviceInfoById" }, method = { RequestMethod.POST })
|
@ApiOperation("通过ID获取摄像头设备信息")
|
@ResponseBody
|
public Object getMonitorDeviceInfoById(final String cameraIndex) {
|
final List<MonitorInfo> list = (List<MonitorInfo>)this.detectService.getMonitorDeviceInfoById(cameraIndex);
|
for (final MonitorInfo monitorInfo : list) {
|
if (monitorInfo.getAisle_no() != null) {
|
monitorInfo.setAisle_no(monitorInfo.getAisle_no().trim());
|
}
|
if (monitorInfo.getAisle_type() != null) {
|
monitorInfo.setAisle_type(monitorInfo.getAisle_type().trim());
|
}
|
if (monitorInfo.getBelong_device() != null) {
|
monitorInfo.setBelong_device(monitorInfo.getBelong_device().trim());
|
}
|
if (monitorInfo.getMonitor_name() != null) {
|
monitorInfo.setMonitor_name(monitorInfo.getMonitor_name().trim());
|
}
|
if (monitorInfo.getMonitor_type() != null) {
|
monitorInfo.setMonitor_type(monitorInfo.getMonitor_type().trim());
|
}
|
}
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getDoorAccessInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取门禁设备坐标")
|
@ResponseBody
|
public Object getDoorAccessInfo() {
|
final List<DoorAccess> list = (List<DoorAccess>)this.detectService.getDoorAccessInfo();
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getEnabledFenceInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取有效的电子围栏信息")
|
@ResponseBody
|
public Object getEnabledFenceInfo() {
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfoByStatus();
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getFixedFenceInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取固定的电子围栏信息")
|
@ResponseBody
|
public Object getFixedFenceInfo() {
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFixedFenceInfo();
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getFenceInfoById" }, method = { RequestMethod.POST })
|
@ApiImplicitParam(paramType = "query", name = "workId", value = "工作票ID", required = true, dataType = "String")
|
@ApiOperation("根据工作票ID获取电子围栏信息")
|
@ResponseBody
|
public Object getFenceInfoById(final String workId) {
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfoById(workId);
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("data", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/updateFenceInfo" }, method = { RequestMethod.POST })
|
@ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "fname", value = "电子围栏名称", required = false, dataType = "String"), @ApiImplicitParam(paramType = "query", name = "workId", value = "工作票ID", required = true, dataType = "String"), @ApiImplicitParam(paramType = "query", name = "workLeader", value = "工作票负责人", required = false, dataType = "String"), @ApiImplicitParam(paramType = "query", name = "starttime", value = "电子围栏生效时间", required = false, dataType = "String"), @ApiImplicitParam(paramType = "query", name = "disabledtime", value = "电子围栏失效时间", required = false, dataType = "String") })
|
@ApiOperation("更新电子围栏信息")
|
@ResponseBody
|
public Object updateFenceInfo(final FencePosition fencePosition) {
|
final Result result = new Result();
|
DetectController.log.warn("更新围栏操作"+ fencePosition.toString());
|
if (fencePosition.getWorkLeader() != null && fencePosition.getWorkLeader() != "") {
|
this.detectService.updateFenceTemp(fencePosition.getWorkId(), fencePosition.getWorkLeader());
|
}
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfoById(fencePosition.getWorkId());
|
if (list.size() < 1) {
|
result.setStatus("warning");
|
result.setMessage("输入的工作票ID不存在 请输入已存在的围栏工作票ID");
|
return result;
|
}
|
if (fencePosition.getFname() != null) {
|
try {
|
URLDecoder.decode(fencePosition.getFname(), "utf-8");
|
}
|
catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
}
|
final int flag = this.detectService.updateFenceInfo(fencePosition);
|
if (fencePosition.getStarttime() != null && fencePosition.getDisabledtime() == null) {
|
if (new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()).compareTo(fencePosition.getStarttime()) >= 0) {
|
this.detectService.setEnabled(fencePosition.getWorkId());
|
}
|
}
|
else if (fencePosition.getStarttime() != null && fencePosition.getDisabledtime() != null && new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()).compareTo(fencePosition.getDisabledtime()) <= 0 && new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()).compareTo(fencePosition.getStarttime()) >= 0) {
|
this.detectService.changeFenceStatus(fencePosition.getWorkId());
|
}
|
if (flag == 1) {
|
result.setStatus("success");
|
result.setMessage("更新成功");
|
return result;
|
}
|
result.setStatus("failure");
|
result.setMessage("输入的围栏相关信息有误 更新失败");
|
return result;
|
}
|
|
@RequestMapping(value = { "/deleteFenceById" }, method = { RequestMethod.POST })
|
@ApiImplicitParam(paramType = "query", name = "workId", value = "工作票ID", required = true, dataType = "String")
|
@ApiOperation("根据工作票ID删除电子围栏信息")
|
@ResponseBody
|
public Object deleteFenceById(final String workId) {
|
final Result result = new Result();
|
this.detectService.deleteFenceTemp(workId);
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.getFenceInfoById(workId);
|
if (list.size() < 1) {
|
result.setStatus("warning");
|
result.setMessage("输入的工作票ID不存在 请输入已存在的围栏工作票ID");
|
return result;
|
}
|
final int flag = this.detectService.deleteFenceById(workId);
|
if (flag == 1) {
|
result.setStatus("success");
|
result.setMessage("删除成功");
|
return result;
|
}
|
result.setStatus("failure");
|
result.setMessage("删除失败");
|
return result;
|
}
|
|
@RequestMapping(value = { "/deleteFence" }, method = { RequestMethod.POST })
|
@ApiOperation("删除所有电子围栏信息")
|
@ResponseBody
|
public Object deleteFence() {
|
final Result result = new Result();
|
final int flag = this.detectService.deleteFence();
|
if (flag != 0) {
|
result.setStatus("success");
|
result.setMessage("删除成功");
|
return result;
|
}
|
result.setStatus("failure");
|
result.setMessage("删除失败");
|
return result;
|
}
|
|
@RequestMapping(value = { "/getDeviceInfo" }, method = { RequestMethod.POST })
|
@ApiOperation("获取设备的相关信息")
|
@ResponseBody
|
public Object getDeviceInfo() {
|
final List<DeviceInfo> list = (List<DeviceInfo>)this.detectService.getDeviceInfo();
|
for (final DeviceInfo deviceInfo : list) {
|
final String[] gemo = deviceInfo.getGemo().split(" ");
|
final String compoint = gemo[0]+ " " + gemo[1];
|
final String[] point = this.detectService.transLocation(compoint).split(" ");
|
deviceInfo.setGemo(point[0]+ " " + point[1]);
|
}
|
final Map<Object, Object> map = new HashMap<Object, Object>();
|
map.put("list", list);
|
return map;
|
}
|
|
@RequestMapping(value = { "/getDeviceInfoById" }, method = { RequestMethod.GET })
|
@ApiOperation("根据KKS编码获取设备的相关信息")
|
@ResponseBody
|
public Object getDeviceInfoById(final String device_id) {
|
final DeviceInfo deviceInfo = this.detectService.getDeviceInfoById(device_id);
|
if (deviceInfo != null) {
|
final String[] gemo = deviceInfo.getGemo().split(" ");
|
final String compoint = gemo[0]+ " " + gemo[1];
|
final String[] point = this.detectService.transLocation(compoint).split(" ");
|
deviceInfo.setGemo(point[0]+ " " + point[1]);
|
final Map<Object, Object> map = new HashMap<Object, Object>();
|
map.put("list", deviceInfo);
|
return map;
|
}
|
final Result result = new Result();
|
result.setStatus("failure");
|
result.setMessage("输入的设备ID不存在 无法查询相应的数据");
|
return result;
|
}
|
|
@RequestMapping(value = { "/selectFencePersonRelByworkid" }, method = { RequestMethod.GET })
|
@ApiOperation("根据workid获取围栏内的人员信息")
|
@ResponseBody
|
public Object selectFencePersonRelByworkid(final String workid) {
|
final List<Map<String, Object>> list = (List<Map<String, Object>>)this.detectService.selectFencePersonRelByworkid(workid);
|
Result result;
|
if (list.size() != 0) {
|
result = new Result();
|
result.setCode(Integer.valueOf(0));
|
result.setCount(Integer.valueOf(list.size()));
|
result.setStatus("success");
|
result.setMessage("查询成功");
|
result.setData((Object)list);
|
}
|
else {
|
result = new Result();
|
result.setCode(Integer.valueOf(-1));
|
result.setCount(Integer.valueOf(0));
|
result.setStatus("failure");
|
result.setMessage("无围栏内人员信息");
|
result.setData((Object)null);
|
}
|
return result;
|
}
|
|
@RequestMapping(value = { "/selectFenceAndfixedArea" }, method = { RequestMethod.GET })
|
@ApiOperation("获取围栏和固定区域列表")
|
@ResponseBody
|
public Object selectAllfixedareaPerson(final String type) {
|
final List<FencePosition> templist = new ArrayList<FencePosition>();
|
final List<FencePosition> fixedlist = new ArrayList<FencePosition>();
|
final List<FencePosition> fixedArealist = new ArrayList<FencePosition>();
|
FencePositionList fencePositionList;
|
try {
|
final List<FencePosition> list = (List<FencePosition>)this.detectService.selectFenceAndfixedArea();
|
for (final FencePosition fencePosition : list) {
|
if (fencePosition.getPersoncount() == null) {
|
fencePosition.setPersoncount(Integer.valueOf(0));
|
}
|
if ("temp".equals(fencePosition.getType())) {
|
fencePosition.setType("临时围栏");
|
templist.add(fencePosition);
|
}
|
if ("fixed".equals(fencePosition.getType())) {
|
fencePosition.setType("电子围栏");
|
fixedlist.add(fencePosition);
|
}
|
}
|
final String glpoly = this.configInfo.getGl();
|
final String qjpoly = this.configInfo.getQj();
|
double startaltitude = 0.0;
|
double endaltitude = 6.3;
|
for (int i = 1; i < 4; ++i) {
|
final FencePosition fencePosition2 = new FencePosition();
|
fencePosition2.setStartaltitude(startaltitude);
|
fencePosition2.setEndaltitude(endaltitude);
|
fencePosition2.setFenceposition(glpoly);
|
fencePosition2.setFname("汽机"+ i + "层");
|
fencePosition2.setWorkId("qj" + i);
|
final List<Map<String, Object>> personlist = (List<Map<String, Object>>)this.detectService.selectFencePersonRelByworkid(fencePosition2.getWorkId());
|
fencePosition2.setPersoncount(Integer.valueOf(personlist.size()));
|
fencePosition2.setType("固定区域");
|
startaltitude = 6.3;
|
endaltitude = 6.3;
|
fixedArealist.add(fencePosition2);
|
list.add(fencePosition2);
|
}
|
startaltitude = 0.0;
|
endaltitude = 6.3;
|
for (int i = 1; i < 3; ++i) {
|
final FencePosition fencePosition2 = new FencePosition();
|
fencePosition2.setStartaltitude(startaltitude);
|
fencePosition2.setEndaltitude(endaltitude);
|
fencePosition2.setFenceposition(glpoly);
|
fencePosition2.setType("固定区域");
|
if (i == 2) {
|
fencePosition2.setFname("锅炉3层");
|
fencePosition2.setWorkId("gl3");
|
}
|
else {
|
fencePosition2.setWorkId("gl"+ i);
|
fencePosition2.setFname("锅炉" + i + "层");
|
}
|
final List<Map<String, Object>> personlist = (List<Map<String, Object>>)this.detectService.selectFencePersonRelByworkid(fencePosition2.getWorkId());
|
fencePosition2.setPersoncount(Integer.valueOf(personlist.size()));
|
startaltitude = 12.6;
|
endaltitude = 12.6;
|
fixedArealist.add(fencePosition2);
|
list.add(fencePosition2);
|
}
|
fencePositionList = new FencePositionList();
|
fencePositionList.setCode(0);
|
fencePositionList.setCount(list.size());
|
switch (type) {
|
case "temp": {
|
fencePositionList.setData(templist);
|
break;
|
}
|
case "fixed": {
|
fencePositionList.setData(fixedlist);
|
break;
|
}
|
case "fixedArea": {
|
fencePositionList.setData(fixedArealist);
|
break;
|
}
|
}
|
fencePositionList.setMsg("查询成功");
|
}
|
catch (Exception e) {
|
fencePositionList = new FencePositionList();
|
fencePositionList.setCode(-1);
|
fencePositionList.setCount(0);
|
fencePositionList.setData(null);
|
fencePositionList.setMsg("查询成功");
|
}
|
return fencePositionList;
|
}
|
|
@RequestMapping(value = { "/saveFence_yq" }, method = { RequestMethod.POST })
|
@ApiOperation("保存区域信息")
|
@ResponseBody
|
public String saveFence_yq(@RequestBody final FencePosition fence) {
|
final RestTemplate restTemplate = new RestTemplate();
|
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
final HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
final GeometryFactory geometryFactory = new GeometryFactory();
|
final WKTReader reader = new WKTReader(geometryFactory);
|
try {
|
final Polygon polygon = (Polygon)reader.read("POLYGON(("+ fence.getFenceposition() + "))");
|
final Map<String, Object> map = new HashMap<String, Object>();
|
map.put("polygon", polygon.toString());
|
final FencePosition fencePosition = new FencePosition();
|
fencePosition.setFenceposition(polygon.toString());
|
fencePosition.setFname(fence.getFname());
|
fencePosition.setType(fence.getType());
|
fencePosition.setHeight(fence.getHeight());
|
this.detectService.insertPolygon_yq(fencePosition);
|
return "";
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
@RequestMapping(value = { "/saveFix" }, method = { RequestMethod.POST })
|
@ApiOperation("保存区域信息")
|
@ResponseBody
|
public String saveFix(final String fence, final String name, final double start, final double end, final String workid) {
|
final GeometryFactory geometryFactory = new GeometryFactory();
|
final WKTReader reader = new WKTReader(geometryFactory);
|
Polygon polygon = null;
|
try {
|
polygon = (Polygon)reader.read("POLYGON(("+ fence + "))");
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
//System.out.println(polygon.toString());
|
final FencePosition fencePosition = new FencePosition();
|
fencePosition.setFenceposition(polygon.toString());
|
fencePosition.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
|
fencePosition.setWorkId(workid);
|
fencePosition.setFname(name);
|
fencePosition.setStartaltitude(start);
|
fencePosition.setEndaltitude(end);
|
fencePosition.setStatus("enabled");
|
fencePosition.setType("fixed");
|
this.detectService.insertPolygon(fencePosition);
|
return "ok";
|
}
|
|
static {
|
DetectController.log = LoggerFactory.getLogger((Class)DetectController.class);
|
}
|
}
|