机械设备定位

This commit is contained in:
guo 2024-03-18 18:16:44 +08:00
parent e3f802d949
commit 88be126b4e
20 changed files with 907 additions and 17 deletions

View File

@ -0,0 +1,185 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionDayRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
/**
* @Title: Controller
* @Description: 机械设备定位-日行数据
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@RestController
@RequestMapping("/xmgl/mechanicalEquipmentPositionDayRecord")
@Slf4j
@Api(tags = "机械设备定位-日行数据相关Api")
public class MechanicalEquipmentPositionDayRecordController {
@Autowired
private IMechanicalEquipmentPositionDayRecordService mechanicalEquipmentPositionDayRecordService;
/**
* 分页列表查询
*
* @return
*/
@ApiOperation(value = "分页列表查询机械设备定位-日行数据信息", notes = "分页列表查询机械设备定位-日行数据信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "month", value = "类型月份如2020-10", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备编号", dataType = "String", paramType = "query", required = false),
})
@GetMapping(value = "/page")
public Result<IPage<MechanicalEquipmentPositionDayRecord>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionDayRecordService.queryPageList(paramMap));
}
/**
* 列表查询
*
* @return
*/
@ApiOperation(value = "列表查询机械设备定位-日行数据信息", notes = "列表查询机械设备定位-日行数据信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "month", value = "类型月份如2020-10", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备编号", dataType = "String", paramType = "query", required = false),
})
@GetMapping(value = "/list")
public Result<List<MechanicalEquipmentPositionDayRecord>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionDayRecordService.queryList(paramMap));
}
/**
* 添加
*
* @param mechanicalEquipmentPositionDayRecord
* @return
*/
@ApiOperation(value = "添加机械设备定位-日行数据信息", notes = "添加机械设备定位-日行数据信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<MechanicalEquipmentPositionDayRecord> add(@RequestBody MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord) {
log.info("添加机械设备定位-日行数据信息:{}", JSON.toJSONString(mechanicalEquipmentPositionDayRecord));
mechanicalEquipmentPositionDayRecordService.add(mechanicalEquipmentPositionDayRecord);
return Result.ok();
}
/**
* 编辑
*
* @param mechanicalEquipmentPositionDayRecord
* @return
*/
@ApiOperation(value = "编辑机械设备定位-日行数据信息", notes = "编辑机械设备定位-日行数据信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<MechanicalEquipmentPositionDayRecord> edit(@RequestBody MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord) {
mechanicalEquipmentPositionDayRecordService.updateById(mechanicalEquipmentPositionDayRecord);
return Result.ok();
}
/**
* 通过id删除
*
* @return
*/
@ApiOperation(value = "删除机械设备定位-日行数据信息", notes = "删除机械设备定位-日行数据信息", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "机械设备定位-日行数据ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
@PostMapping(value = "/delete")
public Result<MechanicalEquipmentPositionDayRecord> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
Result<MechanicalEquipmentPositionDayRecord> result = new Result<MechanicalEquipmentPositionDayRecord>();
MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord = mechanicalEquipmentPositionDayRecordService.getById(id);
if (mechanicalEquipmentPositionDayRecord == null) {
result.error500("未找到对应实体");
} else {
boolean ok = mechanicalEquipmentPositionDayRecordService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
}
/**
* 通过id查询
*
* @param id
* @return
*/
@ApiOperation(value = "通过id查询机械设备定位-日行数据信息", notes = "通过id查询机械设备定位-日行数据信息", httpMethod = "GET")
@ApiImplicitParam(name = "id", value = "机械设备定位-日行数据ID", paramType = "query", required = true, dataType = "Integer")
@GetMapping(value = "/queryById")
public Result<MechanicalEquipmentPositionDayRecord> queryById(@RequestParam(name = "id", required = true) String id) {
Result<MechanicalEquipmentPositionDayRecord> result = new Result<MechanicalEquipmentPositionDayRecord>();
MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord = mechanicalEquipmentPositionDayRecordService.getById(id);
if (mechanicalEquipmentPositionDayRecord == null) {
result.error500("未找到对应实体");
} else {
result.setResult(mechanicalEquipmentPositionDayRecord);
result.setSuccess(true);
}
return result;
}
/**
* 导出excel
*
* @param request
* @param response
*/
@ApiOperation(value = "导出excel机械设备定位-日行数据信息", notes = "导出excel机械设备定位-日行数据信息", httpMethod = "POST")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
// Step.1 组装查询条件
QueryWrapper<MechanicalEquipmentPositionDayRecord> queryWrapper = null;
try {
String paramsStr = request.getParameter("paramsStr");
if (oConvertUtils.isNotEmpty(paramsStr)) {
String deString = URLDecoder.decode(paramsStr, "UTF-8");
MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord = JSON.parseObject(deString, MechanicalEquipmentPositionDayRecord.class);
queryWrapper = QueryGenerator.initQueryWrapper(mechanicalEquipmentPositionDayRecord, request.getParameterMap());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<MechanicalEquipmentPositionDayRecord> pageList = mechanicalEquipmentPositionDayRecordService.list(queryWrapper);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "机械设备定位-日行数据列表");
mv.addObject(NormalExcelConstants.CLASS, MechanicalEquipmentPositionDayRecord.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("机械设备定位-日行数据列表数据", "导出人:Jeecg", "导出信息"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
}

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.controller;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionDevService;
import com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@ -46,9 +47,10 @@ public class MechanicalEquipmentPositionDevController {
*/
@ApiOperation(value = "分页列表查询机械设备定位-设备信息", notes = "分页列表查询机械设备定位-设备信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
})
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "online", value = "在线状态0.离线 1.在线)", paramType = "query", required = false, dataType = "Integer"),
})
@GetMapping(value = "/page")
public Result<IPage<MechanicalEquipmentPositionDev>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionDevService.queryPageList(paramMap));
@ -115,14 +117,23 @@ public class MechanicalEquipmentPositionDevController {
@GetMapping(value = "/queryById")
public Result<MechanicalEquipmentPositionDev> queryById(@RequestParam(name = "id", required = true) String id) {
Result<MechanicalEquipmentPositionDev> result = new Result<MechanicalEquipmentPositionDev>();
MechanicalEquipmentPositionDev mechanicalEquipmentPositionDev = mechanicalEquipmentPositionDevService.getById(id);
if (mechanicalEquipmentPositionDev == null) {
result.error500("未找到对应实体");
} else {
result.setResult(mechanicalEquipmentPositionDev);
result.setSuccess(true);
}
return result;
}
MechanicalEquipmentPositionDev mechanicalEquipmentPositionDev = mechanicalEquipmentPositionDevService.getById(id);
if (mechanicalEquipmentPositionDev == null) {
result.error500("未找到对应实体");
} else {
result.setResult(mechanicalEquipmentPositionDev);
result.setSuccess(true);
}
return result;
}
@ApiOperation(value = "统计机械设备定位-设备信息", notes = "统计机械设备定位-设备信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countDev")
public Result<CountVehiclePositionDevVo> countDev(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionDevService.countDev(paramMap));
}
}

View File

@ -0,0 +1,170 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionFence;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionFenceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
/**
* @Title: Controller
* @Description: 机械设备定位-围栏
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@RestController
@RequestMapping("/xmgl/mechanicalEquipmentPositionFence")
@Slf4j
@Api(tags = "机械设备定位-围栏相关Api")
public class MechanicalEquipmentPositionFenceController {
@Autowired
private IMechanicalEquipmentPositionFenceService mechanicalEquipmentPositionFenceService;
/**
* 分页列表查询
*
* @return
*/
@ApiOperation(value = "分页列表查询机械设备定位-围栏信息", notes = "分页列表查询机械设备定位-围栏信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
})
@GetMapping(value = "/page")
public Result<IPage<MechanicalEquipmentPositionFence>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionFenceService.queryPageList(paramMap));
}
/**
* 列表查询
*
* @return
*/
@ApiOperation(value = "列表查询机械设备定位-围栏信息", notes = "列表查询机械设备定位-围栏信息", httpMethod = "GET")
@ApiImplicitParams({
})
@GetMapping(value = "/list")
public Result<List<MechanicalEquipmentPositionFence>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(mechanicalEquipmentPositionFenceService.queryList(paramMap));
}
/**
* 添加
*
* @param mechanicalEquipmentPositionFence
* @return
*/
@ApiOperation(value = "添加机械设备定位-围栏信息", notes = "添加机械设备定位-围栏信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<MechanicalEquipmentPositionFence> add(@RequestBody MechanicalEquipmentPositionFence mechanicalEquipmentPositionFence) {
mechanicalEquipmentPositionFence.setId(null);
mechanicalEquipmentPositionFenceService.save(mechanicalEquipmentPositionFence);
return Result.ok();
}
/**
* 编辑
*
* @param mechanicalEquipmentPositionFence
* @return
*/
@ApiOperation(value = "编辑机械设备定位-围栏信息", notes = "编辑机械设备定位-围栏信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<MechanicalEquipmentPositionFence> edit(@RequestBody MechanicalEquipmentPositionFence mechanicalEquipmentPositionFence) {
mechanicalEquipmentPositionFenceService.updateById(mechanicalEquipmentPositionFence);
return Result.ok();
}
/**
* 通过id删除
*
* @return
*/
@ApiOperation(value = "删除机械设备定位-围栏信息", notes = "删除机械设备定位-围栏信息", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "机械设备定位-围栏ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
@PostMapping(value = "/delete")
public Result<MechanicalEquipmentPositionFence> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
Result<MechanicalEquipmentPositionFence> result = new Result<MechanicalEquipmentPositionFence>();
MechanicalEquipmentPositionFence mechanicalEquipmentPositionFence = mechanicalEquipmentPositionFenceService.getById(id);
if (mechanicalEquipmentPositionFence == null) {
result.error500("未找到对应实体");
} else {
boolean ok = mechanicalEquipmentPositionFenceService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
}
/**
* 批量删除
*
* @param paramMap
* @return
*/
@ApiOperation(value = "批量删除机械设备定位-围栏信息", notes = "批量删除机械设备定位-围栏信息", httpMethod = "POST")
@ApiImplicitParam(name = "ids", value = "机械设备定位-围栏ID字符串多个以,分割)", paramType = "body", required = true, dataType = "String")
@PostMapping(value = "/deleteBatch")
public Result<MechanicalEquipmentPositionFence> deleteBatch(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
String ids = MapUtils.getString(paramMap, "ids");
Result<MechanicalEquipmentPositionFence> result = new Result<>();
if (ids == null || "".equals(ids.trim())) {
result.error500("参数不识别!");
} else {
this.mechanicalEquipmentPositionFenceService.removeByIds(Arrays.asList(ids.split(",")));
result.success("删除成功!");
}
return result;
}
/**
* 通过id查询
*
* @param id
* @return
*/
@ApiOperation(value = "通过id查询机械设备定位-围栏信息", notes = "通过id查询机械设备定位-围栏信息", httpMethod = "GET")
@ApiImplicitParam(name = "id", value = "机械设备定位-围栏ID", paramType = "query", required = true, dataType = "Integer")
@GetMapping(value = "/queryById")
public Result<MechanicalEquipmentPositionFence> queryById(@RequestParam(name = "id", required = true) String id) {
Result<MechanicalEquipmentPositionFence> result = new Result<MechanicalEquipmentPositionFence>();
MechanicalEquipmentPositionFence mechanicalEquipmentPositionFence = mechanicalEquipmentPositionFenceService.getById(id);
if (mechanicalEquipmentPositionFence == null) {
result.error500("未找到对应实体");
} else {
result.setResult(mechanicalEquipmentPositionFence);
result.setSuccess(true);
}
return result;
}
}

View File

@ -0,0 +1,74 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description: 机械设备定位-日行数据
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Data
@TableName("mechanical_equipment_position_day_record")
@ApiModel(value = "MechanicalEquipmentPositionDayRecord实体类", description = "MechanicalEquipmentPositionDayRecord")
public class MechanicalEquipmentPositionDayRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键id")
private Long id;
/**
* 设备序号
*/
@Excel(name = "设备序号", width = 15)
@ApiModelProperty(value = "设备序号")
private String devSn;
/**
* 每日轨迹距离
*/
@Excel(name = "每日轨迹距离", width = 15)
@ApiModelProperty(value = "每日轨迹距离")
private Double trackDistanceDay;
/**
* 日期
*/
@Excel(name = "日期", width = 15)
@ApiModelProperty(value = "日期")
private String day;
/**
* 项目sn
*/
@Excel(name = "项目sn", width = 15)
@ApiModelProperty(value = "项目sn")
private String projectSn;
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}

View File

@ -72,6 +72,14 @@ public class MechanicalEquipmentPositionDev implements Serializable {
@Excel(name = "项目sn", width = 15)
@ApiModelProperty(value = "项目sn")
private java.lang.String projectSn;
/**
* 心跳时间
*/
@Excel(name = "心跳时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "心跳时间")
private java.util.Date heartbeatTime;
@ApiModelProperty(value = "司机名称")
@TableField(exist = false)

View File

@ -0,0 +1,99 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description: 机械设备定位-围栏
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Data
@TableName("mechanical_equipment_position_fence")
@ApiModel(value = "MechanicalEquipmentPositionFence实体类", description = "MechanicalEquipmentPositionFence")
public class MechanicalEquipmentPositionFence implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键id")
private Long id;
/**
* 围栏名称
*/
@Excel(name = "围栏名称", width = 15)
@ApiModelProperty(value = "围栏名称")
private String fenceName;
/**
* 范围类型1标准区域2自定义
*/
@Excel(name = "范围类型1标准区域2自定义", width = 15)
@ApiModelProperty(value = "范围类型1标准区域2自定义")
private Integer rangeType;
/**
* 区域半径
*/
@Excel(name = "区域半径", width = 15)
@ApiModelProperty(value = "区域半径")
private Integer areaRadius;
/**
* 圆心经度
*/
@Excel(name = "圆心经度", width = 15)
@ApiModelProperty(value = "圆心经度")
private Double longitude;
/**
* 圆心维度
*/
@Excel(name = "圆心维度", width = 15)
@ApiModelProperty(value = "圆心维度")
private Double latitude;
/**
* 围栏形状坐标对见用| 分隔经度和纬度用","分隔
*/
@Excel(name = "围栏形状(坐标对见用“| ”分隔;经度和纬度用”,“分隔)", width = 15)
@ApiModelProperty(value = "围栏形状(坐标对见用“| ”分隔;经度和纬度用“,“分隔)")
private String fenceShape;
@ApiModelProperty(value = "围栏形状json数组")
private String fenceShapeArr;
/**
* 项目sn
*/
@Excel(name = "项目sn", width = 15)
@ApiModelProperty(value = "项目sn")
private String projectSn;
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@TableField(exist = false)
@ApiModelProperty(value = "围栏内人数")
private Integer workerNum;
}

View File

@ -23,4 +23,6 @@ public interface MechanicalEquipmentPositionDataMapper extends BaseMapper<Mechan
IPage<MechanicalEquipmentPositionData> queryList(Page<MechanicalEquipmentPositionData> page, @Param(Constants.WRAPPER) QueryWrapper<MechanicalEquipmentPositionData> queryWrapper);
List<MechanicalEquipmentPositionData> queryList(@Param(Constants.WRAPPER) QueryWrapper<MechanicalEquipmentPositionData> queryWrapper);
List<MechanicalEquipmentPositionData> getNewestData(String projectSn);
}

View File

@ -0,0 +1,32 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 机械设备定位-日行数据
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Mapper
public interface MechanicalEquipmentPositionDayRecordMapper extends BaseMapper<MechanicalEquipmentPositionDayRecord> {
IPage<MechanicalEquipmentPositionDayRecord> pageList(Page<MechanicalEquipmentPositionDayRecord> page, @Param("p") HashMap<String, Object> paramMap);
List<MechanicalEquipmentPositionDayRecord> pageList(@Param("p") HashMap<String, Object> paramMap);
MechanicalEquipmentPositionDayRecord getTodayBeginData(String devSn);
}

View File

@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDev;
import com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/**
@ -23,4 +25,6 @@ public interface MechanicalEquipmentPositionDevMapper extends BaseMapper<Mechani
IPage<MechanicalEquipmentPositionDev> queryList(Page<MechanicalEquipmentPositionDev> page, @Param(Constants.WRAPPER) QueryWrapper<MechanicalEquipmentPositionDev> queryWrapper);
List<MechanicalEquipmentPositionDev> queryList(@Param(Constants.WRAPPER) QueryWrapper<MechanicalEquipmentPositionDev> queryWrapper);
CountVehiclePositionDevVo countDev(HashMap<String, Object> paramMap);
}

View File

@ -0,0 +1,16 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionFence;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 机械设备定位-围栏
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Mapper
public interface MechanicalEquipmentPositionFenceMapper extends BaseMapper<MechanicalEquipmentPositionFence> {
}

View File

@ -8,4 +8,15 @@
left join mechanical_equipment_position_dev mepd2 on mepd.dev_sn = mepd2.dev_sn
${ew.customSqlSegment}
</select>
<select id="getNewestData"
resultType="com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionData">
select *
from mechanical_equipment_position_data shd
join (select max(create_time) as create_time, dev_sn
from mechanical_equipment_position_data
where project_sn = #{projectSn}
group by dev_sn) t on t.create_time = shd.create_time and t.dev_sn=shd.dev_sn
group by shd.dev_sn
</select>
</mapper>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDayRecordMapper">
<select id="pageList"
resultType="com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord">
select *
from mechanical_equipment_position_day_record
where 1 = 1
<if test="p.devSn != null and p.devSn != ''">
and dev_sn = #{p.devSn}
</if>
<if test="p.month != null and p.month != ''">
and day >= concat(#{p.month},'-01')
and day <![CDATA[<=]]> concat(#{p.month},'31')
</if>
</select>
<select id="getTodayBeginData"
resultType="com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord">
select *
from mechanical_equipment_position_day_record
where dev_sn = #{devSn}
and create_time >= current_date
order by create_time
limit 1
</select>
</mapper>

View File

@ -3,9 +3,31 @@
<mapper namespace="com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDevMapper">
<select id="queryList"
resultType="com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDev">
select mepd.*,wi.worker_name driver_name
select mepd.*,wi.worker_name driver_name,IFNULL(((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heartbeat_time)) / 60) &lt;= 30
then 1
else 0 end)),0) online
from mechanical_equipment_position_dev mepd
left join worker_info wi on mepd.project_sn = wi.project_sn and wi.id=mepd.driver_id
${ew.customSqlSegment}
</select>
<select id="countDev" resultType="com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo">
select count(*) count,
IFNULL(sum(IFNULL(((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heartbeat_time)) / 60) &lt;= 30
then 1
else 0 end)), 0)),0) onlineCount,
IFNULL(sum(IFNULL(((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heartbeat_time)) / 60) > 30 then 1
else 0 end)), 0)),0) offlineCount
from mechanical_equipment_position_dev
where 1 = 1
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
<if test="projectSn != null and projectSn != ''">
and project_sn = #{projectSn}
</if>
</select>
</mapper>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionFenceMapper">
</mapper>

View File

@ -0,0 +1,23 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 机械设备定位-日行数据
* @author pds
* @date 2023-11-14
* @version V1.0
*/
public interface IMechanicalEquipmentPositionDayRecordService extends IService<MechanicalEquipmentPositionDayRecord> {
IPage<MechanicalEquipmentPositionDayRecord> queryPageList(HashMap<String, Object> paramMap);
List<MechanicalEquipmentPositionDayRecord> queryList(HashMap<String, Object> paramMap);
void add(MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord);
}

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.mechanicalequipmentposition.service;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDev;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo;
import java.util.HashMap;
import java.util.List;
@ -24,4 +25,7 @@ public interface IMechanicalEquipmentPositionDevService extends IService<Mechani
void edit(MechanicalEquipmentPositionDev mechanicalEquipmentPositionDev);
void delete(String id);
CountVehiclePositionDevVo countDev(HashMap<String, Object> paramMap);
}

View File

@ -0,0 +1,21 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionFence;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 机械设备定位-围栏
* @author pds
* @date 2023-11-14
* @version V1.0
*/
public interface IMechanicalEquipmentPositionFenceService extends IService<MechanicalEquipmentPositionFence> {
IPage<MechanicalEquipmentPositionFence> queryPageList(HashMap<String, Object> paramMap);
List<MechanicalEquipmentPositionFence> queryList(HashMap<String, Object> paramMap);
}

View File

@ -0,0 +1,64 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDayRecord;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDev;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDayRecordMapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDevMapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionDayRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.util.PageUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.List;
import com.zhgd.xmgl.util.RefUtil;
/**
* @Description: 机械设备定位-日行数据
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Service
public class MechanicalEquipmentPositionDayRecordServiceImpl extends ServiceImpl<MechanicalEquipmentPositionDayRecordMapper, MechanicalEquipmentPositionDayRecord> implements IMechanicalEquipmentPositionDayRecordService {
@Autowired
MechanicalEquipmentPositionDevMapper mechanicalEquipmentPositionDevMapper;
@Override
public IPage<MechanicalEquipmentPositionDayRecord> queryPageList(HashMap<String, Object> paramMap) {
Page<MechanicalEquipmentPositionDayRecord> page = PageUtil.getPage(paramMap);
IPage<MechanicalEquipmentPositionDayRecord> pageList = baseMapper.pageList(page, paramMap);
pageList.setRecords(dealList(pageList.getRecords()));
return pageList;
}
@Override
public List<MechanicalEquipmentPositionDayRecord> queryList(HashMap<String, Object> paramMap) {
return dealList(baseMapper.pageList(paramMap));
}
@Override
public void add(MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord) {
MechanicalEquipmentPositionDev dev = mechanicalEquipmentPositionDevMapper.selectOne(new LambdaQueryWrapper<MechanicalEquipmentPositionDev>()
.eq(MechanicalEquipmentPositionDev::getDevSn, mechanicalEquipmentPositionDayRecord.getDevSn()));
if (dev == null) {
throw new OpenAlertException("设备不存在");
}
mechanicalEquipmentPositionDayRecord.setProjectSn(dev.getProjectSn());
mechanicalEquipmentPositionDayRecord.setId(null);
save(mechanicalEquipmentPositionDayRecord);
}
private List<MechanicalEquipmentPositionDayRecord> dealList(List<MechanicalEquipmentPositionDayRecord> list) {
return list;
}
}

View File

@ -1,12 +1,15 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionDev;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDevMapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionDevService;
import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatDev;
import com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -15,6 +18,7 @@ import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.util.PageUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -53,6 +57,15 @@ public class MechanicalEquipmentPositionDevServiceImpl extends ServiceImpl<Mecha
String alias = "mepd.";
QueryWrapper<MechanicalEquipmentPositionDev> queryWrapper = QueryGenerator.initPageQueryWrapper(MechanicalEquipmentPositionDev.class, paramMap, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(MechanicalEquipmentPositionDev::getId));
Integer online = MapUtils.getInteger(paramMap, "online");
if (online != null) {
String dateTime = DateUtil.formatDateTime(DateUtil.offsetMinute(new Date(), -30));
if (online == 1) {
queryWrapper.ge(alias + RefUtil.fieldNameUlc(MechanicalEquipmentPositionDev::getHeartbeatTime), dateTime);
} else {
queryWrapper.lt(alias + RefUtil.fieldNameUlc(MechanicalEquipmentPositionDev::getHeartbeatTime), dateTime);
}
}
return queryWrapper;
}
@ -62,10 +75,10 @@ public class MechanicalEquipmentPositionDevServiceImpl extends ServiceImpl<Mecha
@Override
public void add(MechanicalEquipmentPositionDev mechanicalEquipmentPositionDev) {
List<MechanicalEquipmentPositionDev> safetyHatDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper<MechanicalEquipmentPositionDev>()
List<MechanicalEquipmentPositionDev> mechanicalEquipmentPositionDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper<MechanicalEquipmentPositionDev>()
.eq(MechanicalEquipmentPositionDev::getDevSn, mechanicalEquipmentPositionDev.getDevSn())
);
if (CollUtil.isNotEmpty(safetyHatDevList)) {
if (CollUtil.isNotEmpty(mechanicalEquipmentPositionDevList)) {
throw new OpenAlertException("设备sn已存在");
}
mechanicalEquipmentPositionDev.setId(null);
@ -74,11 +87,11 @@ public class MechanicalEquipmentPositionDevServiceImpl extends ServiceImpl<Mecha
@Override
public void edit(MechanicalEquipmentPositionDev mechanicalEquipmentPositionDev) {
List<MechanicalEquipmentPositionDev> safetyHatDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper<MechanicalEquipmentPositionDev>()
List<MechanicalEquipmentPositionDev> mechanicalEquipmentPositionDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper<MechanicalEquipmentPositionDev>()
.eq(MechanicalEquipmentPositionDev::getDevSn, mechanicalEquipmentPositionDev.getDevSn())
.ne(MechanicalEquipmentPositionDev::getId, mechanicalEquipmentPositionDev.getId())
);
if (CollUtil.isNotEmpty(safetyHatDevList)) {
if (CollUtil.isNotEmpty(mechanicalEquipmentPositionDevList)) {
throw new OpenAlertException("设备sn已存在");
}
baseMapper.updateById(mechanicalEquipmentPositionDev);
@ -93,5 +106,10 @@ public class MechanicalEquipmentPositionDevServiceImpl extends ServiceImpl<Mecha
baseMapper.deleteById(id);
}
@Override
public CountVehiclePositionDevVo countDev(HashMap<String, Object> paramMap) {
return baseMapper.countDev(paramMap);
}
}

View File

@ -0,0 +1,95 @@
package com.zhgd.xmgl.modules.mechanicalequipmentposition.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionData;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.entity.MechanicalEquipmentPositionFence;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionDataMapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.mapper.MechanicalEquipmentPositionFenceMapper;
import com.zhgd.xmgl.modules.mechanicalequipmentposition.service.IMechanicalEquipmentPositionFenceService;
import com.zhgd.xmgl.util.RegionUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.util.PageUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import com.zhgd.xmgl.util.RefUtil;
/**
* @Description: 机械设备定位-围栏
* @author pds
* @date 2023-11-14
* @version V1.0
*/
@Service
public class MechanicalEquipmentPositionFenceServiceImpl extends ServiceImpl<MechanicalEquipmentPositionFenceMapper, MechanicalEquipmentPositionFence> implements IMechanicalEquipmentPositionFenceService {
@Autowired
private MechanicalEquipmentPositionDataMapper mechanicalEquipmentPositionDataMapper;
@Override
public IPage<MechanicalEquipmentPositionFence> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<MechanicalEquipmentPositionFence> queryWrapper = getQueryWrapper(paramMap);
Page<MechanicalEquipmentPositionFence> page = PageUtil.getPage(paramMap);
IPage<MechanicalEquipmentPositionFence> pageList = this.page(page, queryWrapper);
pageList.setRecords(dealList(pageList.getRecords(), paramMap));
return pageList;
}
@Override
public List<MechanicalEquipmentPositionFence> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<MechanicalEquipmentPositionFence> queryWrapper = getQueryWrapper(paramMap);
return dealList(this.list(queryWrapper), paramMap);
}
private QueryWrapper<MechanicalEquipmentPositionFence> getQueryWrapper(HashMap<String, Object> paramMap) {
QueryWrapper<MechanicalEquipmentPositionFence> queryWrapper = QueryGenerator.initPageQueryWrapper(MechanicalEquipmentPositionFence.class, paramMap);
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(MechanicalEquipmentPositionFence::getId));
return queryWrapper;
}
private List<MechanicalEquipmentPositionFence> dealList(List<MechanicalEquipmentPositionFence> list, HashMap<String, Object> paramMap) {
String projectSn = MapUtils.getString(paramMap, "projectSn");
for (MechanicalEquipmentPositionFence fence : list) {
List<MechanicalEquipmentPositionData> dataList = mechanicalEquipmentPositionDataMapper.getNewestData(projectSn);
int workerNum = 0;
if (CollUtil.isNotEmpty(dataList)) {
for (MechanicalEquipmentPositionData d : dataList) {
boolean inFence = false;
//判断是否在围栏范围内
if (Objects.equals(fence.getRangeType(), 1)) {
inFence = RegionUtil.isInCircle(d.getLongitude(), d.getLatitude(), fence.getLongitude(), fence.getLatitude(), fence.getAreaRadius());
} else if (Objects.equals(fence.getRangeType(), 2)) {
String fenceShape = fence.getFenceShape();
if (StrUtil.isNotBlank(fenceShape)) {
String[] couples = StringUtils.split(fenceShape, ",");
Double[] lon = new Double[couples.length];
Double[] lat = new Double[couples.length];
for (int i = 0; i < couples.length; i++) {
String couple = couples[i];
String[] two = StringUtils.split(couple, "|");
lon[i] = Double.valueOf(two[0]);
lat[i] = Double.valueOf(two[1]);
}
inFence = RegionUtil.isInPolygon(d.getLongitude(), d.getLatitude(), lon, lat);
}
}
if (inFence) {
workerNum++;
}
}
fence.setWorkerNum(workerNum);
}
}
return list;
}
}