huminmin
5 小时以前 fe01e3b188e24a20b539f92e436d967aaf77ee1a
创建库存增加来源
已修改10个文件
62 ■■■■ 文件已修改
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/enums/StockInventorySourceEnum.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/stock/StockInventoryMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/stock/StockUninventoryMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -23,12 +23,16 @@
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.ShippingInfoService;
import com.ruoyi.stock.enums.StockInventorySourceEnum;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.service.StockInRecordService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.List;
@@ -49,6 +53,7 @@
    private final SalesLedgerMapper salesLedgerMapper;
    private final SalesRefundAmountOrderService salesRefundAmountOrderService;
    private final StockUtils stockUtils;
    private final StockInRecordService stockInRecordService;
    @Override
    public IPage<ReturnManagementDto> listPage(Page page, ReturnManagementDto returnManagement) {
@@ -122,7 +127,8 @@
                        returnSaleProduct.getNum(),
                        StockInQualifiedRecordTypeEnum.RETURN_WASTE_IN.getCode(),
                        returnSaleProduct.getId(),
                        returnSaleProduct.getBatchNo()
                        returnSaleProduct.getBatchNo(),
                        StockInventorySourceEnum.RETURN_GENERATED.getCode()
                );
            } else if (hasQualityIssue) {
                // 合格发货且有质量问题,回不合格库。
@@ -131,7 +137,8 @@
                        returnSaleProduct.getNum(),
                        StockInQualifiedRecordTypeEnum.RETURN_UNSTOCK_IN.getCode(),
                        returnSaleProduct.getId(),
                        returnSaleProduct.getBatchNo()
                        returnSaleProduct.getBatchNo(),
                        StockInventorySourceEnum.RETURN_GENERATED.getCode()
                );
            } else {
                // 合格发货且无质量问题,回合格库。
@@ -140,7 +147,8 @@
                        returnSaleProduct.getNum(),
                        StockInQualifiedRecordTypeEnum.RETURN_HE_IN.getCode(),
                        returnSaleProduct.getId(),
                        returnSaleProduct.getBatchNo()
                        returnSaleProduct.getBatchNo(),
                        StockInventorySourceEnum.RETURN_GENERATED.getCode()
                );
            }
        }
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -56,8 +56,10 @@
     * @param quantity
     * @param recordType
     * @param recordId
     * @param batchNo
     * @param source 库存来源
     */
    public void addUnStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
    public void addUnStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
        StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
        stockUninventoryDto.setRecordId(recordId);
        stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -65,6 +67,7 @@
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setBatchNo(batchNo);
        stockUninventoryDto.setType(resolveUninventoryType(recordType));
        stockUninventoryDto.setSource(source);
        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
    }
@@ -77,7 +80,7 @@
     * @param recordId 业务ID
     * @param batchNo 批次号
     */
    public void addWasteStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
    public void addWasteStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
        StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
        stockUninventoryDto.setRecordId(recordId);
        stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -85,6 +88,7 @@
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setBatchNo(batchNo);
        stockUninventoryDto.setType("waste");
        stockUninventoryDto.setSource(source);
        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
    }
@@ -138,7 +142,27 @@
     * @param recordId
     */
    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, null);
        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, (LocalDateTime) null);
    }
    /**
     * 合格入库带批次号和来源
     * @param productModelId
     * @param quantity
     * @param recordType
     * @param recordId
     * @param batchNo
     * @param source 库存来源
     */
    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
        StockInventoryDto stockInventoryDto = new StockInventoryDto();
        stockInventoryDto.setRecordId(recordId);
        stockInventoryDto.setRecordType(String.valueOf(recordType));
        stockInventoryDto.setQualitity(quantity);
        stockInventoryDto.setProductModelId(productModelId);
        stockInventoryDto.setBatchNo(batchNo);
        stockInventoryDto.setSource(source);
        stockInventoryService.addStockInRecordOnly(stockInventoryDto);
    }
    /**
src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -398,6 +398,7 @@
                .selectBatchIds(new ArrayList<>(operationIds))
                .stream()
                .filter(Objects::nonNull)
                .filter(op -> op.getType() != null)  // 过滤 type 为 null 的记录
                .collect(Collectors.toMap(
                        ProductionOrderRoutingOperation::getId,
                        ProductionOrderRoutingOperation::getType,
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -26,6 +26,7 @@
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.quality.mapper.*;
import com.ruoyi.quality.pojo.*;
import com.ruoyi.stock.enums.StockInventorySourceEnum;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.stock.dto.StockInventoryDto;
@@ -412,7 +413,8 @@
                    scrapQty,
                    StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(),
                    productionProductMain.getId(),
                    qualifiedBatchNo);
                    qualifiedBatchNo,
                    StockInventorySourceEnum.PROD_GENERATED.getCode());
        }
        return true;
    }
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -23,6 +23,7 @@
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.stock.enums.StockInventorySourceEnum;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.quality.service.IQualityInspectService;
@@ -87,7 +88,8 @@
                    break;
                case "报废":
                    stockUtils.addUnStockWithBatchNo(qualityInspect.getProductModelId(), unqualified.getQuantity(),
                            StockInQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(), batchNo);
                            StockInQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(), batchNo,
                            StockInventorySourceEnum.PROD_GENERATED.getCode());
                    break;
                case "让步放行":
                    stockUtils.addStockWithBatchNo(qualityInspect.getProductModelId(), unqualified.getQuantity(),
src/main/java/com/ruoyi/stock/enums/StockInventorySourceEnum.java
@@ -21,6 +21,7 @@
    PROD_GENERATED("prodGenerated", "生产产生"),
    TRANS_GENERATED("transGenerated", "运输产生"),
    CUTTING_GENERATED("cuttingGenerated", "裁剪产生"),
    RETURN_GENERATED("returnGenerated", "销售退货产生"),
    CUSTOM("custom", "自定义");
    @EnumValue
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -290,6 +290,7 @@
                    stockUninventoryDto.setManufacturerId(stockInRecord.getManufacturerId());
                    stockUninventoryDto.setSource(stockInRecord.getSource());
                    stockUninventoryDto.setType(uninventoryType);
                    stockUninventoryDto.setSource(stockInRecord.getSource());
                    if (stockUninventory == null) {
                        stockUninventoryMapper.insert(new StockUninventory() {{
                            setProductModelId(stockInRecord.getProductModelId());
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -174,6 +174,7 @@
            stockInRecordDto.setType("2");
        }
        stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
        stockInRecordDto.setSource(stockUninventoryDto.getSource());
        stockInRecordService.add(stockInRecordDto);
        return 1;
    }
src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -31,6 +31,9 @@
            <if test="ew.lockedQuantity != null and ew.lockedQuantity !=''">
                locked_quantity = locked_quantity + #{ew.lockedQuantity},
            </if>
            <if test="ew.source != null and ew.source != ''">
                source = #{ew.source},
            </if>
            update_time = now()
        </set>
        where product_model_id = #{ew.productModelId}
src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -67,6 +67,9 @@
            <if test="ew.type != null and ew.type != ''">
                type = #{ew.type},
            </if>
            <if test="ew.source != null and ew.source != ''">
                source = #{ew.source},
            </if>
            update_time = now()
        </set>
        where product_model_id = #{ew.productModelId}