From 1f81840839e868b5a0c9689e78767ff97b683e4e Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 08 七月 2025 11:07:58 +0800
Subject: [PATCH] yys  1.新增入库查询      2.新增入库      3.入库分页查询      4.编辑

---
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java                        |   89 ++++++++
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |  123 +++++++++++
 src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java    |   62 +++++
 src/main/resources/application-druid.yml                                                 |    2 
 src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java          |   26 ++
 src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java            |   28 ++
 src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java                    |   60 +++++
 src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml                  |   56 +++++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java                    |   98 ++++++++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java                     |   18 +
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java                  |   18 +
 src/main/resources/application.yml                                                       |    2 
 src/main/java/com/ruoyi/procurementrecord/dto/Details.java                               |   24 ++
 13 files changed, 604 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
new file mode 100644
index 0000000..b522be4
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -0,0 +1,62 @@
+package com.ruoyi.procurementrecord.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementDto;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:32
+ */
+@RestController
+@Api(tags = "閲囪喘鍏ュ簱")
+@RequestMapping("/stockin")
+public class ProcurementRecordController extends BaseController {
+
+
+    @Autowired
+    private ProcurementRecordService procurementRecordService;
+
+    @GetMapping("/productlist")
+    @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult list(ProcurementDto procurementDto) {
+        List<ProcurementDto> result =procurementRecordService.listProcurementBySalesLedgerId(procurementDto);
+        return AjaxResult.success(result);
+    }
+
+    @PostMapping("/add")
+    @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
+    public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) {
+        return AjaxResult.success(procurementRecordService.add(procurementDto));
+    }
+
+    @PostMapping("/update")
+    @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-淇敼鍏ュ簱", businessType = BusinessType.UPDATE)
+    public AjaxResult updatePro(@RequestBody ProcurementUpdateDto procurementDto) {
+        return AjaxResult.success(procurementRecordService.updatePro(procurementDto));
+    }
+
+    @GetMapping("/listPage")
+    @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult listPage(Page page, ProcurementPageDto procurementDto) {
+        IPage<ProcurementPageDto> result =procurementRecordService.listPage(page, procurementDto);
+        return AjaxResult.success(result);
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
new file mode 100644
index 0000000..510b62d
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -0,0 +1,24 @@
+package com.ruoyi.procurementrecord.dto;
+
+import java.math.BigDecimal;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 16:17
+ */
+public class Details {
+    private Integer id;
+    private BigDecimal inboundQuantity;
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+    public BigDecimal getInboundQuantity() {
+        return inboundQuantity;
+    }
+    public void setInboundQuantity(BigDecimal inboundQuantity) {
+        this.inboundQuantity = inboundQuantity;
+    }
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
new file mode 100644
index 0000000..73d9895
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.procurementrecord.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 16:07
+ */
+@Data
+public class ProcurementAddDto {
+
+    private List<Details> details;
+
+    private String nickName;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java
new file mode 100644
index 0000000..63ce258
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java
@@ -0,0 +1,89 @@
+package com.ruoyi.procurementrecord.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:46
+ */
+@Data
+public class ProcurementDto {
+
+    private String purchaseContractNumber;
+
+    private Integer id;
+
+    private Integer recordId;
+
+    /**
+     * 鍏ュ簱鏁伴噺
+     */
+    private Integer quantityStock;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+
+    /**
+     * 浜у搧澶х被
+     */
+    @Excel(name = "浜у搧澶х被")
+    private String productCategory;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    @Excel(name = "鏁伴噺")
+    private BigDecimal quantity;
+
+    /**
+     * 寰呭叆搴撴暟閲�
+     */
+    @Excel(name = "寰呭叆搴撴暟閲�")
+    private BigDecimal quantity0;
+
+    /**
+     * 绋庣巼
+     */
+    @Excel(name = "绋庣巼")
+    private BigDecimal taxRate;
+
+    /**
+     * 鍚◣鍗曚环
+     */
+    @Excel(name = "鍚◣鍗曚环")
+    private BigDecimal taxInclusiveUnitPrice;
+
+    /**
+     * 鍚◣鎬讳环
+     */
+    @Excel(name = "鍚◣鎬讳环")
+    private BigDecimal taxInclusiveTotalPrice;
+
+    /**
+     * 涓嶅惈绋庢�讳环
+     */
+    @Excel(name = "涓嶅惈绋庢�讳环")
+    private BigDecimal taxExclusiveTotalPrice;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
new file mode 100644
index 0000000..cfa078b
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -0,0 +1,98 @@
+package com.ruoyi.procurementrecord.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 17:00
+ */
+@Data
+public class ProcurementPageDto {
+
+    private Integer id;
+
+    /**
+     * 鍏ュ簱鎵规
+     */
+    @Excel(name = "鍏ュ簱鎵规")
+    private String inboundBatches;
+
+    /**
+     * 鍚堝悓鍙�
+     */
+    private String purchaseContractNumber;
+
+    /**
+     * 鍑哄叆搴撴暟閲�
+     */
+    @Excel(name = "鍑哄叆搴撴暟閲�")
+    private BigDecimal inboundNum;
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+    @Excel(name = "鍑哄叆搴撴椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createDate;
+
+    /**
+     * 鍑哄叆搴撶敤鎴�
+     */
+    @Excel(name = "鍑哄叆搴撶敤鎴�")
+    private String createBy;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+
+    /**
+     * 浜у搧澶х被
+     */
+    @Excel(name = "浜у搧澶х被")
+    private String productCategory;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 绋庣巼
+     */
+    @Excel(name = "绋庣巼")
+    private BigDecimal taxRate;
+
+    /**
+     * 鍚◣鍗曚环
+     */
+    @Excel(name = "鍚◣鍗曚环")
+    private BigDecimal taxInclusiveUnitPrice;
+
+    /**
+     * 鍚◣鎬讳环
+     */
+    @Excel(name = "鍚◣鎬讳环")
+    private BigDecimal taxInclusiveTotalPrice;
+
+    /**
+     * 涓嶅惈绋庢�讳环
+     */
+    @Excel(name = "涓嶅惈绋庢�讳环")
+    private BigDecimal taxExclusiveTotalPrice;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
new file mode 100644
index 0000000..2e122b9
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.procurementrecord.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 10:40
+ */
+@Data
+public class ProcurementUpdateDto {
+
+    private Integer id;
+
+    private BigDecimal quantityStock;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
new file mode 100644
index 0000000..e1c7f28
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.procurementrecord.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.procurementrecord.dto.ProcurementDto;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:30
+ */
+public interface ProcurementRecordMapper extends BaseMapper<ProcurementRecord> {
+    /**
+     * 鏍规嵁閲囪喘鍙拌处id鏌ヨ閲囪喘鍏ュ簱淇℃伅
+     *
+     * @param procurementDto
+     * @return
+     */
+    List<ProcurementDto> listProcurementBySalesLedgerId(@Param("req") ProcurementDto procurementDto);
+
+    IPage<ProcurementPageDto> listPage(Page page,@Param("req")  ProcurementPageDto procurementDto);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java
new file mode 100644
index 0000000..05b6e33
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java
@@ -0,0 +1,60 @@
+package com.ruoyi.procurementrecord.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Builder;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:25
+ */
+@TableName("procurement_record")
+@Data
+@Builder
+public class ProcurementRecord {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 浜у搧淇℃伅琛╥d
+     */
+    private Integer salesLedgerProductId;
+
+    /**
+     * 閲囪喘鍒嗙被锛�1-鍏ュ簱 2-鍑哄簱锛�
+     */
+    private Integer procurementCategory;
+
+    /**
+     * 鍏ュ簱鎵规
+     */
+    private String inboundBatches;
+
+    /**
+     * 鍑哄叆搴撴暟閲�
+     */
+    private BigDecimal inboundNum;
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+    private LocalDateTime createDate;
+
+    /**
+     * 鍑哄叆搴撶敤鎴�
+     */
+    private String createBy;
+
+    /**
+     * 绉熸埛ID
+     */
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
new file mode 100644
index 0000000..7343054
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.procurementrecord.service;
+
+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.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementDto;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecord;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:36
+ */
+public interface ProcurementRecordService extends IService<ProcurementRecord> {
+    List<ProcurementDto> listProcurementBySalesLedgerId(ProcurementDto procurementDto);
+
+    int add(ProcurementAddDto procurementDto);
+
+    IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto);
+
+    int updatePro(ProcurementUpdateDto procurementDto);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
new file mode 100644
index 0000000..112e168
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -0,0 +1,123 @@
+package com.ruoyi.procurementrecord.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.procurementrecord.dto.*;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecord;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author :yys
+ * @date : 2025/7/7 14:38
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class ProcurementRecordServiceImpl extends ServiceImpl<ProcurementRecordMapper, ProcurementRecord> implements ProcurementRecordService {
+
+    private final ProcurementRecordMapper procurementRecordMapper;
+
+    private final SalesLedgerProductMapper salesLedgerProductMapper;
+
+    @Override
+    public List<ProcurementDto> listProcurementBySalesLedgerId(ProcurementDto procurementDto) {
+        List<ProcurementDto> procurementDtos = procurementRecordMapper.listProcurementBySalesLedgerId(procurementDto);
+        // 璁$畻寰呭叆搴撴暟閲�
+        // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+        List<Integer> collect = procurementDtos.stream().map(ProcurementDto::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty( collect)){
+            return procurementDtos;
+        }
+        LambdaQueryWrapper<ProcurementRecord> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        procurementRecordLambdaQueryWrapper.in(ProcurementRecord::getSalesLedgerProductId, collect);
+        List<ProcurementRecord> procurementRecords = procurementRecordMapper.selectList(procurementRecordLambdaQueryWrapper);
+        if(CollectionUtils.isEmpty( procurementRecords)){
+            return procurementDtos;
+        }
+        for (ProcurementDto dto : procurementDtos) {
+            // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍏ュ簱璁板綍
+            List<ProcurementRecord> collect1 = procurementRecords.stream()
+                    .filter(procurementRecord -> procurementRecord.getSalesLedgerProductId().equals(dto.getId()))
+                    .collect(Collectors.toList());
+            
+            // 濡傛灉娌℃湁鐩稿叧鐨勫叆搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+            if(CollectionUtils.isEmpty(collect1)){
+                continue;
+            }
+            
+            // 璁$畻宸插叆搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭叆搴撴暟閲�
+            BigDecimal totalInboundNum = collect1.stream()
+                    .map(ProcurementRecord::getInboundNum)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            
+            // 寰呭叆搴撴暟閲� = 鎬绘暟閲� - 宸插叆搴撴暟閲�
+            dto.setQuantity0(dto.getQuantity().subtract(totalInboundNum));
+        }
+        return procurementDtos;
+    }
+
+    @Override
+    public int updatePro(ProcurementUpdateDto procurementDto) {
+        ProcurementRecord procurementRecord = procurementRecordMapper.selectById(procurementDto.getId());
+        if(procurementRecord == null) {
+            throw new RuntimeException("鏈壘鍒拌閲囪喘鍏ュ簱璁板綍");
+        }
+        procurementRecord.setInboundNum(procurementDto.getQuantityStock());
+        return procurementRecordMapper.updateById(procurementRecord);
+    }
+
+    @Override
+    public int add(ProcurementAddDto procurementDto) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        // 鎵归噺鏂板
+        for (Details detail : procurementDto.getDetails()) {
+            // 鏌ヨ閲囪喘鍏ュ簱鏁伴噺
+            LambdaQueryWrapper<ProcurementRecord> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            procurementRecordLambdaQueryWrapper.eq(ProcurementRecord::getSalesLedgerProductId, detail.getId())
+                    .eq(ProcurementRecord::getProcurementCategory, 1);
+            Long aLong = procurementRecordMapper.selectCount(procurementRecordLambdaQueryWrapper);
+
+            ProcurementRecord.ProcurementRecordBuilder procurementRecordBuilder = ProcurementRecord.builder()
+                    .salesLedgerProductId(detail.getId())
+                    .procurementCategory(1)
+                    .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+                    .inboundNum(detail.getInboundQuantity())
+                    .createDate(LocalDateTime.now())
+                    .tenantId(loginUser.getTenantId())
+                    .createBy(procurementDto.getNickName());
+            this.save(procurementRecordBuilder.build());
+            // 鍏ュ簱鎴愬姛鍑忔帀閲囪喘鏁伴噺
+            LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getId, detail.getId());
+            SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectOne(salesLedgerProductLambdaQueryWrapper);
+            if(salesLedgerProduct == null){
+               throw new RuntimeException("鏈壘鍒拌鍟嗗搧");
+            }
+            salesLedgerProduct.setQuantity(salesLedgerProduct.getQuantity().subtract(detail.getInboundQuantity()));
+            salesLedgerProductMapper.updateById(salesLedgerProduct);
+        }
+        return 1;
+    }
+
+    @Override
+    public IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto) {
+        return procurementRecordMapper.listPage(page,procurementDto);
+    }
+
+}
diff --git a/src/main/resources/application-druid.yml b/src/main/resources/application-druid.yml
index 1869049..70ab54a 100644
--- a/src/main/resources/application-druid.yml
+++ b/src/main/resources/application-druid.yml
@@ -7,7 +7,7 @@
             # 涓诲簱鏁版嵁婧�
             master:
 #                url: jdbc:mysql://localhost:3306/product-inventory-management?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                url: jdbc:mysql://114.132.189.42:9004/product-inventory-management-copy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://114.132.189.42:9004/product-inventory-management?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: 123456
             # 浠庡簱鏁版嵁婧�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index e1ac4d3..6699d22 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -75,7 +75,7 @@
     # 鏁版嵁搴撶储寮�
     database: 0
     # 瀵嗙爜
-    password: root2022!
+    password:
 #    password: 123456
 
     # 杩炴帴瓒呮椂鏃堕棿
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
new file mode 100644
index 0000000..0af090e
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper">
+
+    <select id="listProcurementBySalesLedgerId" resultType="com.ruoyi.procurementrecord.dto.ProcurementDto">
+        select
+            t1.supplier_name,
+            t2.product_category,
+            t2.id,
+            t3.id as recordId,
+            t2.specification_model,
+            t2.unit,
+            t2.quantity,
+            t2.tax_rate,
+            t2.tax_inclusive_unit_price,
+            t2.tax_inclusive_total_price,
+            t2.tax_exclusive_total_price,
+            t3.inbound_num as quantityStock
+        from  purchase_ledger t1
+        left join sales_ledger_product t2 on t1.id = t2.sales_ledger_id
+        left join procurement_record t3 on t2.id = t3.sales_ledger_product_id
+        where t1.purchase_contract_number = #{req.purchaseContractNumber}
+        <if test="req.id != null and req.id != ''">
+            and t3.id = #{req.id}
+        </if>
+        group by t2.id
+    </select>
+    <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
+        select
+        t3.supplier_name,
+        t3.purchase_contract_number,
+        t2.product_category,
+        t1.id,
+        t2.specification_model,
+        t2.unit,
+        t2.quantity,
+        t2.quantity as quantity0,
+        t2.tax_rate,
+        t2.tax_inclusive_unit_price,
+        t2.tax_inclusive_total_price,
+        t2.tax_exclusive_total_price,
+        t1.inbound_batches,
+        t1.inbound_num,
+        t1.create_date,
+        t1.create_by
+        from  procurement_record t1
+                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
+        <where>
+            1 = 1
+            <if test="req.supplierName != null and req.supplierName != ''">
+                and t3.supplier_name like  concat('%',#{req.supplierName},'%')
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3