From ce7582bd007b671dc311ee8511cc409230ef1b1c Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 08 七月 2025 17:49:29 +0800
Subject: [PATCH] yys 1.出库管理-分页查询 2.出库管理-导出 3.出库管理-领用 4.出库台账-分页查询 5.出库台账-导出 6.出库台账-删除 7.库存管理-分页查询 8.库存管理-导出 9.库存管理-删除
---
src/main/java/com/ruoyi/framework/security/LoginUser.java | 5
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java | 60 ++++++
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java | 21 ++
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java | 66 +++++++
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 48 +++++
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml | 47 +++++
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 4
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java | 22 ++
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 92 ++++++++++
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java | 11
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java | 26 ++
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 4
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 9 +
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java | 87 +++++++++
14 files changed, 496 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/framework/security/LoginUser.java b/src/main/java/com/ruoyi/framework/security/LoginUser.java
index 3b020b0..bb91be1 100644
--- a/src/main/java/com/ruoyi/framework/security/LoginUser.java
+++ b/src/main/java/com/ruoyi/framework/security/LoginUser.java
@@ -161,6 +161,11 @@
return user.getUserName();
}
+ public String getNickName()
+ {
+ return user.getNickName();
+ }
+
/**
* 璐︽埛鏄惁鏈繃鏈�,杩囨湡鏃犳硶楠岃瘉
*/
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 078a489..6778afc 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -16,6 +16,7 @@
import com.ruoyi.quality.pojo.QualityInspect;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -43,18 +44,21 @@
@PostMapping("/add")
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
+ @Transactional
public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) {
return AjaxResult.success(procurementRecordService.add(procurementDto));
}
@PostMapping("/update")
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-淇敼鍏ュ簱", businessType = BusinessType.UPDATE)
+ @Transactional
public AjaxResult updatePro(@RequestBody ProcurementUpdateDto procurementDto) {
return AjaxResult.success(procurementRecordService.updatePro(procurementDto));
}
@PostMapping("/del")
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
+ @Transactional
public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) {
return AjaxResult.success(procurementRecordService.deletePro(procurementDto));
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
new file mode 100644
index 0000000..1a656be
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
@@ -0,0 +1,60 @@
+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.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 13:30
+ */
+@RestController
+@Api(tags = "閲囪喘鍑哄簱")
+@RequestMapping("/stockmanagement")
+public class ProcurementRecordOutController extends BaseController {
+
+ @Autowired
+ private ProcurementRecordOutService procurementRecordOutService;
+
+ @PostMapping("/stockout")
+ @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱", businessType = BusinessType.INSERT)
+ public AjaxResult stockout(@RequestBody ProcurementRecordOutAdd procurementRecordOutAdd) {
+ return AjaxResult.success(procurementRecordOutService.stockout(procurementRecordOutAdd));
+ }
+
+ @GetMapping("/listPage")
+ @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPage(Page page, ProcurementRecordOutPageDto procurementDto) {
+ IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPage(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
+ @PostMapping("/del")
+ @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE)
+ public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) {
+ return AjaxResult.success(procurementRecordOutService.deletePro(procurementDto));
+ }
+
+ /**
+ * 瀵煎嚭
+ * @param response
+ */
+ @PostMapping("/export")
+ public void export(HttpServletResponse response) {
+ procurementRecordOutService.export(response);
+ }
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 37ab99e..8009463 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -27,6 +27,8 @@
*/
private String purchaseContractNumber;
+ private String salesLedgerProductId;
+
/**
* 鍑哄叆搴撴暟閲�
*/
@@ -34,6 +36,13 @@
private BigDecimal inboundNum;
/**
+ * 寰呭嚭搴撴暟閲�
+ */
+ @Excel(name = "寰呭嚭搴撴暟閲�")
+ private BigDecimal inboundNum0;
+
+
+ /**
* 鍑哄叆搴撴椂闂�
*/
@Excel(name = "鍏ュ簱鏃堕棿")
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
new file mode 100644
index 0000000..6c76cdd
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
@@ -0,0 +1,22 @@
+package com.ruoyi.procurementrecord.dto;
+
+import lombok.Data;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 13:34
+ */
+@Data
+public class ProcurementRecordOutAdd {
+
+ private String quantity;
+
+ private String time;
+
+ private Integer id;
+
+ private Integer userId;
+
+ private Integer salesLedgerProductId;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
new file mode 100644
index 0000000..b0d8cad
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
@@ -0,0 +1,87 @@
+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/8 14:13
+ */
+@Data
+public class ProcurementRecordOutPageDto {
+
+ private Integer id;
+
+ /**
+ * 鍑哄叆搴撴暟閲�
+ */
+ @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/mapper/ProcurementRecordOutMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
new file mode 100644
index 0000000..4a9390b
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.procurementrecord.mapper;
+
+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.ProcurementRecordOutPageDto;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 13:26
+ */
+public interface ProcurementRecordOutMapper extends BaseMapper<ProcurementRecordOut> {
+
+ IPage<ProcurementRecordOutPageDto> listPage(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
+
+ List<ProcurementRecordOutPageDto> list();
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java
index 1c3e04d..562e1fe 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecord.java
@@ -34,21 +34,26 @@
private String inboundBatches;
/**
- * 鍑哄叆搴撴暟閲�
+ * 鍏ュ簱鏁伴噺
*/
private BigDecimal inboundNum;
/**
- * 鍑哄叆搴撴椂闂�
+ * 鍏ュ簱鏃堕棿
*/
private LocalDateTime createDate;
/**
- * 鍑哄叆搴撶敤鎴�
+ * 鍏ュ簱鐢ㄦ埛
*/
private String createBy;
/**
+ * 鍏ュ簱鐢ㄦ埛id
+ */
+ private Long userId;
+
+ /**
* 绉熸埛ID
*/
private Long tenantId;
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
new file mode 100644
index 0000000..e4761a2
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
@@ -0,0 +1,66 @@
+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/8 13:24
+ */
+@TableName("procurement_record_out")
+@Data
+@Builder
+public class ProcurementRecordOut {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 浜у搧淇℃伅琛╥d
+ */
+ private Integer salesLedgerProductId;
+
+ /**
+ * 鍏ュ簱id
+ */
+ private Integer procurementRecordStorageId;
+
+ /**
+ * 鍑哄簱鎵规
+ */
+ private String inboundBatches;
+
+ /**
+ * 鍑哄嚭搴撴暟閲�
+ */
+ private BigDecimal inboundNum;
+
+ /**
+ * 鍑哄嚭搴撴椂闂�
+ */
+ private LocalDateTime createDate;
+
+ /**
+ * 鍑哄嚭搴撶敤鎴�
+ */
+ private String createBy;
+
+ /**
+ * 鍑哄嚭搴撶敤鎴穒d
+ */
+ private Integer userId;
+
+ /**
+ * 绉熸埛ID
+ */
+ private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
new file mode 100644
index 0000000..785efc4
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.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.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 13:28
+ */
+public interface ProcurementRecordOutService extends IService<ProcurementRecordOut> {
+
+ int stockout(ProcurementRecordOutAdd procurementRecordOutAdd);
+
+ IPage<ProcurementRecordOutPageDto> listPage(Page page, ProcurementRecordOutPageDto procurementDto);
+
+ int deletePro(ProcurementUpdateDto procurementDto);
+
+ void export(HttpServletResponse response);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
new file mode 100644
index 0000000..078d8f9
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -0,0 +1,92 @@
+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.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecord;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author :yys
+ * @date : 2025/7/8 13:29
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class ProcurementRecordOutServiceImpl extends ServiceImpl<ProcurementRecordOutMapper, ProcurementRecordOut> implements ProcurementRecordOutService {
+
+ public final ProcurementRecordOutMapper procurementRecordOutMapper;
+
+ public final SysUserMapper sysUserMapper;
+
+ @Override
+ public int stockout(ProcurementRecordOutAdd procurementRecordOutAdd) {
+ SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(procurementRecordOutAdd.getUserId().toString()));
+ if(sysUser == null){
+ throw new RuntimeException("鍑哄簱浜轰笉瀛樺湪");
+ }
+ // 鏌ヨ閲囪喘鍑哄簱鏁伴噺
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getProcurementRecordStorageId, procurementRecordOutAdd.getId());
+ Long aLong = procurementRecordOutMapper.selectCount(procurementRecordLambdaQueryWrapper);
+ ProcurementRecordOut.ProcurementRecordOutBuilder procurementRecordOut = ProcurementRecordOut.builder()
+ .procurementRecordStorageId(procurementRecordOutAdd.getId())
+ .salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId())
+ .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+ .inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity()))
+ .createDate(LocalDateTime.now())
+ .userId(procurementRecordOutAdd.getUserId())
+ .createBy(sysUser.getNickName())
+ .tenantId(sysUser.getTenantId());
+ this.save(procurementRecordOut.build());
+ return 0;
+ }
+
+ @Override
+ public IPage<ProcurementRecordOutPageDto> listPage(Page page, ProcurementRecordOutPageDto procurementDto) {
+ return procurementRecordOutMapper.listPage(page, procurementDto);
+ }
+
+ public List<ProcurementRecordOut> getProcurementRecordOutByIds(List<Integer> id) {
+ return procurementRecordOutMapper.selectBatchIds(id);
+ }
+
+ @Override
+ public int deletePro(ProcurementUpdateDto procurementDto) {
+ List<ProcurementRecordOut> procurementRecordOutByIds = getProcurementRecordOutByIds(procurementDto.getIds());
+ if(CollectionUtils.isEmpty(procurementRecordOutByIds)){
+ throw new RuntimeException("鏈煡璇㈠埌閫変腑鐨勪汉");
+ }
+ procurementRecordOutMapper.deleteBatchIds(procurementRecordOutByIds.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList()));
+ return 0;
+ }
+
+ @Override
+ public void export(HttpServletResponse response) {
+ List<ProcurementRecordOutPageDto> list =procurementRecordOutMapper.list();
+ ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
+ util.exportExcel(response, list, "鍑哄簱鍙拌处");
+ }
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 6abb7cf..5590a6c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -9,7 +9,9 @@
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.procurementrecord.dto.*;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
import com.ruoyi.procurementrecord.pojo.ProcurementRecord;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -35,6 +37,8 @@
public class ProcurementRecordServiceImpl extends ServiceImpl<ProcurementRecordMapper, ProcurementRecord> implements ProcurementRecordService {
private final ProcurementRecordMapper procurementRecordMapper;
+
+ private final ProcurementRecordOutMapper procurementRecordOutMapper;
private final SalesLedgerProductMapper salesLedgerProductMapper;
@@ -103,6 +107,13 @@
public int deletePro(ProcurementUpdateDto procurementDto) {
List<ProcurementRecord> procurementRecordById = getProcurementRecordByIds(procurementDto.getIds());
procurementRecordMapper.deleteBatchIds(procurementRecordById.stream().map(ProcurementRecord::getId).collect(Collectors.toList()));
+ // 鍒犻櫎鎵�鏈夊搴旂殑鍑哄簱璁板綍
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordOutLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordOutLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, procurementDto.getIds());
+ List<ProcurementRecordOut> procurementRecordOuts = procurementRecordOutMapper.selectList(procurementRecordOutLambdaQueryWrapper);
+ if(!CollectionUtils.isEmpty(procurementRecordOuts)){
+ procurementRecordOutMapper.deleteBatchIds(procurementRecordOuts.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList()));
+ }
return 0;
}
@@ -128,6 +139,7 @@
.inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
.inboundNum(detail.getInboundQuantity())
.createDate(LocalDateTime.now())
+ .userId(loginUser.getUserId())
.tenantId(loginUser.getTenantId())
.createBy(procurementDto.getNickName());
this.save(procurementRecordBuilder.build());
@@ -146,7 +158,41 @@
@Override
public IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto) {
- return procurementRecordMapper.listPage(page,procurementDto);
+ IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPage(page, procurementDto);
+ List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords();
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ List<Integer> collect = procurementPageDtos.stream().map(ProcurementPageDto::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty( collect)){
+ return procurementPageDtoIPage;
+ }
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty( procurementRecords)){
+ return procurementPageDtoIPage;
+ }
+ for (ProcurementPageDto dto : procurementPageDtos) {
+ // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+ List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+ .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+ .collect(Collectors.toList());
+
+ // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+ if(CollectionUtils.isEmpty(collect1)){
+ dto.setInboundNum0(dto.getInboundNum());
+ continue;
+ }
+
+ // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+ BigDecimal totalInboundNum = collect1.stream()
+ .map(ProcurementRecordOut::getInboundNum)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+ // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+ dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+ }
+ return procurementPageDtoIPage;
}
}
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 70c6949..cf76a56 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -32,16 +32,16 @@
t3.purchase_contract_number,
t2.product_category,
t1.id,
+ t1.sales_ledger_product_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.inbound_num as inboundNum0,
t1.create_date,
t1.create_by
from procurement_record_storage t1
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
new file mode 100644
index 0000000..8c35ffc
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -0,0 +1,47 @@
+<?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.ProcurementRecordOutMapper">
+
+ <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t3.supplier_name,
+ t2.product_category,
+ t1.id,
+ t2.specification_model,
+ t2.unit,
+ t2.tax_rate,
+ t2.tax_inclusive_unit_price,
+ t2.tax_inclusive_total_price,
+ t2.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_date,
+ t1.create_by
+ from procurement_record_out 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>
+ <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t3.supplier_name,
+ t2.product_category,
+ t1.id,
+ t2.specification_model,
+ t2.unit,
+ t2.tax_rate,
+ t2.tax_inclusive_unit_price,
+ t2.tax_inclusive_total_price,
+ t2.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_date,
+ t1.create_by
+ from procurement_record_out 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
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3