Browse Source

Merge branch 'master' of http://121.42.41.42:7070/r/epmet-cloud into dev_special_focus_update

master
yinzuomei 3 years ago
parent
commit
c910f39835
  1. 28
      epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java
  2. 26
      epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
  3. 48
      epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpEnteOrgByAccountFormDTO.java
  4. 43
      epmet-auth/src/main/java/com/epmet/dto/form/StaffOrgByAccountFormDTO.java
  5. 48
      epmet-auth/src/main/java/com/epmet/dto/form/ThirdStaffOrgByAccountFormDTO.java
  6. 47
      epmet-auth/src/main/java/com/epmet/dto/form/ThirdWxmpEnteOrgByAccountFormDTO.java
  7. 22
      epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  8. 9
      epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java
  9. 23
      epmet-auth/src/main/java/com/epmet/service/GovLoginService.java
  10. 18
      epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
  11. 87
      epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java
  12. 125
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  13. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  14. 87
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddStaffPyFromDTO.java
  15. 82
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitAccountFromDTO.java
  16. 4
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBulidingDetailDTO.java
  17. 111
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodDetailDTO.java
  18. 8
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java
  19. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java
  20. 27
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java
  21. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java
  22. 20
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  23. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java
  24. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java
  25. 15
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java
  26. 26
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  27. 58
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java
  28. 7
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml
  29. 17
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml
  30. 6
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml
  31. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java
  32. 15
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcBirthRecordDTO.java
  33. 36
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CustomerStaffByAccountFormDTO.java
  34. 24
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ThirdCustomerStaffByAccountFormDTO.java
  35. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  36. 9
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  37. 85
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java
  38. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java
  39. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java
  40. 43
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java
  41. 196
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  42. 32
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcBirthRecordServiceImpl.java
  43. 2
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.62__alter_customer_staff.sql
  44. 38
      epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

28
epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java

@ -83,6 +83,20 @@ public class GovLoginController {
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.UserTokenResultDTO>
* @Author zhy
* @Description 4选择组织进入首页
* @Date 2020/4/20 13:07
**/
@PostMapping(value = "/loginwxmp/enterorgbyaccount")
public Result<UserTokenResultDTO> enterOrgByAccount(@RequestBody GovWxmpEnteOrgByAccountFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO,GovWxmpEnteOrgByAccountFormDTO.AddUserShowGroup.class,GovWxmpEnteOrgByAccountFormDTO.AddUserInternalGroup.class);
UserTokenResultDTO userTokenResultDTO=govLoginService.enterOrgByAccount(formDTO);
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
/**
* @param tokenDto
* @return com.epmet.commons.tools.utils.Result
@ -121,5 +135,19 @@ public class GovLoginController {
List<StaffOrgsResultDTO> staffOrgs = govLoginService.getMyOrgByPassword(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.StaffOrgsResultDTO>>
* @author zhy
* @description 6账户密码获取组织
* @Date 2020/6/30 22:43
**/
@PostMapping(value = "/getmyorgbyaccount")
public Result<List<StaffOrgsResultDTO>> getMyOrgByAccount(@RequestBody StaffOrgByAccountFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, StaffOrgByAccountFormDTO.AddUserShowGroup.class, StaffOrgByAccountFormDTO.GetMyOrgByPassWordGroup.class);
List<StaffOrgsResultDTO> staffOrgs = govLoginService.getMyOrgByAccount(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
}

26
epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java

@ -63,6 +63,19 @@ public class ThirdLoginController {
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
/**
* @param formDTO
* @return
* @Author zhy
* @Description 单客户-选择组织进入首页
**/
@PostMapping(value = "enterorgbyaccount")
public Result<UserTokenResultDTO> enterOrgByAccount(@RequestBody ThirdWxmpEnteOrgByAccountFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO,ThirdWxmpEnteOrgFormDTO.AddUserShowGroup.class,ThirdWxmpEnteOrgFormDTO.AddUserInternalGroup.class);
UserTokenResultDTO userTokenResultDTO=thirdLoginService.enterOrgByAccount(formDTO);
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
/**
* @param formDTO
* @return
@ -89,6 +102,19 @@ public class ThirdLoginController {
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
/**
* @param formDTO
* @return
* @author zhy
* @description 单客户-账号密码获取组织
**/
@PostMapping(value = "/getmyorgbyaccount")
public Result<List<StaffOrgsResultDTO>> getMyOrgByAccount(@RequestBody ThirdStaffOrgByAccountFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, StaffOrgByAccountFormDTO.AddUserShowGroup.class, StaffOrgByAccountFormDTO.GetMyOrgByPassWordGroup.class);
List<StaffOrgsResultDTO> staffOrgs = thirdLoginService.getMyOrgByAccount(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
/**
* @param formDTO
* @return

48
epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpEnteOrgByAccountFormDTO.java

@ -0,0 +1,48 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 选择组织进入首页入参Dto
* @Author yinzuomei
* @Date 2020/4/20 13:03
*/
@Data
public class GovWxmpEnteOrgByAccountFormDTO implements Serializable {
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
/**
* wxCode
*/
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
/**
* 手机号
*/
@NotBlank(message = "账号不能为空",groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 选择的组织所属的id
*/
@NotBlank(message = "客户id不能为空",groups = {AddUserInternalGroup.class})
private String customerId;
/**
* 选择的要进入的组织(根组织id)
*/
@NotBlank(message = "组织id不能为空",groups = {AddUserInternalGroup.class})
private String rootAgencyId;
/**
* desc:小程序appId
*/
private String appId;
}

43
epmet-auth/src/main/java/com/epmet/dto/form/StaffOrgByAccountFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 手机验证码获取组织接口入参
* @Author zhy
* @Date 2020/4/18 10:38
*/
@Data
public class StaffOrgByAccountFormDTO implements Serializable {
private static final long serialVersionUID = 4193133227120225342L;
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByPassWordGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByLoginWxmp extends CustomerClientShowGroup{}
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 验证码
*/
@NotBlank(message="验证码不能为空", groups = {GetMyOrgByLoginWxmp.class})
private String smsCode;
@NotBlank(message = "密码不能为空",groups ={GetMyOrgByPassWordGroup.class})
private String password;
}

48
epmet-auth/src/main/java/com/epmet/dto/form/ThirdStaffOrgByAccountFormDTO.java

@ -0,0 +1,48 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description appId账号验证码获取组织-接口入参
* @Author zhy
*/
@Data
public class ThirdStaffOrgByAccountFormDTO implements Serializable {
private static final long serialVersionUID = 4193133227120225342L;
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByPassWordGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByLoginWxmp extends CustomerClientShowGroup{}
/**
* 小程序appId
*/
@NotBlank(message = "appId不能为空", groups = {AddUserShowGroup.class})
private String appId;
/**
* 手机号
*/
@NotBlank(message = "账号不能为空", groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 验证码
*/
@NotBlank(message="验证码不能为空", groups = {GetMyOrgByLoginWxmp.class})
private String smsCode;
@NotBlank(message = "密码不能为空",groups ={GetMyOrgByPassWordGroup.class})
private String password;
}

47
epmet-auth/src/main/java/com/epmet/dto/form/ThirdWxmpEnteOrgByAccountFormDTO.java

@ -0,0 +1,47 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 单客户-选择组织进入首页入参Dto
* @Author sun
*/
@Data
public class ThirdWxmpEnteOrgByAccountFormDTO implements Serializable {
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
/**
* wxCode
*/
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
/**
* 手机号
*/
@NotBlank(message = "账号不能为空",groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 选择的组织所属的id
*/
@NotBlank(message = "客户id不能为空",groups = {AddUserInternalGroup.class})
private String customerId;
/**
* 选择的要进入的组织(根组织id)
*/
@NotBlank(message = "组织id不能为空",groups = {AddUserInternalGroup.class})
private String rootAgencyId;
/**
* 客户appIdexJson文件中获取
*/
@NotBlank(message = "appId不能为空",groups = {AddUserInternalGroup.class})
private String appId;
}

22
epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -70,6 +70,17 @@ public interface EpmetUserFeignClient {
@GetMapping(value = "epmetuser/customerstaff/getcustsomerstaffbyphone/{mobile}")
Result<List<CustomerStaffDTO>> checkCustomerStaff(@PathVariable("mobile") String mobile);
/**
* @param account
* @return com.epmet.commons.tools.utils.Result
* @Author zhy
* @Description 根据账户查询政府端工作人员基本信息校验用户是否存在
* @Date 2020/4/18 14:03
**/
@GetMapping(value = "epmetuser/customerstaff/getcustsomerstaffbyaccount/{account}")
Result<List<CustomerStaffDTO>> checkCustomerStaffByAccount(@PathVariable("account") String account);
/**
* @param staffWechatFormDTO
* @return com.epmet.commons.tools.utils.Result
@ -100,6 +111,17 @@ public interface EpmetUserFeignClient {
@PostMapping(value = "epmetuser/customerstaff/getcustomerstaffinfo", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<CustomerStaffDTO> getCustomerStaffInfo(@RequestBody CustomerStaffFormDTO customerStaffFormDTO);
/**
* @param customerStaffFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.CustomerStaffDTO>
* @Author zhy
* @Description 根据手机号+客户id获取工作人员基本信息
* @Date 2020/4/20 14:16
**/
@PostMapping(value = "epmetuser/customerstaff/getcustomerstaffinfobyaccount", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(@RequestBody CustomerStaffByAccountFormDTO customerStaffFormDTO);
/**
* @param staffLoginHistoryFormDTO
* @return com.epmet.commons.tools.utils.Result

9
epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java

@ -44,6 +44,10 @@ public class EpmetUserFeignClientFallback implements EpmetUserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByPhone", phone);
}
@Override
public Result<List<CustomerStaffDTO>> checkCustomerStaffByAccount(String account) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByAccount", account);
}
@Override
public Result saveStaffWechat(StaffWechatFormDTO staffWechatFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveStaffWechat", staffWechatFormDTO);
@ -59,6 +63,11 @@ public class EpmetUserFeignClientFallback implements EpmetUserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffInfo", customerStaffFormDTO);
}
@Override
public Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(CustomerStaffByAccountFormDTO customerStaffFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffInfoByAccount", customerStaffFormDTO);
}
@Override
public Result saveStaffLoginRecord(StaffLoginAgencyRecordFormDTO staffLoginHistoryFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveStaffLoginRecord", staffLoginHistoryFormDTO);

23
epmet-auth/src/main/java/com/epmet/service/GovLoginService.java

@ -1,10 +1,7 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.GovWxmpEnteOrgFormDTO;
import com.epmet.dto.form.GovWxmpFormDTO;
import com.epmet.dto.form.SendSmsCodeFormDTO;
import com.epmet.dto.form.StaffOrgsFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
@ -52,6 +49,15 @@ public interface GovLoginService {
**/
UserTokenResultDTO enterOrg(GovWxmpEnteOrgFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.UserTokenResultDTO>
* @Author zhy
* @Description 4选择组织进入首页
* @Date 2020/4/20 13:08
**/
UserTokenResultDTO enterOrgByAccount(GovWxmpEnteOrgByAccountFormDTO formDTO);
/**
* @return com.epmet.commons.tools.utils.Result
* @param tokenDto
@ -76,4 +82,13 @@ public interface GovLoginService {
* @Date 2020/6/30 22:43
**/
List<StaffOrgsResultDTO> getMyOrgByPassword(StaffOrgsFormDTO formDTO);
/**
* @return java.util.List<com.epmet.dto.result.StaffOrgsResultDTO>
* @param formDTO
* @author zhy
* @description 6账户密码获取组织
* @Date 2020/6/30 22:43
**/
List<StaffOrgsResultDTO> getMyOrgByAccount(StaffOrgByAccountFormDTO formDTO);
}

18
epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java

@ -36,6 +36,15 @@ public interface ThirdLoginService {
**/
UserTokenResultDTO enterOrg(ThirdWxmpEnteOrgFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 单客户-选择组织进入首页
**/
UserTokenResultDTO enterOrgByAccount(ThirdWxmpEnteOrgByAccountFormDTO formDTO);
/**
* @param formDTO
* @return
@ -52,6 +61,15 @@ public interface ThirdLoginService {
**/
List<StaffOrgsResultDTO> getMyOrgByPassword(ThirdStaffOrgsFormDTO formDTO);
/**
* @param formDTO
* @return
* @author zhy
* @description 单客户-手机号密码获取组织
**/
List<StaffOrgsResultDTO> getMyOrgByAccount(ThirdStaffOrgByAccountFormDTO formDTO);
/**
* @param formDTO
* @return

87
epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java

@ -289,6 +289,36 @@ public class GovLoginServiceImpl implements GovLoginService, ResultDataResolver
return userTokenResultDTO;
}
@Override
public UserTokenResultDTO enterOrgByAccount(GovWxmpEnteOrgByAccountFormDTO formDTO) {
//1、需要校验要登录的客户,是否被禁用
CustomerStaffByAccountFormDTO customerStaffFormDTO = new CustomerStaffByAccountFormDTO();
customerStaffFormDTO.setCustomerId(formDTO.getCustomerId());
customerStaffFormDTO.setUserAccount(formDTO.getUserAccount());
Result<CustomerStaffDTO> customerStaffDTOResult = epmetUserFeignClient.getCustomerStaffInfoByAccount(customerStaffFormDTO);
if (!customerStaffDTOResult.success() || null == customerStaffDTOResult.getData()) {
logger.warn(String.format("获取工作人员信息失败,账户[%s],客户id:[%s],code[%s],msg[%s]", formDTO.getUserAccount(), formDTO.getCustomerId(), customerStaffDTOResult.getCode(), customerStaffDTOResult.getMsg()));
throw new RenException(customerStaffDTOResult.getCode());
}
CustomerStaffDTO customerStaff = customerStaffDTOResult.getData();
//2、解析微信用户
WxMaJscode2SessionResult wxMaJscode2SessionResult = loginService.getWxMaUser(LoginConstant.APP_GOV, formDTO.getWxCode(), formDTO.getAppId());
//3、记录staff_wechat,并记录用户激活状态,激活时间
this.savestaffwechat(customerStaff.getUserId(), wxMaJscode2SessionResult.getOpenid(), formDTO.getCustomerId());
//4、记录登录日志
GovWxmpEnteOrgFormDTO orgDTO = ConvertUtils.sourceToTarget(formDTO, GovWxmpEnteOrgFormDTO.class);
orgDTO.setMobile(customerStaff.getMobile());
this.saveStaffLoginRecord(orgDTO, customerStaff.getUserId(), wxMaJscode2SessionResult.getOpenid());
//5.1、获取用户token
String token = this.generateGovWxmpToken(customerStaff.getUserId());
//5.2、保存到redis
this.saveGovTokenDto(formDTO.getRootAgencyId(), formDTO.getCustomerId(), customerStaff.getUserId(), wxMaJscode2SessionResult, token);
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token);
return userTokenResultDTO;
}
@Override
public void loginOut(TokenDto tokenDto) {
if(null == tokenDto){
@ -381,6 +411,63 @@ public class GovLoginServiceImpl implements GovLoginService, ResultDataResolver
return new ArrayList<>();
}
@Override
public List<StaffOrgsResultDTO> getMyOrgByAccount(StaffOrgByAccountFormDTO formDTO) {
//1、根据手机号查询到用户信息
Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserFeignClient.checkCustomerStaffByAccount(formDTO.getUserAccount());
if (!customerStaffResult.success()) {
logger.warn(String.format("账户密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getUserAccount(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode());
}
//2、密码是否正确
List<CustomerStaffDTO> customerStaffList=customerStaffResult.getData();
//3、查询用户所有的组织信息
List<String> customerIdList = new ArrayList<>();
//是否设置过密码
boolean havePasswordFlag=false;
//密码是否正确
boolean passwordRightFlag=false;
for (CustomerStaffDTO customerStaffDTO : customerStaffList) {
if(StringUtils.isNotBlank(customerStaffDTO.getPassword())){
havePasswordFlag=true;
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s下未设置密码.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
continue;
}
if (!PasswordUtils.matches(formDTO.getPassword(), customerStaffDTO.getPassword())) {
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配错误.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配正确.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
passwordRightFlag=true;
customerIdList.add(customerStaffDTO.getCustomerId());
}
}
//根据手机号查出来所有用户,密码都为空,表明用户未激活账户,未设置密码
if(!havePasswordFlag){
logger.warn(String.format("当前账户(%s)下所有账户都未设置密码,请先使用验证码登录激活账户",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
//密码错误
if(!passwordRightFlag){
logger.warn(String.format("根据当前账户(%s)密码未找到所属组织,密码错误",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
StaffOrgFormDTO staffOrgFormDTO = new StaffOrgFormDTO();
staffOrgFormDTO.setCustomerIdList(customerIdList);
Result<List<StaffOrgsResultDTO>> result = govOrgFeignClient.getStaffOrgList(staffOrgFormDTO);
if(result.success()&&null!=result.getData()){
return result.getData();
}
logger.warn(String .format("手机验证码获取组织,调用%s服务失败,入参账户%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER,
formDTO.getUserAccount(),
formDTO.getPassword(),
result.getCode(),
result.getMsg()));
return new ArrayList<>();
}
//保存登录日志
private Result saveStaffLoginRecord(GovWxmpEnteOrgFormDTO formDTO, String staffId, String openId) {
StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO();

125
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -425,6 +425,68 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return userTokenResultDTO;
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-选择组织进入首页
**/
@Override
public UserTokenResultDTO enterOrgByAccount(ThirdWxmpEnteOrgByAccountFormDTO formDTO) {
//1、需要校验要登录的客户,是否被禁用
CustomerStaffByAccountFormDTO customerStaffFormDTO = new CustomerStaffByAccountFormDTO();
customerStaffFormDTO.setCustomerId(formDTO.getCustomerId());
customerStaffFormDTO.setUserAccount(formDTO.getUserAccount());
Result<CustomerStaffDTO> customerStaffDTOResult = epmetUserOpenFeignClient.getCustomerStaffInfoByAccount(customerStaffFormDTO);
if (!customerStaffDTOResult.success() || null == customerStaffDTOResult.getData()) {
logger.error(String.format("获取工作人员信息失败,账户[%s],客户id:[%s],code[%s],msg[%s]", formDTO.getUserAccount(), formDTO.getCustomerId(), customerStaffDTOResult.getCode(), customerStaffDTOResult.getMsg()));
throw new RenException(customerStaffDTOResult.getCode());
}
CustomerStaffDTO customerStaff = customerStaffDTOResult.getData();
//2020.7.24 获取微信信息接口调整,改调用微信api的方式 sun start
//2.调用epmet_third服务,校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO();
resiLoginFormDTO.setAppId(formDTO.getAppId());
resiLoginFormDTO.setWxCode(formDTO.getWxCode());
UserWechatDTO userWechatDTO = this.getUserWeChat(resiLoginFormDTO);
WxMaJscode2SessionResult wxMaJscode2SessionResult = new WxMaJscode2SessionResult();
wxMaJscode2SessionResult.setOpenid(userWechatDTO.getWxOpenId());
wxMaJscode2SessionResult.setSessionKey(userWechatDTO.getSessionKey());
wxMaJscode2SessionResult.setUnionid("");
// end
//3、记录staff_wechat,并记录用户激活状态,激活时间
this.savestaffwechat(customerStaff.getUserId(), userWechatDTO.getWxOpenId(), formDTO.getCustomerId());
//4、记录登录日志
StaffLatestAgencyResultDTO staffLatestAgencyResultDTO = new StaffLatestAgencyResultDTO();
staffLatestAgencyResultDTO.setCustomerId(formDTO.getCustomerId());
staffLatestAgencyResultDTO.setStaffId(customerStaff.getUserId());
staffLatestAgencyResultDTO.setWxOpenId(userWechatDTO.getWxOpenId());
staffLatestAgencyResultDTO.setMobile(customerStaff.getMobile());
staffLatestAgencyResultDTO.setAgencyId(formDTO.getRootAgencyId());
this.saveStaffLoginRecord(staffLatestAgencyResultDTO);
//5.1、获取用户token
String token = this.generateGovWxmpToken(customerStaff.getUserId());
//5.2、保存到redis
StaffLatestAgencyResultDTO staffLatestAgency = new StaffLatestAgencyResultDTO();
staffLatestAgency.setAgencyId(formDTO.getRootAgencyId());
staffLatestAgency.setCustomerId(formDTO.getCustomerId());
staffLatestAgency.setStaffId(customerStaff.getUserId());
this.saveLatestGovTokenDto(staffLatestAgency, userWechatDTO, token);
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token);
//6.发送登录事件
try {
sendLoginEvent(customerStaff.getUserId(), formDTO.getAppId(), AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP);
} catch (RenException e) {
log.error(e.getInternalMsg());
} catch (Exception e) {
log.error("【工作端enterOrg登录】发送登录事件失败,程序继续执行。错误信息");
}
return userTokenResultDTO;
}
/**
* @param formDTO
* @return
@ -538,6 +600,69 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return new ArrayList<>();
}
@Override
public List<StaffOrgsResultDTO> getMyOrgByAccount(ThirdStaffOrgByAccountFormDTO formDTO) {
//0.根据appId查询对应客户Id
PaCustomerDTO customer = this.getCustomerInfo(formDTO.getAppId());
//7.28 上边根据appId只能锁定一条客户id,后边的批量循环操作暂不做调整,还是使用之前的代码 sun
//1、根据手机号查询到用户信息
ThirdCustomerStaffByAccountFormDTO dto = new ThirdCustomerStaffByAccountFormDTO();
dto.setCustomerId(customer.getId());
dto.setUserAccount(formDTO.getUserAccount());
Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserOpenFeignClient.getCustsomerStaffByIdAndAccount(dto);
if (!customerStaffResult.success()) {
logger.warn(String.format("账户密码登录异常,账户[%s],code[%s],msg[%s]", formDTO.getUserAccount(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode());
}
//2、密码是否正确
List<CustomerStaffDTO> customerStaffList=customerStaffResult.getData();
//3、查询用户所有的组织信息
List<String> customerIdList = new ArrayList<>();
//是否设置过密码
boolean havePasswordFlag=false;
//密码是否正确
boolean passwordRightFlag=false;
for (CustomerStaffDTO customerStaffDTO : customerStaffList) {
if(StringUtils.isNotBlank(customerStaffDTO.getPassword())){
havePasswordFlag=true;
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s下未设置密码.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
continue;
}
if (!PasswordUtils.matches(formDTO.getPassword(), customerStaffDTO.getPassword())) {
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配错误.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配正确.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
passwordRightFlag=true;
customerIdList.add(customerStaffDTO.getCustomerId());
}
}
//根据手机号查出来所有用户,密码都为空,表明用户未激活账户,未设置密码
if(!havePasswordFlag){
logger.warn(String.format("当前账户(%s)下所有账户都未设置密码,请先使用验证码登录激活账户",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
//密码错误
if(!passwordRightFlag){
logger.warn(String.format("根据当前账户(%s)密码未找到所属组织,密码错误",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
StaffOrgFormDTO staffOrgFormDTO = new StaffOrgFormDTO();
staffOrgFormDTO.setCustomerIdList(customerIdList);
Result<List<StaffOrgsResultDTO>> result = govOrgOpenFeignClient.getStaffOrgList(staffOrgFormDTO);
if(result.success()&&null!=result.getData()){
return result.getData();
}
logger.warn(String .format("手机验证码获取组织,调用%s服务失败,入参账户%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER,
formDTO.getUserAccount(),
formDTO.getPassword(),
result.getCode(),
result.getMsg()));
return new ArrayList<>();
}
/**
* @Description 获取客户信息
* @param appId

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -40,6 +40,7 @@ public enum EpmetErrorCode {
PASSWORD_NOT_FIT(8010,"两次填写的密码不一致"),
PASSWORD_OUT_OF_ORDER(8011,"密码必须8-20个字符,而且同时包含大小写字母和数字"),
PASSWORD_UPDATE_FAILED(8012,"密码修改失败"),
GOV_STAFF_ACCOUNT_NOT_EXISTS(8013,"账户未注册,请联系贵单位管理员"),
MOBILE_HAS_BEEN_USED(8101, "该手机号已注册,请更换手机号或使用原绑定的微信账号登录"),
MOBILE_CODE_ERROR(8102, "验证码错误"),
AUTO_CONFIRM_FAILED(8103, "党员注册失败"),
@ -100,6 +101,7 @@ public enum EpmetErrorCode {
EXIT_PEND_PROJECT(8408,"该工作人员有项目尚在处理,处理完毕方可操作"),
EXIT_PUBLISHED_ACTIVITY(8409,"该工作人员有活动尚在进行,等活动完成方可操作"),
CAN_NOT_SELF(8410,"无法对自己进行操作"),
ACCOUNT_USED(8411,"该账号已注册"),
PATROL_IS_NOT_OVER(8520,"巡查尚未结束"),
ALREADY_EVALUATE(8501,"您已评价"),

87
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddStaffPyFromDTO.java

@ -0,0 +1,87 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;
/**
* @author sun
* @dscription
*/
@NoArgsConstructor
@Data
public class AddStaffPyFromDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 新增人员所属类型Id
*/
private String orgId;
/**
* 客户ID
*/
private String customerId;
/**
* 新增人员所属类型组织:agency;部门:dept;网格:grid
*/
private String orgType;
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
@Length(max = 15, message = "姓名仅允许输入15个字符", groups = AddStaffPyFromDTO.AddStaff.class)
private String name;
/**
* 人员ID
*/
private String staffId;
/**
* 手机
*/
@NotBlank(message = "手机号不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
@Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "请输入正确的手机号", groups = AddStaffPyFromDTO.AddStaff.class)
private String mobile;
/**
* 性别
*/
@NotNull(message = "性别不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
private Integer gender;
/**
* 专兼职
*/
@NotBlank(message = "专兼职不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
private String workType;
/**
* 账户
*/
@NotBlank(message = "账号不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
private String userAccount;
/**
* 密码
*/
@NotBlank(message = "密码不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
private String pwd;
/**
* 角色id列表
*/
@NotNull(message = "角色不能为空", groups = AddStaffPyFromDTO.AddStaff.class)
private List<String> roles;
public interface AddStaff extends CustomerClientShowGroup {}
/**
* 来源app(政府端:gov居民端:resi运营端:oper)
*/
private String app;
/**
* 来源client(PC端:web微信小程序:wxmp)
*/
private String client;
}

82
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitAccountFromDTO.java

@ -0,0 +1,82 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;
/**
* @author zhy
* @dscription
* @date 2020/4/24 10:43
*/
@NoArgsConstructor
@Data
public class StaffSubmitAccountFromDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 机关ID
*/
private String agencyId;
/**
* 人员ID
*/
private String staffId;
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空")
@Length(max = 15, message = "姓名仅允许输入15个字符")
private String name;
/**
* 手机
*/
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "请输入正确的手机号")
private String mobile;
/**
* 性别
*/
@NotNull(message = "性别不能为空")
private Integer gender;
/**
* 性别
*/
@NotNull(message = "账号不能为空")
private String userAccount;
/**
* 密码
*/
private String pwd;
/**
* 专兼职
*/
@NotBlank(message = "专兼职不能为空")
private String workType;
/**
* 角色id列表
*/
@NotNull(message = "角色不能为空")
private List<String> roles;
/**
* 来源app(政府端:gov居民端:resi运营端:oper)
*/
private String app;
/**
* 来源client(PC端:web微信小程序:wxmp)
*/
private String client;
/**
* 身份证号
*/
private String idCard;
}

4
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBulidingDetailDTO.java

@ -57,6 +57,10 @@ public class IcBulidingDetailDTO implements Serializable {
*/
private String type;
/**
* --楼栋类型1商品房2自建房3别墅
*/
private String typeName;
/**
* 排序

111
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodDetailDTO.java

@ -0,0 +1,111 @@
package com.epmet.dto.result;
import com.epmet.dto.IcPropertyManagementDTO;
import lombok.Data;
import java.util.List;
/**
* @Description
* @Author yzm
* @Date 2022/9/21 9:19
*/
@Data
public class IcNeighborHoodDetailDTO {
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 小区名称
*/
private String neighborHoodName;
/**
* 组织id
*/
private String agencyId;
/**
* 组织名称--新版详情页面用于显示
*/
private String agencyName;
/**
* 上级组织id
*/
private String parentAgencyId;
/**
* 组织的所有上级组织id
*/
private String agencyPids;
/**
* 网格id
*/
private String gridId;
/**
* 详细地址
*/
private String address;
/**
* 备注
*/
private String remark;
/**
* 中心点位经度
*/
private String longitude;
/**
* 中心点位纬度
*/
private String latitude;
/**
* 坐标区域
*/
private String coordinates;
/**
* 坐标位置
*/
private String location;
/**
* 网格名称--新版详情页面用于显示
*/
private String gridName;
/**
* 物业名称--新版详情页面用于显示
*/
private List<IcPropertyManagementDTO> propertyList;
/**
* 小区编码
*/
private String coding;
/**
* 小区系统编码
*/
private String sysCoding;
/**
* 实有楼栋数
*/
private Integer realBuilding;
/**
* 二维码地址
*/
private String qrcodeUrl;
}

8
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java

@ -25,6 +25,10 @@ public class StaffInitResultDTO implements Serializable {
* 手机号
*/
private String mobile;
/**
* 手机号
*/
private String userAccount;
/**
* 性别
*/
@ -33,6 +37,10 @@ public class StaffInitResultDTO implements Serializable {
* 专兼职
*/
private String workType;
/**
* 身份证号
*/
private String idCard;
/**
* 职责列表
*/

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java

@ -23,7 +23,6 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.HouseInformationFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -64,7 +63,7 @@ public class HouseInformationController {
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.IcNeighborHoodDTO>
*/
@PostMapping("neighborhoodDetail/{neighborhoodId}")
public Result<IcNeighborHoodEntity> neighborhoodDetail(@PathVariable("neighborhoodId") String neighborhoodId){
public Result<IcNeighborHoodDetailDTO> neighborhoodDetail(@PathVariable("neighborhoodId") String neighborhoodId){
return icNeighborHoodService.neighborhoodDetail(neighborhoodId);
}

27
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java

@ -101,6 +101,19 @@ public class StaffController {
return staffService.editStaff(tokenDto, fromDTO);
}
/**
* 人员编辑
*
* @param fromDTO 参数
* @return Result
*/
@PostMapping("editstaffpy")
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_UPDATE)
public Result editStaffPy(@LoginUser TokenDto tokenDto, @RequestBody StaffSubmitAccountFromDTO fromDTO){
ValidatorUtils.validateEntity(fromDTO);
return staffService.editStaffByAccount(tokenDto, fromDTO);
}
/**
* 人员详情
*
@ -195,6 +208,20 @@ public class StaffController {
return staffService.addStaffV2(fromDTO);
}
/**
* 通讯录人员添加-平阴
* @author zhy
*/
@PostMapping("addstaffpy")
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_CREATE)
public Result addStaffPy(@RequestBody StaffSubmitAccountFromDTO fromDTO){
fromDTO.setApp("gov");
fromDTO.setClient("wxmp");
ValidatorUtils.validateEntity(fromDTO);
return staffService.addStaffByAccount(fromDTO);
}
/**
* @Description 用户所属组织
* @Param tokenDto

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java

@ -18,6 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcPropertyManagementDTO;
import com.epmet.entity.IcPropertyManagementEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -50,4 +51,11 @@ public interface IcPropertyManagementDao extends BaseDao<IcPropertyManagementEnt
* @date 2022/2/13 9:59 上午
*/
List<IcPropertyManagementEntity> selectIdByName(@Param("names")List<String> names);
/**
* 查询小区关联物业id,name
* @param neighborhoodId
* @return
*/
List<IcPropertyManagementDTO> selectPropertyNameList(String neighborhoodId);
}

20
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -91,6 +91,16 @@ public interface EpmetUserFeignClient {
@PostMapping("/epmetuser/customerstaff/addstaff")
Result<CustomerStaffDTO> addStaff(@RequestBody StaffSubmitFromDTO fromDTO);
/**
* 人员添加
*
* @param fromDTO 参数
* @return Result
*/
@PostMapping("/epmetuser/customerstaff/addstaffaccount")
Result<CustomerStaffDTO> addStaffByAccount(@RequestBody StaffSubmitAccountFromDTO fromDTO);
/**
* 人员编辑
*
@ -100,6 +110,16 @@ public interface EpmetUserFeignClient {
@PostMapping("/epmetuser/customerstaff/editstaff")
Result editStaff(@RequestBody StaffSubmitFromDTO fromDTO);
/**
* 人员编辑
*
* @param fromDTO 参数
* @return Result
*/
@PostMapping("/epmetuser/customerstaff/editstaffaccount")
Result editStaffByAccount(@RequestBody StaffSubmitAccountFromDTO fromDTO);
/**
* 人员详情
*

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java

@ -62,11 +62,21 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "addStaff", fromDTO);
}
@Override
public Result<CustomerStaffDTO> addStaffByAccount(StaffSubmitAccountFromDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "addStaffByAccount", fromDTO);
}
@Override
public Result editStaff(StaffSubmitFromDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editStaff", fromDTO);
}
@Override
public Result editStaffByAccount(StaffSubmitAccountFromDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editStaffByAccount", fromDTO);
}
@Override
public Result<StaffDetailResultDTO> getStaffDetail(StaffInfoFromDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffDetail", fromDTO);

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java

@ -28,11 +28,11 @@ import com.epmet.dto.NeighborHoodAndManagementDTO;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.result.BuildingResultDTO;
import com.epmet.dto.result.IcNeighborHoodDetailDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.entity.IcNeighborHoodPropertyEntity;
import com.epmet.entity.IcPropertyManagementEntity;
import org.springframework.web.bind.annotation.RequestBody;
import java.io.IOException;
import java.io.InputStream;
@ -194,5 +194,5 @@ public interface IcNeighborHoodService extends BaseService<IcNeighborHoodEntity>
* @params [neighborhoodId]
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.IcNeighborHoodDTO>
*/
Result<IcNeighborHoodEntity> neighborhoodDetail(String neighborhoodId);
Result<IcNeighborHoodDetailDTO> neighborhoodDetail(String neighborhoodId);
}

15
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java

@ -64,6 +64,14 @@ public interface StaffService {
*/
Result editStaff(TokenDto tokenDto,StaffSubmitFromDTO fromDTO);
/**
* 人员编辑
*
* @param fromDTO 参数
* @return Result
*/
Result editStaffByAccount(TokenDto tokenDto, StaffSubmitAccountFromDTO fromDTO);
/**
* 人员详情
*
@ -130,6 +138,13 @@ public interface StaffService {
*/
Result addStaffV2(AddStaffV2FromDTO fromDTO);
/**
* 通讯录人员添加-平阴
* @author zhy
*/
Result addStaffByAccount(StaffSubmitAccountFromDTO fromDTO);
/**
* @Description 工作人员所属组织
* @Param tokenDto

26
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java

@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -50,10 +51,7 @@ import com.epmet.dto.*;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.BuildingResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.InfoByNamesResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.excel.IcNeighborHoodExcel;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
@ -808,12 +806,22 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
}
@Override
public Result<IcNeighborHoodEntity> neighborhoodDetail(String neighborhoodId) {
IcNeighborHoodEntity result = baseDao.selectById(neighborhoodId);
if(null != result && null == result.getRemark()){
result.setRemark("");
public Result<IcNeighborHoodDetailDTO> neighborhoodDetail(String neighborhoodId) {
IcNeighborHoodEntity icNeighborHoodEntity = baseDao.selectById(neighborhoodId);
if (null == icNeighborHoodEntity) {
return new Result<>();
}
return new Result<IcNeighborHoodEntity>().ok(result);
IcNeighborHoodDetailDTO result = ConvertUtils.sourceToTarget(icNeighborHoodEntity, IcNeighborHoodDetailDTO.class);
if(null == result.getRemark()){
result.setRemark(StrConstant.EPMETY_STR);
}
GridInfoCache gridInfoCache=CustomerOrgRedis.getGridInfo(result.getGridId());
if (null != gridInfoCache) {
result.setAgencyName(gridInfoCache.getAgencyName());
result.setGridName(gridInfoCache.getGridName());
}
result.setPropertyList(propertyManagementDao.selectPropertyNameList(neighborhoodId));
return new Result<IcNeighborHoodDetailDTO>().ok(result);
}
}

58
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java

@ -204,6 +204,25 @@ public class StaffServiceImpl implements StaffService {
return result;
}
@Override
public Result editStaffByAccount(TokenDto tokenDto, StaffSubmitAccountFromDTO fromDTO) {
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId());
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId());
fromDTO.setApp(tokenDto.getApp());
fromDTO.setClient(tokenDto.getClient());
Result result = epmetUserFeignClient.editStaffByAccount(fromDTO);
if (!result.success()) {
if (result.getCode() != EpmetErrorCode.SERVER_ERROR.getCode()) {
return new Result().error(result.getCode(), result.getMsg());
}
return new Result().error(EpmetErrorCode.STAFF_EDIT_FAILED.getCode(), EpmetErrorCode.STAFF_EDIT_FAILED.getMsg());
}
//2021.8.24 sun 人员信息编辑时删除工作人员的缓存信息
CustomerStaffRedis.delStaffInfoFormCache(fromDTO.getCustomerId(), fromDTO.getStaffId());
return result;
}
@Override
public Result<StaffDetailResultDTO> getStaffDetail(StaffInfoFromDTO fromDTO) {
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId());
@ -597,6 +616,45 @@ public class StaffServiceImpl implements StaffService {
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result addStaffByAccount(StaffSubmitAccountFromDTO fromDTO) {
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId());
//fromDTO.setApp(tokenDto.getApp());
//fromDTO.setClient(tokenDto.getClient());
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId());
Result<CustomerStaffDTO> result = epmetUserFeignClient.addStaffByAccount(fromDTO);
if (!result.success()) {
if (result.getCode() != EpmetErrorCode.SERVER_ERROR.getCode()) {
return new Result().error(result.getCode(), result.getMsg());
}
return new Result().error(EpmetErrorCode.STAFF_ADD_FAILED.getCode(), EpmetErrorCode.STAFF_ADD_FAILED.getMsg());
}
//人员机关关系表
CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity();
customerStaffAgencyEntity.setCustomerId(customerAgencyEntity.getCustomerId());
customerStaffAgencyEntity.setUserId(result.getData().getUserId());
customerStaffAgencyEntity.setAgencyId(customerAgencyEntity.getId());
customerStaffAgencyService.insert(customerStaffAgencyEntity);
//机关总人数加一
customerAgencyEntity.setTotalUser(customerAgencyEntity.getTotalUser() + 1);
customerAgencyService.updateById(customerAgencyEntity);
//2021.8.25 sun 新增一张工作人员注册组织关系表,所以旧接口新增人员时关系表赋值关系数据
//工作人员注册组织关系表新增数据
StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity();
staffOrgRelationEntity.setCustomerId(fromDTO.getCustomerId());
staffOrgRelationEntity.setPids(("".equals(customerAgencyEntity.getPids()) ? "" : customerAgencyEntity.getPids()));
staffOrgRelationEntity.setStaffId(result.getData().getUserId());
staffOrgRelationEntity.setOrgId(customerAgencyEntity.getId());
staffOrgRelationEntity.setOrgType("agency");
staffOrgRelationService.insert(staffOrgRelationEntity);
return new Result();
}
/**
* @param tokenDto
* @Description 工作人员所属组织

7
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml

@ -458,6 +458,13 @@
b.LONGITUDE,
b.COORDINATE_POSITION,
b.TYPE,
(
case when b.TYPE='1' then '商品房'
when b.TYPE='2' then '自建房'
when b.TYPE='3' then '别墅'
else ''
end
) as typeName,
h.GRID_ID,
h.AGENCY_ID,
b.BUILDING_LEADER_NAME,

17
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml

@ -48,4 +48,21 @@
)
</select>
<select id="selectPropertyNameList" parameterType="java.lang.String" resultType="com.epmet.dto.IcPropertyManagementDTO">
SELECT
p.id,
p.NAME
FROM
ic_property_management p
WHERE
p.id IN (
SELECT DISTINCT
p.PROPERTY_ID
FROM
ic_neighbor_hood_property p
WHERE
p.NEIGHBOR_HOOD_ID = #{neighborhoodId}
AND p.DEL_FLAG = '0'
)
</select>
</mapper>

6
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -72,7 +72,7 @@
and c.CATEGORY_CODE like CONCAT(#{categoryCode},'%')
</if>
</where>
order by e.CREATED_TIME desc
order by e.happen_time desc
</select>
<select id="listMonthlyEventCount" resultType="com.epmet.dto.result.IcEventMonthlyCountResultDTO">
select t.monthName, count(1) eventCount
@ -211,10 +211,10 @@
AND ie.mobile = #{mobile}
</if>
<if test="startTime != null and startTime != '' ">
AND DATE_FORMAT(ie.created_time,"%Y-%m-%d %H:%i") <![CDATA[>=]]> #{startTime}
AND DATE_FORMAT(ie.happen_time,"%Y-%m-%d %H:%i") <![CDATA[>=]]> #{startTime}
</if>
<if test="endTime != null and endTime != '' ">
AND DATE_FORMAT(ie.created_time,"%Y-%m-%d %H:%i") <![CDATA[<=]]> #{endTime}
AND DATE_FORMAT(ie.happen_time,"%Y-%m-%d %H:%i") <![CDATA[<=]]> #{endTime}
</if>
<if test="status != null and status != '' ">
AND ie.`status` = #{status}

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java

@ -44,6 +44,11 @@ public class CustomerStaffDTO implements Serializable {
*/
private String userId;
/**
* 账户
*/
private String userAccount;
/**
* 真实姓名
*/

15
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcBirthRecordDTO.java

@ -71,7 +71,11 @@ public class IcBirthRecordDTO implements Serializable {
@NotBlank(message = "所属家庭不能为空", groups = {AddGroup.class})
private String homeId;
private String home;
/**
* 所属房屋全路径名称
* 详情回显
*/
private String homeAllName;
/**
* 姓名
*/
@ -84,10 +88,9 @@ public class IcBirthRecordDTO implements Serializable {
private String mobile;
/**
* 性别
* 性别 1男2女
*/
private String gender;
/**
* 身份证号
*/
@ -139,6 +142,12 @@ public class IcBirthRecordDTO implements Serializable {
*/
private String householderRelation;
/**
* 与户主关系字典表
* 详情回显
*/
private String householderRelationName;
/**
* 是否勾选补充居民信息0否 1是
*/

36
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CustomerStaffByAccountFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description 根据手机号+客户id获取工作人员基本信息
* @Author yinzuomei
* @Date 2020/4/20 14:02
*/
@Data
public class CustomerStaffByAccountFormDTO implements Serializable {
private static final long serialVersionUID = 7619815083427853431L;
// 根据手机号+客户id获取工作人员基本信息
public interface GetCustomerStaffInfo {}
@NotBlank(message = "账号不能为空", groups = { GetCustomerStaffInfo.class })
private String userAccount;
@NotBlank(message = "客户id不能为空", groups = { GetCustomerStaffInfo.class })
private String customerId;
/**
* 姓名
*/
private String realName;
/**
* 用户id集合
*/
private List<String> userIds;
}

24
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ThirdCustomerStaffByAccountFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 根据客户ID手机号查询政府端工作人员基本信息
* @Author zhy
*/
@Data
public class ThirdCustomerStaffByAccountFormDTO implements Serializable{
private static final long serialVersionUID = -7994579456530273809L;
/**
* 客户Id
* */
private String customerId;
/**
* 账号
* */
private String userAccount;
}

20
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -153,6 +153,16 @@ public interface EpmetUserOpenFeignClient {
@PostMapping(value = "epmetuser/customerstaff/getcustomerstaffinfo", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<CustomerStaffDTO> getCustomerStaffInfo(@RequestBody CustomerStaffFormDTO customerStaffFormDTO);
/**
* @param customerStaffFormDTO
* @return
* @Author sun
* @Description 根据账户+客户id获取工作人员基本信息
**/
@PostMapping(value = "epmetuser/customerstaff/getcustomerstaffinfobyaccount", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(@RequestBody CustomerStaffByAccountFormDTO customerStaffFormDTO);
/**
* @param userIdList
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.UserBaseInfoResultDTO>>
@ -234,6 +244,16 @@ public interface EpmetUserOpenFeignClient {
@GetMapping(value = "epmetuser/customerstaff/getCustsomerStaffByIdAndPhone")
Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndPhone(@RequestBody ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID手机号查询政府端工作人员基本信息校验用户是否存在
**/
@GetMapping(value = "epmetuser/customerstaff/getCustsomerStaffByIdAndAccount")
Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(@RequestBody ThirdCustomerStaffByAccountFormDTO formDTO);
/**
* 获取用户基础信息
*

9
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -99,6 +99,11 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffInfo", customerStaffFormDTO);
}
@Override
public Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(CustomerStaffByAccountFormDTO customerStaffFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffInfoByAccount", customerStaffFormDTO);
}
/**
* @param userIdList
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.UserBaseInfoResultDTO>>
@ -174,6 +179,10 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByIdAndPhone", formDTO);
}
@Override
public Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(ThirdCustomerStaffByAccountFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByIdAndAccount", formDTO);
}
@Override
public Result<ResiUserBaseInfoResultDTO> selectUserBaseInfo(TokenDto tokenDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectUserBaseInfo", tokenDTO);

85
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java

@ -119,6 +119,18 @@ public class CustomerStaffController {
return customerStaffService.getCustsomerStaffByPhone(mobile);
}
/**
* @param account 账户
* @return com.epmet.commons.tools.utils.Result
* @Author zhy
* @Description 根据账户查询政府端工作人员基本信息校验用户是否存在
* @Date 2020/4/18 14:07
**/
@GetMapping(value = "getcustsomerstaffbyaccount/{account}")
public Result<List<CustomerStaffDTO>> getCustsomerStaffByAccount(@PathVariable("account") String account) {
return customerStaffService.getCustsomerStaffByAccount(account);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.CustomerStaffDTO>
@ -132,6 +144,19 @@ public class CustomerStaffController {
return customerStaffService.getCustomerStaffInfo(formDTO);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.CustomerStaffDTO>
* @Author zhy
* @Description 根据账户+客户id获取工作人员基本信息
* @Date 2020/4/20 14:04
**/
@PostMapping(value = "getcustomerstaffinfobyaccount")
public Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(@RequestBody CustomerStaffByAccountFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, CustomerStaffFormDTO.GetCustomerStaffInfo.class);
return customerStaffService.getCustomerStaffInfoByAccount(formDTO);
}
/**
* 根据userId查询网格下用户信息
* @param customerStaffGridDTOS
@ -234,6 +259,31 @@ public class CustomerStaffController {
return result;
}
/**
* 人员添加
*
* @param fromDTO 参数
* @return Result
*/
@PostMapping("addstaffaccount")
public Result<CustomerStaffDTO> addStaffByAccount(@RequestBody StaffSubmitAccountFromDTO fromDTO){
Result<CustomerStaffDTO> result = customerStaffService.addStaffByAccount(fromDTO);
//2021-10-18 推送mq,数据同步到中介库 start
if (result.success()) {
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(fromDTO.getCustomerId());
mq.setOrgId(result.getData().getUserId());
mq.setOrgType("staff");
mq.setType("staff_create");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
}
//2021-10-18 end
return result;
}
/**
* 人员编辑
*
@ -260,6 +310,30 @@ public class CustomerStaffController {
return result;
}
/**
* 人员编辑
*
* @param fromDTO 参数
* @return Result
*/
@PostMapping("editstaffaccount")
public Result editStaffByAccount(@RequestBody StaffSubmitAccountFromDTO fromDTO){
Result result = customerStaffService.editStaffByAccount(fromDTO);
//2021-10-18 推送mq,数据同步到中介库 start
if (result.success()) {
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(fromDTO.getCustomerId());
mq.setOrgId(fromDTO.getStaffId());
mq.setOrgType("staff");
mq.setType("staff_change");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
}
//2021-10-18 end
return result;
}
/**
* 人员详情
*
@ -366,6 +440,17 @@ public class CustomerStaffController {
return new Result<List<CustomerStaffDTO>>().ok(customerStaffService.getCustsomerStaffByIdAndPhone(formDTO));
}
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID账户查询政府端工作人员基本信息校验用户是否存在
**/
@GetMapping(value = "getCustsomerStaffByIdAndAccount")
public Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(@RequestBody ThirdCustomerStaffByAccountFormDTO formDTO) {
return new Result<List<CustomerStaffDTO>>().ok(customerStaffService.getCustsomerStaffByIdAndAccount(formDTO));
}
/**
* @Description 查询工作人员的信息
* @param formDTO

19
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java

@ -45,6 +45,8 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
**/
List<CustomerStaffDTO> selectListCustomerStaffDTO(String mobile);
List<CustomerStaffDTO> listCustomerStaffByAccount(@Param("userAccount") String userAccount);
/**
* @param formDTO
* @return com.epmet.dto.CustomerStaffDTO
@ -54,6 +56,15 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
**/
CustomerStaffDTO selectListCustomerStaffInfo(CustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.dto.CustomerStaffDTO
* @Author zhy
* @Description 根据账户+客户id获取工作人员基本信息
* @Date 2020/4/20 14:08
**/
CustomerStaffDTO selectListCustomerStaffInfoByAccount(CustomerStaffByAccountFormDTO formDTO);
CustomerStaffDTO selectStaffInfoByUserId(CustomerStaffDTO formDTO);
/**
@ -147,6 +158,14 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
**/
List<CustomerStaffDTO> selectStaff(ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID账户查询政府端工作人员基本信息
**/
List<CustomerStaffDTO> selectStaffByAccount(ThirdCustomerStaffByAccountFormDTO formDTO);
/**
* @Description 查询工作人员的信息
* @param userIds

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java

@ -42,6 +42,11 @@ public class CustomerStaffEntity extends BaseEpmetEntity {
*/
private String userId;
/**
* 账户
*/
private String userAccount;
/**
* 真实姓名
*/

43
epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java

@ -105,6 +105,15 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
**/
Result<List<CustomerStaffDTO>> getCustsomerStaffByPhone(String mobile);
/**
* @param account 账户
* @return com.epmet.commons.tools.utils.Result
* @Author zhy
* @Description 根据账户查询政府端工作人员基本信息校验用户是否存在
* @Date 2020/4/18 14:07
**/
Result<List<CustomerStaffDTO>> getCustsomerStaffByAccount(String account);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.CustomerStaffDTO>
@ -114,6 +123,15 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
**/
Result<CustomerStaffDTO> getCustomerStaffInfo(CustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.CustomerStaffDTO>
* @Author zhy
* @Description 根据账户+客户id获取工作人员基本信息
* @Date 2020/4/20 14:05
**/
Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(CustomerStaffByAccountFormDTO formDTO);
/**
* 根据用户ID获取工作人员基本信息
*
@ -169,6 +187,15 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
*/
Result<CustomerStaffDTO> addStaff(StaffSubmitFromDTO fromDTO);
/**
* 人员添加
*
* @param fromDTO 参数
* @return Result
*/
Result<CustomerStaffDTO> addStaffByAccount(StaffSubmitAccountFromDTO fromDTO);
/**
* 人员编辑
*
@ -177,6 +204,14 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
*/
Result editStaff(StaffSubmitFromDTO fromDTO);
/**
* 人员编辑
*
* @param fromDTO 参数
* @return Result
*/
Result editStaffByAccount(StaffSubmitAccountFromDTO fromDTO);
/**
* 人员详情
*
@ -259,6 +294,14 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
**/
List<CustomerStaffDTO> getCustsomerStaffByIdAndPhone(ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID手机号查询政府端工作人员基本信息校验用户是否存在
**/
List<CustomerStaffDTO> getCustsomerStaffByIdAndAccount(ThirdCustomerStaffByAccountFormDTO formDTO);
/**
* @Description 查询工作人员的信息
* @param formDTO

196
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -170,6 +170,16 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return new Result<List<CustomerStaffDTO>>().ok(customerStaffDTOList);
}
@Override
public Result<List<CustomerStaffDTO>> getCustsomerStaffByAccount(String userAccount) {
//判断用户是否存在
List<CustomerStaffDTO> customerStaffDTOList = baseDao.listCustomerStaffByAccount(userAccount);
if (null == customerStaffDTOList || customerStaffDTOList.size() == 0) {
logger.warn(String.format("根据账户查询用户异常,账户:[%s],code[%s],msg[%s]", userAccount, EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode(), EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getMsg()));
return new Result().error(EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode());
}
return new Result<List<CustomerStaffDTO>>().ok(customerStaffDTOList);
}
@Override
public Result<CustomerStaffDTO> getCustomerStaffInfo(CustomerStaffFormDTO formDTO) {
@ -186,6 +196,21 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return new Result<CustomerStaffDTO>().ok(customerStaffDTO);
}
@Override
public Result<CustomerStaffDTO> getCustomerStaffInfoByAccount(CustomerStaffByAccountFormDTO formDTO) {
CustomerStaffDTO customerStaffDTO = baseDao.selectListCustomerStaffInfoByAccount(formDTO);
if (null == customerStaffDTO) {
logger.warn(String.format("根据账户查询用户异常,账户:[%s],code[%s],msg[%s]", formDTO.getUserAccount(), EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode(), EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getMsg()));
return new Result().error(EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode());
}
//判断用户是否已被禁用
if (null != customerStaffDTO && UserConstant.DISABLED.equals(customerStaffDTO.getEnableFlag())) {
logger.warn(String.format("根据账户查询用户异常,账户:[%s],客户id:[%s],code[%s],msg[%s]", formDTO.getUserAccount(), formDTO.getCustomerId(), EpmetErrorCode.GOV_STAFF_DISABLED.getCode(), EpmetErrorCode.GOV_STAFF_DISABLED.getMsg()));
return new Result().error(EpmetErrorCode.GOV_STAFF_DISABLED.getCode());
}
return new Result<CustomerStaffDTO>().ok(customerStaffDTO);
}
@Override
public Result<CustomerStaffDTO> getCustomerStaffInfoByUserId(CustomerStaffDTO formDTO) {
CustomerStaffDTO customerStaffDTO = baseDao.selectStaffInfoByUserId(formDTO);
@ -265,11 +290,16 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
if (null == customerStaffDTO) {
log.warn("工作人员不存在");
}
if (StringUtils.isBlank(customerStaffDTO.getHeadPhoto())) {
customerStaffDTO.setHeadPhoto("");
}
resultDTO.setStaffId(customerStaffDTO.getUserId());
resultDTO.setUserAccount(customerStaffDTO.getUserAccount());
resultDTO.setName(customerStaffDTO.getRealName());
resultDTO.setGender(customerStaffDTO.getGender());
resultDTO.setMobile(customerStaffDTO.getMobile());
resultDTO.setWorkType(customerStaffDTO.getWorkType());
resultDTO.setIdCard(customerStaffDTO.getIdCard());
//获取角色列表
GovStaffRoleDTO govStaffRoleDTO = new GovStaffRoleDTO();
govStaffRoleDTO.setCustomerId(fromDTO.getCustomerId());
@ -363,6 +393,71 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return new Result<CustomerStaffDTO>().ok(ConvertUtils.sourceToTarget(staffEntity, CustomerStaffDTO.class));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result<CustomerStaffDTO> addStaffByAccount(StaffSubmitAccountFromDTO fromDTO) {
CustomerStaffFormDTO customerStaffFormDTO = new CustomerStaffFormDTO();
customerStaffFormDTO.setCustomerId(fromDTO.getCustomerId());
customerStaffFormDTO.setMobile(fromDTO.getMobile());
CustomerStaffDTO customerStaffDTO = baseDao.selectListCustomerStaffInfo(customerStaffFormDTO);
if (null != customerStaffDTO) {
return new Result<CustomerStaffDTO>().error(EpmetErrorCode.MOBILE_USED.getCode(), EpmetErrorCode.MOBILE_USED.getMsg());
}
CustomerStaffByAccountFormDTO customerStaffAccountFormDTO = new CustomerStaffByAccountFormDTO();
customerStaffAccountFormDTO.setCustomerId(fromDTO.getCustomerId());
customerStaffAccountFormDTO.setUserAccount(fromDTO.getUserAccount());
customerStaffDTO = baseDao.selectListCustomerStaffInfoByAccount(customerStaffAccountFormDTO);
if (null != customerStaffDTO) {
return new Result<CustomerStaffDTO>().error(EpmetErrorCode.ACCOUNT_USED.getCode(), EpmetErrorCode.ACCOUNT_USED.getMsg());
}
//USER表插入数据
UserEntity userEntity = new UserEntity();
userEntity.setFromApp(fromDTO.getApp());
userEntity.setFromClient(fromDTO.getClient());
userEntity.setCustomerId(fromDTO.getCustomerId());
userService.insert(userEntity);
//Customer_Staff表插入数据
CustomerStaffEntity staffEntity = new CustomerStaffEntity();
staffEntity.setCustomerId(fromDTO.getCustomerId());
staffEntity.setUserId(userEntity.getId());
staffEntity.setUserAccount(fromDTO.getUserAccount());
staffEntity.setRealName(fromDTO.getName());
staffEntity.setMobile(fromDTO.getMobile());
staffEntity.setActiveFlag(CustomerStaffConstant.INACTIVE);
staffEntity.setGender(fromDTO.getGender());
staffEntity.setWorkType(fromDTO.getWorkType());
staffEntity.setEnableFlag(CustomerStaffConstant.ENABLE);
staffEntity.setPassword(PasswordUtils.encode(fromDTO.getPwd()));
staffEntity.setIdCard(fromDTO.getIdCard());
baseDao.insert(staffEntity);
//工作人员角色关联表
fromDTO.getRoles().forEach(role -> {
StaffRoleEntity staffRoleEntity = new StaffRoleEntity();
staffRoleEntity.setStaffId(userEntity.getId());
staffRoleEntity.setRoleId(role);
staffRoleEntity.setOrgId(fromDTO.getAgencyId());
staffRoleEntity.setCustomerId(fromDTO.getCustomerId());
staffRoleService.insert(staffRoleEntity);
});
// 角色放缓存
CustomerAgencyUserRoleDTO dto = new CustomerAgencyUserRoleDTO();
List<RoleKeyValueResultDTO> roleKeyValue = govStaffRoleDao.selectRoleKeyName(fromDTO.getRoles());
dto.setCustomerId(fromDTO.getCustomerId());
dto.setStaffId(userEntity.getId());
dto.setAgencyId(fromDTO.getAgencyId());
Map m = new HashMap(16);
roleKeyValue.forEach(r -> {
m.put(r.getRoleKey(), r.getRoleName());
});
dto.setRoles(m);
CustomerStaffRedis.delStaffInfoFormCache(dto.getCustomerId(), dto.getStaffId());
return new Result<CustomerStaffDTO>().ok(ConvertUtils.sourceToTarget(staffEntity, CustomerStaffDTO.class));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result editStaff(StaffSubmitFromDTO fromDTO) {
@ -437,11 +532,99 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result editStaffByAccount(StaffSubmitAccountFromDTO fromDTO) {
CustomerStaffFormDTO customerStaffFormDTO = new CustomerStaffFormDTO();
customerStaffFormDTO.setCustomerId(fromDTO.getCustomerId());
customerStaffFormDTO.setMobile(fromDTO.getMobile());
CustomerStaffDTO customerStaffDTO = baseDao.selectListCustomerStaffInfo(customerStaffFormDTO);
if (null != customerStaffDTO && !fromDTO.getStaffId().equals(customerStaffDTO.getUserId())) {
return new Result<CustomerStaffDTO>().error(EpmetErrorCode.MOBILE_USED.getCode(), EpmetErrorCode.MOBILE_USED.getMsg());
}
CustomerStaffByAccountFormDTO customerStaffAccountFormDTO = new CustomerStaffByAccountFormDTO();
customerStaffAccountFormDTO.setCustomerId(fromDTO.getCustomerId());
customerStaffAccountFormDTO.setUserAccount(fromDTO.getUserAccount());
customerStaffDTO = baseDao.selectListCustomerStaffInfoByAccount(customerStaffAccountFormDTO);
if (null != customerStaffDTO && !fromDTO.getStaffId().equals(customerStaffDTO.getUserId())) {
return new Result<CustomerStaffDTO>().error(EpmetErrorCode.ACCOUNT_USED.getCode(), EpmetErrorCode.ACCOUNT_USED.getMsg());
}
CustomerStaffEntity customerStaffEntity = baseDao.selectByUserId(fromDTO.getStaffId());
//Customer_Staff表插入数据
CustomerStaffEntity staffEntity = new CustomerStaffEntity();
staffEntity.setId(customerStaffEntity.getId());
staffEntity.setRealName(fromDTO.getName());
staffEntity.setMobile(fromDTO.getMobile());
staffEntity.setGender(fromDTO.getGender());
staffEntity.setUserAccount(fromDTO.getUserAccount());
staffEntity.setWorkType(fromDTO.getWorkType());
if (StringUtils.isNotBlank(fromDTO.getPwd())){
staffEntity.setPassword(PasswordUtils.encode(fromDTO.getPwd()));
}
staffEntity.setIdCard(fromDTO.getIdCard());
baseDao.updateById(staffEntity);
//清空权限关联
StaffRoleDTO staffRoleDTO = new StaffRoleDTO();
staffRoleDTO.setStaffId(fromDTO.getStaffId());
staffRoleDTO.setOrgId(fromDTO.getAgencyId());
staffRoleService.clearStaffRoles(staffRoleDTO);
//重新添加角色关联
fromDTO.getRoles().forEach(role -> {
StaffRoleEntity staffRoleEntity = new StaffRoleEntity();
staffRoleEntity.setStaffId(fromDTO.getStaffId());
staffRoleEntity.setRoleId(role);
staffRoleEntity.setOrgId(fromDTO.getAgencyId());
staffRoleService.insert(staffRoleEntity);
});
// 重新查询用户的角色列表(可以取到前端没有传过来的角色,例如根管理员)
List<StaffRoleEntity> staffRoleEntytiesByStaffIdAndOrgId = staffRoleService.getStaffRoleEntytiesByStaffIdAndOrgId(fromDTO.getAgencyId(), fromDTO.getStaffId());
List<String> roleIds = new ArrayList<>();
if (!CollectionUtils.isEmpty(staffRoleEntytiesByStaffIdAndOrgId)) {
roleIds = staffRoleEntytiesByStaffIdAndOrgId.stream().map(sr -> sr.getRoleId()).collect(Collectors.toList());
}
// redis缓存角色修改
UpdateCachedRolesFormDTO updateRolesForm = new UpdateCachedRolesFormDTO();
updateRolesForm.setOrgId(fromDTO.getAgencyId());
updateRolesForm.setStaffId(fromDTO.getStaffId());
updateRolesForm.setRoleIds(roleIds);
try {
Result result = authFeignClient.updateCachedRoles(updateRolesForm);
if (!result.success()) {
logger.error("修改用户信息:修改用户已缓存的角色列表失败:{}", result.getInternalMsg());
}
logger.info("修改用户信息:修改用户已缓存的角色列表成功");
} catch (Exception e) {
log.error("method exception", e);
logger.error("修改用户信息:修改用户已缓存的角色列表异常:{}", ExceptionUtils.getErrorStackTrace(e));
}
// 角色放缓存
CustomerAgencyUserRoleDTO dto = new CustomerAgencyUserRoleDTO();
List<RoleKeyValueResultDTO> roleKeyValue = govStaffRoleDao.selectRoleKeyName(fromDTO.getRoles());
dto.setCustomerId(fromDTO.getCustomerId());
dto.setStaffId(fromDTO.getStaffId());
dto.setAgencyId(fromDTO.getAgencyId());
Map m = new HashMap(16);
roleKeyValue.forEach(r -> {
m.put(r.getRoleKey(), r.getRoleName());
});
dto.setRoles(m);
CustomerStaffRedis.delStaffInfoFormCache(dto.getCustomerId(), dto.getStaffId());
return new Result();
}
@Override
public Result<StaffDetailResultDTO> getStaffDetail(StaffInfoFromDTO fromDTO) {
StaffDetailResultDTO resultDTO = new StaffDetailResultDTO();
//获取工作人员信息
CustomerStaffDTO customerStaffDTO = baseDao.selectStaffInfo(fromDTO);
if (StringUtils.isBlank(customerStaffDTO.getHeadPhoto())) {
customerStaffDTO.setHeadPhoto("");
}
resultDTO.setStaffId(customerStaffDTO.getUserId());
resultDTO.setName(customerStaffDTO.getRealName());
resultDTO.setMobile(customerStaffDTO.getMobile());
@ -604,6 +787,19 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return customerStaffDTOList;
}
@Override
public List<CustomerStaffDTO> getCustsomerStaffByIdAndAccount(ThirdCustomerStaffByAccountFormDTO formDTO) {
//根据客户Id和手机号查询工作人员信息
List<CustomerStaffDTO> customerStaffDTOList = baseDao.selectStaffByAccount(formDTO);
if (null == customerStaffDTOList || customerStaffDTOList.size() < NumConstant.ONE) {
logger.warn(String.format("根据客户Id和账户查询用户异常,客户Id:[%s],账户:[%s],code[%s],msg[%s]",
formDTO.getCustomerId(), formDTO.getUserAccount(), EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode(),
EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getMsg()));
throw new RenException(EpmetErrorCode.GOV_STAFF_ACCOUNT_NOT_EXISTS.getCode());
}
return customerStaffDTOList;
}
/**
* @param formDTO
* @Description 查询工作人员的信息

32
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcBirthRecordServiceImpl.java

@ -5,14 +5,15 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.GenderEnum;
import com.epmet.commons.tools.enums.IcResiUserSubStatusEnum;
import com.epmet.commons.tools.enums.IdCardTypeEnum;
import com.epmet.commons.tools.enums.RelationshipEnum;
import com.epmet.commons.tools.enums.*;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.IdCardRegexUtils;
@ -29,6 +30,7 @@ import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.SyncResiResDTO;
import com.epmet.entity.IcBirthRecordEntity;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.ChangeWelfareService;
import com.epmet.service.IcBirthRecordService;
@ -37,6 +39,7 @@ import com.epmet.service.IcUserTransferRecordService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
@ -65,6 +68,8 @@ public class IcBirthRecordServiceImpl extends BaseServiceImpl<IcBirthRecordDao,
private IcResiUserDao icResiUserDao;
@Resource
private ChangeWelfareService changeWelfareService;
@Resource
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Override
public PageData<IcBirthRecordDTO> page(BirthRecordFormDTO formDTO) {
@ -118,7 +123,24 @@ public class IcBirthRecordServiceImpl extends BaseServiceImpl<IcBirthRecordDao,
@Override
public IcBirthRecordDTO get(String id) {
IcBirthRecordEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcBirthRecordDTO.class);
if (null == entity) {
return null;
}
IcBirthRecordDTO recordDTO=ConvertUtils.sourceToTarget(entity, IcBirthRecordDTO.class);
GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(recordDTO.getGridId());
if (null != gridInfoCache) {
recordDTO.setGridName(gridInfoCache.getGridNamePath());
}
HouseInfoCache houseInfoCache = CustomerIcHouseRedis.getHouseInfo(entity.getCustomerId(), recordDTO.getHomeId());
if (null != houseInfoCache) {
recordDTO.setHomeAllName(houseInfoCache.getAllName());
}
Result<Map<String, String>> relationshipRes = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.RELATIONSHIP.getCode());
if (relationshipRes.success() && MapUtils.isNotEmpty(relationshipRes.getData())) {
String householderRelationName = relationshipRes.getData().containsKey(recordDTO.getHouseholderRelation()) ? relationshipRes.getData().get(recordDTO.getHouseholderRelation()) : StrConstant.EPMETY_STR;
recordDTO.setHouseholderRelationName(householderRelationName);
}
return recordDTO;
}
@Override

2
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.62__alter_customer_staff.sql

@ -0,0 +1,2 @@
ALTER TABLE epmet_user.customer_staff ADD USER_ACCOUNT varchar(32) NULL COMMENT '登录账户';
ALTER TABLE epmet_user.customer_staff CHANGE USER_ACCOUNT USER_ACCOUNT varchar(32) NULL COMMENT '登录账户' AFTER USER_ID;

38
epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

@ -11,6 +11,14 @@
order by cs.ACTIVE_TIME desc,cs.CREATED_TIME asc
</select>
<!-- 根据账户查询工作人员信息 -->
<select id="listCustomerStaffByAccount" parameterType="java.lang.String" resultType="com.epmet.dto.CustomerStaffDTO">
select * from customer_staff cs
where cs.USER_ACCOUNT=#{userAccount}
and cs.DEL_FLAG='0'
order by cs.ACTIVE_TIME desc,cs.CREATED_TIME asc
</select>
<!-- 根据手机号+客户id获取工作人员基本信息 -->
<select id="selectListCustomerStaffInfo" parameterType="com.epmet.dto.form.CustomerStaffFormDTO" resultType="com.epmet.dto.CustomerStaffDTO">
select * from customer_staff cs
@ -18,6 +26,14 @@
and cs.CUSTOMER_ID=#{customerId}
and cs.DEL_FLAG='0'
</select>
<!-- 根据账户+客户id获取工作人员基本信息 -->
<select id="selectListCustomerStaffInfoByAccount" parameterType="com.epmet.dto.form.CustomerStaffByAccountFormDTO" resultType="com.epmet.dto.CustomerStaffDTO">
select * from customer_staff cs
where cs.USER_ACCOUNT=#{userAccount}
and cs.CUSTOMER_ID=#{customerId}
and cs.DEL_FLAG='0'
</select>
<select id="selectStaffInfoByUserId" parameterType="com.epmet.dto.CustomerStaffDTO" resultType="com.epmet.dto.CustomerStaffDTO">
select * from customer_staff cs
where cs.USER_ID=#{userId}
@ -125,15 +141,7 @@
</select>
<select id="selectStaffInfo" resultType="com.epmet.dto.CustomerStaffDTO" parameterType="com.epmet.dto.form.StaffInfoFromDTO">
SELECT
USER_ID,
REAL_NAME,
MOBILE,
GENDER,
IFNULL(HEAD_PHOTO, "") AS "headPhoto",
ENABLE_FLAG,
ACTIVE_FLAG,
ACTIVE_TIME,
WORK_TYPE
*
FROM
customer_staff
WHERE
@ -221,6 +229,18 @@
ORDER BY active_time DESC, created_time ASC
</select>
<select id="selectStaffByAccount" resultType="com.epmet.dto.CustomerStaffDTO">
SELECT
*
FROM
customer_staff
WHERE
del_flag='0'
AND customer_id = #{customerId}
AND user_account = #{userAccount}
ORDER BY active_time DESC, created_time ASC
</select>
<!-- 查询工作人员的信息 -->
<select id="getStaffInfoList" resultType="com.epmet.dto.result.StaffSinGridResultDTO">
SELECT

Loading…
Cancel
Save