feat(device): 修改设备服务代理商编码功能支持批量操作

- 将 ChangeServiceAgentCodeQuery 中的 deviceId 字段改为 deviceIds 列表
- 添加 List 类型和 NotEmpty 注解支持批量设备ID验证
- 更新 Controller 层逻辑以支持批量处理设备代理商编码变更
- 添加设备存在性检查避免无效操作
- 仅对代理商编码不同的设备执行更新操作
- 批量为每个符合条件的设备创建代理商变更记录
This commit is contained in:
曹鹏飞 2026-02-02 20:30:57 +08:00
parent 8ba7ca24b1
commit 3f063a29cd
3 changed files with 31 additions and 18 deletions

View File

@ -785,25 +785,35 @@ public class DeviceController extends ControllerBase {
@Transactional @Transactional
@PostMapping("changeServiceAgentCode") @PostMapping("changeServiceAgentCode")
public ApiResult<Void> changeServiceAgentCode(@RequestBody ChangeServiceAgentCodeQuery query) { public ApiResult<Void> changeServiceAgentCode(@RequestBody ChangeServiceAgentCodeQuery query) {
List<Device> devices = deviceService.lambdaQuery()
.in(Device::getId, query.getDeviceIds())
.list();
if (CollectionUtil.isEmpty(devices)){
return ApiResult.error("没有需要修改的设备");
}
TBaseCustomer customer = customerService.lambdaQuery() TBaseCustomer customer = customerService.lambdaQuery()
.eq(TBaseCustomer::getDelIs, 0) .eq(TBaseCustomer::getDelIs, 0)
.eq(TBaseCustomer::getEnableState, 1) .eq(TBaseCustomer::getEnableState, 1)
.eq(TBaseCustomer::getAgencyCompanyCode, query.getServiceAgentCode()) .eq(TBaseCustomer::getAgencyCompanyCode, query.getServiceAgentCode())
.one(); .one();
VUtils.trueThrowBusinessError(Objects.isNull(customer)).throwMessage("代理商公司不存在"); VUtils.trueThrowBusinessError(Objects.isNull(customer)).throwMessage("代理商公司不存在");
devices.forEach(device -> {
if (!StrUtil.equals(device.getServiceAgentCode(), query.getServiceAgentCode())){
deviceService.lambdaUpdate() deviceService.lambdaUpdate()
.set(Device::getServiceAgentCode, query.getServiceAgentCode()) .set(Device::getServiceAgentCode, query.getServiceAgentCode())
.set(Device::getServiceAgentName, customer.getAgencyCompanyName()) .set(Device::getServiceAgentName, customer.getAgencyCompanyName())
.eq(Device::getId, query.getDeviceId()) .eq(Device::getId, device.getId())
.update(); .update();
deviceAgentRecordService.save(new DeviceAgentRecord() deviceAgentRecordService.save(new DeviceAgentRecord()
.setDeviceId(query.getDeviceId()) .setDeviceId(device.getId())
.setAgentCode(query.getServiceAgentCode()) .setAgentCode(query.getServiceAgentCode())
.setAgentName(customer.getAgencyCompanyName()) .setAgentName(customer.getAgencyCompanyName())
.setCreateById(AdminUserUtil.getUserId()) .setCreateById(AdminUserUtil.getUserId())
.setCreateBy(AdminUserUtil.getUserName()) .setCreateBy(AdminUserUtil.getUserName())
.setCreateTime(LocalDateTime.now()) .setCreateTime(LocalDateTime.now())
); );
}
});
return ApiResult.success(); return ApiResult.success();
} }

View File

@ -3,16 +3,18 @@ package com.nflg.mobilebroken.admin.pojo.query;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
public class ChangeServiceAgentCodeQuery { public class ChangeServiceAgentCodeQuery {
/** /**
* 设备ID * 设备ID列表
*/ */
@NotNull @NotEmpty
private Integer deviceId; private List<Long> deviceIds;
/** /**
* 服务代理商编码 * 服务代理商编码

View File

@ -3,6 +3,7 @@ package com.nflg.mobilebroken.gongfu.pojo.query;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@ -10,9 +11,9 @@ import java.util.List;
public class ChangeServiceAgentCodeQuery { public class ChangeServiceAgentCodeQuery {
/** /**
* 设备ID * 设备ID列表
*/ */
@NotNull @NotEmpty
private List<Long> deviceIds; private List<Long> deviceIds;
/** /**