| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.ruoyi.common.enums.ReviewStatusEnum; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper; |
| | | import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; |
| | | import com.ruoyi.sales.mapper.ShippingProductDetailMapper; |
| | | import com.ruoyi.sales.pojo.ShippingProductDetail; |
| | | import com.ruoyi.stock.dto.StockInventoryDto; |
| | | import com.ruoyi.stock.dto.StockOutRecordDto; |
| | | import com.ruoyi.stock.dto.StockUninventoryDto; |
| | | import com.ruoyi.stock.pojo.StockInRecord; |
| | | import com.ruoyi.stock.pojo.StockOutRecord; |
| | |
| | | private final StockInventoryService stockInventoryService; |
| | | private final StockInRecordService stockInRecordService; |
| | | private final StockOutRecordService stockOutRecordService; |
| | | private final ShippingProductDetailMapper shippingProductDetailMapper; |
| | | |
| | | /** |
| | | * 不合格入库 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 发货审批状态更改 |
| | | * 只登记出库流水,不校验、不扣减库存。 |
| | | * 用于未启用仓储模块、发货没有库存批号的场景。 |
| | | * |
| | | * @param productModelId |
| | | * @param quantity |
| | | * @param recordType |
| | | * @param recordId |
| | | * @param batchNo |
| | | */ |
| | | public void recordStockOutWithoutInventory(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) { |
| | | StockOutRecordDto stockOutRecordDto = new StockOutRecordDto(); |
| | | stockOutRecordDto.setRecordId(recordId); |
| | | stockOutRecordDto.setRecordType(String.valueOf(recordType)); |
| | | stockOutRecordDto.setStockOutNum(quantity); |
| | | stockOutRecordDto.setProductModelId(productModelId); |
| | | stockOutRecordDto.setBatchNo(batchNo); |
| | | stockOutRecordDto.setType("0"); |
| | | stockOutRecordService.add(stockOutRecordDto); |
| | | } |
| | | |
| | | /** |
| | | * 发货审批状态更改。 |
| | | * 没有库存批号的发货(未启用仓储模块)没有出库审核环节,审批通过即视为已出库, |
| | | * 否则发货数量统计不到。 |
| | | * |
| | | * @param recordType |
| | | * @param recordId |
| | | */ |
| | | public void shipmentStatus(String recordType, Long recordId) { |
| | | Long inventoryBatchCount = shippingProductDetailMapper.selectCount(new LambdaQueryWrapper<ShippingProductDetail>() |
| | | .eq(ShippingProductDetail::getShippingInfoId, recordId) |
| | | .isNotNull(ShippingProductDetail::getStockInventoryId)); |
| | | boolean withoutInventoryBatch = StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode().equals(recordType) |
| | | && inventoryBatchCount == 0; |
| | | Integer approvalStatus = withoutInventoryBatch |
| | | ? ReviewStatusEnum.APPROVED.getCode() |
| | | : ReviewStatusEnum.PENDING_REVIEW.getCode(); |
| | | LambdaQueryWrapper<StockOutRecord> queryWrapper = new LambdaQueryWrapper<StockOutRecord>().eq(StockOutRecord::getRecordType, recordType) |
| | | .eq(StockOutRecord::getRecordId, recordId); |
| | | stockOutRecordService.list(queryWrapper).stream().forEach(stockOutRecord -> { |
| | | stockOutRecord.setApprovalStatus(0); |
| | | stockOutRecord.setApprovalStatus(approvalStatus); |
| | | stockOutRecordService.updateById(stockOutRecord); |
| | | }); |
| | | } |