ソースを参照

fix:收款管理收款逻辑修改

ly 9 ヶ月 前
コミット
94da7dd566

+ 18 - 1
src/main/java/cn/ezhizao/project/business/collection/controller/BizCollectionController.java

@@ -28,6 +28,8 @@ import cn.ezhizao.project.business.order.domain.BizArchiveInput;
 import cn.ezhizao.project.business.order.domain.BizArchiveInputDetail;
 import cn.ezhizao.project.business.order.service.IBizArchiveInputDetailService;
 import cn.ezhizao.project.business.order.service.IBizArchiveInputService;
+import cn.ezhizao.project.business.payment.domain.BizPayment;
+import cn.ezhizao.project.business.payment.domain.BizPaymentDetail;
 import cn.ezhizao.project.business.taskType.domain.BizTaskType;
 import cn.ezhizao.project.business.taskType.service.IBizTaskTypeService;
 import cn.ezhizao.project.system.domain.SysDictData;
@@ -549,11 +551,26 @@ public class BizCollectionController extends BaseController {
                     l.setExplain(l.getExplain().concat("," + l.getInputRemark()));
                 }
             });
+            contractDetailAmount(collection.getContractId(),details);
             collection.setDetails(details);
         }
         return collection;
     }
-
+    private void contractDetailAmount(Long contractId, List<BizCollectionDetail> list) {
+        List<BizCollection> paymentList = collectionService.list(new LambdaQueryWrapper<BizCollection>().eq(BizCollection::getContractId, contractId).and(item->item.eq(BizCollection::getStatus, 0).or().eq(BizCollection::getStatus, 1)));
+        List<Long> idList = paymentList.stream().map(m -> m.getId()).collect(Collectors.toList());
+        if (idList.size() > 0) {
+            List<BizCollectionDetail> bizPaymentDetailList = collectionDetailService.list(new LambdaQueryWrapper<BizCollectionDetail>().in(BizCollectionDetail::getCollectionId, idList));
+            Map<Long, BigDecimal> taskTypeToTotalAmount = bizPaymentDetailList.stream()
+                    .collect(Collectors.groupingBy(BizCollectionDetail::getTaskTypeId,
+                            Collectors.reducing(BigDecimal.ZERO, BizCollectionDetail::getArriveAmount, BigDecimal::add)));
+            for (BizCollectionDetail detail : list) {
+                BigDecimal bigDecimal = taskTypeToTotalAmount.get(detail.getTaskTypeId());
+                detail.setCountAmount(bigDecimal);
+                detail.setReviewAmount(detail.getArriveAmount());
+            }
+        }
+    }
 
     /**
      * 删除渠道

+ 4 - 0
src/main/java/cn/ezhizao/project/business/collection/domain/BizCollectionDetail.java

@@ -157,4 +157,8 @@ public class BizCollectionDetail extends BaseEntity implements Serializable {
             @Excel(sort = 8,name = "合同类型", targetAttr = "contractType",readConverterExp = "0=新签,1=续签", type = Excel.Type.EXPORT)
     })
     private ArchiveVo bizArchiveInput;
+    @TableField(exist = false)
+    private BigDecimal reviewAmount;
+    @TableField(exist = false)
+    private BigDecimal countAmount;
 }