huminmin
13 小时以前 ba4f2ca4b3ae845d2bd1e92338b948a8f95ffaaa
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -48,7 +48,7 @@
@RequiredArgsConstructor
public class StockUninventoryServiceImpl extends ServiceImpl<StockUninventoryMapper, StockUninventory> implements StockUninventoryService {
    private static final String UNQUALIFIED_TYPE = "unqualified";
    private final StockUninventoryMapper stockUninventoryMapper;
    private final StockOutRecordService stockOutRecordService;
    private final StockInRecordService stockInRecordService;
@@ -61,10 +61,18 @@
    }
    @Override
    public IPage<StockUninventoryDto> pageWasteQuery(Page page, StockUninventoryDto stockUninventoryDto) {
        return stockUninventoryMapper.pageWasteQuery(page, stockUninventoryDto);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addStockUninventory(StockUninventoryDto stockUninventoryDto) {
        String inventoryType = resolveInventoryType(stockUninventoryDto);
        stockUninventoryDto.setType(inventoryType);
        LambdaQueryWrapper<StockUninventory> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId());
        wrapper.eq(StockUninventory::getType, inventoryType);
        if (StringUtils.isEmpty(stockUninventoryDto.getBatchNo())) {
            stockUninventoryDto.setBatchNo(null);
            wrapper.isNull(StockUninventory::getBatchNo);
@@ -78,7 +86,11 @@
        stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
        stockInRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
        stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
        stockInRecordDto.setType("1");
        if (UNQUALIFIED_TYPE.equals(inventoryType)) {
            stockInRecordDto.setType("1");
        } else {
            stockInRecordDto.setType("2");
        }
        stockInRecordDto.setManufacturerId(stockUninventoryDto.getManufacturerId());
        stockInRecordDto.setSource(stockUninventoryDto.getSource());
        stockInRecordService.add(stockInRecordDto);
@@ -89,6 +101,8 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto) {
        String inventoryType = resolveInventoryType(stockUninventoryDto);
        stockUninventoryDto.setType(inventoryType);
        //  新增出库记录
        StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
@@ -99,7 +113,9 @@
        stockOutRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
        stockOutRecordDto.setType("1");
        stockOutRecordService.add(stockOutRecordDto);
        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda()
                .eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId())
                .eq(StockUninventory::getType, inventoryType));
        if (ObjectUtils.isEmpty(oldStockInventory)) {
            throw new RuntimeException("产品库存不存在");
        }else {
@@ -111,6 +127,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addStockInRecordOnly(StockUninventoryDto stockUninventoryDto) {
        stockUninventoryDto.setType(resolveInventoryType(stockUninventoryDto));
        StockInRecordDto stockInRecordDto = new StockInRecordDto();
        stockInRecordDto.setRecordId(stockUninventoryDto.getRecordId());
        stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
@@ -130,8 +147,11 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addStockOutRecordOnly(StockUninventoryDto stockUninventoryDto) {
        String inventoryType = resolveInventoryType(stockUninventoryDto);
        stockUninventoryDto.setType(inventoryType);
        LambdaQueryWrapper<StockUninventory> eq = new LambdaQueryWrapper<>();
        eq.eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId());
        eq.eq(StockUninventory::getType, inventoryType);
        if (StringUtils.isEmpty(stockUninventoryDto.getBatchNo())) {
            eq.isNull(StockUninventory::getBatchNo);
        } else {
@@ -177,6 +197,13 @@
    }
    @Override
    public void exportWasteQuery(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
        List<StockUnInventoryExportData> list = stockUninventoryMapper.listWasteQueryExportData(stockUninventoryDto);
        ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
        util.exportExcel(response, list, "废品查询信息");
    }
    @Override
    public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
        StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
@@ -200,6 +227,13 @@
        return this.updateById(stockUninventory);
    }
    private String resolveInventoryType(StockUninventoryDto stockUninventoryDto) {
        if (stockUninventoryDto != null && StringUtils.isNotEmpty(stockUninventoryDto.getType())) {
            return stockUninventoryDto.getType().trim();
        }
        return UNQUALIFIED_TYPE;
    }
    //规则生成:20260424-产品编号-001
    private String generateAutoBatchNo(Long productModelId) {
        if (productModelId == null) {