huminmin
12 小时以前 ab4767af08870c339969311dda28b017d354140b
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -45,6 +45,7 @@
        stockUninventoryDto.setRecordType(String.valueOf(recordType));
        stockUninventoryDto.setQualitity(quantity);
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setType(resolveUninventoryType(recordType));
        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
    }
@@ -63,6 +64,27 @@
        stockUninventoryDto.setQualitity(quantity);
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setBatchNo(batchNo);
        stockUninventoryDto.setType(resolveUninventoryType(recordType));
        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
    }
    /**
     * 废品入库带批次号
     *
     * @param productModelId 产品规格ID
     * @param quantity 数量
     * @param recordType 记录类型
     * @param recordId 业务ID
     * @param batchNo 批次号
     */
    public void addWasteStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
        StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
        stockUninventoryDto.setRecordId(recordId);
        stockUninventoryDto.setRecordType(String.valueOf(recordType));
        stockUninventoryDto.setQualitity(quantity);
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setBatchNo(batchNo);
        stockUninventoryDto.setType("waste");
        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
    }
@@ -80,6 +102,7 @@
        stockUninventoryDto.setRecordType(String.valueOf(recordType));
        stockUninventoryDto.setQualitity(quantity);
        stockUninventoryDto.setProductModelId(productModelId);
        stockUninventoryDto.setType("unqualified");
        stockUninventoryService.subtractStockUninventory(stockUninventoryDto);
    }
@@ -211,16 +234,33 @@
    //删除出库记录
    public void deleteStockOutRecord(Long recordId, String recordType) {
        StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
        java.util.List<StockOutRecord> list = stockOutRecordService.list(new QueryWrapper<StockOutRecord>()
                .lambda().eq(StockOutRecord::getRecordId, recordId)
                .eq(StockOutRecord::getRecordType, recordType), false);
        if (ObjectUtils.isNotEmpty(one)) {
            if (ReviewStatusEnum.APPROVED.getCode().equals(one.getApprovalStatus())) {
                stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
            } else {
                stockOutRecordService.removeById(one.getId());
                .eq(StockOutRecord::getRecordType, recordType));
        if (ObjectUtils.isNotEmpty(list)) {
            java.util.List<Long> approvedIds = new java.util.ArrayList<>();
            java.util.List<Long> pendingIds = new java.util.ArrayList<>();
            for (StockOutRecord stockOutRecord : list) {
                if (ReviewStatusEnum.APPROVED.getCode().equals(stockOutRecord.getApprovalStatus())) {
                    approvedIds.add(stockOutRecord.getId());
                } else {
                    pendingIds.add(stockOutRecord.getId());
                }
            }
            if (!approvedIds.isEmpty()) {
                stockOutRecordService.batchDelete(approvedIds);
            }
            if (!pendingIds.isEmpty()) {
                stockOutRecordService.removeByIds(pendingIds);
            }
        }
    }
    private String resolveUninventoryType(String recordType) {
        if (com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode().equals(recordType)) {
            return "waste";
        }
        return "unqualified";
    }
}