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.BeanUtils;
|
import com.ruoyi.common.core.utils.page.PageDTO;
|
import com.ruoyi.management.domain.ManagementGoodsMaterials;
|
import com.ruoyi.management.domain.SlGoodsMaterials;
|
import com.ruoyi.management.domain.SlStoreManagement;
|
import com.ruoyi.management.domain.SlVolumeProductionRk;
|
import com.ruoyi.management.domain.dto.SlGoodsMaterialsDTO;
|
import com.ruoyi.management.domain.dto.SlGoodsMaterialsQuery;
|
import com.ruoyi.management.domain.dto.StoreManagementGoodSmaterialsQuery;
|
import com.ruoyi.management.domain.vo.SlGoodsMaterialsVO;
|
import com.ruoyi.management.domain.vo.SlGoodsShelfVO;
|
import com.ruoyi.management.domain.vo.StoreManagementGoodSmaterialsVO;
|
import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlGoodsMaterialsMapper;
|
import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
|
import com.ruoyi.management.service.ManagementGoodsMaterialsService;
|
import com.ruoyi.management.service.SlGoodsMaterialsService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.management.service.SlVolumeProductionRkService;
|
import io.micrometer.core.instrument.binder.BaseUnits;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 物资管理 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-25
|
*/
|
@Service
|
public class SlGoodsMaterialsServiceImpl extends ServiceImpl<SlGoodsMaterialsMapper, SlGoodsMaterials> implements SlGoodsMaterialsService {
|
|
@Resource
|
private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
|
|
@Resource
|
private ManagementGoodsMaterialsService managementGoodsMaterialsService;
|
|
|
@Override
|
public void addSlGoodsShelf(SlGoodsMaterialsDTO slGoodsMaterialsDTO) {
|
if(slGoodsMaterialsDTO.getId()==null){
|
SlGoodsMaterials slGoodsMaterials=new SlGoodsMaterials();
|
slGoodsMaterials.setGoodsMaterialsName(slGoodsMaterialsDTO.getGoodsMaterialsName());
|
slGoodsMaterials.setIsConsume(slGoodsMaterialsDTO.getIsConsume());
|
slGoodsMaterials.setGoodsMaterialsNo(slGoodsMaterialsDTO.getGoodsMaterialsNo());
|
slGoodsMaterials.setRepertory(slGoodsMaterialsDTO.getRepertory());
|
this.save(slGoodsMaterials);
|
}else{
|
SlGoodsMaterials byId = this.getById(slGoodsMaterialsDTO.getId());
|
if (slGoodsMaterialsDTO.getGoodsMaterialsName()!=null){
|
byId.setGoodsMaterialsName(slGoodsMaterialsDTO.getGoodsMaterialsName());
|
}
|
if (slGoodsMaterialsDTO.getRepertory()!=null){
|
byId.setRepertory(slGoodsMaterialsDTO.getRepertory());
|
LambdaQueryWrapper<ManagementGoodsMaterials> wrapper3= Wrappers.lambdaQuery();
|
wrapper3.eq(ManagementGoodsMaterials::getGoodsMaterialsId,byId.getId());
|
wrapper3.eq( ManagementGoodsMaterials::getDelFlag,0);
|
wrapper3.orderByDesc(ManagementGoodsMaterials::getCreateTime);
|
List<ManagementGoodsMaterials> page1 = managementGoodsMaterialsService.list(wrapper3);
|
for (ManagementGoodsMaterials pg:page1){
|
pg.setRepertory(slGoodsMaterialsDTO.getRepertory());
|
managementGoodsMaterialsService.updateById(pg);
|
}
|
|
}
|
byId.setGoodsMaterialsNo(slGoodsMaterialsDTO.getGoodsMaterialsNo());
|
if (slGoodsMaterialsDTO.getIsConsume()!=null){
|
byId.setIsConsume(slGoodsMaterialsDTO.getIsConsume());
|
}
|
this.updateById(byId);
|
}
|
}
|
|
@Override
|
public PageDTO<SlGoodsMaterialsVO> getGoodSmaterialsList(SlGoodsMaterialsQuery slGoodsMaterialsQuery) {
|
Page<SlGoodsMaterials> page = new Page<>(slGoodsMaterialsQuery.getPageCurr(), slGoodsMaterialsQuery.getPageSize());
|
LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery();
|
if (slGoodsMaterialsQuery.getGoodsMaterialsName()!=null&& !slGoodsMaterialsQuery.getGoodsMaterialsName().isEmpty()){
|
wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,slGoodsMaterialsQuery.getGoodsMaterialsName());
|
}
|
if (slGoodsMaterialsQuery.getIsConsume()!=0){
|
wrapper.eq(SlGoodsMaterials::getIsConsume,slGoodsMaterialsQuery.getIsConsume());
|
}
|
wrapper.eq( SlGoodsMaterials::getDelFlag,0);
|
wrapper.orderByDesc(SlGoodsMaterials::getCreateTime);
|
Page<SlGoodsMaterials> page1 = this.page(page, wrapper);
|
return PageDTO.of(page1,SlGoodsMaterialsVO.class);
|
}
|
|
@Override
|
public PageDTO<StoreManagementGoodSmaterialsVO> getStoreManagementGoodSmaterialsOne(StoreManagementGoodSmaterialsQuery storeManagementGoodSmaterialsQuery) {
|
LambdaQueryWrapper<SlVolumeProductionRk> wrappers= Wrappers.lambdaQuery();
|
wrappers.eq(SlVolumeProductionRk::getManagementId,storeManagementGoodSmaterialsQuery.getStoreManagementId());
|
List<SlVolumeProductionRk> slVolumeProductionRks = slVolumeProductionRkMapper.selectList(wrappers);
|
Set<Long> slVolumeProductionIdList = null;
|
slVolumeProductionIdList = slVolumeProductionRks.stream().map(SlVolumeProductionRk::getMaterialsId)
|
.collect(Collectors.toSet());
|
|
LambdaQueryWrapper< SlGoodsMaterials> wrapper1 =Wrappers.lambdaQuery();
|
if (storeManagementGoodSmaterialsQuery.getIsConsume()!=null&&storeManagementGoodSmaterialsQuery.getIsConsume()!=0){
|
wrapper1.eq(SlGoodsMaterials::getIsConsume,storeManagementGoodSmaterialsQuery.getIsConsume());
|
}
|
if (storeManagementGoodSmaterialsQuery.getGoodsMaterialsName()!=null){
|
wrapper1.like(SlGoodsMaterials::getGoodsMaterialsName,storeManagementGoodSmaterialsQuery.getGoodsMaterialsName());
|
}
|
List<SlGoodsMaterials> list1 = this.list(wrapper1);
|
|
Set<Long> SlGoodsMaterialsList = null;
|
SlGoodsMaterialsList = list1.stream().map(SlGoodsMaterials::getId)
|
.collect(Collectors.toSet());
|
|
|
Page<ManagementGoodsMaterials> page = new Page<>(storeManagementGoodSmaterialsQuery.getPageCurr(), storeManagementGoodSmaterialsQuery.getPageSize());
|
LambdaQueryWrapper< ManagementGoodsMaterials> wrapper= Wrappers.lambdaQuery();
|
|
if (!slVolumeProductionIdList.isEmpty()){
|
wrapper.in(ManagementGoodsMaterials::getManagementId,slVolumeProductionIdList);
|
}
|
if (!SlGoodsMaterialsList.isEmpty()){
|
wrapper.in(ManagementGoodsMaterials::getGoodsMaterialsId,SlGoodsMaterialsList);
|
}
|
wrapper.eq( ManagementGoodsMaterials::getDelFlag,0);
|
wrapper.orderByDesc(ManagementGoodsMaterials::getCreateTime);
|
Page<ManagementGoodsMaterials> page1 = managementGoodsMaterialsService.page(page, wrapper);
|
PageDTO<StoreManagementGoodSmaterialsVO> storeManagementGoodSmaterialsVOPageDTO = PageDTO.of(page1, StoreManagementGoodSmaterialsVO.class);
|
List<StoreManagementGoodSmaterialsVO> list = storeManagementGoodSmaterialsVOPageDTO.getList();
|
for (StoreManagementGoodSmaterialsVO li:list){
|
Double storeManagementGoodSmaterialsOne = slVolumeProductionRkMapper.getStoreManagementGoodSmaterialsOne(li.getGoodsMaterialsId());
|
SlGoodsMaterials byId = this.getById(li.getGoodsMaterialsId());
|
li.setGoodsMaterialsName(byId.getGoodsMaterialsName());
|
li.setIsConsume(byId.getIsConsume());
|
li.setAveragePrice(storeManagementGoodSmaterialsOne);
|
}
|
|
|
return storeManagementGoodSmaterialsVOPageDTO;
|
}
|
|
@Override
|
public StoreManagementGoodSmaterialsVO getSmaterialsOne(StoreManagementGoodSmaterialsQuery storeManagementGoodSmaterialsQuery) {
|
LambdaQueryWrapper< ManagementGoodsMaterials> wrapper= Wrappers.lambdaQuery();
|
|
|
wrapper.eq(ManagementGoodsMaterials::getGoodsMaterialsId,storeManagementGoodSmaterialsQuery.getGoodsMaterialsId());
|
|
wrapper.eq( ManagementGoodsMaterials::getDelFlag,0);
|
wrapper.orderByDesc(ManagementGoodsMaterials::getCreateTime);
|
ManagementGoodsMaterials page1 = managementGoodsMaterialsService.getOne(wrapper);
|
StoreManagementGoodSmaterialsVO storeManagementGoodSmaterialsVO = BeanUtils.copyBean(page1, StoreManagementGoodSmaterialsVO.class);
|
Double storeManagementGoodSmaterialsOne = slVolumeProductionRkMapper.getStoreManagementGoodSmaterialsOne(storeManagementGoodSmaterialsVO.getGoodsMaterialsId());
|
SlGoodsMaterials byId = this.getById(storeManagementGoodSmaterialsVO.getGoodsMaterialsId());
|
storeManagementGoodSmaterialsVO.setGoodsMaterialsName(byId.getGoodsMaterialsName());
|
storeManagementGoodSmaterialsVO.setIsConsume(byId.getIsConsume());
|
storeManagementGoodSmaterialsVO.setAveragePrice(storeManagementGoodSmaterialsOne);
|
return storeManagementGoodSmaterialsVO;
|
}
|
|
|
}
|