|
|
@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.Duration; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -202,6 +203,8 @@ public class TbsBudgetApplicationService { |
|
|
|
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); |
|
|
|
//科目限制>品类之间>时间区间
|
|
|
|
budgetLqw.orderByDesc(TbsBudget::getSubjectId); |
|
|
|
budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
|
}else { |
|
|
|
budgetList = new ArrayList<>(); |
|
|
@ -476,21 +479,23 @@ public class TbsBudgetApplicationService { |
|
|
|
//拦截非当前成本中心
|
|
|
|
String centerId = activityCostItem.getCenterId(); |
|
|
|
String centerType = activityCostItem.getCenterType(); |
|
|
|
for (TbsBudget budget : currentItemBudgetList) { |
|
|
|
if(!budget.getCenterId().equals(centerId) || |
|
|
|
!budget.getCenterType().equals(centerType) ){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = activity.getScheduleItemBudgetList(); |
|
|
|
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { |
|
|
|
/* 科目条件优先级最高 */ |
|
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = activity.getScheduleItemBudgetList(); |
|
|
|
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { |
|
|
|
for (TbsBudget budget : currentItemBudgetList) { |
|
|
|
if(!budget.getCenterId().equals(centerId) || |
|
|
|
!budget.getCenterType().equals(centerType) ){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ |
|
|
|
currentScheduleItemBudgets.add(scheduleItemBudget); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
//检测是否有是否足够预算
|
|
|
|
BigDecimal goodsAmount = activityCostItem.getCenterGoodsAmount(); |
|
|
@ -685,6 +690,14 @@ public class TbsBudgetApplicationService { |
|
|
|
scheduleItemList.add(allAllowScheduleItemTempMap.get(tmpId)); |
|
|
|
} |
|
|
|
budgetIds.addAll(budgetIdsSet); |
|
|
|
// Collections.sort(scheduleItemList, new Comparator<TbsScheduleItemBudget>() {
|
|
|
|
// @Override
|
|
|
|
// public int compare(TbsScheduleItemBudget o1, TbsScheduleItemBudget o2) {
|
|
|
|
// long d = Duration.between(o1.getStartDate(), o1.getEndDate()).toDays();
|
|
|
|
// long d2 = Duration.between(o2.getStartDate(), o2.getEndDate()).toDays();
|
|
|
|
// return (int) (d-d2);
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
return scheduleItemList; |
|
|
|
} |
|
|
|
|
|
|
|