From 47cbc59169b787e8a5f9c6969e2a0259c06249ca Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 24 四月 2026 13:31:48 +0800
Subject: [PATCH] feat:库存管理成品/半成品/原材料
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 8b2b427..9327b29 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -223,7 +223,7 @@
order.setDrawMaterials(JSON.toJSONString(existingMaterialList));
productOrderMapper.updateById(order);
}
- }else {
+ } else {
throw new RuntimeException("璇烽鍙栨姇鍏ユ潗鏂�");
}
/*鏂板鎶ュ伐浜у嚭琛�*/
@@ -237,6 +237,8 @@
//鍚堟牸鏁伴噺=鎶ュ伐鏁伴噺
BigDecimal productQty = productionProductOutput.getQuantity();
//鍙湁鍚堟牸鏁伴噺>0鎵嶈兘澧炲姞鐩稿簲鏁版嵁
+ ProductWorkOrder pwo = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
+ String customer = "闀挎不甯傚仴榻块娇绉戝櫒鏉愭湁闄愬叕鍙�";
if (productQty.compareTo(BigDecimal.ZERO) > 0) {
/*鏂板璐ㄦ*/
List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
@@ -249,8 +251,7 @@
inspectType = 2;
process = null;
}
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
- ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
+ ProductOrder productOrder = productOrderMapper.selectById(pwo.getProductOrderId());
if (productOrder == null) {
throw new RuntimeException("鐢熶骇璁㈠崟涓嶅瓨鍦�");
}
@@ -269,6 +270,7 @@
qualityInspect.setProductModelId(productModel.getId());
qualityInspect.setBatchNo(productOrder.getBatchNo());
qualityInspect.setManufacturingTeam(productOrder.getManufacturingTeam());
+ qualityInspect.setProductionDate(pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now());
qualityInspectMapper.insert(qualityInspect);
List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
if (qualityTestStandard.size() > 0) {
@@ -286,9 +288,8 @@
}
} else {
//鐩存帴鍏ュ簱
- String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
stockUtils.addStock(productProcessRouteItem.getProductModelId(), productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty()),
- StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(),order.getBatchNo(),customer,null
+ StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), order.getBatchNo(), customer, pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now()
);
}
/*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
@@ -315,10 +316,8 @@
}
}
productOrderMapper.updateById(productOrder);
- /*娣诲姞鐢熶骇鏍哥畻 鍖哄垎宸ュ簭鏄浠惰繕鏄鏃�*/
- BigDecimal workHours = (productProcess.getType() == 1)
- ? productProcess.getSalaryQuota().multiply(productQty)
- : productProcess.getSalaryQuota();
+ /*娣诲姞鐢熶骇鏍哥畻*/
+ BigDecimal workHours = productProcess.getSalaryQuota();
SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder()
.productMainId(productionProductMain.getId())
@@ -335,7 +334,8 @@
//濡傛灉鎶ュ簾鏁伴噺>0,闇�瑕佽繘鍏ユ姤搴熺殑搴撳瓨
if (ObjectUtils.isNotEmpty(dto.getScrapQty())) {
if (dto.getScrapQty().compareTo(BigDecimal.ZERO) > 0) {
- stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId());
+ stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId(),
+ order.getBatchNo(), customer, pwo.getActualStartTime() != null ? pwo.getActualStartTime() : LocalDate.now());
}
}
return true;
@@ -345,7 +345,7 @@
public Boolean removeProductMain(Long id) {
//鍒ゆ柇璇ユ潯鎶ュ伐鏄惁涓嶅悎鏍煎鐞�,濡傛灉涓嶅悎鏍煎鐞嗕簡锛屽垯涓嶅厑璁稿垹闄�
List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, id));
- if (qualityInspects.size() > 0) {
+ if (!qualityInspects.isEmpty()) {
List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(Wrappers.<QualityUnqualified>lambdaQuery()
.in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState() == 1) {
--
Gitblit v1.9.3