Browse Source

修改执法人员查询执法主体

部门查询修改
区分系统用户登录和深i企用户登录
v3
chenrui 2 years ago
parent
commit
0156b13d34
  1. 17
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppEnterpriseLawEnforcementController.java
  2. 17
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppSystemController.java
  3. 77
      lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java
  4. 8
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java
  5. 21
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/nopaddword/UserToken.java
  6. 33
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/nopaddword/UserType.java
  7. 14
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/UserRealm.java
  8. 132
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/LoginService.java
  9. 53
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java
  10. 7
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java
  11. 8
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/mapper/UserMapper.java
  12. 18
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java
  13. 5
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml
  14. 46
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/UserMapper.xml
  15. 99
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/logback.xml
  16. 2
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnforcementRegistration.java
  17. 11
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/Zfryjdm2405301Mapper.java
  18. 11
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/IZfryjdm2405301Service.java
  19. 13
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java
  20. 5
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/Zfryjdm2405301ServiceImpl.java
  21. 5
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/Zfryjdm2405301Mapper.xml
  22. 37
      lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/feign/DeptApi.java

17
lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppEnterpriseLawEnforcementController.java

@ -200,11 +200,20 @@ public class AppEnterpriseLawEnforcementController extends BaseController
//查询数据变更之前的原始数据
EnterpriseLawEnforcement enterpriseLawEnforcement1 =
enterpriseLawEnforcementService.selectEnterpriseLawEnforcementById(tmpId);
//短信通知,限制为执法时间变更
if(!enterpriseLawEnforcement1.getCheckTime().equals(enterpriseLawEnforcement.getCheckItem())){
// 新增默认下发短信
this.sendSms(enterpriseLawEnforcement);
//短信通知,限制为执法时间变更 事项变更 要求变更
try {
if(!enterpriseLawEnforcement1.getCheckTime().equals(enterpriseLawEnforcement.getCheckItem()) ||
enterpriseLawEnforcement1.getCheckTimeOrder() != enterpriseLawEnforcement.getCheckTimeOrder()||
enterpriseLawEnforcement1.getCheckRequire().equals(enterpriseLawEnforcement.getCheckRequire()) ||
enterpriseLawEnforcement1.getCheckTime().equals(enterpriseLawEnforcement.getCheckTime())){
// 新增默认下发短信
this.sendSms(enterpriseLawEnforcement);
}
}catch (Exception e){
e.printStackTrace();
System.out.println("预约短信发送失败,基础信息如下:" + JSONObject.toJSONString(enterpriseLawEnforcement));
}
} else {
resNum += enterpriseLawEnforcementService.insertEnterpriseLawEnforcement(enterpriseLawEnforcement);
enterpriseLawEnforcement.setId(null);

17
lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppSystemController.java

@ -9,6 +9,8 @@ import com.zdxt.auth.feign.PostApi;
import com.zdxt.auth.feign.UserApi;
import com.zdxt.auth.project.system.dict.service.IDictDataService;
import com.zdxt.auth.project.system.user.service.IUserService;
import com.zdxt.code.domain.Zfryjdm2405301;
import com.zdxt.code.service.IZfryjdm2405301Service;
import com.zdxt.common.ZDResponse;
import com.zdxt.common.controller.BaseController;
import com.zdxt.common.util.IdCardCryptoUtil;
@ -46,6 +48,8 @@ public class AppSystemController extends BaseController {
@Autowired
private IUserService userService;
@Autowired
private IZfryjdm2405301Service iZfryjdm2405301Service;
@Autowired
private PostApi postApi;
@ -58,8 +62,15 @@ public class AppSystemController extends BaseController {
public ZDResponse getUserInfo(@PathVariable Long userId){
// UserBean user = userApi.getCurrentUser();
UserBean user = userApi.getUserByUserId(userId);
//查询双系统执法人员信息
Zfryjdm2405301 zfryjdm2405301 =
iZfryjdm2405301Service.selectZfryByZfCode(user.getLawCertificateNum());
//通过机构代码查询执法主体信息
DeptBean dept1 = deptApi.selectDeptByCreditcode(zfryjdm2405301.getZzjgdm());
//查询本人所在部门
DeptBean dept = deptApi.getDeptById(user.getDeptId());
DeptBean dept1 = deptApi.iterationDeptParent(user.getDeptId());
user.setDept(dept);
user.setBureauDept(dept1);
return ZDResponse.success("查询成功",user);
@ -78,7 +89,7 @@ public class AppSystemController extends BaseController {
@ResponseBody
public TableDataInfo listApp(User user) {
startPage();
List<User> list = userService.selectUserList(user);
List<User> list = userService.selectUserListByHave(user);
//解密
// if(list.size() > 0){
// for (int i = 0; i < list.size(); i++) {
@ -108,7 +119,7 @@ public class AppSystemController extends BaseController {
@GetMapping("/listAApp")
@ResponseBody
public ZDResponse listAApp(User user) {
List<User> list = userService.selectUserList(user);
List<User> list = userService.selectUserListByHave(user);
// 查询出职务
// for (User userData : list) {
// List<PostBean> postBeanList = postApi.selectPostsByUserId(userData.getUserId());

77
lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/AppThirdLoginController.java

@ -7,6 +7,7 @@ import com.zdxt.auth.feign.UserApi;
import com.zdxt.auth.framework.shiro.jwt.JWTUtils;
import com.zdxt.auth.framework.shiro.nopaddword.LoginType;
import com.zdxt.auth.framework.shiro.nopaddword.UserToken;
import com.zdxt.auth.framework.shiro.nopaddword.UserType;
import com.zdxt.auth.project.system.user.service.IUserService;
import com.zdxt.auth.project.system.user.util.AesHelper;
import com.zdxt.code.domain.MssqAddOrder;
@ -99,8 +100,7 @@ public class AppThirdLoginController {
String secretKey = params.get("secretKey");
//解密
secretKey = AesHelper.desEncrypt(secretKey);
// UsernamePasswordToken token = new UsernamePasswordToken(secretName, secretKey, false);
UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD);
UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD, UserType.SYS.getType());
Subject subject = SecurityUtils.getSubject();
subject.login(token);
User user = userService.selectUserByLoginName(secretName);
@ -357,6 +357,79 @@ public class AppThirdLoginController {
return thirdLoginService.siqLogin(userInfo);
}
/**
* 深i企用户登录
* @param
*/
@PostMapping("/siqLoginTestNew")
@ResponseBody
public ZDResponse siqLoginTestNew(@RequestBody JSONObject jsonObject){
//redis锁
String redisLock = "";
try {
// Map<String, String> params = new HashMap<>();
// log.info("获取深i企登录用户code:{}",siqLogin.getCode());
// String secret = IdCardCryptoUtil.symmetricEncryptIdCard(secretKey, siqLogin.getCode());
// params.put("accessKeySign",secret);
// params.put("appCode",code);
// String data = null;
// try {
// data = HttpUtil.httpSendPost(siqUrl + "/pub/auth/getUserInfo", JSONObject.toJSONString(params),new HashMap<>());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("获取深i企用户信息失败,返回结果:{}",data);
// }
log.info("================= data =================");
// log.info(data);
log.info("================= data =================");
// JJSONObject.parseObject(data);
JSONObject userInfo = jsonObject.getJSONObject("data");
log.info("================= userInfo =================");
log.info(jsonObject.getString("data"));
log.info(userInfo.toJSONString());
log.info("================= userInfo =================");
String account = userInfo.getString("account");
if(StringUtils.isNotEmpty(account)){
redisLock = account;
}else{
// 电话号码解密并获取用户
String phone = IdCardCryptoUtil.symmetricDecryptIdCard(secretKey, userInfo.getString("phone"));
redisLock = phone;
}
//锁不存在:
//1.加锁限制用户登录并发情况
if(!jedisUtil.exists(redisLock)){
jedisUtil.isLock(redisLock,10);
log.info("redis用户登录加锁,加锁用户:{}",userInfo.toJSONString());
//添加深i企用户
Long userId = thirdLoginService.addSiqUser(userInfo);
userInfo.put("userId", userId);
log.info("================= siqLogin addSiqUser -> userId =================");
log.info(userId.toString());
log.info("================= siqLogin addSiqUser -> userId =================");
//添加深i企用户关联企业信息
thirdLoginService.addSiqUserCompany(userInfo);
}else{
log.info("用户正在登录中,用户信息:{}",userInfo.toJSONString());
}
return thirdLoginService.siqLogin(userInfo);
}catch (Exception e){
e.printStackTrace();
}finally {
jedisUtil.del(redisLock);
}
return ZDResponse.success();
}
private String getSignature(String ticket, String nonceStr, long timestamp, String url) {
try {

8
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java

@ -247,4 +247,12 @@ public class DeptApiImpl implements DeptApi {
}
return iterationDeptParent(dept.getParentId());
}
@Override
public DeptBean selectDeptByCreditcode(String code) {
Dept dept = deptMapper.selectDeptByCreditcode(code);
DeptBean bean = new DeptBean();
BeanUtil.copyProperties(dept, bean);
return bean;
}
}

21
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/nopaddword/UserToken.java

@ -13,27 +13,34 @@ public class UserToken extends UsernamePasswordToken
private static final long serialVersionUID = 1L;
private LoginType type;
/**
* 用户类型 1 深i企用户
*/
private Integer userType;
public UserToken()
{
}
public UserToken(String username, String password, LoginType type, boolean rememberMe)
public UserToken(String username, String password, LoginType type, Integer userType, boolean rememberMe)
{
super(username, password, rememberMe);
this.type = type;
this.userType = userType;
}
public UserToken(String username, LoginType type)
public UserToken(String username, LoginType type, Integer userType)
{
super(username, "", false, null);
this.type = type;
this.userType = userType;
}
public UserToken(String username, String password, LoginType type)
public UserToken(String username, String password, LoginType type, Integer userType)
{
super(username, password, false, null);
this.type = type;
this.userType = userType;
}
public LoginType getType()
@ -45,4 +52,12 @@ public class UserToken extends UsernamePasswordToken
{
this.type = type;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
}

33
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/nopaddword/UserType.java

@ -0,0 +1,33 @@
package com.zdxt.auth.framework.shiro.nopaddword;
/**
* @Author: 陈瑞
* @Date: 2024/4/28 10:51 上午
* @Version: 1.0
* @Desc: 登录类型枚举类
*/
public enum UserType {
/**
* 密码登录
*/
SIQ(1),
/**
* 免密码登录
*/
SYS(0);
private Integer type;
UserType(Integer type)
{
this.type = type;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
}

14
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/realm/UserRealm.java

@ -6,6 +6,7 @@ import java.util.Set;
import cn.hutool.core.util.StrUtil;
import com.zdxt.auth.framework.shiro.nopaddword.LoginType;
import com.zdxt.auth.framework.shiro.nopaddword.UserToken;
import com.zdxt.auth.framework.shiro.nopaddword.UserType;
import com.zdxt.auth.framework.shiro.service.LoginService;
import com.zdxt.common.util.RedisCache;
import com.zdxt.domain.auth.User;
@ -110,11 +111,20 @@ public class UserRealm extends AuthorizingRealm implements ZdxtUserRealm
// user = loginService.login(username, password);
if (LoginType.PASSWORD.equals(type))
{
user = loginService.login(username, password);
if(upToken.getUserType() == UserType.SYS.getType()){
user = loginService.login(username, password,UserType.SYS.getType());
}else{
user = loginService.login(username, password,UserType.SIQ.getType());
}
}
else if (LoginType.NOPASSWD.equals(type))
{
user = loginService.login(username);
if(upToken.getUserType() == UserType.SIQ.getType()){
user = loginService.login(username,UserType.SIQ.getType());
}else{
user = loginService.login(username,UserType.SYS.getType());
}
}
}
catch (CaptchaException e)

132
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/service/LoginService.java

@ -106,6 +106,73 @@ public class LoginService
return user;
}
public User login(String username, String password,Integer userSource)
{
// 验证码校验
if (!StringUtils.isEmpty(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA)))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
throw new CaptchaException();
}
// 用户名或密码为空 错误
if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
throw new UserNotExistsException();
}
// 密码如果不在指定范围内 错误
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|| password.length() > UserConstants.PASSWORD_MAX_LENGTH)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
throw new UserPasswordNotMatchException();
}
// 用户名不在指定范围内 错误
if (username.length() < UserConstants.USERNAME_MIN_LENGTH
|| username.length() > UserConstants.USERNAME_MAX_LENGTH)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
throw new UserPasswordNotMatchException();
}
// 查询用户信息
User user = userService.selectClientUserByLoginName(username,userSource);
if (user == null && maybeMobilePhoneNumber(username))
{
user = userService.selectUserByPhoneNumber(username);
}
if (user == null && maybeEmail(username))
{
user = userService.selectUserByEmail(username);
}
if (user == null)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.not.exists")));
throw new UserNotExistsException();
}
if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.delete")));
throw new UserDeleteException();
}
if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.blocked", user.getRemark())));
throw new UserBlockedException();
}
passwordService.validate(user, password);
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
recordLoginInfo(user);
return user;
}
public User login(String username)
{
// 验证码校验
@ -155,22 +222,69 @@ public class LoginService
return user;
}
private boolean maybeEmail(String username)
/**
* 用户多端登录 ,防止与系统用户重复
* @param username
* @param userSource
* @return
*/
public User login(String username,Integer userSource)
{
if (!username.matches(UserConstants.EMAIL_PATTERN))
// 验证码校验
if (!StringUtils.isEmpty(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA)))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
throw new CaptchaException();
}
// 用户名或密码为空 错误
if (StringUtils.isEmpty(username))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
throw new UserNotExistsException();
}
// 用户名不在指定范围内 错误
if (username.length() < UserConstants.USERNAME_MIN_LENGTH
|| username.length() > UserConstants.USERNAME_MAX_LENGTH)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
throw new UserPasswordNotMatchException();
}
// 查询用户信息
User user = userService.selectClientUserByLoginName(username,userSource);
if (user == null)
{
return false;
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.not.exists")));
throw new UserNotExistsException();
}
return true;
if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.delete")));
throw new UserDeleteException();
}
if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.blocked", user.getRemark())));
throw new UserBlockedException();
}
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
recordLoginInfo(user);
return user;
}
private boolean maybeEmail(String username)
{
return username.matches(UserConstants.EMAIL_PATTERN);
}
private boolean maybeMobilePhoneNumber(String username)
{
if (!username.matches(UserConstants.MOBILE_PHONE_NUMBER_PATTERN))
{
return false;
}
return true;
return username.matches(UserConstants.MOBILE_PHONE_NUMBER_PATTERN);
}
/**

53
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/dept/mapper/DeptMapper.java

@ -13,28 +13,28 @@ import org.apache.ibatis.annotations.Param;
public interface DeptMapper
{
public List<Dept> selectDeptAll();
List<Dept> selectDeptAll();
/**
* 新增部门,同步金蝶数据时使用
* @param dept
* @return 新增后主键包装在了dept中,使用dept.getDeptId()获取
*/
public int insertDeptIsKingDee(Dept dept);
int insertDeptIsKingDee(Dept dept);
/**
* 根据金蝶原始部门id,查询部门
* @param kingdeeOrgId
* @return
*/
public Dept selectDeptByKingdeeOrgId(String kingdeeOrgId);
Dept selectDeptByKingdeeOrgId(String kingdeeOrgId);
/**
* 查询父部门为"0000"的部门列表
* @param kingdeeDeptId
* @return
*/
public List<Dept> selectDeptByNoParent();
List<Dept> selectDeptByNoParent();
/**
* 查询部门人数
@ -42,7 +42,7 @@ public interface DeptMapper
* @param dept 部门信息
* @return 结果
*/
public int selectDeptCount(Dept dept);
int selectDeptCount(Dept dept);
/**
* 查询部门是否存在用户
@ -50,7 +50,7 @@ public interface DeptMapper
* @param deptId 部门ID
* @return 结果
*/
public int checkDeptExistUser(String deptId);
int checkDeptExistUser(String deptId);
/**
* 查询部门管理数据
@ -58,7 +58,7 @@ public interface DeptMapper
* @param dept 部门信息
* @return 部门信息集合
*/
public List<Dept> selectDeptList(Dept dept);
List<Dept> selectDeptList(Dept dept);
/**
* 根据部门信息获取当前及一下所有部门(下钻)
@ -66,7 +66,7 @@ public interface DeptMapper
* @param dept 部门信息
* @return 部门信息集合
*/
public List<Dept> selectDeptListHole(Dept dept);
List<Dept> selectDeptListHole(Dept dept);
/**
* 删除部门管理信息
@ -74,7 +74,7 @@ public interface DeptMapper
* @param deptId 部门ID
* @return 结果
*/
public int deleteDeptById(String deptId);
int deleteDeptById(String deptId);
/**
* 新增部门信息
@ -82,7 +82,7 @@ public interface DeptMapper
* @param dept 部门信息
* @return 结果
*/
public int insertDept(Dept dept);
int insertDept(Dept dept);
/**
* 修改部门信息
@ -90,9 +90,9 @@ public interface DeptMapper
* @param dept 部门信息
* @return 结果
*/
public int updateDept(Dept dept);
public int updateDeptByOrganizationId(Dept dept);
public int updateAncestorsById(Dept dept);
int updateDept(Dept dept);
int updateDeptByOrganizationId(Dept dept);
int updateAncestorsById(Dept dept);
/**
* 修改子元素关系
@ -100,7 +100,7 @@ public interface DeptMapper
* @param depts 子元素
* @return 结果
*/
public int updateDeptChildren(@Param("depts") List<Dept> depts);
int updateDeptChildren(@Param("depts") List<Dept> depts);
/**
* 根据部门ID查询信息
@ -108,8 +108,8 @@ public interface DeptMapper
* @param deptId 部门ID
* @return 部门信息
*/
public Dept selectDeptById(String deptId);
public Dept selectDeptByOrganizationId(String organizationId);
Dept selectDeptById(String deptId);
Dept selectDeptByOrganizationId(String organizationId);
/**
* 校验部门名称是否唯一
@ -118,7 +118,7 @@ public interface DeptMapper
* @param parentId 父部门ID
* @return 结果
*/
public Dept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") String parentId);
Dept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") String parentId);
/**
* 根据角色ID查询部门
@ -126,14 +126,14 @@ public interface DeptMapper
* @param roleId 角色ID
* @return 部门列表
*/
public List<String> selectRoleDeptTree(Long roleId);
List<String> selectRoleDeptTree(Long roleId);
/**
* 修改所在部门的父级部门状态
*
* @param dept 部门
*/
public void updateDeptStatus(Dept dept);
void updateDeptStatus(Dept dept);
/**
* 根据ID查询所有子部门
@ -141,7 +141,7 @@ public interface DeptMapper
* @param deptId 部门ID
* @return 部门列表
*/
public List<Dept> selectChildrenDeptById(String deptId);
List<Dept> selectChildrenDeptById(String deptId);
/**
@ -150,7 +150,7 @@ public interface DeptMapper
* @param deptId 部门ID
* @return 部门列表
*/
public List<Dept> getChildrenDeptByIdAndInDeptType(@Param("deptId") String deptId, @Param("deptTypes") String[] deptTypes);
List<Dept> getChildrenDeptByIdAndInDeptType(@Param("deptId") String deptId, @Param("deptTypes") String[] deptTypes);
/**
* 根据条件查询所有子部门,id必须传
@ -158,12 +158,19 @@ public interface DeptMapper
* @param dept 条件,id必须传
* @return 部门列表
*/
public List<Dept> selectChildrenDept(Dept dept);
List<Dept> selectChildrenDept(Dept dept);
/**
* 查询部门列表无权限过滤
* @param dept
* @return
*/
public List<Dept>selectDeptListByNoPermission(Dept dept);
List<Dept>selectDeptListByNoPermission(Dept dept);
/**
* 通过企业统一信用代码查询企业信息
* @param code
* @return
*/
Dept selectDeptByCreditcode(String code);
}

7
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java

@ -7,6 +7,7 @@ import com.zdxt.auth.dto.UserBean;
import com.zdxt.auth.framework.shiro.jwt.JWTUtils;
import com.zdxt.auth.framework.shiro.nopaddword.LoginType;
import com.zdxt.auth.framework.shiro.nopaddword.UserToken;
import com.zdxt.auth.framework.shiro.nopaddword.UserType;
import com.zdxt.auth.framework.shiro.service.PasswordService;
import com.zdxt.auth.project.system.user.domain.LoginDTO;
import com.zdxt.auth.project.system.user.service.ITcUserCidService;
@ -95,7 +96,7 @@ public class LoginController extends BaseController
//解密
secretKey = AesHelper.desEncrypt(secretKey);
// UsernamePasswordToken token = new UsernamePasswordToken(username, password, false);
UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD);
UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD, UserType.SYS.getType());
//禁止使用rememberMe
token.setRememberMe(false);
Subject subject = SecurityUtils.getSubject();
@ -187,7 +188,7 @@ public class LoginController extends BaseController
//解密
loginDTO.setSecretKey(AesHelper.desEncrypt(loginDTO.getSecretKey()));
// UsernamePasswordToken token = new UsernamePasswordToken(username, password, false);
UserToken token = new UserToken(loginDTO.getSecretName(), loginDTO.getSecretKey(), LoginType.PASSWORD);
UserToken token = new UserToken(loginDTO.getSecretName(), loginDTO.getSecretKey(), LoginType.PASSWORD,UserType.SYS.getType());
//禁止使用rememberMe
token.setRememberMe(false);
Subject subject = SecurityUtils.getSubject();
@ -225,7 +226,7 @@ public class LoginController extends BaseController
//解密
// password = AesHelper.desEncrypt(password);
// UsernamePasswordToken token = new UsernamePasswordToken(username, password, false);
UserToken token = new UserToken(username, password, LoginType.PASSWORD);
UserToken token = new UserToken(username, password, LoginType.PASSWORD,UserType.SYS.getType());
Subject subject = SecurityUtils.getSubject();
try {
subject.login(token);

8
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/mapper/UserMapper.java

@ -39,6 +39,14 @@ public interface UserMapper
*/
List<User> selectUserList(User user);
/**
* 查询有执法证件号的人员
* @param user
* @return
*/
List<User> selectUserListByHave(User user);
/**
* 根据条件分页查询未已配用户角色列表
*

18
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/service/IUserService.java

@ -43,6 +43,14 @@ public interface IUserService
*/
List<User> selectUserList(User user);
/**
* 查询有执法证件号的人员
*
* @param user 用户信息
* @return 用户信息集合信息
*/
List<User> selectUserListByHave(User user);
/**
* 无权限查询用户列表
* @param user 用户信息
@ -74,6 +82,14 @@ public interface IUserService
*/
User selectUserByLoginName(String userName);
/**
* 支持多端登录
* @param userName
* @param userSource
* @return
*/
User selectClientUserByLoginName(String userName,Integer userSource);
/**
* 通过手机号码查询用户
*
@ -82,6 +98,8 @@ public interface IUserService
*/
User selectUserByPhoneNumber(String phoneNumber);
User selectClientUserByPhoneNumber(String phoneNumber,Integer userSource);
/**
* 通过邮箱查询用户
*

5
lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml

@ -404,4 +404,9 @@
</if>
</select>
<select id="selectDeptByCreditcode" parameterType="string" resultMap="DeptResult">
<include refid="selectDeptVo"/>
where creditcode =#{code}
</select>
</mapper>

46
lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/UserMapper.xml

@ -151,6 +151,52 @@
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
<select id="selectUserListByHave" parameterType="User" resultMap="UserResult">
select u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex,
u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.type, d.dept_name, u.law_certificate_num,
d.leader,u.tenant_code,t.tenant_code, t.tenant_name, t.contact_man, t.contact_number, t.address
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_tenant t on t.tenant_code = u.tenant_code
where u.del_flag = '0'
<if test="userId != null and userId != ''">
AND u.user_id = #{userId}
</if>
<if test="loginName != null and loginName != ''">
AND u.login_name like concat('%', #{loginName}, '%')
</if>
<if test="userName != null and userName != ''">
AND (
u.user_name like concat('%', #{userName}, '%')
or
u.law_certificate_num like concat('%', #{userName}, '%')
)
</if>
<if test="status != null and status != ''">
AND u.status = #{status}
</if>
<if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%')
</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<if test="deptId != null and deptId != ''">
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET
(#{deptId},ancestors) ))
</if>
<!-- 租户数据过滤 -->
<if test="tenantCode != @com.zdxt.auth.common.constant.Constants@DEFAULT_TENANT_CODE and tenantCode != null and tenantCode != ''">
AND u.tenant_code = #{tenantCode}
</if>
AND u.law_certificate_num is not null
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
<select id="selectUserListByDeptId" parameterType="User" resultMap="UserResult">
select u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex,
u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.type, d.dept_name,

99
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/logback.xml

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<property name="zdxtEmergencyBootStart.path" value="/usr/local/zdxtEmergencyBootStart/logs/zdxtEmergencyBootStart.log"/>
<property name="zdxtEmergencyBootStart.error.path" value="/usr/local/zdxtEmergencyBootStart/logs/zdxtEmergencyBootStart.error.log"/>
<!--有线报警数据日志-->
<!-- <property name="zdxtEmergencyBootStart.realtimeWarnHandler.path" value="/usr/local/zdxtEmergencyBootStart/logs/realtimeWarnHandler.log"/>-->
<!--mqtt数据日志-->
<!-- <property name="zdxtEmergencyBootStart.warningMessageCallback.path" value="/usr/local/zdxtEmergencyBootStart/logs/warningMessageCallback.log"/>-->
<!--mqtt缓存数据日志-->
<!-- <property name="zdxtEmergencyBootStart.iotMessageTask.path" value="/usr/local/zdxtEmergencyBootStart/logs/iotMessageTask.log"/>-->
<property name="historyLogPath" value="/usr/local/zdxtEmergencyBootStart/logs/history"/>
<!-- 异步任务日志 -->
<!-- <property name="zdxtEmergencyBootStart.asyncTask.path" value="/usr/local/qn-worksite/logs/zdxtEmergencyBootStart.asyncTask.log"/>-->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>
%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="zdxtEmergencyBootStart" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${zdxtEmergencyBootStart.path}</file>
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch> <!-- 如果命中就禁止这条日志 -->
<onMismatch>ACCEPT</onMismatch> <!-- 如果没有命中就使用这条规则 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${historyLogPath}/%d{yyyy-MM-dd}/zdxtEmergencyBootStart.zip</fileNamePattern>
<maxHistory>180</maxHistory>
<!-- <maxFileSize>500MB</maxFileSize>-->
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="zdxtEmergencyBootStart-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${zdxtEmergencyBootStart.error.path}</file>
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${historyLogPath}/%d{yyyy-MM-dd}/zdxtEmergencyBootStart-error.zip</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="com.zdxt" level="INFO" additivity="false">
<appender-ref ref="zdxtEmergencyBootStart" />
<appender-ref ref="zdxtEmergencyBootStart-error"/>
<!-- <appender-ref ref="zdxtEmergencyBootStart-realtimeWarnHandler"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-warningMessageCallback"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-iotMessageTask"/>-->
</logger>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="zdxtEmergencyBootStart" />
<appender-ref ref="zdxtEmergencyBootStart-error"/>
<!-- <appender-ref ref="zdxtEmergencyBootStart-realtimeWarnHandler"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-warningMessageCallback"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-iotMessageTask"/>-->
</logger>
<root level="INFO">
<appender-ref ref="zdxtEmergencyBootStart"/>
<appender-ref ref="zdxtEmergencyBootStart-error"/>
<!-- <appender-ref ref="zdxtEmergencyBootStart-realtimeWarnHandler"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-warningMessageCallback"/>-->
<!-- <appender-ref ref="zdxtEmergencyBootStart-iotMessageTask"/>-->
<appender-ref ref="consoleAppender"/>
</root>
<!-- <root level="ERROR">
<appender-ref ref="zdxtEmergencyBootStart"/>
<appender-ref ref="zdxtEmergencyBootStart-error"/>
<appender-ref ref="zdxtEmergencyBootStart-realtimeWarnHandler"/>
<appender-ref ref="zdxtEmergencyBootStart-warningMessageCallback"/>
<appender-ref ref="consoleAppender"/>
</root>-->
</configuration>

2
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnforcementRegistration.java

@ -170,6 +170,8 @@ public class EnforcementRegistration extends BaseDomain
// 用来展示执法人员名称 - 执法编码的 (List)
private List<String> lawEnforcer2List;
public List<String> getLawEnforcer2List() {
return lawEnforcer2List;
}

11
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/Zfryjdm2405301Mapper.java

@ -17,7 +17,7 @@ public interface Zfryjdm2405301Mapper
* @param searchValue 关键字
* @return 集合
*/
public List<Zfryjdm2405301> selectZfryjdmList(String searchValue);
List<Zfryjdm2405301> selectZfryjdmList(String searchValue);
/**
* 修改身份证号
@ -25,5 +25,12 @@ public interface Zfryjdm2405301Mapper
* @param zqyjjdm 规则项
* @return 结果
*/
public int updateZfryjdmSfzcodeByid(Zfryjdm2405301 zqyjjdm);
int updateZfryjdmSfzcodeByid(Zfryjdm2405301 zqyjjdm);
/**
* 查询执法人员信息
* @param zfcode 执法证件号
* @return
*/
Zfryjdm2405301 selectZfryByZfCode(String zfcode);
}

11
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/IZfryjdm2405301Service.java

@ -17,7 +17,7 @@ public interface IZfryjdm2405301Service
* @param searchValue 关键字
* @return 集合
*/
public List<Zfryjdm2405301> selectZfryjdmList(String searchValue);
List<Zfryjdm2405301> selectZfryjdmList(String searchValue);
/**
* 修改身份证号
@ -25,5 +25,12 @@ public interface IZfryjdm2405301Service
* @param zqyjjdm 规则项
* @return 结果
*/
public int updateZfryjdmSfzcodeByid(Zfryjdm2405301 zqyjjdm);
int updateZfryjdmSfzcodeByid(Zfryjdm2405301 zqyjjdm);
/**
* 查询执法人员信息
* @param zfcode 执法证件号
* @return
*/
Zfryjdm2405301 selectZfryByZfCode(String zfcode);
}

13
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java

@ -98,10 +98,10 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
// UsernamePasswordToken sysToken = new UsernamePasswordToken(user.getLoginName(), user.getPassword(), false);
UserToken sysToken = null;
if (null != user && StringUtils.isNotEmpty(user.getLoginName())) {
sysToken = new UserToken(user.getLoginName(), LoginType.NOPASSWD);
sysToken = new UserToken(user.getLoginName(), LoginType.NOPASSWD,userSource);
}
if (null == sysToken && null != user && StringUtils.isNotEmpty(user.getPhonenumber())) {
sysToken = new UserToken(user.getPhonenumber(), LoginType.NOPASSWD);
sysToken = new UserToken(user.getPhonenumber(), LoginType.NOPASSWD,userSource);
}
Subject subject = SecurityUtils.getSubject();
subject.login(sysToken);
@ -120,12 +120,13 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
@Override
public ZDResponse szyLogin(String loginUser) {
Integer userSource = 0;
try {
//查询登录用户
UserBean user = userApi.getUserByUserLoginName(loginUser);
//本系统令牌
// UsernamePasswordToken sysToken = new UsernamePasswordToken(user.getLoginName(), user.getPassword(), false);
UserToken sysToken = new UserToken(user.getLoginName(), LoginType.NOPASSWD);
UserToken sysToken = new UserToken(user.getLoginName(), LoginType.NOPASSWD,userSource);
Subject subject = SecurityUtils.getSubject();
subject.login(sysToken);
DeptBean dept = deptApi.getDeptById(user.getOrganizationId());
@ -184,7 +185,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
userBean.setDeptId("405");
//默认设置深i企用户类型为 1
userBean.setUserSource(1);
UserBean ub = userApi.getUserByUserLoginName(userBean.getLoginName());
UserBean ub = userApi.getClientUserByUserLoginName(userBean.getLoginName(),userSource);
if (null != ub && null != ub.getUserId()) {
return ub.getUserId();
}
@ -216,7 +217,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
userBean.setDeptId("405");
//默认设置深i企用户类型为 1
userBean.setUserSource(1);
UserBean ub = userApi.getUserByUserLoginName(userBean.getLoginName());
UserBean ub = userApi.getClientUserByUserLoginName(userBean.getLoginName(),userSource);
if (null != ub && null != ub.getUserId()) {
return ub.getUserId();
}
@ -298,7 +299,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
UserBean user = userApi.getUserByUserLoginName(userName);
//本系统令牌
// UsernamePasswordToken sysToken = new UsernamePasswordToken(user.getLoginName(), "123456", false);
UserToken sysToken = new UserToken(user.getLoginName(), "123456", LoginType.PASSWORD);
UserToken sysToken = new UserToken(user.getLoginName(), "123456", LoginType.PASSWORD,1);
Subject subject = SecurityUtils.getSubject();
subject.login(sysToken);
}

5
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/Zfryjdm2405301ServiceImpl.java

@ -27,4 +27,9 @@ public class Zfryjdm2405301ServiceImpl implements IZfryjdm2405301Service
public int updateZfryjdmSfzcodeByid(Zfryjdm2405301 zqyjjdm) {
return zfryjdm2405301Mapper.updateZfryjdmSfzcodeByid(zqyjjdm);
}
@Override
public Zfryjdm2405301 selectZfryByZfCode(String zfcode) {
return zfryjdm2405301Mapper.selectZfryByZfCode(zfcode);
}
}

5
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/Zfryjdm2405301Mapper.xml

@ -43,5 +43,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
where sfzcode = #{sfzcode}
</update>
<select id="selectZfryByZfCode" parameterType="string" resultMap="ZfryjdmResult">
<include refid="selectZfryjdmVo" />
where zfcode = #{zfcode} and code_state = '01'
</select>
</mapper>

37
lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/feign/DeptApi.java

@ -25,11 +25,11 @@ public interface DeptApi {
@ApiOperation(value = "获取数据字典")
@ApiImplicitParam(name = "dictValue", value = "顶级节点Id (41000)", required = true, paramType = "String")
@GetMapping("/toUserCheckOpt")
public Map<String, String> toUserCheckOpt(String dictValue);
Map<String, String> toUserCheckOpt(String dictValue);
@ApiOperation(value = "获取部门")
@GetMapping("/selectDeptTree")
public List<DeptBean> selectDepts(DeptBean deptBean);
List<DeptBean> selectDepts(DeptBean deptBean);
/**
@ -40,7 +40,7 @@ public interface DeptApi {
*/
@ApiOperation(value = "获取数据字典")
@GetMapping("/getChildrenDeptById")
public List<DeptBean> getChildrenDeptById(String deptId);
List<DeptBean> getChildrenDeptById(String deptId);
/**
* 根据部门类型(in语句),获取所有子部门,id必须传
@ -50,7 +50,7 @@ public interface DeptApi {
*/
@ApiOperation(value = "根据部门类型(in语句),获取所有子部门,id必须传")
@GetMapping("/getChildrenDeptByIdAndInDeptType")
public List<DeptBean> getChildrenDeptByIdAndInDeptType(String deptId, String[] deptTypes);
List<DeptBean> getChildrenDeptByIdAndInDeptType(String deptId, String[] deptTypes);
/**
* 根据条件获取所有子部门,id必须传
@ -60,7 +60,7 @@ public interface DeptApi {
*/
@ApiOperation(value = "根据条件获取所有子部门,id必须传")
@GetMapping("/getChildrenDept")
public List<DeptBean> getChildrenDept(DeptBean deptBean);
List<DeptBean> getChildrenDept(DeptBean deptBean);
/**
* 获取所有部门信息
@ -70,7 +70,7 @@ public interface DeptApi {
*/
@ApiOperation(value = "获取所有部门信息")
@GetMapping("/getDeptList")
public List<DeptBean> getDeptList(DeptBean deptBean);
List<DeptBean> getDeptList(DeptBean deptBean);
/**
@ -81,41 +81,48 @@ public interface DeptApi {
*/
@ApiOperation(value = "根据部门id获取该条数据")
@GetMapping("/getDeptById")
public DeptBean getDeptById(String deptId);
DeptBean getDeptById(String deptId);
@ApiOperation(value = "获取部门(加权限)")
@GetMapping("/selectDeptTreePower")
public List<DeptBean> selectDeptTreePower(DeptBean deptBean);
List<DeptBean> selectDeptTreePower(DeptBean deptBean);
@ApiOperation(value = "获取部门")
@GetMapping("/selectDeptNotRole")
public List<DeptBean> selectDeptNotRole(DeptBean deptBean);
List<DeptBean> selectDeptNotRole(DeptBean deptBean);
@PostMapping("/insertDept")
@ApiOperation("新增部门")
public String insertDept(DeptBean deptBean);
String insertDept(DeptBean deptBean);
@PostMapping("/updateDept")
@ApiOperation("修改部门")
public String updateDept(DeptBean deptBean);
String updateDept(DeptBean deptBean);
@PostMapping("/selectDeptListHole")
@ApiOperation("根据部门信息获取当前及一下所有部门")
public List<DeptBean> selectDeptListHole(DeptBean bean);
List<DeptBean> selectDeptListHole(DeptBean bean);
@PostMapping("/selectDeptByParentId")
@ApiOperation("根据父节点获取其下所有部门信息")
public List<DeptBean> selectDeptByParentId(DeptBean dept);
List<DeptBean> selectDeptByParentId(DeptBean dept);
@PostMapping("/selectDeptByParentIdNoPermission")
@ApiOperation("根据父节点获取其下所有部门信息无权限")
public List<DeptBean> listDeptAppNoPermission(DeptBean dept);
List<DeptBean> listDeptAppNoPermission(DeptBean dept);
/**
* 查询当前人部门所在部门
* @param deptId
* @return
*/
public DeptBean iterationDeptParent(String deptId);
DeptBean iterationDeptParent(String deptId);
/**
* 通过统一信用代码查询部门信息
* @param code
* @return
*/
DeptBean selectDeptByCreditcode(String code);
}

Loading…
Cancel
Save