diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java index 64942607..cae0bd7f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import com.github.yulichang.toolkit.JoinWrappers; @@ -79,6 +80,16 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI public Boolean insertByBo(BaseMeasurementUnitInfoBo bo) { BaseMeasurementUnitInfo add = MapstructUtils.convert(bo, BaseMeasurementUnitInfo.class); validEntityBeforeSave(add); + // 获取父节点信息 + BaseMeasurementUnitInfoVo query = baseMapper.selectVoById(bo.getParentId()); + + if (query != null) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setUnitId(add.getUnitId()); @@ -104,6 +115,15 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI */ private void validEntityBeforeSave(BaseMeasurementUnitInfo entity){ //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getUnitCode())) { + BaseMeasurementUnitInfoBo query = new BaseMeasurementUnitInfoBo(); + query.setUnitCode(entity.getUnitCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseMeasurementUnitInfo baseMeasurementUnitInfo = baseMapper.selectOne(lqw); + if (baseMeasurementUnitInfo != null && !baseMeasurementUnitInfo.getUnitId().equals(entity.getUnitId())) { + throw new ServiceException("编码已存在"); + } + } } /** @@ -117,6 +137,14 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + //TODO 校验是否需要删除 + BaseMeasurementUnitInfo query = new BaseMeasurementUnitInfo(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } } return baseMapper.deleteByIds(ids) > 0; }