From 749418cd02075520e7c2e8afc7a8450db78c82f8 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 19 十二月 2025 14:36:47 +0800
Subject: [PATCH] yys 移动仓储物流
---
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java | 50 ++
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java | 8
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java | 16
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java | 33 +
src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml | 28 +
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java | 18
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 369 ++++++++++++++++++++
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java | 19 +
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 125 ++++++
src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java | 119 +++++++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java | 5
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java | 24 +
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 27 +
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java | 8
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java | 4
src/main/resources/application-dev.yml | 2
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 38 ++
src/main/java/com/ruoyi/procurementrecord/mapper/CustomStorageMapper.java | 16
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java | 7
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java | 36 ++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java | 9
src/main/resources/application.yml | 2
src/main/java/com/ruoyi/procurementrecord/dto/Details.java | 9
23 files changed, 927 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 7fb7b44..ec20ef3 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -2,14 +2,18 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
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.*;
+import com.ruoyi.procurementrecord.mapper.CustomStorageMapper;
+import com.ruoyi.procurementrecord.pojo.CustomStorage;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -30,10 +34,11 @@
@Autowired
private ProcurementRecordService procurementRecordService;
+
@GetMapping("/productlist")
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult list(ProcurementDto procurementDto) {
- List<ProcurementDto> result =procurementRecordService.listProcurementBySalesLedgerId(procurementDto);
+ List<ProcurementDto> result = procurementRecordService.listProcurementBySalesLedgerId(procurementDto);
return AjaxResult.success(result);
}
@@ -41,7 +46,30 @@
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
@Transactional
public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) {
+ procurementDto.setType(1);
+ procurementDto.setTypeName("閲囪喘鍏ュ簱");
return AjaxResult.success(procurementRecordService.add(procurementDto));
+ }
+
+ @PostMapping("/addCustom")
+ @Log(title = "鑷畾涔夊叆搴�-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
+ @Transactional
+ public AjaxResult addCustom(@RequestBody List<CustomStorage> customStorage) {
+ return procurementRecordService.addCustom(customStorage);
+ }
+
+ @PostMapping("/updateCustom")
+ @Log(title = "鑷畾涔夊叆搴�-鍏ュ簱绠$悊-淇敼鍏ュ簱", businessType = BusinessType.UPDATE)
+ @Transactional
+ public AjaxResult updateCustom(@RequestBody CustomStorage customStorage) {
+ return procurementRecordService.updateCustom(customStorage);
+ }
+
+ @Delete("/delteCustom")
+ @Log(title = "鑷畾涔夊叆搴�-鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
+ @Transactional
+ public AjaxResult deleteCustom(@RequestBody List<Long> ids) {
+ return procurementRecordService.deleteCustom(ids);
}
@PostMapping("/update")
@@ -52,10 +80,17 @@
}
@PostMapping("/updateManagement")
- @Log(title = "閲囪喘鍏ュ簱-搴撳瓨鍙拌处-淇敼", businessType = BusinessType.UPDATE)
+ @Log(title = "鎴愬搧鍏ュ簱-搴撳瓨鍙拌处-淇敼", businessType = BusinessType.UPDATE)
@Transactional
public AjaxResult updateManagement(@RequestBody ProcurementManagementUpdateDto procurementDto) {
return AjaxResult.success(procurementRecordService.updateManagement(procurementDto));
+ }
+
+ @PostMapping("/updateManagementByCustom")
+ @Log(title = "鑷畾涔夊叆搴�-搴撳瓨鍙拌处-淇敼", businessType = BusinessType.UPDATE)
+ @Transactional
+ public AjaxResult updateManagementByCustom(@RequestBody ProcurementManagementUpdateDto procurementDto) {
+ return AjaxResult.success(procurementRecordService.updateManagementByCustom(procurementDto));
}
@PostMapping("/del")
@@ -69,16 +104,47 @@
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
@ApiOperation(value = "鍏ュ簱鏌ヨ")
public AjaxResult listPage(Page page, ProcurementPageDto procurementDto) {
- IPage<ProcurementPageDto> result =procurementRecordService.listPage(page, procurementDto);
+ IPage<ProcurementPageDto> result = procurementRecordService.listPage(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
+ @GetMapping("/listPageByProduction")
+ @Log(title = "鐢熶骇鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+ @ApiOperation(value = "鍏ュ簱鏌ヨ")
+ public AjaxResult listPageByProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDto> result = procurementRecordService.listPageByProduction(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
+ @GetMapping("/listPageByCustom")
+ @Log(title = "鑷畾涔夊叆搴�-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+ @ApiOperation(value = "鍏ュ簱鏌ヨ")
+ public AjaxResult listPageByCustom(Page page, CustomStorage customStorage) {
+ IPage<CustomStorage> result = procurementRecordService.listPageByCustom(page, customStorage);
return AjaxResult.success(result);
}
@GetMapping("/listPageCopy")
- @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+ @Log(title = "閲囪喘鍏ュ簱-搴撳瓨绠$悊-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult listPageCopy(Page page, ProcurementPageDto procurementDto) {
- IPage<ProcurementPageDtoCopy> result =procurementRecordService.listPageCopy(page, procurementDto);
+ IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopy(page, procurementDto);
return AjaxResult.success(result);
}
+
+ @GetMapping("/listPageCopyByProduction")
+ @Log(title = "鐢熶骇鍏ュ簱-搴撳瓨绠$悊-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPageCopyByProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
+ @GetMapping("/listPageCopyByCustom")
+ @Log(title = "鑷畾涔夊叆搴�-搴撳瓨绠$悊-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPageCopyByCustom(Page page, CustomStorage customStorage) {
+ IPage<CustomStorage> result = procurementRecordService.listPageCopyByCustom(page, customStorage);
+ return AjaxResult.success(result);
+ }
+
@GetMapping("/getReportList")
@Log(title = "搴撳瓨鎶ヨ〃鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult getReportList(Page page, ProcurementPageDto procurementDto) {
@@ -86,21 +152,62 @@
}
/**
- * 瀵煎嚭
+ * 搴撳瓨绠$悊閲囪喘瀵煎嚭
* @param response
*/
@PostMapping("/exportCopy")
public void exportCopy(HttpServletResponse response) {
- procurementRecordService.exportCopy(response);
+ procurementRecordService.exportCopy(response,1);
}
/**
- * 瀵煎嚭
+ * 搴撳瓨绠$悊鐢熶骇瀵煎嚭
+ * @param response
+ */
+ @PostMapping("/exportCopyOne")
+ public void exportCopyOne(HttpServletResponse response) {
+ procurementRecordService.exportCopy(response,2);
+ }
+
+ /**
+ * 搴撳瓨绠$悊鑷畾涔夊鍑�
+ * @param response
+ */
+ @PostMapping("/exportCopyTwo")
+ public void exportCopyTwo(HttpServletResponse response) {
+ procurementRecordService.exportCopyTwo(response,3);
+ }
+
+ /**
+ * 鍏ュ簱锛屽嚭搴撶鐞嗛噰璐鍑�
* @param response
*/
@PostMapping("/export")
public void export(HttpServletResponse response) {
- procurementRecordService.export(response);
+ procurementRecordService.export(response,1);
+ }
+
+ /**
+ * 鍏ュ簱锛屽嚭搴撶鐞嗙敓浜у鍑�
+ * @param response
+ */
+ @PostMapping("/exportOne")
+ public void exportOne(HttpServletResponse response) {
+ procurementRecordService.export(response,2);
+ }
+
+ @Autowired
+ private CustomStorageMapper customStorageMapper;
+
+ /**
+ * 鍏ュ簱锛屽嚭搴撶鐞嗚嚜瀹氫箟瀵煎嚭
+ * @param response
+ */
+ @PostMapping("/exportTwo")
+ public void exportTwo(HttpServletResponse response) {
+ List<CustomStorage> customStorages = customStorageMapper.selectList(null);
+ ExcelUtil<CustomStorage> util = new ExcelUtil<CustomStorage>(CustomStorage.class);
+ util.exportExcel(response, customStorages, "鍏ュ簱鍙拌处");
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
index 1a656be..5245149 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
@@ -10,12 +11,14 @@
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.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;
+import java.util.List;
/**
* @author :yys
@@ -30,26 +33,40 @@
private ProcurementRecordOutService procurementRecordOutService;
@PostMapping("/stockout")
- @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱", businessType = BusinessType.INSERT)
+ @Log(title = "閲囪喘鍑哄簱-鍑哄簱绠$悊-鍑哄簱", businessType = BusinessType.INSERT)
public AjaxResult stockout(@RequestBody ProcurementRecordOutAdd procurementRecordOutAdd) {
return AjaxResult.success(procurementRecordOutService.stockout(procurementRecordOutAdd));
}
@GetMapping("/listPage")
- @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
+ @Log(title = "閲囪喘鍑哄簱-鍑哄簱鍙拌处-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult listPage(Page page, ProcurementRecordOutPageDto procurementDto) {
IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPage(page, procurementDto);
return AjaxResult.success(result);
}
+ @GetMapping("/listPageByProduct")
+ @Log(title = "鐢熶骇鍑哄簱-鍑哄簱鍙拌处-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPageByProduct(Page page, ProcurementRecordOutPageDto procurementDto) {
+ IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPageByProduct(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
+ @GetMapping("/listPageByCustom")
+ @Log(title = "鑷畾涔夊嚭搴�-鍑哄簱鍙拌处-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto) {
+ IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPageByCustom(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
@PostMapping("/del")
- @Log(title = "閲囪喘鍏ュ簱-鍑哄簱绠$悊-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE)
+ @Log(title = "閲囪喘鍑哄簱-鍑哄簱鍙拌处-鍒犻櫎鍑哄簱", businessType = BusinessType.DELETE)
public AjaxResult deletePro(@RequestBody ProcurementUpdateDto procurementDto) {
return AjaxResult.success(procurementRecordOutService.deletePro(procurementDto));
}
/**
- * 瀵煎嚭
+ * 閲囪喘鍑哄簱瀵煎嚭
* @param response
*/
@PostMapping("/export")
@@ -57,4 +74,29 @@
procurementRecordOutService.export(response);
}
+
+ @Autowired
+ public ProcurementRecordOutMapper procurementRecordOutMapper;
+ /**
+ * 鐢熶骇鍑哄簱瀵煎嚭
+ * @param response
+ */
+ @PostMapping("/exportOne")
+ public void exportOne(HttpServletResponse response) {
+ List<ProcurementRecordOutPageDto> list = procurementRecordOutMapper.listOne();
+ ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
+ util.exportExcel(response, list, "鐢熶骇鍑哄簱鍙拌处");
+ }
+
+ /**
+ * 鑷畾涔夊嚭搴撳鍑�
+ * @param response
+ */
+ @PostMapping("/exportTwo")
+ public void exportTwo(HttpServletResponse response) {
+ List<ProcurementRecordOutPageDto> list = procurementRecordOutMapper.listTwo();
+ ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
+ util.exportExcel(response, list, "鐢熶骇鍑哄簱鍙拌处");
+ }
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
index b2e5a21..2257765 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -10,7 +10,10 @@
*/
@Data
public class Details {
- private Integer id;
- private BigDecimal inboundQuantity;
- private BigDecimal warnNum;
+ private Integer id; // 浜у搧id
+ private BigDecimal inboundQuantity; // 鍏ュ簱鏁伴噺
+ private BigDecimal warnNum; // 棰勮鏁伴噺锛堥噰璐叆搴撴墠鏈夛級
+ //鍗曚环
+ private BigDecimal unitPrice;
+ private BigDecimal totalPrice;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
index 73d9895..d3f35a1 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -15,4 +15,11 @@
private String nickName;
+ /**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇 3-鑷畾涔�
+ */
+ private Integer type;
+
+ private String typeName;
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java
index 0356de7..ac896a2 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java
@@ -17,6 +17,22 @@
private String createBy;
private BigDecimal minStock;
+
+ /**
+ * 鍗曚环
+ */
+ private BigDecimal unitPrice;
+
+ /**
+ * 鎬讳环
+ */
+ private BigDecimal totalPrice;
+
+ // 鍗曚环
+ private BigDecimal taxInclusiveUnitPrice;
+ // 鎬讳环
+ private BigDecimal taxInclusiveTotalPrice;
+
private Long createUser;
private String createTime;
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 4f3f260..2ac434b 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -22,15 +23,36 @@
private Long createUser;
/**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇
+ */
+ private Integer type;
+
+ /**
* 鍏ュ簱鎵规
*/
@Excel(name = "鍏ュ簱鎵规")
private String inboundBatches;
/**
- * 鍚堝悓鍙�
+ * 閲囪喘鍚堝悓鍙�
*/
private String purchaseContractNumber;
+
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ private String salesContractNo;
+
+ /**
+ * 瀹㈡埛鍚堝悓鍙�
+ */
+ private String customerContractNo;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
private String salesLedgerProductId;
@@ -40,6 +62,20 @@
@Excel(name = "鍏ュ簱鏁伴噺")
private BigDecimal inboundNum;
+ /**
+ * 鍏ュ簱鍗曚环
+ */
+ @ApiModelProperty(value = "鍏ュ簱鍗曚环")
+ @Excel(name = "鍏ュ簱鍗曚环")
+ private BigDecimal unitPrice;
+
+ /**
+ * 鍏ュ簱鎬讳环
+ */
+ @ApiModelProperty(value = "鍏ュ簱鎬讳环")
+ @Excel(name = "鍏ュ簱鎬讳环")
+ private BigDecimal totalPrice;
+
@Excel(name = "棰勮鏁伴噺")
private BigDecimal warnNum;
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
index 9592ad1..b5dcb70 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@@ -32,6 +33,22 @@
*/
private String purchaseContractNumber;
+
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ private String salesContractNo;
+
+ /**
+ * 瀹㈡埛鍚堝悓鍙�
+ */
+ private String customerContractNo;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ private String customerName;
+
private String salesLedgerProductId;
/**
@@ -39,6 +56,20 @@
*/
@Excel(name = "鍏ュ簱鏁伴噺")
private BigDecimal inboundNum;
+
+ /**
+ * 鍏ュ簱鍗曚环
+ */
+ @ApiModelProperty(value = "鍏ュ簱鍗曚环")
+ @Excel(name = "鍏ュ簱鍗曚环")
+ private BigDecimal unitPrice;
+
+ /**
+ * 鍏ュ簱鎬讳环
+ */
+ @ApiModelProperty(value = "鍏ュ簱鎬讳环")
+ @Excel(name = "鍏ュ簱鎬讳环")
+ private BigDecimal totalPrice;
/**
* 寰呭嚭搴撴暟閲�
@@ -49,7 +80,7 @@
* 鍑哄簱鏁伴噺
*/
@Excel(name = "鍑哄簱鏁伴噺")
- private BigDecimal totalInboundNum;
+ private BigDecimal totalInboundNum = BigDecimal.ZERO;
/**
* 鏈�浣庡簱瀛樻暟閲�
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
index 6c76cdd..9124e75 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
@@ -19,4 +19,9 @@
private Integer salesLedgerProductId;
+ /**
+ * 鍑哄簱绫诲瀷 1-閲囪喘鍑哄簱 2-閿�鍞嚭搴� 3-鑷畾涔�
+ */
+ private Integer type;
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
index 55ceb9c..173893a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
@@ -20,6 +20,22 @@
private Integer id;
private BigDecimal warnNum;
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ private String salesContractNo;
+
+ /**
+ * 瀹㈡埛鍚堝悓鍙�
+ */
+ private String customerContractNo;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
+
/**
* 鍑哄叆搴撴暟閲�
@@ -28,10 +44,22 @@
private BigDecimal inboundNum;
/**
+ * 鍗曚环
+ */
+ @Excel(name = "鍗曚环")
+ private BigDecimal unitPrice;
+
+ /**
+ * 鎬讳环
+ */
+ @Excel(name = "鎬讳环")
+ private BigDecimal totalPrice;
+
+ /**
* 鍑哄叆搴撴椂闂�
*/
// @Excel(name = "鍑哄簱鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDateTime createTime;
private String timeStr;
@@ -50,6 +78,8 @@
*/
@Excel(name = "渚涘簲鍟嗗悕绉�")
private String supplierName;
+
+
/**
@@ -94,4 +124,8 @@
@Excel(name = "涓嶅惈绋庢�讳环")
private BigDecimal taxExclusiveTotalPrice;
+ /**
+ * 鐗╁搧绫诲瀷
+ */
+ private String itemType;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
index 82e02f1..1a51301 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
@@ -18,6 +18,15 @@
private BigDecimal quantityStock;
+ private BigDecimal unitPrice;
+
+ private BigDecimal totalPrice;
+
private List<Integer> ids;
+ /**
+ * 鍑哄簱绫诲瀷 1-閲囪喘 2-閿�鍞� 3-鑷畾涔�
+ */
+ private Integer type;
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/CustomStorageMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/CustomStorageMapper.java
new file mode 100644
index 0000000..1b4b703
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/CustomStorageMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.procurementrecord.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.pojo.CustomStorage;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author :yys
+ * @date : 2025/11/10 13:11
+ */
+public interface CustomStorageMapper extends BaseMapper<CustomStorage> {
+ IPage<CustomStorage> listPageCopyByCustom(Page page,@Param("req") CustomStorage customStorageLambdaQueryWrapper);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
index 1336f39..183d62c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -30,5 +30,13 @@
List<ProcurementPageDtoCopy> listCopy();
+ List<ProcurementPageDtoCopy> listCopyOne();
+
List<ProcurementPageDto> list();
+
+ List<ProcurementPageDto> listOne();
+
+ IPage<ProcurementPageDto> listPageByProduction(Page page, @Param("req") ProcurementPageDto procurementDto);
+
+ IPage<ProcurementPageDtoCopy> listPageCopyByProduction(Page page, @Param("req") ProcurementPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
index 4a9390b..6cd9dab 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
@@ -18,4 +18,12 @@
IPage<ProcurementRecordOutPageDto> listPage(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
List<ProcurementRecordOutPageDto> list();
+
+ List<ProcurementRecordOutPageDto> listOne();
+
+ List<ProcurementRecordOutPageDto> listTwo();
+
+ IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
+
+ IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java
new file mode 100644
index 0000000..c9930a2
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java
@@ -0,0 +1,119 @@
+package com.ruoyi.procurementrecord.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author :yys
+ * @date : 2025/11/10 11:51
+ */
+@TableName("custom_storage")
+@Data
+public class CustomStorage {
+
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ // 鍏ュ簱鏃堕棿
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍏ュ簱鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date inboundDate;
+
+ @TableField(exist = false)
+ private String timeStr;
+
+ /**
+ * 寰呭嚭搴撴暟閲�
+ */
+ @Excel(name = "寰呭嚭搴撴暟閲�")
+ @TableField(exist = false)
+ private BigDecimal inboundNum0;
+ /**
+ * 鍑哄簱鏁伴噺
+ */
+ @Excel(name = "鍑哄簱鏁伴噺")
+ @TableField(exist = false)
+ private BigDecimal totalInboundNum = BigDecimal.ZERO;
+ // 鐗╁搧绫诲瀷
+ @Excel(name = "鐗╁搧绫诲瀷")
+ private String itemType;
+ // 鍏ュ簱鎵规
+ @Excel(name = "鍏ュ簱鎵规")
+ private String inboundBatches;
+ // 鍏ュ簱鏁伴噺
+ @Excel(name = "鍏ュ簱鏁伴噺")
+ private BigDecimal inboundNum;
+ // 渚涘簲鍟嗗悕绉�
+ @Excel(name = "渚涘簲鍟嗗悕绉�")
+ private String supplierName;
+ // 浜у搧澶х被
+ @Excel(name = "浜у搧澶х被")
+ private String productCategory;
+ // 瑙勬牸鍨嬪彿
+ @Excel(name = "瑙勬牸鍨嬪彿")
+ private String specificationModel;
+ // 鍗曚綅
+ @Excel(name = "鍗曚綅")
+ private String unit;
+ // 鍚◣鍗曚环
+ @Excel(name = "鍚◣鍗曚环")
+ private BigDecimal taxInclusiveUnitPrice;
+ // 鍚◣鎬讳环
+ @Excel(name = "鍚◣鎬讳环")
+ private BigDecimal taxInclusiveTotalPrice;
+ // 绋庣巼(%)
+ @Excel(name = "绋庣巼(%)")
+ private BigDecimal taxRate;
+ // 涓嶅惈绋庢�讳环
+ @Excel(name = "涓嶅惈绋庢�讳环")
+ private BigDecimal taxExclusiveTotalPrice;
+ /**
+ * 鍏ュ簱鐢ㄦ埛
+ */
+ @Excel(name = "鍏ュ簱鐢ㄦ埛")
+ private String createBy;
+ /**
+ * 鍏ュ簱鐢ㄦ埛id
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ /**
+ * 鍏ュ簱鏃堕棿
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鑰�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 绉熸埛ID
+ */
+ @TableField(fill = FieldFill.INSERT)
+ 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
index b09b0f3..7f1cde6 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
@@ -1,6 +1,8 @@
package com.ruoyi.procurementrecord.pojo;
import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
@@ -22,7 +24,7 @@
private Integer id;
/**
- * 浜у搧淇℃伅琛╥d
+ * 浜у搧淇℃伅琛╥d锛堣嚜瀹氫箟鍏ュ簱鏃朵负0锛�
*/
private Integer salesLedgerProductId;
@@ -43,32 +45,42 @@
private String inboundBatches;
/**
- * 鍑哄嚭搴撴暟閲�
+ * 鍑哄簱鏁伴噺
*/
private BigDecimal inboundNum;
+
/**
- * 鍑哄嚭搴撶敤鎴�
+ * 鍑哄簱绫诲瀷 1-閲囪喘 2-閿�鍞� 3-鑷畾涔�
+ */
+ private Integer type;
+
+ /**
+ * 鍑哄簱鐢ㄦ埛
*/
private String createBy;
/**
* 鍏ュ簱鐢ㄦ埛id
*/
+ @TableField(fill = FieldFill.INSERT)
private Long createUser;
/**
* 鍏ュ簱鏃堕棿
*/
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 淇敼鑰�
*/
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
/**
* 淇敼鏃堕棿
*/
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
/**
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
index 28cee3c..5240715 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
@@ -37,9 +37,24 @@
private BigDecimal inboundNum;
/**
+ * 鍗曚环
+ */
+ private BigDecimal unitPrice;
+
+ /**
+ * 鎬讳环
+ */
+ private BigDecimal totalPrice;
+
+ /**
* 棰勮鏁伴噺
*/
private BigDecimal warnNum;
+
+ /**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘鍏ュ簱 2-鐢熶骇鍏ュ簱
+ */
+ private Integer type;
// /**
// * 鏈�浣庡簱瀛樻暟閲�
// */
@@ -54,21 +69,25 @@
/**
* 鍏ュ簱鐢ㄦ埛id
*/
+ @TableField(fill = FieldFill.INSERT)
private Long createUser;
/**
* 鍏ュ簱鏃堕棿
*/
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 淇敼鑰�
*/
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
/**
* 淇敼鏃堕棿
*/
+ @TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
/**
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
index 785efc4..a8fb7eb 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
@@ -23,4 +23,8 @@
int deletePro(ProcurementUpdateDto procurementDto);
void export(HttpServletResponse response);
+
+ IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page, ProcurementRecordOutPageDto procurementDto);
+
+ IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
index 79603ae..56e9bc7 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -3,7 +3,9 @@
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.procurementrecord.dto.*;
+import com.ruoyi.procurementrecord.pojo.CustomStorage;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import javax.servlet.http.HttpServletResponse;
@@ -27,11 +29,29 @@
int deletePro(ProcurementUpdateDto procurementDto);
- void export(HttpServletResponse response);
+ void export(HttpServletResponse response,Integer type);
int updateManagement(ProcurementManagementUpdateDto procurementDto);
- void exportCopy(HttpServletResponse response);
+ void exportCopy(HttpServletResponse response,Integer type);
+
+ void exportCopyTwo(HttpServletResponse response,Integer type);
Map<String, Object> getReportList(Page page, ProcurementPageDto procurementDto);
+
+ IPage<ProcurementPageDto> listPageByProduction(Page page, ProcurementPageDto procurementDto);
+
+ AjaxResult addCustom(List<CustomStorage> customStorage);
+
+ IPage<CustomStorage> listPageByCustom(Page page, CustomStorage customStorage);
+
+ IPage<ProcurementPageDtoCopy> listPageCopyByProduction(Page page, ProcurementPageDto procurementDto);
+
+ IPage<CustomStorage> listPageCopyByCustom(Page page, CustomStorage customStorage);
+
+ AjaxResult updateCustom(CustomStorage customStorage);
+
+ AjaxResult deleteCustom(List<Long> ids);
+
+ int updateManagementByCustom(ProcurementManagementUpdateDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
index 29cba69..0735a39 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -16,6 +16,7 @@
import com.ruoyi.project.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -24,6 +25,7 @@
import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.stream.Collectors;
@@ -54,7 +56,15 @@
procurementRecordOutLambdaQueryWrapper.ge(ProcurementRecordOut::getCreateTime, now) // 澶т簬绛変簬褰撳ぉ
.lt(ProcurementRecordOut::getCreateTime, now.plusDays(1)); // 灏忎簬鏄庡ぉ
Long aLong1 = procurementRecordOutMapper.selectCount(procurementRecordOutLambdaQueryWrapper);
-
+ // 2. 瀹氫箟鏃ユ湡鏍煎紡锛堝繀椤讳笌瀛楃涓叉牸寮忓畬鍏ㄥ尮閰嶏級
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ LocalDateTime localDateTime = null;
+ // 3. 杞崲锛歋tring 鈫� LocalDate 鈫� LocalDateTime锛堣ˉ鍏�0鐐规椂闂达級
+ if(StringUtils.isNotEmpty(procurementRecordOutAdd.getTime())){
+ LocalDate localDate = LocalDate.parse(procurementRecordOutAdd.getTime(), formatter);
+ // 鑾峰彇褰撳墠鏃跺垎绉�
+ LocalTime localTime = LocalTime.now();
+ localDateTime = localDate.atTime(localTime);}
// 鏌ヨ閲囪喘鍑哄簱鏁伴噺
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getProcurementRecordStorageId, procurementRecordOutAdd.getId());
@@ -65,7 +75,8 @@
.salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId())
.inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
.inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity()))
- .createTime(LocalDateTime.now())
+ .type(procurementRecordOutAdd.getType())
+ .createTime(localDateTime == null ? LocalDateTime.now() : localDateTime)
.createUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
.createBy(sysUser.getNickName())
.updateUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
@@ -95,8 +106,18 @@
@Override
public void export(HttpServletResponse response) {
- List<ProcurementRecordOutPageDto> list =procurementRecordOutMapper.list();
+ List<ProcurementRecordOutPageDto> list = procurementRecordOutMapper.list();
ExcelUtil<ProcurementRecordOutPageDto> util = new ExcelUtil<>(ProcurementRecordOutPageDto.class);
util.exportExcel(response, list, "鍑哄簱鍙拌处");
}
+
+ @Override
+ public IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page, ProcurementRecordOutPageDto procurementDto) {
+ return procurementRecordOutMapper.listPageByProduct(page, procurementDto);
+ }
+
+ @Override
+ public IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto) {
+ return procurementRecordOutMapper.listPageByCustom(page, 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
index 1675069..ab73804 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -7,9 +7,12 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.dto.*;
+import com.ruoyi.procurementrecord.mapper.CustomStorageMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import com.ruoyi.procurementrecord.pojo.CustomStorage;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
@@ -21,6 +24,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
@@ -106,6 +110,8 @@
procurementRecordStorageById.setWarnNum(procurementDto.getWarnNum());
procurementRecordStorageById.setUpdateUser(SecurityUtils.getLoginUser().getUserId());
procurementRecordStorageById.setUpdateTime(LocalDateTime.now());
+ procurementRecordStorageById.setUnitPrice(procurementDto.getUnitPrice());
+ procurementRecordStorageById.setTotalPrice(procurementDto.getTotalPrice());
return procurementRecordMapper.updateById(procurementRecordStorageById);
}
@@ -115,7 +121,8 @@
procurementRecordMapper.deleteBatchIds(procurementRecordStorageById.stream().map(ProcurementRecordStorage::getId).collect(Collectors.toList()));
// 鍒犻櫎鎵�鏈夊搴旂殑鍑哄簱璁板綍
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordOutLambdaQueryWrapper = new LambdaQueryWrapper<>();
- procurementRecordOutLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, procurementDto.getIds());
+ procurementRecordOutLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, procurementDto.getIds())
+ .eq(ProcurementRecordOut::getType,procurementDto.getType());
List<ProcurementRecordOut> procurementRecordOuts = procurementRecordOutMapper.selectList(procurementRecordOutLambdaQueryWrapper);
if(!CollectionUtils.isEmpty(procurementRecordOuts)){
procurementRecordOutMapper.deleteBatchIds(procurementRecordOuts.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList()));
@@ -124,8 +131,13 @@
}
@Override
- public void export(HttpServletResponse response) {
- List<ProcurementPageDto> list =procurementRecordMapper.list();
+ public void export(HttpServletResponse response,Integer type) {
+ List<ProcurementPageDto> list = new ArrayList<>();
+ if(type == 1){
+ list = procurementRecordMapper.list();
+ }else{
+ list = procurementRecordMapper.listOne();
+ }
// 璁$畻寰呭叆搴撴暟閲�
// 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
List<Integer> collect = list.stream().map(ProcurementPageDto::getId).collect(Collectors.toList());
@@ -136,6 +148,7 @@
}
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, type);
List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
if(CollectionUtils.isEmpty( procurementRecords)){
ExcelUtil<ProcurementPageDto> util = new ExcelUtil<ProcurementPageDto>(ProcurementPageDto.class);
@@ -182,21 +195,39 @@
if(salesLedgerProduct == null){
throw new RuntimeException("閿�鍞彴璐︿骇鍝佷笉瀛樺湪");
}
+ // 鏍规嵁澶х被锛岃鏍兼煡璇㈡墍鏈変骇鍝乮d
+ LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getProductCategory, salesLedgerProduct.getProductCategory())
+ .eq(SalesLedgerProduct::getSpecificationModel, salesLedgerProduct.getSpecificationModel())
+ .eq(SalesLedgerProduct::getType, 1);
+ List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(salesLedgerProductLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty(salesLedgerProducts)){
+ throw new RuntimeException("娌℃湁鎵惧埌瀵瑰簲鐨勪骇鍝�");
+ }
salesLedgerProduct.setMinStock(procurementDto.getMinStock());
salesLedgerProductMapper.updateById(salesLedgerProduct);
- ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
- procurementRecordStorageById.setCreateBy(sysUser.getNickName());
- procurementRecordStorageById.setCreateUser(sysUser.getUserId());
- procurementRecordStorageById.setUpdateTime(LocalDateTime.parse(entryDateStr,df));
- procurementRecordStorageById.setUpdateUser(loginUser.getUserId());
- procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr,df));
- procurementRecordMapper.updateById(procurementRecordStorageById);
+ LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordStorageLambdaQueryWrapper.in(ProcurementRecordStorage::getSalesLedgerProductId, salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()));
+ ProcurementRecordStorage procurementRecordStorage = ProcurementRecordStorage.builder().build();
+ procurementRecordStorage.setUnitPrice(procurementDto.getUnitPrice());
+ procurementRecordStorage.setTotalPrice(procurementDto.getTotalPrice());
+ procurementRecordStorage.setCreateBy(sysUser.getNickName());
+ procurementRecordStorage.setCreateUser(sysUser.getUserId());
+ procurementRecordStorage.setUpdateTime(LocalDateTime.parse(entryDateStr,df));
+ procurementRecordStorage.setUpdateUser(loginUser.getUserId());
+ procurementRecordStorage.setCreateTime(LocalDateTime.parse(createTimeStr,df));
+ procurementRecordMapper.update(procurementRecordStorage,procurementRecordStorageLambdaQueryWrapper);
return 0;
}
@Override
- public void exportCopy(HttpServletResponse response) {
- List<ProcurementPageDtoCopy> list =procurementRecordMapper.listCopy();
+ public void exportCopy(HttpServletResponse response,Integer type) {
+ List<ProcurementPageDtoCopy> list = new ArrayList<>();
+ if(type == 1){
+ list = procurementRecordMapper.listCopy();
+ }else{
+ list = procurementRecordMapper.listCopyOne();
+ }
// 璁$畻寰呭叆搴撴暟閲�
// 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
List<Integer> collect = list.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
@@ -207,6 +238,7 @@
}
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, type);
List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
if(CollectionUtils.isEmpty( procurementRecords)){
ExcelUtil<ProcurementPageDtoCopy> util = new ExcelUtil<ProcurementPageDtoCopy>(ProcurementPageDtoCopy.class);
@@ -234,6 +266,53 @@
dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
}
ExcelUtil<ProcurementPageDtoCopy> util = new ExcelUtil<ProcurementPageDtoCopy>(ProcurementPageDtoCopy.class);
+ util.exportExcel(response, list, "搴撳瓨绠$悊");
+ }
+
+ @Override
+ public void exportCopyTwo(HttpServletResponse response,Integer type) {
+ LambdaQueryWrapper<CustomStorage> customStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ customStorageLambdaQueryWrapper.groupBy(CustomStorage::getSupplierName, CustomStorage::getProductCategory, CustomStorage::getSpecificationModel);
+ List<CustomStorage> list = customStorageMapper.selectList(customStorageLambdaQueryWrapper);
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ List<Integer> collect = list.stream().map(CustomStorage::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty( collect)){
+ ExcelUtil<CustomStorage> util = new ExcelUtil<CustomStorage>(CustomStorage.class);
+ util.exportExcel(response, list, "搴撳瓨绠$悊");
+ return;
+ }
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, type);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, type);
+ List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty( procurementRecords)){
+ ExcelUtil<CustomStorage> util = new ExcelUtil<CustomStorage>(CustomStorage.class);
+ util.exportExcel(response, list, "搴撳瓨绠$悊");
+ return;
+ }
+ for (CustomStorage dto : list) {
+ // 鏍规嵁閲囪喘鍙拌处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));
+ }
+ ExcelUtil<CustomStorage> util = new ExcelUtil<CustomStorage>(CustomStorage.class);
util.exportExcel(response, list, "搴撳瓨绠$悊");
}
@@ -336,20 +415,271 @@
}
@Override
+ public IPage<ProcurementPageDto> listPageByProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPageByProduction(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)
+ .eq(ProcurementRecordOut::getType,2);
+ 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;
+ }
+
+ private final CustomStorageMapper customStorageMapper;
+
+ @Override
+ public AjaxResult addCustom(List<CustomStorage> customStorage) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if(CollectionUtils.isEmpty(customStorage)){
+ return AjaxResult.error("鏁版嵁涓嶈兘涓虹┖");
+ }
+ customStorage.forEach(item -> {
+ // 鏌ヨ閲囪喘鍏ュ簱鏁伴噺
+ Long aLong = customStorageMapper.selectCount(null);
+ item.setInboundBatches(aLong.equals(0L) ? "绗�1鎵规(鑷畾涔夊叆搴�)" : "绗�"+ (aLong + 1) + "鎵规(鑷畾涔夊叆搴�)" );
+ item.setCreateBy(loginUser.getNickName());
+ customStorageMapper.insert(item);
+ });
+ return AjaxResult.success("鑷畾涔夊叆搴撴垚鍔�");
+ }
+
+ @Override
+ public IPage<CustomStorage> listPageByCustom(Page page, CustomStorage customStorage) {
+ LambdaQueryWrapper<CustomStorage> customStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(customStorage != null){
+ if(!StringUtils.isEmpty(customStorage.getSupplierName())){
+ customStorageLambdaQueryWrapper.like(CustomStorage::getSupplierName, customStorage.getSupplierName());
+ }
+ // 绛涢�夊叆搴撴椂闂�
+ if(customStorage.getTimeStr() != null){
+ customStorageLambdaQueryWrapper.eq(CustomStorage::getInboundDate, customStorage.getTimeStr());
+ }
+ if(!StringUtils.isEmpty(customStorage.getProductCategory())){
+ customStorageLambdaQueryWrapper.like(CustomStorage::getProductCategory, customStorage.getProductCategory());
+ }
+ }
+ customStorageLambdaQueryWrapper.orderByDesc(CustomStorage::getInboundDate);
+ IPage<CustomStorage> procurementPageDtoIPage = customStorageMapper.selectPage(page, customStorageLambdaQueryWrapper);
+ procurementPageDtoIPage.getRecords().forEach(item -> item.setInboundNum0(item.getInboundNum()));
+ List<CustomStorage> procurementPageDtos = procurementPageDtoIPage.getRecords();
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ List<Integer> collect = procurementPageDtos.stream().map(CustomStorage::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty( collect)){
+ return procurementPageDtoIPage;
+ }
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect)
+ .eq(ProcurementRecordOut::getType, 3);
+ List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty( procurementRecords)){
+ return procurementPageDtoIPage;
+ }
+ for (CustomStorage 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;
+ }
+
+ @Override
+ public IPage<ProcurementPageDtoCopy> listPageCopyByProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDtoCopy> procurementPageDtoCopyIPage = procurementRecordMapper.listPageCopyByProduction(page, procurementDto);
+ List<ProcurementPageDtoCopy> procurementPageDtoCopyList = procurementPageDtoCopyIPage.getRecords();
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ List<Integer> collect = procurementPageDtoCopyList.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty( collect)){
+ return procurementPageDtoCopyIPage;
+ }
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, 2);
+ List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty( procurementRecords)){
+ return procurementPageDtoCopyIPage;
+ }
+ for (ProcurementPageDtoCopy dto : procurementPageDtoCopyList) {
+ // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+ List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+ .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+ .collect(Collectors.toList());
+
+ // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+ if(CollectionUtils.isEmpty(collect1)){
+ dto.setInboundNum0(dto.getInboundNum());
+ dto.setTotalInboundNum(BigDecimal.ZERO);
+ continue;
+ }
+
+ // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+ BigDecimal totalInboundNum = collect1.stream()
+ .map(ProcurementRecordOut::getInboundNum)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 鍑哄簱鏁伴噺 = 鎬绘暟閲� - 寰呭嚭搴撴暟閲�
+ dto.setTotalInboundNum(totalInboundNum);
+ // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+ dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+ // 搴撳瓨浠峰��
+ if(dto.getUnitPrice() != null){
+ dto.setTotalPrice(dto.getTotalInboundNum().multiply(dto.getUnitPrice()));
+ }
+ }
+ return procurementPageDtoCopyIPage;
+ }
+
+ @Override
+ public IPage<CustomStorage> listPageCopyByCustom(Page page, CustomStorage customStorage) {
+// LambdaQueryWrapper<CustomStorage> customStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+// customStorageLambdaQueryWrapper.groupBy(CustomStorage::getProductCategory, CustomStorage::getSpecificationModel,CustomStorage::getTaxInclusiveUnitPrice);
+// if(customStorage != null){
+// if(!StringUtils.isEmpty(customStorage.getSupplierName())){
+// customStorageLambdaQueryWrapper.like(CustomStorage::getSupplierName, customStorage.getSupplierName());
+// }
+// // 绛涢�夊叆搴撴椂闂�
+// if(customStorage.getInboundDate() != null){
+// customStorageLambdaQueryWrapper.eq(CustomStorage::getInboundDate, customStorage.getInboundDate());
+// }
+// if(!StringUtils.isEmpty(customStorage.getProductCategory())){
+// customStorageLambdaQueryWrapper.like(CustomStorage::getProductCategory, customStorage.getProductCategory());
+// }
+// }
+// customStorageLambdaQueryWrapper.orderByDesc(CustomStorage::getInboundDate);
+ IPage<CustomStorage> pageList = customStorageMapper.listPageCopyByCustom(page, customStorage);
+
+ List<CustomStorage> procurementPageDtoCopyList = pageList.getRecords();
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ List<Integer> collect = procurementPageDtoCopyList.stream().map(CustomStorage::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty( collect)){
+ return pageList;
+ }
+ LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, 3);
+ List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty( procurementRecords)){
+ return pageList;
+ }
+ for (CustomStorage dto : procurementPageDtoCopyList) {
+ // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+ List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+ .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+ .collect(Collectors.toList());
+
+ // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+ if(CollectionUtils.isEmpty(collect1)){
+ dto.setInboundNum0(dto.getInboundNum());
+ dto.setTotalInboundNum(BigDecimal.ZERO);
+ continue;
+ }
+
+ // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+ BigDecimal totalInboundNum = collect1.stream()
+ .map(ProcurementRecordOut::getInboundNum)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 鍑哄簱鏁伴噺 = 鎬绘暟閲� - 寰呭嚭搴撴暟閲�
+ dto.setTotalInboundNum(totalInboundNum);
+ // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+ dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+ // 搴撳瓨浠峰��
+ if(dto.getTaxInclusiveUnitPrice() != null){
+ dto.setTaxInclusiveTotalPrice(dto.getInboundNum0().multiply(dto.getTaxInclusiveUnitPrice()));
+ }
+ }
+ pageList.setRecords(procurementPageDtoCopyList);
+ return pageList;
+ }
+
+ @Override
+ public AjaxResult updateCustom(CustomStorage customStorage) {
+ return AjaxResult.success(customStorageMapper.updateById(customStorage));
+ }
+
+ @Override
+ public AjaxResult deleteCustom(List<Long> ids) {
+ return AjaxResult.success(customStorageMapper.deleteBatchIds(ids));
+ }
+
+ @Override
+ public int updateManagementByCustom(ProcurementManagementUpdateDto procurementDto) {
+ CustomStorage customStorage = customStorageMapper.selectById(procurementDto.getId());
+ if(customStorage == null){
+ throw new RuntimeException("鏉愭枡搴撳瓨涓嶅瓨鍦�");
+ }
+ LambdaQueryWrapper<CustomStorage> customStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ customStorageLambdaQueryWrapper.eq(CustomStorage::getProductCategory, customStorage.getProductCategory())
+ .eq(CustomStorage::getSpecificationModel, customStorage.getSpecificationModel());
+ CustomStorage one = new CustomStorage();
+ one.setTaxInclusiveUnitPrice(procurementDto.getTaxInclusiveUnitPrice());
+ one.setTaxInclusiveTotalPrice(procurementDto.getTaxInclusiveTotalPrice());
+ return customStorageMapper.update(one,customStorageLambdaQueryWrapper);
+ }
+
+ @Override
public int add(ProcurementAddDto procurementDto) {
LoginUser loginUser = SecurityUtils.getLoginUser();
// 鎵归噺鏂板
for (Details detail : procurementDto.getDetails()) {
// 鏌ヨ閲囪喘鍏ュ簱鏁伴噺
LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
- procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId());
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId())
+ .eq(ProcurementRecordStorage::getType, procurementDto.getType());
Long aLong = procurementRecordMapper.selectCount(procurementRecordLambdaQueryWrapper);
ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
.salesLedgerProductId(detail.getId())
- .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+ .inboundBatches(aLong.equals(0L) ? "绗�1鎵规("+ procurementDto.getTypeName() +")" : "绗�"+ (aLong + 1) + "鎵规(" + procurementDto.getTypeName() + ")" )
.inboundNum(detail.getInboundQuantity())
+ .type(procurementDto.getType())
.warnNum(detail.getWarnNum())
+ .unitPrice(detail.getUnitPrice())
+ .totalPrice(detail.getInboundQuantity().multiply(detail.getUnitPrice()))
.createTime(LocalDateTime.now())
.createUser(loginUser.getUserId())
.updateTime(LocalDateTime.now())
@@ -380,7 +710,8 @@
return procurementPageDtoIPage;
}
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
- procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect)
+ .eq(ProcurementRecordOut::getType, 1);
List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
if(CollectionUtils.isEmpty( procurementRecords)){
return procurementPageDtoIPage;
@@ -420,6 +751,7 @@
}
LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType,1);
List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
if(CollectionUtils.isEmpty( procurementRecords)){
return procurementPageDtoCopyIPage;
@@ -427,12 +759,13 @@
for (ProcurementPageDtoCopy dto : procurementPageDtoCopyList) {
// 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
List<ProcurementRecordOut> collect1 = procurementRecords.stream()
- .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+ .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()) && ProcurementRecordOut.getType().equals(1))
.collect(Collectors.toList());
// 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
if(CollectionUtils.isEmpty(collect1)){
dto.setInboundNum0(dto.getInboundNum());
+ dto.setTotalInboundNum(BigDecimal.ZERO);
continue;
}
@@ -444,6 +777,10 @@
dto.setTotalInboundNum(totalInboundNum);
// 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+ // 搴撳瓨浠峰��
+ if(dto.getUnitPrice() != null){
+ dto.setTotalPrice(dto.getInboundNum0().multiply(dto.getUnitPrice()));
+ }
}
return procurementPageDtoCopyIPage;
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index a0b7864..8283a19 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -62,7 +62,7 @@
druid:
# 涓诲簱鏁版嵁婧�
master:
- url: jdbc:mysql://localhost:3306/product-inventory-management?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://localhost:3306/product-inventory-management-sqd?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 446134b..c79d967 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,4 @@
# Spring閰嶇疆
spring:
profiles:
- active: sqd
+ active: dev
diff --git a/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
new file mode 100644
index 0000000..ba0e289
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
@@ -0,0 +1,28 @@
+<?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.CustomStorageMapper">
+
+ <select id="listPageCopyByCustom" resultType="com.ruoyi.procurementrecord.pojo.CustomStorage">
+ select t1.*,
+ sum(t1.inbound_num) as inboundNum,
+ sum(t1.inbound_num) as inboundNum0,
+ sum(t1.tax_inclusive_total_price) as taxInclusiveTotalPrice,
+ SUM(t1.inbound_num) - COALESCE(SUM(t2.inbound_num), 0) AS availableStock
+ from custom_storage t1
+ left join procurement_record_out t2 on t1.id = t2.procurement_record_storage_id and t2.type = 3
+ <where>
+ <if test="req.productCategory != null and req.productCategory != ''">
+ and t1.product_category like concat('%',#{req.productCategory},'%')
+ </if>
+ <if test="req.supplierName !=null and req.supplierName != ''">
+ and t1.supplier_name like concat('%',#{req.supplierName},'%')
+ </if>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ and t1.inbound_date like concat('%',#{req.timeStr},'%')
+ </if>
+ </where>
+ group by t1.product_category, t1.specification_model, t1.tax_inclusive_unit_price
+ HAVING availableStock > 0
+ order by t1.inbound_date desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3