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