From f01fba235d070d174609f4f66642368b1df1ab03 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 04 六月 2026 15:37:06 +0800
Subject: [PATCH] 销售台账新增后,对应的生产订单生产后,删除销售台账,此生产工单还存在
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 40 ++++++++++++++++++++--------------------
1 files changed, 20 insertions(+), 20 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 96e4a2e..ba4efc4 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -115,7 +115,7 @@
//宸ヨ壓璺嚎涓綋鍓嶅伐搴忓搴旂殑浜у嚭瑙勬牸鍨嬪彿
ProductModel productModel = productModelMapper.selectById(productProcessRouteItem.getProductModelId());
//鏌ヨ璇ョ敓浜ц鍗曞搴旂殑bom
- ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId());
+ ProductProcessRoute productProcessRoute = Optional.ofNullable(productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId())).orElse(new ProductProcessRoute());
/*鏂板鎶ュ伐涓昏〃*/
//鏌ヨ鏈�澶ф姤宸ョ紪鍙�
String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
@@ -177,7 +177,7 @@
productionProductMainMapper.insert(productionProductMain);
/*鏂板鎶ュ伐鎶曞叆琛�*/
- List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
+ List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(Optional.ofNullable(productProcessRoute.getBomId()).orElse(0), productProcess.getId());
if (productStructureDtos.isEmpty()) {
//濡傛灉璇ュ伐搴忔病鏈変骇鍝佺粨鏋勭殑鎶曞叆鍝�,閭h繖涓姇鍏ュ搧鍜屼骇鍑哄搧鏄悓涓�涓�
ProductStructureDto productStructureDto = new ProductStructureDto();
@@ -209,12 +209,18 @@
List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
/*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(productQty));
- if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())) {
- productWorkOrder.setActualStartTime(LocalDate.now());//瀹為檯寮�濮嬫椂闂�
+ // 鏌ヨ璇ュ伐鍗曞搴旂殑鏈�鏃╀笂鏈烘椂闂达紙鎸変笂鏈烘椂闂村崌搴忥紝鍙栫涓�鏉★級
+ List<ProductionMachineRecord> machineRecords = productionMachineRecordMapper.selectList(
+ Wrappers.<ProductionMachineRecord>lambdaQuery()
+ .eq(ProductionMachineRecord::getWorkOrderId, productWorkOrder.getId())
+ .isNotNull(ProductionMachineRecord::getMachineStartTime)
+ .orderByAsc(ProductionMachineRecord::getMachineStartTime)
+ );
+ if (!machineRecords.isEmpty()) {
+ productWorkOrder.setActualStartTime(machineRecords.get(0).getMachineStartTime());
}
- if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) >= 0) {
- productWorkOrder.setActualEndTime(LocalDate.now());//瀹為檯缁撴潫鏃堕棿
- }
+ // 瀹為檯缁撴潫鏃堕棿 = 鎶ュ伐缁撴潫鏃堕棿
+ productWorkOrder.setActualEndTime(now);//瀹為檯缁撴潫鏃堕棿涓烘姤宸ョ粨鏉熸椂闂�
productWorkOrder.setEndProductTime(now);
productWorkOrderMapper.updateById(productWorkOrder);
//鐢熶骇璁㈠崟
@@ -222,7 +228,7 @@
if (ObjectUtils.isNull(productOrder.getStartTime())) {
productOrder.setStartTime(now);//寮�濮嬫椂闂�
}
- if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
+ if (productProcessRouteItem.getDragSort() >= productProcessRouteItems.size() -1 ) {
//濡傛灉鏄渶鍚庝竴閬撳伐搴忔姤宸ヤ箣鍚庣敓浜ц鍗曞畬鎴愭暟閲�+
productOrder.setCompleteQuantity(productOrder.getCompleteQuantity().add(productQty));
if (productOrder.getCompleteQuantity().compareTo(productOrder.getQuantity()) >= 0) {
@@ -337,7 +343,7 @@
//瀵瑰簲鐨勮繃绋嬫鎴栬�呭嚭鍘傛
int inspectType = 1;
String process = productProcess.getName();//宸ュ簭
- if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
+ if (productProcessRouteItem.getDragSort() == (productProcessRouteItems.size()-1)) {
//鏈�鍚庝竴閬撳伐搴忕敓鎴愬嚭鍘傛
inspectType = 2;
process = null;
@@ -371,7 +377,10 @@
}
} else {
//鐩存帴鍏ュ簱
- stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), "-", "-", "-");
+ if (productProcessRouteItem.getDragSort() == (productProcessRouteItems.size()-1)) {
+ //鏈�鍚庝竴閬撳伐搴忔墠浼氬叆搴�
+ stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), "-", "-", "-");
+ }
}
/*娣诲姞鐢熶骇鏍哥畻 鍖哄垎宸ュ簭鏄浠惰繕鏄鏃�*/
@@ -405,13 +414,6 @@
productionMachineRecord.setReportStatus(true);
productionMachineRecordMapper.updateById(productionMachineRecord);
}
- }
- }
-
- //濡傛灉鎶ュ簾鏁伴噺>0,闇�瑕佽繘鍏ユ姤搴熺殑搴撳瓨
- if (ObjectUtils.isNotEmpty(productionProductOutput.getScrapQty())) {
- if (productionProductOutput.getScrapQty().compareTo(BigDecimal.ZERO) > 0) {
- stockUtils.addUnStock(productModel.getId(), productionProductOutput.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId(), "-", "-", "-");
}
}
}
@@ -490,8 +492,6 @@
//鍒犻櫎鎶曞叆璁板綍
productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
.eq(ProductionProductInput::getProductMainId, productionProductMain.getId()));
- //鍒犻櫎鎶ュ簾鐨勫叆搴撹褰�
- stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
//鍒犻櫎涓嶉渶瑕佽川妫�鐨勫悎鏍煎叆搴�
stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
//鍒犻櫎鎶曞叆瀵瑰簲鐨勫嚭搴撹褰�
@@ -505,4 +505,4 @@
public ArrayList<Long> listMain(List<Long> idList) {
return productionProductMainMapper.listMain(idList);
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.3