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/SlStoreManagementServiceImpl.java |  219 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 162 insertions(+), 57 deletions(-)

diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java
index 33761db..600df28 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlStoreManagementServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.management.service.impl;
 
+import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -8,21 +9,18 @@
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.management.domain.ManagementGoodsMaterials;
-import com.ruoyi.management.domain.SlStoreManagement;
+import com.ruoyi.management.domain.*;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.management.domain.SlVolumeProductionRk;
 import com.ruoyi.management.domain.dto.QStoreManagementQuery;
 import com.ruoyi.management.domain.dto.StoreManagementDTO;
 import com.ruoyi.management.domain.dto.StoreManagementQuery;
 import com.ruoyi.management.domain.vo.SlGoodsShelfVO;
 import com.ruoyi.management.domain.vo.SlStoreManagementInventoryVO;
-import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper;
-import com.ruoyi.management.mapper.SlStoreManagementMapper;
-import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
-import com.ruoyi.management.mapper.SlVolumeProductionRkglMapper;
+import com.ruoyi.management.mapper.*;
+import com.ruoyi.management.service.SlAuditRecordService;
+import com.ruoyi.management.service.SlAuditService;
 import com.ruoyi.management.service.SlStoreManagementService;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
@@ -47,6 +45,10 @@
 
     @Resource
     private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
+    @Autowired
+    private SlAuditMapper slAuditMapper;
+    @Autowired
+    private SlAuditRecordMapper slAuditRecordMapper;
 
     @Override
     public PageDTO<SlStoreManagement> getStoreManagementList(StoreManagementQuery storeManagementQuery) {
@@ -105,6 +107,37 @@
             this.save(slStoreManagement);
         }else {
             SlStoreManagement slStoreManagement = this.getById(storeManagementDTO.getId());
+            if (!(slStoreManagement.getAdministratorId().equals(storeManagementDTO.getAdministratorId())
+                    && slStoreManagement.getCompetentId().equals(storeManagementDTO.getCompetentId())
+                    && slStoreManagement.getDirectorId().equals(storeManagementDTO.getDirectorId()))){
+                // 如果修改了 主任 主管 管理员id 那么需要将正在走审批流程的单子全部修改
+                List<SlAudit> list1 =slAuditMapper.selectList(new LambdaQueryWrapper<SlAudit>().eq(SlAudit::getManagementId, storeManagementDTO.getId())
+                        .eq(SlAudit::getDelFlag, "0").ne(SlAudit::getState, 4));
+                for (SlAudit slAudit : list1) {
+                    List<SlAuditRecord> list = slAuditRecordMapper.selectList(new LambdaQueryWrapper<SlAuditRecord>()
+                            .eq(SlAuditRecord::getAuditId, slAudit.getId())
+                            .eq(SlAuditRecord::getDelFlag, "0"));
+                    for (SlAuditRecord slAuditRecord : list) {
+                        if (slAuditRecord.getType() == 1){
+                            if (slAuditRecord.getState()!=2){
+                                slAuditRecord.setShenhId(storeManagementDTO.getAdministratorId());
+                            }
+                        }
+                        if (slAuditRecord.getType() == 2){
+                            if (slAuditRecord.getState()!=2){
+                                slAuditRecord.setShenhId(storeManagementDTO.getCompetentId());
+                            }
+                        }
+                        if (slAuditRecord.getType() == 3){
+                            if (slAuditRecord.getState()!=2){
+                                slAuditRecord.setShenhId(storeManagementDTO.getDirectorId());
+                            }
+                        }
+                        slAuditRecordMapper.updateById(slAuditRecord);
+                    }
+                }
+            }
+
             List<SlStoreManagement> list = this.list(new QueryWrapper<SlStoreManagement>()
                     .eq("store_management_grade", storeManagementDTO.getStoreManagementGrade())
                     .eq("store_management_no", storeManagementDTO.getStoreManagementNo())
@@ -184,73 +217,145 @@
             if (!data.getUserType().equals("00")){
                 // 仓库管理员 根据仓库管理员的等级查询对应的仓库
                 switch (data.getRoleType()){
-                    case 3:
-                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
-                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                    case 2:
+                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){
+                            if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                            }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                            }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                            }else{
+                                String[] split = StoreManagementQuery.getStoreManagementGrade().split(",");
+                                // 如果没指定所在地 查所有
+                                wrapper.in(SlStoreManagement::getStoreManagementGrade,split);
+                            }
                         }else{
-                            wrapper.eq(SlStoreManagement::getStoreManagementGrade,3);
-
+                            // 没有选择仓库等级 根据登陆人等级来查询
+                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,2);
                         }
-                        if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
-                            wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
-                        }else if (StoreManagementQuery.getCountyCode()!=null){
-                            wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
-                            wrapper.isNull(SlStoreManagement::getTownCode);
-                        }else if (StoreManagementQuery.getTownCode()!=null){
-                            wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+
+                        break;
+                    case 3:
+                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){
+                            if (StoreManagementQuery.getTownCode()!=null&& StoreManagementQuery.getTownCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                            }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                            }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                            }else{
+                                // 如果没指定所在地 查所有
+                                String[] split = StoreManagementQuery.getStoreManagementGrade().split(",");
+                                // 如果没指定所在地 查所有
+                                wrapper.in(SlStoreManagement::getStoreManagementGrade,split);
+                                wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
+
+                            }
                         }else{
+                            // 没有选择仓库等级 根据登陆人等级来查询 并且根据登陆人所在市来查询
                             wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
-                            wrapper.isNull(SlStoreManagement::getCountyCode);
+                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,3);
                         }
                         break;
                     case 4:
-                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
-                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){
+                            if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                            }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                            }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                            }else{
+                                // 如果没指定所在地 查所有
+                                String[] split = StoreManagementQuery.getStoreManagementGrade().split(",");
+                                // 如果没指定所在地 查所有
+                                wrapper.in(SlStoreManagement::getStoreManagementGrade,split);
+                                wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
+                            }
                         }else{
-                            wrapper.eq(SlStoreManagement::getStoreManagementGrade,4);
-                        }
-                        if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
-                            wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
-                        }else{
+                            // 没有选择仓库等级 根据登陆人等级来查询
                             wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
-                            wrapper.isNull(SlStoreManagement::getTownCode);
+                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,4);
                         }
                         break;
                     case 5:
-                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
-                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
-                        }else{
-                            wrapper.eq(SlStoreManagement::getStoreManagementGrade,5);
-                        }
-                        if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
-                            wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
-                        }else{
-                            wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
+                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){
+                            if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                            }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                            }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                            }else{
+                                // 如果没指定所在地 查所有
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
 
+                            }
+                        }else{
+                            // 没有选择仓库等级 根据登陆人等级来查询
+                            wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
+                            wrapper.eq(SlStoreManagement::getStoreManagementGrade,5);
                         }
                         break;
                     case 6:
-                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
-                            wrapper.ge(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                        if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=""){
+                            if (StoreManagementQuery.getTownCode()!=null&& StoreManagementQuery.getTownCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                            }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                            }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                                wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                                wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                            }else{
+                                // 如果没指定所在地 查所有
+                                String[] split = StoreManagementQuery.getStoreManagementGrade().split(",");
+                                // 如果没指定所在地 查所有
+                                wrapper.in(SlStoreManagement::getStoreManagementGrade,split);
+                                wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
+                            }
                         }else{
+                            // 没有选择仓库等级 根据登陆人等级来查询
+                            wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
                             wrapper.eq(SlStoreManagement::getStoreManagementGrade,6);
                         }
                         break;
                 }
 
             }else {
-                if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!=0){
-                    wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                if (StoreManagementQuery.getStoreManagementGrade()!=null&&StoreManagementQuery.getStoreManagementGrade()!="" ){
+                    if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
+                        wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                        wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
+                    }else if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
+                        wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                        wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
+                    }else if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
+                        wrapper.eq(SlStoreManagement::getStoreManagementGrade,StoreManagementQuery.getStoreManagementGrade());
+                        wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
+                    }else {
+                        // 如果没指定所在地 查所有
+                        String[] split = StoreManagementQuery.getStoreManagementGrade().split(",");
+                        // 如果没指定所在地 查所有
+                        wrapper.in(SlStoreManagement::getStoreManagementGrade,split);
+                    }
                 }
-                if (StoreManagementQuery.getCityCode()!=null && StoreManagementQuery.getCityCode()!=""){
-                    wrapper.eq(SlStoreManagement::getCityCode,StoreManagementQuery.getCityCode());
-                }
-                if (StoreManagementQuery.getCountyCode()!=null && StoreManagementQuery.getCountyCode()!=""){
-                    wrapper.eq(SlStoreManagement::getCountyCode,StoreManagementQuery.getCountyCode());
-                }
-                if (StoreManagementQuery.getTownCode()!=null && StoreManagementQuery.getTownCode()!=""){
-                    wrapper.eq(SlStoreManagement::getTownCode,StoreManagementQuery.getTownCode());
-                }
+
             }
 
         }
@@ -274,8 +379,6 @@
                 case 3:
                     wrapper.ge(SlStoreManagement::getStoreManagementGrade,3);
                     wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
-
-
                     break;
                 case 4:
                     wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
@@ -298,12 +401,14 @@
         }
 
         if ( storeManagementQuery.getStoreManagementGrade()!=null&&!storeManagementQuery.getStoreManagementGrade().equals("0")){
-            String[] split = storeManagementQuery.getStoreManagementGrade().split(",");
-            List<Integer> arr=new ArrayList<>();
-            for(int i=0;i<split.length;i++){
-                arr.add(Integer.valueOf(split[i]));
+            if (!storeManagementQuery.getStoreManagementGrade().contains("0")){
+                String[] split = storeManagementQuery.getStoreManagementGrade().split(",");
+                List<Integer> arr=new ArrayList<>();
+                for(int i=0;i<split.length;i++){
+                    arr.add(Integer.valueOf(split[i]));
+                }
+                wrapper.in(SlStoreManagement::getStoreManagementGrade,arr);
             }
-            wrapper.in(SlStoreManagement::getStoreManagementGrade,arr);
         }
         wrapper.eq( SlStoreManagement::getDelFlag,0);
         wrapper.orderByDesc(SlStoreManagement::getCreateTime);

--
Gitblit v1.7.1