diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java index 3cf71309..82681217 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java @@ -194,8 +194,9 @@ public class BmsCostCenterController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:costCenter:delete')") - public R deleteById(@PathVariable("id") String id){ - boolean result = bmsCostCenterService.removeById(id); + public R deleteById(@PathVariable("id") Long id){ + //TODO 未校验已用不能删,预算和费用申请 + boolean result = bmsCostCenterService.removeSelfAndChildById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java index 6d29b22c..d1d9d106 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; @@ -157,6 +158,9 @@ public class BmsMasterUserController { @PreAuthorize("hasRole('bms:masterUser:insert')") public R save(@RequestBody @Valid BmsMasterUserBo param){ String type = param.getType(); + if(!type.equals(MasterUserType.Center) || !type.equals(MasterUserType.Channel) || !type.equals(MasterUserType.Point)){ + Assert.throwEx("没有对应的"+param.getType()+"类型!"); + } List masterUsers = new ArrayList<>(); for (String userId : param.getUserIds()) { for (String targetId : param.getTargetIds()) { diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java index ba876013..e8ee6715 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java @@ -13,5 +13,6 @@ public interface BmsCostCenterService extends IService { BmsCostCenter getByCode(String code); BmsCostCenter getByName(String name); + boolean removeSelfAndChildById(Long id); } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java index 6c6a5904..e719ae17 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.bms.entity.BmsSubject; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -9,6 +10,8 @@ import com.qs.serve.modules.bms.entity.BmsCostCenter; import com.qs.serve.modules.bms.service.BmsCostCenterService; import com.qs.serve.modules.bms.mapper.BmsCostCenterMapper; +import java.util.List; + /** * 成本中心 服务实现类 * @author YenHex @@ -33,5 +36,23 @@ public class BmsCostCenterServiceImpl extends ServiceImpl listChild(Long pid) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsCostCenter::getPid,pid); + return this.list(lqw); + } + + @Override + public boolean removeSelfAndChildById(Long id) { + List list = listChild(id); + for(BmsCostCenter subject:list){ + boolean result = removeSelfAndChildById(subject.getId()); + if(!result){ + return false; + } + } + return this.removeById(id); + } + }