| | |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.stock.enums.StockInventorySourceEnum; |
| | | import com.ruoyi.stock.dto.StockInRecordDto; |
| | | import com.ruoyi.stock.dto.StockInventoryDto; |
| | | import com.ruoyi.stock.dto.StockOutRecordDto; |
| | |
| | | @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; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<StockUninventoryDto> pageWasteQuery(Page page, StockUninventoryDto stockUninventoryDto) { |
| | | IPage<StockUninventoryDto> resultPage = stockUninventoryMapper.pageWasteQuery(page, stockUninventoryDto); |
| | | resultPage.getRecords().forEach(dto -> { |
| | | if (StringUtils.isNotEmpty(dto.getSource())) { |
| | | StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(dto.getSource()); |
| | | if (sourceEnum != null) { |
| | | dto.setSourceText(sourceEnum.getValue()); |
| | | } |
| | | } |
| | | }); |
| | | return resultPage; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<StockUninventoryDto> getWasteBatchNoQty(Page page, StockInventoryDto stockInventoryDto) { |
| | | IPage<StockUninventoryDto> resultPage = stockUninventoryMapper.getWasteBatchNoQty(page, stockInventoryDto); |
| | | resultPage.getRecords().forEach(dto -> { |
| | | if (StringUtils.isNotEmpty(dto.getSource())) { |
| | | StockInventorySourceEnum unQualifiedSourceEnum = StockInventorySourceEnum.fromCode(dto.getSource()); |
| | | if (unQualifiedSourceEnum != null) { |
| | | dto.setSourceText(unQualifiedSourceEnum.getValue()); |
| | | } |
| | | } |
| | | }); |
| | | return resultPage; |
| | | } |
| | | |
| | | @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); |
| | |
| | | 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); |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto) { |
| | | String inventoryType = resolveInventoryType(stockUninventoryDto); |
| | | stockUninventoryDto.setType(inventoryType); |
| | | |
| | | // 新增出库记录 |
| | | StockOutRecordDto stockOutRecordDto = new StockOutRecordDto(); |
| | |
| | | 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 { |
| | |
| | | @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()); |
| | |
| | | @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 { |
| | |
| | | @Override |
| | | public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) { |
| | | List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto); |
| | | list.forEach(item -> { |
| | | if (StringUtils.isNotEmpty(item.getSource())) { |
| | | StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(item.getSource()); |
| | | if (sourceEnum != null) { |
| | | item.setSourceText(sourceEnum.getValue()); |
| | | } |
| | | } |
| | | }); |
| | | ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class); |
| | | util.exportExcel(response,list, "不合格库存信息"); |
| | | } |
| | | |
| | | @Override |
| | | public void exportWasteQuery(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) { |
| | | List<StockUnInventoryExportData> list = stockUninventoryMapper.listWasteQueryExportData(stockUninventoryDto); |
| | | list.forEach(item -> { |
| | | if (StringUtils.isNotEmpty(item.getSource())) { |
| | | StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(item.getSource()); |
| | | if (sourceEnum != null) { |
| | | item.setSourceText(sourceEnum.getValue()); |
| | | } |
| | | } |
| | | }); |
| | | ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class); |
| | | util.exportExcel(response, list, "废品查询信息"); |
| | | } |
| | | |
| | | @Override |
| | |
| | | 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) { |