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 | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 323 insertions(+), 0 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 3bce630..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,10 +1,38 @@ 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; +import com.ruoyi.management.domain.dto.GoodsShelfDTO; +import com.ruoyi.management.domain.dto.GoodsShelfQuery; +import com.ruoyi.management.domain.dto.SlGoodsShelfDTO; +import com.ruoyi.management.domain.dto.SlGoodsShelfQuery; +import com.ruoyi.management.domain.vo.SlGoodsShelfVO; import com.ruoyi.management.mapper.SlGoodsShelfMapper; import com.ruoyi.management.service.SlGoodsShelfService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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; /** * <p> @@ -17,4 +45,299 @@ @Service public class SlGoodsShelfServiceImpl extends ServiceImpl<SlGoodsShelfMapper, SlGoodsShelf> implements SlGoodsShelfService { + @Resource + private SlStoreManagementService SlStoreManagementService; + + @Resource + 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&& !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.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 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.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 + public List<SlGoodsShelf> wfanzGoodsShelfList(GoodsShelfQuery goodsShelfQuery) { + LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlGoodsShelf::getStoreManagementId,goodsShelfQuery.getStoreManagementId()); + wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,goodsShelfQuery.getStoreManagementNumber()); + wrapper1.eq( SlGoodsShelf::getDelFlag,0); + wrapper1.orderByDesc(SlGoodsShelf::getCreateTime); + List<SlGoodsShelf> page2 = this.list(wrapper1); + return page2; + } + + @Override + public void fanzGoodsShelfList(GoodsShelfDTO goodsShelfDTO) { + 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 + public List<SlGoodsShelf> getStoreManagementimgSheif(GoodsShelfDTO goodsShelfDTO) { + LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(SlGoodsShelf::getImgId,goodsShelfDTO.getImgId()); + wrapper1.eq(SlGoodsShelf::getIsStoreManagement,2); + wrapper1.eq( SlGoodsShelf::getDelFlag,0); + wrapper1.orderByDesc(SlGoodsShelf::getCreateTime); + 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; + } } -- Gitblit v1.7.1