安全帽接口修改
This commit is contained in:
@ -83,6 +83,7 @@ public class RedisSubscribeManager {
|
||||
Object object = RedisUtils.getCacheObject("xmjdap:ws");
|
||||
log.info("开始执行Redis订阅更新定时任务...");
|
||||
if (object == null) {
|
||||
cancelAllSubscribes();
|
||||
return;
|
||||
}
|
||||
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.service.ISubConstructionUserService;
|
||||
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||
import org.dromara.gps.domain.vo.ConstructionUser;
|
||||
import org.dromara.gps.domain.vo.GpsProjectVo;
|
||||
import org.dromara.gps.domain.vo.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.log.enums.BusinessType;
|
||||
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.service.IDeviceService;
|
||||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询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 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")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
@ -58,6 +65,8 @@ public class DeviceVo implements Serializable {
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 设备采集温度
|
||||
*/
|
||||
@ -112,5 +121,7 @@ public class DeviceVo implements Serializable {
|
||||
@ExcelProperty(value = "电池关机时间")
|
||||
private String batteryOff;
|
||||
|
||||
private Integer type;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
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.vo.AnqmUserVo;
|
||||
import org.dromara.gps.domain.vo.DeviceVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 安全帽设备Mapper接口
|
||||
*
|
||||
@ -12,4 +18,17 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
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;
|
||||
|
||||
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.bo.DeviceBo;
|
||||
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 org.dromara.gps.domain.vo.GpsProjectVo;
|
||||
import org.dromara.gps.domain.vo.GpsUserVo;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
@ -79,4 +81,6 @@ public interface IDeviceService extends IService<Device>{
|
||||
Boolean unbindManmachine(DeviceBo bo);
|
||||
|
||||
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.GpsEquipment;
|
||||
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.service.ILocationService;
|
||||
import org.dromara.project.domain.vo.project.BusProjectVo;
|
||||
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.stereotype.Service;
|
||||
import org.dromara.gps.domain.bo.DeviceBo;
|
||||
import org.dromara.gps.domain.vo.DeviceVo;
|
||||
import org.dromara.gps.domain.Device;
|
||||
import org.dromara.gps.mapper.DeviceMapper;
|
||||
import org.dromara.gps.service.IDeviceService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 安全帽设备Service业务层处理
|
||||
@ -56,6 +55,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
@Autowired
|
||||
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) {
|
||||
LambdaQueryWrapper<Device> lqw = buildQueryWrapper(bo);
|
||||
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);
|
||||
}
|
||||
|
||||
@ -222,4 +258,23 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
public List<DeviceVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime 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