From 593379b64d440c06887e8fbfa2803c70463dba19 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 30 三月 2026 19:27:57 +0800
Subject: [PATCH] fix: 产品入库的库存返回产品大类、规则型号、单位
---
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 48 insertions(+), 7 deletions(-)
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 1e237f0..15d12ec 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -16,6 +16,7 @@
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -64,18 +65,18 @@
List<ProcurementRecordStorage> collect1 = procurementRecordStorages.stream()
.filter(procurementRecordStorage -> procurementRecordStorage.getSalesLedgerProductId().equals(dto.getId()))
.collect(Collectors.toList());
-
+
// 濡傛灉娌℃湁鐩稿叧鐨勫叆搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
if(CollectionUtils.isEmpty(collect1)){
dto.setQuantity0(dto.getQuantity());
continue;
}
-
+
// 璁$畻宸插叆搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭叆搴撴暟閲�
BigDecimal totalInboundNum = collect1.stream()
.map(ProcurementRecordStorage::getInboundNum)
.reduce(BigDecimal.ZERO, BigDecimal::add);
-
+
// 寰呭叆搴撴暟閲� = 鎬绘暟閲� - 宸插叆搴撴暟閲�
dto.setQuantity0(dto.getQuantity().subtract(totalInboundNum));
}
@@ -102,8 +103,11 @@
public int updatePro(ProcurementUpdateDto procurementDto) {
ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
procurementRecordStorageById.setInboundNum(procurementDto.getQuantityStock());
+ procurementRecordStorageById.setWarnNum(procurementDto.getWarnNum());
procurementRecordStorageById.setUpdateUser(SecurityUtils.getLoginUser().getUserId());
procurementRecordStorageById.setUpdateTime(LocalDateTime.now());
+ procurementRecordStorageById.setOutStockQuantity(procurementDto.getOutStockQuantity());
+ procurementRecordStorageById.setShortageDescription(procurementDto.getShortageDescription());
return procurementRecordMapper.updateById(procurementRecordStorageById);
}
@@ -170,18 +174,26 @@
public int updateManagement(ProcurementManagementUpdateDto procurementDto) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = sysUserMapper.selectUserById(procurementDto.getCreateUser());
- if(sysUser == null){
+ if (sysUser == null) {
throw new RuntimeException("鍏ュ簱浜轰笉瀛樺湪");
}
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String entryDateStr = procurementDto.getEntryDate() + " 00:00:00";
String createTimeStr = procurementDto.getCreateTime() + " 00:00:00";
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(procurementDto.getSalesLedgerProductId());
+ if (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct == null) {
+ throw new RuntimeException("閿�鍞彴璐︿骇鍝佷笉瀛樺湪");
+ }
+ if (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct != null) {
+ 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.setUpdateTime(LocalDateTime.parse(entryDateStr, df));
procurementRecordStorageById.setUpdateUser(loginUser.getUserId());
- procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr,df));
+ procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr, df));
procurementRecordMapper.updateById(procurementRecordStorageById);
return 0;
}
@@ -339,8 +351,12 @@
ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
.salesLedgerProductId(detail.getId())
+ .productModelId(detail.getProductModelId())
.inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
.inboundNum(detail.getInboundQuantity())
+ .warnNum(detail.getWarnNum())
+ .outStockQuantity(detail.getOutStockQuantity())
+ .shortageDescription(detail.getShortageDescription())
.createTime(LocalDateTime.now())
.createUser(loginUser.getUserId())
.updateTime(LocalDateTime.now())
@@ -358,6 +374,30 @@
// salesLedgerProductMapper.updateById(salesLedgerProduct);
}
return 1;
+ }
+
+ @Override
+ public int addProduct(Details detail) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+
+ ProcurementRecordStorage.ProcurementRecordStorageBuilder builder = ProcurementRecordStorage.builder()
+ .id(detail.getId())
+ .inboundBatches("绗�1鎵规")
+ .inboundNum(detail.getInboundQuantity())
+ .warnNum(detail.getWarnNum())
+ .outStockQuantity(detail.getOutStockQuantity())
+ .shortageDescription(detail.getShortageDescription())
+ .productModelId(detail.getProductModelId())
+ .updateTime(LocalDateTime.now())
+ .updateUser(loginUser.getUserId());
+ if (detail.getId() == null) {
+ builder.createTime(LocalDateTime.now())
+ .createUser(loginUser.getUserId())
+ .createBy(loginUser.getNickName());
+ }
+
+ boolean success = this.saveOrUpdate(builder.build());
+ return success ? 1 : 0;
}
@Override
@@ -431,7 +471,8 @@
BigDecimal totalInboundNum = collect1.stream()
.map(ProcurementRecordOut::getInboundNum)
.reduce(BigDecimal.ZERO, BigDecimal::add);
-
+ // 鍑哄簱鏁伴噺 = 鎬绘暟閲� - 寰呭嚭搴撴暟閲�
+ dto.setTotalInboundNum(totalInboundNum);
// 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
}
--
Gitblit v1.9.3