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/SlVolumeProductionRkglServiceImpl.java |  193 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 159 insertions(+), 34 deletions(-)

diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java
index 43888ca..ea59871 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java
@@ -1,10 +1,12 @@
 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.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.*;
 import com.ruoyi.management.domain.dto.SupplierVolumeProductionRkglQuery;
@@ -18,7 +20,9 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
+import com.ruoyi.system.api.feignClient.LogClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -57,6 +61,9 @@
     @Resource
     private  ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
 
+    @Resource
+    private LogClient logClient;
+
     @Override
     public PageDTO<SupplierVolumeProductionRkglVO> getSupplierVolumeProductionRkglList(SupplierVolumeProductionRkglQuery supplierVolumeProductionRkglQuery) {
         Page<SlVolumeProductionRkgl> page = new Page<>(supplierVolumeProductionRkglQuery.getPageCurr(), supplierVolumeProductionRkglQuery.getPageSize());
@@ -79,93 +86,196 @@
     }
 
     @Override
-    public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Integer id) {
+    public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Long id) {
         SlVolumeProductionRkgl byId = this.getById(id);
+        // 根据仓库id 查询仓库管理员
         VolumeProductionRkgInfoVO v=BeanUtils.copyBean(byId, VolumeProductionRkgInfoVO.class);
         SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
+        v.setZhuren(slStoreManagement.getDirectorId());
+        v.setZhuguan(slStoreManagement.getCompetentId());
+        v.setGuanliyuan(slStoreManagement.getAdministratorId());
         v.setStoreManagementName(slStoreManagement.getStoreManagementName());
-        SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData();
-        v.setSupplierName(data.getNickName());
-        v.setSupplierPhone(data.getPhonenumber());
-        SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
-        v.setSysName(data1.getNickName());
-        v.setSysPhone(data1.getPhonenumber());
+        if (byId.getSupplierId()!=null){
+            SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData();
+            if (data!=null){
+                v.setSupplierName(data.getNickName());
+                v.setSupplierPhone(data.getPhonenumber());
+            }
+        }
+        v.setSupplierId(byId.getSupplierId());
+        if (byId.getSysId()!=null){
+            SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
+            if (data1!=null){
+                v.setSysName(data1.getNickName());
+                v.setSysPhone(data1.getPhonenumber());
+            }
+        }
+        v.setAuthorization(byId.getAuthorizationUrl());
+        v.setReason(byId.getReasonsRefusal());
         return v;
     }
-
+    @Autowired
+    private TokenService tokenService;
     @Override
     public PageDTO<SupplierVolumeProductionRkglVO> getslVolumeProductionRkglList(getVolumeProductionRkQuery getVolumeProductionRkQuery) {
         Page<SlVolumeProductionRkgl> page = new Page<>(getVolumeProductionRkQuery.getPageCurr(), getVolumeProductionRkQuery.getPageSize());
 
         List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolumeProductionRkQuery).getData();
         Set<Long> goodsSkuIdList = null;
+        List<Long> managementIds = new ArrayList<>();
         goodsSkuIdList = data1.stream().map(SysUser::getUserId)
                 .collect(Collectors.toSet());
-
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser data2 = sysUserClient.getSysUser(userid).getData();
         LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery();
-        wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState());
-        wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus,getVolumeProductionRkQuery.getAuditStatus());
+        QueryWrapper<SlStoreManagement> storeManagementGrade = new QueryWrapper<SlStoreManagement>()
+                .eq("del_flag", "0");
+        if (data2!=null){
+            if (!data2.getUserType().equals("00")){
+                // 仓库管理员 根据仓库管理员的等级查询对应的仓库
+                switch (data2.getRoleType()){
+                    case 3:
+                        storeManagementGrade.ge("store_management_grade",3);
+                        storeManagementGrade.eq("city_code",data2.getCityCode());
+                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
+                                .map(SlStoreManagement::getId).collect(Collectors.toList());
+                        break;
+                    case 4:
+                        storeManagementGrade.ge("store_management_grade",4);
+                        storeManagementGrade.eq("county_code",data2.getCountyCode());
+                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
+                                .map(SlStoreManagement::getId).collect(Collectors.toList());
+                        break;
+                    case 5:
+                        storeManagementGrade.ge("store_management_grade",5);
+                        storeManagementGrade.eq("town_code",data2.getTownCode());
+                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
+                                .map(SlStoreManagement::getId).collect(Collectors.toList());
+                        break;
+                    case 6:
+                        storeManagementGrade.eq("store_management_grade",6);
+                        storeManagementGrade.eq("town_code",data2.getTownCode());
+                        managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream()
+                                .map(SlStoreManagement::getId).collect(Collectors.toList());
+                        break;
+                }
+
+            }
+
+        }
+        if (!managementIds.isEmpty()){
+            wrapper1.in(SlVolumeProductionRkgl::getManagementId,managementIds);
+        }
+        if (getVolumeProductionRkQuery.getPresentState()!=null && getVolumeProductionRkQuery.getPresentState()!=0){
+            wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState());
+        }
+        if (getVolumeProductionRkQuery.getAuditStatus()!=null && getVolumeProductionRkQuery.getAuditStatus()!=0) {
+            wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus, getVolumeProductionRkQuery.getAuditStatus());
+        }
         if (goodsSkuIdList.size()>0){
+            wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList);
+        }else{
+            goodsSkuIdList=new HashSet<>();
+            goodsSkuIdList.add(0l);
             wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList);
         }
         wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0);
-        wrapper1.orderByDesc(SlVolumeProductionRkgl::getCreateTime);
+        wrapper1.orderByDesc(SlVolumeProductionRkgl::getStartiTime);
         Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1);
-
         PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class);
         List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList();
         for(SupplierVolumeProductionRkglVO list:list2){
-            SysUser data = sysUserClient.getSysUser(list.getSupplierId()).getData();
+            SysUser data = sysUserClient.getSysUser(list.getSysId()).getData();
             list.setNickName(data.getNickName());
             list.setPhonenumber(data.getPhonenumber());
             SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId());
-            list.setStoreManagementName(slStoreManagement.getStoreManagementName());
+            if (slStoreManagement!=null){
+                list.setStoreManagementName(slStoreManagement.getStoreManagementName());
+            }
         }
         return SlGoodsShelfDTO;
     }
 
     @Override
-    public void addVolumeProductionRkgl(VolumeProductionRkglDTO volumeProductionRkglDTO) {
+    public Long addVolumeProductionRkgl(VolumeProductionRkglDTO volumeProductionRkglDTO) {
+        SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(volumeProductionRkglDTO.getManagementId());
+        String directorId = slStoreManagement.getDirectorId();
+        String competentId = slStoreManagement.getCompetentId();
+        String administratorId = slStoreManagement.getAdministratorId();
         Long userid = SecurityUtils.getUserId();
-        if (volumeProductionRkglDTO.getId()!=null){
-            SlVolumeProductionRkgl slVolumeProductionRkgl=new  SlVolumeProductionRkgl();
+        List<String> list1 = Arrays.asList(administratorId.split(","));
+        List<String> list2 = Arrays.asList(competentId.split(","));
+        List<String> list3 = Arrays.asList(directorId.split(","));
+        SlVolumeProductionRkgl slVolumeProductionRkgl=null;
+        if (volumeProductionRkglDTO.getId()==null){
+            slVolumeProductionRkgl = new  SlVolumeProductionRkgl();
             slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl());
-            slVolumeProductionRkgl.setAuthorization(volumeProductionRkglDTO.getAuthorization());
-            slVolumeProductionRkgl.setAuditStatus(1);
+            slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization());
             slVolumeProductionRkgl.setManagementId(volumeProductionRkglDTO.getManagementId());
+            slVolumeProductionRkgl.setAuditStatus(1);
             slVolumeProductionRkgl.setPresentState(1);
             slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId());
             slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource());
             slVolumeProductionRkgl.setStartiTime(new Date());
             slVolumeProductionRkgl.setSysId(userid);
             slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark());
+            // 如果发起人是主任 主管 或 管理员
+            if (list1.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(1);
+                slVolumeProductionRkgl.setPresentState(2);
+            }
+            if (list2.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(1);
+                slVolumeProductionRkgl.setPresentState(3);
+            }
+            if (list3.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(3);
+                slVolumeProductionRkgl.setPresentState(4);
+            }
             this.save(slVolumeProductionRkgl);
         }else{
-            SlVolumeProductionRkgl byId = this.getById(volumeProductionRkglDTO.getId());
+            slVolumeProductionRkgl = this.getById(volumeProductionRkglDTO.getId());
+            slVolumeProductionRkgl.setPresentState(1);
+            slVolumeProductionRkgl.setAuditStatus(1);
             if (volumeProductionRkglDTO.getSource()!=null){
-                byId.setSource(volumeProductionRkglDTO.getSource());
+                slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource());
             }
             if (volumeProductionRkglDTO.getRemark()!=null){
-                byId.setRemark(volumeProductionRkglDTO.getRemark());
+                slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark());
             }
             if (volumeProductionRkglDTO.getSupplierId()!=null){
-                byId.setSupplierId(volumeProductionRkglDTO.getSupplierId());
+                slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId());
             }
             if (volumeProductionRkglDTO.getAttachmentUrl()!=null){
-                byId.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl());
+                slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl());
             }
             if (volumeProductionRkglDTO.getAuthorization()!=null){
-                byId.setAuthorization(volumeProductionRkglDTO.getAuthorization());
+                slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization());
             }
-            this.updateById(byId);
+            // 如果发起人是主任 主管 或 管理员
+            if (list1.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(1);
+                slVolumeProductionRkgl.setPresentState(2);
+            }
+            if (list2.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(1);
+                slVolumeProductionRkgl.setPresentState(3);
+            }
+            if (list3.contains(userid.toString())){
+                slVolumeProductionRkgl.setAuditStatus(3);
+                slVolumeProductionRkgl.setPresentState(4);
+            }
+            this.updateById(slVolumeProductionRkgl);
+
         }
+        return slVolumeProductionRkgl.getId();
     }
 
     @Override
-    public VolumeProductionRkgInventoryVO getVolumeProductionRkgInventory(Integer id) {
+    public VolumeProductionRkgInventoryVO getVolumeProductionRkgInventory(Long id) {
         SlVolumeProductionRkgl byId = this.getById(id);
         VolumeProductionRkgInventoryVO vo = new VolumeProductionRkgInventoryVO();
-        SysUser data = sysUserClient.getSysUser(byId.getId()).getData();
+        SysUser data = sysUserClient.getSysUser(byId.getSysId()).getData();
         vo.setSysPhone(data.getPhonenumber());
         vo.setSysName(data.getNickName());
         vo.setStartiTime(byId.getStartiTime());
@@ -173,7 +283,7 @@
         vo.setStoreManagementName(slStoreManagement.getStoreManagementName());
         String directorId = slStoreManagement.getDirectorId();
         List<String> stri = Arrays.asList(directorId.split(","));
-        String str1 = null;
+        String str1 ="";
         if (stri.size() > 0) {
             for (String str : stri) {
                 SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -184,7 +294,7 @@
 
         String competentId = slStoreManagement.getCompetentId();
         List<String> stri1 = Arrays.asList(competentId.split(","));
-        String str11 = null;
+        String str11 = "";
         if (stri1.size() > 0) {
             for (String str : stri1) {
                 SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -195,7 +305,7 @@
 
         String administratorId = slStoreManagement.getAdministratorId();
         List<String> stri11 = Arrays.asList(administratorId.split(","));
-        String str111 = null;
+        String str111 = "";
         if (stri11.size() > 0) {
             for (String str : stri11) {
                 SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData();
@@ -211,6 +321,7 @@
         wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, byId.getId());
         wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0);
         wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
+        SysUser data1 = sysUserClient.getSysUser(byId.getSupplierId()).getData();
         List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1);
         for (SlVolumeProductionRk list : page2) {
                 ManagementimgVolumeProductionRkVO rkVO = new ManagementimgVolumeProductionRkVO();
@@ -220,26 +331,34 @@
                 rkVO.setRkModel(list.getRkModel());
                 rkVO.setRkNum(list.getRkNum());
                 rkVO.setRkPice(list.getRkPice());
-                rkVO.setStoreManagementNumber(rkVO.getStoreManagementNumber());
+                rkVO.setStoreManagementNumber(list.getStoreManagementNumber());
                 SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId());
                 rkVO.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
+                rkVO.setSupplierName(data1.getNickName());
+                managementList.add(rkVO);
         }
+        vo.setManagementimgVolumeProductionRkVOList(managementList);
         return vo;
     }
 
     @Override
-    public void rk(Integer id) {
+    public void rk(Long id) {
         LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery();
         wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, id);
         wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0);
         wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
         List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1);
         for (SlVolumeProductionRk list : page2) {
+            list.setNewAddTime("1");
+            list.setSmerwmNum(list.getErwmNum());
             LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
             wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId());
             wrapper2.eq(ManagementGoodsMaterials::getManagementId,list.getManagementId());
             wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0);
             ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2);
+
+            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId());
+
             if (managementGoodsMaterials!=null){
                 Long repertorySum = managementGoodsMaterials.getRepertorySum();
                 Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai();
@@ -247,6 +366,7 @@
                 Long re1=repertoryZhai+list.getRkNum();
                 managementGoodsMaterials.setRepertorySum(re);
                 managementGoodsMaterials.setRepertoryZhai(re1);
+                managementGoodsMaterials.setRepertory(slGoodsMaterials.getRepertory());
                 managementGoodsMaterialsMapper.updateById(managementGoodsMaterials);
             }else{
                 ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials();
@@ -254,14 +374,19 @@
                 managementGoodsMaterials1.setGoodsMaterialsId(list.getMaterialsId());
                 managementGoodsMaterials1.setRepertoryZhai(list.getRkNum());
                 managementGoodsMaterials1.setRepertorySum(list.getRkNum());
+                managementGoodsMaterials1.setCreateTime(new Date());
+                managementGoodsMaterials1.setRepertory(slGoodsMaterials.getRepertory());
                 managementGoodsMaterialsMapper.insert(managementGoodsMaterials1);
             }
+            slVolumeProductionRkMapper.updateById(list);
         }
         SlVolumeProductionRkgl byId = this.getById(id);
         byId.setPresentState(4);
         byId.setAuditStatus(6);
         byId.setEndTime(new Date());
         this.updateById(byId);
+
+        logClient.savelong();
     }
 
 }

--
Gitblit v1.7.1