|
@@ -311,36 +311,37 @@ public class ItemBrokerageGeneralServiceImpl extends ServiceImpl<ItemBrokerageGe
|
|
|
if (item.getAmount()!=null){
|
|
|
NonMarketerMarketerBrokerageCalculator calculator = (NonMarketerMarketerBrokerageCalculator) brokerageCalculateSupport.getCalculator(BrokerageRule.LAND_OTHER_RULE);
|
|
|
ItemBrokerageGeneral general = brokerageGeneralMapper.getByItemId(itemStageVO.getItemId());
|
|
|
- Set<ItemStageVO.ParticipatorWeight> participators = itemStageVO.getParticipators();
|
|
|
- Set<ItemBrokerageDetail> participatorBrokerageDetails = participators.stream().filter(s->s.getWeight()!=null).map(x -> {
|
|
|
- BrokerageDetailBO brokerageDetailBO = BrokerageDetailBO.builder().build();
|
|
|
- brokerageDetailBO.setBrokerageRule(BrokerageRule.LAND_OTHER_RULE.getCode());
|
|
|
- brokerageDetailBO.setBrokerageMode(BrokerageMode.PERSONAL.getCode());
|
|
|
- brokerageDetailBO.setAdvanceAmount(BigDecimal.ZERO);
|
|
|
- brokerageDetailBO.setPredictAmount(BigDecimal.ZERO);
|
|
|
- brokerageDetailBO.setActualAmount(BigDecimal.ZERO);
|
|
|
- brokerageDetailBO.setAmount(item.getAmount());
|
|
|
- brokerageDetailBO.setUserId(x.getUserId());
|
|
|
- brokerageDetailBO.setGeneralId(general.getId());
|
|
|
- brokerageDetailBO.setBrokerageStageId(brokerageStageId);
|
|
|
- brokerageDetailBO.setStageWeight(itemStageVO.getWeight());
|
|
|
- brokerageDetailBO.setParticipantWeight(x.getWeight());
|
|
|
- brokerageDetailBO.setParticipantStatus(general.getParticipantStatus());
|
|
|
- ItemBrokerageDetail itemBrokerageDetail = calculator.predictAmount(brokerageDetailBO);
|
|
|
- return itemBrokerageDetail;
|
|
|
- }).collect(Collectors.toSet());
|
|
|
- BigDecimal participatorPredictTotalAmount = participatorBrokerageDetails.stream().map(ItemBrokerageDetail::getPredictAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
-
|
|
|
- //创建参与人的项目提成详情
|
|
|
- iItemBrokerageDetailService.saveBatch(participatorBrokerageDetails);
|
|
|
- //更新项目提成总表信息
|
|
|
- general.setParticipantPredictBrokerageAmount(participatorPredictTotalAmount.add(general.getParticipantPredictBrokerageAmount()));
|
|
|
- general.setParticipantAdvanceStatus(Boolean.TRUE);
|
|
|
- general.setBrokeragePredictAmount(general.getMarketerBrokerageAmount().add(general.getParticipantPredictBrokerageAmount()));
|
|
|
- general.setParticipantActualBrokerageAmount(BigDecimal.ZERO);
|
|
|
- general.setParticipantStatus(BrokerageState.PREDICTING.getCode());
|
|
|
-
|
|
|
- this.updateById(general);
|
|
|
+ if (general!=null){
|
|
|
+ Set<ItemStageVO.ParticipatorWeight> participators = itemStageVO.getParticipators();
|
|
|
+ Set<ItemBrokerageDetail> participatorBrokerageDetails = participators.stream().filter(s->s.getWeight()!=null).map(x -> {
|
|
|
+ BrokerageDetailBO brokerageDetailBO = BrokerageDetailBO.builder().build();
|
|
|
+ brokerageDetailBO.setBrokerageRule(BrokerageRule.LAND_OTHER_RULE.getCode());
|
|
|
+ brokerageDetailBO.setBrokerageMode(BrokerageMode.PERSONAL.getCode());
|
|
|
+ brokerageDetailBO.setAdvanceAmount(BigDecimal.ZERO);
|
|
|
+ brokerageDetailBO.setPredictAmount(BigDecimal.ZERO);
|
|
|
+ brokerageDetailBO.setActualAmount(BigDecimal.ZERO);
|
|
|
+ brokerageDetailBO.setAmount(item.getAmount());
|
|
|
+ brokerageDetailBO.setUserId(x.getUserId());
|
|
|
+ brokerageDetailBO.setGeneralId(general.getId());
|
|
|
+ brokerageDetailBO.setBrokerageStageId(brokerageStageId);
|
|
|
+ brokerageDetailBO.setStageWeight(itemStageVO.getWeight());
|
|
|
+ brokerageDetailBO.setParticipantWeight(x.getWeight());
|
|
|
+ brokerageDetailBO.setParticipantStatus(general.getParticipantStatus());
|
|
|
+ ItemBrokerageDetail itemBrokerageDetail = calculator.predictAmount(brokerageDetailBO);
|
|
|
+ return itemBrokerageDetail;
|
|
|
+ }).collect(Collectors.toSet());
|
|
|
+ BigDecimal participatorPredictTotalAmount = participatorBrokerageDetails.stream().map(ItemBrokerageDetail::getPredictAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ //创建参与人的项目提成详情
|
|
|
+ iItemBrokerageDetailService.saveBatch(participatorBrokerageDetails);
|
|
|
+ //更新项目提成总表信息
|
|
|
+ general.setParticipantPredictBrokerageAmount(participatorPredictTotalAmount.add(general.getParticipantPredictBrokerageAmount()));
|
|
|
+ general.setParticipantAdvanceStatus(Boolean.TRUE);
|
|
|
+ general.setBrokeragePredictAmount(general.getMarketerBrokerageAmount().add(general.getParticipantPredictBrokerageAmount()));
|
|
|
+ general.setParticipantActualBrokerageAmount(BigDecimal.ZERO);
|
|
|
+ general.setParticipantStatus(BrokerageState.PREDICTING.getCode());
|
|
|
+ this.updateById(general);
|
|
|
+ }
|
|
|
|
|
|
}else {
|
|
|
log.info("未设置合同金额,创建参与人提成记录终止。itemId[{}]",item.getId());
|