|
|
@ -66,6 +66,8 @@ public class TzcPolicyApplication { |
|
|
|
private SeeYonService seeYonService; |
|
|
|
private BmsSupplierService bmsSupplierService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 提交申请 |
|
|
|
* @param policyId |
|
|
@ -171,6 +173,89 @@ public class TzcPolicyApplication { |
|
|
|
seeYonService.createCallbackStatus(callbackBo); |
|
|
|
} |
|
|
|
|
|
|
|
public TbsBudgetTableVo buildResultTable(Long policyId){ |
|
|
|
LambdaQueryWrapper<TzcPolicyItem> policyItemLqw = new LambdaQueryWrapper<>(); |
|
|
|
policyItemLqw.eq(TzcPolicyItem::getPolicyId,policyId); |
|
|
|
List<TzcPolicyItem> policyItemList = tzcPolicyItemService.list(policyItemLqw); |
|
|
|
|
|
|
|
//费用占用
|
|
|
|
LambdaQueryWrapper<TbsBudgetCostItemPolicy> costItemLqw = new LambdaQueryWrapper<>(); |
|
|
|
costItemLqw.eq(TbsBudgetCostItemPolicy::getPolicyId,policyId); |
|
|
|
List<TbsBudgetCostItemPolicy> budgetCostItems = tbsBudgetCostItemPolicyService.list(costItemLqw); |
|
|
|
|
|
|
|
//预算
|
|
|
|
List<Long> budgetIds = budgetCostItems.stream().map(TbsBudgetCostItemPolicy::getBudgetId) |
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
List<TbsBudget> budgetList; |
|
|
|
if(CollectionUtil.isNotEmpty(budgetIds)){ |
|
|
|
budgetList = tbsBudgetMapper.selectBatchIds(budgetIds); |
|
|
|
}else { |
|
|
|
budgetList = new ArrayList<>(); |
|
|
|
} |
|
|
|
TbsBudgetTableVo tableVo = new TbsBudgetTableVo(); |
|
|
|
List<TbsBudgetTableVo.TopTheadHeader> topTheadHeaders = new ArrayList<>(); |
|
|
|
Map<Long,List<TbsBudgetCostItemPolicy>> tmpMap = budgetCostItems.stream().collect(Collectors.groupingBy(TbsBudgetCostItemPolicy::getScheduleItemBudgetId)); |
|
|
|
for (Long scheduleItemBudgetId : tmpMap.keySet()) { |
|
|
|
if(scheduleItemBudgetId.equals(0L)){continue;} |
|
|
|
TbsBudgetCostItemPolicy budgetCostItem = tmpMap.get(scheduleItemBudgetId).get(0); |
|
|
|
String budgetCode = null; |
|
|
|
for (TbsBudget budget : budgetList) { |
|
|
|
if(budget.getId().equals(budgetCostItem.getBudgetId())){ |
|
|
|
budgetCode = budget.getBudgetCode(); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
TbsBudgetTableVo.TopTheadHeader theadHeader = new TbsBudgetTableVo.TopTheadHeader(); |
|
|
|
theadHeader.setId(scheduleItemBudgetId+""); |
|
|
|
theadHeader.setLabel(budgetCode+"("+budgetCostItem.getScheduleItemName()+")"); |
|
|
|
//设置为提交时的金额数据
|
|
|
|
theadHeader.setBudgetAmount(budgetCostItem.getScheduleItemAmount() |
|
|
|
.subtract(budgetCostItem.getScheduleItemAmountUsed())); |
|
|
|
theadHeader.setTotalAmount(budgetCostItem.getScheduleItemAmount()); |
|
|
|
BigDecimal applyAmount = budgetCostItem.getScheduleItemAmountApply()==null?BigDecimal.ZERO:budgetCostItem.getScheduleItemAmountApply(); |
|
|
|
theadHeader.setCostApplyAmount(applyAmount); |
|
|
|
theadHeader.setCostAppliedAmount(budgetCostItem.getScheduleItemAmountUsed().subtract(applyAmount)); |
|
|
|
topTheadHeaders.add(theadHeader); |
|
|
|
} |
|
|
|
//自定义超额预算
|
|
|
|
TbsBudgetTableVo.TopTheadHeader overTopHeader = new TbsBudgetTableVo.TopTheadHeader(); |
|
|
|
overTopHeader.setId("0"); |
|
|
|
overTopHeader.setLabel("其它预算"); |
|
|
|
overTopHeader.setBudgetAmount(BigDecimal.ZERO); |
|
|
|
topTheadHeaders.add(overTopHeader); |
|
|
|
|
|
|
|
List<TbsBudgetTableVo.LeftTheadHeader> leftTheadHeaders = new ArrayList<>(); |
|
|
|
|
|
|
|
for (TzcPolicyItem policyItem : policyItemList) { |
|
|
|
TbsBudgetTableVo.LeftTheadHeader theadHeader = new TbsBudgetTableVo.LeftTheadHeader(); |
|
|
|
theadHeader.setActivityCode(policyItem.getPolicyItemCode()); |
|
|
|
theadHeader.setId(policyItem.getId()+""); |
|
|
|
theadHeader.setSubjectId(policyItem.getSubjectId()); |
|
|
|
theadHeader.setSubjectName(policyItem.getSubjectName()); |
|
|
|
theadHeader.setCenterId(policyItem.getCenterId()); |
|
|
|
theadHeader.setCenterName(policyItem.getCenterName()); |
|
|
|
theadHeader.setLabel(policyItem.getPolicyItemCode()); |
|
|
|
theadHeader.setLabelCombo(policyItem.getPolicyItemCode()+"-" |
|
|
|
+theadHeader.getSubjectName()+"-" |
|
|
|
+theadHeader.getCenterName()+"-" |
|
|
|
+theadHeader.getLabel()); |
|
|
|
leftTheadHeaders.add(theadHeader); |
|
|
|
} |
|
|
|
|
|
|
|
List<TbsBudgetTableVo.TableValue> tableValueList = new ArrayList<>(); |
|
|
|
for (TbsBudgetCostItemPolicy costItem : budgetCostItems) { |
|
|
|
TbsBudgetTableVo.TableValue tableValue = new TbsBudgetTableVo.TableValue(); |
|
|
|
tableValue.setTopId(costItem.getScheduleItemBudgetId()+""); |
|
|
|
tableValue.setLeftId(costItem.getPolicyItemId()+""); |
|
|
|
tableValue.setValue(costItem.getPolicyItemAmount()); |
|
|
|
tableValueList.add(tableValue); |
|
|
|
} |
|
|
|
tableVo.setTableValueList(tableValueList); |
|
|
|
tableVo.setTopTheadHeaderList(topTheadHeaders); |
|
|
|
tableVo.setLeftTheadHeaderList(leftTheadHeaders); |
|
|
|
return tableVo; |
|
|
|
} |
|
|
|
|
|
|
|
public TbsBudgetCostResult buildBudgetCostResult(Long policyId, |
|
|
|
Boolean throwEx, |
|
|
|
Boolean buildTableFlag){ |
|
|
|