package com.ruoyi.management.service.impl;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.utils.page.PageDTO;
|
import com.ruoyi.management.domain.ManagementGoodsMaterials;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.management.domain.SlGoodsMaterials;
|
import com.ruoyi.management.domain.SlStoreManagement;
|
import com.ruoyi.management.domain.dto.ManagementGoodsMaterialsQuery;
|
import com.ruoyi.management.domain.vo.InventoriesSuppliesVO;
|
import com.ruoyi.management.domain.vo.ManagementGoodsMaterialsVO;
|
import com.ruoyi.management.domain.vo.StoreManagementGoodSmaterialsVO;
|
import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlStoreManagementMapper;
|
import com.ruoyi.management.service.ManagementGoodsMaterialsService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 仓库到物资的中间表 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-07-01
|
*/
|
@Service
|
public class ManagementGoodsMaterialsServiceImpl extends ServiceImpl<ManagementGoodsMaterialsMapper, ManagementGoodsMaterials> implements ManagementGoodsMaterialsService {
|
|
@Resource
|
private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
|
@Resource
|
private SlStoreManagementMapper slStoreManagementMapper;
|
|
@Resource
|
private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
|
|
|
|
@Override
|
public PageDTO<ManagementGoodsMaterialsVO> getManagementGoodsMaterialsList(ManagementGoodsMaterialsQuery managementGoodsMaterialsQuery) {
|
LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery();
|
if (managementGoodsMaterialsQuery.getStoreManagementName()!=null&&managementGoodsMaterialsQuery.getStoreManagementName()!=""){
|
wrapper.like(SlStoreManagement::getStoreManagementName,managementGoodsMaterialsQuery.getStoreManagementName());
|
}
|
if (managementGoodsMaterialsQuery.getStoreManagementGrade()!=null){
|
wrapper.eq(SlStoreManagement::getStoreManagementGrade,managementGoodsMaterialsQuery.getStoreManagementGrade());
|
}
|
if (managementGoodsMaterialsQuery.getStoreManagementNo()!=null&&managementGoodsMaterialsQuery.getStoreManagementNo()!=""){
|
wrapper.eq(SlStoreManagement::getStoreManagementNo,managementGoodsMaterialsQuery.getStoreManagementNo());
|
}
|
if (managementGoodsMaterialsQuery.getCityCode()!=null&&managementGoodsMaterialsQuery.getCityCode()!=""){
|
wrapper.eq(SlStoreManagement::getCityCode,managementGoodsMaterialsQuery.getCityCode());
|
}
|
if (managementGoodsMaterialsQuery.getCountyCode()!=null&&managementGoodsMaterialsQuery.getCountyCode()!=""){
|
wrapper.eq(SlStoreManagement::getCountyCode,managementGoodsMaterialsQuery.getCountyCode());
|
}
|
if (managementGoodsMaterialsQuery.getTownCode()!=null&&managementGoodsMaterialsQuery.getTownCode()!=""){
|
wrapper.eq(SlStoreManagement::getTownCode,managementGoodsMaterialsQuery.getTownCode());
|
}
|
List<SlStoreManagement> slStoreManagements = slStoreManagementMapper.selectList(wrapper);
|
Set<Long> slVolumeProductionIdList = null;
|
slVolumeProductionIdList = slStoreManagements.stream().map(SlStoreManagement::getId)
|
.collect(Collectors.toSet());
|
|
LambdaQueryWrapper<SlGoodsMaterials> wrapper1= Wrappers.lambdaQuery();
|
if (managementGoodsMaterialsQuery.getGoodsMaterialsName()!=null&&managementGoodsMaterialsQuery.getGoodsMaterialsName()!=""){
|
wrapper1.like(SlGoodsMaterials::getGoodsMaterialsName,managementGoodsMaterialsQuery.getGoodsMaterialsName());
|
}
|
|
List<SlGoodsMaterials> slGoodsMaterials = slGoodsMaterialsMapper.selectList(wrapper1);
|
|
Set<Long> SlGoodsMaterialsList = null;
|
SlGoodsMaterialsList = slGoodsMaterials.stream().map(SlGoodsMaterials::getId)
|
.collect(Collectors.toSet());
|
|
Page<ManagementGoodsMaterials> page = new Page<>(managementGoodsMaterialsQuery.getPageCurr(), managementGoodsMaterialsQuery.getPageSize());
|
LambdaQueryWrapper< ManagementGoodsMaterials> wrapper3= Wrappers.lambdaQuery();
|
|
if (slVolumeProductionIdList.size()>0){
|
wrapper3.in(ManagementGoodsMaterials::getManagementId,slVolumeProductionIdList);
|
}else{
|
slVolumeProductionIdList=new HashSet<>();
|
slVolumeProductionIdList.add(0L);
|
wrapper3.in(ManagementGoodsMaterials::getManagementId,slVolumeProductionIdList);
|
}
|
if (SlGoodsMaterialsList.size()>0){
|
wrapper3.in(ManagementGoodsMaterials::getGoodsMaterialsId,SlGoodsMaterialsList);
|
}else{
|
SlGoodsMaterialsList=new HashSet<>();
|
SlGoodsMaterialsList.add(0L);
|
wrapper3.in(ManagementGoodsMaterials::getGoodsMaterialsId,SlGoodsMaterialsList);
|
}
|
wrapper3.apply("repertory_zhai <repertory");
|
wrapper3.eq(ManagementGoodsMaterials::getDelFlag,0);
|
wrapper3.orderByDesc(ManagementGoodsMaterials::getCreateTime);
|
Page<ManagementGoodsMaterials> page1 = this.page(page, wrapper3);
|
PageDTO<ManagementGoodsMaterialsVO> storeManagementGoodSmaterialsVOPageDTO = PageDTO.of(page1, ManagementGoodsMaterialsVO.class);
|
List<ManagementGoodsMaterialsVO> list = storeManagementGoodSmaterialsVOPageDTO.getList();
|
for (ManagementGoodsMaterialsVO li:list){
|
SlGoodsMaterials slGoodsMaterials1 = slGoodsMaterialsMapper.selectById(li.getGoodsMaterialsId());
|
li.setGoodsMaterialsName(slGoodsMaterials1.getGoodsMaterialsName());
|
li.setIsConsume(slGoodsMaterials1.getIsConsume());
|
SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(li.getManagementId());
|
li.setProvinceCode(slStoreManagement.getProvinceCode());
|
li.setStoreManagementName(slStoreManagement.getStoreManagementName());
|
li.setProvinceName(slStoreManagement.getProvinceName());
|
li.setCityCode(slStoreManagement.getCityCode());
|
li.setCityName(slStoreManagement.getCityName());
|
li.setCountyCode(slStoreManagement.getCountyCode());
|
li.setCountyName(slStoreManagement.getCountyName());
|
li.setTownCode(slStoreManagement.getTownCode());
|
li.setTownName(slStoreManagement.getTownName());
|
li.setStoreManagementNumber(slStoreManagement.getStoreManagementNumber());
|
li.setStoreManagementNo(slStoreManagement.getStoreManagementNo());
|
li.setStoreManagementGrade(slStoreManagement.getStoreManagementGrade());
|
|
}
|
|
return storeManagementGoodSmaterialsVOPageDTO;
|
}
|
}
|