From 3f063a29cd30c03fbe6b6b7f7715723591dfefb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 2 Feb 2026 20:30:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(device):=20=E4=BF=AE=E6=94=B9=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=9C=8D=E5=8A=A1=E4=BB=A3=E7=90=86=E5=95=86=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=8A=9F=E8=83=BD=E6=94=AF=E6=8C=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 ChangeServiceAgentCodeQuery 中的 deviceId 字段改为 deviceIds 列表 - 添加 List 类型和 NotEmpty 注解支持批量设备ID验证 - 更新 Controller 层逻辑以支持批量处理设备代理商编码变更 - 添加设备存在性检查避免无效操作 - 仅对代理商编码不同的设备执行更新操作 - 批量为每个符合条件的设备创建代理商变更记录 --- .../admin/controller/DeviceController.java | 36 ++++++++++++------- .../query/ChangeServiceAgentCodeQuery.java | 8 +++-- .../query/ChangeServiceAgentCodeQuery.java | 5 +-- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java index d1451b43..90f607ce 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java @@ -785,25 +785,35 @@ public class DeviceController extends ControllerBase { @Transactional @PostMapping("changeServiceAgentCode") public ApiResult changeServiceAgentCode(@RequestBody ChangeServiceAgentCodeQuery query) { + List devices = deviceService.lambdaQuery() + .in(Device::getId, query.getDeviceIds()) + .list(); + if (CollectionUtil.isEmpty(devices)){ + return ApiResult.error("没有需要修改的设备"); + } TBaseCustomer customer = customerService.lambdaQuery() .eq(TBaseCustomer::getDelIs, 0) .eq(TBaseCustomer::getEnableState, 1) .eq(TBaseCustomer::getAgencyCompanyCode, query.getServiceAgentCode()) .one(); VUtils.trueThrowBusinessError(Objects.isNull(customer)).throwMessage("代理商公司不存在"); - deviceService.lambdaUpdate() - .set(Device::getServiceAgentCode, query.getServiceAgentCode()) - .set(Device::getServiceAgentName, customer.getAgencyCompanyName()) - .eq(Device::getId, query.getDeviceId()) - .update(); - deviceAgentRecordService.save(new DeviceAgentRecord() - .setDeviceId(query.getDeviceId()) - .setAgentCode(query.getServiceAgentCode()) - .setAgentName(customer.getAgencyCompanyName()) - .setCreateById(AdminUserUtil.getUserId()) - .setCreateBy(AdminUserUtil.getUserName()) - .setCreateTime(LocalDateTime.now()) - ); + devices.forEach(device -> { + if (!StrUtil.equals(device.getServiceAgentCode(), query.getServiceAgentCode())){ + deviceService.lambdaUpdate() + .set(Device::getServiceAgentCode, query.getServiceAgentCode()) + .set(Device::getServiceAgentName, customer.getAgencyCompanyName()) + .eq(Device::getId, device.getId()) + .update(); + deviceAgentRecordService.save(new DeviceAgentRecord() + .setDeviceId(device.getId()) + .setAgentCode(query.getServiceAgentCode()) + .setAgentName(customer.getAgencyCompanyName()) + .setCreateById(AdminUserUtil.getUserId()) + .setCreateBy(AdminUserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()) + ); + } + }); return ApiResult.success(); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/pojo/query/ChangeServiceAgentCodeQuery.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/pojo/query/ChangeServiceAgentCodeQuery.java index 5f4e909a..9aec201d 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/pojo/query/ChangeServiceAgentCodeQuery.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/pojo/query/ChangeServiceAgentCodeQuery.java @@ -3,16 +3,18 @@ package com.nflg.mobilebroken.admin.pojo.query; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; @Data public class ChangeServiceAgentCodeQuery { /** - * 设备ID + * 设备ID列表 */ - @NotNull - private Integer deviceId; + @NotEmpty + private List deviceIds; /** * 服务代理商编码 diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/query/ChangeServiceAgentCodeQuery.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/query/ChangeServiceAgentCodeQuery.java index 8ce58c6d..d12a44c1 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/query/ChangeServiceAgentCodeQuery.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/pojo/query/ChangeServiceAgentCodeQuery.java @@ -3,6 +3,7 @@ package com.nflg.mobilebroken.gongfu.pojo.query; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @@ -10,9 +11,9 @@ import java.util.List; public class ChangeServiceAgentCodeQuery { /** - * 设备ID + * 设备ID列表 */ - @NotNull + @NotEmpty private List deviceIds; /**