无关风月
2024-09-03 56dfe0d4bf81262622a1919cceb2b039fd356209
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
@@ -1,9 +1,13 @@
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.domain.R;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.management.domain.SlGoodsShelf;
import com.ruoyi.management.domain.SlStoreManagement;
@@ -18,9 +22,14 @@
import com.ruoyi.management.service.SlStoreManagementService;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import com.sun.corba.se.spi.ior.IdentifiableFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -43,19 +52,25 @@
    private SysUserClient sysUserClient;
    @Resource
    private TokenService tokenService;
    @Override
    public PageDTO<SlGoodsShelfVO> getGoodsShelfList(SlGoodsShelfQuery slGoodsShelfQuery) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userid = SecurityUtils.getUserId();
        SysUser data = sysUserClient.getSysUser(userid).getData();
        LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery();
        if(slGoodsShelfQuery.getStoreManagementName()!=null){
            wrapper.eq(SlStoreManagement::getStoreManagementName,slGoodsShelfQuery.getStoreManagementName());
        if(slGoodsShelfQuery.getStoreManagementName()!=null&& !slGoodsShelfQuery.getStoreManagementName().isEmpty()){
            wrapper.like(SlStoreManagement::getStoreManagementName,slGoodsShelfQuery.getStoreManagementName());
        }
        if (slGoodsShelfQuery.getStoreManagementNumber()!=0 && slGoodsShelfQuery.getStoreManagementNumber()!=null){
            wrapper.eq(SlStoreManagement::getStoreManagementGrade,slGoodsShelfQuery.getStoreManagementNumber());
        if (!data.getUserType().equals("00")){
            if (data.getRoleType()!=1){
                wrapper.eq(SlStoreManagement::getStoreManagementGrade,data.getRoleType());
            }
        }
        wrapper.eq(SlStoreManagement::getStoreManagementGrade,data.getRoleType());
        wrapper.eq(SlStoreManagement::getDelFlag,0);
        List<SlStoreManagement> page1 = SlStoreManagementService.list(wrapper);
        Set<Long> slStoreManagementIdList = null;
@@ -65,9 +80,24 @@
        Page<SlGoodsShelf> page = new Page<>(slGoodsShelfQuery.getPageCurr(), slGoodsShelfQuery.getPageSize());
        LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery();
        wrapper1.like(SlGoodsShelf::getGoodsShelfName,slGoodsShelfQuery.getGoodsShelfName());
        if (slStoreManagementIdList.size()>0){
            wrapper1.in(SlGoodsShelf::getStoreManagementId,slStoreManagementIdList);
        if (StringUtils.hasLength(slGoodsShelfQuery.getGoodsShelfName())){
            wrapper1.like(SlGoodsShelf::getGoodsShelfName,slGoodsShelfQuery.getGoodsShelfName());
        }
        if (slGoodsShelfQuery.getStoreManagementNumber()!=null && slGoodsShelfQuery.getStoreManagementNumber()!=0){
            wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,slGoodsShelfQuery.getStoreManagementNumber());
        }
        if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!="") {
            if (slStoreManagementIdList.size() > 0) {
                wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
            } else {
                slStoreManagementIdList=new HashSet<>();
                slStoreManagementIdList.add(0L);
                wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
            }
        }
        if (slGoodsShelfQuery.getStoreManagementId()!=null){
            wrapper1.eq(SlGoodsShelf::getStoreManagementId, slGoodsShelfQuery.getStoreManagementId());
        }
        wrapper1.eq( SlGoodsShelf::getDelFlag,0);
        wrapper1.orderByDesc(SlGoodsShelf::getCreateTime);
@@ -79,7 +109,6 @@
            SlStoreManagement byId = SlStoreManagementService.getById(list.getStoreManagementId());
            if (byId!=null){
                list.setStoreManagementName(byId.getStoreManagementName());
                list.setStoreManagementNumber(byId.getStoreManagementNumber());
                list.setProvinceName(byId.getProvinceName());
                list.setProvinceCode(byId.getProvinceCode());
                list.setCityName(byId.getCityName());
@@ -93,28 +122,171 @@
        return SlGoodsShelfDTO;
    }
    @Override
    public void addSlGoodsShelf(SlGoodsShelfDTO slGoodsShelfDTO) {
    public PageDTO<SlGoodsShelfVO> getGoodsShelfList1(SlGoodsShelfQuery slGoodsShelfQuery) {
        Long userid = SecurityUtils.getUserId();
        SysUser data = sysUserClient.getSysUser(userid).getData();
        LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery();
        if(slGoodsShelfQuery.getStoreManagementName()!=null&& !slGoodsShelfQuery.getStoreManagementName().isEmpty()){
            wrapper.like(SlStoreManagement::getStoreManagementName,slGoodsShelfQuery.getStoreManagementName());
        }
        if (!data.getUserType().equals("00")){
            if (data.getRoleType()!=1){
                wrapper.eq(SlStoreManagement::getStoreManagementGrade,data.getRoleType());
            }
        }
        wrapper.eq(SlStoreManagement::getDelFlag,0);
        List<SlStoreManagement> page1 = SlStoreManagementService.list(wrapper);
        Set<Long> slStoreManagementIdList = null;
        slStoreManagementIdList = page1.stream().map(SlStoreManagement::getId)
                .collect(Collectors.toSet());
        Page<SlGoodsShelf> page = new Page<>(slGoodsShelfQuery.getPageCurr(), slGoodsShelfQuery.getPageSize());
        LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery();
        if (StringUtils.hasLength(slGoodsShelfQuery.getGoodsShelfName())){
            wrapper1.like(SlGoodsShelf::getGoodsShelfName,slGoodsShelfQuery.getGoodsShelfName());
        }
        if (slGoodsShelfQuery.getStoreManagementNumber()!=null && slGoodsShelfQuery.getStoreManagementNumber()!=0){
            wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,slGoodsShelfQuery.getStoreManagementNumber());
        }
        if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!="") {
            if (slStoreManagementIdList.size() > 0) {
                wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
            } else {
                slStoreManagementIdList=new HashSet<>();
                slStoreManagementIdList.add(0L);
                wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
            }
        }
        if (slGoodsShelfQuery.getStoreManagementId()!=null){
            wrapper1.eq(SlGoodsShelf::getStoreManagementId, slGoodsShelfQuery.getStoreManagementId());
        }
        wrapper1.isNotNull(SlGoodsShelf::getImgId);
        wrapper1.eq( SlGoodsShelf::getDelFlag,0);
        wrapper1.orderByDesc(SlGoodsShelf::getCreateTime);
        Page<SlGoodsShelf> page2 = this.page(page, wrapper1);
        PageDTO<SlGoodsShelfVO> SlGoodsShelfDTO = PageDTO.of(page2, SlGoodsShelfVO.class);
        List<SlGoodsShelfVO> list2 = SlGoodsShelfDTO.getList();
        for(SlGoodsShelfVO list:list2){
            SlStoreManagement byId = SlStoreManagementService.getById(list.getStoreManagementId());
            if (byId!=null){
                list.setStoreManagementName(byId.getStoreManagementName());
                list.setProvinceName(byId.getProvinceName());
                list.setProvinceCode(byId.getProvinceCode());
                list.setCityName(byId.getCityName());
                list.setCityCode(byId.getCityCode());
                list.setCountyName(byId.getCountyName());
                list.setCountyCode(byId.getCountyCode());
                list.setTownCode(byId.getTownCode());
                list.setTownName(byId.getTownName());
            }
        }
        return SlGoodsShelfDTO;
    }
    @Override
    public R addSlGoodsShelf(SlGoodsShelfDTO slGoodsShelfDTO) {
        if (slGoodsShelfDTO.getId()==null){
            List<SlGoodsShelf> list = this.list(new QueryWrapper<SlGoodsShelf>()
                    .eq("del_flag","0")
                    .eq("store_management_id", slGoodsShelfDTO.getStoreManagementId())
                    .eq("goods_shelf_name", slGoodsShelfDTO.getGoodsShelfName()));
            if (list.size()>0){
                return R.fail("添加失败,当前仓库已有相同名称货架");
            }
            SlGoodsShelf slGoodsShelf=new SlGoodsShelf();
            slGoodsShelf.setGoodsShelfName(slGoodsShelfDTO.getGoodsShelfName());
            slGoodsShelf.setStoreManagementId(slGoodsShelfDTO.getStoreManagementId());
            slGoodsShelf.setStoreManagementNumber(slGoodsShelfDTO.getStoreManagementNumber());
            slGoodsShelf.setCreateTime(new Date());
            this.save(slGoodsShelf);
        }else{
            SlGoodsShelf slGoodsShelf = this.getById(slGoodsShelfDTO.getId());
            SlStoreManagement byId = SlStoreManagementService.getById(slGoodsShelf.getStoreManagementId());
            // 判断当前登陆人等级是否大于等于仓库等级
            Long userId = SecurityUtils.getUserId();
            SysUser data = sysUserClient.getSysUser(userId).getData();
            if (data!=null){
                if (!data.getUserType().equals("00")){
                    if (byId!=null){
                        if (data.getRoleType().equals(byId.getStoreManagementGrade())){
                            // 判断所在地是否一样
                            switch (data.getRoleType()){
                                case 3:
                                    if (!data.getCityCode().equals(byId.getCityCode())){
                                        return R.fail("权限不足");
                                    }
                                    break;
                                case 4:
                                    if (!data.getCountyCode().equals(byId.getCountyCode())){
                                        return R.fail("权限不足");
                                    }
                                    break;
                                case 5:
                                    if (!data.getTownCode().equals(byId.getTownCode())){
                                        return R.fail("权限不足");
                                    }
                                case 6:
                                    if (!data.getTownCode().equals(byId.getTownCode())){
                                        return R.fail("权限不足");
                                    }
                                    break;
                            }
                        }else{
                            return R.fail("权限不足");
                        }
                    }
                }
            }
            List<SlGoodsShelf> list = this.list(new QueryWrapper<SlGoodsShelf>()
                            .ne("id", slGoodsShelfDTO.getId())
                            .eq("del_flag","0")
                    .eq("store_management_id", slGoodsShelfDTO.getStoreManagementId())
                    .eq("goods_shelf_name", slGoodsShelfDTO.getGoodsShelfName()));
            if (list.size()>0){
                return R.fail("编辑失败,当前仓库已有相同名称货架");
            }
            if (slGoodsShelfDTO.getGoodsShelfName()!=null){
                slGoodsShelf.setGoodsShelfName(slGoodsShelfDTO.getGoodsShelfName());
            }
            if (slGoodsShelfDTO.getStoreManagementNumber()!=null){
                slGoodsShelf.setStoreManagementNumber(slGoodsShelfDTO.getStoreManagementNumber());
            }
            if (slGoodsShelfDTO.getGoodsShelfName()!=null){
                slGoodsShelf.setStoreManagementNumber(slGoodsShelfDTO.getStoreManagementNumber());
            if (slGoodsShelfDTO.getStoreManagementId()!=null){
                slGoodsShelf.setStoreManagementId(slGoodsShelfDTO.getStoreManagementId());
            }
            this.updateById(slGoodsShelf);
        }
        return R.ok();
    }
    @Override
    public SlGoodsShelfVO getSlGoodsShelfOne(Long id) {
        SlGoodsShelf byId1 = this.getById(id);
        SlGoodsShelfVO slGoodsShelfVO=new SlGoodsShelfVO();
        BeanUtils.copyProperties(byId1,slGoodsShelfVO.getClass());
        slGoodsShelfVO.setGoodsShelfName(byId1.getGoodsShelfName());
        SlStoreManagement byId = SlStoreManagementService.getById(byId1.getStoreManagementId());
        slGoodsShelfVO.setStoreManagementId(byId1.getStoreManagementId());
        slGoodsShelfVO.setStoreManagementName(byId.getStoreManagementName());
        slGoodsShelfVO.setStoreManagementNumber(byId1.getStoreManagementNumber());
        slGoodsShelfVO.setProvinceName(byId.getProvinceName());
        slGoodsShelfVO.setProvinceCode(byId.getProvinceCode());
        slGoodsShelfVO.setCityName(byId.getCityName());
        slGoodsShelfVO.setCityCode(byId.getCityCode());
        slGoodsShelfVO.setCountyName(byId.getCountyName());
        slGoodsShelfVO.setCountyCode(byId.getCountyCode());
        slGoodsShelfVO.setTownCode(byId.getTownCode());
        slGoodsShelfVO.setTownName(byId.getTownName());
        slGoodsShelfVO.setGrade(byId.getStoreManagementGrade());
        return slGoodsShelfVO;
    }
    @Override
@@ -122,7 +294,6 @@
        LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery();
        wrapper1.eq(SlGoodsShelf::getStoreManagementId,goodsShelfQuery.getStoreManagementId());
        wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,goodsShelfQuery.getStoreManagementNumber());
        wrapper1.eq(SlGoodsShelf::getIsStoreManagement,1);
        wrapper1.eq( SlGoodsShelf::getDelFlag,0);
        wrapper1.orderByDesc(SlGoodsShelf::getCreateTime);
        List<SlGoodsShelf> page2 = this.list(wrapper1);
@@ -131,12 +302,17 @@
    @Override
    public void fanzGoodsShelfList(GoodsShelfDTO goodsShelfDTO) {
        SlGoodsShelf slGoodsShelf = this.getById(goodsShelfDTO.getId());
        slGoodsShelf.setImgId(goodsShelfDTO.getImgId());
        slGoodsShelf.setIsStoreManagement(2);
        slGoodsShelf.setZbX(goodsShelfDTO.getZbX());
        slGoodsShelf.setZbY(goodsShelfDTO.getZbY());
        this.updateById(slGoodsShelf);
        for(GoodsShelfDTO.ShelfDTO g:goodsShelfDTO.getShelfDTOS()){
            SlGoodsShelf slGoodsShelf = this.getById(g.getId());
            slGoodsShelf.setImgId(goodsShelfDTO.getImgId());
            slGoodsShelf.setIsStoreManagement(2);
            slGoodsShelf.setZbX(g.getZbX());
            slGoodsShelf.setZbY(g.getZbY());
            slGoodsShelf.setWidth(g.getWidth());
            slGoodsShelf.setHeight(g.getHeight());
            this.updateById(slGoodsShelf);
        }
    }
    @Override
@@ -149,4 +325,19 @@
        List<SlGoodsShelf> page2 = this.list(wrapper1);
        return page2;
    }
    @Override
    public List<SlGoodsShelf> getGoodsSheManagementlfList(SlGoodsShelfQuery slGoodsShelfQuery) {
        LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery();
        if (slGoodsShelfQuery.getStoreManagementId()!=null){
            wrapper1.eq(SlGoodsShelf::getStoreManagementId,slGoodsShelfQuery.getStoreManagementId());
        }
        if (slGoodsShelfQuery.getStoreManagementNumber()!=null){
            wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,slGoodsShelfQuery.getStoreManagementNumber());
        }
        wrapper1.eq( SlGoodsShelf::getDelFlag,0);
        wrapper1.orderByDesc(SlGoodsShelf::getCreateTime);
        List<SlGoodsShelf> page2 = this.list(wrapper1);
        return page2;
    }
}