From e1ab708f43c6d3bb48ccb048f953e9ef759790ec Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 07 七月 2025 16:06:08 +0800
Subject: [PATCH] 2025-07-03 来票台账可修改

---
 src/main/java/com/ruoyi/purchase/service/IProductRecordService.java           |    5 ++
 src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java   |   38 ++++++++++++++++++-
 src/main/resources/mapper/purchase/ProductRecordMapper.xml                    |   20 ++++++++++
 src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java              |    2 +
 src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java |   10 ++++-
 5 files changed, 71 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
index 40ec673..1791d23 100644
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -83,11 +83,17 @@
         return toAjax(ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto));
     }
 
+
+    @GetMapping("/getProductRecordById")
+    public AjaxResult getProductRecordById(Long id) {
+        return AjaxResult.success(productRecordService.getProductRecordById(id));
+    }
+
     @ApiModelProperty("淇敼鏉ョエ鐧昏")
     @PostMapping("/updateRegistration")
-    public AjaxResult updateRegistration(@RequestBody TicketRegistrationDto ticketRegistrationDto) {
+    public AjaxResult updateRegistration(@RequestBody ProductRecordDto productRecordDto) {
 
-        return AjaxResult.success();
+        return productRecordService.updateRecord(productRecordDto);
     }
 
     /**
diff --git a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
index fb691ed..9d003ba 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
@@ -17,4 +17,6 @@
 public interface ProductRecordMapper extends BaseMapper<ProductRecord> {
 
     IPage<ProductRecordDto> productRecordPage(Page page, @Param("c") TicketRegistrationDto ticketRegistrationDto);
+
+    ProductRecordDto getProductRecordById(Long id);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
index 235f096..2fa21ca 100644
--- a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.TicketRegistrationDto;
 import com.ruoyi.purchase.pojo.ProductRecord;
@@ -20,4 +21,8 @@
     List<ProductRecord> selectProductRecordList(TicketRegistrationDto ticketRegistrationDto);
 
     IPage<ProductRecordDto> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto);
+
+    AjaxResult updateRecord(ProductRecordDto productRecordDto);
+
+    ProductRecordDto getProductRecordById(Long id);
 }
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 ee393d0..fd9752b 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -5,15 +5,21 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.TicketRegistrationDto;
 import com.ruoyi.purchase.mapper.ProductRecordMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
 import com.ruoyi.purchase.pojo.ProductRecord;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.purchase.service.IProductRecordService;
 import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -34,8 +40,10 @@
 
     @Autowired
     private CommonFileMapper commonFileMapper;
-
-
+    @Autowired
+    private SalesLedgerProductMapper salesLedgerProductMapper;
+    @Autowired
+    private PurchaseLedgerMapper purchaseLedgerMapper;
 
 
     /**
@@ -61,4 +69,30 @@
         });
         return productRecordDtoIPage;
     }
+
+    @Override
+    public AjaxResult updateRecord(ProductRecordDto productRecordDto) {
+        SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(productRecordDto.getSaleLedgerProjectId());
+        ProductRecord productRecord = productRecordMapper.selectById(productRecordDto.getId());
+        if (salesLedgerProduct != null) {
+            salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getFutureTicketsAmount().add(productRecord.getTicketsAmount()).subtract(productRecordDto.getTicketsAmount()));
+            salesLedgerProduct.setFutureTickets(salesLedgerProduct.getFutureTickets().add(productRecord.getTicketsNum().subtract(productRecordDto.getTicketsNum())));
+            salesLedgerProductMapper.updateById(salesLedgerProduct);
+
+        }
+        PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(productRecord.getPurchaseLedgerId());
+        if (purchaseLedger != null) {
+            purchaseLedger.setReceiptPaymentAmount(purchaseLedger.getReceiptPaymentAmount());
+        }
+        BeanUtils.copyProperties(productRecordDto,productRecord);
+        productRecordMapper.updateById(productRecord);
+
+        return AjaxResult.success("淇敼鎴愬姛");
+    }
+
+    @Override
+    public ProductRecordDto getProductRecordById(Long id) {
+        ProductRecordDto productRecordDto = productRecordMapper.getProductRecordById(id);
+        return productRecordDto;
+    }
 }
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index 980727c..dd5aac6 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -39,4 +39,24 @@
             and tr.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
         </if>
     </select>
+    <select id="getProductRecordById" resultType="com.ruoyi.purchase.dto.ProductRecordDto">
+        SELECT
+            sl.sales_contract_no,
+            sl.customer_contract_no,
+            sl.customer_name,
+            pm.model AS product_model,
+            pl.purchase_contract_number,
+            pl.supplier_name,
+            pr.*,
+            tr.invoice_number,
+            ROUND(pr.tickets_amount/(1+pr.tax_rate/100),2 ) as un_tickets_price,
+            ROUND(pr.tickets_amount-pr.tickets_amount/(1+pr.tax_rate/100),2 )as invoice_amount
+        FROM product_record pr
+                 left join purchase_ledger pl on pl.id = pr.purchase_ledger_id
+                 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}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3