From 17a7a0c0df3dbc3e6225dddb55f6332deccdb201 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 03 六月 2026 11:38:30 +0800
Subject: [PATCH] 浪潮部署
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 161 ++++++++++++++++++++++++++---------------------------
1 files changed, 79 insertions(+), 82 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 150fc89..c753b0c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -9,13 +9,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
-import com.ruoyi.basic.pojo.Product;
import com.ruoyi.basic.pojo.ProductModel;
-import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.bean.dto.ProductStructureDto;
import com.ruoyi.production.bean.dto.ProductionProductMainDto;
@@ -26,8 +21,7 @@
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.quality.mapper.*;
-import com.ruoyi.quality.pojo.*;
-import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.stock.service.StockInventoryService;
import com.ruoyi.technology.mapper.TechnologyOperationMapper;
import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
@@ -41,15 +35,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -82,6 +68,7 @@
@Override
public IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, ProductionProductMainDto productionProductMainDto) {
+ // 鍒嗛〉鏌ヨ鐢熶骇鎶ュ伐涓昏〃
IPage<ProductionProductMainDto> result = productionProductMainMapper.listPageProductionProductMainDto(page, productionProductMainDto);
fillOperationParamList(result.getRecords());
return result;
@@ -89,20 +76,24 @@
@Override
public IPage<ProductionProductMainDto> pageProductionProductMain(Page page, ProductionProductMainDto productionProductMainDto) {
+ // 鍒嗛〉鏌ヨ鐢熶骇鎶ュ伐涓昏〃
return listPageProductionProductMainDto(page, productionProductMainDto);
}
@Override
public ProductionProductMainDto getProductionProductMainInfo(Long id) {
+ // 鑾峰彇鐢熶骇浜у搧涓昏〃璇︽儏
return listPageProductionProductMainDto(new Page<>(1, 1), new ProductionProductMainDto() {{
setId(id);
}}).getRecords().stream().findFirst().orElse(null);
}
private void fillOperationParamList(List<ProductionProductMainDto> recordList) {
+ // 濉厖宸ュ簭鍙傛暟鍒楄〃
if (recordList == null || recordList.isEmpty()) {
return;
}
+ // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
Set<Long> mainIdSet = recordList.stream()
.map(ProductionProductMainDto::getId)
.filter(Objects::nonNull)
@@ -112,6 +103,7 @@
return;
}
+ // 鏌ヨ骞跺噯澶囦笟鍔℃暟鎹�
List<ProductionOrderRoutingOperationParam> paramList = productionOrderRoutingOperationParamMapper.selectList(
Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
.in(ProductionOrderRoutingOperationParam::getProductionProductMainId, mainIdSet)
@@ -211,6 +203,7 @@
@Override
public Boolean addProductMain(ProductionProductMainDto dto) {
+ // 鏂板鐢熶骇鎶ュ伐涓昏褰�
Long taskId = resolveTaskId(dto);
if (taskId == null) {
throw new ServiceException("璇蜂紶鍏ョ敓浜у伐鍗旾D");
@@ -220,11 +213,13 @@
@Override
public Boolean saveProductionProductMain(ProductionProductMainDto productionProductMainDto) {
+ // 淇濆瓨鐢熶骇鎶ュ伐涓昏褰�
return addProductMain(productionProductMainDto);
}
@Override
public Boolean removeProductMain(Long id) {
+ // 鍒犻櫎鐢熶骇鎶ュ伐涓昏褰�
ProductionProductMain currentMain = productionProductMainMapper.selectById(id);
if (currentMain == null) {
return true;
@@ -233,10 +228,10 @@
}
private Boolean addProductMainByProductionTask(ProductionProductMainDto dto) {
- // 鎶ュ伐浠ヨ鍗曞伐搴忓揩鐓т负鍑嗭紝閬垮厤宸ヨ壓涓绘暟鎹彉鏇村悗褰卞搷鍘嗗彶宸ュ崟鎵ц銆�
+ // 鎸夌敓浜т换鍔℃柊澧炴姤宸ヤ富璁板綍
Long taskId = resolveTaskId(dto);
if (taskId == null) {
- throw new ServiceException("productionOperationTaskId can not be null");
+ throw new ServiceException("鐢熶骇宸ュ崟ID涓嶈兘涓虹┖");
}
SysUser user = userMapper.selectUserById(dto.getUserId());
ProductionOperationTask productionOperationTask = productionOperationTaskMapper.selectById(taskId);
@@ -266,6 +261,7 @@
productionProductMain.setUserName(user == null ? dto.getUserName() : user.getNickName());
productionProductMain.setProductionOperationTaskId(taskId);
productionProductMain.setStatus(0);
+ productionProductMain.setWorkHour(dto.getWorkHour());
productionProductMainMapper.insert(productionProductMain);
syncOperationParamInputValue(dto, routingOperation.getId(), productionProductMain.getId());
@@ -305,45 +301,45 @@
.eq(ProductionOrderRoutingOperation::getProductionOrderId, routingOperation.getProductionOrderId()));
boolean isLastOperation = routingOperation.getDragSort() != null && routingOperation.getDragSort().equals(routingOperationList.size());
if (productQty.compareTo(BigDecimal.ZERO) > 0) {
- if (Boolean.TRUE.equals(routingOperation.getIsQuality())) {
- // 璐ㄦ宸ュ簭鍏堢敓鎴愭楠屽崟锛岄潪璐ㄦ宸ュ簭鐩存帴鍏ュ悎鏍煎搧搴撳瓨銆�
- int inspectType = isLastOperation ? 2 : 1;
- String process = isLastOperation ? null : technologyOperation == null ? null : technologyOperation.getName();
- Product product = productMapper.selectById(productModel.getProductId());
- QualityInspect qualityInspect = new QualityInspect();
- qualityInspect.setProductId(product.getId());
- qualityInspect.setProductName(product.getProductName());
- qualityInspect.setModel(productModel.getModel());
- qualityInspect.setUnit(productModel.getUnit());
- qualityInspect.setQuantity(productQty);
- qualityInspect.setProcess(process);
- qualityInspect.setInspectState(0);
- qualityInspect.setInspectType(inspectType);
- qualityInspect.setProductMainId(productionProductMain.getId());
- qualityInspect.setProductModelId(productModel.getId());
- qualityInspectMapper.insert(qualityInspect);
- List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
- if (!qualityTestStandard.isEmpty()) {
- qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
- qualityInspectMapper.updateById(qualityInspect);
- qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
- .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))
- .forEach(qualityTestStandardParam -> {
- QualityInspectParam param = new QualityInspectParam();
- BeanUtils.copyProperties(qualityTestStandardParam, param);
- param.setId(null);
- param.setInspectId(qualityInspect.getId());
- qualityInspectParamMapper.insert(param);
- });
- }
- } else {
- StockInventoryDto stockInventoryDto = new StockInventoryDto();
- stockInventoryDto.setRecordId(productionProductMain.getId());
- stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
- stockInventoryDto.setQualitity(productQty);
- stockInventoryDto.setProductModelId(productModel.getId());
- stockInventoryService.addStockInRecordOnly(stockInventoryDto);
- }
+// if (Boolean.TRUE.equals(routingOperation.getIsQuality())) {
+// // 璐ㄦ宸ュ簭鍏堢敓鎴愭楠屽崟锛岄潪璐ㄦ宸ュ簭鐩存帴鍏ュ悎鏍煎搧搴撳瓨銆�
+// int inspectType = isLastOperation ? 2 : 1;
+// String process = isLastOperation ? null : technologyOperation == null ? null : technologyOperation.getName();
+// Product product = productMapper.selectById(productModel.getProductId());
+// QualityInspect qualityInspect = new QualityInspect();
+// qualityInspect.setProductId(product.getId());
+// qualityInspect.setProductName(product.getProductName());
+// qualityInspect.setModel(productModel.getModel());
+// qualityInspect.setUnit(productModel.getUnit());
+// qualityInspect.setQuantity(productQty);
+// qualityInspect.setProcess(process);
+// qualityInspect.setInspectState(0);
+// qualityInspect.setInspectType(inspectType);
+// qualityInspect.setProductMainId(productionProductMain.getId());
+// qualityInspect.setProductModelId(productModel.getId());
+// qualityInspectMapper.insert(qualityInspect);
+// List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
+// if (!qualityTestStandard.isEmpty()) {
+// qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
+// qualityInspectMapper.updateById(qualityInspect);
+// qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
+// .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))
+// .forEach(qualityTestStandardParam -> {
+// QualityInspectParam param = new QualityInspectParam();
+// BeanUtils.copyProperties(qualityTestStandardParam, param);
+// param.setId(null);
+// param.setInspectId(qualityInspect.getId());
+// qualityInspectParamMapper.insert(param);
+// });
+// }
+// } else {
+// StockInventoryDto stockInventoryDto = new StockInventoryDto();
+// stockInventoryDto.setRecordId(productionProductMain.getId());
+// stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
+// stockInventoryDto.setQualitity(productQty);
+// stockInventoryDto.setProductModelId(productModel.getId());
+// stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+// }
productionOperationTask.setCompleteQuantity(defaultDecimal(productionOperationTask.getCompleteQuantity()).add(productQty));
if (ObjectUtils.isNull(productionOperationTask.getActualStartTime())) {
@@ -381,8 +377,6 @@
}
ProductionAccount productionAccount = new ProductionAccount();
productionAccount.setProductionProductMainId(productionProductMain.getId());
-// productionAccount.setSalesLedgerId(productionOrder.getSalesLedgerId());
-// productionAccount.setSalesLedgerProductId(productionOrder.getSalesLedgerProductId() == null ? null : productionOrder.getSalesLedgerProductId().longValue());
productionAccount.setSchedulingUserId(user == null ? null : user.getUserId());
productionAccount.setSchedulingUserName(user == null ? dto.getUserName() : user.getNickName());
productionAccount.setFinishedNum(productQty);
@@ -391,10 +385,6 @@
productionAccount.setSchedulingDate(LocalDateTime.now());
productionAccountMapper.insert(productionAccount);
}
-// if (defaultDecimal(dto.getScrapQty()).compareTo(BigDecimal.ZERO) > 0) {
-// stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(),
-// StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId());
-// }
return true;
}
@@ -522,17 +512,19 @@
}
private Boolean removeProductMainByProductionTask(ProductionProductMain productionProductMain) {
- // 鍒犻櫎鎶ュ伐闇�瑕佸悓姝ュ洖婊氳川妫�銆佸簱瀛樸�佸伐鏃舵牳绠楀拰璁㈠崟/宸ュ崟杩涘害銆�
+ // 鎸夌敓浜т换鍔″洖婊氬苟鍒犻櫎鎶ュ伐涓昏褰�
List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(
Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, productionProductMain.getId()));
- if (qualityInspects.size() > 0) {
- 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) {
- throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
- }
- }
+ // 鍙傛暟涓庡墠缃潯浠舵牎楠�
+// if (!qualityInspects.isEmpty()) {
+// List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(
+// Wrappers.<QualityUnqualified>lambdaQuery()
+// // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
+// .in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
+// if (!qualityUnqualifieds.isEmpty() && qualityUnqualifieds.getFirst().getInspectState() == 1) {
+// throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
+// }
+// }
ProductionProductOutput productionProductOutput = productionProductOutputMapper.selectList(
Wrappers.<ProductionProductOutput>lambdaQuery()
.eq(ProductionProductOutput::getProductionProductMainId, productionProductMain.getId()))
@@ -552,6 +544,7 @@
} else {
productionOperationTask.setStatus(3);
}
+ // 鎸佷箙鍖栨垨杈撳嚭澶勭悊缁撴灉
productionOperationTaskMapper.updateById(productionOperationTask);
ProductionOrder productionOrder = productionOrderMapper.selectById(productionOperationTask.getProductionOrderId());
@@ -578,13 +571,13 @@
}
}
- qualityInspectMapper.selectList(new LambdaQueryWrapper<QualityInspect>()
- .eq(QualityInspect::getProductMainId, productionProductMain.getId())).forEach(q -> {
- qualityInspectParamMapper.delete(new LambdaQueryWrapper<QualityInspectParam>()
- .eq(QualityInspectParam::getInspectId, q.getId()));
- qualityInspectMapper.deleteById(q.getId());
- stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
- });
+// qualityInspectMapper.selectList(new LambdaQueryWrapper<QualityInspect>()
+// .eq(QualityInspect::getProductMainId, productionProductMain.getId())).forEach(q -> {
+// qualityInspectParamMapper.delete(new LambdaQueryWrapper<QualityInspectParam>()
+// .eq(QualityInspectParam::getInspectId, q.getId()));
+// qualityInspectMapper.deleteById(q.getId());
+// stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
+// });
productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
.eq(ProductionProductOutput::getProductionProductMainId, productionProductMain.getId()));
productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
@@ -592,14 +585,15 @@
productionOrderRoutingOperationParamMapper.delete(
Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
.eq(ProductionOrderRoutingOperationParam::getProductionProductMainId, productionProductMain.getId()));
- stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
- stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
- stockUtils.deleteStockOutRecord(productionProductMain.getId(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode());
+// stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
+// stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
+// stockUtils.deleteStockOutRecord(productionProductMain.getId(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode());
productionProductMainMapper.deleteById(productionProductMain.getId());
return true;
}
private String generateProductNo() {
+ // 鐢熸垚涓嬩竴涓敓浜т骇鍝佺紪鍙�
String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
QueryWrapper<ProductionProductMain> queryWrapper = new QueryWrapper<>();
queryWrapper.select("MAX(product_no) as maxNo").likeRight("product_no", datePrefix);
@@ -622,10 +616,12 @@
}
private BigDecimal defaultDecimal(BigDecimal value) {
+ // 灏嗙┖鏁伴噺鍏滃簳涓�0锛岄伩鍏嶇┖鎸囬拡寮傚父
return value == null ? BigDecimal.ZERO : value;
}
private Long resolveTaskId(ProductionProductMainDto dto) {
+ // 浠庡叆鍙備腑瑙f瀽鐢熶骇宸ュ崟ID骞舵牎楠�
if (dto == null) {
return null;
}
@@ -634,6 +630,7 @@
@Override
public ArrayList<Long> listMain(List<Long> idList) {
+ // 鏌ヨ涓昏〃ID闆嗗悎
return productionProductMainMapper.listMain(idList);
}
}
--
Gitblit v1.9.3