| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.TDept; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.dto.asset.AssetWarehouseDTO; |
| | | import com.ruoyi.system.mapper.AssetWarehouseMapper; |
| | | import com.ruoyi.system.mapper.SysDeptMapper; |
| | | import com.ruoyi.system.model.AssetInventoryRecord; |
| | | import com.ruoyi.system.model.AssetWarehouse; |
| | | import com.ruoyi.system.query.AssetWarehousePageQuery; |
| | | import com.ruoyi.system.service.AssetInventoryRecordService; |
| | | import com.ruoyi.system.service.AssetWarehouseService; |
| | | import com.ruoyi.system.service.TDeptService; |
| | | import com.ruoyi.system.vo.asset.AssetWarehouseVO; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | public class AssetWarehouseServiceImpl extends ServiceImpl<AssetWarehouseMapper, AssetWarehouse> implements AssetWarehouseService { |
| | | |
| | | private final AssetInventoryRecordService assetInventoryRecordService; |
| | | private final SysDeptMapper sysDeptMapper; |
| | | private final TDeptService deptService; |
| | | |
| | | @Override |
| | | public IPage<AssetWarehouseVO> getPageList(AssetWarehousePageQuery pageQuery) { |
| | |
| | | List<Integer> warehouseIds = assetWarehouseVOS.stream().map(AssetWarehouseVO::getId).collect(Collectors.toList()); |
| | | List<Integer> deptIds = assetWarehouseVOS.stream().map(AssetWarehouseVO::getDeptId).distinct().collect(Collectors.toList()); |
| | | |
| | | List<SysDept> sysDepts = sysDeptMapper.selectByIds(deptIds); |
| | | List<TDept> sysDepts = deptService.listByIds(deptIds); |
| | | Map<Integer, String> deptMap = sysDepts.stream() |
| | | .collect(Collectors.toMap(item->item.getDeptId().intValue(), SysDept::getDeptName)); |
| | | .collect(Collectors.toMap(TDept::getId, TDept::getDeptName)); |
| | | //查询库存数量 |
| | | Map<Integer, List<AssetInventoryRecord>> inventoryRecordMap = assetInventoryRecordService.lambdaQuery() |
| | | .in(AssetInventoryRecord::getWarehouseId, warehouseIds) |
| | |
| | | List<AssetInventoryRecord> assetInventoryRecords = inventoryRecordMap.get(warehouseVO.getId()); |
| | | if (CollUtil.isEmpty(assetInventoryRecords)) { |
| | | warehouseVO.setCurrentStock(0); |
| | | } else { |
| | | long inStock = assetInventoryRecords.stream().filter(item -> item.getType().equals(0)).count(); |
| | | long outStock = assetInventoryRecords.stream().filter(item -> item.getType().equals(1)).count(); |
| | | warehouseVO.setCurrentStock((int) (inStock - outStock)); |
| | | } |
| | | long inStock = assetInventoryRecords.stream().filter(item -> item.getType().equals(0)).count(); |
| | | long outStock = assetInventoryRecords.stream().filter(item -> item.getType().equals(1)).count(); |
| | | warehouseVO.setCurrentStock((int) (inStock - outStock)); |
| | | //设置部门名称 |
| | | warehouseVO.setDeptName(deptMap.getOrDefault(warehouseVO.getDeptId(), "")); |
| | | }); |