From e23c5267ee429fe4cfe5058dae30d158d1449b4e Mon Sep 17 00:00:00 2001 From: DragonWenLong <552045633@qq.com> Date: Fri, 27 Feb 2026 15:13:53 +0800 Subject: [PATCH] =?UTF-8?q?refactor(equipment):=20=E5=B0=86=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E6=96=87=E4=BB=B6=E5=92=8C=E6=93=8D=E4=BD=9C=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=8A=9F=E8=83=BD=E4=BB=8Eapp=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=88=B0equipment=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移动AppBusinessFile相关类到equipment模块 - 移动AppOperationVideo相关类到equipment模块 - 更新所有导入路径以指向新的equipment包结构 - 重构设备创建流程中的文件克隆逻辑 - 添加cloneFiles方法支持从设备类型复制文件和视频到新设备 - 优化DeviceXinghanBizService中的设备验证逻辑 - 更新Mapper XML命名空间和返回类型引用 - 调整设备导入Excel的必填字段验证规则 --- .../app/controller/AppFileController.java | 4 +- .../AppOperationVideoController.java | 6 +-- .../app/service/AppFileService.java | 7 +-- .../device/DeviceDebugController.java | 10 +--- .../web/domain/vo/DeviceInfoVo.java | 7 +-- .../service/device/DeviceDebugService.java | 12 ++--- .../device/DeviceXinghanBizService.java | 50 +++++++++++------- .../controller/AppBusinessFileController.java | 6 +-- .../AppOperationVideoController.java | 6 +-- .../controller/DeviceController.java | 3 +- .../equipment}/domain/AppBusinessFile.java | 2 +- .../equipment}/domain/AppOperationVideo.java | 2 +- .../domain/bo/AppBusinessFileBo.java | 4 +- .../domain/bo/AppOperationVideoBo.java | 4 +- .../domain/vo/AppBusinessFileVo.java | 8 +-- .../equipment}/domain/vo/AppFileVo.java | 2 +- .../domain/vo/AppOperationVideoVo.java | 8 +-- .../mapper/AppBusinessFileMapper.java | 10 ++-- .../mapper/AppOperationVideoMapper.java | 6 +-- .../service/IAppBusinessFileService.java | 14 ++--- .../service/IAppOperationVideoService.java | 11 ++-- .../impl/AppBusinessFileServiceImpl.java | 52 +++++++++++++++---- .../impl/AppOperationVideoServiceImpl.java | 48 ++++++++++++++--- .../service/impl/DeviceServiceImpl.java | 13 +++-- .../equipment}/AppBusinessFileMapper.xml | 4 +- .../equipment}/AppOperationVideoMapper.xml | 2 +- 26 files changed, 186 insertions(+), 115 deletions(-) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/AppBusinessFile.java (95%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/AppOperationVideo.java (95%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/bo/AppBusinessFileBo.java (90%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/bo/AppOperationVideoBo.java (90%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/vo/AppBusinessFileVo.java (82%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/vo/AppFileVo.java (90%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/domain/vo/AppOperationVideoVo.java (81%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/mapper/AppBusinessFileMapper.java (55%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/mapper/AppOperationVideoMapper.java (65%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/service/IAppBusinessFileService.java (81%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/service/IAppOperationVideoService.java (86%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/service/impl/AppBusinessFileServiceImpl.java (71%) rename fys-modules/{fys-app/src/main/java/com/fuyuanshen/app => fys-equipment/src/main/java/com/fuyuanshen/equipment}/service/impl/AppOperationVideoServiceImpl.java (72%) rename fys-modules/{fys-app/src/main/resources/mapper/app => fys-equipment/src/main/resources/mapper/equipment}/AppBusinessFileMapper.xml (81%) rename fys-modules/{fys-app/src/main/resources/mapper/app => fys-equipment/src/main/resources/mapper/equipment}/AppOperationVideoMapper.xml (67%) diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppFileController.java b/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppFileController.java index a2de6185..fd072249 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppFileController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppFileController.java @@ -1,8 +1,8 @@ package com.fuyuanshen.app.controller; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; import com.fuyuanshen.app.domain.dto.AppFileDto; -import com.fuyuanshen.app.domain.vo.AppFileVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; import com.fuyuanshen.app.service.AppFileService; import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.web.core.BaseController; diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java b/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java index 5338ba2c..bcba5c87 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java @@ -1,8 +1,8 @@ package com.fuyuanshen.app.controller; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; -import com.fuyuanshen.app.service.IAppOperationVideoService; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; +import com.fuyuanshen.equipment.service.IAppOperationVideoService; import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.core.domain.model.AppLoginUser; import com.fuyuanshen.common.satoken.utils.AppLoginHelper; diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppFileService.java b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppFileService.java index 0b450f39..49257f02 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppFileService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppFileService.java @@ -1,13 +1,14 @@ package com.fuyuanshen.app.service; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; import com.fuyuanshen.app.domain.dto.AppFileDto; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.vo.AppFileVo; +import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; import com.fuyuanshen.common.core.exception.ServiceException; import com.fuyuanshen.common.oss.core.OssClient; import com.fuyuanshen.common.oss.factory.OssFactory; import com.fuyuanshen.common.satoken.utils.AppLoginHelper; +import com.fuyuanshen.equipment.service.IAppBusinessFileService; import com.fuyuanshen.equipment.utils.FileHashUtil; import com.fuyuanshen.system.domain.vo.SysOssVo; import com.fuyuanshen.system.service.ISysOssService; diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceDebugController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceDebugController.java index fa204c02..e05a89c4 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceDebugController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceDebugController.java @@ -1,19 +1,15 @@ package com.fuyuanshen.web.controller.device; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; -import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; import com.fuyuanshen.app.domain.dto.AppFileDto; import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.core.exception.ServiceException; import com.fuyuanshen.common.log.annotation.Log; -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.ratelimiter.annotation.FunctionAccessAnnotation; import com.fuyuanshen.common.web.core.BaseController; import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria; -import com.fuyuanshen.equipment.domain.vo.AppDeviceVo; import com.fuyuanshen.equipment.domain.vo.WebDeviceVo; import com.fuyuanshen.web.domain.Dto.DeviceDebugEditDto; import com.fuyuanshen.web.domain.Dto.DeviceDebugLogoUploadDto; @@ -28,8 +24,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; /** * 联调中心 @@ -125,7 +119,7 @@ public class DeviceDebugController extends BaseController { } deviceDebugService.delFile(bo.getFileIds()); // 修改操作视频 - if (bo.getVideoUrl().isEmpty()) { + if (!bo.getVideoUrl().isEmpty()) { AppOperationVideoBo appOperationVideoBo = new AppOperationVideoBo(); appOperationVideoBo.setDeviceIds(new Long[]{ bo.getDeviceId() }); appOperationVideoBo.setVideoUrl(bo.getVideoUrl()); diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/domain/vo/DeviceInfoVo.java b/fys-admin/src/main/java/com/fuyuanshen/web/domain/vo/DeviceInfoVo.java index e0c637b5..80df8a64 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/domain/vo/DeviceInfoVo.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/domain/vo/DeviceInfoVo.java @@ -1,10 +1,7 @@ package com.fuyuanshen.web.domain.vo; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.vo.AppFileVo; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; -import com.fuyuanshen.equipment.domain.Device; -import com.fuyuanshen.equipment.domain.vo.AppDeviceVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; import lombok.Data; import java.util.List; diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceDebugService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceDebugService.java index afea4858..078c3962 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceDebugService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceDebugService.java @@ -1,13 +1,13 @@ package com.fuyuanshen.web.service.device; import cn.hutool.core.collection.CollUtil; -import com.fuyuanshen.app.domain.AppBusinessFile; -import com.fuyuanshen.app.domain.AppOperationVideo; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; +import com.fuyuanshen.equipment.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; import com.fuyuanshen.app.domain.dto.AppFileDto; -import com.fuyuanshen.app.service.IAppBusinessFileService; -import com.fuyuanshen.app.service.IAppOperationVideoService; +import com.fuyuanshen.equipment.service.IAppBusinessFileService; +import com.fuyuanshen.equipment.service.IAppOperationVideoService; import com.fuyuanshen.common.core.exception.ServiceException; import com.fuyuanshen.common.satoken.utils.AppLoginHelper; import com.fuyuanshen.equipment.service.DeviceService; diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceXinghanBizService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceXinghanBizService.java index 5a4ef3ff..0ac79432 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceXinghanBizService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceXinghanBizService.java @@ -1,11 +1,11 @@ package com.fuyuanshen.web.service.device; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -15,20 +15,17 @@ import com.fuyuanshen.app.domain.AppPersonnelInfo; import com.fuyuanshen.app.domain.AppPersonnelInfoRecords; import com.fuyuanshen.app.domain.bo.AppPersonnelInfoBo; import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto; -import com.fuyuanshen.app.domain.dto.DeviceInstructDto; -import com.fuyuanshen.app.domain.vo.AppDeviceDetailVo; import com.fuyuanshen.app.domain.vo.AppPersonnelInfoVo; import com.fuyuanshen.app.mapper.AppPersonnelInfoMapper; import com.fuyuanshen.app.mapper.AppPersonnelInfoRecordsMapper; +import com.fuyuanshen.equipment.service.IAppBusinessFileService; +import com.fuyuanshen.equipment.service.IAppOperationVideoService; import com.fuyuanshen.common.core.constant.GlobalConstants; -import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.core.domain.model.AppLoginUser; -import com.fuyuanshen.common.core.domain.model.LoginUser; import com.fuyuanshen.common.core.exception.BadRequestException; import com.fuyuanshen.common.core.exception.ServiceException; import com.fuyuanshen.common.core.utils.ImageToCArrayConverter; import com.fuyuanshen.common.core.utils.MapstructUtils; -import com.fuyuanshen.common.core.utils.ObjectUtils; import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.json.utils.JsonUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; @@ -40,7 +37,6 @@ import com.fuyuanshen.equipment.domain.dto.AppDeviceSendMsgBo; import com.fuyuanshen.equipment.domain.form.DeviceForm; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import com.fuyuanshen.equipment.enums.DeviceActiveStatusEnum; -import com.fuyuanshen.equipment.enums.LightModeEnum; import com.fuyuanshen.equipment.mapper.DeviceLogMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeGrantsMapper; @@ -51,8 +47,6 @@ import com.fuyuanshen.global.mqtt.base.MqttXinghanJson; import com.fuyuanshen.global.mqtt.config.MqttGateway; import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; import com.fuyuanshen.global.mqtt.constants.MqttConstants; -import com.fuyuanshen.system.domain.vo.SysOssVo; -import com.fuyuanshen.system.domain.vo.SysRoleVo; import com.fuyuanshen.web.domain.Dto.DeviceDebugLogoUploadDto; import com.fuyuanshen.web.domain.Dto.DeviceXinghanInstructDto; import com.fuyuanshen.web.domain.vo.DeviceXinghanDetailVo; @@ -64,15 +58,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.time.Duration; import java.time.LocalDateTime; import java.util.*; -import java.util.stream.Collectors; import static com.fuyuanshen.common.core.constant.GlobalConstants.GLOBAL_REDIS_KEY; import static com.fuyuanshen.common.core.utils.ImageToCArrayConverter.convertHexToDecimal; @@ -93,6 +84,8 @@ public class DeviceXinghanBizService { private final IDeviceAlarmService deviceAlarmService; private final DeviceTypeGrantsMapper deviceTypeGrantsMapper; private final DeviceAssignmentsService deviceAssignmentsService; + private final IAppBusinessFileService appBusinessFileService; + private final IAppOperationVideoService appOperationVideoService; @Autowired private ObjectMapper objectMapper; private final AliyunVoiceUtil voiceUtil; @@ -721,20 +714,31 @@ public class DeviceXinghanBizService { return deviceTypeMapper.findAll(criteria); } - // @Log("新增设备") - public void addDevice(DeviceForm deviceForm) { - if (deviceForm.getDeviceMac() != null && deviceForm.getBluetoothName() == null) { + /** + * 校验唯一性约束 + */ + private void validateDeviceUnique(DeviceForm form) { + if (form.getDeviceMac() != null && form.getBluetoothName() == null) { throw new BadRequestException("请填写蓝牙名称!!!"); } - Device device1 = deviceMapper.selectOne(new QueryWrapper().eq("device_mac", deviceForm.getDeviceMac())); - if (device1 != null) { + // 使用 QueryWrapper 替代 lambdaQuery() + Long macCount = deviceMapper.selectCount(new LambdaQueryWrapper() + .eq(Device::getDeviceMac, form.getDeviceMac())); + if (macCount > 0) { throw new BadRequestException("设备MAC已存在!!!"); } - Device device2 = deviceMapper.selectOne(new QueryWrapper().eq("device_imei", deviceForm.getDeviceImei())); - if (device2 != null) { + + Long imeiCount = deviceMapper.selectCount(new LambdaQueryWrapper() + .eq(Device::getDeviceImei, form.getDeviceImei())); + if (imeiCount > 0) { throw new BadRequestException("设备IMEI已存在!!!"); } + } + + // @Log("新增设备") + public void addDevice(DeviceForm deviceForm) { + validateDeviceUnique(deviceForm); DeviceTypeQueryCriteria queryCriteria = new DeviceTypeQueryCriteria(); queryCriteria.setDeviceTypeId(deviceForm.getDeviceType()); @@ -768,6 +772,14 @@ public class DeviceXinghanBizService { device.setBindingStatus(0); deviceMapper.insert(device); + Long deviceId = device.getDeviceId(); + + // 查询设备类型的文件列表 + // 4. 核心优化:同步设备类型的文件列表 (一行代码) + appBusinessFileService.cloneFiles(deviceTypes.getId(), device.getId()); + //同步设备类型的视频列表 + appOperationVideoService.cloneFiles(deviceTypes.getId(), device.getId()); + // 新增设备类型记录 DeviceAssignments assignments = new DeviceAssignments(); assignments.setDeviceId(device.getId()); diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppBusinessFileController.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppBusinessFileController.java index 9ad7df31..195a719b 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppBusinessFileController.java +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppBusinessFileController.java @@ -17,9 +17,9 @@ import com.fuyuanshen.common.core.validate.AddGroup; import com.fuyuanshen.common.core.validate.EditGroup; import com.fuyuanshen.common.log.enums.BusinessType; import com.fuyuanshen.common.excel.utils.ExcelUtil; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; -import com.fuyuanshen.app.service.IAppBusinessFileService; +import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.service.IAppBusinessFileService; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; /** diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java index f6e0fb28..04123b4e 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppOperationVideoController.java @@ -17,9 +17,9 @@ import com.fuyuanshen.common.core.validate.AddGroup; import com.fuyuanshen.common.core.validate.EditGroup; import com.fuyuanshen.common.log.enums.BusinessType; import com.fuyuanshen.common.excel.utils.ExcelUtil; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; -import com.fuyuanshen.app.service.IAppOperationVideoService; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; +import com.fuyuanshen.equipment.service.IAppOperationVideoService; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; /** diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java index 56c605b8..2899ab69 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java @@ -317,8 +317,7 @@ public class DeviceController extends BaseController { // 定义必需的表头 Set requiredHeaders = new HashSet<>(Arrays.asList( "设备名称", "设备类型名称", "设备图片", "设备MAC", "蓝牙名称", "设备IMEI", - "备注", "是否支持蓝牙", "定位方式", "通讯方式", - "型号字典用于APP页面跳转", "型号字典用于PC页面跳转" + "备注" )); // 检查必需的表头是否都存在 diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppBusinessFile.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppBusinessFile.java similarity index 95% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppBusinessFile.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppBusinessFile.java index 307b4bbd..96a2dd1e 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppBusinessFile.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppBusinessFile.java @@ -1,4 +1,4 @@ -package com.fuyuanshen.app.domain; +package com.fuyuanshen.equipment.domain; import com.fuyuanshen.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppOperationVideo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppOperationVideo.java similarity index 95% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppOperationVideo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppOperationVideo.java index 0a88c318..d61fe21c 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppOperationVideo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/AppOperationVideo.java @@ -1,4 +1,4 @@ -package com.fuyuanshen.app.domain; +package com.fuyuanshen.equipment.domain; import com.fuyuanshen.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppBusinessFileBo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppBusinessFileBo.java similarity index 90% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppBusinessFileBo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppBusinessFileBo.java index 0454e728..f04df6f8 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppBusinessFileBo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppBusinessFileBo.java @@ -1,6 +1,6 @@ -package com.fuyuanshen.app.domain.bo; +package com.fuyuanshen.equipment.domain.bo; -import com.fuyuanshen.app.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.AppBusinessFile; import com.fuyuanshen.common.core.validate.EditGroup; import com.fuyuanshen.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppOperationVideoBo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppOperationVideoBo.java similarity index 90% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppOperationVideoBo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppOperationVideoBo.java index d15765fe..2388bee7 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppOperationVideoBo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/AppOperationVideoBo.java @@ -1,6 +1,6 @@ -package com.fuyuanshen.app.domain.bo; +package com.fuyuanshen.equipment.domain.bo; -import com.fuyuanshen.app.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.AppOperationVideo; import com.fuyuanshen.common.core.validate.EditGroup; import com.fuyuanshen.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppBusinessFileVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppBusinessFileVo.java similarity index 82% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppBusinessFileVo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppBusinessFileVo.java index 66f10419..e0ea69ec 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppBusinessFileVo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppBusinessFileVo.java @@ -1,17 +1,13 @@ -package com.fuyuanshen.app.domain.vo; +package com.fuyuanshen.equipment.domain.vo; -import com.fuyuanshen.app.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.AppBusinessFile; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import com.fuyuanshen.common.excel.annotation.ExcelDictFormat; -import com.fuyuanshen.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - /** diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppFileVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppFileVo.java similarity index 90% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppFileVo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppFileVo.java index fdad1f1a..7c17b11a 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppFileVo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppFileVo.java @@ -1,4 +1,4 @@ -package com.fuyuanshen.app.domain.vo; +package com.fuyuanshen.equipment.domain.vo; import lombok.Data; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppOperationVideoVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppOperationVideoVo.java similarity index 81% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppOperationVideoVo.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppOperationVideoVo.java index 3ee214e7..afd97780 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/vo/AppOperationVideoVo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/AppOperationVideoVo.java @@ -1,17 +1,13 @@ -package com.fuyuanshen.app.domain.vo; +package com.fuyuanshen.equipment.domain.vo; -import com.fuyuanshen.app.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.AppOperationVideo; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import com.fuyuanshen.common.excel.annotation.ExcelDictFormat; -import com.fuyuanshen.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - /** diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppBusinessFileMapper.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppBusinessFileMapper.java similarity index 55% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppBusinessFileMapper.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppBusinessFileMapper.java index c6defea0..fb2f1880 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppBusinessFileMapper.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppBusinessFileMapper.java @@ -1,10 +1,10 @@ -package com.fuyuanshen.app.mapper; +package com.fuyuanshen.equipment.mapper; -import com.fuyuanshen.app.domain.AppBusinessFile; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.vo.AppFileVo; import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; +import com.fuyuanshen.equipment.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; import java.util.List; diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppOperationVideoMapper.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppOperationVideoMapper.java similarity index 65% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppOperationVideoMapper.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppOperationVideoMapper.java index 65b7ef39..adf250db 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppOperationVideoMapper.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/AppOperationVideoMapper.java @@ -1,8 +1,8 @@ -package com.fuyuanshen.app.mapper; +package com.fuyuanshen.equipment.mapper; -import com.fuyuanshen.app.domain.AppOperationVideo; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; +import com.fuyuanshen.equipment.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; import org.apache.ibatis.annotations.Mapper; /** diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppBusinessFileService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppBusinessFileService.java similarity index 81% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppBusinessFileService.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppBusinessFileService.java index 339f926d..2bf2a655 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppBusinessFileService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppBusinessFileService.java @@ -1,11 +1,11 @@ -package com.fuyuanshen.app.service; +package com.fuyuanshen.equipment.service; -import com.fuyuanshen.app.domain.AppBusinessFile; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; -import com.fuyuanshen.app.domain.vo.AppFileVo; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.common.mybatis.core.page.PageQuery; +import com.fuyuanshen.equipment.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; import java.util.Collection; import java.util.List; @@ -57,7 +57,9 @@ public interface IAppBusinessFileService { * @param bo 批量新增app业务文件 * @return 是否新增成功 */ - Boolean insertBatch(Collection bo,Boolean isBatch); + Boolean insertBatch(Collection bo, Boolean isBatch); + + void cloneFiles(Long sourceId, Long targetId); /** * 修改app业务文件 diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppOperationVideoService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppOperationVideoService.java similarity index 86% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppOperationVideoService.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppOperationVideoService.java index ed38f869..cee052d6 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppOperationVideoService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IAppOperationVideoService.java @@ -1,11 +1,10 @@ -package com.fuyuanshen.app.service; +package com.fuyuanshen.equipment.service; -import com.fuyuanshen.app.domain.AppBusinessFile; -import com.fuyuanshen.app.domain.AppOperationVideo; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.common.mybatis.core.page.PageQuery; +import com.fuyuanshen.equipment.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; import java.util.Collection; import java.util.List; @@ -59,6 +58,8 @@ public interface IAppOperationVideoService { */ Boolean insertBatch(Collection bo); + void cloneFiles(Long sourceId, Long targetId); + /** * 修改操作视频 * diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppBusinessFileServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppBusinessFileServiceImpl.java similarity index 71% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppBusinessFileServiceImpl.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppBusinessFileServiceImpl.java index c51fada1..aabbfd42 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppBusinessFileServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppBusinessFileServiceImpl.java @@ -1,27 +1,29 @@ -package com.fuyuanshen.app.service.impl; +package com.fuyuanshen.equipment.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.fuyuanshen.app.domain.vo.AppFileVo; import com.fuyuanshen.common.core.utils.MapstructUtils; -import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fuyuanshen.equipment.domain.AppBusinessFile; +import com.fuyuanshen.equipment.domain.bo.AppBusinessFileBo; +import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; +import com.fuyuanshen.equipment.domain.vo.AppFileVo; +import com.fuyuanshen.equipment.mapper.AppBusinessFileMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import com.fuyuanshen.app.domain.bo.AppBusinessFileBo; -import com.fuyuanshen.app.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.app.domain.AppBusinessFile; -import com.fuyuanshen.app.mapper.AppBusinessFileMapper; -import com.fuyuanshen.app.service.IAppBusinessFileService; +import com.fuyuanshen.equipment.service.IAppBusinessFileService; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * app业务文件Service业务层处理 @@ -117,6 +119,38 @@ public class AppBusinessFileServiceImpl implements IAppBusinessFileService { return baseMapper.insertBatch(bo); } + /** + * 克隆业务文件列表到新业务ID + * @param sourceId 源业务ID(如设备类型ID) + * @param targetId 目标业务ID(如新设备ID) + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void cloneFiles(Long sourceId, Long targetId) { + // 1. 使用 Wrappers 替代 this.lambdaQuery() + List sourceFiles = baseMapper.selectList( + Wrappers.lambdaQuery().eq(AppBusinessFile::getBusinessId, sourceId) + ); + + if (CollUtil.isEmpty(sourceFiles)) { + return; + } + + // 2. 批量转换并重置ID + List newFiles = sourceFiles.stream().map(file -> { + AppBusinessFile entity = new AppBusinessFile(); + // 建议使用你代码中已有的 MapstructUtils 或 BeanUtil + BeanUtil.copyProperties(file, entity); + entity.setId(null); // 确保主键自增 + entity.setBusinessId(targetId); // 绑定到新设备ID + return entity; + }).collect(Collectors.toList()); + + // 3. 使用你已有的 insertBatch 替代 saveBatch + // 注意:这里第二个参数传 false,因为是新设备,不需要执行你 insertBatch 里的删除逻辑 + this.insertBatch(newFiles, false); + } + /** * 修改app业务文件 * diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppOperationVideoServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppOperationVideoServiceImpl.java similarity index 72% rename from fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppOperationVideoServiceImpl.java rename to fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppOperationVideoServiceImpl.java index 32f8781e..12a7deb1 100644 --- a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppOperationVideoServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/AppOperationVideoServiceImpl.java @@ -1,7 +1,8 @@ -package com.fuyuanshen.app.service.impl; +package com.fuyuanshen.equipment.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.fuyuanshen.app.domain.AppBusinessFile; import com.fuyuanshen.common.core.utils.MapstructUtils; import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; @@ -9,18 +10,20 @@ import com.fuyuanshen.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fuyuanshen.equipment.domain.AppOperationVideo; +import com.fuyuanshen.equipment.domain.bo.AppOperationVideoBo; +import com.fuyuanshen.equipment.domain.vo.AppOperationVideoVo; +import com.fuyuanshen.equipment.mapper.AppOperationVideoMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import com.fuyuanshen.app.domain.bo.AppOperationVideoBo; -import com.fuyuanshen.app.domain.vo.AppOperationVideoVo; -import com.fuyuanshen.app.domain.AppOperationVideo; -import com.fuyuanshen.app.mapper.AppOperationVideoMapper; -import com.fuyuanshen.app.service.IAppOperationVideoService; +import com.fuyuanshen.equipment.service.IAppOperationVideoService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 操作视频Service业务层处理 @@ -125,6 +128,37 @@ public class AppOperationVideoServiceImpl implements IAppOperationVideoService { return baseMapper.updateById(update) > 0; } + /** + * 克隆业务文件列表到新业务ID + * @param sourceId 源业务ID(如设备类型ID) + * @param targetId 目标业务ID(如新设备ID) + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void cloneFiles(Long sourceId, Long targetId) { + // 1. 使用 Wrappers 替代 this.lambdaQuery() + List sourceFiles = baseMapper.selectList( + Wrappers.lambdaQuery().eq(AppOperationVideo::getDeviceId, sourceId) + ); + + if (CollUtil.isEmpty(sourceFiles)) { + return; + } + + // 2. 批量转换并重置ID + List newFiles = sourceFiles.stream().map(file -> { + AppOperationVideo entity = new AppOperationVideo(); + // 建议使用你代码中已有的 MapstructUtils 或 BeanUtil + BeanUtil.copyProperties(file, entity); + entity.setId(null); // 确保主键自增 + entity.setDeviceId(targetId); // 绑定到新设备ID + return entity; + }).collect(Collectors.toList()); + + // 3. 使用你已有的 insertBatch 替代 saveBatch + this.insertBatch(newFiles); + } + /** * 保存前的数据校验 */ diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java index 0ed6af42..38dc53bd 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java @@ -30,10 +30,7 @@ import com.fuyuanshen.equipment.enums.BindingStatusEnum; import com.fuyuanshen.equipment.enums.CommunicationModeEnum; import com.fuyuanshen.equipment.enums.DeviceActiveStatusEnum; import com.fuyuanshen.equipment.mapper.*; -import com.fuyuanshen.equipment.service.DeviceAssignmentsService; -import com.fuyuanshen.equipment.service.DeviceService; -import com.fuyuanshen.equipment.service.DeviceTypeGrantsService; -import com.fuyuanshen.equipment.service.IDeviceGeoFenceService; +import com.fuyuanshen.equipment.service.*; import com.fuyuanshen.equipment.utils.FileHashUtil; import com.fuyuanshen.system.domain.vo.SysOssVo; import com.fuyuanshen.system.domain.vo.SysRoleVo; @@ -77,6 +74,8 @@ public class DeviceServiceImpl extends ServiceImpl impleme private final DeviceFenceAccessRecordMapper deviceFenceAccessRecordMapper; private final FileHashUtil fileHashUtil; + private final IAppBusinessFileService appBusinessFileService; + private final IAppOperationVideoService appOperationVideoService; /** @@ -334,6 +333,12 @@ public class DeviceServiceImpl extends ServiceImpl impleme device.setBindingStatus(0); deviceMapper.insert(device); + // 查询设备类型的文件列表 + // 4. 核心优化:同步设备类型的文件列表 (一行代码) + appBusinessFileService.cloneFiles(deviceType.getId(), device.getId()); + //同步设备类型的视频列表 + appOperationVideoService.cloneFiles(deviceType.getId(), device.getId()); + // 新增设备类型记录 DeviceAssignments assignments = new DeviceAssignments(); assignments.setDeviceId(device.getId()); diff --git a/fys-modules/fys-app/src/main/resources/mapper/app/AppBusinessFileMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppBusinessFileMapper.xml similarity index 81% rename from fys-modules/fys-app/src/main/resources/mapper/app/AppBusinessFileMapper.xml rename to fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppBusinessFileMapper.xml index 2b0a9a93..d97ebf6c 100644 --- a/fys-modules/fys-app/src/main/resources/mapper/app/AppBusinessFileMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppBusinessFileMapper.xml @@ -2,9 +2,9 @@ - + - select a.id,a.business_id,a.file_id,a.file_type,b.file_name,b.url fileUrl from app_business_file a left join sys_oss b on a.file_id = b.oss_id where 1=1 diff --git a/fys-modules/fys-app/src/main/resources/mapper/app/AppOperationVideoMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppOperationVideoMapper.xml similarity index 67% rename from fys-modules/fys-app/src/main/resources/mapper/app/AppOperationVideoMapper.xml rename to fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppOperationVideoMapper.xml index e303e121..4de2560f 100644 --- a/fys-modules/fys-app/src/main/resources/mapper/app/AppOperationVideoMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/AppOperationVideoMapper.xml @@ -2,6 +2,6 @@ - + -- 2.43.5