|
|
@@ -235,24 +235,33 @@ public class ExpenseServiceImpl implements ExpenseService {
|
|
|
|
|
|
|
|
|
//判断是否是月初一号入住的,那就按照一整月计算,不要按照天数算
|
|
|
- if (localDate.getDayOfMonth() == 1) {
|
|
|
- amount = amount.add(item.getActualAmount());
|
|
|
+ if(item.getIsDayCalculate() == 1){
|
|
|
orderItemDO.setPrice(item.getAmount());
|
|
|
orderItemDO.setActualPrice(item.getActualAmount());
|
|
|
- orderItemDO.setTotalAmount(item.getTotalAmount());
|
|
|
- orderItemDO.setRoundAmount(orderItemDO.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
- orderItemDO.setRoundTwoDecimalAmount(orderItemDO.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
- } else {
|
|
|
- BigDecimal actualAmount = item.getActualAmount();
|
|
|
- BigDecimal dayPrice = actualAmount.divide(BigDecimal.valueOf(monthDays), 8, RoundingMode.DOWN);
|
|
|
- BigDecimal actualPrice = dayPrice.multiply(BigDecimal.valueOf(daysUntilMonthEnd)).setScale(8, RoundingMode.DOWN);
|
|
|
- amount = amount.add(actualPrice.setScale(2, RoundingMode.HALF_UP));
|
|
|
-
|
|
|
- orderItemDO.setPrice(item.getAmount());
|
|
|
- orderItemDO.setActualPrice(item.getActualAmount());
|
|
|
- orderItemDO.setTotalAmount(actualPrice);
|
|
|
+ orderItemDO.setTotalAmount(item.getTotalAmount().multiply(new BigDecimal(daysUntilMonthEnd)));
|
|
|
orderItemDO.setRoundAmount(orderItemDO.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
orderItemDO.setRoundTwoDecimalAmount(orderItemDO.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ amount = amount.add(orderItemDO.getTotalAmount());
|
|
|
+ }else {
|
|
|
+ if (localDate.getDayOfMonth() == 1) {
|
|
|
+ amount = amount.add(item.getActualAmount());
|
|
|
+ orderItemDO.setPrice(item.getAmount());
|
|
|
+ orderItemDO.setActualPrice(item.getActualAmount());
|
|
|
+ orderItemDO.setTotalAmount(item.getTotalAmount());
|
|
|
+ orderItemDO.setRoundAmount(orderItemDO.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
+ orderItemDO.setRoundTwoDecimalAmount(orderItemDO.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ BigDecimal actualAmount = item.getActualAmount();
|
|
|
+ BigDecimal dayPrice = actualAmount.divide(BigDecimal.valueOf(monthDays), 8, RoundingMode.DOWN);
|
|
|
+ BigDecimal actualPrice = dayPrice.multiply(BigDecimal.valueOf(daysUntilMonthEnd)).setScale(8, RoundingMode.DOWN);
|
|
|
+ amount = amount.add(actualPrice.setScale(2, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+ orderItemDO.setPrice(item.getAmount());
|
|
|
+ orderItemDO.setActualPrice(item.getActualAmount());
|
|
|
+ orderItemDO.setTotalAmount(actualPrice);
|
|
|
+ orderItemDO.setRoundAmount(orderItemDO.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
|
|
|
+ orderItemDO.setRoundTwoDecimalAmount(orderItemDO.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
}
|
|
|
orderItemDO.setCreatedTime(new Date());
|
|
|
orderItemDO.setCreatedBy(SecurityFrameworkUtils.getLoginUserNickname());
|