From b28173836631e9ecb1aafbaa5786c0383462208e Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 12 三月 2026 15:09:57 +0800
Subject: [PATCH] 1.生产成品添加审核流程,半成品不审核
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 68 ++++++++++++++++++++++-----------
1 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index c80ea78..fe3e20b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -24,18 +24,18 @@
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.other.pojo.TempFile;
import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
+import com.ruoyi.production.service.ProductionProductMainService;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.sales.dto.*;
import com.ruoyi.sales.mapper.*;
import com.ruoyi.sales.pojo.*;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
import com.ruoyi.sales.service.ISalesLedgerService;
+import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.mapper.StockInventoryMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
@@ -128,6 +128,9 @@
private final QualityInspectMapper qualityInspectMapper;
+ private final StockInventoryMapper stockInventoryMapper;
+
+
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -146,7 +149,9 @@
private ProductMapper productMapper;
@Autowired
private ProductStructureMapper productStructureMapper;
-;
+ @Autowired
+ private ProductionProductMainService productionProductMainService;
+ ;
@Override
public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -178,7 +183,7 @@
.eq(ShippingInfo::getSalesLedgerProductId, product.getId())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
- if(shippingInfo != null){
+ if (shippingInfo != null) {
product.setShippingStatus(shippingInfo.getStatus());
}
}
@@ -350,7 +355,7 @@
// // 浜у搧澶х被鏁版嵁
// List<Product> productList = productMapper.selectList(new LambdaQueryWrapper<Product>().in(Product::getProductName,
// salesLedgerProductImportDtoList.stream().map(SalesLedgerImportDto::getProductCategory).collect(Collectors.toList())));
- List<Map<String,Object>> list = productModelMapper.getProductAndModelList();
+ List<Map<String, Object>> list = productModelMapper.getProductAndModelList();
// 褰曞叆浜烘暟鎹�
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
salesLedgerImportDtoList.stream().map(SalesLedgerImportDto::getEntryPerson).collect(Collectors.toList())));
@@ -358,7 +363,7 @@
SalesLedger salesLedger1 = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
.eq(SalesLedger::getSalesContractNo, salesLedgerImportDto.getSalesContractNo())
.last("LIMIT 1"));
- if(salesLedger1 != null){
+ if (salesLedger1 != null) {
continue;
}
SalesLedger salesLedger = new SalesLedger();
@@ -391,7 +396,7 @@
throw new RuntimeException("閿�鍞崟鍙�:" + salesLedgerImportDto.getSalesContractNo() + ",鏃犲搴斾骇鍝佹暟鎹紒");
salesLedger.setContractAmount(salesLedgerProductImportDtos.stream()
.map(SalesLedgerProductImportDto::getTaxInclusiveTotalPrice)
- .reduce(BigDecimal.ZERO,BigDecimal::add));
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
salesLedgerMapper.insert(salesLedger);
@@ -553,25 +558,20 @@
// 鍒犻櫎鍙戣揣鍙拌处璁板綍
List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getSalesLedgerId, idList));
- if(CollectionUtils.isNotEmpty(shippingInfos)){
+ if (CollectionUtils.isNotEmpty(shippingInfos)) {
shippingInfoServiceImpl.delete(shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList()));
}
// 鍒犻櫎闄勪欢琛�
commonFileService.deleteByBusinessIds(idList, FileNameType.SALE.getValue());
// 鍒犻櫎鐢熶骇绠℃帶鏁版嵁
- // 鍒犻櫎鐢熶骇璁㈠崟鏁版嵁
- LambdaQueryWrapper<SalesLedgerScheduling> in = new LambdaQueryWrapper<SalesLedgerScheduling>()
- .in(SalesLedgerScheduling::getSalesLedgerId, idList);
- salesLedgerSchedulingMapper.delete(in);
- // 鍒犻櫎鐢熶骇娲惧伐鏁版嵁
- LambdaQueryWrapper<SalesLedgerWork> workOrderWrapper = new LambdaQueryWrapper<>();
- workOrderWrapper.in(SalesLedgerWork::getSalesLedgerId, idList);
- salesLedgerWorkMapper.delete(workOrderWrapper);
- // 鍒犻櫎鐢熶骇鏍哥畻鏁版嵁
- LambdaQueryWrapper<SalesLedgerProductionAccounting> reportWrapper = new LambdaQueryWrapper<>();
- reportWrapper.in(SalesLedgerProductionAccounting::getSalesLedgerId, idList);
- salesLedgerProductionAccountingMapper.delete(reportWrapper);
+ //鏌ヨ鐢熶骇鎶ュ伐id
+ ArrayList<Long> mainIdList = productionProductMainService.listMain(idList);
+ if (CollectionUtils.isNotEmpty(mainIdList)) {
+ mainIdList.stream().forEach(mainId -> {
+ productionProductMainService.removeProductMain(mainId);
+ });
+ }
// 2. 鍐嶅垹闄や富琛ㄦ暟鎹�
return salesLedgerMapper.deleteBatchIds(idList);
}
@@ -709,9 +709,26 @@
List<SalesLedgerProduct> updateList = partitionedProducts.get(true);
List<SalesLedgerProduct> insertList = partitionedProducts.get(false);
+ List<StockInventoryDto> stockInventoryDtos = stockInventoryMapper.selectProductList();
+
// 鎵ц鏇存柊鎿嶄綔
if (!updateList.isEmpty()) {
for (SalesLedgerProduct product : updateList) {
+ // 鏌ヨ搴撳瓨鏁伴噺
+ SalesLedgerProduct oldProduct = salesLedgerProductMapper.selectById(product.getId());
+ BigDecimal quantityChange = product.getQuantity().subtract(oldProduct.getQuantity());
+
+ // 濡傛灉鏁伴噺澧炲姞浜嗭紝妫�鏌ュ簱瀛�
+ if (quantityChange.compareTo(BigDecimal.ZERO) > 0) {
+ for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+ if (stockInventoryDto.getProductId().equals(product.getId())) {
+ if (quantityChange.compareTo(stockInventoryDto.getQualitity()) > 0) {
+ throw new RuntimeException("搴撳瓨涓嶈冻");
+ }
+ break;
+ }
+ }
+ }
product.setType(type);
salesLedgerProductMapper.updateById(product);
}
@@ -719,13 +736,18 @@
// 鎵ц鎻掑叆鎿嶄綔
if (!insertList.isEmpty()) {
for (SalesLedgerProduct salesLedgerProduct : insertList) {
+ for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+ if (stockInventoryDto.getProductId().equals(salesLedgerProduct.getId())) {
+ if (salesLedgerProduct.getQuantity().compareTo(stockInventoryDto.getQualitity()) > 0) {
+ throw new RuntimeException("搴撳瓨涓嶈冻");
+ }
+ }
+ }
salesLedgerProduct.setType(type);
salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
- // 娣诲姞鐢熶骇鏁版嵁
- salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
}
}
}
--
Gitblit v1.9.3