|
@@ -24,6 +24,8 @@ import java.util.Map;
|
|
|
import java.util.concurrent.ExecutionException;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.dayou.common.Constants.HUNDRED;
|
|
|
+
|
|
|
/**
|
|
|
* 类说明:土地规划部 非 市场人员提成计算处理器
|
|
|
*
|
|
@@ -53,11 +55,11 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
|
|
|
//合同金额
|
|
|
BigDecimal predictAmount = brokerageDetailBO.getAmount()
|
|
|
//参与项目提成总比例
|
|
|
- .multiply(globalConfigCache.get(GlobalConfigEnum.Finance.PARTICIPANT_BROKERAGE_PERCENTAGE.getCode()))
|
|
|
+ .multiply(globalConfigCache.get(GlobalConfigEnum.Finance.PARTICIPANT_BROKERAGE_PERCENTAGE.getCode())).divide(HUNDRED)
|
|
|
//阶段权重
|
|
|
- .multiply(brokerageDetailBO.getStageWeight())
|
|
|
+ .multiply(brokerageDetailBO.getStageWeight()).divide(HUNDRED)
|
|
|
//参与人权重
|
|
|
- .multiply(brokerageDetailBO.getParticipantWeight());
|
|
|
+ .multiply(brokerageDetailBO.getParticipantWeight()).divide(HUNDRED);
|
|
|
brokerageDetailBO.setPredictAmount(predictAmount.setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
BeanUtil.copyProperties(brokerageDetailBO,itemBrokerageDetail);
|
|
|
}
|
|
@@ -72,7 +74,8 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
|
|
|
@Override
|
|
|
public BigDecimal aheadAmount(Long userId){
|
|
|
try {
|
|
|
- BigDecimal baseAheadAmount = baseAmountsCache.get(userId);
|
|
|
+ BigDecimal baseAheadAmount = baseAmountsCache.get(userId)==null?
|
|
|
+ globalConfigCache.getIfPresent(GlobalConfigEnum.Finance.NON_MARKETER_MONTH_BROKERAGE.getCode()):baseAmountsCache.get(userId);
|
|
|
return baseAheadAmount;
|
|
|
} catch (ExecutionException e) {
|
|
|
log.error("获取提成缓存数据失败");
|
|
@@ -90,9 +93,9 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
|
|
|
if (detail.getKey().equals(stage.getId())){
|
|
|
List<ItemBrokerageDetail> value = detail.getValue();
|
|
|
for (ItemBrokerageDetail brokerage :value){
|
|
|
- brokerage.setActualAmount(brokerage.getPredictAmount().multiply(participantSettleDTO.getWeight()));
|
|
|
+ brokerage.setActualAmount(brokerage.getPredictAmount().multiply(participantSettleDTO.getWeight()).divide(HUNDRED));
|
|
|
if (stage.getOverdue()){
|
|
|
- brokerage.setActualAmount(brokerage.getActualAmount().multiply(stage.getCoefficient()));
|
|
|
+ brokerage.setActualAmount(brokerage.getActualAmount().multiply(stage.getCoefficient()).divide(HUNDRED));
|
|
|
}
|
|
|
}
|
|
|
}
|