From 56dfe0d4bf81262622a1919cceb2b039fd356209 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 16:52:49 +0800 Subject: [PATCH] 代码提交 bug解决 --- ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java | 216 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 196 insertions(+), 20 deletions(-) diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java index 202a013..b21c955 100644 --- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java +++ b/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 -- Gitblit v1.7.1