无关风月
2024-08-01 8876b1b9cd27fad076ea9e5f3e04197b84ba02bd
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
@@ -1,27 +1,26 @@
package com.ruoyi.management.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.*;
import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery;
import com.ruoyi.management.domain.dto.VolumeProductionZygCodeQuery;
import com.ruoyi.management.domain.vo.VolumeProductionCkglVO;
import com.ruoyi.management.domain.vo.VolumeProductionzZyglVO;
import com.ruoyi.management.domain.vo.getVolumeProductionRkgCodeVO;
import com.ruoyi.management.domain.vo.getVolumeProductionzyCodeVO;
import com.ruoyi.management.mapper.SlGoodsMaterialsMapper;
import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
import com.ruoyi.management.mapper.SlVolumeProductionZyMapper;
import com.ruoyi.management.domain.dto.*;
import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO;
import com.ruoyi.management.domain.vo.*;
import com.ruoyi.management.mapper.*;
import com.ruoyi.management.service.SlStoreManagementService;
import com.ruoyi.management.service.SlVolumeProductionZyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
import com.ruoyi.system.api.feignClient.SysUserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -41,12 +40,37 @@
    private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
    @Resource
    private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
    @Resource
    private SlVolumeProductionZyglMapper slVolumeProductionZyglMapper;
    @Resource
    private SlGoodsShelfMapper slGoodsShelfMapper;
    @Autowired
    private SlStoreManagementService service;
    @Override
    public PageDTO<getVolumeProductionzyCodeVO> getVolumeProductionzyCode(VolumeProductionZygCodeQuery volumeProductionZygCodeQuery) {
        SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(volumeProductionZygCodeQuery.getVolumeProductionzylId());
        LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
        wrapper2.eq(SlVolumeProductionRk::getManagementId,slVolumeProductionZygl.getBmanagementId());
        wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,volumeProductionZygCodeQuery.getStoreManagementNumber());
        wrapper2.eq(SlVolumeProductionRk::getShelfId,volumeProductionZygCodeQuery.getShelfId());
        wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
        List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId)
                .collect(Collectors.toSet());
        Page<SlVolumeProductionZy> page = new Page<>(volumeProductionZygCodeQuery.getPageCurr(), volumeProductionZygCodeQuery.getPageSize());
        LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
        wrapper1.like(SlVolumeProductionZy::getZyglId,volumeProductionZygCodeQuery.getVolumeProductionzylId());
        wrapper1.eq(SlVolumeProductionZy::getZyglId,volumeProductionZygCodeQuery.getVolumeProductionzylId());
        if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
            wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
        }
        wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
        Page<SlVolumeProductionZy> page2 = this.page(page, wrapper1);
@@ -61,4 +85,103 @@
        return SlGoodsShelfDTO;
    }
    @Override
    public void addSlVolumeProductionZy(AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO) {
        List<Long> rkId = addaddSlVolumeProductionZyDTO.getRkId();
        for (Long m:rkId){
            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m);
            SlVolumeProductionZy slVolumeProductionZy=new SlVolumeProductionZy();
            slVolumeProductionZy.setRkId(m);
            slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id());
            slVolumeProductionZy.setState(1);
            slVolumeProductionZy.setMaterialsId(slVolumeProductionRk.getMaterialsId());
            slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id());
            this.save(slVolumeProductionZy);
        }
    }
    @Override
    public void updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO) {
        for (UpdaddSlVolumeProductionZyDTO z:updaddSlVolumeProductionZyDTO){
            SlVolumeProductionZy byId = this.getById(z.getId());
            byId.setZyNum(z.getZyNum());
            this.updateById(byId);
        }
    }
    @Override
    public PageDTO<ManagementimgVolumeProductionZyVO> getSlVolumeProductionZyList(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
        SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
        LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
        wrapper2.eq(SlVolumeProductionRk::getManagementId,slVolumeProductionZygl.getBmanagementId());
        wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,managementimgVolumeProductionZyQuery.getStoreManagementNumber());
        wrapper2.eq(SlVolumeProductionRk::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
        wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
        wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
        List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId)
                .collect(Collectors.toSet());
        Page<SlVolumeProductionZy> page = new Page<>(managementimgVolumeProductionZyQuery.getPageCurr(), managementimgVolumeProductionZyQuery.getPageSize());
        LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
        wrapper1.eq(SlVolumeProductionZy::getZyglId,managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
        if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
            wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
        }
        wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
        wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
        Page<SlVolumeProductionZy> page2 = this.page(page, wrapper1);
        PageDTO<ManagementimgVolumeProductionZyVO> SlGoodsShelfDTO = PageDTO.of(page2, ManagementimgVolumeProductionZyVO.class);
        List<ManagementimgVolumeProductionZyVO> list2 = SlGoodsShelfDTO.getList();
        for(ManagementimgVolumeProductionZyVO list:list2) {
            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
            list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
            list.setRkNumber(slVolumeProductionRk.getRkNumber());
            list.setRepertoryZhai(slVolumeProductionRk.getRepertoryZhai());
            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
            list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
            list.setIsConsume(slGoodsMaterials.getIsConsume());
            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
            list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
            if(list.getScrkId()!=null){
                SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(list.getScrkId());
                list.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber());
                list.setRkNumber(slVolumeProductionRk1.getRkNumber());
            }
        }
        return SlGoodsShelfDTO;
    }
    @Override
    public NumberAndShelfVO getNumberAndShelfByManagementId(QueryDTO dto) {
        NumberAndShelfVO numberAndShelfVO = new NumberAndShelfVO();
        SlStoreManagement byId = service.getById(dto.getManagementId());
        List<String> number = new ArrayList<>();
        for (Integer i = 1; i <= byId.getStoreManagementNumber(); i++) {
            switch (i){
                case 1:
                    number.add("一层");
                    break;
                case 2:
                    number.add("二层");
                    break;
                case 3:
                    number.add("三层");
                    break;
            }
        }
        numberAndShelfVO.setNumber(number);
        QueryWrapper<SlGoodsShelf> eq = new QueryWrapper<SlGoodsShelf>()
                .eq("del_flag", "0")
                .eq("store_management_id", dto.getManagementId())
                .eq("store_management_number",dto.getManagementNumber());
        List<SlGoodsShelf> slGoodsShelves = slGoodsShelfMapper.selectList(eq);
        numberAndShelfVO.setGoodsShelfList(slGoodsShelves);
        return numberAndShelfVO;
    }
}