From 8ad0d1ebdd0d9eab8b706901e3304cbb1b439c30 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 13 八月 2025 15:23:09 +0800
Subject: [PATCH] 新增结算接口

---
 service/src/main/java/com/ruoyi/cwgl/service/IEstimatedReceivableBillService.java         |    7 +++
 service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java                  |    5 ++
 service/src/main/java/com/ruoyi/cwgl/controller/PendingSettlementBusinessController.java  |    2 
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java |   37 ++++++++++++++++++
 service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml                |    2 
 service/src/main/java/com/ruoyi/cwgl/controller/EstimatedReceivableBillController.java    |   11 +++++
 6 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/EstimatedReceivableBillController.java b/service/src/main/java/com/ruoyi/cwgl/controller/EstimatedReceivableBillController.java
index 1e0150e..a3cfe18 100644
--- a/service/src/main/java/com/ruoyi/cwgl/controller/EstimatedReceivableBillController.java
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/EstimatedReceivableBillController.java
@@ -96,6 +96,17 @@
     }
 
     /**
+     * 淇敼棰勪及搴旀敹璐﹀崟
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:estimatedReceivableBill:edit')")
+    @Log(title = "棰勪及搴旀敹璐﹀崟", businessType = BusinessType.UPDATE)
+    @PostMapping("settlement")
+    public AjaxResult settlement(@RequestBody EstimatedReceivableBill estimatedReceivableBill)
+    {
+        return toAjax(estimatedReceivableBillService.settlement(estimatedReceivableBill));
+    }
+
+    /**
      * 鍒犻櫎棰勪及搴旀敹璐﹀崟
      */
     @PreAuthorize("@ss.hasPermi('cwgl:estimatedReceivableBill:remove')")
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/PendingSettlementBusinessController.java b/service/src/main/java/com/ruoyi/cwgl/controller/PendingSettlementBusinessController.java
index 377d8a6..47c5dc1 100644
--- a/service/src/main/java/com/ruoyi/cwgl/controller/PendingSettlementBusinessController.java
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/PendingSettlementBusinessController.java
@@ -124,7 +124,7 @@
         return AjaxResult.success(pendingSettlementBusinessService.billList(pendingSettlementBusiness));
     }
 
-    @GetMapping("create/bill/{ids}")
+    @PostMapping("create/bill/{ids}")
     public AjaxResult createBillIds(@PathVariable Integer[] ids, @RequestBody CreateBillVo createBillVo)
     {
         return toAjax(pendingSettlementBusinessService.createBillIds(ids,createBillVo));
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java b/service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java
index f59a7f5..663653b 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java
@@ -63,6 +63,11 @@
         @TableField("settled_amount")
     private Long settledAmount;
 
+    /**
+     * 鏈缁撶畻閲戦
+     */
+    @TableField(exist = false)
+    private Long settlementAmount;
 
     /** 寮�绁ㄧ姸鎬� */
     @Excel(name = "寮�绁ㄧ姸鎬�")
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IEstimatedReceivableBillService.java b/service/src/main/java/com/ruoyi/cwgl/service/IEstimatedReceivableBillService.java
index 6362de2..55b6365 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/IEstimatedReceivableBillService.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IEstimatedReceivableBillService.java
@@ -99,4 +99,11 @@
      * @return 缁撴灉
      */
     public int deleteEstimatedReceivableBillById(Integer id);
+
+    /**
+     * 鎻愪氦缁撶畻閲戦
+     * @param estimatedReceivableBill
+     * @return
+     */
+    int settlement(EstimatedReceivableBill estimatedReceivableBill);
 }
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
index 218fbc9..b220a9a 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -1,9 +1,15 @@
 package com.ruoyi.cwgl.service.impl;
 
+import java.util.Date;
 import java.util.List;
 
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.cwgl.domain.EstimatedReceivableBillLog;
+import com.ruoyi.cwgl.service.IEstimatedReceivableBillLogService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.stereotype.Service;
 import org.springframework.scheduling.annotation.Async;
@@ -33,6 +39,8 @@
     protected final Logger logger = LoggerFactory.getLogger(getClass());
     @Resource
     private EstimatedReceivableBillMapper estimatedReceivableBillMapper;
+    @Autowired
+    private IEstimatedReceivableBillLogService logService;
 
 
     /**
@@ -179,4 +187,33 @@
     {
         return estimatedReceivableBillMapper.deleteEstimatedReceivableBillById(id);
     }
+
+    @Override
+    public int settlement(EstimatedReceivableBill estimatedReceivableBill) {
+        Integer id = estimatedReceivableBill.getId();
+        EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id);
+        //搴旂粨绠楅噾棰�
+        Long totalAmount = oldData.getTotalAmount()==null?0L:oldData.getTotalAmount();
+        //宸茬粨绠楅噾棰�
+        Long settledAmount = oldData.getSettledAmount()==null?0L:oldData.getSettledAmount();
+        //褰撳墠鎻愪氦閲戦
+        Long settlementAmount = estimatedReceivableBill.getSettlementAmount();
+        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+
+        estimatedReceivableBill.setSettledAmount(settlementAmount);
+        estimatedReceivableBillLog.setCreateTime(new Date());
+        estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
+        estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+        estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount);
+        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+        settledAmount = settledAmount+settlementAmount;
+        if (settledAmount>totalAmount){
+            //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
+            estimatedReceivableBill.setStatus(2);
+        }else {
+            //鍚﹀垯閮ㄥ垎缁撶畻
+            estimatedReceivableBill.setStatus(1);
+        }
+        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+    }
 }
diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
index 1516884..704608f 100644
--- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -55,7 +55,7 @@
         <result property="updateTime"    column="update_time"    />
         <result property="isCreate"    column="is_create"    />
         <result property="billId"    column="bill_id"    />
-        <result property="billId"    column="bill_name"    />
+        <result property="billName"    column="bill_name"    />
     </resultMap>
 
     <sql id="selectPendingSettlementBusinessVo">

--
Gitblit v1.8.0