From 16217be9c85f95cb236e639da6e546bb38cdc53d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 05 十二月 2024 14:45:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRevenueServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRevenueServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRevenueServiceImpl.java
index cdfdf12..e2e4461 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRevenueServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRevenueServiceImpl.java
@@ -24,6 +24,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -125,7 +126,7 @@
         BigDecimal waitPayTotal = BigDecimal.ZERO;
         //鏃犱粯娆捐褰� 鍒欎负鍒濇鏀粯 鏍规嵁璐﹀崟绫诲瀷 鍒ゆ柇鏄敮鍑� / 鏀跺叆
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywContractRevenueList)){
-            ywContractRevenue.setRevenueType(ywContractBill.getType());
+            ywContractRevenue.setRevenueType(ywContractBill.getBillType());
             if(ywContractRevenue.getActReceivableFee().compareTo(ywContractBill.getReceivableFee())>Constants.ZERO){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇疯緭鍏ユ纭殑閲戦锛�");
             }else  if(ywContractRevenue.getActReceivableFee().compareTo(ywContractBill.getReceivableFee())==Constants.ZERO){
@@ -135,19 +136,39 @@
             }
         }else{
             //鑾峰彇宸叉敮浠樼殑鎬婚噾棰� 锛堝彲鑳芥湁鏀跺叆 鏈夋敮鍑猴級
-            payTotal = ywContractRevenueList.stream().map(i->i.getActReceivableFee().multiply(
-                    BigDecimal.valueOf(Constants.equalsInteger(ywContractRevenue.getRevenueType(),Constants.ZERO)?Constants.ONE:-Constants.ONE))
-            ).reduce(BigDecimal.ZERO,BigDecimal::add);
-            //鑾峰彇寰呮敮浠樻閲戦 濡傛灉璐﹀崟绫诲瀷涓烘敮鍑� 鎴� 锛堣处鍗曠被鍨嬩负鏀跺叆 涓� 寰呮敮浠橀噾棰� 灏忎簬 0锛� 鍒欎负鏀粯
-            waitPayTotal = ywContractBill.getReceivableFee().subtract(payTotal);
-            //濡傛灉寰呮敮浠橀噾棰� 澶т簬 0  鍒欐槸 鏀跺叆 鍚﹀垯鏄敮鍑� 鍏朵粬鐘舵�� 涓哄紓甯革紒
-            if(waitPayTotal.compareTo(BigDecimal.ZERO)>Constants.ZERO){
-                ywContractRevenue.setRevenueType(Constants.ZERO);
-            }else if(waitPayTotal.compareTo(BigDecimal.ZERO)<Constants.ZERO){
-                ywContractRevenue.setRevenueType(Constants.ONE);
+            if(Constants.equalsInteger(ywContractBill.getBillType(),Constants.ZERO)){
+                payTotal = ywContractRevenueList.stream().map(i->
+                        i.getActReceivableFee().multiply(
+                                BigDecimal.valueOf(Constants.equalsInteger(i.getRevenueType(),Constants.ZERO)?Constants.ONE:-Constants.ONE))
+                ).reduce(BigDecimal.ZERO,BigDecimal::add);
+                //鑾峰彇寰呮敮浠樻閲戦 濡傛灉璐﹀崟绫诲瀷涓烘敮鍑� 鎴� 锛堣处鍗曠被鍨嬩负鏀跺叆 涓� 寰呮敮浠橀噾棰� 灏忎簬 0锛� 鍒欎负鏀粯
+                waitPayTotal = ywContractBill.getReceivableFee().subtract(payTotal);
+                //濡傛灉寰呮敮浠橀噾棰� 澶т簬 0  鍒欐槸 鏀跺叆 鍚﹀垯鏄敮鍑� 鍏朵粬鐘舵�� 涓哄紓甯革紒
+                if(waitPayTotal.compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                    ywContractRevenue.setRevenueType(Constants.ZERO);
+                }else if(waitPayTotal.compareTo(BigDecimal.ZERO)<Constants.ZERO){
+                    ywContractRevenue.setRevenueType(Constants.ONE);
+                }else{
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏀舵敮閲戦寮傚父!璇疯仈绯荤鐞嗗憳");
+                }
             }else{
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏀舵敮閲戦寮傚父!璇疯仈绯荤鐞嗗憳");
+                payTotal = ywContractRevenueList.stream().map(i->
+                        i.getActReceivableFee().multiply(
+                                BigDecimal.valueOf(Constants.equalsInteger(i.getRevenueType(),Constants.ZERO)?-Constants.ONE:Constants.ONE))
+                ).reduce(BigDecimal.ZERO,BigDecimal::add);
+                //鑾峰彇寰呮敮浠樻閲戦 濡傛灉璐﹀崟绫诲瀷涓烘敮鍑� 鎴� 锛堣处鍗曠被鍨嬩负鏀跺叆 涓� 寰呮敮浠橀噾棰� 灏忎簬 0锛� 鍒欎负鏀粯
+                waitPayTotal = ywContractBill.getReceivableFee().subtract(payTotal);
+                //濡傛灉寰呮敮浠橀噾棰� 澶т簬 0  鍒欐槸 鏀跺叆 鍚﹀垯鏄敮鍑� 鍏朵粬鐘舵�� 涓哄紓甯革紒
+                if(waitPayTotal.compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                    ywContractRevenue.setRevenueType(Constants.ONE);
+                }else if(waitPayTotal.compareTo(BigDecimal.ZERO)<Constants.ZERO){
+                    ywContractRevenue.setRevenueType(Constants.ZERO);
+                }else{
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏀舵敮閲戦寮傚父!璇疯仈绯荤鐞嗗憳");
+                }
             }
+
+
             //寰呮敮浠樼殑娴佹按 濡傛灉涓烘敹鍏� 鍒欐瘮瀵� 閲戦鍊�  濡傛灉鏄敮鍑� 鍒欒幏鍙栫粷瀵瑰�� 杩涜瀵规瘮
             if(Constants.equalsInteger(ywContractRevenue.getRevenueType(),Constants.ZERO)){
                 //濡傛灉鏀粯閲戦 澶т簬 寰呮敮浠橀噾棰� 鍒欐彁绀哄紓甯� 濡傛灉鏀粯閲戦灏忎簬 寰呮敮浠橀噾棰� 鍒欑姸鎬佷笉鍙樺寲 鍏朵粬鐘舵�� 寮傚父
@@ -167,6 +188,21 @@
         }
         ywContractRevenueMapper.insert(ywContractRevenue);
         ywContractBillMapper.updateById(ywContractBill);
+        //濡傛灉璐﹀崟瀹岀粨锛屽垯鏌ヨ鍚堝悓涓嬪紑鍚腑鐨勮处鍗曟槸鍚﹀瓨鍦ㄩ��娆句腑 濡傛灉涓嶅瓨鍦ㄥ垯鏍囪鍚堝悓宸查��娆�
+        if(Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.ONE)){
+            if( ywContractBillMapper
+                    .selectCount(new QueryWrapper<YwContractBill>().lambda().eq(YwContractBill::getContractId,ywContractBill.getContractId())
+                            .ne(YwContractBill::getId,ywContractBill.getId())
+                    .eq(YwContractBill::getStatus,Constants.ZERO)
+                                    .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.FOUR, Constants.TWO,Constants.THREE)
+                    ) == Constants.ZERO){
+                ywContractMapper.update(new UpdateWrapper<YwContract>().lambda()
+                        .set(YwContract::getStatus,Constants.FOUR)
+                        .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+                        .eq(YwContract::getId,ywContractBill.getContractId())
+                );
+            }
+        }
         //瀛樺偍闄勪欢淇℃伅
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractRevenue.getMultifileList())){
             for (Multifile multifile:ywContractRevenue.getMultifileList()) {

--
Gitblit v1.9.3