From 8853292babb2ad94de4a3207966f1e83b767cd2d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 17 Sep 2023 16:38:34 +0800
Subject: [PATCH] 新增流程节点进程查询接口
---
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 122 +++++++++++++++++++++++++++++++++++-----
1 files changed, 107 insertions(+), 15 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index 07225c1..2e6202a 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -21,6 +21,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.SysCache;
+import org.springblade.common.vo.DeptVo;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
@@ -33,12 +34,16 @@
import org.springblade.modules.jurisdiction.entity.Jurisdiction;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.node.TreeNode;
import org.springblade.modules.system.node.TreeNodes;
import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.DeptVO;
+import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -53,14 +58,15 @@
* @author Chill
*/
@Service
-@AllArgsConstructor
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
private static final String TENANT_ID = "tenantId";
private static final String PARENT_ID = "parentId";
- private final IInformationService iInformationService;
+ @Autowired
+ private IInformationService iInformationService;
- private final JurisdictionService jurisdictionService;
+ @Autowired
+ private JurisdictionService jurisdictionService;
@Override
public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -97,13 +103,38 @@
}
@Override
- public List<DeptVO> lazyTree(String tenantId, Long parentId) {
- if (AuthUtil.isAdministrator()) {
- tenantId = StringPool.EMPTY;
+ public List<DeptVO> lazyTree(String tenantId, Long parentId,String userId) {
+// if (AuthUtil.isAdministrator()) {
+// tenantId = StringPool.EMPTY;
+// }
+ //获取用户信息,保安,民警
+ if (null!=userId && !userId.equals("")) {
+ UserVO user = baseMapper.getUserInfoById(userId);
+ if (user.getRoleAlias().equals("公安管理员") || user.getRoleAlias().equals("民警")){
+ //公安管理员又分,如果是派出所,只返回当前值
+ if (user.getDeptName().contains("派出所")){
+ return ForestNodeMerger.merge(baseMapper.lazyTreeCityOne(tenantId, parentId));
+ }else {
+ //市局,区级
+ Dept dept = this.getById(parentId);
+ if (null != dept) {
+ if (dept.getParentId().equals(1123598813738675201L)) {
+ return ForestNodeMerger.merge(baseMapper.lazyTreeCity(tenantId, parentId));
+ }
+ if (dept.getParentId().equals(0L)){
+ //南昌市公安局
+ return ForestNodeMerger.merge(baseMapper.lazyTreeByJurisdiction());
+ }
+ }
+ }
+ }else {
+ //保安公司
+ return ForestNodeMerger.merge(baseMapper.securityLazyTree(null, parentId));
+ }
}
- return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+ //admin
+ return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId,null));
}
-
@Override
public List<DeptVO> lazyTrees() {
return ForestNodeMerger.merge(baseMapper.lazyTrees());
@@ -203,14 +234,41 @@
* 懒加载获取部门树形结构,不包含顶级管理员公安局
*/
@Override
- public List<DeptVO> securityLazyTree(String jurisdiction, Long parentId) {
+ public List<DeptVO> securityLazyTree(String jurisdiction, Long parentId,Long deptId) {
+ //如果传了deptId
+ if (null!=deptId){
+ //递归查询
+// recursionDeptInfo(deptVOS, list);
+ //tree 组装并返回
+ return ForestNodeMerger.merge(baseMapper.securityDeptUnitList(null,deptId));
+ }
return ForestNodeMerger.merge(baseMapper.securityLazyTree(jurisdiction, parentId));
}
- @Override
- public List<String> selectIn() {
- return baseMapper.selectIn();
+ /**
+ * 递归查询子级菜单
+ * @param deptVOS
+ * @param list
+ * @return
+ */
+ private List<DeptVO> recursionDeptInfo(List<DeptVO> deptVOS,List<DeptVO> list) {
+ //如果有子级
+ if (list.size()>0){
+ deptVOS.addAll(list);
+ //遍历子级
+ for (int i = 0; i < list.size(); i++) {
+ //查看是否有子级
+ List<DeptVO> childList = baseMapper.securityDeptUnitList(list.get(i).getId(), null);
+ //如果有
+ if (childList.size()>0){
+ //递归
+ recursionDeptInfo(deptVOS,childList);
+ }
+ }
+ }
+ return deptVOS;
}
+
/**
* 懒加载获取部门树形结构(包含用户数据)
@@ -273,14 +331,14 @@
Dept dept = new Dept();
dept.setDeptName(jurisdiction.getDeptName());
Dept dept1 = this.getOne(Condition.getQueryWrapper(dept));
- map = baseMapper.lazyTreeUsersPublicSecurity(type, dept1.getId(), one.getJurisdiction());
+ map = baseMapper.lazyTreeUsersPublicSecurity(null, dept1.getId(), one.getJurisdiction());
}
}
}
//民警向民警汇报,需要南昌市及当前民警所在辖区的部门数据
if(type==3){
//当前取所有的民警数据
- map = baseMapper.lazyTreeUsersPublicSecuritys(type,null,null);
+ map = baseMapper.lazyTreeUsersPublicSecuritys(null,deptId,null);
}
List<TreeNodes> tree = new ArrayList<>();
Map<Long, TreeNodes> finalMap = map;
@@ -296,6 +354,40 @@
@Override
public List<DeptVO> selectInfo() {
- return baseMapper.selectInfo();
+ return ForestNodeMerger.merge(baseMapper.selectInfo());
+ }
+
+ @Override
+ public List<DeptVO> selectInfos() {
+ return baseMapper.selectInfos();
+ }
+
+ @Override
+ public List<DeptVo> selDeptList() {
+ return baseMapper.selDeptList();
+ }
+
+
+ /**
+ * 懒加载获取部门树形结构,根据辖区查询
+ */
+ @Override
+ public List<DeptVO> lazyTreeJurisdiction(String jurisdiction, Long parentId) {
+ return ForestNodeMerger.merge(baseMapper.lazyTreeJurisdiction(jurisdiction,parentId));
+ }
+
+ /**
+ * 懒加载获取单位树,电子围栏用
+ * @param type 1:本单位 2:分公司 3:服务单位
+ * @param deptId
+ * @return
+ */
+ @Override
+ public List<DeptVO> lazyTreeRail(Integer type, Long deptId) {
+ //查询本单位
+ if(type==1 || type==2){
+ return ForestNodeMerger.merge(baseMapper.securityDeptUnitList(null,deptId));
+ }
+ return ForestNodeMerger.merge(baseMapper.getDispatchUnitList(deptId));
}
}
--
Gitblit v1.9.3