Browse Source
# Conflicts: # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerStaffAgencyController.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffAgencyDao.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerStaffAgencyService.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerStaffAgencyServiceImpl.java # epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml # epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java # epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java # epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java # epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java # epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xmldev_shibei_match
133 changed files with 4630 additions and 506 deletions
@ -0,0 +1,63 @@ |
|||
package com.epmet; |
|||
|
|||
import com.epmet.common.token.constant.LoginConstant; |
|||
import com.epmet.commons.tools.security.dto.GovTokenDto; |
|||
import com.epmet.commons.tools.utils.CpUserDetailRedis; |
|||
import com.epmet.jwt.JwtTokenProperties; |
|||
import com.epmet.jwt.JwtTokenUtils; |
|||
import org.junit.Test; |
|||
import org.junit.runner.RunWith; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.boot.test.context.SpringBootTest; |
|||
import org.springframework.test.context.junit4.SpringRunner; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
@RunWith(SpringRunner.class) |
|||
@SpringBootTest |
|||
public class TokenGenTest { |
|||
|
|||
@Autowired |
|||
private JwtTokenProperties jwtTokenProperties; |
|||
|
|||
@Autowired |
|||
private JwtTokenUtils jwtTokenUtils; |
|||
|
|||
@Autowired |
|||
private CpUserDetailRedis cpUserDetailRedis; |
|||
|
|||
@Test |
|||
public void genToken() { |
|||
String staffId = "wxz"; |
|||
String tokenStr = generateGovWxmpToken(staffId); |
|||
int expire = jwtTokenProperties.getExpire(); |
|||
GovTokenDto govTokenDto = new GovTokenDto(); |
|||
govTokenDto.setApp(LoginConstant.APP_GOV); |
|||
govTokenDto.setClient(LoginConstant.CLIENT_WXMP); |
|||
govTokenDto.setUserId(staffId); |
|||
govTokenDto.setOpenId(""); |
|||
govTokenDto.setSessionKey(""); |
|||
govTokenDto.setUnionId(""); |
|||
govTokenDto.setToken(tokenStr); |
|||
govTokenDto.setUpdateTime(System.currentTimeMillis()); |
|||
govTokenDto.setExpireTime(jwtTokenUtils.getExpiration(tokenStr).getTime()); |
|||
govTokenDto.setAgencyId("1"); |
|||
govTokenDto.setCustomerId("f76def116c9c2dc0269cc17867af122c"); |
|||
cpUserDetailRedis.set(govTokenDto, expire); |
|||
} |
|||
|
|||
/** |
|||
* @Description 生成token |
|||
* @Date 2020/4/18 23:04 |
|||
**/ |
|||
private String generateGovWxmpToken(String staffId) { |
|||
Map<String, Object> map = new HashMap<>(); |
|||
map.put("app", LoginConstant.APP_GOV); |
|||
map.put("client", LoginConstant.CLIENT_WXMP); |
|||
map.put("userId", staffId); |
|||
String token = jwtTokenUtils.createToken(map); |
|||
return token; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,106 @@ |
|||
///**
|
|||
// * Copyright (c) 2018 人人开源 All rights reserved.
|
|||
// *
|
|||
// * https://www.renren.io
|
|||
// *
|
|||
// * 版权所有,侵权必究!
|
|||
// */
|
|||
//
|
|||
//package com.epmet.commons.mybatis.aspect;
|
|||
//
|
|||
//import cn.hutool.core.collection.CollUtil;
|
|||
//import com.epmet.commons.mybatis.annotation.DataFilter;
|
|||
//import com.epmet.commons.mybatis.entity.DataScope;
|
|||
//import com.epmet.commons.tools.constant.Constant;
|
|||
//import com.epmet.commons.tools.enums.SuperAdminEnum;
|
|||
//import com.epmet.commons.tools.exception.ErrorCode;
|
|||
//import com.epmet.commons.tools.exception.RenException;
|
|||
//import com.epmet.commons.tools.security.user.SecurityUser;
|
|||
//import com.epmet.commons.tools.security.user.UserDetail;
|
|||
//import org.apache.commons.lang3.StringUtils;
|
|||
//import org.aspectj.lang.JoinPoint;
|
|||
//import org.aspectj.lang.annotation.Aspect;
|
|||
//import org.aspectj.lang.annotation.Before;
|
|||
//import org.aspectj.lang.annotation.Pointcut;
|
|||
//import org.aspectj.lang.reflect.MethodSignature;
|
|||
//import org.springframework.stereotype.Component;
|
|||
//
|
|||
//import java.util.Arrays;
|
|||
//import java.util.List;
|
|||
//import java.util.Map;
|
|||
//
|
|||
///**
|
|||
// * 数据过滤,切面处理类
|
|||
// *
|
|||
// * @author Mark sunlightcs@gmail.com
|
|||
// * @since 1.0.0
|
|||
// */
|
|||
//@Aspect
|
|||
//@Component
|
|||
//public class DataFilterAspectBak {
|
|||
// @Pointcut("@annotation(com.epmet.commons.mybatis.annotation.DataFilter)")
|
|||
// public void dataFilterCut() {
|
|||
//
|
|||
// }
|
|||
//
|
|||
// @Before("dataFilterCut()")
|
|||
// public void dataFilter(JoinPoint point) {
|
|||
// Object params = point.getArgs()[0];
|
|||
// if(params != null && params instanceof Map){
|
|||
// UserDetail user = SecurityUser.getUser();
|
|||
//
|
|||
// //如果不是超级管理员,则进行数据过滤
|
|||
// if(user.getSuperAdmin() == SuperAdminEnum.NO.value()){
|
|||
// Map map = (Map)params;
|
|||
// String sqlFilter = getSqlFilter(user, point);
|
|||
// map.put(Constant.SQL_FILTER, new DataScope(sqlFilter));
|
|||
// }
|
|||
//
|
|||
// return ;
|
|||
// }
|
|||
//
|
|||
// throw new RenException(ErrorCode.DATA_SCOPE_PARAMS_ERROR);
|
|||
// }
|
|||
//
|
|||
// /**
|
|||
// * 获取数据过滤的SQL
|
|||
// */
|
|||
// private String getSqlFilter(UserDetail user, JoinPoint point){
|
|||
// MethodSignature signature = (MethodSignature) point.getSignature();
|
|||
// DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class);
|
|||
// //获取表的别名
|
|||
// String tableAlias = dataFilter.tableAlias();
|
|||
// if(StringUtils.isNotBlank(tableAlias)){
|
|||
// tableAlias += ".";
|
|||
// }
|
|||
//
|
|||
// StringBuilder sqlFilter = new StringBuilder();
|
|||
//
|
|||
// //查询条件前缀
|
|||
// String prefix = dataFilter.prefix();
|
|||
// if(StringUtils.isNotBlank(prefix)){
|
|||
// sqlFilter.append(" ").append(prefix);
|
|||
// }
|
|||
//
|
|||
// sqlFilter.append(" (");
|
|||
//
|
|||
// //部门ID列表
|
|||
// List<Long> deptIdList = user.getDeptIdList();
|
|||
// if(CollUtil.isNotEmpty(deptIdList)){
|
|||
// sqlFilter.append(tableAlias).append(dataFilter.deptId());
|
|||
//
|
|||
// sqlFilter.append(" in(").append(StringUtils.join(deptIdList, ",")).append(")");
|
|||
// }
|
|||
//
|
|||
// //查询本人数据
|
|||
// if (dataFilter.isPendingCreator()) {
|
|||
// if(CollUtil.isNotEmpty(deptIdList)){
|
|||
// sqlFilter.append(" or ");
|
|||
// }
|
|||
// sqlFilter.append(tableAlias).append(dataFilter.userId()).append("=").append(user.getId());
|
|||
// }
|
|||
// sqlFilter.append(")");
|
|||
//
|
|||
// return sqlFilter.toString();
|
|||
// }
|
|||
//}
|
@ -0,0 +1,26 @@ |
|||
package com.epmet.commons.mybatis.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.util.Set; |
|||
|
|||
@Data |
|||
public class StaffPermissionFormDTO { |
|||
|
|||
/** |
|||
* 工作人员 id |
|||
*/ |
|||
private String staffId; |
|||
|
|||
/** |
|||
* 登录头信息app |
|||
*/ |
|||
private String app; |
|||
|
|||
/** |
|||
* 登录头信息client |
|||
*/ |
|||
private String client; |
|||
|
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.epmet.commons.mybatis.feign; |
|||
|
|||
import com.epmet.commons.mybatis.dto.form.StaffPermissionFormDTO; |
|||
import com.epmet.commons.mybatis.feign.fallback.GovAccessFeignClientFallback; |
|||
import com.epmet.commons.tools.constant.ServiceConstant; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
|
|||
import java.util.Set; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author sun |
|||
*/ |
|||
@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallback.class) |
|||
public interface GovAccessFeignClient { |
|||
|
|||
/** |
|||
* 查询用户当前权限列表(DataFilterAspect中用到) |
|||
* @return |
|||
*/ |
|||
@PostMapping("/gov/access/access/getcurrpermissions") |
|||
Result<Set<String>> getStaffCurrPermissions(StaffPermissionFormDTO dto); |
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.epmet.commons.mybatis.feign.fallback; |
|||
|
|||
import com.epmet.commons.mybatis.dto.form.StaffPermissionFormDTO; |
|||
import com.epmet.commons.mybatis.feign.GovAccessFeignClient; |
|||
import com.epmet.commons.tools.constant.ServiceConstant; |
|||
import com.epmet.commons.tools.utils.ModuleUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Set; |
|||
|
|||
/** |
|||
* 调用政府端权限 |
|||
* @Author wxz |
|||
* @Description |
|||
* @Date 2020/4/24 11:17 |
|||
**/ |
|||
@Component |
|||
public class GovAccessFeignClientFallback implements GovAccessFeignClient { |
|||
|
|||
@Override |
|||
public Result<Set<String>> getStaffCurrPermissions(StaffPermissionFormDTO dto) { |
|||
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getStaffCurrPermissions", dto); |
|||
} |
|||
} |
@ -0,0 +1,100 @@ |
|||
///**
|
|||
// * Copyright (c) 2018 人人开源 All rights reserved.
|
|||
// * <p>
|
|||
// * https://www.renren.io
|
|||
// * <p>
|
|||
// * 版权所有,侵权必究!
|
|||
// */
|
|||
//
|
|||
//package com.epmet.commons.mybatis.interceptor;
|
|||
//
|
|||
//import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
|
|||
//import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler;
|
|||
//import com.epmet.commons.mybatis.entity.DataScope;
|
|||
//import org.apache.ibatis.executor.statement.StatementHandler;
|
|||
//import org.apache.ibatis.mapping.BoundSql;
|
|||
//import org.apache.ibatis.mapping.MappedStatement;
|
|||
//import org.apache.ibatis.mapping.SqlCommandType;
|
|||
//import org.apache.ibatis.plugin.*;
|
|||
//import org.apache.ibatis.reflection.MetaObject;
|
|||
//import org.apache.ibatis.reflection.SystemMetaObject;
|
|||
//
|
|||
//import java.sql.Connection;
|
|||
//import java.util.Map;
|
|||
//import java.util.Properties;
|
|||
//
|
|||
///**
|
|||
// * 数据过滤
|
|||
// *
|
|||
// * @author Mark sunlightcs@gmail.com
|
|||
// * @since 1.0.0
|
|||
// */
|
|||
//@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
|
|||
//public class DataFilterInterceptorBak extends AbstractSqlParserHandler implements Interceptor {
|
|||
//
|
|||
// @Override
|
|||
// public Object intercept(Invocation invocation) throws Throwable {
|
|||
// StatementHandler statementHandler = (StatementHandler) PluginUtils.realTarget(invocation.getTarget());
|
|||
// MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
|
|||
//
|
|||
// // SQL解析
|
|||
// this.sqlParser(metaObject);
|
|||
//
|
|||
// // 先判断是不是SELECT操作
|
|||
// MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
|
|||
// if (!SqlCommandType.SELECT.equals(mappedStatement.getSqlCommandType())) {
|
|||
// return invocation.proceed();
|
|||
// }
|
|||
//
|
|||
// // 针对定义了rowBounds,做为mapper接口方法的参数
|
|||
// BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
|
|||
// String originalSql = boundSql.getSql();
|
|||
// Object paramObj = boundSql.getParameterObject();
|
|||
//
|
|||
// // 判断参数里是否有DataScope对象
|
|||
// DataScope scope = null;
|
|||
// if (paramObj instanceof DataScope) {
|
|||
// scope = (DataScope) paramObj;
|
|||
// } else if (paramObj instanceof Map) {
|
|||
// for (Object arg : ((Map) paramObj).values()) {
|
|||
// if (arg instanceof DataScope) {
|
|||
// scope = (DataScope) arg;
|
|||
// break;
|
|||
// }
|
|||
// }
|
|||
// }
|
|||
//
|
|||
// // 不用数据过滤
|
|||
// if (scope == null) {
|
|||
// return invocation.proceed();
|
|||
// }
|
|||
//
|
|||
// // 拼接新SQL
|
|||
// String orderBy = "ORDER BY";
|
|||
// String groupBy = "GROUP BY";
|
|||
// if (originalSql.indexOf(groupBy) > -1) {
|
|||
// originalSql = originalSql.replace(groupBy, scope.getSqlFilter() + groupBy);
|
|||
// } else if (originalSql.indexOf(orderBy) > -1) {
|
|||
// originalSql = originalSql.replace(orderBy, scope.getSqlFilter() + orderBy);
|
|||
// } else {
|
|||
// originalSql = originalSql + scope.getSqlFilter();
|
|||
// }
|
|||
//
|
|||
// // 重写SQL
|
|||
// metaObject.setValue("delegate.boundSql.sql", originalSql);
|
|||
// return invocation.proceed();
|
|||
// }
|
|||
//
|
|||
// @Override
|
|||
// public Object plugin(Object target) {
|
|||
// if (target instanceof StatementHandler) {
|
|||
// return Plugin.wrap(target, this);
|
|||
// }
|
|||
// return target;
|
|||
// }
|
|||
//
|
|||
// @Override
|
|||
// public void setProperties(Properties properties) {
|
|||
//
|
|||
// }
|
|||
//}
|
@ -0,0 +1,36 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 http://www.renren.io
|
|||
* <p> |
|||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not |
|||
* use this file except in compliance with the License. You may obtain a copy of |
|||
* the License at |
|||
* <p> |
|||
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
* <p> |
|||
* Unless required by applicable law or agreed to in writing, software |
|||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
|||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
|||
* License for the specific language governing permissions and limitations under |
|||
* the License. |
|||
*/ |
|||
|
|||
package com.epmet.commons.tools.annotation; |
|||
|
|||
import java.lang.annotation.*; |
|||
|
|||
/** |
|||
* 权限注解 |
|||
* @Author wxz |
|||
* @Description |
|||
* @Date 2020/4/23 16:17 |
|||
**/ |
|||
@Target(ElementType.METHOD) |
|||
@Retention(RetentionPolicy.RUNTIME) |
|||
@Documented |
|||
public @interface RequirePermission { |
|||
|
|||
String key() default ""; |
|||
|
|||
String desc() default ""; |
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
/** |
|||
* Copyright (c) 2018 人人开源 All rights reserved. |
|||
* |
|||
* https://www.renren.io
|
|||
* |
|||
* 版权所有,侵权必究! |
|||
*/ |
|||
|
|||
package com.epmet.commons.tools.aspect; |
|||
|
|||
import com.epmet.commons.tools.annotation.RequirePermission; |
|||
import org.aspectj.lang.JoinPoint; |
|||
import org.aspectj.lang.annotation.Aspect; |
|||
import org.aspectj.lang.annotation.Before; |
|||
import org.aspectj.lang.reflect.MethodSignature; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 每次请求,过滤Api中配置的权限key出来 |
|||
* @Author wxz |
|||
* @Description |
|||
* @Date 2020/4/23 16:16 |
|||
**/ |
|||
@Aspect |
|||
@Component |
|||
public class AccessOpeAspect { |
|||
|
|||
/** |
|||
* 存储所需操作权限的 ThreadLocal |
|||
*/ |
|||
public static final ThreadLocal<String> requirePermissionTl = new ThreadLocal<>(); |
|||
|
|||
@Before("@annotation(com.epmet.commons.tools.annotation.RequirePermission)") |
|||
public void before(JoinPoint point) throws Throwable { |
|||
// 取RequirePermission注解
|
|||
MethodSignature methodSignature = (MethodSignature) point.getSignature(); |
|||
RequirePermission requirePermissionAnno = methodSignature.getMethod().getAnnotation(RequirePermission.class); |
|||
String key = requirePermissionAnno.key(); |
|||
String desc = requirePermissionAnno.desc(); |
|||
System.out.println(key); |
|||
System.out.println(desc); |
|||
|
|||
// 放入ThreadLocal,供DataFilterAspect中使用
|
|||
requirePermissionTl.set(key); |
|||
} |
|||
} |
@ -1,33 +1,82 @@ |
|||
package com.epmet.commons.tools.security.user; |
|||
|
|||
import com.epmet.commons.tools.constant.Constant; |
|||
import com.epmet.commons.tools.constant.AppClientConstant; |
|||
import com.epmet.commons.tools.utils.HttpContextUtils; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.web.context.request.RequestAttributes; |
|||
import org.springframework.web.context.request.RequestContextHolder; |
|||
import org.springframework.web.context.request.ServletRequestAttributes; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 登录用户相关工具 |
|||
*/ |
|||
@Component |
|||
public class LoginUserUtil { |
|||
|
|||
//@Autowired
|
|||
//private
|
|||
|
|||
/** |
|||
* 查询登录用户的id |
|||
* @return |
|||
*/ |
|||
public static String getLoginUserId() { |
|||
public String getLoginUserId() { |
|||
HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); |
|||
if (request == null) { |
|||
return null; |
|||
} |
|||
|
|||
String userId = request.getHeader(Constant.USER_KEY); |
|||
String userId = request.getHeader(AppClientConstant.USER_ID); |
|||
if (StringUtils.isBlank(userId)) { |
|||
return null; |
|||
} |
|||
return userId; |
|||
} |
|||
|
|||
/** |
|||
* 登录用户的App头信息 |
|||
* @return |
|||
*/ |
|||
public String getLoginUserApp() { |
|||
HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); |
|||
if (request == null) { |
|||
return null; |
|||
} |
|||
|
|||
String app = request.getHeader(AppClientConstant.APP); |
|||
if (StringUtils.isBlank(app)) { |
|||
return null; |
|||
} |
|||
return app; |
|||
} |
|||
|
|||
/** |
|||
* 获取登录用户client头信息 |
|||
* @return |
|||
*/ |
|||
public String getLoginUserClient() { |
|||
HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); |
|||
if (request == null) { |
|||
return null; |
|||
} |
|||
|
|||
String client = request.getHeader(AppClientConstant.CLIENT); |
|||
if (StringUtils.isBlank(client)) { |
|||
return null; |
|||
} |
|||
return client; |
|||
} |
|||
|
|||
/** |
|||
* 获取用户的部门ID列表 |
|||
* @return |
|||
*/ |
|||
public List<String> getLoginUserDepartments() { |
|||
String loginUserId = getLoginUserId(); |
|||
String loginUserApp = getLoginUserApp(); |
|||
String loginUserClient = getLoginUserClient(); |
|||
// todo
|
|||
return null; |
|||
} |
|||
} |
|||
|
@ -0,0 +1,44 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.util.Set; |
|||
|
|||
@Data |
|||
public class StaffPermCacheFormDTO { |
|||
|
|||
/** |
|||
* 更新权限缓存分组 |
|||
*/ |
|||
public interface UpdatePermissionCache {} |
|||
|
|||
/** |
|||
* 查询当前权限列表 |
|||
*/ |
|||
public interface GetStaffCurrPermissions {} |
|||
|
|||
/** |
|||
* 工作人员 id |
|||
*/ |
|||
@NotBlank(message = "工作人员ID不能为空", groups = {UpdatePermissionCache.class, GetStaffCurrPermissions.class}) |
|||
private String staffId; |
|||
|
|||
/** |
|||
* 登录头信息app |
|||
*/ |
|||
@NotBlank(message = "登录头信息app不能为空", groups = {UpdatePermissionCache.class, GetStaffCurrPermissions.class}) |
|||
private String app; |
|||
|
|||
/** |
|||
* 登录头信息client |
|||
*/ |
|||
@NotBlank(message = "登录头信息client不能为空", groups = {UpdatePermissionCache.class, GetStaffCurrPermissions.class}) |
|||
private String client; |
|||
|
|||
/** |
|||
* 权限列表 |
|||
*/ |
|||
private Set<String> permissions; |
|||
|
|||
} |
@ -0,0 +1,54 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.dto.form.StaffPermCacheFormDTO; |
|||
import com.epmet.service.AccessService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.Set; |
|||
|
|||
/** |
|||
* 权限相关Api |
|||
* @Author wxz |
|||
* @Description |
|||
* @Date 2020/4/23 17:54 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("access") |
|||
public class AccessController { |
|||
|
|||
@Autowired |
|||
private AccessService accessService; |
|||
|
|||
/** |
|||
* 更新工作人员权限缓存 |
|||
* @param staffPermCacheFormDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("updatepermissioncache") |
|||
public Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO) { |
|||
ValidatorUtils.validateEntity(staffPermCacheFormDTO, StaffPermCacheFormDTO.UpdatePermissionCache.class); |
|||
String staffId = staffPermCacheFormDTO.getStaffId(); |
|||
String app = staffPermCacheFormDTO.getApp(); |
|||
String client = staffPermCacheFormDTO.getClient(); |
|||
Set<String> permissions = staffPermCacheFormDTO.getPermissions(); |
|||
accessService.updatePermissionCache(staffId, app, client, permissions); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* 查询用户当前权限列表(DataFilterAspect中用到) |
|||
* @return |
|||
*/ |
|||
@PostMapping("getcurrpermissions") |
|||
public Result<Set<String>> getStaffCurrPermissions(@RequestBody StaffPermCacheFormDTO dto) { |
|||
ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class); |
|||
Set<String> permissions = accessService.listStaffCurrPermissions(dto.getApp(), dto.getClient(), dto.getStaffId()); |
|||
return new Result<Set<String>>().ok(permissions); |
|||
} |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.epmet.service; |
|||
|
|||
import java.util.Set; |
|||
|
|||
public interface AccessService { |
|||
/** |
|||
* 更新权限缓存 |
|||
* @param staffId |
|||
* @param permissions |
|||
*/ |
|||
void updatePermissionCache(String staffId, String app, String client, Set<String> permissions); |
|||
|
|||
/** |
|||
* 查询用户当前权限列表 |
|||
* @return |
|||
*/ |
|||
Set<String> listStaffCurrPermissions(String app, String client, String staffId); |
|||
} |
@ -0,0 +1,51 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.epmet.commons.tools.security.dto.GovTokenDto; |
|||
import com.epmet.commons.tools.utils.CpUserDetailRedis; |
|||
import com.epmet.service.AccessService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.util.CollectionUtils; |
|||
|
|||
import java.util.HashSet; |
|||
import java.util.Set; |
|||
|
|||
@Service |
|||
public class AccessServiceImpl implements AccessService { |
|||
|
|||
private static Logger logger = LoggerFactory.getLogger(AccessServiceImpl.class); |
|||
|
|||
@Autowired |
|||
private CpUserDetailRedis cpUserDetailRedis; |
|||
|
|||
/** |
|||
* 更新权限缓存 |
|||
* @param staffId |
|||
* @param permissions |
|||
*/ |
|||
@Override |
|||
public void updatePermissionCache(String staffId, String app, String client, Set<String> permissions) { |
|||
GovTokenDto govTokenDto = cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class); |
|||
if (govTokenDto == null) { |
|||
logger.warn("更新[{}]用户缓存:Redis中不存在该用户TokenDto缓存信息", staffId); |
|||
return ; |
|||
} |
|||
govTokenDto.setPermissions(permissions); |
|||
|
|||
// 将新的TokenDto更新到redis中
|
|||
long expire = cpUserDetailRedis.getExpire(app, client, staffId); |
|||
cpUserDetailRedis.set(govTokenDto, expire); |
|||
logger.warn("更新[{}]用户缓存成功。", staffId); |
|||
} |
|||
|
|||
@Override |
|||
public Set<String> listStaffCurrPermissions(String app, String client, String staffId) { |
|||
GovTokenDto govTokenDto = cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class); |
|||
if (govTokenDto == null || CollectionUtils.isEmpty(govTokenDto.getPermissions())) { |
|||
return new HashSet<>(); |
|||
} |
|||
return new HashSet<>(govTokenDto.getPermissions()); |
|||
} |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.epmet.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-24 9:13 |
|||
*/ |
|||
@Data |
|||
public class GridStaffCountDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 网格下未被禁用的工作人员数量 |
|||
*/ |
|||
private Integer enableCount; |
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.epmet.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-24 9:06 |
|||
*/ |
|||
@Data |
|||
public class UserIdDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* userId |
|||
*/ |
|||
private String userId; |
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
package com.epmet.dto.form; |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 添加部门人员DTO |
|||
* @Auther zxc |
|||
* @Create 2020-04-24 14:51 |
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 添加部门-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class AddDepartmentFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
*部门id |
|||
*/ |
|||
private String departmentId; |
|||
|
|||
/** |
|||
* 选中人员id |
|||
*/ |
|||
private List<String> selectedList; |
|||
|
|||
/** |
|||
* 所属组织机构ID(customer_agency.id) |
|||
*/ |
|||
@NotBlank(message = "组织机构Id不能为空") |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
private String departmentName; |
|||
|
|||
/** |
|||
* 部门职责 |
|||
*/ |
|||
private String departmentDuty; |
|||
|
|||
|
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-23 16:42 |
|||
*/ |
|||
@Data |
|||
public class AddGridFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机构id |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* 新建网格名称 |
|||
*/ |
|||
private String gridName; |
|||
|
|||
/** |
|||
* 管辖区域 |
|||
*/ |
|||
private String manageDistrict; |
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 获取组织列表-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class AgencyListFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机关组织Id |
|||
*/ |
|||
@NotBlank(message = "组织机构ID不能为空") |
|||
private String agencyId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-23 19:18 |
|||
*/ |
|||
@Data |
|||
public class DeleteGridFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 网格id |
|||
*/ |
|||
private String gridId; |
|||
|
|||
/** |
|||
* 工作人员id |
|||
*/ |
|||
private String staffId; |
|||
|
|||
/** |
|||
* userId |
|||
*/ |
|||
private String userId; |
|||
} |
@ -0,0 +1,43 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 组织首页-获取机关下部门列表-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentInAgencyFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机关组织Id |
|||
*/ |
|||
@NotBlank(message = "组织机构ID不能为空") |
|||
private String agencyId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 获取部门列表-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentListFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机关组织Id |
|||
*/ |
|||
@NotBlank(message = "组织机构ID不能为空") |
|||
private String agencyId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 获取部门详情-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentdetailFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 部门Id |
|||
*/ |
|||
@NotBlank(message = "部门ID不能为空") |
|||
private String departmentId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,54 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 部门信息修改-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class EditDepartmentFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 部门Id |
|||
*/ |
|||
@NotBlank(message = "部门ID不能为空") |
|||
private String departmentId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
@NotBlank(message = "部门名称不能为空") |
|||
private String departmentName; |
|||
|
|||
/** |
|||
* 部门职责 |
|||
*/ |
|||
@NotBlank(message = "部门职责不能为空") |
|||
private String departmentDuty; |
|||
|
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-23 19:12 |
|||
*/ |
|||
@Data |
|||
public class EditGridFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* gridId 网格id |
|||
*/ |
|||
private String gridId; |
|||
|
|||
/** |
|||
* 网格名称 |
|||
*/ |
|||
private String gridName; |
|||
|
|||
/** |
|||
* 管理区域 |
|||
*/ |
|||
private String manageDistrict; |
|||
|
|||
} |
@ -0,0 +1,42 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 删除部门-接口入参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class RemoveDepartmentFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 部门Id |
|||
*/ |
|||
@NotBlank(message = "部门ID不能为空") |
|||
private String departmentId; |
|||
|
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/24 10:12 |
|||
*/ |
|||
|
|||
@Data |
|||
public class StaffInfoFromDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
private String customerId; |
|||
/** |
|||
* 机关ID |
|||
*/ |
|||
@NotBlank(message = "机关ID不能为空") |
|||
private String agencyId; |
|||
/** |
|||
* 用户ID |
|||
*/ |
|||
String staffId; |
|||
} |
@ -0,0 +1,61 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/24 10:43 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class StaffSubmitFromDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 机关ID |
|||
*/ |
|||
@NotBlank(message = "机关ID不能为空") |
|||
private String agencyId; |
|||
/** |
|||
* 人员ID |
|||
*/ |
|||
private String staffId; |
|||
/** |
|||
* 姓名 |
|||
*/ |
|||
@NotBlank(message = "姓名不能为空") |
|||
private String name; |
|||
/** |
|||
* 手机 |
|||
*/ |
|||
@NotBlank(message = "手机号不能为空") |
|||
private String mobile; |
|||
/** |
|||
* 性别 |
|||
*/ |
|||
@NotBlank(message = "性别不能为空") |
|||
private Integer gender; |
|||
/** |
|||
* 专兼职 |
|||
*/ |
|||
@NotBlank(message = "专兼职不能为空") |
|||
private String workType; |
|||
/** |
|||
* 角色id列表 |
|||
*/ |
|||
@NotBlank(message = "角色不能为空") |
|||
private List<String> roles; |
|||
/** |
|||
* 来源app(政府端:gov、居民端:resi、运营端:oper) |
|||
*/ |
|||
private String app; |
|||
/** |
|||
* 来源client(PC端:web、微信小程序:wxmp) |
|||
*/ |
|||
private String client; |
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/23 15:45 |
|||
*/ |
|||
@Data |
|||
public class StaffsInAgencyFromDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
private String customerId; |
|||
/** |
|||
* 机关ID |
|||
*/ |
|||
@NotBlank(message = "机关ID不能为空") |
|||
private String agencyId; |
|||
/** |
|||
* 用户ID |
|||
*/ |
|||
private List<String> staffList; |
|||
} |
@ -0,0 +1,40 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 添加部门-接口返参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class AddDepartmentResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 新增部门Id |
|||
*/ |
|||
private String departmentId; |
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Auther zxc |
|||
* @Create 2020-04-23 16:45 |
|||
*/ |
|||
@Data |
|||
public class AddGridResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* gridId 网格id |
|||
*/ |
|||
private String gridId; |
|||
|
|||
} |
@ -0,0 +1,51 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 获取组织列表-接口返参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class AgencyListResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机关组织Id |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* 机关组织名称 |
|||
*/ |
|||
private String agencyName; |
|||
|
|||
/** |
|||
* 总人数 |
|||
*/ |
|||
private Integer totalUser; |
|||
|
|||
|
|||
} |
@ -0,0 +1,60 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 获取部门详情-部门下工作人员列表 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartInStaffListResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 用户ID |
|||
*/ |
|||
private String staffId; |
|||
|
|||
/** |
|||
* 用户姓名 |
|||
*/ |
|||
private String staffName; |
|||
|
|||
/** |
|||
* 用户头像 |
|||
*/ |
|||
private String staffHeadPhoto; |
|||
|
|||
/** |
|||
* 性别 |
|||
*/ |
|||
private Integer gender; |
|||
|
|||
/** |
|||
* 角色名称 |
|||
*/ |
|||
private String roleName; |
|||
|
|||
} |
@ -0,0 +1,57 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 获取部门详情-接口返参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentDetailResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 部门Id |
|||
*/ |
|||
private String departmentId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
private String departmentName; |
|||
|
|||
/** |
|||
* 部门职责 |
|||
*/ |
|||
private String departmentDuty; |
|||
|
|||
/** |
|||
* 部门下工作人员列表 |
|||
*/ |
|||
private List<DepartInStaffListResultDTO> staffList; |
|||
|
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 组织首页-获取机关下部门列表-接口返参 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentInAgencyResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 机关下总部门数 |
|||
*/ |
|||
private Integer departmentCount; |
|||
|
|||
/** |
|||
* 机关下部门列表 |
|||
*/ |
|||
private List<DepartmentListResultDTO> departmentList; |
|||
|
|||
|
|||
} |
@ -0,0 +1,49 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 组织首页-获取机关下部门列表-部门详情数据 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Data |
|||
public class DepartmentListResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 部门Id |
|||
*/ |
|||
private String departmentId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
private String departmentName; |
|||
|
|||
/** |
|||
* 部门下总人数 |
|||
*/ |
|||
private Integer totalUser; |
|||
} |
@ -0,0 +1,55 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/24 10:50 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class StaffDetailResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 人员ID |
|||
*/ |
|||
private String staffId; |
|||
/** |
|||
* 姓名 |
|||
*/ |
|||
private String name; |
|||
/** |
|||
* 手机号 |
|||
*/ |
|||
private String mobile; |
|||
/** |
|||
* 头像 |
|||
*/ |
|||
private String headPhoto; |
|||
/** |
|||
* 激活状态:inactive未激活,active已激活 |
|||
*/ |
|||
private String activeFlag; |
|||
/** |
|||
* 激活时间 |
|||
*/ |
|||
private Date activeTime; |
|||
/** |
|||
* 性别 |
|||
*/ |
|||
private Integer gender; |
|||
/** |
|||
* 是否禁用(未禁用enable,已禁用disabled) |
|||
*/ |
|||
private String enableFlag; |
|||
/** |
|||
* 职责名称列表 |
|||
*/ |
|||
private List<String> roles; |
|||
} |
@ -0,0 +1,38 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/23 16:08 |
|||
*/ |
|||
@Data |
|||
public class StaffInfoResultDTO implements Serializable { |
|||
/** |
|||
* 用户ID |
|||
*/ |
|||
private String staffId; |
|||
/** |
|||
* 用户姓名 |
|||
*/ |
|||
private String staffName; |
|||
/** |
|||
* 头像 |
|||
*/ |
|||
private String staffHeadPhoto; |
|||
/** |
|||
* 性别 |
|||
*/ |
|||
private Integer gender; |
|||
/** |
|||
* 是否禁用(未禁用enable,已禁用disabled) |
|||
*/ |
|||
private String enableFlag; |
|||
/** |
|||
* 权限名 |
|||
*/ |
|||
private String roleName; |
|||
} |
@ -0,0 +1,40 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/24 10:14 |
|||
*/ |
|||
@Data |
|||
public class StaffInitResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 人员ID |
|||
*/ |
|||
private String staffId; |
|||
/** |
|||
* 姓名 |
|||
*/ |
|||
private String name; |
|||
/** |
|||
* 手机号 |
|||
*/ |
|||
private String mobile; |
|||
/** |
|||
* 性别 |
|||
*/ |
|||
private Integer gender; |
|||
/** |
|||
* 专兼职 |
|||
*/ |
|||
private String workType; |
|||
/** |
|||
* 职责列表 |
|||
*/ |
|||
private List<StaffRoleResultDTO> roleList; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Builder; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/24 10:18 |
|||
*/ |
|||
@Data |
|||
public class StaffRoleResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 角色ID |
|||
*/ |
|||
private String roleId; |
|||
/** |
|||
* 角色名称 |
|||
*/ |
|||
private String roleName; |
|||
/** |
|||
* 是否选中(选中的是true) |
|||
*/ |
|||
private Boolean selected; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/23 15:58 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class StaffsInAgencyResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 人员总数 |
|||
*/ |
|||
private Integer staffCount; |
|||
/** |
|||
* 人员列表 |
|||
*/ |
|||
private List<StaffInfoResultDTO> staffList; |
|||
|
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.epmet.constant; |
|||
|
|||
/** |
|||
* @author sun |
|||
* @dscription |
|||
*/ |
|||
public interface CustomerDepartmentConstant { |
|||
|
|||
/** |
|||
* 部门信息编辑修改失败 |
|||
*/ |
|||
String UPDATE_EXCEPTION = "部门信息更新失败"; |
|||
/** |
|||
* 添加部门失败 |
|||
*/ |
|||
String SAVE_EXCEPTION = "添加部门失败"; |
|||
/** |
|||
* 部门删除失败 |
|||
*/ |
|||
String DEL_EXCEPTION = "删除部门失败"; |
|||
/** |
|||
* 查询用户基本信息失败 |
|||
*/ |
|||
String SELECT_STAFFINFO_EXCEPTION = "根据用户Id未查询到用户基本信息"; |
|||
|
|||
/** |
|||
* 查询部门人员角色 |
|||
*/ |
|||
String SELECT_ROLE_EXCEPTION = "查询部门人员角色失败"; |
|||
} |
@ -0,0 +1,113 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.AddAgencyResultDTO; |
|||
import com.epmet.dto.result.AgencyListResultDTO; |
|||
import com.epmet.dto.result.AgencysResultDTO; |
|||
import com.epmet.dto.result.SubAgencyResultDTO; |
|||
import com.epmet.service.AgencyService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 组织机构 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("agency") |
|||
public class AgencyController { |
|||
|
|||
@Autowired |
|||
private AgencyService agencyService; |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
@PostMapping("addagency") |
|||
public Result<AddAgencyResultDTO> addAgency(@RequestBody AddAgencyFormDTO formDTO) { |
|||
return agencyService.addAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
@PostMapping("editagency") |
|||
public Result editAgency(@RequestBody EditAgencyFormDTO formDTO) { |
|||
return agencyService.editAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
@PostMapping("removeagency") |
|||
public Result removeAgency(@RequestBody RemoveAgencyFormDTO formDTO) { |
|||
return agencyService.removeAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
@PostMapping("agencydetail") |
|||
public Result<AgencysResultDTO> agencyDetail(@RequestBody AgencydetailFormDTO formDTO) { |
|||
return agencyService.agencyDetail(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
@PostMapping("subagencylist") |
|||
public Result<SubAgencyResultDTO> subAgencyList(@RequestBody SubAgencyFormDTO formDTO) { |
|||
return agencyService.subAgencyList(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取组织列表 |
|||
*/ |
|||
@PostMapping("agencylist") |
|||
public Result<List<AgencyListResultDTO>> agencyList(@RequestBody AgencyListFormDTO formDTO) { |
|||
return agencyService.agencyList(formDTO); |
|||
} |
|||
} |
@ -0,0 +1,102 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.annotation.LoginUser; |
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.AddDepartmentResultDTO; |
|||
import com.epmet.dto.result.DepartmentDetailResultDTO; |
|||
import com.epmet.dto.result.DepartmentInAgencyResultDTO; |
|||
import com.epmet.dto.result.DepartmentListResultDTO; |
|||
import com.epmet.service.DepartmentService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 部门 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("department") |
|||
public class DepartmentController { |
|||
|
|||
@Autowired |
|||
private DepartmentService departmentService; |
|||
|
|||
@PostMapping(value = "adddepartmentstaff") |
|||
public Result addDepartmentStaff(@LoginUser TokenDto tokenDto, @RequestBody AddDepartmentFormDTO addDepartmentFormDTO){ |
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加部门 |
|||
*/ |
|||
@PostMapping("adddepartment") |
|||
public Result<AddDepartmentResultDTO> addDepartment(@RequestBody AddDepartmentFormDTO formDTO) { |
|||
return departmentService.addDepartment(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 部门信息修改 |
|||
*/ |
|||
@PostMapping("editdepartment") |
|||
public Result editDepartment(@RequestBody EditDepartmentFormDTO formDTO) { |
|||
return departmentService.editDepartment(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除部门 |
|||
*/ |
|||
@PostMapping("removedepartment") |
|||
public Result removeDepartment(@RequestBody RemoveDepartmentFormDTO formDTO) { |
|||
return departmentService.removeDepartment(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取部门详情 |
|||
*/ |
|||
@PostMapping("departmentdetail") |
|||
public Result<DepartmentDetailResultDTO> departmentDetail(@RequestBody DepartmentdetailFormDTO formDTO) { |
|||
return departmentService.departmentDetail(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取机关下部门列表 |
|||
*/ |
|||
@PostMapping("departmentinagencylist") |
|||
public Result<DepartmentInAgencyResultDTO> departmentInAgencyList(@RequestBody DepartmentInAgencyFormDTO formDTO) { |
|||
return departmentService.departmentInAgencyList(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取机构下部门列表 |
|||
*/ |
|||
@PostMapping("departmentlist") |
|||
public Result<List<DepartmentListResultDTO>> departmentList(@RequestBody DepartmentListFormDTO formDTO) { |
|||
return departmentService.departmentList(formDTO); |
|||
} |
|||
} |
@ -0,0 +1,122 @@ |
|||
package com.epmet.controller; |
|||
|
|||
|
|||
|
|||
import com.epmet.commons.tools.annotation.LoginUser; |
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.StaffInfoFromDTO; |
|||
import com.epmet.dto.form.StaffSubmitFromDTO; |
|||
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
|||
import com.epmet.dto.result.StaffDetailResultDTO; |
|||
import com.epmet.dto.result.StaffInfoResultDTO; |
|||
import com.epmet.dto.result.StaffInitResultDTO; |
|||
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
|||
import com.epmet.service.StaffService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 组织结构-工作人员 |
|||
* @author zhaoqifeng |
|||
* @date 2020/4/23 17:59 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("staff") |
|||
public class StaffController { |
|||
@Autowired |
|||
private StaffService staffService; |
|||
/** |
|||
* 组织首页-工作人员列表 |
|||
* @param fromDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("staffsinagency") |
|||
public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(@RequestBody StaffsInAgencyFromDTO fromDTO) { |
|||
return staffService.getStaffInfoForHome(fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 查看人员列表 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffsInAgencyResultDTO> |
|||
* @author zhaoqifeng |
|||
*/ |
|||
@PostMapping("stafflist") |
|||
public Result<List<StaffInfoResultDTO>> getStaffList(@RequestBody StaffsInAgencyFromDTO fromDTO){ |
|||
return staffService.getStaffList(fromDTO); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 人员添加页面初始化 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffInitResultDTO> |
|||
*/ |
|||
@PostMapping("rolelist") |
|||
public Result<StaffInitResultDTO> addStaffInit(@RequestBody StaffInfoFromDTO fromDTO){ |
|||
return staffService.addStaffInit(fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 人员编辑页面初始化 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffInitResultDTO> |
|||
*/ |
|||
@PostMapping("editstaffinit") |
|||
public Result<StaffInitResultDTO> editStaffInit(@RequestBody StaffInfoFromDTO fromDTO){ |
|||
return staffService.editStaffInit(fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 人员添加 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
@PostMapping("addstaff") |
|||
public Result addStaff(@LoginUser TokenDto tokenDto, @RequestBody StaffSubmitFromDTO fromDTO){ |
|||
return staffService.addStaff(tokenDto, fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 人员编辑 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
@PostMapping("editstaff") |
|||
public Result editStaff(@LoginUser TokenDto tokenDto, @RequestBody StaffSubmitFromDTO fromDTO){ |
|||
return staffService.editStaff(tokenDto, fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 人员详情 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffDetailResultDTO> |
|||
*/ |
|||
@PostMapping("staffdetail") |
|||
public Result<StaffDetailResultDTO> getStaffDetail(@RequestBody StaffInfoFromDTO fromDTO){ |
|||
return staffService.getStaffDetail(fromDTO); |
|||
} |
|||
|
|||
/** |
|||
* 人员禁用 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
@PostMapping("disabledstaff") |
|||
public Result disabledStaff(@RequestBody StaffInfoFromDTO fromDTO){ |
|||
return staffService.disabledStaff(fromDTO); |
|||
} |
|||
} |
@ -0,0 +1,83 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.AddAgencyResultDTO; |
|||
import com.epmet.dto.result.AgencyListResultDTO; |
|||
import com.epmet.dto.result.AgencysResultDTO; |
|||
import com.epmet.dto.result.SubAgencyResultDTO; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
public interface AgencyService { |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
Result editAgency(EditAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
Result removeAgency(RemoveAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
Result<AgencysResultDTO> agencyDetail(AgencydetailFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取组织列表 |
|||
*/ |
|||
Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO); |
|||
} |
@ -0,0 +1,80 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
public interface DepartmentService { |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加部门 |
|||
*/ |
|||
Result<AddDepartmentResultDTO> addDepartment(AddDepartmentFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 部门信息修改 |
|||
*/ |
|||
Result editDepartment(EditDepartmentFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除部门 |
|||
*/ |
|||
Result removeDepartment(RemoveDepartmentFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取部门详情 |
|||
*/ |
|||
Result<DepartmentDetailResultDTO> departmentDetail(DepartmentdetailFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取机关下部门列表 |
|||
*/ |
|||
Result<DepartmentInAgencyResultDTO> departmentInAgencyList(DepartmentInAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取机构下部门列表 |
|||
*/ |
|||
Result<List<DepartmentListResultDTO>> departmentList(DepartmentListFormDTO formDTO); |
|||
} |
@ -0,0 +1,88 @@ |
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.StaffInfoFromDTO; |
|||
import com.epmet.dto.form.StaffSubmitFromDTO; |
|||
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
|||
import com.epmet.dto.result.StaffDetailResultDTO; |
|||
import com.epmet.dto.result.StaffInfoResultDTO; |
|||
import com.epmet.dto.result.StaffInitResultDTO; |
|||
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 组织结构-工作人员 |
|||
* |
|||
* @author zhaoqifeng |
|||
* @date 2020/4/23 18:00 |
|||
*/ |
|||
public interface StaffService { |
|||
/** |
|||
* 组织首页-工作人员列表 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffsInAgencyResultDTO> |
|||
* @author zhaoqifeng |
|||
*/ |
|||
Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 查看人员列表 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffsInAgencyResultDTO> |
|||
* @author zhaoqifeng |
|||
*/ |
|||
Result<List<StaffInfoResultDTO>> getStaffList(StaffsInAgencyFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员添加页面初始化 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffInitResultDTO> |
|||
*/ |
|||
Result<StaffInitResultDTO> addStaffInit(StaffInfoFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员编辑页面初始化 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffInitResultDTO> |
|||
*/ |
|||
Result<StaffInitResultDTO> editStaffInit(StaffInfoFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员添加 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
Result addStaff(TokenDto tokenDto, StaffSubmitFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员编辑 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
Result editStaff(TokenDto tokenDto,StaffSubmitFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员详情 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result<StaffDetailResultDTO> |
|||
*/ |
|||
Result<StaffDetailResultDTO> getStaffDetail(StaffInfoFromDTO fromDTO); |
|||
|
|||
/** |
|||
* 人员禁用 |
|||
* |
|||
* @param fromDTO 参数 |
|||
* @return Result |
|||
*/ |
|||
Result disabledStaff(StaffInfoFromDTO fromDTO); |
|||
|
|||
} |
@ -0,0 +1,187 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.constant.CustomerAgencyConstant; |
|||
import com.epmet.dao.CustomerAgencyDao; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.*; |
|||
import com.epmet.entity.CustomerAgencyEntity; |
|||
import com.epmet.service.AgencyService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
@Service |
|||
public class AgencyServiceImpl implements AgencyService { |
|||
|
|||
private static final Logger log = LoggerFactory.getLogger(AgencyServiceImpl.class); |
|||
@Autowired |
|||
private CustomerAgencyDao customerAgencyDao; |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO) { |
|||
Result<AddAgencyResultDTO> result = new Result<AddAgencyResultDTO>(); |
|||
AddAgencyResultDTO addAgencyResultDTO = new AddAgencyResultDTO(); |
|||
//0:属性映射赋值
|
|||
CustomerAgencyEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); |
|||
entity.setOrganizationName(formDTO.getAgencyName()); |
|||
entity.setTotalUser(NumConstant.ZERO); |
|||
//1:查询上级机关信息
|
|||
CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getPid()); |
|||
entity.setCustomerId(parentEntity.getCustomerId()); |
|||
if (null == parentEntity.getPid()) { |
|||
entity.setPids(parentEntity.getId()); |
|||
entity.setAllParentName(parentEntity.getOrganizationName()); |
|||
} else { |
|||
entity.setPids(":" + parentEntity.getId()); |
|||
entity.setAllParentName("-" + parentEntity.getOrganizationName()); |
|||
} |
|||
//2:保存组织信息
|
|||
if (customerAgencyDao.insert(entity) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.SAVE_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.SAVE_EXCEPTION); |
|||
} |
|||
//3:返回新组织Id
|
|||
addAgencyResultDTO.setAgencyId(entity.getId()); |
|||
return result.ok(addAgencyResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result editAgency(EditAgencyFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
CustomerAgencyEntity entity = new CustomerAgencyEntity(); |
|||
entity.setId(formDTO.getAgencyId()); |
|||
entity.setOrganizationName(formDTO.getAgencyName()); |
|||
if (customerAgencyDao.updateById(entity) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.UPDATE_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.UPDATE_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result removeAgency(RemoveAgencyFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
//1:查询当前机关是否存在所属下级机关,存在下级的不能删除
|
|||
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
|||
if (null != agencyList && agencyList.size() > NumConstant.ZERO) { |
|||
result.setCode(EpmetErrorCode.NOT_DEL_AGENCY.getCode()); |
|||
result.setMsg(EpmetErrorCode.NOT_DEL_AGENCY.getMsg()); |
|||
return result; |
|||
} |
|||
//2:删除当前机关组织(逻辑删)
|
|||
if (customerAgencyDao.deleteById(formDTO.getAgencyId()) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.DEL_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.DEL_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
@Override |
|||
public Result<AgencysResultDTO> agencyDetail(AgencydetailFormDTO formDTO) { |
|||
AgencysResultDTO agencysResultDTO = new AgencysResultDTO(); |
|||
//1:查询本机关详细信息
|
|||
CustomerAgencyEntity entity = customerAgencyDao.selectById(formDTO.getAgencyId()); |
|||
if (null == entity) { |
|||
return new Result<AgencysResultDTO>().ok(agencysResultDTO); |
|||
} |
|||
agencysResultDTO = ConvertUtils.sourceToTarget(entity, AgencysResultDTO.class); |
|||
agencysResultDTO.setAgencyId(entity.getId()); |
|||
agencysResultDTO.setAgencyName(entity.getOrganizationName()); |
|||
//2:查询本机关的所有上级机关,按自上而下层级顺序
|
|||
if (null == entity.getPids()) { |
|||
return new Result<AgencysResultDTO>().ok(agencysResultDTO); |
|||
} |
|||
List<String> listStr = Arrays.asList(entity.getPids().split(":")); |
|||
List<ParentListResultDTO> parentList = customerAgencyDao.selectPAgencyById(listStr); |
|||
agencysResultDTO.setParentList(parentList); |
|||
return new Result<AgencysResultDTO>().ok(agencysResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
@Override |
|||
public Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO) { |
|||
SubAgencyResultDTO subAgencyResultDTO = new SubAgencyResultDTO(); |
|||
//1:根据当前机关Id查询直属下一级机关列表
|
|||
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
|||
subAgencyResultDTO.setAgencyList(agencyList); |
|||
//2:统计下一级机关数
|
|||
subAgencyResultDTO.setSubAgencyCount(agencyList.size()); |
|||
return new Result<SubAgencyResultDTO>().ok(subAgencyResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取组织列表 |
|||
*/ |
|||
@Override |
|||
public Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO) { |
|||
List<AgencyListResultDTO> agencyList = customerAgencyDao.selectAgencyList(formDTO.getAgencyId()); |
|||
return new Result<List<AgencyListResultDTO>>().ok(agencyList); |
|||
} |
|||
} |
@ -0,0 +1,200 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.constant.CustomerDepartmentConstant; |
|||
import com.epmet.dao.CustomerAgencyDao; |
|||
import com.epmet.dao.CustomerDepartmentDao; |
|||
import com.epmet.dao.CustomerStaffDepartmentDao; |
|||
import com.epmet.dto.StaffRoleDTO; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.*; |
|||
import com.epmet.entity.CustomerAgencyEntity; |
|||
import com.epmet.entity.CustomerDepartmentEntity; |
|||
import com.epmet.feign.EpmetUserFeignClient; |
|||
import com.epmet.service.DepartmentService; |
|||
import com.epmet.util.ModuleConstant; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author sun |
|||
*/ |
|||
@Service |
|||
public class DepartmentServiceImpl implements DepartmentService { |
|||
|
|||
private static final Logger log = LoggerFactory.getLogger(DepartmentServiceImpl.class); |
|||
@Autowired |
|||
private CustomerAgencyDao customerAgencyDao; |
|||
@Autowired |
|||
private CustomerDepartmentDao customerDepartmentDao; |
|||
@Autowired |
|||
private CustomerStaffDepartmentDao customerStaffDepartmentDao; |
|||
@Autowired |
|||
private EpmetUserFeignClient epmetUserFeignClient; |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加部门 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result<AddDepartmentResultDTO> addDepartment(AddDepartmentFormDTO formDTO) { |
|||
Result<AddDepartmentResultDTO> result = new Result<AddDepartmentResultDTO>(); |
|||
AddDepartmentResultDTO addDepartmentResultDTO = new AddDepartmentResultDTO(); |
|||
CustomerDepartmentEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerDepartmentEntity.class); |
|||
entity.setTotalUser(NumConstant.ZERO); |
|||
//1:查询当前组织机构信息,获取客户Id
|
|||
CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); |
|||
entity.setCustomerId(parentEntity.getCustomerId()); |
|||
//2:保存部门信息
|
|||
if (customerDepartmentDao.insert(entity) < NumConstant.ONE) { |
|||
log.error(CustomerDepartmentConstant.SAVE_EXCEPTION); |
|||
throw new RenException(CustomerDepartmentConstant.SAVE_EXCEPTION); |
|||
} |
|||
//3:返回新部门Id
|
|||
addDepartmentResultDTO.setDepartmentId(entity.getId()); |
|||
return result.ok(addDepartmentResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 部门信息修改 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result editDepartment(EditDepartmentFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
CustomerDepartmentEntity entity = new CustomerDepartmentEntity(); |
|||
entity.setId(formDTO.getDepartmentId()); |
|||
entity.setDepartmentName(formDTO.getDepartmentName()); |
|||
entity.setDepartmentDuty(formDTO.getDepartmentDuty()); |
|||
if (customerDepartmentDao.updateById(entity) < NumConstant.ONE) { |
|||
log.error(CustomerDepartmentConstant.UPDATE_EXCEPTION); |
|||
throw new RenException(CustomerDepartmentConstant.UPDATE_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除部门 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result removeDepartment(RemoveDepartmentFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
//1:判断当前部门下是否存在工作人员,不存在的可以删除
|
|||
CustomerDepartmentEntity entity = customerDepartmentDao.selectById(formDTO.getDepartmentId()); |
|||
if (null != entity && entity.getTotalUser() > NumConstant.ZERO) { |
|||
result.setCode(EpmetErrorCode.NOT_DEL_DEPARTMENT.getCode()); |
|||
result.setMsg(EpmetErrorCode.NOT_DEL_DEPARTMENT.getMsg()); |
|||
return result; |
|||
} |
|||
//2:删除部门信息(逻辑删)
|
|||
if (customerDepartmentDao.deleteById(formDTO.getDepartmentId()) < NumConstant.ONE) { |
|||
log.error(CustomerDepartmentConstant.DEL_EXCEPTION); |
|||
throw new RenException(CustomerDepartmentConstant.DEL_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取部门详情 |
|||
*/ |
|||
@Override |
|||
public Result<DepartmentDetailResultDTO> departmentDetail(DepartmentdetailFormDTO formDTO) { |
|||
Result<DepartmentDetailResultDTO> result = new Result<DepartmentDetailResultDTO>(); |
|||
DepartmentDetailResultDTO departmentDetailResultDTO = new DepartmentDetailResultDTO(); |
|||
//1:根据部门Id查询部门详情信息
|
|||
CustomerDepartmentEntity entity = customerDepartmentDao.selectById(formDTO.getDepartmentId()); |
|||
departmentDetailResultDTO = ConvertUtils.sourceToTarget(entity, DepartmentDetailResultDTO.class); |
|||
departmentDetailResultDTO.setDepartmentId(entity.getId()); |
|||
//2:查询部门下工作人员的用户Id集合
|
|||
List<String> userIdList = customerStaffDepartmentDao.selectUserIdByDepartmentId(formDTO.getDepartmentId()); |
|||
if (null == userIdList || userIdList.size() < NumConstant.ONE) { |
|||
return result.ok(departmentDetailResultDTO); |
|||
} |
|||
DepartmentInStaffFormDTO departmentInStaffFormDTO = new DepartmentInStaffFormDTO(); |
|||
//部门Id用于查询部门领导角色使用
|
|||
departmentInStaffFormDTO.setDepartmentId(formDTO.getDepartmentId()); |
|||
departmentInStaffFormDTO.setCustomerId(entity.getCustomerId()); |
|||
departmentInStaffFormDTO.setUserIdList(userIdList); |
|||
//3:调用epmet_user服务,查询人员基本信息,按姓名对应的拼音升序
|
|||
Result<List<DepartInStaffListResultDTO>> resultList = epmetUserFeignClient.getDepartmentStaffList(departmentInStaffFormDTO); |
|||
if (!resultList.success() || null == resultList.getData()) { |
|||
log.error(CustomerDepartmentConstant.SELECT_STAFFINFO_EXCEPTION); |
|||
throw new RenException(CustomerDepartmentConstant.SELECT_STAFFINFO_EXCEPTION); |
|||
} |
|||
//部门下所有工作人员基本信息
|
|||
List<DepartInStaffListResultDTO> staffList = resultList.getData(); |
|||
departmentDetailResultDTO.setStaffList(staffList); |
|||
return new Result<DepartmentDetailResultDTO>().ok(departmentDetailResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取机关下部门列表 |
|||
*/ |
|||
@Override |
|||
public Result<DepartmentInAgencyResultDTO> departmentInAgencyList(DepartmentInAgencyFormDTO formDTO) { |
|||
DepartmentInAgencyResultDTO departmentInAgencyResultDTO = new DepartmentInAgencyResultDTO(); |
|||
//1:根据当前机关Id查询该机关下的直属部门列表
|
|||
List<DepartmentListResultDTO> departmentList = customerDepartmentDao.selectDepartmentListByAgencyId(formDTO.getAgencyId()); |
|||
departmentInAgencyResultDTO.setDepartmentList(departmentList); |
|||
//2:统计下一级机关数
|
|||
departmentInAgencyResultDTO.setDepartmentCount(departmentList.size()); |
|||
return new Result<DepartmentInAgencyResultDTO>().ok(departmentInAgencyResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 获取机构下部门列表 |
|||
*/ |
|||
@Override |
|||
public Result<List<DepartmentListResultDTO>> departmentList(DepartmentListFormDTO formDTO) { |
|||
List<DepartmentListResultDTO> departmentList = customerDepartmentDao.selectDepartmentList(formDTO.getAgencyId()); |
|||
return new Result<List<DepartmentListResultDTO>>().ok(departmentList); |
|||
} |
|||
} |
@ -0,0 +1,124 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.CustomerStaffAgencyDTO; |
|||
import com.epmet.dto.form.StaffInfoFromDTO; |
|||
import com.epmet.dto.form.StaffSubmitFromDTO; |
|||
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
|||
import com.epmet.dto.result.StaffDetailResultDTO; |
|||
import com.epmet.dto.result.StaffInfoResultDTO; |
|||
import com.epmet.dto.result.StaffInitResultDTO; |
|||
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
|||
import com.epmet.entity.CustomerAgencyEntity; |
|||
import com.epmet.feign.EpmetUserFeignClient; |
|||
import com.epmet.feign.OperCrmFeignClient; |
|||
import com.epmet.service.CustomerAgencyService; |
|||
import com.epmet.service.CustomerStaffAgencyService; |
|||
import com.epmet.service.StaffService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* @author zhaoqifeng |
|||
* @dscription |
|||
* @date 2020/4/23 18:05 |
|||
*/ |
|||
@Service |
|||
public class StaffServiceImpl implements StaffService { |
|||
@Autowired |
|||
private EpmetUserFeignClient epmetUserFeignClient; |
|||
@Autowired |
|||
private OperCrmFeignClient operCrmFeignClient; |
|||
@Autowired |
|||
private CustomerAgencyService customerAgencyService; |
|||
@Autowired |
|||
private CustomerStaffAgencyService customerStaffAgencyService; |
|||
|
|||
@Override |
|||
public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { |
|||
StaffsInAgencyResultDTO resultDTO = new StaffsInAgencyResultDTO(); |
|||
//获取机关所在客户ID和人员总数
|
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
resultDTO.setStaffCount(customerAgencyEntity.getTotalUser()); |
|||
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
|||
List<CustomerStaffAgencyDTO> customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); |
|||
if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { |
|||
return new Result<StaffsInAgencyResultDTO>().ok(null); |
|||
} |
|||
//提取所有userID
|
|||
List<String> staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); |
|||
fromDTO.setStaffList(staffIds); |
|||
//获取用户信息
|
|||
Result<List<StaffInfoResultDTO>> staffInfoListResult = epmetUserFeignClient.getStaffInfoForHome(fromDTO); |
|||
resultDTO.setStaffList(staffInfoListResult.getData()); |
|||
return new Result<StaffsInAgencyResultDTO>().ok(resultDTO); |
|||
} |
|||
|
|||
@Override |
|||
public Result<List<StaffInfoResultDTO>> getStaffList(StaffsInAgencyFromDTO fromDTO) { |
|||
//获取机关所在客户ID
|
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
|||
List<CustomerStaffAgencyDTO> customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); |
|||
if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { |
|||
return new Result<List<StaffInfoResultDTO>>().ok(null); |
|||
} |
|||
//提取所有userID
|
|||
List<String> staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); |
|||
fromDTO.setStaffList(staffIds); |
|||
//获取用户列表
|
|||
Result<List<StaffInfoResultDTO>> staffInfoListResult = epmetUserFeignClient.getStaffInfoForHome(fromDTO); |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public Result<StaffInitResultDTO> addStaffInit(StaffInfoFromDTO fromDTO) { |
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
|||
return epmetUserFeignClient.addStaffInit(fromDTO); |
|||
} |
|||
|
|||
@Override |
|||
public Result<StaffInitResultDTO> editStaffInit(StaffInfoFromDTO fromDTO) { |
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
|||
return epmetUserFeignClient.editStaffInit(fromDTO); |
|||
} |
|||
|
|||
@Override |
|||
public Result addStaff(TokenDto tokenDto, StaffSubmitFromDTO fromDTO) { |
|||
fromDTO.setApp(tokenDto.getApp()); |
|||
fromDTO.setClient(tokenDto.getClient()); |
|||
Result result = epmetUserFeignClient.addStaff(fromDTO); |
|||
//机关总人数加一
|
|||
if (result.success()) { |
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
customerAgencyEntity.setTotalUser(customerAgencyEntity.getTotalUser() + 1); |
|||
customerAgencyService.updateById(customerAgencyEntity); |
|||
} |
|||
return new Result(); |
|||
} |
|||
|
|||
@Override |
|||
public Result editStaff(TokenDto tokenDto, StaffSubmitFromDTO fromDTO) { |
|||
fromDTO.setApp(tokenDto.getApp()); |
|||
fromDTO.setClient(tokenDto.getClient()); |
|||
return epmetUserFeignClient.editStaff(fromDTO); |
|||
} |
|||
|
|||
@Override |
|||
public Result<StaffDetailResultDTO> getStaffDetail(StaffInfoFromDTO fromDTO) { |
|||
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
|||
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
|||
return epmetUserFeignClient.getStaffDetail(fromDTO); |
|||
} |
|||
|
|||
@Override |
|||
public Result disabledStaff(StaffInfoFromDTO fromDTO) { |
|||
return epmetUserFeignClient.disabledStaff(fromDTO); |
|||
} |
|||
} |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue