|
@@ -698,13 +698,18 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
BigDecimal grossProfit = incomeAmount.subtract(expenditureAmount);
|
|
|
grossProfitInfo.setGross(grossProfit.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
- //毛利率(毛利/合同金额*100%)
|
|
|
+ //毛利率 = 毛利 / (合同人民币金额 + 采购金额 / 1.13 * 0.13)
|
|
|
grossProfitInfo.setGrossRate(BigDecimal.ZERO);
|
|
|
- if (BigDecimal.ZERO.compareTo(grossProfitInfo.getContractRmbAmount()) != 0) {
|
|
|
- BigDecimal grossRate = grossProfitInfo.getGross()
|
|
|
- .divide(grossProfitInfo.getContractRmbAmount(), 2, BigDecimal.ROUND_HALF_UP)
|
|
|
+ //(合同人民币金额 + 采购金额 / 1.13 * 0.13)
|
|
|
+ BigDecimal add = grossProfitInfo.getContractRmbAmount().add(
|
|
|
+ grossProfitInfo.getPurchaseAmount()
|
|
|
+ .divide(BigDecimal.valueOf(1.13), 4, BigDecimal.ROUND_HALF_UP)
|
|
|
+ .multiply(BigDecimal.valueOf(0.13))
|
|
|
+ );
|
|
|
+ if (BigDecimal.ZERO.compareTo(add) != 0) {
|
|
|
+ BigDecimal grossRate = grossProfitInfo.getGross().divide(add, 4, BigDecimal.ROUND_HALF_UP)
|
|
|
.multiply(BigDecimal.valueOf(100));
|
|
|
- grossProfitInfo.setGrossRate(grossRate);
|
|
|
+ grossProfitInfo.setGrossRate(grossRate.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
}
|
|
|
//对比上一版本利润
|
|
|
grossProfitInfo.setCompareLastGross(BigDecimal.ZERO);
|