package com.ruoyi.business.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.business.dto.OfficialInventoryDto;
|
import com.ruoyi.business.dto.PendingInventoryDto;
|
import com.ruoyi.business.entity.OutputInventoryRecord;
|
import com.ruoyi.business.mapper.OutputInventoryRecordMapper;
|
import com.ruoyi.business.service.InventorySummaryService;
|
import com.ruoyi.business.service.OutputInventoryRecordService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
|
import static com.ruoyi.business.constant.InventoryRecordConstant.OFFICIAL_INVENTORY;
|
import static com.ruoyi.business.constant.InventoryRecordConstant.PENDING_INVENTORY;
|
|
/**
|
* <p>
|
* 出库记录表 服务实现类
|
* </p>
|
*
|
* @author chenhj
|
* @since 2025-06-14
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class OutputInventoryRecordServiceImpl extends ServiceImpl<OutputInventoryRecordMapper, OutputInventoryRecord> implements OutputInventoryRecordService {
|
@Autowired
|
private OutputInventoryRecordMapper outputInventoryRecordMapper;
|
@Autowired
|
private InventorySummaryService inventorySummaryService;
|
|
@Override
|
public int insertOutputInventoryRecord(PendingInventoryDto pendingInventoryDto, OfficialInventoryDto officialInventoryDto, BigDecimal quantity) {
|
if ((pendingInventoryDto != null && officialInventoryDto != null) || (pendingInventoryDto == null && officialInventoryDto == null)) {
|
throw new RuntimeException("库存记录异常");
|
}
|
|
OutputInventoryRecord outputInventoryRecord = new OutputInventoryRecord();
|
if (officialInventoryDto != null) {
|
outputInventoryRecord.setInventoryType(OFFICIAL_INVENTORY);
|
outputInventoryRecord.setId(officialInventoryDto.getId());
|
} else {
|
outputInventoryRecord.setInventoryType(PENDING_INVENTORY);
|
outputInventoryRecord.setId(pendingInventoryDto.getId());
|
}
|
outputInventoryRecord.setQuantity(quantity);
|
|
outputInventoryRecordMapper.insert(outputInventoryRecord);
|
|
// 变更原库存信息
|
return inventorySummaryService.updateInventory(pendingInventoryDto, officialInventoryDto);
|
}
|
}
|