Merge branch 'master' of https://git.njzscloud.com/lzq/njzscloud
commit
ec4319f53f
|
|
@ -0,0 +1,19 @@
|
|||
package com.njzscloud.supervisory.device.contant;
|
||||
|
||||
import com.njzscloud.common.core.ienum.DictStr;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 字典代码:localizer_category
|
||||
* 字典名称:定位器类别
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum LocalizerCategory implements DictStr {
|
||||
Tuqiang("Tuqiang", "途强定位器"),
|
||||
HangTianZiJin("HangTianZiJin", "航天紫金定位器"),
|
||||
;
|
||||
private final String val;
|
||||
private final String txt;
|
||||
}
|
||||
|
|
@ -5,6 +5,8 @@ import com.njzscloud.common.mp.support.PageParam;
|
|||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.DeviceLocalizerEntity;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.LocalizerConfig;
|
||||
import com.njzscloud.supervisory.device.pojo.param.SearchDeviceLocalizerParam;
|
||||
import com.njzscloud.supervisory.device.pojo.result.SearchDeviceLocalizerResult;
|
||||
import com.njzscloud.supervisory.device.service.DeviceLocalizerService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -54,7 +56,7 @@ public class DeviceLocalizerController {
|
|||
* 详情
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public R<DeviceLocalizerEntity> detail(@RequestParam Long id) {
|
||||
public R<SearchDeviceLocalizerResult> detail(@RequestParam Long id) {
|
||||
return R.success(deviceLocalizerService.detail(id));
|
||||
}
|
||||
|
||||
|
|
@ -62,8 +64,8 @@ public class DeviceLocalizerController {
|
|||
* 分页查询
|
||||
*/
|
||||
@GetMapping("/paging")
|
||||
public R<PageResult<DeviceLocalizerEntity>> paging(PageParam pageParam, DeviceLocalizerEntity deviceLocalizerEntity) {
|
||||
return R.success(deviceLocalizerService.paging(pageParam, deviceLocalizerEntity));
|
||||
public R<PageResult<SearchDeviceLocalizerResult>> paging(PageParam pageParam, SearchDeviceLocalizerParam searchDeviceLocalizerParam) {
|
||||
return R.success(deviceLocalizerService.paging(pageParam, searchDeviceLocalizerParam));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
package com.njzscloud.supervisory.device.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.DeviceLocalizerEntity;
|
||||
import com.njzscloud.supervisory.device.pojo.result.SearchDeviceLocalizerResult;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 定位器
|
||||
|
|
@ -10,4 +17,9 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
@Mapper
|
||||
public interface DeviceLocalizerMapper extends BaseMapper<DeviceLocalizerEntity> {
|
||||
|
||||
List<DeviceLocalizerEntity> canDel(@Param("ew") QueryWrapper<DeviceLocalizerEntity> ew);
|
||||
|
||||
SearchDeviceLocalizerResult detail(@Param("id") Long id);
|
||||
|
||||
IPage<SearchDeviceLocalizerResult> paging(Page<Object> page, QueryWrapper<?> ew);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.njzscloud.supervisory.device.pojo.entity;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
|
||||
import com.njzscloud.supervisory.device.contant.LocalizerCategory;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
|
@ -29,6 +30,10 @@ public class DeviceLocalizerEntity {
|
|||
* 设备号
|
||||
*/
|
||||
private String terminalId;
|
||||
/**
|
||||
* 定位器类型
|
||||
*/
|
||||
private LocalizerCategory localizerCategory;
|
||||
|
||||
/**
|
||||
* 是否在线; 0-->否、1-->是
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
package com.njzscloud.supervisory.device.pojo.param;
|
||||
|
||||
import com.njzscloud.supervisory.device.contant.LocalizerCategory;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 定位器
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class SearchDeviceLocalizerParam {
|
||||
/**
|
||||
* 设备号
|
||||
*/
|
||||
private String terminalId;
|
||||
/**
|
||||
* 车牌
|
||||
*/
|
||||
private String licensePlate;
|
||||
/**
|
||||
* 定位器类型
|
||||
*/
|
||||
private LocalizerCategory localizerCategory;
|
||||
|
||||
/**
|
||||
* 是否在线; 0-->否、1-->是
|
||||
*/
|
||||
private Boolean online;
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.njzscloud.supervisory.device.pojo.result;
|
||||
|
||||
import com.njzscloud.supervisory.device.contant.LocalizerCategory;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.LocalizerConfig;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 定位器
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class SearchDeviceLocalizerResult {
|
||||
|
||||
/**
|
||||
* Id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 设备号
|
||||
*/
|
||||
private String terminalId;
|
||||
/**
|
||||
* 车牌
|
||||
*/
|
||||
private String licensePlate;
|
||||
/**
|
||||
* 定位器类型
|
||||
*/
|
||||
private LocalizerCategory localizerCategory;
|
||||
|
||||
/**
|
||||
* 是否在线; 0-->否、1-->是
|
||||
*/
|
||||
private Boolean online;
|
||||
|
||||
/**
|
||||
* 上次更新时间
|
||||
*/
|
||||
private LocalDateTime lastTime;
|
||||
|
||||
private LocalizerConfig config;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime modifyTime;
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.njzscloud.supervisory.device.service;
|
|||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -14,11 +15,14 @@ import com.njzscloud.common.mp.support.PageResult;
|
|||
import com.njzscloud.common.mqtt.support.MqttMsg;
|
||||
import com.njzscloud.common.mqtt.util.Mqtt;
|
||||
import com.njzscloud.supervisory.biz.service.TruckLocationTrackService;
|
||||
import com.njzscloud.supervisory.device.contant.LocalizerCategory;
|
||||
import com.njzscloud.supervisory.device.mapper.DeviceLocalizerMapper;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.DeviceLocalizerEntity;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.LocalizerConfig;
|
||||
import com.njzscloud.supervisory.device.pojo.param.SearchDeviceLocalizerParam;
|
||||
import com.njzscloud.supervisory.device.pojo.result.DeviceInfoResult;
|
||||
import com.njzscloud.supervisory.device.pojo.result.HeartbeatResult;
|
||||
import com.njzscloud.supervisory.device.pojo.result.SearchDeviceLocalizerResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -40,15 +44,40 @@ public class DeviceLocalizerService extends ServiceImpl<DeviceLocalizerMapper, D
|
|||
/**
|
||||
* 新增
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void add(DeviceLocalizerEntity deviceLocalizerEntity) {
|
||||
this.save(deviceLocalizerEntity);
|
||||
String terminalId = deviceLocalizerEntity.getTerminalId();
|
||||
LocalizerCategory localizerCategory = deviceLocalizerEntity.getLocalizerCategory();
|
||||
Assert.notEmpty(terminalId, () -> Exceptions.exception("设备号不能为空"));
|
||||
Assert.notNull(localizerCategory, () -> Exceptions.exception("定位器类型不能为空"));
|
||||
Assert.isFalse(this.exists(Wrappers.lambdaQuery(DeviceLocalizerEntity.class)
|
||||
.eq(DeviceLocalizerEntity::getTerminalId, terminalId)
|
||||
.eq(DeviceLocalizerEntity::getLocalizerCategory, localizerCategory)),
|
||||
() -> Exceptions.exception("定位器已存在"));
|
||||
this.save(deviceLocalizerEntity.setConfig(new LocalizerConfig()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void modify(DeviceLocalizerEntity deviceLocalizerEntity) {
|
||||
this.updateById(deviceLocalizerEntity);
|
||||
String terminalId = deviceLocalizerEntity.getTerminalId();
|
||||
LocalizerCategory localizerCategory = deviceLocalizerEntity.getLocalizerCategory();
|
||||
Long id = deviceLocalizerEntity.getId();
|
||||
DeviceLocalizerEntity oldData = this.getById(id);
|
||||
Assert.notNull(oldData, () -> Exceptions.exception("定位器不存在"));
|
||||
Assert.isFalse(this.exists(Wrappers.lambdaQuery(DeviceLocalizerEntity.class)
|
||||
.eq(DeviceLocalizerEntity::getTerminalId, StrUtil.isEmpty(terminalId) ? oldData.getTerminalId() : terminalId)
|
||||
.eq(DeviceLocalizerEntity::getLocalizerCategory, localizerCategory == null ? oldData.getLocalizerCategory() : localizerCategory)
|
||||
.ne(DeviceLocalizerEntity::getId, id)
|
||||
),
|
||||
() -> Exceptions.exception("定位器已存在"));
|
||||
this.updateById(new DeviceLocalizerEntity()
|
||||
.setId(id)
|
||||
.setTerminalId(terminalId)
|
||||
.setLocalizerCategory(localizerCategory)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -56,21 +85,41 @@ public class DeviceLocalizerService extends ServiceImpl<DeviceLocalizerMapper, D
|
|||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void del(List<Long> ids) {
|
||||
List<DeviceLocalizerEntity> deviceLocalizerEntities = baseMapper.canDel(Wrappers.query(DeviceLocalizerEntity.class).in("a.id", ids));
|
||||
Assert.isTrue(deviceLocalizerEntities.isEmpty(), () -> Exceptions.exception("存在已被关联的定位器,不能删除"));
|
||||
this.removeBatchByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
public DeviceLocalizerEntity detail(Long id) {
|
||||
return this.getById(id);
|
||||
public SearchDeviceLocalizerResult detail(Long id) {
|
||||
return baseMapper.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*/
|
||||
public PageResult<DeviceLocalizerEntity> paging(PageParam pageParam, DeviceLocalizerEntity deviceLocalizerEntity) {
|
||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<DeviceLocalizerEntity>query(deviceLocalizerEntity)));
|
||||
public PageResult<SearchDeviceLocalizerResult> paging(PageParam pageParam, SearchDeviceLocalizerParam searchDeviceLocalizerParam) {
|
||||
String terminalId = searchDeviceLocalizerParam.getTerminalId();
|
||||
LocalizerCategory localizerCategory = searchDeviceLocalizerParam.getLocalizerCategory();
|
||||
String licensePlate = searchDeviceLocalizerParam.getLicensePlate();
|
||||
Boolean online = searchDeviceLocalizerParam.getOnline();
|
||||
|
||||
QueryWrapper<Object> ew = Wrappers.query()
|
||||
.like(StrUtil.isNotEmpty(terminalId), "a.terminal_id", terminalId)
|
||||
.like(StrUtil.isNotEmpty(licensePlate), "b.license_plate", licensePlate)
|
||||
.eq(localizerCategory != null, "a.localizer_category", localizerCategory)
|
||||
.eq(online != null, "a.online", online);
|
||||
|
||||
if (online != null) {
|
||||
if (online) {
|
||||
ew.ge("a.last_time", LocalDateTime.now().minusMinutes(5));
|
||||
} else {
|
||||
ew.lt("a.last_time", LocalDateTime.now().minusMinutes(5));
|
||||
}
|
||||
}
|
||||
return PageResult.of(baseMapper.paging(pageParam.toPage(), ew));
|
||||
}
|
||||
|
||||
public void onApplicationReady() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.njzscloud.supervisory.device.mapper.DeviceLocalizerMapper">
|
||||
|
||||
<select id="canDel" resultType="com.njzscloud.supervisory.device.pojo.entity.DeviceLocalizerEntity">
|
||||
select a.id
|
||||
from device_localizer a
|
||||
inner join biz_truck b on b.gps = a.terminal_id and b.deleted = 0
|
||||
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
||||
${ew.customSqlSegment}
|
||||
</if>
|
||||
</select>
|
||||
<resultMap id="detailResultMap" type="com.njzscloud.supervisory.device.pojo.result.SearchDeviceLocalizerResult">
|
||||
<id property="id" column="id"/>
|
||||
<result property="terminalId" column="terminal_id"/>
|
||||
<result property="licensePlate" column="license_plate"/>
|
||||
<result property="localizerCategory" column="localizer_category" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
|
||||
<result property="online" column="online"/>
|
||||
<result property="lastTime" column="last_time"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="modifyTime" column="modify_time"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="detail" resultMap="detailResultMap">
|
||||
select a.id,
|
||||
a.terminal_id,
|
||||
b.license_plate,
|
||||
a.localizer_category,
|
||||
a.online,
|
||||
a.last_time,
|
||||
a.create_time,
|
||||
a.modify_time
|
||||
from device_localizer a
|
||||
left join biz_truck b on b.gps = a.terminal_id and b.deleted = 0
|
||||
where a.id = #{id}
|
||||
</select>
|
||||
<select id="paging" resultType="com.njzscloud.supervisory.device.pojo.result.SearchDeviceLocalizerResult">
|
||||
select a.id, a.terminal_id, b.license_plate, a.localizer_category, a.online, a.last_time, a.create_time, a.modify_time
|
||||
from device_localizer a
|
||||
left join biz_truck b on b.gps = a.terminal_id and b.deleted = 0
|
||||
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
||||
${ew.customSqlSegment}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue