From 88be126b4ea8f22a5ee6e1633ad921824174569f Mon Sep 17 00:00:00 2001 From: guo Date: Mon, 18 Mar 2024 18:16:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E6=A2=B0=E8=AE=BE=E5=A4=87=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lEquipmentPositionDayRecordController.java | 185 ++++++++++++++++++ ...hanicalEquipmentPositionDevController.java | 35 ++-- ...nicalEquipmentPositionFenceController.java | 170 ++++++++++++++++ .../MechanicalEquipmentPositionDayRecord.java | 74 +++++++ .../MechanicalEquipmentPositionDev.java | 8 + .../MechanicalEquipmentPositionFence.java | 99 ++++++++++ ...MechanicalEquipmentPositionDataMapper.java | 2 + ...nicalEquipmentPositionDayRecordMapper.java | 32 +++ .../MechanicalEquipmentPositionDevMapper.java | 4 + ...echanicalEquipmentPositionFenceMapper.java | 16 ++ .../MechanicalEquipmentPositionDataMapper.xml | 11 ++ ...anicalEquipmentPositionDayRecordMapper.xml | 27 +++ .../MechanicalEquipmentPositionDevMapper.xml | 24 ++- ...MechanicalEquipmentPositionFenceMapper.xml | 4 + ...icalEquipmentPositionDayRecordService.java | 23 +++ ...MechanicalEquipmentPositionDevService.java | 4 + ...chanicalEquipmentPositionFenceService.java | 21 ++ ...EquipmentPositionDayRecordServiceImpl.java | 64 ++++++ ...anicalEquipmentPositionDevServiceImpl.java | 26 ++- ...icalEquipmentPositionFenceServiceImpl.java | 95 +++++++++ 20 files changed, 907 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDayRecordController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionFenceController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDayRecord.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionFence.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDayRecordMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionFenceMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDayRecordMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionFenceMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDayRecordService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionFenceService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDayRecordServiceImpl.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionFenceServiceImpl.java diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDayRecordController.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDayRecordController.java new file mode 100644 index 000000000..8777fafd6 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDayRecordController.java @@ -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> queryPageList(@ApiIgnore @RequestParam HashMap 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> queryList(@ApiIgnore @RequestParam HashMap paramMap) { + return Result.success(mechanicalEquipmentPositionDayRecordService.queryList(paramMap)); + } + + /** + * 添加 + * + * @param mechanicalEquipmentPositionDayRecord + * @return + */ + @ApiOperation(value = "添加机械设备定位-日行数据信息", notes = "添加机械设备定位-日行数据信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result 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 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 delete(@ApiIgnore @RequestBody HashMap map) { + String id = MapUtils.getString(map, "id"); + Result result = new Result(); + 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 queryById(@RequestParam(name = "id", required = true) String id) { + Result result = new Result(); + 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 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 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; + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDevController.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDevController.java index 5f35b04c5..1b27a3b83 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDevController.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionDevController.java @@ -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> queryPageList(@ApiIgnore @RequestParam HashMap paramMap) { return Result.success(mechanicalEquipmentPositionDevService.queryPageList(paramMap)); @@ -115,14 +117,23 @@ public class MechanicalEquipmentPositionDevController { @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { Result result = new Result(); - 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 countDev(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(mechanicalEquipmentPositionDevService.countDev(paramMap)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionFenceController.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionFenceController.java new file mode 100644 index 000000000..992b2a0eb --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/controller/MechanicalEquipmentPositionFenceController.java @@ -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> queryPageList(@ApiIgnore @RequestParam HashMap paramMap) { + return Result.success(mechanicalEquipmentPositionFenceService.queryPageList(paramMap)); + } + + /** + * 列表查询 + * + * @return + */ + @ApiOperation(value = "列表查询机械设备定位-围栏信息", notes = "列表查询机械设备定位-围栏信息", httpMethod = "GET") + @ApiImplicitParams({ + }) + @GetMapping(value = "/list") + public Result> queryList(@ApiIgnore @RequestParam HashMap paramMap) { + return Result.success(mechanicalEquipmentPositionFenceService.queryList(paramMap)); + } + + /** + * 添加 + * + * @param mechanicalEquipmentPositionFence + * @return + */ + @ApiOperation(value = "添加机械设备定位-围栏信息", notes = "添加机械设备定位-围栏信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result 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 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 delete(@ApiIgnore @RequestBody HashMap map) { + String id = MapUtils.getString(map, "id"); + Result result = new Result(); + 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 deleteBatch(@ApiIgnore @RequestBody HashMap paramMap) { + String ids = MapUtils.getString(paramMap, "ids"); + Result 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 queryById(@RequestParam(name = "id", required = true) String id) { + Result result = new Result(); + MechanicalEquipmentPositionFence mechanicalEquipmentPositionFence = mechanicalEquipmentPositionFenceService.getById(id); + if (mechanicalEquipmentPositionFence == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(mechanicalEquipmentPositionFence); + result.setSuccess(true); + } + return result; + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDayRecord.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDayRecord.java new file mode 100644 index 000000000..340492890 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDayRecord.java @@ -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; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java index 54e09496f..6ff00e3d5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionDev.java @@ -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) diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionFence.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionFence.java new file mode 100644 index 000000000..e16a5e4be --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/entity/MechanicalEquipmentPositionFence.java @@ -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; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDataMapper.java index 1de69fce3..b5f190e3d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDataMapper.java @@ -23,4 +23,6 @@ public interface MechanicalEquipmentPositionDataMapper extends BaseMapper queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List getNewestData(String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDayRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDayRecordMapper.java new file mode 100644 index 000000000..b9d9b2884 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDayRecordMapper.java @@ -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 { + + IPage pageList(Page page, @Param("p") HashMap paramMap); + + List pageList(@Param("p") HashMap paramMap); + + MechanicalEquipmentPositionDayRecord getTodayBeginData(String devSn); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDevMapper.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDevMapper.java index 8ffa35492..360e771a2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDevMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionDevMapper.java @@ -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 queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + CountVehiclePositionDevVo countDev(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionFenceMapper.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionFenceMapper.java new file mode 100644 index 000000000..37c6bbd4c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/MechanicalEquipmentPositionFenceMapper.java @@ -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 { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDataMapper.xml index a15c7e640..1d9a6a712 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDataMapper.xml @@ -8,4 +8,15 @@ left join mechanical_equipment_position_dev mepd2 on mepd.dev_sn = mepd2.dev_sn ${ew.customSqlSegment} + + diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDayRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDayRecordMapper.xml new file mode 100644 index 000000000..8b2687afa --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDayRecordMapper.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDevMapper.xml b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDevMapper.xml index 3106a5960..a684dd728 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDevMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionDevMapper.xml @@ -3,9 +3,31 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionFenceMapper.xml b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionFenceMapper.xml new file mode 100644 index 000000000..44dbb968e --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/mapper/xml/MechanicalEquipmentPositionFenceMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDayRecordService.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDayRecordService.java new file mode 100644 index 000000000..08ee52402 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDayRecordService.java @@ -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 { + + IPage queryPageList(HashMap paramMap); + + List queryList(HashMap paramMap); + + void add(MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDevService.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDevService.java index 80aadbf3a..3ae5a122e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDevService.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionDevService.java @@ -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 paramMap); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionFenceService.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionFenceService.java new file mode 100644 index 000000000..e1198f5c6 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/IMechanicalEquipmentPositionFenceService.java @@ -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 { + + IPage queryPageList(HashMap paramMap); + + List queryList(HashMap paramMap); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDayRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDayRecordServiceImpl.java new file mode 100644 index 000000000..97362a24b --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDayRecordServiceImpl.java @@ -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 implements IMechanicalEquipmentPositionDayRecordService { + @Autowired + MechanicalEquipmentPositionDevMapper mechanicalEquipmentPositionDevMapper; + + @Override + public IPage queryPageList(HashMap paramMap) { + Page page = PageUtil.getPage(paramMap); + IPage pageList = baseMapper.pageList(page, paramMap); + pageList.setRecords(dealList(pageList.getRecords())); + return pageList; + } + + @Override + public List queryList(HashMap paramMap) { + return dealList(baseMapper.pageList(paramMap)); + } + + @Override + public void add(MechanicalEquipmentPositionDayRecord mechanicalEquipmentPositionDayRecord) { + MechanicalEquipmentPositionDev dev = mechanicalEquipmentPositionDevMapper.selectOne(new LambdaQueryWrapper() + .eq(MechanicalEquipmentPositionDev::getDevSn, mechanicalEquipmentPositionDayRecord.getDevSn())); + if (dev == null) { + throw new OpenAlertException("设备不存在"); + } + mechanicalEquipmentPositionDayRecord.setProjectSn(dev.getProjectSn()); + mechanicalEquipmentPositionDayRecord.setId(null); + save(mechanicalEquipmentPositionDayRecord); + } + + + private List dealList(List list) { + return list; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDevServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDevServiceImpl.java index d894a9aef..43f914bf3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDevServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionDevServiceImpl.java @@ -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 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 safetyHatDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper() + List mechanicalEquipmentPositionDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper() .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 safetyHatDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper() + List mechanicalEquipmentPositionDevList = mechanicalEquipmentPositionDevMapper.selectList(new LambdaQueryWrapper() .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 paramMap) { + return baseMapper.countDev(paramMap); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionFenceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionFenceServiceImpl.java new file mode 100644 index 000000000..db51bb35b --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/mechanicalequipmentposition/service/impl/MechanicalEquipmentPositionFenceServiceImpl.java @@ -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 implements IMechanicalEquipmentPositionFenceService { + @Autowired + private MechanicalEquipmentPositionDataMapper mechanicalEquipmentPositionDataMapper; + + @Override + public IPage queryPageList(HashMap paramMap) { + QueryWrapper queryWrapper = getQueryWrapper(paramMap); + Page page = PageUtil.getPage(paramMap); + IPage pageList = this.page(page, queryWrapper); + pageList.setRecords(dealList(pageList.getRecords(), paramMap)); + return pageList; + } + + @Override + public List queryList(HashMap paramMap) { + QueryWrapper queryWrapper = getQueryWrapper(paramMap); + return dealList(this.list(queryWrapper), paramMap); + } + + private QueryWrapper getQueryWrapper(HashMap paramMap) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(MechanicalEquipmentPositionFence.class, paramMap); + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(MechanicalEquipmentPositionFence::getId)); + return queryWrapper; + } + + private List dealList(List list, HashMap paramMap) { + String projectSn = MapUtils.getString(paramMap, "projectSn"); + for (MechanicalEquipmentPositionFence fence : list) { + List 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; + } +}