From c389e908ce76d384171edc6b0fef1814cd689e91 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 29 一月 2026 16:08:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java | 156 +++++++++++++++++++++++++++------------------------
1 files changed, 82 insertions(+), 74 deletions(-)
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index 796d798..0e8497a 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -7,21 +7,23 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockUnQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
import com.ruoyi.production.mapper.ProductProcessRouteMapper;
import com.ruoyi.production.mapper.ProductWorkOrderMapper;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductOrderService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
import com.ruoyi.quality.pojo.QualityInspect;
-import com.ruoyi.quality.pojo.QualityTestStandard;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import com.ruoyi.stock.service.StockUninventoryService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -33,8 +35,9 @@
@AllArgsConstructor
@Service
-public class QualityUnqualifiedServiceImpl extends ServiceImpl<QualityUnqualifiedMapper, QualityUnqualified> implements IQualityUnqualifiedService {
+public class QualityUnqualifiedServiceImpl extends ServiceImpl<QualityUnqualifiedMapper, QualityUnqualified> implements IQualityUnqualifiedService {
+ private final StockUtils stockUtils;
private QualityUnqualifiedMapper qualityUnqualifiedMapper;
private IQualityInspectService qualityInspectService;
private ProductOrderService productOrderService;
@@ -42,16 +45,16 @@
private ProductProcessRouteMapper productProcessRouteMapper;
private ProductProcessRouteItemMapper productProcessRouteItemMapper;
private ProductWorkOrderMapper productWorkOrderMapper;
-
+ private StockUninventoryService stockUninventoryService;
@Override
public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
- return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page,qualityUnqualified);
+ return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page, qualityUnqualified);
}
@Override
public void qualityUnqualifiedExport(HttpServletResponse response, QualityUnqualified qualityUnqualified) {
- List<QualityUnqualified> qualityUnqualifieds =qualityUnqualifiedMapper.qualityUnqualifiedExport(qualityUnqualified);
+ List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.qualityUnqualifiedExport(qualityUnqualified);
ExcelUtil<QualityUnqualified> util = new ExcelUtil<QualityUnqualified>(QualityUnqualified.class);
util.exportExcel(response, qualityUnqualifieds, "涓嶅悎鏍肩鐞嗗鍑�");
}
@@ -60,79 +63,84 @@
public int deal(QualityUnqualified qualityUnqualified) {
QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
- switch (qualityUnqualified.getDealResult()) {
- case "杩斾慨":
- case "杩斿伐":
- //鍒ゆ柇璐ㄦ琛ㄦ槸鍚︽湁鐩稿叧鐨勬姤宸d,濡傛灉鏈夋姤宸d,閭d箞杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
- if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())){
- //杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
- ProductOrder productOrder = productionProductMainMapper.getOrderByMainId(qualityInspect.getProductMainId());
- ProductOrder order = new ProductOrder();
- BeanUtils.copyProperties(productOrder, order);
- order.setId(null);
- order.setQuantity(unqualified.getQuantity());
- order.setCompleteQuantity(BigDecimal.ZERO);
- order.setStartTime(null);
- order.setEndTime(null);
- productOrderService.save(order);
- //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎涓昏〃
- ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectList(Wrappers.<ProductProcessRoute>lambdaQuery().eq(ProductProcessRoute::getProductOrderId,productOrder.getId()).orderByDesc(ProductProcessRoute::getId)).get(0);
- ProductProcessRoute newProcessRoute = new ProductProcessRoute();
- BeanUtils.copyProperties(productProcessRoute, newProcessRoute);
- newProcessRoute.setId(null);
- newProcessRoute.setProductOrderId(order.getId());
- productProcessRouteMapper.insert(newProcessRoute);
- //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎瀛愯〃
- List<ProductProcessRouteItem> processRouteItems = productProcessRouteItemMapper.selectList(new QueryWrapper<ProductProcessRouteItem>().lambda().eq(ProductProcessRouteItem::getProductRouteId, productProcessRoute.getId()));
- // 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- for (ProductProcessRouteItem processRouteItem : processRouteItems) {
- ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
- BeanUtils.copyProperties(processRouteItem, productProcessRouteItem);
- productProcessRouteItem.setId(null);
- productProcessRouteItem.setProductRouteId(newProcessRoute.getId());
- int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
- if (insert > 0) {
- // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
- QueryWrapper<ProductWorkOrder> queryWrapper = new QueryWrapper<>();
- queryWrapper.likeRight("work_order_no", datePrefix)
- .orderByDesc("work_order_no")
- .last("LIMIT 1");
- ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectOne(queryWrapper);
- int sequenceNumber = 1; // 榛樿搴忓彿
- if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
- String lastNo = lastWorkOrder.getWorkOrderNo().toString();
- if (lastNo.startsWith(datePrefix)) {
- String seqStr = lastNo.substring(datePrefix.length());
- try {
- sequenceNumber = Integer.parseInt(seqStr) + 1;
- } catch (NumberFormatException e) {
- sequenceNumber = 1;
+ if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType()!=0) {
+ switch (qualityUnqualified.getDealResult()) {
+ case "杩斾慨":
+ case "杩斿伐":
+ //鍒ゆ柇璐ㄦ琛ㄦ槸鍚︽湁鐩稿叧鐨勬姤宸d,濡傛灉鏈夋姤宸d,閭d箞杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
+ if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())) {
+ //杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
+ ProductOrder productOrder = productionProductMainMapper.getOrderByMainId(qualityInspect.getProductMainId());
+ ProductOrder order = new ProductOrder();
+ BeanUtils.copyProperties(productOrder, order);
+ order.setId(null);
+ order.setQuantity(unqualified.getQuantity());
+ order.setCompleteQuantity(BigDecimal.ZERO);
+ order.setStartTime(null);
+ order.setEndTime(null);
+ productOrderService.save(order);
+ //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎涓昏〃
+ ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectList(Wrappers.<ProductProcessRoute>lambdaQuery().eq(ProductProcessRoute::getProductOrderId, productOrder.getId()).orderByDesc(ProductProcessRoute::getId)).get(0);
+ ProductProcessRoute newProcessRoute = new ProductProcessRoute();
+ BeanUtils.copyProperties(productProcessRoute, newProcessRoute);
+ newProcessRoute.setId(null);
+ newProcessRoute.setProductOrderId(order.getId());
+ productProcessRouteMapper.insert(newProcessRoute);
+ //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎瀛愯〃
+ List<ProductProcessRouteItem> processRouteItems = productProcessRouteItemMapper.selectList(new QueryWrapper<ProductProcessRouteItem>().lambda().eq(ProductProcessRouteItem::getProductRouteId, productProcessRoute.getId()));
+ // 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
+ String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+ for (ProductProcessRouteItem processRouteItem : processRouteItems) {
+ ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
+ BeanUtils.copyProperties(processRouteItem, productProcessRouteItem);
+ productProcessRouteItem.setId(null);
+ productProcessRouteItem.setProductRouteId(newProcessRoute.getId());
+ int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
+ if (insert > 0) {
+ // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
+ QueryWrapper<ProductWorkOrder> queryWrapper = new QueryWrapper<>();
+ queryWrapper.likeRight("work_order_no", datePrefix)
+ .orderByDesc("work_order_no")
+ .last("LIMIT 1");
+ ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectOne(queryWrapper);
+ int sequenceNumber = 1; // 榛樿搴忓彿
+ if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
+ String lastNo = lastWorkOrder.getWorkOrderNo().toString();
+ if (lastNo.startsWith(datePrefix)) {
+ String seqStr = lastNo.substring(datePrefix.length());
+ try {
+ sequenceNumber = Integer.parseInt(seqStr) + 1;
+ } catch (NumberFormatException e) {
+ sequenceNumber = 1;
+ }
}
}
+ // 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
+ String workOrderNoStr = String.format("%s%03d", datePrefix, sequenceNumber);
+ ProductWorkOrder productWorkOrder = new ProductWorkOrder();
+ productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
+ productWorkOrder.setProductOrderId(order.getId());
+ productWorkOrder.setPlanQuantity(order.getQuantity());
+ productWorkOrder.setWorkOrderNo(workOrderNoStr);
+ productWorkOrder.setStatus(1);
+ productWorkOrderMapper.insert(productWorkOrder);
}
- // 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
- String workOrderNoStr = String.format("%s%03d", datePrefix, sequenceNumber);
- ProductWorkOrder productWorkOrder = new ProductWorkOrder();
- productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
- productWorkOrder.setProductOrderId(order.getId());
- productWorkOrder.setPlanQuantity(order.getQuantity());
- productWorkOrder.setWorkOrderNo(workOrderNoStr);
- productWorkOrder.setStatus(1);
- productWorkOrderMapper.insert(productWorkOrder);
}
}
- }
- break;
- case "鎶ュ簾":
- break;
- case "璁╂鏀捐":
- //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
- qualityInspect.setCheckResult("鍚堟牸");
- qualityInspectService.submit(qualityInspect);
- break;
- default:
- break;
+ break;
+ case "鎶ュ簾":
+ //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
+ stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
+ break;
+ case "璁╂鏀捐":
+ //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
+ stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId());
+ qualityInspect.setCheckResult("鍚堟牸");
+ qualityInspectService.submit(qualityInspect);
+ break;
+ default:
+ break;
+ }
}
qualityUnqualified.setInspectState(1);//宸插鐞�
return qualityUnqualifiedMapper.updateById(qualityUnqualified);
--
Gitblit v1.9.3