diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java index f5d97ddd..8000c5cb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java @@ -32,7 +32,6 @@ public class TbsBudgetBo implements Serializable { private String budgetCode; /** 科目id */ - @NotNull(message = "科目id不能为空") private Long subjectId; /** 成本中心id */ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 2a7aa94c..65367abf 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -194,7 +194,7 @@ public class TbsBudgetApplicationService { if(budgetIds.size()>0){ LambdaQueryWrapper budgetLqw = new LambdaQueryWrapper<>(); budgetLqw.in(TbsBudget::getId,budgetIds); - budgetLqw.in(TbsBudget::getSubjectId,subjectIds); + budgetLqw.and(qw->qw.eq(TbsBudget::getSubjectId,0).or(qw2->qw2.in(TbsBudget::getSubjectId,subjectIds))); budgetLqw.in(TbsBudget::getCenterId,centerIds); budgetLqw.eq(TbsBudget::getBudgetState,1); budgetList = tbsBudgetMapper.selectList(budgetLqw); @@ -443,31 +443,19 @@ public class TbsBudgetApplicationService { if(!activityCostItem.getActivityId().equals(activity.getId())){ continue; } - //拦截非当前科目 - Long subjectId = null; - for (TbsActivitySubject activitySubject : activitySubjects) { - if(activityCostItem.getSubjectId().equals(activitySubject.getSubjectId())){ - subjectId = activitySubject.getSubjectId(); - break; - } - } + //当前科目 + Long subjectId = activityCostItem.getSubjectId(); //拦截非当前成本中心 - String centerId = null; - String centerType = null; - for (TbsActivityCenter activityCenter : activityCenterList) { - if(activityCostItem.getCenterId().equals(activityCenter.getCenterId()) - && activityCostItem.getCenterType().equals(activityCenter.getCenterType())){ - centerId = activityCenter.getCenterId(); - centerType = activityCenter.getCenterType(); - break; - } - } + String centerId = activityCostItem.getCenterId(); + String centerType = activityCostItem.getCenterType(); for (TbsBudget budget : currentItemBudgetList) { - if(!budget.getSubjectId().equals(subjectId) || - !budget.getCenterId().equals(centerId) || + if(!budget.getCenterId().equals(centerId) || !budget.getCenterType().equals(centerType) ){ continue; } + if(!subjectId.equals(budget.getSubjectId())&&budget.getSubjectId().equals(0L)){ + continue; + } List scheduleItemBudgets = activity.getScheduleItemBudgetList(); for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index a803c49f..af045706 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -67,6 +67,9 @@ public class TbsBudgetServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public void modify(TbsBudgetBo budgetBo) { + if(budgetBo.getSubjectId()==null){ + budgetBo.setSubjectId(0L); + } TbsBudget budget; if(budgetBo.getId()!=null){ budget = this.getById(budgetBo.getId()); @@ -79,7 +82,10 @@ public class TbsBudgetServiceImpl extends ServiceImpl }else { budget = CopierUtil.copy(budgetBo,new TbsBudget()); } - BmsSubject subject = subjectService.getById(budgetBo.getSubjectId()); + BmsSubject subject = null; + if(budget.getSubjectId()!=0L){ + subject = subjectService.getById(budgetBo.getSubjectId()); + } TbsCenterDto centerDto = tbsCenterDtoService.getCenterDto(budgetBo.getCenterType(),budgetBo.getCenterId()); TbsSchedule schedule = scheduleService.getById(budgetBo.getScheduleId()); initEmptyBudget(budget,subject,centerDto,schedule); @@ -475,15 +481,18 @@ public class TbsBudgetServiceImpl extends ServiceImpl * @param schedule */ private void initEmptyBudget(TbsBudget budget,BmsSubject subject,TbsCenterDto centerDto,TbsSchedule schedule){ - if(subject==null){ - Assert.throwEx("科目不存在"); - } if(schedule==null){ Assert.throwEx("考核期不存在"); } - budget.setSubjectId(subject.getId()); - budget.setSubjectCode(subject.getSubjectCode()); - budget.setSubjectName(subject.getSubjectName()); + if(subject!=null){ + budget.setSubjectId(subject.getId()); + budget.setSubjectCode(subject.getSubjectCode()); + budget.setSubjectName(subject.getSubjectName()); + }else { + budget.setSubjectId(0L); + budget.setSubjectCode(""); + budget.setSubjectName(""); + } budget.setCenterId(centerDto.getId()); budget.setCenterType(centerDto.getCenterType()); budget.setCenterCode(centerDto.getCenterCode());