feat:添加物联设备点位批量修改接口

main
HuangHuiKang 19 hours ago
parent 5e95b4f61a
commit b40ff1c4ca

@ -345,6 +345,14 @@ public class DeviceController {
return success(true); return success(true);
} }
@PutMapping("/device-attribute/batch-update")
@Operation(summary = "根据 ID 批量更新设备点位类型、单位、倍率")
@PreAuthorize("@ss.hasPermission('iot:device:update')")
public CommonResult<Boolean> batchUpdateDeviceAttribute(@Valid @RequestBody DeviceAttributeBatchUpdateReqVO deviceAttributes) {
deviceService.updateDeviceAttributeBatch(deviceAttributes);
return success(true);
}
@DeleteMapping("/device-attribute/delete") @DeleteMapping("/device-attribute/delete")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@Operation(summary = "删除设备属性") @Operation(summary = "删除设备属性")

@ -49,15 +49,15 @@ public enum TaskTypeEnum {
baseId = 0L; baseId = 0L;
} }
switch (this) { if (this == DEVICE) {
case DEVICE: return 1000000L + baseId;
return 1000000L + baseId;
case WORK_ORDER:
return 2000000L + baseId;
case MOLD_WORK_ORDER:
return 3000000L + baseId;
default:
return 9000000L + baseId;
} }
if (this == WORK_ORDER) {
return 2000000L + baseId;
}
if (this == MOLD_WORK_ORDER) {
return 3000000L + baseId;
}
return 9000000L + baseId;
} }
} }

@ -0,0 +1,26 @@
package cn.iocoder.yudao.module.iot.controller.admin.device.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Schema(description = "管理后台 - 设备点位批量更新 Request VO")
@Data
public class DeviceAttributeBatchUpdateReqVO {
@Schema(description = "点位 ID 列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1024, 1025]")
@NotEmpty(message = "点位 ID 列表不能为空")
private List<Long> ids;
@Schema(description = "点位类型", example = "1")
private String attributeType;
@Schema(description = "单位", example = "kg")
private String dataUnit;
@Schema(description = "倍率", example = "1.0")
private Double ratio;
}

@ -99,6 +99,13 @@ public interface DeviceService {
*/ */
void updateDeviceAttribute(@Valid DeviceAttributeDO deviceAttribute); void updateDeviceAttribute(@Valid DeviceAttributeDO deviceAttribute);
/**
* ID
*
* @param deviceAttributes
*/
void updateDeviceAttributeBatch(@Valid DeviceAttributeBatchUpdateReqVO deviceAttributes);
/** /**
* *
* *

@ -779,6 +779,23 @@ public class DeviceServiceImpl implements DeviceService {
deviceAttributeMapper.updateById(deviceAttribute); deviceAttributeMapper.updateById(deviceAttribute);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDeviceAttributeBatch(DeviceAttributeBatchUpdateReqVO deviceAttributes) {
if (deviceAttributes == null || CollUtil.isEmpty(deviceAttributes.getIds())) {
return;
}
for (Long id : deviceAttributes.getIds()) {
DeviceContactModelDO updateObj = new DeviceContactModelDO();
updateObj.setId(id);
updateObj.setAttributeType(deviceAttributes.getAttributeType());
updateObj.setDataUnit(deviceAttributes.getDataUnit());
updateObj.setRatio(deviceAttributes.getRatio());
validateDeviceContactModelExists(updateObj.getId());
deviceContactModelMapper.updateById(updateObj);
}
}
@Override @Override
public void deleteDeviceAttribute(Long id) { public void deleteDeviceAttribute(Long id) {
// 校验存在 // 校验存在
@ -1657,6 +1674,12 @@ public class DeviceServiceImpl implements DeviceService {
} }
} }
private void validateDeviceContactModelExists(Long id) {
if (deviceContactModelMapper.selectById(id) == null) {
throw exception(DEVICE_MODEL_ATTRIBUTE_NOT_EXISTS);
}
}
private void deleteDeviceAttributeByDeviceId(Long deviceId) { private void deleteDeviceAttributeByDeviceId(Long deviceId) {
deviceAttributeMapper.deleteByDeviceId(deviceId); deviceAttributeMapper.deleteByDeviceId(deviceId);
} }

@ -23,8 +23,8 @@ import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.DEVICE_CONTACT_MODEL_NOT_EXISTS;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_ATTRIBUTE_NOT_EXISTS;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_ATTRIBUTE_POTIN_CODE_EXISTS; import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_ATTRIBUTE_POTIN_CODE_EXISTS;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_POINT_CODE_EXISTS; import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_POINT_CODE_EXISTS;
@ -130,7 +130,7 @@ public class DeviceContactModelServiceImpl implements DeviceContactModelService
private void validateDeviceContactModelExists(Long id) { private void validateDeviceContactModelExists(Long id) {
if (deviceContactModelMapper.selectById(id) == null) { if (deviceContactModelMapper.selectById(id) == null) {
throw exception(DEVICE_CONTACT_MODEL_NOT_EXISTS); throw exception(DEVICE_MODEL_ATTRIBUTE_NOT_EXISTS);
} }
} }
@ -156,4 +156,4 @@ public class DeviceContactModelServiceImpl implements DeviceContactModelService
return deviceContactModelMapper.selectList(Wrappers.<DeviceContactModelDO>lambdaQuery().eq(DeviceContactModelDO::getDeviceId,id)); return deviceContactModelMapper.selectList(Wrappers.<DeviceContactModelDO>lambdaQuery().eq(DeviceContactModelDO::getDeviceId,id));
} }
} }

Loading…
Cancel
Save