|
@ -16,10 +16,7 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; |
|
|
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; |
|
|
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; |
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
import java.util.ArrayList; |
|
|
import java.util.*; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.Comparator; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -219,13 +216,13 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte |
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
List<TbsBudget> budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
List<TbsBudget> budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
|
|
|
|
|
|
List<Long> budgetIds; |
|
|
Set<Long> budgetIds; |
|
|
|
|
|
|
|
|
if(CollectionUtil.isNotEmpty(param.getBrandIds())){ |
|
|
if(CollectionUtil.isNotEmpty(param.getBrandIds())){ |
|
|
//无品牌条件
|
|
|
//无品牌条件
|
|
|
budgetIds = budgetList.stream() |
|
|
budgetIds = budgetList.stream() |
|
|
.filter(a->a.getConditionFlag().equals(0)) |
|
|
.filter(a->a.getConditionFlag().equals(0)) |
|
|
.map(TbsBudget::getId).collect(Collectors.toList()); |
|
|
.map(TbsBudget::getId).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
//筛选符合品牌条件
|
|
|
//筛选符合品牌条件
|
|
|
List<Long> conBudgetIds = budgetList.stream() |
|
|
List<Long> conBudgetIds = budgetList.stream() |
|
@ -241,26 +238,26 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte |
|
|
budgetIds.addAll(conBudgetIds); |
|
|
budgetIds.addAll(conBudgetIds); |
|
|
}else { |
|
|
}else { |
|
|
//加载所有
|
|
|
//加载所有
|
|
|
budgetIds = budgetList.stream().map(TbsBudget::getId).collect(Collectors.toList()); |
|
|
budgetIds = budgetList.stream().map(TbsBudget::getId).collect(Collectors.toSet()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
budgetIds.add(0L); |
|
|
budgetIds.add(0L); |
|
|
|
|
|
|
|
|
// 预算金额
|
|
|
// 预算金额
|
|
|
List<TbsBudgetLogWithAmount> finalList = tbsBudgetLog2Mapper.getSumFinalAmtInList(budgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag()); |
|
|
List<TbsBudgetLogWithAmount> finalList = tbsBudgetLog2Mapper.getSumFinalAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.getFinalBudgetOptFlag()); |
|
|
|
|
|
|
|
|
// 被占用金额
|
|
|
// 被占用金额
|
|
|
List<TbsBudgetLogWithAmount> usedList = tbsBudgetLog2Mapper.getSumAmtNotInList(budgetIds, BudgetLogOptFlag.getFinalBudgetOptFlag()); |
|
|
List<TbsBudgetLogWithAmount> usedList = tbsBudgetLog2Mapper.getSumAmtNotInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.getFinalBudgetOptFlag()); |
|
|
|
|
|
|
|
|
// 费用使用金额
|
|
|
// 费用使用金额
|
|
|
List<TbsBudgetLogWithAmount> costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(budgetIds, BudgetLogOptFlag.finalCostOptFlag); |
|
|
List<TbsBudgetLogWithAmount> costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag); |
|
|
|
|
|
|
|
|
// 政策使用金额
|
|
|
// 政策使用金额
|
|
|
List<TbsBudgetLogWithAmount> policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(budgetIds, BudgetLogOptFlag.finalPolicyOptFlag); |
|
|
List<TbsBudgetLogWithAmount> policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag); |
|
|
|
|
|
|
|
|
List<TbsBudgetLogWithAmount> policyCheckingList = tbsBudgetLog2Mapper.getPolicyCheckingList(budgetIds, BudgetLogOptFlag.finalPolicyOptFlag); |
|
|
List<TbsBudgetLogWithAmount> policyCheckingList = tbsBudgetLog2Mapper.getPolicyCheckingList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag); |
|
|
|
|
|
|
|
|
List<TbsBudgetLogWithAmount> costCheckingList = tbsBudgetLog2Mapper.getCostCheckingList(budgetIds, BudgetLogOptFlag.finalCostOptFlag); |
|
|
List<TbsBudgetLogWithAmount> costCheckingList = tbsBudgetLog2Mapper.getCostCheckingList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag); |
|
|
|
|
|
|
|
|
List<TbsBudgetWithAmount> result = new ArrayList<>(); |
|
|
List<TbsBudgetWithAmount> result = new ArrayList<>(); |
|
|
|
|
|
|
|
@ -268,73 +265,86 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte |
|
|
if(budgetId.equals(0L)){ |
|
|
if(budgetId.equals(0L)){ |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
TbsBudgetWithAmount withAmount = new TbsBudgetWithAmount(); |
|
|
|
|
|
withAmount.setBudgetId(budgetId+""); |
|
|
//拓展周期项
|
|
|
|
|
|
List<TbsScheduleItemBudget> scheduleItemBudgetList = scheduleItemBudget2Mapper.selectList( |
|
|
for (TbsBudget budget : budgetList) { |
|
|
new LambdaQueryWrapper<TbsScheduleItemBudget>() |
|
|
if(budget.getId().equals(budgetId)){ |
|
|
.eq(TbsScheduleItemBudget::getBudgetId,budgetId) |
|
|
withAmount.setBudgetName(budget.getBudgetCode()); |
|
|
); |
|
|
withAmount.setCenterId(budget.getCenterId()); |
|
|
|
|
|
withAmount.setCenterName(budget.getCenterName()); |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) { |
|
|
withAmount.setCenterType(budget.getCenterType()); |
|
|
Long itemId = itemBudget.getId(); |
|
|
withAmount.setScheduleName(budget.getScheduleName()); |
|
|
TbsBudgetWithAmount withAmount = new TbsBudgetWithAmount(); |
|
|
|
|
|
withAmount.setBudgetId(budgetId+""); |
|
|
|
|
|
withAmount.setScheduleItemBudgetId(itemId+""); |
|
|
|
|
|
withAmount.setScheduleItemBudgetName(itemBudget.getItemName()); |
|
|
|
|
|
|
|
|
|
|
|
for (TbsBudget budget : budgetList) { |
|
|
|
|
|
if(budget.getId().equals(budgetId)){ |
|
|
|
|
|
withAmount.setBudgetName(budget.getBudgetCode()); |
|
|
|
|
|
withAmount.setCenterId(budget.getCenterId()); |
|
|
|
|
|
withAmount.setCenterName(budget.getCenterName()); |
|
|
|
|
|
withAmount.setCenterType(budget.getCenterType()); |
|
|
|
|
|
withAmount.setScheduleName(budget.getScheduleName()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (TbsBudgetLogWithAmount obj : finalList) { |
|
|
for (TbsBudgetLogWithAmount obj : finalList) { |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
withAmount.setFinalAmt(obj.getAmt()); |
|
|
withAmount.setFinalAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
for (TbsBudgetLogWithAmount obj : usedList) { |
|
|
for (TbsBudgetLogWithAmount obj : usedList) { |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
withAmount.setAllUsingAmt(obj.getAmt()); |
|
|
withAmount.setAllUsingAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (TbsBudgetLogWithAmount obj : costUsedList) { |
|
|
for (TbsBudgetLogWithAmount obj : costUsedList) { |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
withAmount.setCostUsingAmt(obj.getAmt()); |
|
|
withAmount.setCostUsingAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
for (TbsBudgetLogWithAmount obj : policyUsedList) { |
|
|
for (TbsBudgetLogWithAmount obj : policyUsedList) { |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
withAmount.setPolicyUsingAmt(obj.getAmt()); |
|
|
withAmount.setPolicyUsingAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
for (TbsBudgetLogWithAmount obj : costCheckingList) { |
|
|
for (TbsBudgetLogWithAmount obj : costCheckingList) { |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
withAmount.setCostCheckingAmt(obj.getAmt()); |
|
|
withAmount.setCostCheckingAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
for (TbsBudgetLogWithAmount obj : policyCheckingList) { |
|
|
for (TbsBudgetLogWithAmount obj : policyCheckingList) { |
|
|
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ |
|
|
if(budgetId.equals(obj.getId())){ |
|
|
withAmount.setPolicyCheckingAmt(obj.getAmt()); |
|
|
withAmount.setPolicyCheckingAmt(obj.getAmt()); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//因为log统计为负数,需要把数值取正
|
|
|
|
|
|
withAmount.setAllUsingAmt(withAmount.getAllUsingAmt().negate()); |
|
|
|
|
|
withAmount.setCostUsingAmt(withAmount.getCostUsingAmt().negate()); |
|
|
|
|
|
withAmount.setCostCheckingAmt(withAmount.getCostCheckingAmt().negate()); |
|
|
|
|
|
withAmount.setPolicyUsingAmt(withAmount.getPolicyUsingAmt().negate()); |
|
|
|
|
|
withAmount.setPolicyCheckingAmt(withAmount.getPolicyCheckingAmt().negate()); |
|
|
|
|
|
//计算剩余及审批合计
|
|
|
|
|
|
withAmount.setAllCheckingAmt(withAmount.getCostCheckingAmt().add(withAmount.getPolicyCheckingAmt())); |
|
|
|
|
|
withAmount.setSurplusAmt(withAmount.getFinalAmt().subtract(withAmount.getAllUsingAmt())); |
|
|
|
|
|
result.add(withAmount); |
|
|
} |
|
|
} |
|
|
//因为log统计为负数,需要把数值取正
|
|
|
|
|
|
withAmount.setAllUsingAmt(withAmount.getAllUsingAmt().negate()); |
|
|
|
|
|
withAmount.setCostUsingAmt(withAmount.getCostUsingAmt().negate()); |
|
|
|
|
|
withAmount.setCostCheckingAmt(withAmount.getCostCheckingAmt().negate()); |
|
|
|
|
|
withAmount.setPolicyUsingAmt(withAmount.getPolicyUsingAmt().negate()); |
|
|
|
|
|
withAmount.setPolicyCheckingAmt(withAmount.getPolicyCheckingAmt().negate()); |
|
|
|
|
|
//计算剩余及审批合计
|
|
|
|
|
|
withAmount.setAllCheckingAmt(withAmount.getCostCheckingAmt().add(withAmount.getPolicyCheckingAmt())); |
|
|
|
|
|
withAmount.setSurplusAmt(withAmount.getFinalAmt().subtract(withAmount.getAllUsingAmt())); |
|
|
|
|
|
result.add(withAmount); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
result.sort( |
|
|
} |
|
|
Comparator.comparing(TbsBudgetWithAmount::getCenterName) |
|
|
// result.sort(
|
|
|
.thenComparing(TbsBudgetWithAmount::getScheduleName) |
|
|
// Comparator.comparing(TbsBudgetWithAmount::getCenterName)
|
|
|
.thenComparing(TbsBudgetWithAmount::getBudgetName) |
|
|
// .thenComparing(TbsBudgetWithAmount::getScheduleName)
|
|
|
); |
|
|
// .thenComparing(TbsBudgetWithAmount::getBudgetName)
|
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
return result; |
|
|
return result; |
|
|
} |
|
|
} |
|
|