集成wflow
This commit is contained in:
parent
6b95e70402
commit
15a9cc43d0
109
pom.xml
109
pom.xml
@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.1.1.RELEASE</version>
|
||||
<version>2.2.3.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.zhgd</groupId>
|
||||
@ -27,7 +27,7 @@
|
||||
<jwt.version>0.9.1</jwt.version>
|
||||
<commons.version>2.6</commons.version>
|
||||
<!-- <swagger.ui.version>1.8.7</swagger.ui.version>-->
|
||||
<tomcat.version>9.0.12</tomcat.version>
|
||||
<tomcat.version>9.0.30</tomcat.version>
|
||||
<djl.version>0.17.0</djl.version>
|
||||
</properties>
|
||||
|
||||
@ -122,10 +122,10 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-aop</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<!-- <dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
</dependency>-->
|
||||
<dependency>
|
||||
<!-- Starter for using Spring Security -->
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
@ -234,7 +234,7 @@
|
||||
</dependency>
|
||||
|
||||
<!-- druid -->
|
||||
<!--<dependency>
|
||||
<!-- <dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.1.10</version>
|
||||
@ -252,16 +252,16 @@
|
||||
</dependency>
|
||||
|
||||
<!--mysql-->
|
||||
<!-- <dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.48</version>
|
||||
</dependency>-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.33</version>
|
||||
<version>5.1.48</version>
|
||||
</dependency>
|
||||
<!-- <dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.33</version>
|
||||
</dependency>-->
|
||||
|
||||
<!-- Swagger API文档 -->
|
||||
<dependency>
|
||||
@ -304,6 +304,12 @@
|
||||
<groupId>com.qiwenshare</groupId>
|
||||
<artifactId>ufop-spring-boot-starter</artifactId>
|
||||
<version>1.2.3</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>hutool-core</artifactId>
|
||||
<groupId>cn.hutool</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@ -457,13 +463,13 @@
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.5</version>
|
||||
<version>5.8.16</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<!--<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-core</artifactId>
|
||||
<version>5.8.5</version>
|
||||
</dependency>
|
||||
<version>5.3.5</version>
|
||||
</dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk15to18</artifactId>
|
||||
@ -484,6 +490,12 @@
|
||||
<groupId>cn.xuyanwu</groupId>
|
||||
<artifactId>spring-file-storage</artifactId>
|
||||
<version>0.5.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>hutool-core</artifactId>
|
||||
<groupId>cn.hutool</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!--minio服务-->
|
||||
<dependency>
|
||||
@ -855,6 +867,73 @@
|
||||
<groupId>org.springframework.kafka</groupId>
|
||||
<artifactId>spring-kafka</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>wflow-server</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/resources/lib/wflow-server-1.0-SNAPSHOT.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.flowable</groupId>
|
||||
<artifactId>flowable-spring-boot-starter-actuator</artifactId>
|
||||
<version>6.7.2</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.20</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
<version>2.0.40</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.30.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.belerweb</groupId>
|
||||
<artifactId>pinyin4j</artifactId>
|
||||
<version>2.5.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.googlecode.aviator</groupId>
|
||||
<artifactId>aviator</artifactId>
|
||||
<version>5.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.javadelight</groupId>
|
||||
<artifactId>delight-nashorn-sandbox</artifactId>
|
||||
<version>0.3.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
<version>2.12.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -3,7 +3,6 @@ package com;
|
||||
|
||||
import cn.xuyanwu.spring.file.storage.EnableFileStorage;
|
||||
import org.apache.catalina.connector.Connector;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@ -23,7 +22,7 @@ import org.springframework.security.web.firewall.StrictHttpFirewall;
|
||||
* @author: Mr.Peng
|
||||
* @create: 2020-08-03 14:50
|
||||
**/
|
||||
@MapperScan({"com.zhgd.*.*.*.mapper","com.zhwl.*.*.*.mapper","com.zhgd.*.*.*.*.mapper"})
|
||||
//@MapperScan(basePackages = {"com.zhgd.*.*.*.mapper","com.zhwl.*.*.*.mapper","com.zhgd.*.*.*.*.mapper", "com.wflow.mapper"})
|
||||
@EnableAsync //开启异步调用
|
||||
@EnableScheduling
|
||||
@EnableFileStorage
|
||||
|
||||
55
src/main/java/com/zhgd/config/DataSourceOneConfig.java
Normal file
55
src/main/java/com/zhgd/config/DataSourceOneConfig.java
Normal file
@ -0,0 +1,55 @@
|
||||
package com.zhgd.config;
|
||||
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@Configuration
|
||||
@MapperScan(basePackages = {"com.zhgd.*.*.*.*.mapper", "com.zhgd.*.*.*.mapper"}, sqlSessionTemplateRef = "db1SqlSessionTemplate")
|
||||
public class DataSourceOneConfig {
|
||||
|
||||
@Bean
|
||||
@ConfigurationProperties(prefix = "spring.datasource.db1")
|
||||
@Primary
|
||||
public DataSource db1DataSource() {
|
||||
return DataSourceBuilder.create().build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
@Lazy //这个是懒加载的注解,根据自己项目需要看是否添加
|
||||
public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
|
||||
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
||||
bean.setDataSource(dataSource);
|
||||
//开启驼峰
|
||||
MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
configuration.setMapUnderscoreToCamelCase(true);
|
||||
bean.setConfiguration(configuration);
|
||||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
|
||||
return bean.getObject();
|
||||
}
|
||||
@Bean
|
||||
@Primary
|
||||
public DataSourceTransactionManager db1TransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
|
||||
return new DataSourceTransactionManager(dataSource);
|
||||
}
|
||||
@Bean
|
||||
@Primary
|
||||
@Lazy
|
||||
public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
|
||||
return new SqlSessionTemplate(sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
47
src/main/java/com/zhgd/config/DataSourceTwoConfig.java
Normal file
47
src/main/java/com/zhgd/config/DataSourceTwoConfig.java
Normal file
@ -0,0 +1,47 @@
|
||||
package com.zhgd.config;
|
||||
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@Configuration
|
||||
@MapperScan(basePackages = "com.wflow.mapper", sqlSessionTemplateRef = "sqlSessionTemplate2")
|
||||
public class DataSourceTwoConfig {
|
||||
|
||||
@Bean(name = "dataSource2")
|
||||
@ConfigurationProperties(prefix = "spring.datasource.db2")
|
||||
public DataSource dataSource() {
|
||||
return DataSourceBuilder.create().build();
|
||||
}
|
||||
|
||||
@Bean(name = "sqlSessionFactory2")
|
||||
public SqlSessionFactory db1SqlSessionFactory(@Qualifier("dataSource2") DataSource dataSource) throws Exception {
|
||||
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
|
||||
bean.setDataSource(dataSource);
|
||||
//开启驼峰
|
||||
MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
configuration.setMapUnderscoreToCamelCase(true);
|
||||
bean.setConfiguration(configuration);
|
||||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
|
||||
return bean.getObject();
|
||||
}
|
||||
@Bean(name = "transactionManager2")
|
||||
public DataSourceTransactionManager transactionManager(@Qualifier("dataSource2") DataSource dataSource) {
|
||||
return new DataSourceTransactionManager(dataSource);
|
||||
}
|
||||
@Bean(name = "sqlSessionTemplate2")
|
||||
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory2") SqlSessionFactory sqlSessionFactory) throws Exception {
|
||||
return new SqlSessionTemplate(sqlSessionFactory);
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.zhgd.xmgl.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
@ -32,7 +33,7 @@ public class AsyncConfig {
|
||||
* 当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
|
||||
* 当队列满了,就继续创建线程,当线程数量大于等于maxPoolSize后,开始使用拒绝策略拒绝
|
||||
*/
|
||||
|
||||
@Primary
|
||||
@Bean("taskExecutor")
|
||||
public ThreadPoolTaskExecutor taskExecutor() {
|
||||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||
@ -57,7 +58,7 @@ public class AsyncConfig {
|
||||
* 当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
|
||||
* 当队列满了,就继续创建线程,当线程数量大于等于maxPoolSize后,开始使用拒绝策略拒绝
|
||||
*/
|
||||
|
||||
@Primary
|
||||
@Bean("doubleCarbonExecutor")
|
||||
public ThreadPoolTaskExecutor doubleCarbonExecutor() {
|
||||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||
|
||||
@ -138,6 +138,10 @@ public class SystemUser implements Serializable {
|
||||
@ApiModelProperty(value = "性别(0女;1男)")
|
||||
private Integer sex;
|
||||
|
||||
@Excel(name = "头像", width = 15)
|
||||
@ApiModelProperty(value = "头像")
|
||||
private String avatar;
|
||||
|
||||
@Excel(name = "备注", width = 15)
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ -1,8 +1,13 @@
|
||||
package com.zhgd.xmgl.modules.basicdata.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.wflow.bean.vo.OrgTreeVo;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemDept;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 政府内部部门
|
||||
@ -14,4 +19,12 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
public interface SystemDeptMapper extends BaseMapper<SystemDept> {
|
||||
|
||||
String getChildrenByDeptId(String deptId);
|
||||
|
||||
/**
|
||||
* 查询某部门下的子部门列表
|
||||
* @param deptId 父部门
|
||||
* @return 子部门列表,type字段固定返回固定值 dept
|
||||
*/
|
||||
@Select("SELECT dept_id id, dept_name `name`, 'dept' AS 'type' FROM system_dept WHERE parent_id=#{deptId}")
|
||||
List<OrgTreeVo> selectByDept(@Param("deptId") String deptId);
|
||||
}
|
||||
|
||||
@ -4,11 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wflow.bean.do_.DeptDo;
|
||||
import com.wflow.bean.do_.UserDeptDo;
|
||||
import com.wflow.bean.vo.OrgTreeVo;
|
||||
import com.zhgd.xmgl.modules.basicdata.dto.SystemUserDto;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -25,4 +30,37 @@ public interface SystemUserMapper extends BaseMapper<SystemUser> {
|
||||
Page<SystemUserDto> getPageList(Page page, @Param(Constants.WRAPPER) Wrapper<SystemUser> wrapper);
|
||||
|
||||
List<SystemUserDto> getPageList(@Param(Constants.WRAPPER) Wrapper<SystemUser> wrapper);
|
||||
|
||||
/**
|
||||
* 查询该部门下的所有用户
|
||||
* @param deptId 部门ID
|
||||
* @return 用户列表 type为固定值user
|
||||
*/
|
||||
@Select("SELECT user_id id, real_name `name`, 'user' AS 'type', avatar " +
|
||||
"FROM system_user" +
|
||||
" WHERE department = #{deptId}")
|
||||
List<OrgTreeVo> selectUsersByDept(@Param("deptId") String deptId);
|
||||
|
||||
/**
|
||||
* 查询指定用户所在的部门,一个用户可能同时在多个部门下
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 用户所在的部门列表
|
||||
*/
|
||||
@Select("SELECT d.dept_id id, d.dept_name FROM system_user u, system_dept d WHERE u.department = d.dept_id AND u.user_id = #{userId}")
|
||||
List<DeptDo> getUserDepts(@Param("userId") String userId);
|
||||
|
||||
/**
|
||||
* 批量查询指定用户及部门信息
|
||||
*
|
||||
* @param udIds 用户ID_部门id 字符串拼接的集合
|
||||
* @return 用户部门信息列表
|
||||
*/
|
||||
@Select({"<script>",
|
||||
"SELECT tb.* FROM (SELECT CONCAT(wu.user_id, '_', wd.dept_id) tid, wu.user_id, wu.real_name, wd.dept_id, wu.avatar, wd.dept_name",
|
||||
"FROM system_user wu, system_dept wd ",
|
||||
"WHERE wu.department = wd.dept_id) tb WHERE tb.tid IN",
|
||||
"<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>#{item}</foreach>",
|
||||
"</script>"})
|
||||
List<UserDeptDo> getUserDepInfosBatch(@Param("list") Collection<String> udIds);
|
||||
}
|
||||
|
||||
@ -0,0 +1,200 @@
|
||||
package com.zhgd.xmgl.modules.basicdata.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.wflow.bean.do_.DeptDo;
|
||||
import com.wflow.bean.do_.RoleDo;
|
||||
import com.wflow.bean.do_.UserDeptDo;
|
||||
import com.wflow.bean.do_.UserDo;
|
||||
import com.wflow.bean.vo.ModelGroupVo;
|
||||
import com.wflow.bean.vo.OrgTreeVo;
|
||||
import com.wflow.bean.vo.UserVo;
|
||||
import com.wflow.service.OrgRepositoryService;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemDept;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUserRole;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemDeptMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemRoleMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserRoleMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Primary
|
||||
@Service
|
||||
public class FlowOrgRepositoryServiceImpl implements OrgRepositoryService {
|
||||
|
||||
@Autowired
|
||||
private SystemUserMapper systemUserMapper;
|
||||
|
||||
@Autowired
|
||||
private SystemDeptMapper systemDeptMapper;
|
||||
|
||||
@Autowired
|
||||
private SystemRoleMapper systemRoleMapper;
|
||||
|
||||
@Autowired
|
||||
private SystemUserRoleMapper systemUserRoleMapper;
|
||||
|
||||
@Override
|
||||
public List<ModelGroupVo.Form> getModelsByPerm(String userId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserDo getUserById(String userId) {
|
||||
SystemUser systemUser = systemUserMapper.selectById(userId);
|
||||
if (Objects.nonNull(systemUser)){
|
||||
UserDo userDo = new UserDo();
|
||||
userDo.setUserId(systemUser.getUserId());
|
||||
userDo.setUserName(systemUser.getRealName());
|
||||
userDo.setAvatar(systemUser.getAvatar());
|
||||
return userDo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgTreeVo> selectUsersByPy(String py) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgTreeVo> selectUsersByDept(String deptId) {
|
||||
return systemUserMapper.selectUsersByDept(deptId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserDo> getUsersBatch(Collection<String> userIds) {
|
||||
try {
|
||||
return systemUserMapper.selectBatchIds(userIds).stream()
|
||||
.map(u -> new UserDo(u.getUserId(), u.getRealName(), u.getAvatar()))
|
||||
.collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getUsersByDepts(Collection<String> deptIds) {
|
||||
try {
|
||||
return systemUserMapper.selectList(
|
||||
new LambdaQueryWrapper<SystemUser>()
|
||||
.select(SystemUser::getUserId)
|
||||
.in(SystemUser::getDepartment, deptIds))
|
||||
.stream().map(SystemUser::getUserId)
|
||||
.collect(Collectors.toSet());
|
||||
} catch (Exception e) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeptDo getDeptById(String deptId) {
|
||||
SystemDept departments = systemDeptMapper.selectById(deptId);
|
||||
if (Objects.nonNull(departments)){
|
||||
DeptDo deptDo = new DeptDo();
|
||||
deptDo.setId(departments.getDeptId().toString());
|
||||
deptDo.setDeptName(departments.getDeptName());
|
||||
deptDo.setLeader("");
|
||||
deptDo.setParentId(departments.getParentId().toString());
|
||||
return deptDo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeptDo> getDeptsByUser(String userId) {
|
||||
return systemUserMapper.getUserDepts(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeptDo> getSysAllDepts() {
|
||||
try {
|
||||
return systemDeptMapper.selectList(null).stream()
|
||||
.map(d -> new DeptDo(d.getDeptId().toString(), d.getDeptName(), d.getLeader(), d.getParentId().toString()))
|
||||
.collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserDeptDo> getSysAllUserDepts() {
|
||||
try {
|
||||
return systemUserMapper.selectList(null).stream()
|
||||
.map(d -> new UserDeptDo(d.getUserId(), d.getDepartment()))
|
||||
.collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgTreeVo> getSubDeptById(String parentId) {
|
||||
return systemDeptMapper.selectByDept(parentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRecursiveSubDept(String parentId) {
|
||||
List<String> list = new ArrayList<>();
|
||||
loadSubDept(parentId, list);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归加载所有子部门
|
||||
* @param parentId 父部门ID
|
||||
* @param subDepts 所有子部门缓存
|
||||
*/
|
||||
private void loadSubDept(String parentId, List<String> subDepts){
|
||||
List<SystemDept> departments = systemDeptMapper.selectList(
|
||||
new LambdaQueryWrapper<SystemDept>()
|
||||
.eq(SystemDept::getParentId, parentId));
|
||||
subDepts.addAll(departments.stream().map(SystemDept::getDeptId).collect(Collectors.toList()).stream().map(Object::toString).collect(Collectors.toList()));
|
||||
departments.forEach(d -> loadSubDept(d.getDeptId().toString(), subDepts));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RoleDo> getSysAllRoles() {
|
||||
try {
|
||||
return systemRoleMapper.selectList(null).stream()
|
||||
.map(r -> new RoleDo(r.getRoleId().toString(), r.getRoleName()))
|
||||
.collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getUsersByRoles(List<String> roles) {
|
||||
return systemUserRoleMapper.selectList(new LambdaQueryWrapper<SystemUserRole>()
|
||||
.select(SystemUserRole::getUserId)
|
||||
.in(SystemUserRole::getRoleId, roles)).stream()
|
||||
.map(SystemUserRole::getUserId).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUserSign(String userId) {
|
||||
return systemUserMapper.selectById(userId).getUserId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateUserSign(String userId, String signature) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVo getUserDetail(String userId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, UserDeptDo> getUserDeptInfos(Collection<String> userDeptIds) {
|
||||
return systemUserMapper.getUserDepInfosBatch(userDeptIds)
|
||||
.stream().collect(Collectors.toMap(UserDeptDo::getUserId, v -> v));
|
||||
}
|
||||
}
|
||||
@ -92,6 +92,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.antMatchers("/project/workerAttendance/add").permitAll()
|
||||
.antMatchers("/jwt/sso").permitAll()
|
||||
.antMatchers("/xmgl/systemUser/ssoLogin").permitAll()
|
||||
.antMatchers("/wflow/**").permitAll()
|
||||
.antMatchers("/oa/**").permitAll()
|
||||
.antMatchers("/sys/auth/**").permitAll()
|
||||
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
||||
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
||||
.and()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user