ly 3 년 전
부모
커밋
5234136bd4

+ 4 - 1
master/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java

@@ -114,7 +114,10 @@ public class DataScopeAspect
             }
             else if (DATA_SCOPE_DEPT.equals(dataScope))
             {
-                sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
+//                sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
+                sqlString.append(StringUtils.format(
+                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or dept_id = 100 )",
+                        deptAlias, user.getDeptId(), user.getDeptId()));
             }
             else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
             {

+ 1 - 1
master/src/main/java/com/ruoyi/framework/aspectj/DataScopePlantAspect.java

@@ -116,7 +116,7 @@ public class DataScopePlantAspect
             }
             else if (DATA_SCOPE_DEPT.equals(dataScope))
             {
-                sqlString.append(StringUtils.format(" OR {}.PLANT_CODE IN (SELECT sp.NAME FROM SYS_PLANT sp, SYS_DEPT sd WHERE sd.DEPT_ID = {} AND sp.DEPT_CODE = sd.DEPT_NAME ) ", deptAlias, user.getDeptId()));
+                sqlString.append(StringUtils.format(" OR {}.PLANT_CODE IN (SELECT sp.NAME FROM SYS_PLANT sp, SYS_DEPT sd WHERE (sd.DEPT_ID = {}or find_in_set({}, sd.ancestors) > 0) AND sp.DEPT_CODE = sd.DEPT_NAME ) ", deptAlias, user.getDeptId(), user.getDeptId()));
             }
             else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
             {

+ 5 - 1
master/src/main/java/com/ruoyi/project/system/controller/SysPlantController.java

@@ -67,11 +67,15 @@ public class SysPlantController extends BaseController
             // 如果是超级管理员,则不过滤数据
             if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
             {
+                //直全部权限
                 if (currentUser.getDataScope().equals("1")) {
                     list = sysPlantService.selectSysPlantList(sysPlant);
-                }else {
+                }else if (currentUser.getDataScope().equals("2")){ //直定义权限
                     sysPlant.setPlantId(currentUser.getUserId());
                     list = sysPlantService.selectSysMyPlantList(sysPlant);
+                }else if (currentUser.getDataScope().equals("3")){//本部门
+                    sysPlant.setPlantId(currentUser.getUserId());
+                    list = sysPlantService.selectSysMyPlantList3(sysPlant);
                 }
             }else {
                 list = sysPlantService.selectSysPlantList(sysPlant);

+ 1 - 0
master/src/main/java/com/ruoyi/project/system/mapper/SysPlantMapper.java

@@ -64,6 +64,7 @@ public interface SysPlantMapper
     List<SysPlant> selectSysPlantByPlants(List plantIds);
 
     List<SysPlant> selectMySysPlantList(SysPlant sysPlant);
+    List<SysPlant> selectMySysPlantList3(SysPlant sysPlant);
 
     List<SysPlant> selectSysPlantByDeptId(Long deptId);
 }

+ 2 - 0
master/src/main/java/com/ruoyi/project/system/service/ISysPlantService.java

@@ -63,5 +63,7 @@ public interface ISysPlantService
 
     List<SysPlant> selectSysMyPlantList(SysPlant sysPlant);
 
+    List<SysPlant> selectSysMyPlantList3(SysPlant sysPlant);
+
     List<SysPlant> selectSysPlantByDeptId(Long deptId);
 }

+ 5 - 0
master/src/main/java/com/ruoyi/project/system/service/impl/SysPlantServiceImpl.java

@@ -101,6 +101,11 @@ public class SysPlantServiceImpl implements ISysPlantService
         return sysPlantMapper.selectMySysPlantList(sysPlant);
     }
 
+    @Override
+    public List<SysPlant> selectSysMyPlantList3(SysPlant sysPlant) {
+        return sysPlantMapper.selectMySysPlantList3(sysPlant);
+    }
+
     @Override
     public List<SysPlant> selectSysPlantByDeptId(Long deptId) {
         return sysPlantMapper.selectSysPlantByDeptId(deptId);

+ 18 - 0
master/src/main/resources/mybatis/system/SysPlantMapper.xml

@@ -52,6 +52,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and sp.del_flag = 0
         order by sp.order_num , sp.name
     </select>
+    <select id="selectMySysPlantList3" parameterType="SysPlant" resultMap="SysPlantResult">
+        SELECT
+            sp.NAME
+        FROM
+            SYS_PLANT sp
+        WHERE
+                sp.DEPT_CODE IN (
+                SELECT DISTINCT
+                    m.DEPT_NAME
+                FROM
+                    SYS_DEPT m
+                        LEFT JOIN SYS_USER ur ON m.DEPT_ID = ur.DEPT_ID
+                WHERE
+                    ur.user_id = #{plantId}
+            )
+          and sp.del_flag = 0
+        order by sp.order_num , sp.name
+    </select>
 
     <select id="selectSysPlantByDeptId" parameterType="Long" resultMap="SysPlantResult">
         SELECT

+ 3 - 3
ui/src/views/sems/specDt/index.vue

@@ -861,13 +861,13 @@
     },
     //位号颜色变换
     tableCellStyle({ row, column, rowIndex, columnIndex }) {
-      if (columnIndex == 17 && row.warnFlag == 1){
+      if (columnIndex == 18 && row.warnFlag == 1){
         return "background-color:rgba(255, 255,153, 0.5);"
       }
-      if (columnIndex == 17 && row.warnFlag == 2){
+      if (columnIndex == 18 && row.warnFlag == 2){
         return "background-color:rgba(255, 180, 68, 0.5);"
       }
-      if (columnIndex == 17 && row.warnFlag == 3){
+      if (columnIndex == 18 && row.warnFlag == 3){
         return "background-color:rgba(255, 68,68, 0.5);"
       }
     },