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;
|
|
/**
|
* <p>
|
* 镜架/镜片出库入库表 服务实现类
|
* </p>
|
*
|
* @author 无关风月
|
* @since 2024-12-09
|
*/
|
@Service
|
public class TWarehousingServiceImpl extends ServiceImpl<TWarehousingMapper, TWarehousing> implements TWarehousingService {
|
|
@Autowired
|
private TStoreMapper storeMapper;
|
@Autowired
|
private TFrameWarehousingDetailMapper frameWarehousingDetailMapper;
|
@Autowired
|
private TLensWarehousingDetailMapper lensWarehousingDetailMapper;
|
|
@Override
|
public PageInfo<TFrameWarehousingDetailVO> detailList(TWarehousingDetailQuery query) {
|
PageInfo<TFrameWarehousingDetailVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TFrameWarehousingDetailVO> list = frameWarehousingDetailMapper.pageList(query,pageInfo);
|
List<Integer> storeIds = list.stream().map(TFrameWarehousingDetailVO::getStoreId).collect(Collectors.toList());
|
List<TStore> 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<TLensWarehousingDetailVO> detailListLens(TWarehousingDetailLensQuery query) {
|
PageInfo<TLensWarehousingDetailVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TLensWarehousingDetailVO> list = lensWarehousingDetailMapper.pageLensList(query,pageInfo);
|
List<Integer> storeIds = list.stream().map(TLensWarehousingDetailVO::getStoreId).collect(Collectors.toList());
|
List<TStore> 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<TWarehousingVO> inventoryReceiptList(TWarehousingDetailQuery query) {
|
PageInfo<TWarehousingVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TWarehousingVO> list = this.baseMapper.inventoryReceiptList(query,pageInfo);
|
List<TStore> stores = storeMapper.selectList(Wrappers.lambdaQuery(TStore.class)
|
.in(TStore::getId, list.stream().map(TWarehousingVO::getStoreId).collect(Collectors.toList())));
|
for (TWarehousingVO tWarehousingVO : list) {
|
List<TFrameWarehousingDetail> tFrameWarehousingDetails = frameWarehousingDetailMapper.selectList(Wrappers.lambdaQuery(TFrameWarehousingDetail.class)
|
.eq(TFrameWarehousingDetail::getWarehousingId, tWarehousingVO.getId()));
|
if(CollectionUtils.isNotEmpty(tFrameWarehousingDetails)){
|
tWarehousingVO.setTotalNum(tFrameWarehousingDetails.stream().mapToInt(TFrameWarehousingDetail::getTotal).sum());
|
}
|
stores.stream().filter(tStore -> tStore.getId().equals(tWarehousingVO.getStoreId())).findFirst().ifPresent(tStore -> {
|
tWarehousingVO.setStoreName(tStore.getName());
|
});
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
@Override
|
public PageInfo<TWarehousingLensVO> inventoryReceiptLensList(TWarehousingDetailLensQuery query) {
|
PageInfo<TWarehousingLensVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TWarehousingLensVO> list = this.baseMapper.inventoryReceiptLensList(query,pageInfo);
|
for (TWarehousingLensVO tWarehousingVO : list) {
|
List<TLensWarehousingDetail> 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;
|
}
|
|
|
}
|