1
0

WEB:设备类型管理

This commit is contained in:
2025-07-03 16:58:08 +08:00
parent 4e83e3570a
commit 0271a84bc2
11 changed files with 58 additions and 32 deletions

View File

@ -49,9 +49,9 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://localhost:3306/fys-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true url: jdbc:mysql://120.79.224.186:3366/fys-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root username: root
password: root password: 1fys@QWER..
# # 从库数据源 # # 从库数据源
# slave: # slave:
# lazy: true # lazy: true
@ -98,13 +98,13 @@ spring:
spring.data: spring.data:
redis: redis:
# 地址 # 地址
host: 123.207.99.140 host: 120.79.224.186
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 26379
# 数据库索引 # 数据库索引
database: 2 database: 2
# redis 密码必须配置 # redis 密码必须配置
password: ccxx11234 password: 1fys@QWER..
# 连接超时时间 # 连接超时时间
timeout: 10s timeout: 10s
# 是否开启ssl # 是否开启ssl

View File

@ -38,6 +38,11 @@
<artifactId>fys-common-translation</artifactId> <artifactId>fys-common-translation</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.fuyuanshen</groupId>
<artifactId>fys-system</artifactId>
</dependency>
<!-- OSS功能模块 --> <!-- OSS功能模块 -->
<dependency> <dependency>
<groupId>com.fuyuanshen</groupId> <groupId>com.fuyuanshen</groupId>

View File

@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuyuanshen.common.core.constant.ResponseMessageConstants; import com.fuyuanshen.common.core.constant.ResponseMessageConstants;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.domain.ResponseVO; import com.fuyuanshen.common.core.domain.ResponseVO;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.Device;
import com.fuyuanshen.equipment.domain.dto.ImportResult; import com.fuyuanshen.equipment.domain.dto.ImportResult;
import com.fuyuanshen.equipment.domain.form.DeviceForm; import com.fuyuanshen.equipment.domain.form.DeviceForm;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria; import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
import com.fuyuanshen.equipment.domain.vo.CustomerVo; import com.fuyuanshen.equipment.domain.vo.CustomerVo;
import com.fuyuanshen.equipment.service.DeviceService; import com.fuyuanshen.equipment.service.DeviceService;
import com.fuyuanshen.system.domain.vo.SysOssVo;
import com.fuyuanshen.system.service.ISysOssService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@ -37,21 +40,23 @@ import java.util.List;
@RequestMapping("/api/device") @RequestMapping("/api/device")
public class DeviceController { public class DeviceController {
private final ISysOssService ossService;
private final DeviceService deviceService; private final DeviceService deviceService;
@Operation(summary = "分页查询设备列表", security = {@SecurityRequirement(name = "bearer-key")}) @Operation(summary = "分页查询设备列表", security = {@SecurityRequirement(name = "bearer-key")})
@GetMapping @GetMapping
public ResponseVO<PageResult<Device>> queryDevice(DeviceQueryCriteria criteria) { public TableDataInfo<Device> queryDevice(DeviceQueryCriteria criteria) throws IOException {
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); Page<Device> page = new Page<>(criteria.getPage(), criteria.getSize());
PageResult<Device> devices = null; // PageResult<Device> devices = null;
try { // try {
devices = deviceService.queryAll(criteria, page); // devices = deviceService.queryAll(criteria, page);
} catch (IOException e) { // } catch (IOException e) {
log.error("queryDevice error: " + e.getMessage()); // log.error("queryDevice error: " + e.getMessage());
return ResponseVO.fail(""); // return ResponseVO.fail("");
} // }
return ResponseVO.success(devices); // return ResponseVO.success(devices);
return deviceService.queryAll(criteria, page);
} }
@ -159,6 +164,8 @@ public class DeviceController {
@PostMapping(value = "/import", consumes = "multipart/form-data") @PostMapping(value = "/import", consumes = "multipart/form-data")
public ResponseVO<ImportResult> importData(@Parameter(name = "文件", required = true) @RequestPart("file") MultipartFile file) { public ResponseVO<ImportResult> importData(@Parameter(name = "文件", required = true) @RequestPart("file") MultipartFile file) {
SysOssVo upload = ossService.upload(file);
// String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); // String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
// if (!("xlsx".equalsIgnoreCase(suffix))) { // if (!("xlsx".equalsIgnoreCase(suffix))) {
// throw new BadRequestException("只能上传Excel——xlsx格式文件"); // throw new BadRequestException("只能上传Excel——xlsx格式文件");

View File

@ -3,6 +3,7 @@ package com.fuyuanshen.equipment.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.domain.ResponseVO; import com.fuyuanshen.common.core.domain.ResponseVO;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.DeviceType;
import com.fuyuanshen.equipment.domain.form.DeviceTypeForm; import com.fuyuanshen.equipment.domain.form.DeviceTypeForm;
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
@ -32,9 +33,9 @@ public class DeviceTypeController {
@GetMapping @GetMapping
@Operation(summary = "分页查询设备类型") @Operation(summary = "分页查询设备类型")
public ResponseVO<PageResult<DeviceType>> queryDeviceType(DeviceTypeQueryCriteria criteria) { public TableDataInfo<DeviceType> queryDeviceType(DeviceTypeQueryCriteria criteria) {
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); Page<DeviceType> page = new Page<>(criteria.getPage(), criteria.getSize());
return ResponseVO.success(deviceTypeService.queryAll(criteria, page)); return deviceTypeService.queryAll(criteria, page);
} }

View File

@ -2,9 +2,7 @@ package com.fuyuanshen.equipment.domain;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fuyuanshen.common.tenant.core.TenantEntity; import com.fuyuanshen.common.tenant.core.TenantEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@ -45,6 +43,10 @@ public class DeviceType extends TenantEntity {
@Schema(name = "通讯方式", example = "0:4G;1:蓝牙") @Schema(name = "通讯方式", example = "0:4G;1:蓝牙")
private String communicationMode; private String communicationMode;
/**
* 创建人名称
*/
private String createByName;
public void copy(DeviceType source) { public void copy(DeviceType source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));

View File

@ -25,7 +25,7 @@ public interface DeviceMapper extends BaseMapper<Device> {
* @param page * @param page
* @return * @return
*/ */
IPage<Device> findAll(@Param("criteria") DeviceQueryCriteria criteria, Page<Object> page); IPage<Device> findAll(@Param("criteria") DeviceQueryCriteria criteria, Page<Device> page);
List<Device> findAll(@Param("criteria") DeviceQueryCriteria criteria); List<Device> findAll(@Param("criteria") DeviceQueryCriteria criteria);

View File

@ -25,7 +25,7 @@ public interface DeviceTypeMapper extends BaseMapper<DeviceType> {
* @param page * @param page
* @return * @return
*/ */
IPage<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page<Object> page); IPage<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page<DeviceType> page);
/** /**

View File

@ -3,6 +3,7 @@ package com.fuyuanshen.equipment.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.Device;
import com.fuyuanshen.equipment.domain.form.DeviceForm; import com.fuyuanshen.equipment.domain.form.DeviceForm;
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria; import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
@ -25,7 +26,7 @@ public interface DeviceService extends IService<Device> {
* @param page 分页参数 * @param page 分页参数
* @return PageResult * @return PageResult
*/ */
PageResult<Device> queryAll(DeviceQueryCriteria criteria, Page<Object> page) throws IOException; TableDataInfo<Device> queryAll(DeviceQueryCriteria criteria, Page<Device> page) throws IOException;
/** /**
* 查询所有设备信息 * 查询所有设备信息

View File

@ -3,6 +3,7 @@ package com.fuyuanshen.equipment.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.DeviceType;
import com.fuyuanshen.equipment.domain.form.DeviceTypeForm; import com.fuyuanshen.equipment.domain.form.DeviceTypeForm;
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
@ -23,7 +24,7 @@ public interface DeviceTypeService extends IService<DeviceType> {
* @param page 分页参数 * @param page 分页参数
* @return PageResult * @return PageResult
*/ */
PageResult<DeviceType> queryAll(DeviceTypeQueryCriteria criteria, Page<Object> page); TableDataInfo<DeviceType> queryAll(DeviceTypeQueryCriteria criteria, Page<DeviceType> page);
/** /**
* 查询所有数据不分页 * 查询所有数据不分页

View File

@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.utils.PageUtil; import com.fuyuanshen.common.core.utils.PageUtil;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.common.satoken.utils.LoginHelper;
import com.fuyuanshen.customer.domain.vo.ConsumerVo;
import com.fuyuanshen.equipment.constants.DeviceConstants; import com.fuyuanshen.equipment.constants.DeviceConstants;
import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.Device;
import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.DeviceType;
@ -63,7 +65,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
* @throws IOException * @throws IOException
*/ */
@Override @Override
public PageResult<Device> queryAll(DeviceQueryCriteria criteria, Page<Object> page) throws IOException { public TableDataInfo<Device> queryAll(DeviceQueryCriteria criteria, Page<Device> page) throws IOException {
// criteria.setCustomerId(LoginHelper.getUserId()); // criteria.setCustomerId(LoginHelper.getUserId());
criteria.setCurrentOwnerId(LoginHelper.getUserId()); criteria.setCurrentOwnerId(LoginHelper.getUserId());
@ -76,7 +78,8 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
} }
} }
return PageUtil.toPage(devices); // return PageUtil.toPage(devices);
return new TableDataInfo<Device>(records, devices.getTotal());
} }

View File

@ -1,10 +1,13 @@
package com.fuyuanshen.equipment.service.impl; package com.fuyuanshen.equipment.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.domain.model.LoginUser;
import com.fuyuanshen.common.core.utils.PageUtil; import com.fuyuanshen.common.core.utils.PageUtil;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
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;
@ -43,9 +46,11 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
* @return * @return
*/ */
@Override @Override
public PageResult<DeviceType> queryAll(DeviceTypeQueryCriteria criteria, Page<Object> page) { public TableDataInfo<DeviceType> queryAll(DeviceTypeQueryCriteria criteria, Page<DeviceType> page) {
criteria.setCustomerId(LoginHelper.getUserId()); criteria.setCustomerId(LoginHelper.getUserId());
return PageUtil.toPage(deviceTypeMapper.findAll(criteria, page)); // return
IPage<DeviceType> deviceTypeIPage = deviceTypeMapper.findAll(criteria, page);
return new TableDataInfo<DeviceType>(deviceTypeIPage.getRecords(), deviceTypeIPage.getTotal());
} }
@ -77,9 +82,10 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void create(DeviceType resources) { public void create(DeviceType resources) {
Long userId = LoginHelper.getUserId(); LoginUser loginUser = LoginHelper.getLoginUser();
resources.setCustomerId(userId); resources.setCustomerId(loginUser.getUserId());
resources.setOwnerCustomerId(userId); resources.setOwnerCustomerId(loginUser.getUserId());
resources.setCreateByName(loginUser.getNickname());
deviceTypeMapper.insert(resources); deviceTypeMapper.insert(resources);
} }