diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java index 582a0858..855dc677 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java @@ -240,7 +240,7 @@ public class XmTaskSbillController { detail.setSbillId(batchJoinToSbill.getSbillId()); detail.setProjectId(projectId); detail.setCtime(new Date()); - this.xmTaskSbillDetailService.calcSamt(detail); + this.xmTaskSbillDetailService.preCalcSamt(detail); canAdd.add(detail); } this.xmTaskSbillService.batchJoinToSbill(canAdd,details); diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java index 345a5862..cb6fe9db 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java @@ -67,15 +67,17 @@ public class XmTaskSbillDetailService extends BaseService { public void preCalcSamt(XmTaskSbillDetail detail) { if(detail.getQuoteAt()!=null){ detail.setSamt(detail.getQuoteAt()); - return; - } - if(detail.getBudgetAt()==null && detail.getQuoteAt()==null){ + }else if(detail.getBudgetAt()==null && detail.getQuoteAt()==null){ detail.setSamt(BigDecimal.ZERO); - return; - } - if(detail.getBudgetAt()!=null){ + }else if(detail.getBudgetAt()!=null){ detail.setSamt(detail.getBudgetAt()); - return; + } + if("1".equals(detail.getOshare())){ + if(detail.getShareFee()!=null && detail.getShareFee().compareTo(BigDecimal.ZERO)>0){ + if(detail.getSamt()!=null){ + detail.setSamt(detail.getSamt().subtract(detail.getShareFee())); + } + } } }