From da2c594ade5d69621dd11a13bb758477e2dc079e Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期三, 07 五月 2025 15:57:51 +0800
Subject: [PATCH] 危化品新版修改

---
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatFlowServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatFlowServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatFlowServiceImpl.java
index 34eb0f0..5fb9619 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatFlowServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatFlowServiceImpl.java
@@ -1,5 +1,7 @@
 package com.gkhy.hazmat.system.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.hazmat.common.api.CommonPage;
 import com.gkhy.hazmat.common.config.IdTableNameHandler;
@@ -17,8 +19,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -37,9 +41,14 @@
     public CommonPage selectHazmatFlowList(HzHazmatFlow hazmatFlow) {
         SysUser currentUser = SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(null,currentUser);
-        hazmatFlow.setCompanyId(currentUser.getCompanyId());
-        //设置分表id
-        IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
+            IdTableNameHandler.setCurrentId(hazmatFlow.getCompanyId());
+        }else {
+            hazmatFlow.setCompanyId(currentUser.getCompanyId());
+            //设置分表id
+            //todo
+            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        }
         PageUtils.startPage();
         List<HzHazmatFlow> flowList = baseMapper.selectHazmatFlowList(hazmatFlow);
         IdTableNameHandler.removeCurrentId();
@@ -53,6 +62,7 @@
         //设置分表id
         IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
         HzHazmatFlow hazmatFlow = baseMapper.selectById(hazmatFlowId);
+        IdTableNameHandler.removeCurrentId();
         if (!hazmatFlow.getCompanyId().equals(currentUser.getCompanyId())) {
             throw new ApiException("无权限查看其它企业数据");
         }
@@ -68,6 +78,7 @@
         //设置分表id
         IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
         int row = baseMapper.insert(hazmatFlow);
+        IdTableNameHandler.removeCurrentId();
         if (row < 1) {
             throw new ApiException("新增危化品流向失败");
         }
@@ -81,6 +92,7 @@
         //设置分表id
         IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
         HzHazmatFlow hazmatFlow=baseMapper.selectById(hazmatFlowId);
+        IdTableNameHandler.removeCurrentId();
         if(hazmatFlow==null){
             throw new ApiException("流向信息不存在");
         }
@@ -106,15 +118,19 @@
     }
 
     @Override
-    public List<HzHazmatFlow> selectAllHazmatFlowByCode(String code) {
+    public List<HzHazmatFlow> selectAllHazmatFlowByCode(String code,Long companyId) {
         SysUser currentUser=SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(null,currentUser);
         if(!code.startsWith(CodePrexEnum.MATERIAL.getCode())){
             throw new ApiException("条码格式不正确");
         }
-        //设置分表id
-        IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
-        HzHazmat hazmat=hazmatMapper.selectHazmatByCode(code,currentUser.getCompanyId());
+        if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
+            IdTableNameHandler.setCurrentId(companyId);
+        }else {
+            //设置分表id
+            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        }
+        HzHazmat hazmat=hazmatMapper.selectHazmatByCode(code,currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())?companyId:currentUser.getCompanyId());
         if(hazmat==null){
             throw new ApiException("危化品条码数据不存在");
         }
@@ -139,11 +155,15 @@
     }
 
     @Override
-    public List<HzHazmatFlow> getAllHazmatFlowByHazmatId(Long hazmatId) {
+    public List<HzHazmatFlow> getAllHazmatFlowByHazmatId(Long hazmatId,Long companyId) {
         SysUser currentUser=SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(null,currentUser);
-        //设置分表id
-        IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
+            IdTableNameHandler.setCurrentId(companyId);
+        }else {
+            //设置分表id
+            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        }
         HzHazmat hazmat=hazmatMapper.selectById(hazmatId);
         if(hazmat==null){
             throw new ApiException("危化品数据不存在");
@@ -159,8 +179,10 @@
             throw new ApiException("管理员不能操作");
         }
         if(hazmatFlow!=null){
-            if(!Objects.equals(user.getCompanyId(), hazmatFlow.getCompanyId())){
-                throw new ApiException("无权限操作其他企业数据");
+            if (!user.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
+                if(!Objects.equals(user.getCompanyId(), hazmatFlow.getCompanyId())){
+                    throw new ApiException("无权限操作其他企业数据");
+                }
             }
         }
     }

--
Gitblit v1.9.2