安全帽接口修改
This commit is contained in:
@ -83,6 +83,7 @@ public class RedisSubscribeManager {
|
|||||||
Object object = RedisUtils.getCacheObject("xmjdap:ws");
|
Object object = RedisUtils.getCacheObject("xmjdap:ws");
|
||||||
log.info("开始执行Redis订阅更新定时任务...");
|
log.info("开始执行Redis订阅更新定时任务...");
|
||||||
if (object == null) {
|
if (object == null) {
|
||||||
|
cancelAllSubscribes();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long oldTime = Long.parseLong(String.valueOf(object));
|
long oldTime = Long.parseLong(String.valueOf(object));
|
||||||
|
|||||||
@ -13,8 +13,7 @@ import org.dromara.contractor.domain.SubConstructionUser;
|
|||||||
import org.dromara.contractor.domain.dto.constructionuser.SubConstructionUserQueryReq;
|
import org.dromara.contractor.domain.dto.constructionuser.SubConstructionUserQueryReq;
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
import org.dromara.gps.domain.vo.ConstructionUser;
|
import org.dromara.gps.domain.vo.*;
|
||||||
import org.dromara.gps.domain.vo.GpsProjectVo;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -26,7 +25,6 @@ import org.dromara.common.core.validate.AddGroup;
|
|||||||
import org.dromara.common.core.validate.EditGroup;
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
import org.dromara.common.log.enums.BusinessType;
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
import org.dromara.common.excel.utils.ExcelUtil;
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
import org.dromara.gps.domain.vo.DeviceVo;
|
|
||||||
import org.dromara.gps.domain.bo.DeviceBo;
|
import org.dromara.gps.domain.bo.DeviceBo;
|
||||||
import org.dromara.gps.service.IDeviceService;
|
import org.dromara.gps.service.IDeviceService;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@ -114,6 +112,15 @@ public class DeviceController extends BaseController {
|
|||||||
return toAjax(deviceService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(deviceService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备用户列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:device:getUserList")
|
||||||
|
@GetMapping("/getUserList")
|
||||||
|
public R<List<AnqmUserVo>> getUserList(DeviceBo bo) {
|
||||||
|
return R.ok(deviceService.getUserList(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目列表
|
* 项目列表
|
||||||
|
|||||||
@ -97,5 +97,7 @@ public class DeviceBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String batteryOff;
|
private String batteryOff;
|
||||||
|
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,51 @@
|
|||||||
|
package org.dromara.gps.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联视图对象 gps_manmachine
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
//@ExcelIgnoreUnannotated
|
||||||
|
//@AutoMapper(target = GpsManmachine.class)
|
||||||
|
public class AnqmUserVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*类型(1、历史,0、当前)
|
||||||
|
*/
|
||||||
|
// @ExcelProperty(value = "")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
// @ExcelProperty(value = "")
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
// @ExcelProperty(value = "")
|
||||||
|
private Long projectId;
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
private String devNum;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -34,6 +34,13 @@ public class DeviceVo implements Serializable {
|
|||||||
@ExcelProperty(value = "id")
|
@ExcelProperty(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
private String userName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备编号
|
* 设备编号
|
||||||
*/
|
*/
|
||||||
@ -58,6 +65,8 @@ public class DeviceVo implements Serializable {
|
|||||||
@ExcelProperty(value = "项目id")
|
@ExcelProperty(value = "项目id")
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备采集温度
|
* 设备采集温度
|
||||||
*/
|
*/
|
||||||
@ -112,5 +121,7 @@ public class DeviceVo implements Serializable {
|
|||||||
@ExcelProperty(value = "电池关机时间")
|
@ExcelProperty(value = "电池关机时间")
|
||||||
private String batteryOff;
|
private String batteryOff;
|
||||||
|
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,15 @@
|
|||||||
package org.dromara.gps.mapper;
|
package org.dromara.gps.mapper;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.dromara.gps.domain.Device;
|
import org.dromara.gps.domain.Device;
|
||||||
|
import org.dromara.gps.domain.vo.AnqmUserVo;
|
||||||
import org.dromara.gps.domain.vo.DeviceVo;
|
import org.dromara.gps.domain.vo.DeviceVo;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 安全帽设备Mapper接口
|
* 安全帽设备Mapper接口
|
||||||
*
|
*
|
||||||
@ -12,4 +18,17 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface DeviceMapper extends BaseMapperPlus<Device, DeviceVo> {
|
public interface DeviceMapper extends BaseMapperPlus<Device, DeviceVo> {
|
||||||
|
|
||||||
|
@Select("SELECT\n" +
|
||||||
|
" gm.user_id AS userId,\n" +
|
||||||
|
" su.user_name AS userName, \n" +
|
||||||
|
" gm.project_id AS projectId,\n" +
|
||||||
|
" bp.project_name AS projectName \n" +
|
||||||
|
"FROM\n" +
|
||||||
|
" location gm\n" +
|
||||||
|
" LEFT JOIN sys_user su ON gm.user_id = su.user_id \n" +
|
||||||
|
"LEFT JOIN bus_project bp ON gm.project_id = bp.id \n" +
|
||||||
|
"WHERE\n" +
|
||||||
|
" gm.dev_num = #{devNum}" +
|
||||||
|
" GROUP BY gm.user_id,gm.project_id")
|
||||||
|
List<AnqmUserVo> getUserList(@Param("devNum") String devNum);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package org.dromara.gps.service;
|
package org.dromara.gps.service;
|
||||||
|
|
||||||
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
|
import org.dromara.gps.domain.vo.AnqmUserVo;
|
||||||
import org.dromara.gps.domain.vo.DeviceVo;
|
import org.dromara.gps.domain.vo.DeviceVo;
|
||||||
import org.dromara.gps.domain.bo.DeviceBo;
|
import org.dromara.gps.domain.bo.DeviceBo;
|
||||||
import org.dromara.gps.domain.Device;
|
import org.dromara.gps.domain.Device;
|
||||||
@ -9,6 +10,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.gps.domain.vo.GpsProjectVo;
|
import org.dromara.gps.domain.vo.GpsProjectVo;
|
||||||
|
import org.dromara.gps.domain.vo.GpsUserVo;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -79,4 +81,6 @@ public interface IDeviceService extends IService<Device>{
|
|||||||
Boolean unbindManmachine(DeviceBo bo);
|
Boolean unbindManmachine(DeviceBo bo);
|
||||||
|
|
||||||
List<DeviceVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now);
|
List<DeviceVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
|
List<AnqmUserVo> getUserList(DeviceBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,25 +15,24 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.dromara.gps.domain.AnqmManmachine;
|
import org.dromara.gps.domain.AnqmManmachine;
|
||||||
import org.dromara.gps.domain.GpsEquipment;
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
import org.dromara.gps.domain.GpsManmachine;
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
import org.dromara.gps.domain.vo.GpsProjectVo;
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
|
import org.dromara.gps.domain.vo.*;
|
||||||
import org.dromara.gps.mapper.AnqmManmachineMapper;
|
import org.dromara.gps.mapper.AnqmManmachineMapper;
|
||||||
import org.dromara.gps.service.ILocationService;
|
import org.dromara.gps.service.ILocationService;
|
||||||
import org.dromara.project.domain.vo.project.BusProjectVo;
|
import org.dromara.project.domain.vo.project.BusProjectVo;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.gps.domain.bo.DeviceBo;
|
import org.dromara.gps.domain.bo.DeviceBo;
|
||||||
import org.dromara.gps.domain.vo.DeviceVo;
|
|
||||||
import org.dromara.gps.domain.Device;
|
import org.dromara.gps.domain.Device;
|
||||||
import org.dromara.gps.mapper.DeviceMapper;
|
import org.dromara.gps.mapper.DeviceMapper;
|
||||||
import org.dromara.gps.service.IDeviceService;
|
import org.dromara.gps.service.IDeviceService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 安全帽设备Service业务层处理
|
* 安全帽设备Service业务层处理
|
||||||
@ -56,6 +55,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ILocationService locationService;
|
private ILocationService locationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService userService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询安全帽设备
|
* 查询安全帽设备
|
||||||
*
|
*
|
||||||
@ -78,6 +80,40 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
public TableDataInfo<DeviceVo> queryPageList(DeviceBo bo, PageQuery pageQuery) {
|
public TableDataInfo<DeviceVo> queryPageList(DeviceBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<Device> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<Device> lqw = buildQueryWrapper(bo);
|
||||||
Page<DeviceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<DeviceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
if (bo.getType() == 1){
|
||||||
|
List<DeviceVo> list = result.getRecords().stream()
|
||||||
|
.filter(gpsEquipment -> gpsEquipment.getProjectId() != null)
|
||||||
|
.toList();
|
||||||
|
list.forEach(item -> {
|
||||||
|
if (item.getUserId() != null){
|
||||||
|
item.setType(1);
|
||||||
|
}else{
|
||||||
|
item.setType(2);
|
||||||
|
}
|
||||||
|
SysUserVo sysUserVo = userService.queryById(item.getUserId());
|
||||||
|
if (sysUserVo != null) {
|
||||||
|
item.setUserName(sysUserVo.getUserName());
|
||||||
|
}
|
||||||
|
BusProjectVo busProjectVo = projectService.selectById(item.getProjectId());
|
||||||
|
if (busProjectVo != null) {
|
||||||
|
item.setProjectName(busProjectVo.getProjectName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
result.setRecords(list);
|
||||||
|
}else if (bo.getType() == 2){
|
||||||
|
List<DeviceVo> list = result.getRecords().stream()
|
||||||
|
.filter(gpsEquipment -> gpsEquipment.getProjectId() == null).toList();
|
||||||
|
list.forEach(item ->{
|
||||||
|
if (item.getProjectId() != null) {
|
||||||
|
BusProjectVo busProjectVo = projectService.selectById(item.getProjectId());
|
||||||
|
if (busProjectVo != null) {
|
||||||
|
item.setProjectName(busProjectVo.getProjectName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.setType(2);
|
||||||
|
});
|
||||||
|
result.setRecords(list);
|
||||||
|
}
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,4 +258,23 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
public List<DeviceVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now) {
|
public List<DeviceVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now) {
|
||||||
return locationService.getUserListByProjectId(projectId,startOfDay,now);
|
return locationService.getUserListByProjectId(projectId,startOfDay,now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AnqmUserVo> getUserList(DeviceBo bo) {
|
||||||
|
List<AnqmUserVo> gpsUserVos = baseMapper.getUserList(bo.getDevNum());
|
||||||
|
if (gpsUserVos == null || gpsUserVos.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
List<AnqmUserVo> list = gpsUserVos.stream().filter(Objects::nonNull).toList();
|
||||||
|
AnqmManmachine gpsManmachine = anqmManmachineMapper.selectOne(new LambdaQueryWrapper<AnqmManmachine>().eq(AnqmManmachine::getClientId, bo.getDevNum()));
|
||||||
|
for (AnqmUserVo item : list) {
|
||||||
|
item.setDevNum(bo.getDevNum());
|
||||||
|
if (gpsManmachine != null && gpsManmachine.getUserId().equals(item.getUserId())) {
|
||||||
|
item.setType(0);
|
||||||
|
}else {
|
||||||
|
item.setType(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user