Browse Source

政策预算2

contract
Yen 2 years ago
parent
commit
5027efde46
  1. 11
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  2. 85
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java

11
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -76,6 +76,17 @@ public class TzcPolicyController {
return R.ok(result.getTableData());
}
/**
* 预览
* @param id
* @return
*/
@GetMapping("preview2")
public R<TbsBudgetTableVo> preview2(Long id){
TbsBudgetTableVo result = policyApplication.buildResultTable(id);
return R.ok(result);
}
/**
* 提交审批
* @param policyId

85
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java

@ -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){

Loading…
Cancel
Save