fix:修复设备管理及采集管理新增设备编码重复问题

plp
HuangHuiKang 4 weeks ago
parent 7342debc26
commit c0b49fea37

@ -35,12 +35,16 @@ public interface ErrorCodeConstants {
//======================================数据采集相关=================================================
ErrorCode DEVICE_MODEL_NOT_EXISTS = new ErrorCode(1_003_000_000, "采集设备模型不存在");
ErrorCode DEVICE_MODEL_CODE_EXISTS = new ErrorCode(1_003_000_000, "采集设备模型编码已存在");
ErrorCode DEVICE_ID_MODEL_NOT_EXISTS = new ErrorCode(1_003_000_000, "该设备模型ID不能为空");
ErrorCode POINT_ID_MODEL_NOT_EXISTS = new ErrorCode(1_003_000_000, "该点位参数ID不能为空");
ErrorCode DEVICE_MODEL_ATTRIBUTE_NOT_EXISTS = new ErrorCode(1_003_000_000, "采集设备模型点位不存在");
ErrorCode DEVICE_ATTRIBUTE_NOT_EXISTS = new ErrorCode(1_003_000_000, "设备属性不存在");
ErrorCode DEVICE_ATTRIBUTE_TYPE_NOT_EXISTS = new ErrorCode(1_003_000_000, "采集点分类不存在");
ErrorCode DEVICE_CODE_EXISTS = new ErrorCode(1_003_000_000, "采集点编码已存在");
ErrorCode ENDPOINT_DOES_NOT_EXIS = new ErrorCode(1_003_000_000, "暂未设置设备端点");
ErrorCode DEVICE_DOES_NOT_EXIST= new ErrorCode(1_003_000_000, "该采集设备不存在");
ErrorCode DEVICE_ID_DOES_NOT_EXIST= new ErrorCode(1_003_000_000, "该设备ID不能为空");

@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.iot.service.deviceattributetype;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodelattribute.DeviceModelAttributeDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@ -32,6 +35,14 @@ public class DeviceAttributeTypeServiceImpl implements DeviceAttributeTypeServic
@Override
public Long createDeviceAttributeType(DeviceAttributeTypeSaveReqVO createReqVO) {
// 重复判断
Long count = deviceAttributeTypeMapper.selectCount(new LambdaQueryWrapper<DeviceAttributeTypeDO>()
.eq(DeviceAttributeTypeDO::getCode, createReqVO.getCode())
);
if (count > 0) {
throw exception(DEVICE_CODE_EXISTS);
}
// 插入
DeviceAttributeTypeDO deviceAttributeType = BeanUtils.toBean(createReqVO, DeviceAttributeTypeDO.class);
deviceAttributeTypeMapper.insert(deviceAttributeType);
@ -41,6 +52,16 @@ public class DeviceAttributeTypeServiceImpl implements DeviceAttributeTypeServic
@Override
public void updateDeviceAttributeType(DeviceAttributeTypeSaveReqVO updateReqVO) {
// 重复判断
Long count = deviceAttributeTypeMapper.selectCount(new LambdaQueryWrapper<DeviceAttributeTypeDO>()
.eq(DeviceAttributeTypeDO::getCode, updateReqVO.getCode())
.ne(DeviceAttributeTypeDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(DEVICE_CODE_EXISTS);
}
// 校验存在
validateDeviceAttributeTypeExists(updateReqVO.getId());
// 更新

@ -45,6 +45,15 @@ public class DeviceModelServiceImpl implements DeviceModelService {
@Override
public Long createDeviceModel(DeviceModelSaveReqVO createReqVO) {
//编码重复判断
Long count = deviceModelMapper.selectCount(new LambdaQueryWrapper<DeviceModelDO>()
.eq(DeviceModelDO::getCode, createReqVO.getCode())
);
if (count > 0) {
throw exception(DEVICE_MODEL_CODE_EXISTS);
}
// 插入
DeviceModelDO deviceModel = BeanUtils.toBean(createReqVO, DeviceModelDO.class);
deviceModelMapper.insert(deviceModel);
@ -54,6 +63,16 @@ public class DeviceModelServiceImpl implements DeviceModelService {
@Override
public void updateDeviceModel(DeviceModelSaveReqVO updateReqVO) {
//编码重复判断
Long count = deviceModelMapper.selectCount(new LambdaQueryWrapper<DeviceModelDO>()
.eq(DeviceModelDO::getCode, updateReqVO.getCode())
.ne(DeviceModelDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(DEVICE_MODEL_CODE_EXISTS);
}
// 校验存在
validateDeviceModelExists(updateReqVO.getId());
// 更新

@ -78,6 +78,7 @@ public interface ErrorCodeConstants {
ErrorCode DV_CHECK_NOT_EXISTS = new ErrorCode(5_0087, "维保计划不存在");
ErrorCode DV_SUBJECT_NOT_EXISTS = new ErrorCode(5_0087, "维保项目不存在");
ErrorCode DV_REPAIR_NOT_EXISTS = new ErrorCode(5_0087, "设备维修记录不存在");
ErrorCode DV_REPAIR_CODE_EXISTS = new ErrorCode(5_0087, "设备维修记录编码已存在");
ErrorCode ZJ_TYPE_NOT_EXISTS = new ErrorCode(5_009, "检验类型不存在");
ErrorCode ZJ_ITEM_NOT_EXISTS = new ErrorCode(5_0091, "检验项目不存在");
@ -104,4 +105,6 @@ public interface ErrorCodeConstants {
ErrorCode TICKET_RESULTS_ID_NOT_NULL = new ErrorCode(1002000014, "工单检验结果Id不存在");
ErrorCode CRITICAL_COMPONENT_NOT_EXISTS = new ErrorCode(1002000015, "设备关键件不存在");
ErrorCode REPAIR_TEMS_NOT_EXISTS = new ErrorCode(1002000016, "维修项目不存在");
ErrorCode REPAIR_TEMS_CODE_EXISTS = new ErrorCode(1002000016, "维修项目编码已存在");
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.service.deviceledger;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums.PlanTypeEnum;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO;
@ -7,6 +8,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.ticketresults.TicketResultsMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.context.annotation.Lazy;
@ -23,6 +25,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
@ -72,6 +75,18 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService {
public void updateDeviceLedger(DeviceLedgerSaveReqVO updateReqVO) {
// 校验存在
validateDeviceLedgerExists(updateReqVO.getId());
//编码重复判断
Long count = deviceLedgerMapper.selectCount(new LambdaQueryWrapper<DeviceLedgerDO>()
.eq(DeviceLedgerDO::getDeviceCode, updateReqVO.getDeviceCode())
.ne(DeviceLedgerDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(DEVICE_LEDGER_EXISTS);
}
// 更新
DeviceLedgerDO updateObj = BeanUtils.toBean(updateReqVO, DeviceLedgerDO.class);
deviceLedgerMapper.updateById(updateObj);

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.mes.service.devicetype;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.controller.admin.devicetype.vo.DeviceTypeTreeRespVO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -24,6 +25,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.devicetype.DeviceTypeMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
import static com.baomidou.mybatisplus.extension.toolkit.Db.list;
@ -78,6 +80,17 @@ public class DeviceTypeServiceImpl implements DeviceTypeService {
public void updateDeviceType(DeviceTypeSaveReqVO updateReqVO) {
// 1. 校验存在
validateDeviceTypeExists(updateReqVO.getId());
//编码重复判断
Long count = deviceTypeMapper.selectCount(new LambdaQueryWrapper<DeviceTypeDO>()
.eq(DeviceTypeDO::getCode, updateReqVO.getCode())
.ne(DeviceTypeDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(DEVICE_LEDGER_CODE_NOT_ONLY);
}
// 2. 验证父级设备类型是否存在且不能是自己的子节点
validateParentDeviceType(Long.valueOf(updateReqVO.getParentId()));

@ -2,12 +2,15 @@ package cn.iocoder.yudao.module.mes.service.dvrepair;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -16,7 +19,8 @@ import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_REPAIR_NOT_EXISTS;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
@ -35,6 +39,15 @@ public class DvRepairServiceImpl implements DvRepairService {
@Override
@Transactional(rollbackFor = Exception.class)
public Long createDvRepair(DvRepairSaveReqVO createReqVO) {
//编码重复判断
Long count = dvRepairMapper.selectCount(new LambdaQueryWrapper<DvRepairDO>()
.eq(DvRepairDO::getRepairCode, createReqVO.getRepairCode())
);
if (count > 0) {
throw exception(DV_REPAIR_CODE_EXISTS);
}
// 插入
DvRepairDO dvRepair = BeanUtils.toBean(createReqVO, DvRepairDO.class);
dvRepairMapper.insert(dvRepair);
@ -50,6 +63,18 @@ public class DvRepairServiceImpl implements DvRepairService {
public void updateDvRepair(DvRepairSaveReqVO updateReqVO) {
// 校验存在
validateDvRepairExists(updateReqVO.getId());
//编码重复判断
Long count = dvRepairMapper.selectCount(new LambdaQueryWrapper<DvRepairDO>()
.eq(DvRepairDO::getRepairCode, updateReqVO.getRepairCode())
.ne(DvRepairDO::getId, updateReqVO.getRepairCode())
);
if (count > 0) {
throw exception(DV_REPAIR_CODE_EXISTS);
}
// 更新
DvRepairDO updateObj = BeanUtils.toBean(updateReqVO, DvRepairDO.class);
dvRepairMapper.updateById(updateObj);

@ -2,11 +2,13 @@ package cn.iocoder.yudao.module.mes.service.dvsubject;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
import cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -16,6 +18,7 @@ import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
@ -52,6 +55,15 @@ public class DvSubjectServiceImpl implements DvSubjectService {
public void updateDvSubject(DvSubjectSaveReqVO updateReqVO) {
// 校验存在
validateDvSubjectExists(updateReqVO.getId());
//编码重复判断
Long count = dvSubjectMapper.selectCount(new LambdaQueryWrapper<DvSubjectDO>()
.eq(DvSubjectDO::getSubjectCode, updateReqVO.getSubjectCode())
.ne(DvSubjectDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(SUBJECT_EXISTS);
}
// 更新
DvSubjectDO updateObj = BeanUtils.toBean(updateReqVO, DvSubjectDO.class);
dvSubjectMapper.updateById(updateObj);

@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.mes.service.repairtems;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.LineDeviceRespVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
@ -18,6 +21,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.repairtems.RepairTemsMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
@ -34,6 +38,15 @@ public class RepairTemsServiceImpl implements RepairTemsService {
@Override
public Long createRepairTems(RepairTemsSaveReqVO createReqVO) {
//编码重复判断
Long count = repairTemsMapper.selectCount(new LambdaQueryWrapper<RepairTemsDO>()
.eq(RepairTemsDO::getSubjectCode, createReqVO.getSubjectCode())
);
if (count > 0) {
throw exception(REPAIR_TEMS_CODE_EXISTS);
}
// 插入
RepairTemsDO repairTems = BeanUtils.toBean(createReqVO, RepairTemsDO.class);
repairTemsMapper.insert(repairTems);
@ -45,6 +58,18 @@ public class RepairTemsServiceImpl implements RepairTemsService {
public void updateRepairTems(RepairTemsSaveReqVO updateReqVO) {
// 校验存在
validateRepairTemsExists(updateReqVO.getId());
//编码重复判断
Long count = repairTemsMapper.selectCount(new LambdaQueryWrapper<RepairTemsDO>()
.eq(RepairTemsDO::getSubjectCode, updateReqVO.getSubjectCode())
.ne(RepairTemsDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(REPAIR_TEMS_CODE_EXISTS);
}
// 更新
RepairTemsDO updateObj = BeanUtils.toBean(updateReqVO, RepairTemsDO.class);
repairTemsMapper.updateById(updateObj);

Loading…
Cancel
Save