|
|
@@ -1,14 +1,19 @@
|
|
|
package cn.iocoder.yudao.module.iscs.service.workstation;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.workstation.WorkstationMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.userworkstation.UserWorkstationService;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import jakarta.annotation.Resource;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
@@ -28,9 +33,24 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
|
|
|
|
|
|
@Resource
|
|
|
private WorkstationMapper workstationMapper;
|
|
|
+ @Resource
|
|
|
+ private UserWorkstationService userWorkstationService;
|
|
|
|
|
|
@Override
|
|
|
public Long createWorkstation(WorkstationSaveReqVO createReqVO) {
|
|
|
+ // 断言校验
|
|
|
+ Assert.isTrue(StringUtils.isNotBlank(createReqVO.getWorkstationName()), "岗位名称不可为空!");
|
|
|
+ List<WorkstationDO> list = list(Wrappers.<WorkstationDO>lambdaQuery()
|
|
|
+ .eq(WorkstationDO::getWorkstationName, createReqVO.getWorkstationName()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "该岗位名称已被使用!");
|
|
|
+ WorkstationDO one = getById(createReqVO.getParentId());
|
|
|
+ String ancestors;
|
|
|
+ if (one != null) {
|
|
|
+ ancestors = one.getAncestors() + "," + createReqVO.getParentId();
|
|
|
+ } else {
|
|
|
+ ancestors = "0";
|
|
|
+ }
|
|
|
+ createReqVO.setAncestors(ancestors);
|
|
|
// 插入
|
|
|
WorkstationDO workstation = BeanUtils.toBean(createReqVO, WorkstationDO.class);
|
|
|
workstationMapper.insert(workstation);
|
|
|
@@ -41,6 +61,13 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
|
|
|
|
|
|
@Override
|
|
|
public void updateWorkstation(WorkstationSaveReqVO updateReqVO) {
|
|
|
+ // 断言校验
|
|
|
+ Assert.notNull(updateReqVO.getId(), "岗位ID不可为空!");
|
|
|
+ Assert.isTrue(StringUtils.isNotBlank(updateReqVO.getWorkstationName()), "岗位名称不可为空!");
|
|
|
+ List<WorkstationDO> list = list(Wrappers.<WorkstationDO>lambdaQuery()
|
|
|
+ .eq(WorkstationDO::getWorkstationName, updateReqVO.getWorkstationName())
|
|
|
+ .ne(WorkstationDO::getId, updateReqVO.getId()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "该岗位名称已被使用!");
|
|
|
// 校验存在
|
|
|
validateWorkstationExists(updateReqVO.getId());
|
|
|
// 更新
|
|
|
@@ -57,12 +84,18 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void deleteWorkstationListByIds(List<Long> ids) {
|
|
|
+ public void deleteWorkstationListByIds(List<Long> ids) {
|
|
|
+ Assert.isFalse(ids.isEmpty(), "请选择需要删除的数据!");
|
|
|
+ List<UserWorkstationDO> list = userWorkstationService.list(Wrappers.<UserWorkstationDO>lambdaQuery()
|
|
|
+ .in(UserWorkstationDO::getWorkstationId, ids));
|
|
|
+ Assert.isTrue(list.isEmpty(), "岗位正在被用户使用,无法删除!");
|
|
|
+ List<WorkstationDO> isWorkstationList = list(Wrappers.<WorkstationDO>lambdaQuery().in(WorkstationDO::getParentId, ids));
|
|
|
+ Assert.isTrue(isWorkstationList.isEmpty(), "岗位下有子岗位,无法删除!");
|
|
|
// 校验存在
|
|
|
validateWorkstationExists(ids);
|
|
|
// 删除
|
|
|
workstationMapper.deleteByIds(ids);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private void validateWorkstationExists(List<Long> ids) {
|
|
|
List<WorkstationDO> list = workstationMapper.selectByIds(ids);
|