无关风月
2024-09-03 56dfe0d4bf81262622a1919cceb2b039fd356209
ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
@@ -7,6 +7,7 @@
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;
@@ -21,10 +22,13 @@
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;
@@ -48,8 +52,12 @@
    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();
@@ -57,9 +65,12 @@
        if(slGoodsShelfQuery.getStoreManagementName()!=null&& !slGoodsShelfQuery.getStoreManagementName().isEmpty()){
            wrapper.like(SlStoreManagement::getStoreManagementName,slGoodsShelfQuery.getStoreManagementName());
        }
        if (data.getRoleType()!=1){
            wrapper.eq(SlStoreManagement::getStoreManagementGrade,data.getRoleType());
        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;
@@ -111,7 +122,73 @@
        return SlGoodsShelfDTO;
    }
    @Override
    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){
@@ -126,16 +203,55 @@
            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("添加失败,当前仓库已有相同名称货架");
                return R.fail("编辑失败,当前仓库已有相同名称货架");
            }
            if (slGoodsShelfDTO.getGoodsShelfName()!=null){
                slGoodsShelf.setGoodsShelfName(slGoodsShelfDTO.getGoodsShelfName());