hexiao 2 سال پیش
والد
کامیت
c54ec7ff10

+ 7 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeController.java

@@ -151,6 +151,13 @@ public class BaseNoticeController extends BaseController {
                            @RequestBody BaseNoticePageReqVo vo) {
         vo.setUserId(getUserId());
         vo.setDeptId(getDeptId());
+        vo.setRoleFlay(false);
+        // 添加数据权限
+        List<String> roleKeys = getLoginUser().getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+        if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
+                || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
+            vo.setRoleFlay(true);
+        }
         IPage<BaseNotice> page = baseNoticeService.queryPage(vo);
         IPage<BaseNoticeVo> pagev = new Page<>();
         pagev.setTotal(page.getTotal());

+ 5 - 2
purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeMapper.java

@@ -21,8 +21,11 @@ public interface BaseNoticeMapper extends BaseMapper<BaseNotice> {
 
     @Select("select b.* from " +
             " base_notice b left join pm_audit_dept_ref r " +
-            " on b.demand_id = r.ref_id   " +
-            " where (#{userId} = 1  or  (r.dept_id = #{deptId} and  r.ref_type = 2) )    " +
+            " on b.demand_id = r.ref_id  " +
+            "  left join pm_demand p on  b.demand_id = p.demand_id " +
+            " where ( #{userId} = 1 " +
+            " or if(#{roleFlay},(r.dept_id = #{deptId} and  r.ref_type = 1), p.purchase_dept_id = #{deptId}  ) " +
+            " )" +
             " and (#{noticeName} is null  or   b.name like concat('%',#{noticeName},'%'))  " +
             " and (#{type} is null  or   b.type = #{type})  " +
             " and (#{startTime} is null  or   to_days(b.release_time) >= to_days(#{startTime}) ) " +

+ 2 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticePageReqVo.java

@@ -44,4 +44,6 @@ public class BaseNoticePageReqVo extends PageVo {
 
     private Long userId;
 
+    private boolean roleFlay;
+
 }