From 0eb8d22f0e8d004b1e721cdd24b8e663bc80b6a2 Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期一, 24 十月 2022 16:18:23 +0800
Subject: [PATCH] 修改选择项部门权限显示  bug

---
 flower_city/src/main/java/com/dg/core/controller/OrganizationController.java |  133 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 128 insertions(+), 5 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java b/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java
index c01ab73..c55fa12 100644
--- a/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java
@@ -1,14 +1,26 @@
 package com.dg.core.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
 import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.entity.TransactionEvent;
 import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.ITransactionEventService;
+import com.dg.core.util.PermissionUtil;
 import com.dg.core.util.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 
 @Api(tags = {"组织架构接口"})
@@ -20,21 +32,37 @@
     @Autowired(required = true)
     IOrganizationChartService iOrganizationChartService;
 
+    @Autowired(required = true)
+    ITransactionEventService iTransactionEventService;
+
     /**
      * 查询机构列表
      */
-    @ApiOperation("查询机构列表")
+    @ApiOperation(value = "查询机构列表",response = OrganizationChartEntity.class)
     @GetMapping("/getList")
     public TableDataInfo selectConfigList()
     {
-        return getDataTable(iOrganizationChartService.selectConfigList("",""));
+        return getDataTable(iOrganizationChartService.selectConfigList("","",null));
+    }
+
+
+    /**
+     * 查询机构列表(权限)
+     */
+    @ApiOperation(value = "查询机构列表(权限 选择用 ) ",response = OrganizationChartEntity.class)
+    @GetMapping("/selectJurisdiction")
+    @Authorization
+    public TableDataInfo selectJurisdiction(@CurrentUser SysUser sysUser)
+    {
+        return getDataTable(iOrganizationChartService.selectConfigList(sysUser.getDepartmentId(),"",null));
     }
 
     /**
      * 新增机构
      */
-    @ApiOperation("新增机构")
+    @ApiOperation(value = "新增机构",response = OrganizationChartEntity.class)
     @PostMapping("/add")
+    @Authorization
     public ResultData insertConfig(@RequestBody OrganizationChartEntity entity)
     {
         Assert.notNull(entity.getGrade(), "等级 grade 不能为空");
@@ -59,10 +87,13 @@
     /**
      * 更新机构
      */
-    @ApiOperation("更新机构")
+    @ApiOperation(value = "更新机构",response = OrganizationChartEntity.class)
     @PostMapping("/update")
-    public ResultData updateConfig(@RequestBody OrganizationChartEntity entity)
+    @Authorization
+    public ResultData updateConfig(@RequestBody OrganizationChartEntity entity,@CurrentUser SysUser sysUser)
     {
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setUpdateUserId(sysUser.getUserId());
         return toAjax(iOrganizationChartService.updateConfig(entity));
     }
 
@@ -71,9 +102,25 @@
      */
     @ApiOperation("删除机构")
     @DeleteMapping("/delete")
+    @Authorization
     public ResultData deleteConfigById(@RequestParam(value = "Id",required = false)  String Id)
     {
         Assert.notNull(Id, "Id 不能为空");
+        List<OrganizationChartEntity> list=iOrganizationChartService.selectParentList(Id,"");
+
+        if(list!=null && list.size()>0)
+        {
+            return ResultData.error("该机构下存在其他部门!请先删除子部门");
+        }
+
+        List<String> ids=new ArrayList<>();
+        ids.add(Id);
+        List<TransactionEvent> transactionEvents=iTransactionEventService.selectConfigList(null,null,ids);
+
+        if(transactionEvents!=null && transactionEvents.size()>0)
+        {
+            return ResultData.error("该机构下已绑定办事指南!请解绑办事指南");
+        }
         return toAjax(iOrganizationChartService.deleteConfigById(Id));
     }
 
@@ -95,4 +142,80 @@
           return ResultData.success(iOrganizationChartService.selectConfigById(id));
     }
 
+
+    /**
+     * 查询机构列表(分页)
+     */
+    @ApiOperation(value = "查询机构列表(分页)(部门应用)",response = OrganizationChartEntity.class)
+    @GetMapping("/queryList")
+    @Authorization
+    public TableDataInfo queryList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                            @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                            @RequestParam(value = "organizationName",required = false)String organizationName,
+                                   @CurrentUser SysUser sysUser){
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<OrganizationChartEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids= PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        return getDataTable(iOrganizationChartService.queryList(pageParam,pageSize,organizationName,ids),
+                            iOrganizationChartService.countList(organizationName,ids));
+    }
+
+
+    /**
+     * 通过父级id查询对应机构下的全部部门id
+     * @param departmentId
+     * @return
+     */
+    @ApiOperation(value = "通过父级id查询对应机构下的全部部门",response = OrganizationChartEntity.class)
+    @GetMapping("/getdepartment")
+    public TableDataInfo getOrganizations(@RequestParam(value = "department",required = false) String departmentId)
+    {
+        List<OrganizationChartEntity> ids=new ArrayList<>();
+        List<OrganizationChartEntity> lists=null;
+        if(StringUtils.isEmpty(departmentId))
+        {
+            lists= iOrganizationChartService.selectParentList(null,"1");
+
+        }
+        else
+        {
+            lists= iOrganizationChartService.selectParentList(departmentId,null);
+        }
+
+        if(lists.size()<1)
+        {
+            lists.add(iOrganizationChartService.selectConfigById(departmentId));
+        }
+        ids=disposestreet(lists);
+        if(ids.size()<1)
+        {
+            return null;
+        }
+
+        if(!StringUtils.isEmpty(departmentId))
+        {
+            ids.add(iOrganizationChartService.selectConfigById(departmentId));
+        }
+
+        return getDataTable(ids);
+    }
+
+    //递归取id
+    private List<OrganizationChartEntity> disposestreet(List<OrganizationChartEntity> lists)
+    {
+        List<OrganizationChartEntity> ids=new ArrayList<>();
+        for (OrganizationChartEntity sysStreet:lists)
+        {
+            if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0)
+            {
+                ids.addAll(disposestreet(sysStreet.getChild()));
+            }
+            else
+            {
+                ids.add(sysStreet);
+            }
+        }
+        return ids;
+    }
 }

--
Gitblit v1.7.1