Browse Source

费用预览,可用预算调整

contract
Yen 2 years ago
parent
commit
a60e6117f6
  1. 9
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java
  2. 12
      src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml

9
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -250,18 +250,23 @@ public class TbsBudgetApplicationService {
//统计所有占用预算金额 //统计所有占用预算金额
Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size());
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList()); List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList());
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).collect(Collectors.toList()); List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList());
List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId);
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
boolean isNotMatch = true;
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) {
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){
BigDecimal budgetItemAmount = logPreAmount.getAmount(); BigDecimal budgetItemAmount = logPreAmount.getAmount();
//因为结果为负数,需去相反数 //因为结果为负数,需去相反数
isNotMatch = false;
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate();
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount);
} }
} }
if(isNotMatch){
budgetItemAmountMap.put(itemBudget.getId(),BigDecimal.ZERO);
}
} }
// for (TbsScheduleItemBudget itemBudget : scheduleItemList) { // for (TbsScheduleItemBudget itemBudget : scheduleItemList) {

12
src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml

@ -48,7 +48,7 @@
resultMap="TbsScheduleItemBudgetAmountMap"> resultMap="TbsScheduleItemBudgetAmountMap">
SELECT SELECT
`tbs_budget_cost_item`.schedule_item_id, `tbs_budget_cost_item`.schedule_item_id,
sum(`tbs_budget_cost_item`.center_goods_amount) total_amount; sum(`tbs_budget_cost_item`.center_goods_amount) total_amount
FROM `tbs_budget_cost_item` FROM `tbs_budget_cost_item`
LEFT JOIN `tbs_cost_apply` LEFT JOIN `tbs_cost_apply`
ON `tbs_budget_cost_item`.cost_apply_id = `tbs_cost_apply`.id ON `tbs_budget_cost_item`.cost_apply_id = `tbs_cost_apply`.id
@ -61,11 +61,17 @@
group by `tbs_budget_cost_item`.schedule_item_id group by `tbs_budget_cost_item`.schedule_item_id
</select> </select>
<resultMap id="TbsBudgetLogPreAmountMap" type="TbsBudgetLogPreAmount">
<result property="scheduleItemId" column="schedule_item_id"/>
<result property="amount" column="total_amount"/>
<result property="budgetId" column="budget_id"/>
</resultMap>
<select id="listLogCostAmount" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogPreAmount"> <select id="listLogCostAmount" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogPreAmount">
SELECT SELECT
sum( amount ) `tbs_budget_log`.budget_id,
`tbs_budget_log`.schedule_item_id,
`tbs_budget_log`.amount
FROM FROM
`tbs_budget_log` `tbs_budget_log`
LEFT JOIN LEFT JOIN

Loading…
Cancel
Save