|
|
@@ -1262,13 +1262,42 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
}
|
|
|
}
|
|
|
ipc.setCurrentPeriodPay(StringUtils.handleNull(currentMoney.get(cm.getKey())));
|
|
|
- ipc.setCurrentPeriodChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList0,ch)
|
|
|
- ,tec.getPayRadicScale()));
|
|
|
- ipc.setPreviousPeriodEndChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList1,ch)
|
|
|
- ,tec.getPayRadicScale()));
|
|
|
- ipc.setCurrentPeriodEndChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList2,ch)
|
|
|
- ,tec.getPayRadicScale()));
|
|
|
-
|
|
|
+ //2-8公式开发前逻辑
|
|
|
+ //本期变更金额
|
|
|
+// ipc.setCurrentPeriodChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList0,ch)
|
|
|
+// ,tec.getPayRadicScale()));
|
|
|
+ //上期末变更金额
|
|
|
+// ipc.setPreviousPeriodEndChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList1,ch)
|
|
|
+// ,tec.getPayRadicScale()));
|
|
|
+ //本期末变更金额
|
|
|
+// ipc.setCurrentPeriodEndChangeMoney(StringUtils.handleNullZero(sumChangeMoneyForChapter(changeTokenList2,ch)
|
|
|
+// ,tec.getPayRadicScale()));
|
|
|
+ //2-8公式开发后逻辑
|
|
|
+ List<ChangeInventoryForm> changeInventoryForms = InventoryUCUtil.selectInventoryFormByInventoryNum(tec.getPeriodId(), tec.getContractId(), k);
|
|
|
+ //本期变更金额
|
|
|
+ String totalChangeMoney = changeInventoryForms.stream()
|
|
|
+ .map(form -> new BigDecimal(form.getChangeMoney()))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP)
|
|
|
+ .toPlainString();
|
|
|
+ ipc.setCurrentPeriodChangeMoney(totalChangeMoney);
|
|
|
+ if(finalPrePeriodId!=null){
|
|
|
+ List<ChangeInventoryForm> preChangeInventoryForms = InventoryUCUtil.selectInventoryFormByInventoryNum(finalPrePeriodId, tec.getContractId(), k);
|
|
|
+ String afterTotalChangeMoney = preChangeInventoryForms.stream()
|
|
|
+ .map(form -> new BigDecimal(form.getAfterChangeMoney()))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP)
|
|
|
+ .toPlainString();
|
|
|
+ //上期末变更金额
|
|
|
+ ipc.setPreviousPeriodEndChangeMoney(afterTotalChangeMoney);
|
|
|
+ BigDecimal currentChange = BaseUtils.str2BigDecimal(totalChangeMoney);
|
|
|
+ BigDecimal previousChange = BaseUtils.str2BigDecimal(afterTotalChangeMoney);
|
|
|
+ //本期末变更金额
|
|
|
+ ipc.setCurrentPeriodEndChangeMoney(currentChange.add(previousChange).toPlainString());
|
|
|
+ }else {
|
|
|
+ //本期末变更金额
|
|
|
+ ipc.setCurrentPeriodEndChangeMoney(totalChangeMoney);
|
|
|
+ }
|
|
|
/*计算其它属性值*/
|
|
|
ipc.calculate();
|
|
|
//dataList.add(ipc);
|
|
|
@@ -2202,8 +2231,16 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
cs.setPayPercent(ratioFc.apply(cs.getCurrentPeriodEndPay(),meterAmountChange));
|
|
|
/*本期末占合合同金额 */
|
|
|
cs.setCurrentEndPayPercent(ratioFc.apply(cs.getCurrentPeriodEndPay(),meterAmount));
|
|
|
- /*变更金额*/
|
|
|
- cs.setChangeMoneyAll(subtractFc.apply(cs.getChangeMoney(),cs.getContractMoney()));
|
|
|
+ /*变更金额 2-8公式开发之前逻辑*/
|
|
|
+ //cs.setChangeMoneyAll(subtractFc.apply(cs.getChangeMoney(),cs.getContractMoney()));
|
|
|
+ List<ChangeInventoryForm> changeInventoryForms = InventoryUCUtil.selectInventoryFormByInventoryNum(tec.getPeriodId(), tec.getContractId(), k);
|
|
|
+ BigDecimal changeMoneyAll = changeInventoryForms.stream()
|
|
|
+ .map(ChangeInventoryForm::getChangeMoney)
|
|
|
+ .map(BaseUtils::str2BigDecimal)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP); // 四舍五入保留整数
|
|
|
+ String changeMoneyAllWan = changeMoneyAll.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_UP).toPlainString();
|
|
|
+ cs.setChangeMoneyAll(changeMoneyAllWan);
|
|
|
dataList.add(cs);
|
|
|
});
|
|
|
/*每月合计进度*/
|