|
|
@@ -273,7 +273,6 @@ public class OrderApiImpl implements OrderApi {
|
|
|
? BigDecimal.ZERO : expenseOrderItemDO.getTotalAmount();
|
|
|
|
|
|
BigDecimal billedStandardAmount = standardAmount;
|
|
|
- BigDecimal billedActualAmount = actualAmount;
|
|
|
|
|
|
if (billYm != null) {
|
|
|
int daysInBillMonth = billYm.lengthOfMonth();
|
|
|
@@ -297,15 +296,10 @@ public class OrderApiImpl implements OrderApi {
|
|
|
long actualDays = ChronoUnit.DAYS.between(overlapStart, overlapEnd) + 1;
|
|
|
if (daysInBillMonth > 0 && actualDays > 0 && actualDays != daysInBillMonth) {
|
|
|
BigDecimal dayStandard = standardAmount
|
|
|
- .divide(BigDecimal.valueOf(daysInBillMonth), 8, RoundingMode.DOWN);
|
|
|
- BigDecimal dayActual = actualAmount
|
|
|
- .divide(BigDecimal.valueOf(daysInBillMonth), 8, RoundingMode.DOWN);
|
|
|
+ .divide(BigDecimal.valueOf(daysInBillMonth), 8, RoundingMode.HALF_UP);
|
|
|
billedStandardAmount = dayStandard
|
|
|
.multiply(BigDecimal.valueOf(actualDays))
|
|
|
- .setScale(2, RoundingMode.DOWN);
|
|
|
- billedActualAmount = dayActual
|
|
|
- .multiply(BigDecimal.valueOf(actualDays))
|
|
|
- .setScale(2, RoundingMode.DOWN);
|
|
|
+ .setScale(2, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -313,16 +307,16 @@ public class OrderApiImpl implements OrderApi {
|
|
|
if ((type != null && 1 == type) || expenseItemDO.getItemName().contains("床位费")) {
|
|
|
dto.setBedItemName(expenseItemDO.getItemName());
|
|
|
dto.setBedAmount(dto.getBedAmount().add(billedStandardAmount));
|
|
|
- dto.setBedActualAmount(dto.getBedActualAmount().add(billedActualAmount));
|
|
|
+ dto.setBedActualAmount(dto.getBedActualAmount().add(actualAmount));
|
|
|
} else if ((type != null && 2 == type) || expenseItemDO.getItemName().contains("护理费")) {
|
|
|
dto.setNurseAmount(dto.getNurseAmount().add(billedStandardAmount));
|
|
|
- dto.setNurseActualAmount(dto.getNurseActualAmount().add(billedActualAmount));
|
|
|
+ dto.setNurseActualAmount(dto.getNurseActualAmount().add(actualAmount));
|
|
|
} else if ((type != null && 3 == type) || expenseItemDO.getItemName().contains("餐饮费")) {
|
|
|
dto.setMealAmount(dto.getMealAmount().add(billedStandardAmount));
|
|
|
- dto.setMealActualAmount(dto.getMealActualAmount().add(billedActualAmount));
|
|
|
+ dto.setMealActualAmount(dto.getMealActualAmount().add(actualAmount));
|
|
|
} else if ((type != null && 7 == type) || expenseItemDO.getItemName().contains("服务费")) {
|
|
|
dto.setServiceAmount(dto.getServiceAmount().add(billedStandardAmount));
|
|
|
- dto.setServiceActualAmount(dto.getServiceActualAmount().add(billedActualAmount));
|
|
|
+ dto.setServiceActualAmount(dto.getServiceActualAmount().add(actualAmount));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -464,10 +458,10 @@ public class OrderApiImpl implements OrderApi {
|
|
|
dto.setTotalAmount(standardTotal);
|
|
|
|
|
|
BigDecimal actualTotal = dto.getBedActualAmount()
|
|
|
- .add(dto.getMealActualAmount())
|
|
|
- .add(dto.getServiceActualAmount())
|
|
|
- .add(dto.getNurseActualAmount())
|
|
|
- .add(dto.getExtraServiceAmount() == null ? BigDecimal.ZERO : dto.getExtraServiceAmount());
|
|
|
+ .add(dto.getMealActualAmount().setScale(2, RoundingMode.HALF_UP))
|
|
|
+ .add(dto.getServiceActualAmount().setScale(2, RoundingMode.HALF_UP))
|
|
|
+ .add(dto.getNurseActualAmount().setScale(2, RoundingMode.HALF_UP))
|
|
|
+ .add(dto.getExtraServiceAmount() == null ? BigDecimal.ZERO : dto.getExtraServiceAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
dto.setTotalActualAmount(actualTotal);
|
|
|
|
|
|
String actualProportion = "0%";
|