diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java deleted file mode 100644 index fc92337..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.casic.missiles.modular.system.service; - -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.service.IService; - -import java.util.List; - -/** - *

- * 设备表 服务类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface IBizDeviceService extends IService { - List selectPageList(Page page, String keywords, String online, String position); - - List selectList(String keywords, String online, String position); - - BizDevice selectById(String id); -} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java deleted file mode 100644 index fc92337..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.casic.missiles.modular.system.service; - -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.service.IService; - -import java.util.List; - -/** - *

- * 设备表 服务类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface IBizDeviceService extends IService { - List selectPageList(Page page, String keywords, String online, String position); - - List selectList(String keywords, String online, String position); - - BizDevice selectById(String id); -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java deleted file mode 100644 index 0095d39..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.IExpandComponentService; -import com.casic.missiles.modular.system.model.Area; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.dao.BizDeviceMapper; -import com.casic.missiles.modular.system.service.IBizDeviceService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - *

- * 设备表 服务实现类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@Service -public class BizDeviceServiceImpl extends ServiceImpl implements IBizDeviceService { - - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IExpandComponentService expandComponentService; - - @Override - public List selectPageList(Page page, String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectPage(page, query); - return wrapDeviceList(deviceList); - } - - @Override - public List selectList(String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectList(query); - deviceList.forEach(device -> { - wrapDevice(device); - }); - return deviceList; - } - - @Override - public BizDevice selectById(String id) { - BizDevice device = super.selectById(id); - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return wrapDevice(device); - } - - private List wrapDeviceList(List deviceList) { - deviceList.forEach(device -> { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - }); - return deviceList; - } - - private BizDevice wrapDevice(BizDevice device) { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return device; - } -} diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java deleted file mode 100644 index fc92337..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.casic.missiles.modular.system.service; - -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.service.IService; - -import java.util.List; - -/** - *

- * 设备表 服务类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface IBizDeviceService extends IService { - List selectPageList(Page page, String keywords, String online, String position); - - List selectList(String keywords, String online, String position); - - BizDevice selectById(String id); -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java deleted file mode 100644 index 0095d39..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.IExpandComponentService; -import com.casic.missiles.modular.system.model.Area; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.dao.BizDeviceMapper; -import com.casic.missiles.modular.system.service.IBizDeviceService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - *

- * 设备表 服务实现类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@Service -public class BizDeviceServiceImpl extends ServiceImpl implements IBizDeviceService { - - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IExpandComponentService expandComponentService; - - @Override - public List selectPageList(Page page, String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectPage(page, query); - return wrapDeviceList(deviceList); - } - - @Override - public List selectList(String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectList(query); - deviceList.forEach(device -> { - wrapDevice(device); - }); - return deviceList; - } - - @Override - public BizDevice selectById(String id) { - BizDevice device = super.selectById(id); - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return wrapDevice(device); - } - - private List wrapDeviceList(List deviceList) { - deviceList.forEach(device -> { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - }); - return deviceList; - } - - private BizDevice wrapDevice(BizDevice device) { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return device; - } -} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1435feb..3d5267b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,11 +1,12 @@ server: port: 8083 + context-path: /enviroment ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/casic_smartcity_environment?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/casic_smartcity_dcms_cr?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! initial-size: 2 min-idle: 1 jms: @@ -17,7 +18,9 @@ port: 11412 password: ew5T4K3#203lwh redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer - +mybatis-plus: + configuration-properties: + enviromentDataBaseName: casic_smartcity_environment #引用环境监测库 casic: # kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java deleted file mode 100644 index fc92337..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.casic.missiles.modular.system.service; - -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.service.IService; - -import java.util.List; - -/** - *

- * 设备表 服务类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface IBizDeviceService extends IService { - List selectPageList(Page page, String keywords, String online, String position); - - List selectList(String keywords, String online, String position); - - BizDevice selectById(String id); -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java deleted file mode 100644 index 0095d39..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.IExpandComponentService; -import com.casic.missiles.modular.system.model.Area; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.dao.BizDeviceMapper; -import com.casic.missiles.modular.system.service.IBizDeviceService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - *

- * 设备表 服务实现类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@Service -public class BizDeviceServiceImpl extends ServiceImpl implements IBizDeviceService { - - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IExpandComponentService expandComponentService; - - @Override - public List selectPageList(Page page, String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectPage(page, query); - return wrapDeviceList(deviceList); - } - - @Override - public List selectList(String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectList(query); - deviceList.forEach(device -> { - wrapDevice(device); - }); - return deviceList; - } - - @Override - public BizDevice selectById(String id) { - BizDevice device = super.selectById(id); - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return wrapDevice(device); - } - - private List wrapDeviceList(List deviceList) { - deviceList.forEach(device -> { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - }); - return deviceList; - } - - private BizDevice wrapDevice(BizDevice device) { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return device; - } -} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1435feb..3d5267b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,11 +1,12 @@ server: port: 8083 + context-path: /enviroment ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/casic_smartcity_environment?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/casic_smartcity_dcms_cr?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! initial-size: 2 min-idle: 1 jms: @@ -17,7 +18,9 @@ port: 11412 password: ew5T4K3#203lwh redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer - +mybatis-plus: + configuration-properties: + enviromentDataBaseName: casic_smartcity_environment #引用环境监测库 casic: # kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 5183892..f8d57f9 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -11,6 +11,8 @@ mybatis-plus: global-config: sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector + configuration-properties: + enviromentDataBaseName: casic_smartcity_environment #引用环境监测库 ################### mybatis-plus配置 ################### ################### guns配置 ################### flowable: diff --git a/.gitignore b/.gitignore index 9e20bc1..195b9c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ **/target/** +**/test/** logs/ *.iml diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java new file mode 100644 index 0000000..f13505e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -0,0 +1,127 @@ +package com.casic.missiles.modular.device.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.casic.missiles.modular.device.service.IDeviceService; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 控制器 + * + * @author dev + * @Date 2021-07-26 14:38:07 + */ +@RestController +@RequestMapping("/device") +public class DeviceController extends BaseController { + + private final IDeviceService deviceService; + + /** + * 设备应用构造 + * + * @param deviceService 设备服务 + */ + public DeviceController(IDeviceService deviceService) { + this.deviceService = deviceService; + } + + + /** + * 设备列表查询 + * + * @param vo 查询参数 + * @return + */ + @GetMapping(value = "/list") + public Object list(DeviceVO vo) { + return new SuccessResponseData(deviceService.selectList(vo.convertQuery().apply(vo))); + } + + /** + * 设备分页列表查询 + * + * @param vo 查询参数 + * @return 设备分页列表 + */ + @GetMapping(value = "/listPage") + public Object listPage(DeviceVO vo) { + Page page = new PageFactory().defaultPage(); + List deviceList = deviceService.selectPageList(page, vo.convertQuery().apply(vo)); + Page dtoPage = new PageFactory().defaultPage(); + dtoPage.setRecords(deviceList); + dtoPage.setTotal(page.getTotal()); + return new SuccessResponseData(super.packForBT(dtoPage)); + } + + + /** + * 添加设备信息 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/add") + public Object add(Device device) { + deviceService.insert(device); + return ResponseData.success(); + } + + + /** + * 删除设备信息 + * + * @param ids 设备主键集合 + * @return 删除处理结果 + */ + @PostMapping(value = "/delete") + public Object delete(@RequestParam("ids") List ids) { + if (ToolUtil.isEmpty(ids)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.deleteBatchByDeviceIds(ids); + return ResponseData.success(); + } + + + /** + * 设备信息修改 + * + * @param device 设备信息 + * @return 处理结果 + */ + @PostMapping(value = "/update") + public Object update(Device device) { + if (ToolUtil.isEmpty(device.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + deviceService.updateById(device); + return ResponseData.success(); + } + + + /** + * 查询详情 + * @param id 设备主键 + * @return 查询结果 + */ + @GetMapping(value = "/info") + public Object detail(Long id) { + if (ToolUtil.isEmpty(id)) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } + return ResponseData.success(deviceService.selectById(id)); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java new file mode 100644 index 0000000..581d78f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/DeviceMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.dao; + +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 设备表 Mapper 接口 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface DeviceMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..32888c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/DeviceMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java new file mode 100644 index 0000000..953cd1e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/BaseModel.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; + +import java.util.Date; + +/** + * 抽象字段封装 + * + * @param 基础属性字段封装 + * @author lwh + */ +public abstract class BaseModel extends Model { + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java new file mode 100644 index 0000000..8f2de34 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/Device.java @@ -0,0 +1,155 @@ +package com.casic.missiles.modular.device.model; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.vo.DeviceVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.function.Function; + +/** + *

+ * 设备表 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +@EqualsAndHashCode(callSuper = true) +@TableName("casic_smartcity_environment.biz_device") +@Data +@NoArgsConstructor +public class Device extends BaseModel { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 设备编号 + */ + @TableField("device_no") + private String deviceNo; + + /** + * 设备名称 + */ + @TableField("device_name") + private String deviceName; + + /** + * 设备类型 + */ + private String type; + + /** + * 省编号 + */ + @TableField("province_code") + private String provinceCode; + + /** + * 城市编号 + */ + @TableField("city_code") + private String cityCode; + + /** + * 区编码 + */ + @TableField("area_code") + private String areaCode; + + /** + * 详细地址 + */ + private String position; + + /** + * 经度 + */ + private String lng; + + /** + * 纬度 + */ + private String lat; + + /** + * 备注 + */ + private String notes; + + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + /** + * 所属管理组织 + */ + @TableField("dept_id") + private String deptId; + + /** + * 安装时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @TableField("install_date") + private Date installDate; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + + /** + * 传输数据转换 + * + * @param otherConvert 其他转换操作 + * @return 业务传输数据 + */ + public DeviceDTO convertDTO(Function otherConvert) { + DeviceDTO dto = new DeviceDTO(); + dto.setId(this.getId()); + dto.setDeviceNo(this.getDeviceNo()); + dto.setDeviceName(this.getDeviceName()); + dto.setType(this.getType()); + dto.setProvinceCode(this.getProvinceCode()); + dto.setCityCode(this.getCityCode()); + dto.setAreaCode(this.getAreaCode()); + dto.setPosition(this.getPosition()); + dto.setLng(this.getLng()); + dto.setLat(this.getLat()); + dto.setNotes(this.getNotes()); + dto.setOnline(this.getOnline()); + dto.setDeptId(this.getDeptId()); + dto.setInstallDate(this.getInstallDate()); + dto.setTs(this.getTs()); + return otherConvert.apply(dto); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java new file mode 100644 index 0000000..dc7b58e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/dto/DeviceDTO.java @@ -0,0 +1,103 @@ +package com.casic.missiles.modular.device.model.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 设备传输对象 + * + * @author lwh + */ +@Data +public class DeviceDTO { + private Long id; + /** + * 设备编号 + */ + private String deviceNo; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备类型 + */ + private String type; + /** + * 省编号 + */ + private String provinceCode; + /** + * 城市编号 + */ + private String cityCode; + /** + * 区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String position; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 备注 + */ + private String notes; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date installDate; + /** + * 所属组织 + */ + private String deptId; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + //--------------------------虚拟字段--------------------------- + + /** + * 类型名称 + */ + private String typeName; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区/县 + */ + private String area; + + /** + * 组织名称 + */ + private String deptName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java new file mode 100644 index 0000000..30e248a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/vo/DeviceVO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.model.vo; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.device.model.Device; +import lombok.Data; +import org.apache.commons.lang.StringUtils; + +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 视图对象 + * + * @author lwh + */ +@Data +public class DeviceVO { + /** + * 查询关键字(设备编号 设备名称) + */ + private String keywords; + /** + * 在线状态 1为在线,2为离线 + */ + private String online; + /** + * 详细地址 + */ + private String position; + + /** + * 空构造器 + * + * @return 检索参数 + */ + public Supplier> createEmptyQuery() { + return () -> new EntityWrapper<>(); + } + + /** + * 查询参数构建 + * + * @return 检索参数 + */ + public Function> convertQuery() { + return (vo) -> { + Supplier> supplier = this.createEmptyQuery(); + EntityWrapper query = supplier.get(); + query.eq("del_flag", 0); + if (StringUtils.isNotEmpty(vo.getOnline())) { + query.eq("online", vo.getOnline()); + } + if (StringUtils.isNotEmpty(vo.getPosition())) { + query.like("position", vo.getPosition()); + } + + if (StringUtils.isNotEmpty(vo.getKeywords())) { + query.andNew().like("device_no", vo.getKeywords()).or().like("device_name", vo.getKeywords()); + } + return query; + }; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java new file mode 100644 index 0000000..6fac74a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.model.Device; +import com.baomidou.mybatisplus.service.IService; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 设备表 服务类 + *

+ * + * @author gwq123 + * @since 2021-07-26 + */ +public interface IDeviceService extends IService { + /** + * 根据分页查询设备数据 + * + * @param page 分页参数 + * @param query 检索参数 + * @return 设备列表 + */ + List selectPageList(Page page, EntityWrapper query); + + /** + * 设备列表查询 + * + * @param query 检索参数封装 + * @return 设备列表 + */ + List selectList(EntityWrapper query); + + /** + * 根据设备主键查询设备信息 + * + * @param id 主键 + * @return 设备信息 + */ + DeviceDTO selectByDeviceId(Serializable id); + + /** + * 批量删除设备 + * @param ids 设备主键集合 + */ + void deleteBatchByDeviceIds(List ids); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..48e1a38 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -0,0 +1,116 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.common.service.IExpandComponentService; +import com.casic.missiles.modular.device.dao.DeviceMapper; +import com.casic.missiles.modular.device.model.Device; +import com.casic.missiles.modular.device.model.dto.DeviceDTO; +import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.system.model.Area; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 设备表 服务实现类 + *

+ * + * @author lwh + * @since 2021-07-26 + */ +@Service +public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + + private final ICommonPermissionService permissionService; + private final IExpandComponentService expandComponentService; + + /** + * 设备服务构造 + * + * @param permissionService 权限服务 + * @param expandComponentService 拓展服务 + */ + public DeviceServiceImpl(ICommonPermissionService permissionService, IExpandComponentService expandComponentService) { + this.permissionService = permissionService; + this.expandComponentService = expandComponentService; + } + + /** + * 分页检索 + * + * @param page 检索参数 + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectPageList(Page page, EntityWrapper query) { + List deviceList = this.baseMapper.selectPage(page, query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 列表检索 + * + * @param query 检索条件 + * @return 设备列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List selectList(EntityWrapper query) { + List deviceList = this.baseMapper.selectList(query); + return deviceList.stream().map(device -> device.convertDTO(wrapDevice())).collect(Collectors.toList()); + } + + /** + * 设备详情查询 + * + * @param id 设备主键 + * @return 设备信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public DeviceDTO selectByDeviceId(Serializable id) { + Device device = super.selectById(id); + return device.convertDTO(wrapDevice()); + } + + /** + * 批量删除设备信息 + * + * @param ids 设备主键集合 + */ + @Override + public void deleteBatchByDeviceIds(List ids) { + List deviceList = this.selectBatchIds(ids); + deviceList.stream().forEach(device -> device.setDelFlag(device.getId() + "")); + this.updateBatchById(deviceList); + } + + /** + * 服务数据转换 + * + * @return 服务转换操作 + */ + private Function wrapDevice() { + return (dto) -> { + Area province = expandComponentService.getAreaById(dto.getProvinceCode()); + dto.setProvince(province.getAreaName()); + Area city = expandComponentService.getAreaById(dto.getCityCode()); + dto.setCity(city.getAreaName()); + Area area = expandComponentService.getAreaById(dto.getAreaCode()); + dto.setArea(area.getAreaName()); + dto.setDeptName(permissionService.getDeptName(dto.getDeptId())); + dto.setTypeName(permissionService.getDictNameByCode("envDeviceType", dto.getType())); + return dto; + }; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java deleted file mode 100644 index ae30b58..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BizDeviceController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.response.ResponseData; -import com.casic.missiles.core.base.response.SuccessResponseData; -import com.casic.missiles.core.exception.GunsException; -import com.casic.missiles.core.exception.GunsExceptionEnum; -import com.casic.missiles.core.util.ToolUtil; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import com.baomidou.mybatisplus.plugins.Page; - -import java.util.List; - -import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.springframework.web.bind.annotation.RequestParam; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.service.IBizDeviceService; - -/** - * 控制器 - * - * @author dev - * @Date 2021-07-26 14:38:07 - */ -@Controller -@RequestMapping("/device") -public class BizDeviceController extends BaseController { - - - @Autowired - private IBizDeviceService bizDeviceService; - - - /** - * 获取列表 - */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String keywords, String online, String position) { - List deviceList = bizDeviceService.selectList(keywords, online, position); - return new SuccessResponseData(deviceList); - } - - /** - * 获取分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String online, String position) { - Page page = new PageFactory().defaultPage(); - List deviceList = bizDeviceService.selectPageList(page, keywords, online, position); - page.setRecords(deviceList); - return new SuccessResponseData(super.packForBT(page)); - } - - /** - * 新增 - */ - @RequestMapping(value = "/add") - @ResponseBody - public Object add(BizDevice bizDevice) { - bizDeviceService.insert(bizDevice); - return ResponseData.success(); - } - - /** - * 删除 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam("ids") List ids) { - if (ToolUtil.isEmpty(ids)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - List deviceList = bizDeviceService.selectBatchIds(ids); - deviceList.forEach(device -> { - device.setDelFlag(System.currentTimeMillis() + ""); - }); - bizDeviceService.updateBatchById(deviceList); - return ResponseData.success(); - } - - /** - * 修改 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(BizDevice bizDevice) { - if (ToolUtil.isEmpty(bizDevice.getId())) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - bizDeviceService.updateById(bizDevice); - return ResponseData.success(); - } - - /** - * 详情 - */ - @RequestMapping(value = "/info") - @ResponseBody - public Object detail(String id) { - if (ToolUtil.isEmpty(id)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - - BizDevice device = bizDeviceService.selectById(id); - return ResponseData.success(device); - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java deleted file mode 100644 index 1b09b93..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BizDeviceMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.casic.missiles.modular.system.dao; - -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.mapper.BaseMapper; - -/** - *

- * 设备表 Mapper 接口 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface BizDeviceMapper extends BaseMapper { - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml deleted file mode 100644 index 4c38ada..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizDeviceMapper.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, device_name AS deviceName, type, province_code AS provinceCode, city_code AS cityCode, area_code AS areaCode, position, lng, lat, notes, online, deptid, install_date AS installDate, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml deleted file mode 100644 index f08ce83..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BizMiniteDataMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts - - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml new file mode 100644 index 0000000..f08ce83 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, device_no AS deviceNo, pm25, pm10, tsp, noise, wind_speed AS windSpeed, wind_direction AS windDirection, wind_power AS windPower, temperature, humidity, pressure, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java index 9d26088..4a5eecd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmLevel.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_level") +@TableName("casic_smartcity_environment.biz_alarm_level") public class BizAlarmLevel extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java index b3fdc01..1ec831e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRecords.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_alarm_records") +@TableName("casic_smartcity_environment.biz_alarm_records") public class BizAlarmRecords extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java index d3c2658..969cb87 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizAlarmRule.java @@ -20,7 +20,7 @@ * @since 2021-07-26 */ @Data -@TableName("biz_alarm_rule") +@TableName("casic_smartcity_environment.biz_alarm_rule") public class BizAlarmRule extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java index 71a4306..ad803a5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDayData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_day_data") +@TableName("casic_smartcity_environment.biz_day_data") public class BizDayData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java deleted file mode 100644 index 51fe24a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizDevice.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.casic.missiles.modular.system.model; - -import java.io.Serializable; - -import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.enums.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; -import com.casic.missiles.core.base.json.DateDeserializer; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - *

- * 设备表 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@TableName("biz_device") -@Data -public class BizDevice extends Model { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 设备编号 - */ - @TableField("device_no") - private String deviceNo; - /** - * 设备名称 - */ - @TableField("device_name") - private String deviceName; - /** - * 设备类型 - */ - private String type; - /** - * 省编号 - */ - @TableField("province_code") - private String provinceCode; - /** - * 城市编号 - */ - @TableField("city_code") - private String cityCode; - /** - * 区编码 - */ - @TableField("area_code") - private String areaCode; - /** - * 详细地址 - */ - private String position; - /** - * 经度 - */ - private String lng; - /** - * 纬度 - */ - private String lat; - /** - * 备注 - */ - private String notes; - /** - * 在线状态 1为在线,2为离线 - */ - private String online; - /** - * 所属管理组织 - */ - private String deptid; - /** - * 安装时间 - */ - @DateTimeFormat(pattern="yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @TableField("install_date") - private Date installDate; - /** - * 记录更新时间 - */ - @JSONField(serializeUsing = DateDeserializer.class) - private Date ts; - /** - * 删除标记 - */ - @JsonIgnore - @TableField("del_flag") - private String delFlag; - - @TableField(exist = false) - private String typeName; - - @TableField(exist = false) - private String province; - - @TableField(exist = false) - private String city; - - @TableField(exist = false) - private String area; - - @TableField(exist = false) - private String deptName; - - @Override - protected Serializable pkVal() { - return this.id; - } -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java index dabfa27..d57eb0c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizHourData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_hour_data") +@TableName("casic_smartcity_environment.biz_hour_data") public class BizHourData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java index b12cee0..2b48763 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizMiniteData.java @@ -18,7 +18,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_minite_data") +@TableName("casic_smartcity_environment.biz_minite_data") public class BizMiniteData extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java index 8362a1b..b1ab24a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BizSensor.java @@ -17,7 +17,7 @@ * @author gwq123 * @since 2021-07-26 */ -@TableName("biz_sensor") +@TableName("casic_smartcity_environment.biz_sensor") public class BizSensor extends Model { private static final long serialVersionUID = 1L; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java deleted file mode 100644 index fc92337..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBizDeviceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.casic.missiles.modular.system.service; - -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.modular.system.model.BizDevice; -import com.baomidou.mybatisplus.service.IService; - -import java.util.List; - -/** - *

- * 设备表 服务类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -public interface IBizDeviceService extends IService { - List selectPageList(Page page, String keywords, String online, String position); - - List selectList(String keywords, String online, String position); - - BizDevice selectById(String id); -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java deleted file mode 100644 index 0095d39..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BizDeviceServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.IExpandComponentService; -import com.casic.missiles.modular.system.model.Area; -import com.casic.missiles.modular.system.model.BizDevice; -import com.casic.missiles.modular.system.dao.BizDeviceMapper; -import com.casic.missiles.modular.system.service.IBizDeviceService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - *

- * 设备表 服务实现类 - *

- * - * @author gwq123 - * @since 2021-07-26 - */ -@Service -public class BizDeviceServiceImpl extends ServiceImpl implements IBizDeviceService { - - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IExpandComponentService expandComponentService; - - @Override - public List selectPageList(Page page, String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectPage(page, query); - return wrapDeviceList(deviceList); - } - - @Override - public List selectList(String keywords, String online, String position) { - EntityWrapper query = new EntityWrapper<>(); - query.eq("del_flag", 0); - if (StringUtils.isNotEmpty(online)) { - query.eq("online", online); - } - if (StringUtils.isNotEmpty(position)) { - query.like("position", position); - } - if (StringUtils.isNotEmpty(keywords)) { - query.andNew().like("device_no", keywords).or().like("device_name", keywords); - } - - List deviceList = this.baseMapper.selectList(query); - deviceList.forEach(device -> { - wrapDevice(device); - }); - return deviceList; - } - - @Override - public BizDevice selectById(String id) { - BizDevice device = super.selectById(id); - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return wrapDevice(device); - } - - private List wrapDeviceList(List deviceList) { - deviceList.forEach(device -> { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - }); - return deviceList; - } - - private BizDevice wrapDevice(BizDevice device) { - Area province = expandComponentService.getAreaById(device.getProvinceCode()); - device.setProvince(province.getAreaName()); - Area city = expandComponentService.getAreaById(device.getCityCode()); - device.setCity(city.getAreaName()); - Area area = expandComponentService.getAreaById(device.getAreaCode()); - device.setArea(area.getAreaName()); - - device.setDeptName(permissionService.getDeptName(device.getDeptid())); - return device; - } -} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 1435feb..3d5267b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,11 +1,12 @@ server: port: 8083 + context-path: /enviroment ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/casic_smartcity_environment?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/casic_smartcity_dcms_cr?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203! initial-size: 2 min-idle: 1 jms: @@ -17,7 +18,9 @@ port: 11412 password: ew5T4K3#203lwh redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer - +mybatis-plus: + configuration-properties: + enviromentDataBaseName: casic_smartcity_environment #引用环境监测库 casic: # kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 5183892..f8d57f9 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -11,6 +11,8 @@ mybatis-plus: global-config: sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector + configuration-properties: + enviromentDataBaseName: casic_smartcity_environment #引用环境监测库 ################### mybatis-plus配置 ################### ################### guns配置 ################### flowable: diff --git a/pom.xml b/pom.xml index 7ea330f..7fc2c9b 100644 --- a/pom.xml +++ b/pom.xml @@ -83,4 +83,4 @@ - + \ No newline at end of file