From 1769107c38d40f7d209a48ab7752fe27a81b9709 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 14 四月 2026 17:48:18 +0800
Subject: [PATCH] fix:1.出库台账(删除出库记录查询结果有误)增加批号和供应商 2.出入库不合格管理加批号和供应商 3.发货以及发货记录(部分发货)
---
src/main/resources/mapper/stock/StockOutRecordMapper.xml | 4 +
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java | 14 ++++++-
src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml | 1
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java | 10 +++-
src/main/resources/mapper/stock/StockUninventoryMapper.xml | 18 ++++++++-
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 19 ++++++++-
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 10 +++-
7 files changed, 62 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 81125ad..2ded4f0 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -6,6 +6,7 @@
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.mapper.StockInventoryMapper;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.pojo.StockOutRecord;
import com.ruoyi.stock.service.StockInRecordService;
@@ -28,6 +29,7 @@
private final StockInventoryService stockInventoryService;
private final StockInRecordService stockInRecordService;
private final StockOutRecordService stockOutRecordService;
+ private final StockInventoryMapper stockInventoryMapper;
/**
* 涓嶅悎鏍煎叆搴�
@@ -36,7 +38,7 @@
* @param recordType
* @param recordId
*/
- public void addUnStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
+ public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
stockUninventoryDto.setRecordId(recordId);
stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -52,7 +54,7 @@
* @param recordType
* @param recordId
*/
- public void subtractUnStock(Long productModelId, BigDecimal quantity, Integer recordType, Long recordId) {
+ public void subtractUnStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
stockUninventoryDto.setRecordId(recordId);
stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -114,8 +116,13 @@
if (ObjectUtils.isNotEmpty(one)) {
stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
}
+ //灏嗗簱瀛樺噺鍥炴潵
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(recordType);
+ stockInventoryDto.setQualitity(one.getStockInNum());
+ stockInventoryMapper.updateSubtractStockInventory((stockInventoryDto));
}
-
public void deleteStockOutRecord(Long recordId, String recordType) {
StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
.lambda().eq(StockOutRecord::getRecordId, recordId)
@@ -123,5 +130,11 @@
if (ObjectUtils.isNotEmpty(one)) {
stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
}
+ //灏嗗簱瀛樺姞鍥炴潵
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(recordType);
+ stockInventoryDto.setQualitity(one.getStockOutNum());
+ stockInventoryMapper.updateAddStockInventory((stockInventoryDto));
}
}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index 30e545f..ce332c3 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -4,8 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.EnumUtil;
import com.ruoyi.common.utils.OrderUtils;
@@ -73,7 +73,9 @@
for (Long id : ids) {
StockInRecord stockInRecord = stockInRecordMapper.selectById(id);
if (stockInRecord.getType().equals("0")) {
- StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockInRecord.getProductModelId()));
+ StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockInRecord.getProductModelId())
+ .eq(StockInventory::getBatchNo, stockInRecord.getBatchNo())
+ .eq(StockInventory::getCustomer, stockInRecord.getCustomer()));
if (stockInventory == null) {
throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
}else {
@@ -83,7 +85,9 @@
stockInventoryMapper.updateSubtractStockInventory(stockInRecordDto);
}
}else if (stockInRecord.getType().equals("1")) {
- StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId()));
+ StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId())
+ .eq(StockUninventory::getBatchNo, stockInRecord.getBatchNo())
+ .eq(StockUninventory::getCustomer, stockInRecord.getCustomer()));
if (stockUninventory == null) {
throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
}else {
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
index e01fe5d..877d22e 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -4,8 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.EnumUtil;
import com.ruoyi.common.utils.OrderUtils;
@@ -76,7 +76,9 @@
for (Long id : ids) {
StockOutRecord stockOutRecord = stockOutRecordMapper.selectById(id);
if (stockOutRecord.getType().equals("0")) {
- StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockOutRecord.getProductModelId()));
+ StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockOutRecord.getProductModelId())
+ .eq(StockInventory::getBatchNo, stockOutRecord.getBatchNo())
+ .eq(StockInventory::getCustomer, stockOutRecord.getCustomer()));
if (stockInventory == null) {
throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
}else {
@@ -86,7 +88,9 @@
stockInventoryMapper.updateAddStockInventory(stockInRecordDto);
}
}else if (stockOutRecord.getType().equals("1")) {
- StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockOutRecord.getProductModelId()));
+ StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockOutRecord.getProductModelId())
+ .eq(StockUninventory::getBatchNo, stockOutRecord.getBatchNo())
+ .eq(StockUninventory::getCustomer, stockOutRecord.getCustomer()));
if (stockUninventory == null) {
throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
}else {
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index 2d5b8f5..14372dc 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -53,17 +53,23 @@
stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+ stockInRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
+ stockInRecordDto.setCustomer(stockUninventoryDto.getCustomer());
stockInRecordDto.setType("1");
stockInRecordService.add(stockInRecordDto);
//鍐嶈繘琛屾柊澧炲簱瀛樻暟閲忓簱瀛�
//鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪锛屼笉瀛樺湪鏂板锛屽瓨鍦ㄦ洿鏂�
- StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
+ StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId())
+ .eq(StockUninventory::getBatchNo, stockUninventoryDto.getBatchNo())
+ .eq(StockUninventory::getCustomer, stockUninventoryDto.getCustomer()));
if (ObjectUtils.isEmpty(oldStockUnInventory)) {
StockUninventory newStockUnInventory = new StockUninventory();
newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
newStockUnInventory.setVersion(1);
newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
+ newStockUnInventory.setBatchNo(stockUninventoryDto.getBatchNo());
+ newStockUnInventory.setCustomer(stockUninventoryDto.getCustomer());
stockUninventoryMapper.insert(newStockUnInventory);
}else {
stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
@@ -81,9 +87,13 @@
stockOutRecordDto.setRecordType(stockUninventoryDto.getRecordType());
stockOutRecordDto.setStockOutNum(stockUninventoryDto.getQualitity());
stockOutRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+ stockOutRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
+ stockOutRecordDto.setCustomer(stockUninventoryDto.getCustomer());
stockOutRecordDto.setType("1");
stockOutRecordService.add(stockOutRecordDto);
- StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
+ StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId())
+ .eq(StockUninventory::getBatchNo, stockUninventoryDto.getBatchNo())
+ .eq(StockUninventory::getCustomer, stockUninventoryDto.getCustomer()));
if (ObjectUtils.isEmpty(oldStockInventory)) {
throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
}else {
diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index d7fdb89..52ca178 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -18,6 +18,7 @@
qu.deal_time,
qu.production_date,
pm.uid_no,
+ pm.batch_no,
CASE
WHEN qu.model = pm.id THEN pm.model
ELSE qu.model
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index 306a298..b436f31 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -24,7 +24,9 @@
pm.model,
pm.unit,
pm.uid_no as uidNo,
- u.nick_name as createBy
+ u.nick_name as createBy,
+ sor.batch_no,
+ sor.customer
FROM stock_out_record as sor
LEFT JOIN product_model as pm on sor.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index b171ae2..11d1819 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -23,6 +23,12 @@
<if test="ew.remark != null and ew.remark !=''">
remark = #{ew.remark},
</if>
+ <if test="ew.batchNo != null and ew.batchNo !=''">
+ batch_no = #{ew.batchNo},
+ </if>
+ <if test="ew.customer != null and ew.customer !=''">
+ customer = #{ew.customer},
+ </if>
update_time = now()
</set>
where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
@@ -38,6 +44,12 @@
</if>
<if test="ew.remark != null and ew.remark !=''">
remark = #{ew.remark},
+ </if>
+ <if test="ew.batchNo != null and ew.batchNo !=''">
+ batch_no = #{ew.batchNo},
+ </if>
+ <if test="ew.customer != null and ew.customer !=''">
+ customer = #{ew.customer},
</if>
update_time = now()
</set>
@@ -55,11 +67,13 @@
(su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
pm.model,
pm.unit,
- p.product_name
+ p.product_name,
+ su.batch_no,
+ su.customer
from stock_uninventory su
left join product_model pm on su.product_model_id = pm.id
left join product p on pm.product_id = p.id
- where 1 = 1
+ where su.qualitity != 0
<if test="ew.productName != null and ew.productName !=''">
and p.product_name like concat('%',#{ew.productName},'%')
</if>
--
Gitblit v1.9.3