From cc0635fdc45d9b0e9396f76ed4074bdb1d81f9d3 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 11 十一月 2025 11:07:19 +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/pojo/ProcurementRecordOut.java | 11
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 116 ++++++++++++
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml | 104 +++++++++++
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 66 ++++++
src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java | 29 +++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java | 5
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java | 10
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 13 +
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java | 4
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java | 4
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 55 ++++++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 1
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java | 18 ++
15 files changed, 472 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 8ab1c1a..62fb1d2 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -2,15 +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.*;
@@ -52,6 +55,20 @@
@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")
@@ -127,21 +144,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/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 8e253da..4670aa0 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -50,6 +50,7 @@
/**
* 瀹㈡埛鍚嶇О
*/
+ @Excel(name = "瀹㈡埛鍚嶇О")
private String customerName;
private String salesLedgerProductId;
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..3be8ed5 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;
+
/**
* 鍑哄叆搴撴暟閲�
@@ -52,6 +68,8 @@
private String supplierName;
+
+
/**
* 浜у搧澶х被
*/
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
index bd0f2a2..183d62c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -30,8 +30,12 @@
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
index 0594a58..ab500b7 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/CustomStorage.java
@@ -2,6 +2,7 @@
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;
@@ -25,32 +26,58 @@
// 鍏ュ簱鏃堕棿
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍏ュ簱鏃堕棿")
private Date inboundDate;
+
+ /**
+ * 寰呭嚭搴撴暟閲�
+ */
+ @Excel(name = "寰呭嚭搴撴暟閲�")
+ @TableField(exist = false)
+ private BigDecimal inboundNum0;
+ /**
+ * 鍑哄簱鏁伴噺
+ */
+ @Excel(name = "鍑哄簱鏁伴噺")
+ @TableField(exist = false)
+ private BigDecimal totalInboundNum;
// 鐗╁搧绫诲瀷
+ @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
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
index 45de179..60fc6db 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
@@ -22,7 +22,7 @@
private Integer id;
/**
- * 浜у搧淇℃伅琛╥d
+ * 浜у搧淇℃伅琛╥d锛堣嚜瀹氫箟鍏ュ簱鏃朵负0锛�
*/
private Integer salesLedgerProductId;
@@ -43,12 +43,17 @@
private String inboundBatches;
/**
- * 鍑哄嚭搴撴暟閲�
+ * 鍑哄簱鏁伴噺
*/
private BigDecimal inboundNum;
/**
- * 鍑哄嚭搴撶敤鎴�
+ * 鍑哄簱绫诲瀷 1-閲囪喘 2-閿�鍞� 3-鑷畾涔�
+ */
+ private Integer type;
+
+ /**
+ * 鍑哄簱鐢ㄦ埛
*/
private String createBy;
/**
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 feabbf3..e28e9f0 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -29,11 +29,13 @@
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);
@@ -46,4 +48,8 @@
IPage<ProcurementPageDtoCopy> listPageCopyByProduction(Page page, ProcurementPageDto procurementDto);
IPage<CustomStorage> listPageCopyByCustom(Page page, CustomStorage customStorage);
+
+ AjaxResult updateCustom(CustomStorage customStorage);
+
+ AjaxResult deleteCustom(List<Long> ids);
}
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..8fa2530 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -65,6 +65,7 @@
.salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId())
.inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
.inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity()))
+ .type(procurementRecordOutAdd.getType())
.createTime(LocalDateTime.now())
.createUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
.createBy(sysUser.getNickName())
@@ -95,8 +96,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 3d03087..06ca0e8 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -128,8 +128,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());
@@ -140,6 +145,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);
@@ -199,8 +205,13 @@
}
@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());
@@ -211,6 +222,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);
@@ -238,6 +250,51 @@
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) {
+ List<CustomStorage> list = customStorageMapper.selectList(null);
+ // 璁$畻寰呭叆搴撴暟閲�
+ // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+ 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, "搴撳瓨绠$悊");
}
@@ -423,6 +480,7 @@
}
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;
@@ -464,7 +522,54 @@
customStorageLambdaQueryWrapper.eq(CustomStorage::getInboundDate, customStorage.getInboundDate());
}
}
- return customStorageMapper.selectPage(page, customStorageLambdaQueryWrapper);
+ IPage<CustomStorage> pageList = customStorageMapper.selectPage(page, customStorageLambdaQueryWrapper);
+ 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());
+ continue;
+ }
+
+ // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+ BigDecimal totalInboundNum = collect1.stream()
+ .map(ProcurementRecordOut::getInboundNum)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 鍑哄簱鏁伴噺 = 鎬绘暟閲� - 寰呭嚭搴撴暟閲�
+ dto.setTotalInboundNum(totalInboundNum);
+ // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+ dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+ }
+ 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
@@ -554,6 +659,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;
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 3f059e7..d7799dc 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -84,6 +84,32 @@
from procurement_record_storage 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 t1.type = 1
+ </select>
+ <select id="listOne" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
+ select
+ t3.customer_contract_no,
+ t3.sales_contract_no,
+ t3.customer_name,
+ 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_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_storage t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join sales_ledger t3 on t3.id = t2.sales_ledger_id
+ where t1.type = 2
</select>
<select id="listPageCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
select
@@ -162,6 +188,35 @@
from procurement_record_storage 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 t1.type = 1
+ </select>
+ <select id="listCopyOne" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
+ select
+ t3.customer_contract_no,
+ t3.sales_contract_no,
+ t3.customer_name,
+ t2.product_category,
+ t1.id,
+ t1.sales_ledger_product_id,
+ t1.create_user,
+ 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_batches,
+ t1.inbound_num,
+ t1.inbound_num as inboundNum0,
+ t1.create_time,
+ t1.update_time,
+ t1.create_time as cTime,
+ t1.update_time as uTime,
+ t1.create_by
+ from procurement_record_storage t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join sales_ledger t3 on t3.id = t2.sales_ledger_id
+ where t1.type = 2
</select>
<select id="listPageByProduction" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
select
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
index ec91c53..f335353 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -19,10 +19,10 @@
t1.create_by,
t2.warn_num
from procurement_record_out t1
- left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 2
left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
<where>
- 1 = 1
+ and t1.type = 1
<if test="req.supplierName != null and req.supplierName != ''">
and t3.supplier_name like concat('%',#{req.supplierName},'%')
</if>
@@ -49,5 +49,105 @@
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 t1.type = 1
+ </select>
+
+ <select id="listOne" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t3.customer_contract_no,
+ t3.sales_contract_no,
+ t3.customer_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_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_out t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join sales_ledger t3 on t3.id = t2.sales_ledger_id
+ where t1.type = 2
+ </select>
+
+ <select id="listTwo" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t1.supplier_name,
+ t1.product_category,
+ t1.id,
+ t1.specification_model,
+ t1.unit,
+ t1.tax_rate,
+ t1.tax_inclusive_unit_price,
+ t1.tax_inclusive_total_price,
+ t1.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_out t1
+ where t1.type = 3
+ </select>
+ <select id="listPageByProduct" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t3.customer_contract_no,
+ t3.sales_contract_no,
+ t3.customer_name,
+ t2.product_category,
+ t1.id,
+ t1.code,
+ 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_time,
+ t1.create_by
+ from procurement_record_out t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1
+ left join sales_ledger t3 on t3.id = t2.sales_ledger_id
+ <where>
+ and t1.type = 2
+ <if test="req.customerName != null and req.customerName != ''">
+ and t3.customer_name like concat('%',#{req.customerName},'%')
+ </if>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ and t1.create_time like concat('%',#{req.timeStr},'%')
+ </if>
+ </where>
+ </select>
+ <select id="listPageByCustom" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t2.supplier_name,
+ t2.product_category,
+ t1.id,
+ t1.code,
+ 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_time,
+ t1.create_by
+ from procurement_record_out t1
+ left join custom_storage t2 on t2.id = t1.procurement_record_storage_id
+ <where>
+ t1.type = 3
+ <if test="req.supplierName != null and req.supplierName != ''">
+ and t2.supplier_name like concat('%',#{req.supplierName},'%')
+ </if>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ and t1.create_time like concat('%',#{req.timeStr},'%')
+ </if>
+ </where>
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3