From 2683793796366a4b6361baf4a16e5c65c8dce068 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 21 四月 2026 16:05:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 191 ++---------------------------------------------
1 files changed, 11 insertions(+), 180 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 f100c7f..9ec1e06 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -1,189 +1,20 @@
package com.ruoyi.production.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-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.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.utils.bean.BeanUtils;
-import com.ruoyi.production.controller.ProductWorkOrderController;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductionProductMainService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.mapper.QualityInspectParamMapper;
-import com.ruoyi.quality.mapper.QualityTestStandardMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
-import com.ruoyi.quality.pojo.QualityInspectParam;
-import com.ruoyi.quality.pojo.QualityTestStandard;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
+import com.ruoyi.production.pojo.ProductionProductMain;
+import com.ruoyi.production.service.ProductionProductMainService;
+import org.springframework.stereotype.Service;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Map;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Service
-@AllArgsConstructor
public class ProductionProductMainServiceImpl extends ServiceImpl<ProductionProductMainMapper, ProductionProductMain> implements ProductionProductMainService {
- private ProductionProductMainMapper productionProductMainMapper;
-
- private ProductWorkOrderController productWorkOrderController;
-
- private ProductWorkOrderMapper productWorkOrderMapper;
-
- private ProductProcessRouteItemMapper productProcessRouteItemMapper;
-
- private ProductionProductOutputMapper productionProductOutputMapper;
-
- private ProcessRouteItemMapper processRouteItemMapper;
-
- private ProductModelMapper productModelMapper;
-
- private QualityInspectMapper qualityInspectMapper;
-
- private ProductProcessMapper productProcessMapper;
-
- private ProductMapper productMapper;
-
- private QualityTestStandardMapper qualityTestStandardMapper;
-
- private QualityInspectParamMapper qualityInspectParamMapper;
-
-
- @Override
- public IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, ProductionProductMainDto productionProductMainDto) {
- return productionProductMainMapper.listPageProductionProductMainDto(page, productionProductMainDto);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean addProductMain(ProductionProductMainDto dto) {
- if (dto == null) {
- throw new RuntimeException("鍙傛暟涓嶈兘涓虹┖");
- }
-
-// if (dto.isReportWork()) {
-// // 鏇存柊閫昏緫 - 鍙洿鏂版暟閲�
-// QueryWrapper<ProductionProductOutput> outputWrapper = new QueryWrapper<>();
-// outputWrapper.eq("product_main_id", dto.getId());
-//
-// ProductionProductOutput output = productionProductOutputMapper.selectOne(outputWrapper);
-// if (output == null) {
-// throw new RuntimeException("浜у嚭璁板綍涓嶅瓨鍦�");
-// }
-//
-// // 鍙洿鏂版暟閲�
-// if (dto.getQuantity() != null) {
-// output.setQuantity(dto.getQuantity());
-// productionProductOutputMapper.updateById(output);
-// }
-// return true;
-// }
-
- // 鏂板閫昏緫
- ProductionProductMain productionProductMain = new ProductionProductMain();
- ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(dto.getProductProcessRouteItemId());
- if (productProcessRouteItem == null) {
- throw new RuntimeException("宸ヨ壓璺嚎椤逛笉瀛樺湪");
- }
-
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
-
- QueryWrapper<ProductionProductMain> queryWrapper = new QueryWrapper<>();
- queryWrapper.select("MAX(product_no) as maxNo")
- .likeRight("product_no", datePrefix);
-
- List<Map<String, Object>> resultList = productionProductMainMapper.selectMaps(queryWrapper);
-
- int sequenceNumber = 1;
- if (resultList != null && !resultList.isEmpty()) {
- Map<String, Object> result = resultList.get(0);
-
- if (result != null) {
- Object maxNoObj = result.get("maxNo");
- if (maxNoObj != null) {
- String lastNo = maxNoObj.toString();
- System.out.println("lastNo: " + lastNo);
-
- if (lastNo.startsWith(datePrefix)) {
- try {
- String seqStr = lastNo.substring(datePrefix.length());
- sequenceNumber = Integer.parseInt(seqStr) + 1;
- } catch (NumberFormatException e) {
- sequenceNumber = 1;
- }
- }
- }
- }
- }
-
- String productNo = String.format("%s%03d", datePrefix, sequenceNumber);
- productionProductMain.setProductNo(productNo);
- productionProductMain.setUserId(dto.getUserId());
- productionProductMain.setProductProcessRouteItemId(dto.getProductProcessRouteItemId());
- productionProductMain.setWorkOrderId(dto.getWorkOrderId());
- productionProductMain.setStatus(0);
-
- // 娣诲姞鎶ュ伐涓昏〃
- int insert = productionProductMainMapper.insert(productionProductMain);
-
- //鏇存柊宸ュ崟
- if (insert > 0) {
- UpdateWrapper<ProductWorkOrder> wrapper = new UpdateWrapper<>();
- wrapper.set("report_work", true)
- .set("quantity",dto.getQuantity())
- .eq("id", dto.getWorkOrderId());
- productWorkOrderMapper.update(null, wrapper);
- }
- ProductProcess productProcess = productProcessMapper.selectById(productProcessRouteItem.getProcessId());
- ProductModel productModel = productProcessRouteItem.getProductModelId() != null ?
- productModelMapper.selectById(productProcessRouteItem.getProductModelId()) : null;
-
- if (productModel != null) {
- Product product = productMapper.selectById(productModel.getProductId());
- int inspectType = "缁勮".equals(productProcess.getName()) ? 2 : 1;
-
- QualityInspect qualityInspect = new QualityInspect();
- qualityInspect.setProductId(product.getId());
- qualityInspect.setProductName(product.getProductName());
- qualityInspect.setModel(productModel.getModel());
- qualityInspect.setUnit(productModel.getUnit());
- qualityInspect.setQuantity(dto.getQuantity());
- qualityInspect.setProcess(productProcess.getName());
- qualityInspect.setInspectState(0);
- qualityInspect.setInspectType(inspectType);
- qualityInspectMapper.insert(qualityInspect);
-
- qualityTestStandardMapper.selectList(
- new LambdaQueryWrapper<QualityTestStandard>()
- .eq(QualityTestStandard::getProductId, product.getId())
- ).forEach(standard -> {
- QualityInspectParam param = new QualityInspectParam();
- BeanUtils.copyProperties(standard, param);
- param.setId(null);
- param.setInspectId(qualityInspect.getId());
- qualityInspectParamMapper.insert(param);
- });
- }
- // 娣诲姞浜у嚭
- ProductionProductOutput productionProductOutput = new ProductionProductOutput();
- productionProductOutput.setProductMainId(productionProductMain.getId());
- productionProductOutput.setProductModelId(productProcessRouteItem.getProductModelId());
- productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO);
- productionProductOutputMapper.insert(productionProductOutput);
-
- return true;
- }
}
--
Gitblit v1.9.3