src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -183,7 +183,7 @@ addQualityInspect(purchaseLedger, salesLedgerProduct); } else { //直接入库 stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId()); stockUtils.addStockWithBatchNo(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId(),purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId()); } } } else if (status.equals(3)) { src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.approve.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.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -24,8 +25,10 @@ import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.basic.utils.FileUtil; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; import com.ruoyi.common.utils.OrderUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysNotice; import com.ruoyi.project.system.domain.SysUser; @@ -35,8 +38,10 @@ import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.sales.mapper.CommonFileMapper; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.CommonFile; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import lombok.RequiredArgsConstructor; @@ -65,6 +70,8 @@ private final CommonFileServiceImpl commonFileService; private final ISysNoticeService sysNoticeService; private final PurchaseLedgerMapper purchaseLedgerMapper; private final SalesLedgerProductMapper salesLedgerProductMapper; private final StockUtils stockUtils; private final ShippingInfoMapper shippingInfoMapper; private final ApproveNodeMapper approveNodeMapper; private final ApproveProcessConfigNodeService approveProcessConfigNodeService; @@ -152,9 +159,19 @@ || !StringUtils.hasText(approveProcessVO.getApproveReason())) { throw new RuntimeException("审核用户不存在"); } purchaseLedgerMapper.update(null, new LambdaUpdateWrapper<PurchaseLedger>() .eq(PurchaseLedger::getPurchaseContractNumber, approveProcessVO.getApproveReason()) .set(PurchaseLedger::getApprovalStatus, 3)); //采购入库 PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>() .eq(PurchaseLedger::getPurchaseContractNumber, approveProcessVO.getApproveReason()) .last("limit 1")); List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>() .lambda().eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2)); for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) { stockUtils.addStockWithBatchNo(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId(),purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId()); } } @Override src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -81,6 +81,23 @@ } /** * 合格入库带批次号 * @param productModelId * @param quantity * @param recordType * @param recordId */ public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) { StockInventoryDto stockInventoryDto = new StockInventoryDto(); stockInventoryDto.setRecordId(recordId); stockInventoryDto.setRecordType(String.valueOf(recordType)); stockInventoryDto.setQualitity(quantity); stockInventoryDto.setProductModelId(productModelId); stockInventoryDto.setBatchNo(batchNo); stockInventoryService.addStockInRecordOnly(stockInventoryDto); } /** * 合格出库 * * @param productModelId src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -181,15 +181,6 @@ if (productList != null && !productList.isEmpty()) { handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType()); } //新增原材料检验 审批之后才生成检验 // if (productList != null) { // for (SalesLedgerProduct saleProduct : productList) { // //是否推送质检,如果true就添加 // if (saleProduct.getIsChecked()) { // addQualityInspect(purchaseLedger, saleProduct); // } // } // } // 5. 迁移临时文件到正式目录 fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.PURCHASE_LEDGER, purchaseLedger.getId(), purchaseLedgerDto.getStorageBlobDTOS()); return 1; src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
@@ -4,25 +4,33 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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.account.pojo.AccountIncome; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.common.enums.SaleEnum; import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.purchase.dto.PurchaseReturnOrderDto; import com.ruoyi.purchase.dto.PurchaseReturnOrderProductsDto; import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper; import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts; import com.ruoyi.purchase.pojo.PurchaseReturnOrders; import com.ruoyi.purchase.service.PurchaseReturnOrdersService; import com.ruoyi.purchase.vo.PurchaseReturnDetailsVo; import com.ruoyi.purchase.vo.PurchaseReturnOrderVo; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerService; import com.ruoyi.stock.mapper.StockOutRecordMapper; import com.ruoyi.stock.pojo.StockOutRecord; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -48,6 +56,10 @@ private final PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper; private final ISalesLedgerService salesLedgerService; private final AccountIncomeService accountIncomeService; private final StockUtils stockUtils; private final SalesLedgerProductMapper salesLedgerProductMapper; private final PurchaseLedgerMapper purchaseLedgerMapper; private final StockOutRecordMapper stockOutRecordMapper; @Override public IPage<PurchaseReturnOrderVo> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) { @@ -67,6 +79,10 @@ // 这里为新增因此id为null purchaseReturnOrderProductsDto.setId(null); purchaseReturnOrderProductsMapper.insert(purchaseReturnOrderProductsDto); //库存需要出库(采购退货) PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(purchaseReturnOrderDto.getPurchaseLedgerId()); SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(purchaseReturnOrderProductsDto.getSalesLedgerProductId()); stockUtils.substractStock(salesLedgerProduct.getProductModelId(), purchaseReturnOrderProductsDto.getReturnQuantity(), StockOutQualifiedRecordTypeEnum.PURCHASE_RETURN_STOCK_OUT.getCode(), purchaseReturnOrderDto.getId(), purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId()); } }else { throw new RuntimeException("请选择退货商品"); @@ -120,7 +136,10 @@ LambdaUpdateWrapper<PurchaseReturnOrderProducts> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(PurchaseReturnOrderProducts::getPurchaseReturnOrderId, id); purchaseReturnOrderProductsMapper.delete(updateWrapper); //(采购退货的数据需要删掉) stockOutRecordMapper.delete(Wrappers.<StockOutRecord>lambdaQuery() .eq(StockOutRecord::getRecordType,StockOutQualifiedRecordTypeEnum.PURCHASE_RETURN_STOCK_OUT.getCode()) .eq(StockOutRecord::getRecordId, id)); // 财务 LambdaUpdateWrapper<AccountIncome> updateWrapperAccountIncome = new LambdaUpdateWrapper<>(); updateWrapperAccountIncome.eq(AccountIncome::getBusinessId, id);