package com.jilongda.manage.service.impl; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.mapper.TFrameWarehousingDetailMapper; import com.jilongda.manage.mapper.TLensWarehousingDetailMapper; import com.jilongda.manage.mapper.TStoreMapper; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import com.jilongda.manage.model.TStore; import com.jilongda.manage.model.TWarehousing; import com.jilongda.manage.mapper.TWarehousingMapper; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; import com.jilongda.manage.service.TLensWarehousingDetailService; import com.jilongda.manage.service.TWarehousingService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jilongda.manage.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 镜架/镜片出库入库表 服务实现类 *

* * @author 无关风月 * @since 2024-12-09 */ @Service public class TWarehousingServiceImpl extends ServiceImpl implements TWarehousingService { @Autowired private TStoreMapper storeMapper; @Autowired private TFrameWarehousingDetailMapper frameWarehousingDetailMapper; @Autowired private TLensWarehousingDetailMapper lensWarehousingDetailMapper; @Override public PageInfo detailList(TWarehousingDetailQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = frameWarehousingDetailMapper.pageList(query,pageInfo); List storeIds = list.stream().map(TFrameWarehousingDetailVO::getStoreId).collect(Collectors.toList()); List stores = new ArrayList<>(); if(CollectionUtils.isNotEmpty(storeIds)){ stores = storeMapper.selectList(Wrappers.lambdaQuery(TStore.class) .in(TStore::getId,storeIds)); } for (TFrameWarehousingDetailVO tFrameWarehousingDetailVO : list) { if(CollectionUtils.isNotEmpty(stores)){ TStore store = stores.stream().filter(tStore -> tStore.getId().equals(tFrameWarehousingDetailVO.getStoreId())).findFirst().orElse(null); if(Objects.nonNull(store)){ tFrameWarehousingDetailVO.setStoreName(store.getName()); } } } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo detailListLens(TWarehousingDetailLensQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = lensWarehousingDetailMapper.pageLensList(query,pageInfo); List storeIds = list.stream().map(TLensWarehousingDetailVO::getStoreId).collect(Collectors.toList()); List stores = new ArrayList<>(); if(CollectionUtils.isNotEmpty(storeIds)){ stores = storeMapper.selectList(Wrappers.lambdaQuery(TStore.class) .in(TStore::getId,storeIds)); } for (TLensWarehousingDetailVO tLensWarehousingDetailVO : list) { if(CollectionUtils.isNotEmpty(stores)){ TStore store = stores.stream().filter(tStore -> tStore.getId().equals(tLensWarehousingDetailVO.getStoreId())).findFirst().orElse(null); if(Objects.nonNull(store)){ tLensWarehousingDetailVO.setStoreName(store.getName()); } } } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo inventoryReceiptList(TWarehousingDetailQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.inventoryReceiptList(query,pageInfo); for (TWarehousingVO tWarehousingVO : list) { List tFrameWarehousingDetails = frameWarehousingDetailMapper.selectList(Wrappers.lambdaQuery(TFrameWarehousingDetail.class) .eq(TFrameWarehousingDetail::getWarehousingId, tWarehousingVO.getId())); if(CollectionUtils.isNotEmpty(tFrameWarehousingDetails)){ tWarehousingVO.setTotalNum(tFrameWarehousingDetails.stream().mapToInt(TFrameWarehousingDetail::getTotal).sum()); } } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo inventoryReceiptLensList(TWarehousingDetailLensQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.inventoryReceiptLensList(query,pageInfo); for (TWarehousingLensVO tWarehousingVO : list) { List lensWarehousingDetails = lensWarehousingDetailMapper.selectList(Wrappers.lambdaQuery(TLensWarehousingDetail.class) .eq(TLensWarehousingDetail::getWarehousingId, tWarehousingVO.getId())); if(CollectionUtils.isNotEmpty(lensWarehousingDetails)){ tWarehousingVO.setTotalNum(lensWarehousingDetails.stream().mapToInt(TLensWarehousingDetail::getTotal).sum()); } } pageInfo.setRecords(list); return pageInfo; } }