From db5eb7cf96d20071bcd7df6194577165aa217bee Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 15 一月 2026 16:59:57 +0800
Subject: [PATCH] 1.修改来票台账详情接口,实时返回未来票数,未来票金额 2.未进行来票登记操作,同步未来票数,金额 3.字段数据类型修改 4.来票台账搜索当天记录sql语句

---
 src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java                    |   18 +++++++--
 src/main/java/com/ruoyi/purchase/service/IProductRecordService.java           |    2 
 src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java   |   18 +++++++--
 src/main/resources/mapper/purchase/ProductRecordMapper.xml                    |   13 ++++--
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java  |    2 +
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                    |    8 ++--
 src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java     |    6 +++
 src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java              |    4 +
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml                   |    6 ++-
 src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java |    8 ++--
 src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java    |    7 +++
 11 files changed, 68 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index cbb2e00..1d76fe2 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -22,6 +22,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -194,6 +195,11 @@
         IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger);
         //杩囨护鎺塧pprovalStatus=3鐨勮褰�
         purchaseLedgerDtoIPage.getRecords().removeIf(purchaseLedgerDto -> purchaseLedgerDto.getApprovalStatus() == 3);
+        purchaseLedgerDtoIPage.getRecords().forEach(purchaseLedgerDto -> {
+            if (purchaseLedgerDto.getUnReceiptPaymentAmount().compareTo(BigDecimal.ZERO) == 0) {
+                purchaseLedgerDto.setUnReceiptPaymentAmount(purchaseLedgerDto.getContractAmount());
+            }
+        });
          return AjaxResult.success(purchaseLedgerDtoIPage);
     }
 
diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
index d3a230f..ecd50bc 100644
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -138,12 +138,12 @@
     }
 
 
-    @GetMapping("/getProductRecordById")
-    public AjaxResult getProductRecordById(Long id) {
-        if (id == null) {
+    @PostMapping("/getProductRecordById")
+    public AjaxResult getProductRecordById(@RequestBody ProductRecordDto productRecordDto) {
+        if (productRecordDto.getId() == null) {
             return AjaxResult.error("鍙傛暟閿欒");
         }
-        return AjaxResult.success(productRecordService.getProductRecordById(id));
+        return AjaxResult.success(productRecordService.getProductRecordById(productRecordDto));
     }
 
     @ApiModelProperty("淇敼鏉ョエ鐧昏")
diff --git a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
index b4edc0d..1b3c691 100644
--- a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
@@ -5,6 +5,7 @@
 import com.ruoyi.sales.pojo.CommonFile;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -28,12 +29,21 @@
     private String projectName;
     private Long issUerId;
     private String issUer;
+    /**
+     * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
+     */
+    private BigDecimal contractAmount = BigDecimal.ZERO;
     //澧炲�肩◣
-    private String invoiceAmount = "0";
-
+    /**
+     * 宸叉潵绁ㄩ噾棰濓紙鍙戠エ閲戦锛�
+     */
+    private BigDecimal invoiceTotal = BigDecimal.ZERO;
+    private BigDecimal invoiceAmount = BigDecimal.ZERO;
+    /**
+     * 鍙戠エ鍙�
+     */
     private String invoiceNumber;
-
-    private String unTicketsPrice = "0";
+    private BigDecimal unTicketsPrice = BigDecimal.ZERO;
 
     private List<CommonFile> commonFiles;
 
diff --git a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
index 9d003ba..b4bdea9 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
@@ -8,6 +8,8 @@
 import com.ruoyi.purchase.pojo.ProductRecord;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰昅apper鎺ュ彛
  *
@@ -18,5 +20,5 @@
 
     IPage<ProductRecordDto> productRecordPage(Page page, @Param("c") TicketRegistrationDto ticketRegistrationDto);
 
-    ProductRecordDto getProductRecordById(Long id);
+    List<ProductRecordDto> getProductRecordById(@Param("c") ProductRecordDto productRecordDto);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
index 2fa21ca..3ab3d32 100644
--- a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
@@ -24,5 +24,5 @@
 
     AjaxResult updateRecord(ProductRecordDto productRecordDto);
 
-    ProductRecordDto getProductRecordById(Long id);
+    ProductRecordDto getProductRecordById(ProductRecordDto productRecordDto);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
index 7c1d837..d5c67b9 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -101,9 +101,19 @@
         return AjaxResult.success("淇敼鎴愬姛");
     }
 
-    @Override
-    public ProductRecordDto getProductRecordById(Long id) {
-        ProductRecordDto productRecordDto = productRecordMapper.getProductRecordById(id);
-        return productRecordDto;
+     @Override
+    public ProductRecordDto getProductRecordById(ProductRecordDto productRecordDto) {
+        List<ProductRecordDto> productRecordDtoList = productRecordMapper.getProductRecordById(productRecordDto);
+        if(productRecordDtoList != null && productRecordDtoList.size() > 0){
+            ProductRecordDto productRecordDto1 = productRecordDtoList.get(productRecordDtoList.size() - 1);
+            // 杩囨护鍑轰笌浼犲叆鐨� productRecordDto 涓婚敭鐩稿悓鐨勮褰�
+            ProductRecordDto productRecordDto2 = productRecordDtoList.stream().filter(item ->
+                            item.getId().equals(productRecordDto.getId()))
+                    .findFirst().orElse(null);
+            productRecordDto2.setFutureTickets(productRecordDto1.getFutureTickets());
+            productRecordDto2.setFutureTicketsAmount(productRecordDto1.getFutureTicketsAmount());
+            return productRecordDto2;
+        }
+        return null;
     }
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 12adbf0..0c02cf9 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -332,6 +332,8 @@
 
                 LocalDateTime localDateTime = entryDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                 salesLedgerProduct.setRegisterDate(localDateTime);
+                salesLedgerProduct.setFutureTickets(salesLedgerProduct.getQuantity());
+                salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
             }
         }
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index 78d78d8..d69d27a 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -24,6 +24,7 @@
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -48,6 +49,12 @@
     {
         List<SalesLedgerProduct> list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct);
         list.forEach(item -> {
+                if (item.getFutureTickets().compareTo(BigDecimal.ZERO) == 0) {
+                    item.setFutureTickets(item.getQuantity());
+                }
+            if (item.getFutureTicketsAmount().compareTo(BigDecimal.ZERO) == 0) {
+                item.setFutureTicketsAmount(item.getTaxInclusiveTotalPrice());
+            }
             ProcurementPageDto procurementDto = new ProcurementPageDto();
             procurementDto.setSalesLedgerProductId(item.getId());
             procurementDto.setProductCategory(item.getProductCategory());
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index c4e21b2..7af592b 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -111,22 +111,22 @@
     /**
      * 鏈鏉ョエ鏁�
      */
-    private BigDecimal ticketsNum;
+    private BigDecimal ticketsNum=BigDecimal.ZERO;
 
     /**
      * 鏈鏉ョエ閲戦(鍏�)
      */
-    private BigDecimal ticketsAmount;
+    private BigDecimal ticketsAmount=BigDecimal.ZERO;
 
     /**
      * 鏈潵绁ㄦ暟
      */
-    private BigDecimal futureTickets;
+    private BigDecimal futureTickets=BigDecimal.ZERO;
 
     /**
      * 鏈潵绁ㄩ噾棰�(鍏�)
      */
-    private BigDecimal futureTicketsAmount;
+    private BigDecimal futureTicketsAmount=BigDecimal.ZERO;
 
     @ApiModelProperty(value = "寮�绁ㄦ暟")
     private BigDecimal invoiceNum;
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index 2c0cba4..aa850cb 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -34,10 +34,10 @@
             and pl.supplier_name like concat('%',#{c.supplierName},'%')
         </if>
         <if test="c.createdAtStart != null and c.createdAtStart != ''">
-            and pr.created_at &gt;= date_format(#{c.createdAtStart},'%Y-%m-%d hh:mm:ss')
+            and pr.created_at &gt;= str_to_date(#{c.createdAtStart}, '%Y-%m-%d')
         </if>
         <if test="c.createdAtEnd != null and c.createdAtEnd != ''">
-            and pr.created_at &lt;= date_format(#{c.createdAtEnd},'%Y-%m-%d hh:mm:ss')
+            and pr.created_at &lt; date_add(str_to_date(#{c.createdAtEnd}, '%Y-%m-%d'), interval 1 day)
         </if>
         <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
             and tr.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
@@ -60,7 +60,12 @@
                  left join sales_ledger sl on sl.id = pl.sales_ledger_id
                  left join ticket_registration tr on tr.id = pr.ticket_registration_id
                  left join product_model pm on pm.id = pr.product_model_id
-
-        WHERE type = 2 and pr.id = #{id}
+        WHERE type = 2
+        <if test="c.purchaseLedgerId != null and c.purchaseLedgerId != ''">
+            and pr.purchase_ledger_id = #{c.purchaseLedgerId}
+        </if>
+        <if test="c.productModelId != null and c.productModelId != ''">
+            and pm.id = #{c.productModelId}
+        </if>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index b513ac1..9eaf966 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -18,8 +18,8 @@
         pl.supplier_name,
         pl.project_name,
         pl.contract_amount,
-        sum(pr.tickets_amount)as receipt_payment_amount,
-        pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount,
+        sum(tr.invoice_amount)as receipt_payment_amount,
+        pl.contract_amount-sum(tr.invoice_amount) AS unReceipt_payment_amount,
         pl.entry_date,
         pl.recorder_id,
         pl.recorder_name,
@@ -29,7 +29,9 @@
         pl.approval_status,
         pl.payment_method
         from purchase_ledger pl
+        left join sales_ledger_product slp on slp.sales_ledger_id = pl.id and slp.type=2
         left join product_record pr on pl.id = pr.purchase_ledger_id
+        left join ticket_registration tr on tr.id = pr.ticket_registration_id
         left join supplier_manage sm on pl.supplier_id = sm.id
         <where>
             1 = 1

--
Gitblit v1.9.3