Compare commits

4 Commits

Author SHA1 Message Date
4cc02e1040 Merge remote-tracking branch 'origin/main' into dyf-device
# Conflicts:
#	fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppDeviceVo.java
#	fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml
2025-07-10 15:16:57 +08:00
185d521472 WEB端查看APP客户设备绑定 2025-07-10 15:14:18 +08:00
7e688e16b3 导出数据设备 2025-07-10 14:57:59 +08:00
d75658e81e WEB端查看APP客户设备绑定 2025-07-10 10:55:47 +08:00
17 changed files with 165 additions and 78 deletions

View File

@ -12,10 +12,14 @@ import com.fuyuanshen.common.core.validate.EditGroup;
import com.fuyuanshen.common.idempotent.annotation.RepeatSubmit; import com.fuyuanshen.common.idempotent.annotation.RepeatSubmit;
import com.fuyuanshen.common.log.annotation.Log; import com.fuyuanshen.common.log.annotation.Log;
import com.fuyuanshen.common.log.enums.BusinessType; import com.fuyuanshen.common.log.enums.BusinessType;
import com.fuyuanshen.common.mybatis.core.page.PageQuery;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.common.web.core.BaseController; import com.fuyuanshen.common.web.core.BaseController;
import com.fuyuanshen.equipment.domain.bo.UserAppBo; import com.fuyuanshen.equipment.domain.bo.UserAppBo;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
import com.fuyuanshen.equipment.domain.vo.AppDeviceVo;
import com.fuyuanshen.equipment.service.AppUserService; import com.fuyuanshen.equipment.service.AppUserService;
import com.fuyuanshen.equipment.service.DeviceService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -39,6 +43,7 @@ public class APPDeviceController extends BaseController {
private final APPDeviceService appDeviceService; private final APPDeviceService appDeviceService;
private final AppUserService appUserService; private final AppUserService appUserService;
private final DeviceService deviceService;
@PostMapping(value = "/list") @PostMapping(value = "/list")
@ -68,11 +73,8 @@ public class APPDeviceController extends BaseController {
@GetMapping @GetMapping
@Operation(summary = "WEB端查看APP客户设备绑定") @Operation(summary = "WEB端查看APP客户设备绑定")
public TableDataInfo<APPDevice> queryAPPDevice(APPDeviceQueryCriteria criteria) { public TableDataInfo<AppDeviceVo> queryAPPDevice(DeviceQueryCriteria bo, PageQuery pageQuery) {
Page<APPDevice> page = new Page<>(criteria.getPage(), criteria.getSize()); return deviceService.queryAppDeviceList(bo, pageQuery);
TableDataInfo<APPDevice> devices = null;
devices = appDeviceService.queryAll(page, criteria);
return devices;
} }
@ -84,7 +86,6 @@ public class APPDeviceController extends BaseController {
} }
/** /**
* 修改APP用户信息 * 修改APP用户信息
*/ */

View File

@ -9,6 +9,7 @@ import com.fuyuanshen.app.domain.dto.APPUnbindDTO;
import com.fuyuanshen.app.domain.query.APPDeviceQueryCriteria; import com.fuyuanshen.app.domain.query.APPDeviceQueryCriteria;
import com.fuyuanshen.app.domain.vo.APPDeviceTypeVo; import com.fuyuanshen.app.domain.vo.APPDeviceTypeVo;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
import java.util.List; import java.util.List;
@ -62,4 +63,14 @@ public interface APPDeviceService extends IService<APPDevice> {
List<APPDeviceTypeVo> getTypeList(); List<APPDeviceTypeVo> getTypeList();
void reName(APPReNameDTO reNameDTO); void reName(APPReNameDTO reNameDTO);
/**
* WEB端查看APP客户设备绑定
*
* @param criteria
* @return
*/
TableDataInfo<APPDevice> queryAppDeviceList(DeviceQueryCriteria criteria);
} }

View File

@ -23,6 +23,8 @@ import com.fuyuanshen.common.satoken.utils.AppLoginHelper;
import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.common.satoken.utils.LoginHelper;
import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.Device;
import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.DeviceType;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
import com.fuyuanshen.equipment.domain.vo.AppDeviceVo;
import com.fuyuanshen.equipment.enums.BindingStatusEnum; import com.fuyuanshen.equipment.enums.BindingStatusEnum;
import com.fuyuanshen.equipment.enums.CommunicationModeEnum; import com.fuyuanshen.equipment.enums.CommunicationModeEnum;
import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper;
@ -210,4 +212,20 @@ public class APPDeviceServiceImpl extends ServiceImpl<APPDeviceMapper, APPDevice
} }
/**
* WEB端查看APP客户设备绑定
*
* @param criteria
* @return
*/
@Override
public TableDataInfo<APPDevice> queryAppDeviceList(DeviceQueryCriteria criteria) {
// Page<AppDeviceVo> result = baseMapper.queryAppDeviceList(pageQuery.build(), bo);
// return TableDataInfo.build(result);
return null;
}
} }

View File

@ -6,17 +6,17 @@ import com.fuyuanshen.common.core.validate.EditGroup;
import com.fuyuanshen.common.idempotent.annotation.RepeatSubmit; import com.fuyuanshen.common.idempotent.annotation.RepeatSubmit;
import com.fuyuanshen.common.log.annotation.Log; import com.fuyuanshen.common.log.annotation.Log;
import com.fuyuanshen.common.log.enums.BusinessType; import com.fuyuanshen.common.log.enums.BusinessType;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.common.web.core.BaseController; import com.fuyuanshen.common.web.core.BaseController;
import com.fuyuanshen.equipment.domain.bo.UserAppBo; import com.fuyuanshen.equipment.domain.bo.UserAppBo;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
import com.fuyuanshen.equipment.service.AppUserService; import com.fuyuanshen.equipment.service.AppUserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @Description: * @Description:
@ -27,23 +27,26 @@ import org.springframework.web.bind.annotation.RestController;
@Tag(name = "设备管理", description = "设备:设备管理") @Tag(name = "设备管理", description = "设备:设备管理")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/api/app/device") @RequestMapping("/api/app/device1")
public class DeviceAPPController extends BaseController { public class DeviceAPPController extends BaseController {
private final AppUserService appUserService;
/**
* 修改APP用户信息
*/
// @SaCheckPermission("app:user:edit")
@Log(title = "APP用户信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserAppBo bo) {
return toAjax(appUserService.updateByBo(bo));
}
//
//
// @GetMapping
// @Operation(summary = "WEB端查看APP客户设备绑定")
// public TableDataInfo<APPDevice> queryAPPDevice(APPDeviceQueryCriteria criteria) {
// Page<APPDevice> page = new Page<>(criteria.getPage(), criteria.getSize());
// TableDataInfo<APPDevice> devices = null;
// devices = appDeviceService.queryAll(page, criteria);
// return devices;
// }
} }

View File

@ -21,6 +21,7 @@ import com.fuyuanshen.equipment.excel.UploadDeviceDataListener;
import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper;
import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper;
import com.fuyuanshen.equipment.service.DeviceService; import com.fuyuanshen.equipment.service.DeviceService;
import com.fuyuanshen.equipment.service.DeviceTypeService;
import com.fuyuanshen.equipment.service.impl.DeviceExportService; import com.fuyuanshen.equipment.service.impl.DeviceExportService;
import com.fuyuanshen.system.service.ISysOssService; import com.fuyuanshen.system.service.ISysOssService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -54,6 +55,7 @@ public class DeviceController {
private final DeviceService deviceService; private final DeviceService deviceService;
private final DeviceMapper deviceMapper; private final DeviceMapper deviceMapper;
private final CustomerMapper customerMapper; private final CustomerMapper customerMapper;
private final DeviceTypeService deviceTypeService;
private final DeviceTypeMapper deviceTypeMapper; private final DeviceTypeMapper deviceTypeMapper;
private final DeviceExportService exportService; private final DeviceExportService exportService;
@ -179,7 +181,11 @@ public class DeviceController {
ImportResult result = new ImportResult(); ImportResult result = new ImportResult();
try { try {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
DeviceImportParams params = DeviceImportParams.builder().ossService(ossService).deviceService(deviceService).tenantId(loginUser.getTenantId()).file(file).filePath("").deviceMapper(deviceMapper).deviceTypeMapper(deviceTypeMapper).userId(loginUser.getUserId()).customerMapper(customerMapper).build(); DeviceImportParams params = DeviceImportParams.builder().ossService(ossService)
.deviceService(deviceService).tenantId(loginUser.getTenantId())
.file(file).filePath("").deviceMapper(deviceMapper).deviceTypeService(deviceTypeService)
.deviceTypeMapper(deviceTypeMapper).userId(loginUser.getUserId())
.customerMapper(customerMapper).build();
// 创建监听器 // 创建监听器
UploadDeviceDataListener listener = new UploadDeviceDataListener(params); UploadDeviceDataListener listener = new UploadDeviceDataListener(params);
// 读取Excel // 读取Excel

View File

@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fuyuanshen.equipment.converter.IgnoreFailedImageConverter; import com.fuyuanshen.equipment.converter.IgnoreFailedImageConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.net.URL; import java.net.URL;
@ -42,6 +43,10 @@ public class DeviceExcelExportDTO {
@ColumnWidth(20) @ColumnWidth(20)
private String deviceMac; private String deviceMac;
@ExcelProperty("蓝牙名称")
@ColumnWidth(20)
private String bluetoothName;
@ExcelProperty("设备IMEI") @ExcelProperty("设备IMEI")
@ColumnWidth(20) @ColumnWidth(20)
private String deviceImei; private String deviceImei;

View File

@ -40,6 +40,10 @@ public class DeviceForm {
@Schema(title = "设备MAC") @Schema(title = "设备MAC")
private String deviceMac; private String deviceMac;
@Schema(name = "蓝牙名称")
private String bluetoothName;
@Schema(title = "设备IMEI") @Schema(title = "设备IMEI")
private String deviceImei; private String deviceImei;

View File

@ -33,6 +33,11 @@ public class AppDeviceVo {
*/ */
private String devicePic; private String devicePic;
/**
* 设备类型
*/
private String typeName;
/** /**
* 蓝牙名称 * 蓝牙名称
*/ */

View File

@ -4,6 +4,7 @@ import com.fuyuanshen.customer.mapper.CustomerMapper;
import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper;
import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper;
import com.fuyuanshen.equipment.service.DeviceService; import com.fuyuanshen.equipment.service.DeviceService;
import com.fuyuanshen.equipment.service.DeviceTypeService;
import com.fuyuanshen.system.service.ISysOssService; import com.fuyuanshen.system.service.ISysOssService;
import lombok.*; import lombok.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -23,6 +24,7 @@ public class DeviceImportParams {
private DeviceMapper deviceMapper; private DeviceMapper deviceMapper;
private CustomerMapper customerMapper; private CustomerMapper customerMapper;
private DeviceTypeMapper deviceTypeMapper; private DeviceTypeMapper deviceTypeMapper;
private DeviceTypeService deviceTypeService;
private ISysOssService ossService; private ISysOssService ossService;
private MultipartFile file; private MultipartFile file;
private String filePath; private String filePath;

View File

@ -1,12 +1,10 @@
package com.fuyuanshen.equipment.excel; package com.fuyuanshen.equipment.excel;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fuyuanshen.common.core.domain.model.LoginUser; import com.fuyuanshen.common.core.domain.model.LoginUser;
import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.common.satoken.utils.LoginHelper;
import com.fuyuanshen.equipment.constants.DeviceConstants; import com.fuyuanshen.equipment.constants.DeviceConstants;
@ -14,7 +12,7 @@ import com.fuyuanshen.equipment.domain.Device;
import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.DeviceType;
import com.fuyuanshen.equipment.domain.dto.DeviceExcelImportDTO; import com.fuyuanshen.equipment.domain.dto.DeviceExcelImportDTO;
import com.fuyuanshen.equipment.domain.dto.ImportResult; import com.fuyuanshen.equipment.domain.dto.ImportResult;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria; import com.fuyuanshen.equipment.domain.form.DeviceForm;
import com.fuyuanshen.equipment.handler.ImageWriteHandler; import com.fuyuanshen.equipment.handler.ImageWriteHandler;
import com.fuyuanshen.system.domain.vo.SysOssVo; import com.fuyuanshen.system.domain.vo.SysOssVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -30,13 +28,13 @@ import java.util.*;
public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportDTO> { public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportDTO> {
// 存储图片数据的映射 // 存储图片数据的映射
private final Map<Integer, byte[]> rowImageMap = new HashMap<>(); private Map<Integer, byte[]> rowImageMap = new HashMap<>();
private final DeviceImportParams params; private DeviceImportParams params;
private final Map<Integer, Device> rowDeviceMap = new HashMap<>(); private Map<Integer, Device> rowDeviceMap = new HashMap<>();
private final Map<Integer, DeviceExcelImportDTO> rowDtoMap = new HashMap<>(); private Map<Integer, DeviceExcelImportDTO> rowDtoMap = new HashMap<>();
private final List<Integer> rowIndexList = new ArrayList<>(); private List<Integer> rowIndexList = new ArrayList<>();
private int successCount = 0; private int successCount = 0;
private int failureCount = 0; private int failureCount = 0;
@ -105,7 +103,6 @@ public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportD
.sheet("失败数据").doWrite(failedRecordsWithImages); .sheet("失败数据").doWrite(failedRecordsWithImages);
// 生成访问URL // 生成访问URL
// String errorExcelUrl = params.getIp() + DeviceConstants.FILE_ACCESS_PREFIX + "/" + DeviceConstants.ERROR_REPORT_DIR + "/" + fileName;
SysOssVo upload = params.getOssService().upload(errorFile); SysOssVo upload = params.getOssService().upload(errorFile);
result.setErrorExcelUrl(upload.getUrl()); result.setErrorExcelUrl(upload.getUrl());
log.info("错误报告已保存: {}", errorFile.getAbsolutePath()); log.info("错误报告已保存: {}", errorFile.getAbsolutePath());
@ -151,27 +148,18 @@ public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportD
Device device = rowDeviceMap.get(rowIndex); Device device = rowDeviceMap.get(rowIndex);
DeviceExcelImportDTO originalDto = rowDtoMap.get(rowIndex); DeviceExcelImportDTO originalDto = rowDtoMap.get(rowIndex);
try { try {
// DeviceQueryCriteria criteria = new DeviceQueryCriteria();
// criteria.setDeviceMac(device.getDeviceMac());
// criteria.setTenantId(params.getTenantId());
// List<Device> deviceList = params.getDeviceMapper().findAll(criteria);
// if (!deviceList.isEmpty()) {
// throw new RuntimeException("设备MAC重复");
// }
// device.setTenantId(params.getTenantId());
// 设备类型 // 设备类型
QueryWrapper<DeviceType> wrapper = new QueryWrapper<>(); DeviceType deviceType = params.getDeviceTypeService().queryByName(device.getTypeName());
wrapper.eq("type_name", device.getTypeName()); // params.getDeviceService().save(device);
// wrapper.eq("customer_id", params.getUserId()); DeviceForm deviceForm = new DeviceForm();
List<DeviceType> deviceTypes = params.getDeviceTypeMapper().selectList(wrapper); deviceForm.setDeviceName(device.getDeviceName());
if (CollectionUtil.isNotEmpty(deviceTypes)) { deviceForm.setDeviceType(deviceType.getId());
device.setDeviceType(deviceTypes.get(0).getId()); deviceForm.setRemark(device.getRemark());
} deviceForm.setDeviceMac(device.getDeviceMac());
device.setCurrentOwnerId(loginUser.getUserId()); deviceForm.setDeviceImei(device.getDeviceImei());
device.setOriginalOwnerId(loginUser.getUserId()); deviceForm.setBluetoothName(device.getBluetoothName());
device.setCreateByName(loginUser.getNickname()); deviceForm.setDevicePic(device.getDevicePic());
params.getDeviceService().save(device); params.getDeviceService().addDevice(deviceForm);
successCount++; successCount++;
log.info("行 {} 数据插入成功", rowIndex); log.info("行 {} 数据插入成功", rowIndex);
} catch (Exception e) { } catch (Exception e) {
@ -225,10 +213,8 @@ public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportD
private String getCellValue(XSSFSheet sheet, int rowIndex, int colIndex) { private String getCellValue(XSSFSheet sheet, int rowIndex, int colIndex) {
XSSFRow row = sheet.getRow(rowIndex); XSSFRow row = sheet.getRow(rowIndex);
if (row == null) return null; if (row == null) return null;
XSSFCell cell = row.getCell(colIndex); XSSFCell cell = row.getCell(colIndex);
if (cell == null) return null; if (cell == null) return null;
return cell.toString(); return cell.toString();
} }
@ -240,18 +226,6 @@ public class UploadDeviceDataListener implements ReadListener<DeviceExcelImportD
try { try {
String fileExtension = "jpg"; String fileExtension = "jpg";
String newFileName = "PS_" + new Random(8) + "." + fileExtension; String newFileName = "PS_" + new Random(8) + "." + fileExtension;
// String targetDirPath = params.getFilePath() + DeviceConstants.FILE_ACCESS_ISOLATION;
// File targetDir = new File(targetDirPath);
//
// if (!targetDir.exists() && !targetDir.mkdirs()) {
// log.error("无法创建目录: {}", targetDirPath);
// return null;
// }
//
// File newFile = new File(targetDir, newFileName);
// Files.write(newFile.toPath(), imageData);
//
// return params.getIp() + DeviceConstants.FILE_ACCESS_PREFIX + "/" + DeviceConstants.FILE_ACCESS_ISOLATION + "/" + newFileName;
SysOssVo upload = params.getOssService().upload(imageData, newFileName); SysOssVo upload = params.getOssService().upload(imageData, newFileName);
return upload.getUrl(); return upload.getUrl();
} catch (Exception e) { } catch (Exception e) {

View File

@ -27,7 +27,6 @@ public interface DeviceTypeMapper extends BaseMapper<DeviceType> {
*/ */
IPage<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page<DeviceType> page); IPage<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page<DeviceType> page);
/** /**
* 查询所有设备类型 * 查询所有设备类型
* *
@ -44,4 +43,12 @@ public interface DeviceTypeMapper extends BaseMapper<DeviceType> {
*/ */
DeviceType getAssignType(@Param("deviceType") Long deviceType, @Param("customerId") Long customerId); DeviceType getAssignType(@Param("deviceType") Long deviceType, @Param("customerId") Long customerId);
/**
* 根据名称查询设备类型
*
* @param criteria
* @return
*/
DeviceType queryByName(@Param("criteria") DeviceTypeQueryCriteria criteria);
} }

View File

@ -41,6 +41,14 @@ public interface DeviceTypeService extends IService<DeviceType> {
*/ */
List<DeviceType> queryDeviceTypes(); List<DeviceType> queryDeviceTypes();
/**
* 根据设备类型名称查询设备类型
*
* @param typeName 条件参数
* @return List<DeviceTypeDto>
*/
DeviceType queryByName(String typeName);
/** /**
* 新增设备类型 * 新增设备类型
* *

View File

@ -43,6 +43,8 @@ public class DeviceExportService {
dto.setDeviceMac(device.getDeviceMac()); dto.setDeviceMac(device.getDeviceMac());
// 设备IMEI // 设备IMEI
dto.setDeviceImei(device.getDeviceImei()); dto.setDeviceImei(device.getDeviceImei());
// 蓝牙名称
dto.setBluetoothName(device.getBluetoothName());
dto.setLongitude(device.getLongitude()); dto.setLongitude(device.getLongitude());
dto.setLatitude(device.getLatitude()); dto.setLatitude(device.getLatitude());
dto.setRemark(device.getRemark()); dto.setRemark(device.getRemark());

View File

@ -112,6 +112,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
@Override @Override
public List<Device> queryAll(DeviceQueryCriteria criteria) { public List<Device> queryAll(DeviceQueryCriteria criteria) {
criteria.setCurrentOwnerId(LoginHelper.getUserId());
return deviceMapper.findAll(criteria); return deviceMapper.findAll(criteria);
} }
@ -141,6 +142,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
queryCriteria.setDeviceTypeId(deviceForm.getDeviceType()); queryCriteria.setDeviceTypeId(deviceForm.getDeviceType());
queryCriteria.setCustomerId(LoginHelper.getUserId()); queryCriteria.setCustomerId(LoginHelper.getUserId());
DeviceTypeGrants typeGrants = deviceTypeGrantsMapper.selectById(queryCriteria.getDeviceTypeId()); DeviceTypeGrants typeGrants = deviceTypeGrantsMapper.selectById(queryCriteria.getDeviceTypeId());
if (typeGrants == null) {
throw new Exception("设备类型不存在!!!");
}
DeviceType deviceTypes = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId()); DeviceType deviceTypes = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId());
if (deviceTypes == null) { if (deviceTypes == null) {
throw new Exception("设备类型不存在!!!"); throw new Exception("设备类型不存在!!!");
@ -495,8 +499,10 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
@Override @Override
public TableDataInfo<AppDeviceVo> queryAppDeviceList(DeviceQueryCriteria bo, PageQuery pageQuery) { public TableDataInfo<AppDeviceVo> queryAppDeviceList(DeviceQueryCriteria bo, PageQuery pageQuery) {
if (bo.getBindingUserId() == null) {
Long userId = AppLoginHelper.getUserId(); Long userId = AppLoginHelper.getUserId();
bo.setBindingUserId(userId); bo.setBindingUserId(userId);
}
Page<AppDeviceVo> result = baseMapper.queryAppDeviceList(pageQuery.build(), bo); Page<AppDeviceVo> result = baseMapper.queryAppDeviceList(pageQuery.build(), bo);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }

View File

@ -78,6 +78,21 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
return deviceTypeMapper.findAll(criteria); return deviceTypeMapper.findAll(criteria);
} }
/**
* 根据设备类型名称查询设备类型
*
* @param typeName 条件参数
* @return List<DeviceTypeDto>
*/
@Override
public DeviceType queryByName(String typeName) {
DeviceTypeQueryCriteria criteria = new DeviceTypeQueryCriteria();
criteria.setCustomerId(LoginHelper.getUserId());
criteria.setTypeName(typeName);
DeviceType deviceType = deviceTypeMapper.queryByName(criteria);
return deviceType;
}
/** /**
* 新增设备类型 * 新增设备类型

View File

@ -75,7 +75,7 @@
<!-- 分页查询设备 --> <!-- 分页查询设备 -->
<select id="findAll" resultType="com.fuyuanshen.equipment.domain.Device"> <select id="findAll" resultType="com.fuyuanshen.equipment.domain.Device">
select select
da.id AS id,d.device_name, da.id AS id,d.device_name,d.bluetooth_name,
d.device_pic, d.device_mac, d.device_sn, d.update_by,d.device_imei, d.device_pic, d.device_mac, d.device_sn, d.update_by,d.device_imei,
d.update_time, dg.id AS device_type, d.remark, d.binding_status,d.type_name AS typeName, d.update_time, dg.id AS device_type, d.remark, d.binding_status,d.type_name AS typeName,
da.assignee_id AS customerId, da.assignee_name AS customerName, da.active AS deviceStatus, da.assignee_id AS customerId, da.assignee_name AS customerName, da.active AS deviceStatus,
@ -112,7 +112,7 @@
<select id="findAllDevices" resultType="com.fuyuanshen.equipment.domain.Device"> <select id="findAllDevices" resultType="com.fuyuanshen.equipment.domain.Device">
select select
d.id, d.customer_id, d.device_name, d.id, d.customer_id, d.device_name,d.bluetooth_name,
d.device_pic, d.device_mac, d.device_sn, d.create_by, d.update_by, d.device_pic, d.device_mac, d.device_sn, d.create_by, d.update_by,
d.create_time, d.update_time, d.longitude, d.latitude, d.remark d.create_time, d.update_time, d.longitude, d.latitude, d.remark
from device d from device d
@ -171,8 +171,9 @@
d.device_mac, d.device_mac,
d.device_sn, d.device_sn,
d.device_imei, d.device_imei,
d.device_mac, d.device_pic,
dt.communication_mode, dt.type_name,
dt.communication_mode
d.bluetooth_name d.bluetooth_name
from device d from device d
inner join device_type dt on d.device_type = dt.id inner join device_type dt on d.device_type = dt.id
@ -180,6 +181,15 @@
<if test="criteria.deviceType != null"> <if test="criteria.deviceType != null">
and d.device_type = #{criteria.deviceType} and d.device_type = #{criteria.deviceType}
</if> </if>
<if test="criteria.deviceName != null">
and d.device_name = #{criteria.deviceName}
</if>
<if test="criteria.deviceMac != null">
and d.device_mac = #{criteria.deviceMac}
</if>
<if test="criteria.deviceImei != null">
and d.device_imei = #{criteria.deviceImei}
</if>
</select> </select>
<!-- 获取分配设备的客户 --> <!-- 获取分配设备的客户 -->

View File

@ -42,4 +42,14 @@
WHERE owner_customer_id = #{customerId} WHERE owner_customer_id = #{customerId}
AND original_device_id = #{deviceType} AND original_device_id = #{deviceType}
</select> </select>
<!-- 根据名称查询设备类型 -->
<select id="queryByName" resultMap="BaseResultMap"
parameterType="com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria">
SELECT dt.*, dg.id AS grant_id
FROM device_type dt
JOIN device_type_grants dg ON dt.id = dg.device_type_id
WHERE dt.type_name = #{criteria.typeName}
AND dg.customer_id = #{criteria.customerId}
</select>
</mapper> </mapper>