diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java index b1e0635f3e..6ee0c38250 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java @@ -16,6 +16,27 @@ public class StaffsByOrgAndRolesFormDTO { */ @NotBlank(message = "组织类型为必填项") private String orgType; + + /** + * 工作人员姓名 + */ + private String name; + + /** + * 工作人员电话 + */ + private String mobile; + + /** + * 工作人员角色 网格员:grid_member、网格长:grid_manager + */ + private String roleType; + + /** + * 工作类型:专职:fulltime 兼职:parttime + */ + private String workType; + private int pageNo = 1; private int pageSize = 10; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java index c02f7340a2..e3d38ab006 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java @@ -14,10 +14,48 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class StaffsByOrgAndRoleRstDTO { + /** + * 工作人员姓名 + */ private String staffName; + /** + * 工作人员ID + */ private String staffId; + /** + * 电话 + */ private String mobile; + /** + * 性别 0.未知,1男,2.女 + */ + private String gender; + /** + * 文化程度(灵山-红色待办)。0小学及文盲,1初中,2高中,3大专,4本科,5硕士,6博士,7中专 + */ + private String culture; + /** + * 生日 + */ + private String birthday; + /** + * 地址 + */ + private String address; + /** + * 网格员类型:专职:fulltime 兼职:parttime + */ + private String workType; + /** + * 头像 + */ + private String headPhoto; + /** + * 身份证号码 + */ + private String idCard; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index 8bcaa53317..6d8c966188 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -314,7 +314,7 @@ public class EpmetUserController { ValidatorUtils.validateEntity(form); - PageData pd = userService.listStaffByOrgAndRole(form.getOrgId(), form.getOrgType(), form.getPageNo(), form.getPageSize(), form.getRoleKeys()); + PageData pd = userService.listStaffByOrgAndRole(form); return new Result>().ok(pd); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index 567e2c85e5..08b831c3d8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -114,5 +114,9 @@ public interface CustomerStaffDao extends BaseDao { Integer countStaffQtyByStaffIdsAndRole(@Param("staffIds") Set staffIds, @Param("roleId") String roleId); // 给定的staffId种,具备某些角色的staffId列表 - List staffsInRolesFromGivenStaffIds(@Param("staffIds") List staffIds, @Param("roleKeys") List roleKeys); + List staffsInRolesFromGivenStaffIds(@Param("staffIds") List staffIds, + @Param("roleKeys") List roleKeys, + @Param("name") String name, + @Param("mobile") String mobile, + @Param("workType") String workType); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java index d1060d5c52..7a92cbc3bd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java @@ -1,10 +1,9 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; +import com.epmet.dataaggre.dto.epmetuser.form.StaffsByOrgAndRolesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO; -import java.util.List; - public interface UserService { - PageData listStaffByOrgAndRole(String orgId, String orgType, Integer pageNo, Integer pageSize, List roleKeys); + PageData listStaffByOrgAndRole(StaffsByOrgAndRolesFormDTO form); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index fc77b822ef..c345e57884 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -276,5 +276,5 @@ public interface EpmetUserService { */ PageData listIcResiUserByHouseId(Integer pageNo,Integer pageSize,List houseIds); - PageData staffsInRolesFromGivenStaffIds(List staffIdsUnderAgency, List roleKeys, Integer pageNo, Integer pageSize); + PageData staffsInRolesFromGivenStaffIds(List staffIdsUnderAgency, StaffsByOrgAndRolesFormDTO form); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 527ccea53c..7a596cd02c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -1227,10 +1227,10 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve } @Override - public PageData staffsInRolesFromGivenStaffIds(List staffIdsUnderAgency, List roleKeys, Integer pageNo, Integer pageSize) { + public PageData staffsInRolesFromGivenStaffIds(List staffIdsUnderAgency, StaffsByOrgAndRolesFormDTO form) { - PageHelper.startPage(pageNo, pageSize); - List sl = customerStaffDao.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys); + PageHelper.startPage(form.getPageNo(), form.getPageSize()); + List sl = customerStaffDao.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, form.getRoleKeys(),form.getName(),form.getMobile(),form.getWorkType()); return new PageData<>(sl, new PageInfo<>(sl).getTotal()); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java index bd9937a0b6..83ee51c96f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.utils.PidUtils; import com.epmet.constant.OrgInfoConstant; +import com.epmet.dataaggre.dto.epmetuser.form.StaffsByOrgAndRolesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO; import com.epmet.dataaggre.service.UserService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; @@ -15,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service @@ -30,20 +32,20 @@ public class UserServiceImpl implements UserService { private EpmetUserRemoteService epmetUserRemoteService; @Override - public PageData listStaffByOrgAndRole(String orgId, String orgType, Integer pageNo, Integer pageSize, List roleKeys) { + public PageData listStaffByOrgAndRole(StaffsByOrgAndRolesFormDTO form) { String orgIdPath; - if (StringUtils.isAnyBlank(orgType, orgType)) { + if (StringUtils.isAnyBlank(form.getOrgId(), form.getOrgType())) { // 这俩有一个不传,就用当前用户所属的 LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); orgIdPath = loginUserDetails.getOrgIdPath(); - orgId = loginUserDetails.getAgencyId(); - orgType = OrgInfoConstant.AGENCY; + form.setOrgId(loginUserDetails.getAgencyId()); + form.setOrgType(OrgInfoConstant.AGENCY); } else { // 取用户传递的 - if (OrgInfoConstant.AGENCY.equals(orgType)) { + if (OrgInfoConstant.AGENCY.equals(form.getOrgType())) { // 行政组织 - AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(form.getOrgId()); orgIdPath = PidUtils.convertPid2OrgIdPath(agencyInfo.getId(), agencyInfo.getPids()); } else { return null; @@ -51,9 +53,17 @@ public class UserServiceImpl implements UserService { } // 先通过org库查询出工作人员的id列表 - List staffIdsUnderAgency = govOrgService.listStaffIdsUnderAgency(orgIdPath, orgId); + List staffIdsUnderAgency = govOrgService.listStaffIdsUnderAgency(orgIdPath, form.getOrgId()); + //多处调用,判断是否传参 + if (null == form.getRoleKeys() && form.getRoleKeys().size() == 0) { + //如果roleKeys是空,则无传参,判断roleType,如果不为空,添加查询参数 + if (StringUtils.isNotEmpty(form.getRoleType())) { + List roleKeys = new ArrayList<>(); + roleKeys.add(form.getRoleType()); + } + } // 再通过这些id列表,去过滤角色,并且查出详细信息 - return epmetUserService.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys, pageNo, pageSize); + return epmetUserService.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, form); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml index 37fd22e0ae..cac6d8e630 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml @@ -217,25 +217,48 @@ - \ No newline at end of file + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java index 8c74a45df3..072ac697f0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java @@ -1,7 +1,6 @@ package com.epmet.service.impl; import com.alibaba.excel.EasyExcel; -import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -13,7 +12,9 @@ import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.*; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.FileUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.constant.OrgInfoConstant; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.CustomerStaffAgencyDao; @@ -61,886 +62,889 @@ import java.util.stream.Collectors; @Slf4j @Service public class StaffServiceImpl implements StaffService { - private static final Logger logger = LoggerFactory.getLogger(StaffServiceImpl.class); - @Autowired - private EpmetUserFeignClient epmetUserFeignClient; - @Autowired - private CustomerAgencyService customerAgencyService; - @Autowired - private CustomerStaffAgencyService customerStaffAgencyService; - @Autowired - private GovProjectOpenFeignClient govProjectOpenFeignClient; - @Autowired - private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; - @Autowired - private CustomerDepartmentService customerDepartmentService; - @Autowired - private CustomerGridService customerGridService; - @Autowired - private StaffTransferRecordService staffTransferRecordService; - @Autowired - private EpmetUserOpenFeignClient epmetUserOpenFeignClient; - @Autowired - private RedisUtils redisUtils; - @Autowired - private CustomerStaffAgencyDao customerStaffAgencyDao; - @Autowired - private com.epmet.dao.CustomerAgencyDao customerAgencyDao; - @Autowired - private CustomerStaffDepartmentService customerStaffDepartmentService; - @Autowired - private CustomerStaffGridService customerStaffGridService; - @Autowired - private StaffOrgRelationService staffOrgRelationService; - @Resource - private StaffOrgRelationDao staffOrgRelationDao; - @Autowired - private GovAccessFeignClient govAccessFeignClient; - @Autowired - private EpmetThirdOpenFeignClient epmetThirdOpenFeignClient; - @Autowired - private EpmetUserRemoteService userRemoteService; - @Autowired - private OssFeignClient ossFeignClient; - - @Override - public Result getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { - StaffsInAgencyResultDTO resultDTO = new StaffsInAgencyResultDTO(); - //获取机关所在客户ID和人员总数 - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - if (null == customerAgencyEntity) { - resultDTO.setStaffList(new ArrayList<>()); - resultDTO.setStaffCount(0); - return new Result().ok(resultDTO); - } - resultDTO.setStaffCount(customerAgencyEntity.getTotalUser() == null ? 0 : customerAgencyEntity.getTotalUser()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - List customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); - if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { - resultDTO.setStaffList(new ArrayList<>()); - return new Result().ok(resultDTO); - } - //提取所有userID - List staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); - fromDTO.setStaffList(staffIds); - //获取用户信息 - Result> staffInfoListResult = epmetUserFeignClient.getStaffInfoForHome(fromDTO); - resultDTO.setStaffList(staffInfoListResult.getData()); - return new Result().ok(resultDTO); - } - - @Override - public Result> getStaffList(StaffsInAgencyFromDTO fromDTO) { - //获取机关所在客户ID - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - if (null == customerAgencyEntity) { - return new Result>().ok(new ArrayList<>()); - } - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - List customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); - if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { - return new Result>().ok(null); - } - //提取所有userID - List staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); - fromDTO.setStaffList(staffIds); - //获取用户列表 - return epmetUserFeignClient.getStaffList(fromDTO); - } + private static final Logger logger = LoggerFactory.getLogger(StaffServiceImpl.class); + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + @Autowired + private CustomerAgencyService customerAgencyService; + @Autowired + private CustomerStaffAgencyService customerStaffAgencyService; + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + @Autowired + private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Autowired + private CustomerDepartmentService customerDepartmentService; + @Autowired + private CustomerGridService customerGridService; + @Autowired + private StaffTransferRecordService staffTransferRecordService; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private RedisUtils redisUtils; + @Autowired + private CustomerStaffAgencyDao customerStaffAgencyDao; + @Autowired + private com.epmet.dao.CustomerAgencyDao customerAgencyDao; + @Autowired + private CustomerStaffDepartmentService customerStaffDepartmentService; + @Autowired + private CustomerStaffGridService customerStaffGridService; + @Autowired + private StaffOrgRelationService staffOrgRelationService; + @Resource + private StaffOrgRelationDao staffOrgRelationDao; + @Autowired + private GovAccessFeignClient govAccessFeignClient; + @Autowired + private EpmetThirdOpenFeignClient epmetThirdOpenFeignClient; + @Autowired + private EpmetUserRemoteService userRemoteService; + @Autowired + private OssFeignClient ossFeignClient; + + @Override + public Result getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { + StaffsInAgencyResultDTO resultDTO = new StaffsInAgencyResultDTO(); + //获取机关所在客户ID和人员总数 + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + if (null == customerAgencyEntity) { + resultDTO.setStaffList(new ArrayList<>()); + resultDTO.setStaffCount(0); + return new Result().ok(resultDTO); + } + resultDTO.setStaffCount(customerAgencyEntity.getTotalUser() == null ? 0 : customerAgencyEntity.getTotalUser()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + List customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); + if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { + resultDTO.setStaffList(new ArrayList<>()); + return new Result().ok(resultDTO); + } + //提取所有userID + List staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); + fromDTO.setStaffList(staffIds); + //获取用户信息 + Result> staffInfoListResult = epmetUserFeignClient.getStaffInfoForHome(fromDTO); + resultDTO.setStaffList(staffInfoListResult.getData()); + return new Result().ok(resultDTO); + } + + @Override + public Result> getStaffList(StaffsInAgencyFromDTO fromDTO) { + //获取机关所在客户ID + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + if (null == customerAgencyEntity) { + return new Result>().ok(new ArrayList<>()); + } + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + List customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); + if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { + return new Result>().ok(null); + } + //提取所有userID + List staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); + fromDTO.setStaffList(staffIds); + //获取用户列表 + return epmetUserFeignClient.getStaffList(fromDTO); + } /** - * 人员添加页面初始化 + * 人员添加页面初始化 * 备注:2022.10.18运营端-统一认证也会调用此接口,入参会给customerId + * * @param fromDTO 参数 * @return */ - @Override - public Result> addStaffInit(StaffInfoFromDTO fromDTO) { - if(StringUtils.isBlank(fromDTO.getCustomerId())){ - if(StringUtils.isNotBlank(fromDTO.getAgencyId())){ - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - } - } - return epmetUserFeignClient.addStaffInit(fromDTO); - } - - @Override - public Result editStaffInit(StaffInfoFromDTO fromDTO) { - //运营端-统一认证调用此接口时,客户id传值了。 - if(StringUtils.isBlank(fromDTO.getCustomerId())){ - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - } - CustomerStaffAgencyDTO customerStaffAgencyDTO=customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); - if (null == customerStaffAgencyDTO) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "customer_staff_agency is null user_id :" + fromDTO.getStaffId(), "查询用户所属组织为空"); - } - //运营端-统一认证那调用的时候, agencyId为空,这里重新赋值下 - if(StringUtils.isBlank(fromDTO.getAgencyId())){ - fromDTO.setAgencyId(customerStaffAgencyDTO.getAgencyId()); - } - Result res=epmetUserFeignClient.editStaffInit(fromDTO); - if (res.success() && null != res.getData()) { - res.getData().setAgencyId(customerStaffAgencyDTO.getAgencyId()); - res.getData().setAgencyName(customerAgencyService.getAgencyName(customerStaffAgencyDTO.getAgencyId())); - } - return new Result().ok(res.getData()); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Result addStaff(StaffSubmitFromDTO fromDTO) { - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - //fromDTO.setApp(tokenDto.getApp()); - //fromDTO.setClient(tokenDto.getClient()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - Result result = epmetUserFeignClient.addStaff(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 TokenDto tokenDto, - * @param fromDTO - * @return - */ - @Override - public Result editStaff(StaffSubmitFromDTO fromDTO) { - if(StringUtils.isBlank(fromDTO.getCustomerId())){ - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - } - // epmetUserFeignClient.editStaff没有用到这俩参数,就注释了。 - // fromDTO.setApp(tokenDto.getApp()); - // fromDTO.setClient(tokenDto.getClient()); - Result result = epmetUserFeignClient.editStaff(fromDTO); - if (!result.success()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),result.getInternalMsg(),result.getMsg()); - } - // if (tokenDto.getClient().equals("web")){ - if(CollectionUtils.isNotEmpty(fromDTO.getNewRoles())){ - Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), fromDTO.getStaffId(),fromDTO.getCustomerId())); - if (!roleUserAccess.success()){ - throw new EpmetException("save data to gov-role-user failure"); - } - } - // } - //2021.8.24 sun 人员信息编辑时删除工作人员的缓存信息 - CustomerStaffRedis.delStaffInfoFormCache(fromDTO.getCustomerId(), fromDTO.getStaffId()); - 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 getStaffDetail(StaffInfoFromDTO fromDTO) { - CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); - fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); - return epmetUserFeignClient.getStaffDetail(fromDTO); - } - - @Override - public Result disabledStaff(TokenDto tokenDto, StaffInfoFromDTO fromDTO) { - if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { - return new Result().error(EpmetErrorCode.CANNOT_DISABLE_YOURSELF.getCode(), EpmetErrorCode.CANNOT_DISABLE_YOURSELF.getMsg()); - } - return epmetUserFeignClient.disabledStaff(fromDTO); - } - - @Override - public MineResultDTO mine(StaffInfoFromDTO fromDTO) { - MineResultDTO result = new MineResultDTO(); - CustomerStaffAgencyDTO customerStaffAgency = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); - fromDTO.setCustomerId(customerStaffAgency.getCustomerId()); - fromDTO.setAgencyId(customerStaffAgency.getAgencyId()); - StaffDetailResultDTO staffDetail = epmetUserFeignClient.getStaffDetail(fromDTO).getData(); - String agencyName = customerAgencyService.getAgencyName(customerStaffAgency.getAgencyId()); - result.setStaffId(staffDetail.getStaffId()); - result.setRealName(staffDetail.getName()); - result.setStaffHeadPhoto(staffDetail.getHeadPhoto()); - result.setGender(staffDetail.getGender()); - result.setMobile(staffDetail.getMobile());//返参添加手机号 2020.10.27 sun - result.setRoleList(staffDetail.getRoles()); - //用户所属机关名称(上级-本级) - result.setAgencyName(agencyName); - //新增返参: 用户所属机关id - result.setAgencyId(customerStaffAgency.getAgencyId()); - CustomerAgencyDTO customerAgencyDTO=customerAgencyService.get(customerStaffAgency.getAgencyId()); - if(null!=customerAgencyDTO){ - //用户所属机关名称 - result.setMyAgencyName(customerAgencyDTO.getOrganizationName()); - } - //2021.08.27 zhaoqf start - //获取根组织 - CustomerAgencyDTO agency = customerAgencyService.get(customerStaffAgency.getAgencyId()); - if (StringUtils.isNotBlank(agency.getPids())) { + @Override + public Result> addStaffInit(StaffInfoFromDTO fromDTO) { + if (StringUtils.isBlank(fromDTO.getCustomerId())) { + if (StringUtils.isNotBlank(fromDTO.getAgencyId())) { + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + } + } + return epmetUserFeignClient.addStaffInit(fromDTO); + } + + @Override + public Result editStaffInit(StaffInfoFromDTO fromDTO) { + //运营端-统一认证调用此接口时,客户id传值了。 + if (StringUtils.isBlank(fromDTO.getCustomerId())) { + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + } + CustomerStaffAgencyDTO customerStaffAgencyDTO = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); + if (null == customerStaffAgencyDTO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "customer_staff_agency is null user_id :" + fromDTO.getStaffId(), "查询用户所属组织为空"); + } + //运营端-统一认证那调用的时候, agencyId为空,这里重新赋值下 + if (StringUtils.isBlank(fromDTO.getAgencyId())) { + fromDTO.setAgencyId(customerStaffAgencyDTO.getAgencyId()); + } + Result res = epmetUserFeignClient.editStaffInit(fromDTO); + if (res.success() && null != res.getData()) { + res.getData().setAgencyId(customerStaffAgencyDTO.getAgencyId()); + res.getData().setAgencyName(customerAgencyService.getAgencyName(customerStaffAgencyDTO.getAgencyId())); + } + return new Result().ok(res.getData()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result addStaff(StaffSubmitFromDTO fromDTO) { + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + //fromDTO.setApp(tokenDto.getApp()); + //fromDTO.setClient(tokenDto.getClient()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + Result result = epmetUserFeignClient.addStaff(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 TokenDto tokenDto, + * @param fromDTO + * @return + */ + @Override + public Result editStaff(StaffSubmitFromDTO fromDTO) { + if (StringUtils.isBlank(fromDTO.getCustomerId())) { + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + } + // epmetUserFeignClient.editStaff没有用到这俩参数,就注释了。 + // fromDTO.setApp(tokenDto.getApp()); + // fromDTO.setClient(tokenDto.getClient()); + Result result = epmetUserFeignClient.editStaff(fromDTO); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getInternalMsg(), result.getMsg()); + } + // if (tokenDto.getClient().equals("web")){ + if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())) { + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), fromDTO.getStaffId(), fromDTO.getCustomerId())); + if (!roleUserAccess.success()) { + throw new EpmetException("save data to gov-role-user failure"); + } + } + // } + //2021.8.24 sun 人员信息编辑时删除工作人员的缓存信息 + CustomerStaffRedis.delStaffInfoFormCache(fromDTO.getCustomerId(), fromDTO.getStaffId()); + 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 getStaffDetail(StaffInfoFromDTO fromDTO) { + CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); + fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); + return epmetUserFeignClient.getStaffDetail(fromDTO); + } + + @Override + public Result disabledStaff(TokenDto tokenDto, StaffInfoFromDTO fromDTO) { + if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { + return new Result().error(EpmetErrorCode.CANNOT_DISABLE_YOURSELF.getCode(), EpmetErrorCode.CANNOT_DISABLE_YOURSELF.getMsg()); + } + return epmetUserFeignClient.disabledStaff(fromDTO); + } + + @Override + public MineResultDTO mine(StaffInfoFromDTO fromDTO) { + MineResultDTO result = new MineResultDTO(); + CustomerStaffAgencyDTO customerStaffAgency = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); + fromDTO.setCustomerId(customerStaffAgency.getCustomerId()); + fromDTO.setAgencyId(customerStaffAgency.getAgencyId()); + StaffDetailResultDTO staffDetail = epmetUserFeignClient.getStaffDetail(fromDTO).getData(); + String agencyName = customerAgencyService.getAgencyName(customerStaffAgency.getAgencyId()); + result.setStaffId(staffDetail.getStaffId()); + result.setRealName(staffDetail.getName()); + result.setStaffHeadPhoto(staffDetail.getHeadPhoto()); + result.setGender(staffDetail.getGender()); + result.setMobile(staffDetail.getMobile());//返参添加手机号 2020.10.27 sun + result.setRoleList(staffDetail.getRoles()); + //用户所属机关名称(上级-本级) + result.setAgencyName(agencyName); + //新增返参: 用户所属机关id + result.setAgencyId(customerStaffAgency.getAgencyId()); + CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(customerStaffAgency.getAgencyId()); + if (null != customerAgencyDTO) { + //用户所属机关名称 + result.setMyAgencyName(customerAgencyDTO.getOrganizationName()); + } + //2021.08.27 zhaoqf start + //获取根组织 + CustomerAgencyDTO agency = customerAgencyService.get(customerStaffAgency.getAgencyId()); + if (StringUtils.isNotBlank(agency.getPids())) { String rootAgencyId = agency.getPids().split(StrConstant.COLON)[0]; CustomerAgencyDTO rootAgency = customerAgencyService.get(rootAgencyId); - result.setRootAgencyId(rootAgencyId); + result.setRootAgencyId(rootAgencyId); result.setRootAgencyName(rootAgency.getOrganizationName()); - } else { - result.setRootAgencyId(customerStaffAgency.getAgencyId()); + } else { + result.setRootAgencyId(customerStaffAgency.getAgencyId()); result.setRootAgencyName(agency.getOrganizationName()); - } - //2021.08.27 zhaoqf end - //2021.9.17 sun 添加工作人员注册组织、类型、id返参 start - List staffIdList = new ArrayList<>(); - staffIdList.add(result.getStaffId()); - List list = staffOrgRelationDao.selelctStaffOrg(staffIdList); - list.forEach(l->{ - if(l.getStaffId().equals(result.getStaffId())){ - result.setOrgId(l.getOrgId()); - result.setOrgName(l.getOrgName()); - result.setOrgType(l.getOrgType()); - } - }); - //2021.9.17 sun 添加工作人员注册组织、类型、id返参 end - return result; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void staffTransfer(TokenDto tokenDto, StaffTransferFormDTO fromDTO) { - if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { - throw new RenException(EpmetErrorCode.CAN_NOT_SELF.getCode()); - } - //1.获取工作人员与机关关系 - CustomerStaffAgencyDTO staffAgencyDTO = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); - String oldAgency = staffAgencyDTO.getAgencyId(); - //2.查询是否有未处理项目 - ProjectListFromDTO projectFromDTO = new ProjectListFromDTO(); - projectFromDTO.setCustomerId(staffAgencyDTO.getCustomerId()); - projectFromDTO.setUserId(fromDTO.getStaffId()); - projectFromDTO.setPageNo(1); - projectFromDTO.setPageSize(10); - Result> pendResult = govProjectOpenFeignClient.getPendProjectList(projectFromDTO); - if (!pendResult.success()) { - throw new RenException(pendResult.getCode(), pendResult.getMsg()); - } - if (null != pendResult.getData() && pendResult.getData().size() > NumConstant.ZERO) { - throw new RenException(EpmetErrorCode.EXIT_PEND_PROJECT.getCode()); - } - //3.查询是否有活动未结束 - Result> actInfoResult = epmetHeartOpenFeignClient.getPublishedAct(fromDTO.getStaffId()); - if (!actInfoResult.success()) { - throw new RenException(actInfoResult.getCode(), actInfoResult.getMsg()); - } - if (null != actInfoResult.getData() && actInfoResult.getData().size() > NumConstant.ZERO) { - throw new RenException(EpmetErrorCode.EXIT_PUBLISHED_ACTIVITY.getCode()); - } - - //4.修改人员所属组织 - CustomerStaffAgencyDTO staffAgency = new CustomerStaffAgencyDTO(); - staffAgency.setId(staffAgencyDTO.getId()); - staffAgency.setAgencyId(fromDTO.getAgencyId()); - customerStaffAgencyService.update(staffAgency); - //原来组织总人数减一 - CustomerAgencyDTO oldAgencyDTO = customerAgencyService.get(oldAgency); - oldAgencyDTO.setTotalUser(oldAgencyDTO.getTotalUser() - NumConstant.ONE); - customerAgencyService.update(oldAgencyDTO); - //新组织总人数加一 - CustomerAgencyDTO newAgencyDTO = customerAgencyService.get(fromDTO.getAgencyId()); - newAgencyDTO.setTotalUser(newAgencyDTO.getTotalUser() + NumConstant.ONE); - customerAgencyService.update(newAgencyDTO); - //5.逻辑删除工作人员原组织加入的部门、网格,部门、网格总人数减1 - customerDepartmentService.updateDepartment(fromDTO.getStaffId()); - customerGridService.updateGrid(fromDTO.getStaffId()); - //6.更改工作人员组织角色 - StaffRoleDTO staffRoleDTO = new StaffRoleDTO(); - staffRoleDTO.setOrgId(fromDTO.getAgencyId()); - staffRoleDTO.setStaffId(fromDTO.getStaffId()); - Result result = epmetUserOpenFeignClient.changeRoleOrg(staffRoleDTO); - if (!result.success()) { - throw new RenException(result.getCode(), result.getMsg()); - } - //7.操作记录表新增调动记录 - StaffTransferRecordDTO staffTransferRecordDTO = new StaffTransferRecordDTO(); - staffTransferRecordDTO.setCustomerId(tokenDto.getCustomerId()); - staffTransferRecordDTO.setOperateStaffId(tokenDto.getUserId()); - staffTransferRecordDTO.setOperatedStaffId(fromDTO.getStaffId()); - staffTransferRecordDTO.setOldAgencyId(oldAgency); - staffTransferRecordDTO.setAgencyId(fromDTO.getAgencyId()); - staffTransferRecordDTO.setRemarks(fromDTO.getRemarks()); - staffTransferRecordService.save(staffTransferRecordDTO); - //2021.6.7 添加逻辑-人员调动删除token sun start - //8.清除可能存在的工作人员登陆token - String key = RedisKeys.getCpUserKey("gov", "wxmp", fromDTO.getStaffId()); - redisUtils.delete(key); - //2021.6.7 添加逻辑-人员调动删除token sun end - } - - /** - * 工作人员调动 - * - * @param tokenDto - * @param fromDTO - * @return void - * @author zhaoqifeng - * @date 2020/8/27 16:13 - */ - @Override - public void staffTransferV2(TokenDto tokenDto, StaffTransferV2FormDTO fromDTO) { - if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { - throw new RenException(EpmetErrorCode.CAN_NOT_SELF.getCode()); - } - //1.获取工作人员与机关关系 - CustomerStaffAgencyDTO staffAgencyDTO = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); - String oldAgency = staffAgencyDTO.getAgencyId(); - //2.查询是否有未处理项目 - ProjectListFromDTO projectFromDTO = new ProjectListFromDTO(); - projectFromDTO.setCustomerId(staffAgencyDTO.getCustomerId()); - projectFromDTO.setUserId(fromDTO.getStaffId()); - projectFromDTO.setPageNo(1); - projectFromDTO.setPageSize(10); - Result> pendResult = govProjectOpenFeignClient.getPendProjectList(projectFromDTO); - if (!pendResult.success()) { - throw new RenException(pendResult.getCode(), pendResult.getMsg()); - } - if (null != pendResult.getData() && pendResult.getData().size() > NumConstant.ZERO) { - throw new RenException(EpmetErrorCode.EXIT_PEND_PROJECT.getCode()); - } - //3.查询是否有活动未结束 - Result> actInfoResult = epmetHeartOpenFeignClient.getPublishedAct(fromDTO.getStaffId()); - if (!actInfoResult.success()) { - throw new RenException(actInfoResult.getCode(), actInfoResult.getMsg()); - } - if (null != actInfoResult.getData() && actInfoResult.getData().size() > NumConstant.ZERO) { - throw new RenException(EpmetErrorCode.EXIT_PUBLISHED_ACTIVITY.getCode()); - } - //4.修改人员所属组织 - String agencyId = null; - String orgType = null; - String orgId = null; - if (OrgInfoConstant.AGENCY.equals(fromDTO.getOrgType())) { - agencyId = fromDTO.getOrgId(); - } else if (OrgInfoConstant.DEPT.equals(fromDTO.getOrgType())) { - orgType = fromDTO.getOrgType(); - orgId = fromDTO.getOrgId(); - CustomerDepartmentDTO departmentDTO = customerDepartmentService.get(orgId); - agencyId = departmentDTO.getAgencyId(); - } else { - orgType = fromDTO.getOrgType(); - orgId = fromDTO.getOrgId(); - CustomerGridDTO gridDTO = customerGridService.get(orgId); - agencyId = gridDTO.getPid(); - } - - CustomerStaffAgencyDTO staffAgency = new CustomerStaffAgencyDTO(); - staffAgency.setId(staffAgencyDTO.getId()); - staffAgency.setAgencyId(agencyId); - customerStaffAgencyService.update(staffAgency); - //原来组织总人数减一 - CustomerAgencyDTO oldAgencyDTO = customerAgencyService.get(oldAgency); - oldAgencyDTO.setTotalUser(oldAgencyDTO.getTotalUser() - NumConstant.ONE); - customerAgencyService.update(oldAgencyDTO); - //新组织总人数加一 - CustomerAgencyDTO newAgencyDTO = customerAgencyService.get(agencyId); - newAgencyDTO.setTotalUser(newAgencyDTO.getTotalUser() + NumConstant.ONE); - customerAgencyService.update(newAgencyDTO); - //逻辑删除工作人员原组织加入的部门、网格,部门、网格总人数减1 - customerDepartmentService.updateDepartment(fromDTO.getStaffId()); - customerGridService.updateGrid(fromDTO.getStaffId()); - if (OrgInfoConstant.DEPT.equals(orgType)) { - //添加新的部门关系 - CustomerStaffDepartmentDTO staffDepartmentDTO = new CustomerStaffDepartmentDTO(); - staffDepartmentDTO.setCustomerId(tokenDto.getCustomerId()); - staffDepartmentDTO.setDepartmentId(orgId); - staffDepartmentDTO.setUserId(fromDTO.getStaffId()); - customerStaffDepartmentService.save(staffDepartmentDTO); - //新部门总人数+1 - CustomerDepartmentDTO departmentDTO = customerDepartmentService.get(orgId); - departmentDTO.setTotalUser(departmentDTO.getTotalUser() + NumConstant.ONE); - departmentDTO.setUpdatedBy(null); - departmentDTO.setUpdatedTime(null); - customerDepartmentService.update(departmentDTO); - } - if (OrgInfoConstant.GRID.equals(orgType)) { - //添加新的网格关系 - CustomerStaffGridDTO staffGridDTO = new CustomerStaffGridDTO(); - staffGridDTO.setCustomerId(tokenDto.getCustomerId()); - staffGridDTO.setGridId(orgId); - staffGridDTO.setUserId(fromDTO.getStaffId()); - customerStaffGridService.save(staffGridDTO); - //新网格总人数+1 - CustomerGridDTO gridDTO = customerGridService.get(orgId); - gridDTO.setTotalUser(gridDTO.getTotalUser() + NumConstant.ONE); - gridDTO.setUpdatedBy(null); - gridDTO.setUpdatedTime(null); - customerGridService.update(gridDTO); - } - //6.更改工作人员组织角色 - StaffRoleDTO staffRoleDTO = new StaffRoleDTO(); - staffRoleDTO.setOrgId(agencyId); - staffRoleDTO.setStaffId(fromDTO.getStaffId()); - Result result = epmetUserOpenFeignClient.changeRoleOrg(staffRoleDTO); - if (!result.success()) { - throw new RenException(result.getCode(), result.getMsg()); - } - //7.操作记录表新增调动记录 - //获取工作人员注册组织关系 - StaffOrgRelationDTO staffOrgRelation = staffOrgRelationService.getByStaffId(fromDTO.getStaffId()); - StaffTransferRecordDTO staffTransferRecordDTO = new StaffTransferRecordDTO(); - staffTransferRecordDTO.setCustomerId(tokenDto.getCustomerId()); - staffTransferRecordDTO.setOperateStaffId(tokenDto.getUserId()); - staffTransferRecordDTO.setOperatedStaffId(fromDTO.getStaffId()); - staffTransferRecordDTO.setOldAgencyId(oldAgency); - if (!OrgInfoConstant.AGENCY.equals(staffOrgRelation.getOrgType())) { - staffTransferRecordDTO.setOldOrgType(staffOrgRelation.getOrgType()); - staffTransferRecordDTO.setOldOrgId(staffOrgRelation.getOrgId()); - } - staffTransferRecordDTO.setAgencyId(agencyId); - staffTransferRecordDTO.setOrgType(orgType); - staffTransferRecordDTO.setOrgId(orgId); - staffTransferRecordDTO.setRemarks(fromDTO.getRemarks()); - staffTransferRecordService.save(staffTransferRecordDTO); - //8.更改注册关系 + } + //2021.08.27 zhaoqf end + //2021.9.17 sun 添加工作人员注册组织、类型、id返参 start + List staffIdList = new ArrayList<>(); + staffIdList.add(result.getStaffId()); + List list = staffOrgRelationDao.selelctStaffOrg(staffIdList); + list.forEach(l -> { + if (l.getStaffId().equals(result.getStaffId())) { + result.setOrgId(l.getOrgId()); + result.setOrgName(l.getOrgName()); + result.setOrgType(l.getOrgType()); + } + }); + //2021.9.17 sun 添加工作人员注册组织、类型、id返参 end + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void staffTransfer(TokenDto tokenDto, StaffTransferFormDTO fromDTO) { + if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { + throw new RenException(EpmetErrorCode.CAN_NOT_SELF.getCode()); + } + //1.获取工作人员与机关关系 + CustomerStaffAgencyDTO staffAgencyDTO = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); + String oldAgency = staffAgencyDTO.getAgencyId(); + //2.查询是否有未处理项目 + ProjectListFromDTO projectFromDTO = new ProjectListFromDTO(); + projectFromDTO.setCustomerId(staffAgencyDTO.getCustomerId()); + projectFromDTO.setUserId(fromDTO.getStaffId()); + projectFromDTO.setPageNo(1); + projectFromDTO.setPageSize(10); + Result> pendResult = govProjectOpenFeignClient.getPendProjectList(projectFromDTO); + if (!pendResult.success()) { + throw new RenException(pendResult.getCode(), pendResult.getMsg()); + } + if (null != pendResult.getData() && pendResult.getData().size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.EXIT_PEND_PROJECT.getCode()); + } + //3.查询是否有活动未结束 + Result> actInfoResult = epmetHeartOpenFeignClient.getPublishedAct(fromDTO.getStaffId()); + if (!actInfoResult.success()) { + throw new RenException(actInfoResult.getCode(), actInfoResult.getMsg()); + } + if (null != actInfoResult.getData() && actInfoResult.getData().size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.EXIT_PUBLISHED_ACTIVITY.getCode()); + } + + //4.修改人员所属组织 + CustomerStaffAgencyDTO staffAgency = new CustomerStaffAgencyDTO(); + staffAgency.setId(staffAgencyDTO.getId()); + staffAgency.setAgencyId(fromDTO.getAgencyId()); + customerStaffAgencyService.update(staffAgency); + //原来组织总人数减一 + CustomerAgencyDTO oldAgencyDTO = customerAgencyService.get(oldAgency); + oldAgencyDTO.setTotalUser(oldAgencyDTO.getTotalUser() - NumConstant.ONE); + customerAgencyService.update(oldAgencyDTO); + //新组织总人数加一 + CustomerAgencyDTO newAgencyDTO = customerAgencyService.get(fromDTO.getAgencyId()); + newAgencyDTO.setTotalUser(newAgencyDTO.getTotalUser() + NumConstant.ONE); + customerAgencyService.update(newAgencyDTO); + //5.逻辑删除工作人员原组织加入的部门、网格,部门、网格总人数减1 + customerDepartmentService.updateDepartment(fromDTO.getStaffId()); + customerGridService.updateGrid(fromDTO.getStaffId()); + //6.更改工作人员组织角色 + StaffRoleDTO staffRoleDTO = new StaffRoleDTO(); + staffRoleDTO.setOrgId(fromDTO.getAgencyId()); + staffRoleDTO.setStaffId(fromDTO.getStaffId()); + Result result = epmetUserOpenFeignClient.changeRoleOrg(staffRoleDTO); + if (!result.success()) { + throw new RenException(result.getCode(), result.getMsg()); + } + //7.操作记录表新增调动记录 + StaffTransferRecordDTO staffTransferRecordDTO = new StaffTransferRecordDTO(); + staffTransferRecordDTO.setCustomerId(tokenDto.getCustomerId()); + staffTransferRecordDTO.setOperateStaffId(tokenDto.getUserId()); + staffTransferRecordDTO.setOperatedStaffId(fromDTO.getStaffId()); + staffTransferRecordDTO.setOldAgencyId(oldAgency); + staffTransferRecordDTO.setAgencyId(fromDTO.getAgencyId()); + staffTransferRecordDTO.setRemarks(fromDTO.getRemarks()); + staffTransferRecordService.save(staffTransferRecordDTO); + //2021.6.7 添加逻辑-人员调动删除token sun start + //8.清除可能存在的工作人员登陆token + String key = RedisKeys.getCpUserKey("gov", "wxmp", fromDTO.getStaffId()); + redisUtils.delete(key); + //2021.6.7 添加逻辑-人员调动删除token sun end + } + + /** + * 工作人员调动 + * + * @param tokenDto + * @param fromDTO + * @return void + * @author zhaoqifeng + * @date 2020/8/27 16:13 + */ + @Override + public void staffTransferV2(TokenDto tokenDto, StaffTransferV2FormDTO fromDTO) { + if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { + throw new RenException(EpmetErrorCode.CAN_NOT_SELF.getCode()); + } + //1.获取工作人员与机关关系 + CustomerStaffAgencyDTO staffAgencyDTO = customerStaffAgencyService.getInfoByUserId(fromDTO.getStaffId()); + String oldAgency = staffAgencyDTO.getAgencyId(); + //2.查询是否有未处理项目 + ProjectListFromDTO projectFromDTO = new ProjectListFromDTO(); + projectFromDTO.setCustomerId(staffAgencyDTO.getCustomerId()); + projectFromDTO.setUserId(fromDTO.getStaffId()); + projectFromDTO.setPageNo(1); + projectFromDTO.setPageSize(10); + Result> pendResult = govProjectOpenFeignClient.getPendProjectList(projectFromDTO); + if (!pendResult.success()) { + throw new RenException(pendResult.getCode(), pendResult.getMsg()); + } + if (null != pendResult.getData() && pendResult.getData().size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.EXIT_PEND_PROJECT.getCode()); + } + //3.查询是否有活动未结束 + Result> actInfoResult = epmetHeartOpenFeignClient.getPublishedAct(fromDTO.getStaffId()); + if (!actInfoResult.success()) { + throw new RenException(actInfoResult.getCode(), actInfoResult.getMsg()); + } + if (null != actInfoResult.getData() && actInfoResult.getData().size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.EXIT_PUBLISHED_ACTIVITY.getCode()); + } + //4.修改人员所属组织 + String agencyId = null; + String orgType = null; + String orgId = null; + if (OrgInfoConstant.AGENCY.equals(fromDTO.getOrgType())) { + agencyId = fromDTO.getOrgId(); + } else if (OrgInfoConstant.DEPT.equals(fromDTO.getOrgType())) { + orgType = fromDTO.getOrgType(); + orgId = fromDTO.getOrgId(); + CustomerDepartmentDTO departmentDTO = customerDepartmentService.get(orgId); + agencyId = departmentDTO.getAgencyId(); + } else { + orgType = fromDTO.getOrgType(); + orgId = fromDTO.getOrgId(); + CustomerGridDTO gridDTO = customerGridService.get(orgId); + agencyId = gridDTO.getPid(); + } + + CustomerStaffAgencyDTO staffAgency = new CustomerStaffAgencyDTO(); + staffAgency.setId(staffAgencyDTO.getId()); + staffAgency.setAgencyId(agencyId); + customerStaffAgencyService.update(staffAgency); + //原来组织总人数减一 + CustomerAgencyDTO oldAgencyDTO = customerAgencyService.get(oldAgency); + oldAgencyDTO.setTotalUser(oldAgencyDTO.getTotalUser() - NumConstant.ONE); + customerAgencyService.update(oldAgencyDTO); + //新组织总人数加一 + CustomerAgencyDTO newAgencyDTO = customerAgencyService.get(agencyId); + newAgencyDTO.setTotalUser(newAgencyDTO.getTotalUser() + NumConstant.ONE); + customerAgencyService.update(newAgencyDTO); + //逻辑删除工作人员原组织加入的部门、网格,部门、网格总人数减1 + customerDepartmentService.updateDepartment(fromDTO.getStaffId()); + customerGridService.updateGrid(fromDTO.getStaffId()); + if (OrgInfoConstant.DEPT.equals(orgType)) { + //添加新的部门关系 + CustomerStaffDepartmentDTO staffDepartmentDTO = new CustomerStaffDepartmentDTO(); + staffDepartmentDTO.setCustomerId(tokenDto.getCustomerId()); + staffDepartmentDTO.setDepartmentId(orgId); + staffDepartmentDTO.setUserId(fromDTO.getStaffId()); + customerStaffDepartmentService.save(staffDepartmentDTO); + //新部门总人数+1 + CustomerDepartmentDTO departmentDTO = customerDepartmentService.get(orgId); + departmentDTO.setTotalUser(departmentDTO.getTotalUser() + NumConstant.ONE); + departmentDTO.setUpdatedBy(null); + departmentDTO.setUpdatedTime(null); + customerDepartmentService.update(departmentDTO); + } + if (OrgInfoConstant.GRID.equals(orgType)) { + //添加新的网格关系 + CustomerStaffGridDTO staffGridDTO = new CustomerStaffGridDTO(); + staffGridDTO.setCustomerId(tokenDto.getCustomerId()); + staffGridDTO.setGridId(orgId); + staffGridDTO.setUserId(fromDTO.getStaffId()); + customerStaffGridService.save(staffGridDTO); + //新网格总人数+1 + CustomerGridDTO gridDTO = customerGridService.get(orgId); + gridDTO.setTotalUser(gridDTO.getTotalUser() + NumConstant.ONE); + gridDTO.setUpdatedBy(null); + gridDTO.setUpdatedTime(null); + customerGridService.update(gridDTO); + } + //6.更改工作人员组织角色 + StaffRoleDTO staffRoleDTO = new StaffRoleDTO(); + staffRoleDTO.setOrgId(agencyId); + staffRoleDTO.setStaffId(fromDTO.getStaffId()); + Result result = epmetUserOpenFeignClient.changeRoleOrg(staffRoleDTO); + if (!result.success()) { + throw new RenException(result.getCode(), result.getMsg()); + } + //7.操作记录表新增调动记录 + //获取工作人员注册组织关系 + StaffOrgRelationDTO staffOrgRelation = staffOrgRelationService.getByStaffId(fromDTO.getStaffId()); + StaffTransferRecordDTO staffTransferRecordDTO = new StaffTransferRecordDTO(); + staffTransferRecordDTO.setCustomerId(tokenDto.getCustomerId()); + staffTransferRecordDTO.setOperateStaffId(tokenDto.getUserId()); + staffTransferRecordDTO.setOperatedStaffId(fromDTO.getStaffId()); + staffTransferRecordDTO.setOldAgencyId(oldAgency); + if (!OrgInfoConstant.AGENCY.equals(staffOrgRelation.getOrgType())) { + staffTransferRecordDTO.setOldOrgType(staffOrgRelation.getOrgType()); + staffTransferRecordDTO.setOldOrgId(staffOrgRelation.getOrgId()); + } + staffTransferRecordDTO.setAgencyId(agencyId); + staffTransferRecordDTO.setOrgType(orgType); + staffTransferRecordDTO.setOrgId(orgId); + staffTransferRecordDTO.setRemarks(fromDTO.getRemarks()); + staffTransferRecordService.save(staffTransferRecordDTO); + //8.更改注册关系 CustomerAgencyDTO agencyDTO = customerAgencyService.get(agencyId); staffOrgRelation.setPids(agencyDTO.getPids()); - staffOrgRelation.setOrgId(fromDTO.getOrgId()); - staffOrgRelation.setOrgType(fromDTO.getOrgType()); - staffOrgRelation.setUpdatedBy(null); - staffOrgRelation.setUpdatedTime(null); - staffOrgRelationService.update(staffOrgRelation); - //9..清除可能存在的工作人员登陆token - String key = RedisKeys.getCpUserKey("gov", "wxmp", fromDTO.getStaffId()); - redisUtils.delete(key); - //10 清除工作人员缓存 - CustomerStaffRedis.delStaffInfoFormCache(tokenDto.getCustomerId(), fromDTO.getStaffId()); - } - - /** - * 根据staffId查询用户基本信息 - * @author sun - */ - @Override - public Result staffBasicInfo(StaffBasicInfoFromDTO fromDTO) { - return epmetUserOpenFeignClient.getStaffBasicInfo(fromDTO); - } - - /** - * @Description 查询工作人员名字 - * @Param userId - * @author zxc - * @date 2021/8/4 3:38 下午 - */ + staffOrgRelation.setOrgId(fromDTO.getOrgId()); + staffOrgRelation.setOrgType(fromDTO.getOrgType()); + staffOrgRelation.setUpdatedBy(null); + staffOrgRelation.setUpdatedTime(null); + staffOrgRelationService.update(staffOrgRelation); + //9..清除可能存在的工作人员登陆token + String key = RedisKeys.getCpUserKey("gov", "wxmp", fromDTO.getStaffId()); + redisUtils.delete(key); + //10 清除工作人员缓存 + CustomerStaffRedis.delStaffInfoFormCache(tokenDto.getCustomerId(), fromDTO.getStaffId()); + } + + /** + * 根据staffId查询用户基本信息 + * + * @author sun + */ + @Override + public Result staffBasicInfo(StaffBasicInfoFromDTO fromDTO) { + return epmetUserOpenFeignClient.getStaffBasicInfo(fromDTO); + } + + /** + * @Description 查询工作人员名字 + * @Param userId + * @author zxc + * @date 2021/8/4 3:38 下午 + */ @Override public String staffName(String userId) { - // 查询所属组织名字 - String agencyName = customerStaffAgencyDao.selectStaffBelongAgency(userId); - if (StringUtils.isEmpty(agencyName)){ - throw new RenException("查询工作人员所属组织名称为空"); - } - StaffBasicInfoFromDTO formDTO = new StaffBasicInfoFromDTO(); - formDTO.setStaffId(userId); - Result staffBasicInfo = epmetUserOpenFeignClient.getStaffBasicInfo(formDTO); - if (!staffBasicInfo.success()){ - throw new RenException("查询工作人员姓名失败"); - } - String result = agencyName.concat(staffBasicInfo.getData().getRealName()); - return result; + // 查询所属组织名字 + String agencyName = customerStaffAgencyDao.selectStaffBelongAgency(userId); + if (StringUtils.isEmpty(agencyName)) { + throw new RenException("查询工作人员所属组织名称为空"); + } + StaffBasicInfoFromDTO formDTO = new StaffBasicInfoFromDTO(); + formDTO.setStaffId(userId); + Result staffBasicInfo = epmetUserOpenFeignClient.getStaffBasicInfo(formDTO); + if (!staffBasicInfo.success()) { + throw new RenException("查询工作人员姓名失败"); + } + String result = agencyName.concat(staffBasicInfo.getData().getRealName()); + return result; + } + + /** + * 【通讯录】人员添加v2 + * + * @author sun + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Result addStaffV2(AddStaffV2FromDTO fromDTO) { + //1.根据新增人员类型判断查询机关信息 + OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(fromDTO.getOrgId(), fromDTO.getOrgType()); + if (null == orgDTO) { + logger.warn(String.format("工作人员新增,根据新增人员组织类型未查询到相关组织信息,orgId->%s,orgType->%s", fromDTO.getOrgId(), fromDTO.getOrgType())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据新增人员组织类型未查询到相关组织信息", "组织不存在"); + } + + //2.调用user服务,新增用户信息 + StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(fromDTO, StaffSubmitFromDTO.class); + submitDTO.setAgencyId(orgDTO.getAgencyId()); + Result result = epmetUserFeignClient.addStaff(submitDTO); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getInternalMsg(), result.getMsg()); + } + + //3.人员机关表总人数加一、关系表新增关系数据 + //人员机关关系表 + CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); + customerStaffAgencyEntity.setCustomerId(fromDTO.getCustomerId()); + customerStaffAgencyEntity.setUserId(result.getData().getUserId()); + customerStaffAgencyEntity.setAgencyId(orgDTO.getAgencyId()); + customerStaffAgencyService.insert(customerStaffAgencyEntity); + //机关总人数加一 + CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); + agencyEntity.setId(orgDTO.getAgencyId()); + agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); + customerAgencyService.updateById(agencyEntity); + + //4.部门、网格主表、关系表修改、新增数据 + if ("dept".equals(fromDTO.getOrgType())) { + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(fromDTO.getCustomerId()); + dept.setUserId(result.getData().getUserId()); + dept.setDepartmentId(fromDTO.getOrgId()); + customerStaffDepartmentService.insert(dept); + CustomerDepartmentEntity departmentEntity = new CustomerDepartmentEntity(); + departmentEntity.setId(fromDTO.getOrgId()); + departmentEntity.setTotalUser(orgDTO.getDeptTotalUser() + 1); + customerDepartmentService.updateById(departmentEntity); + } + if ("grid".equals(fromDTO.getOrgType())) { + CustomerStaffGridEntity grid = new CustomerStaffGridEntity(); + grid.setCustomerId(fromDTO.getCustomerId()); + grid.setUserId(result.getData().getUserId()); + grid.setGridId(fromDTO.getOrgId()); + customerStaffGridService.insert(grid); + CustomerGridEntity gridEntity = new CustomerGridEntity(); + gridEntity.setId(fromDTO.getOrgId()); + gridEntity.setTotalUser(orgDTO.getGridTotalUser() + 1); + customerGridService.updateById(gridEntity); + } + + //5.工作人员注册组织关系表新增数据 + StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); + staffOrgRelationEntity.setCustomerId(fromDTO.getCustomerId()); + if ("agency".equals(fromDTO.getOrgType())) { + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); + } else { + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids() + ":") + orgDTO.getAgencyId()); + } + staffOrgRelationEntity.setStaffId(result.getData().getUserId()); + staffOrgRelationEntity.setOrgId(fromDTO.getOrgId()); + staffOrgRelationEntity.setOrgType(fromDTO.getOrgType()); + staffOrgRelationService.insert(staffOrgRelationEntity); + + if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())) { + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), customerStaffAgencyEntity.getUserId(), fromDTO.getCustomerId())); + if (!roleUserAccess.success()) { + throw new EpmetException("save data to gov-role-user failure"); + } + } + //如果是烟台的需要更新 根据手机号+姓名 更新data_sync_user_data置为已创建、记录staffId + // 开发环境默认:45687aa479955f9d06204d415238f7cc + // 测试环境:0c41b272ee9ee95ac6f184ad548a30eb + // 烟台: 1535072605621841922 + if ("1535072605621841922".equals(fromDTO.getCustomerId()) + || "45687aa479955f9d06204d415238f7cc".equals(fromDTO.getCustomerId()) + || "0c41b272ee9ee95ac6f184ad548a30eb".equals(fromDTO.getCustomerId())) { + YtSyncStaffIdFormDTO ytSyncStaffIdFormDTO = ConvertUtils.sourceToTarget(fromDTO, YtSyncStaffIdFormDTO.class); + ytSyncStaffIdFormDTO.setStaffId(result.getData().getUserId()); + ytSyncStaffIdFormDTO.setOperUserId(fromDTO.getCurrentUserId()); + epmetThirdOpenFeignClient.dataSyncUpdateStaff(ytSyncStaffIdFormDTO); + } + //2022.10.18加个返参,借用下StaffDetailResultDTO不再新建dto了 + StaffDetailResultDTO resultDTO = new StaffDetailResultDTO(); + resultDTO.setStaffId(result.getData().getUserId()); + return new Result().ok(resultDTO); } - /** - * 【通讯录】人员添加v2 - * @author sun - */ - @Override - @Transactional(rollbackFor = Exception.class) - public Result addStaffV2(AddStaffV2FromDTO fromDTO) { - //1.根据新增人员类型判断查询机关信息 - OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(fromDTO.getOrgId(), fromDTO.getOrgType()); - if (null == orgDTO) { - logger.warn(String.format("工作人员新增,根据新增人员组织类型未查询到相关组织信息,orgId->%s,orgType->%s", fromDTO.getOrgId(), fromDTO.getOrgType())); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"根据新增人员组织类型未查询到相关组织信息","组织不存在"); - } - - //2.调用user服务,新增用户信息 - StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(fromDTO, StaffSubmitFromDTO.class); - submitDTO.setAgencyId(orgDTO.getAgencyId()); - Result result = epmetUserFeignClient.addStaff(submitDTO); - if (!result.success()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),result.getInternalMsg(),result.getMsg()); - } - - //3.人员机关表总人数加一、关系表新增关系数据 - //人员机关关系表 - CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); - customerStaffAgencyEntity.setCustomerId(fromDTO.getCustomerId()); - customerStaffAgencyEntity.setUserId(result.getData().getUserId()); - customerStaffAgencyEntity.setAgencyId(orgDTO.getAgencyId()); - customerStaffAgencyService.insert(customerStaffAgencyEntity); - //机关总人数加一 - CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); - agencyEntity.setId(orgDTO.getAgencyId()); - agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); - customerAgencyService.updateById(agencyEntity); - - //4.部门、网格主表、关系表修改、新增数据 - if ("dept".equals(fromDTO.getOrgType())) { - CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); - dept.setCustomerId(fromDTO.getCustomerId()); - dept.setUserId(result.getData().getUserId()); - dept.setDepartmentId(fromDTO.getOrgId()); - customerStaffDepartmentService.insert(dept); - CustomerDepartmentEntity departmentEntity = new CustomerDepartmentEntity(); - departmentEntity.setId(fromDTO.getOrgId()); - departmentEntity.setTotalUser(orgDTO.getDeptTotalUser() + 1); - customerDepartmentService.updateById(departmentEntity); - } - if ("grid".equals(fromDTO.getOrgType())) { - CustomerStaffGridEntity grid = new CustomerStaffGridEntity(); - grid.setCustomerId(fromDTO.getCustomerId()); - grid.setUserId(result.getData().getUserId()); - grid.setGridId(fromDTO.getOrgId()); - customerStaffGridService.insert(grid); - CustomerGridEntity gridEntity = new CustomerGridEntity(); - gridEntity.setId(fromDTO.getOrgId()); - gridEntity.setTotalUser(orgDTO.getGridTotalUser() + 1); - customerGridService.updateById(gridEntity); - } - - //5.工作人员注册组织关系表新增数据 - StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); - staffOrgRelationEntity.setCustomerId(fromDTO.getCustomerId()); - if("agency".equals(fromDTO.getOrgType())){ - staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); - }else { - staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids() + ":") + orgDTO.getAgencyId()); - } - staffOrgRelationEntity.setStaffId(result.getData().getUserId()); - staffOrgRelationEntity.setOrgId(fromDTO.getOrgId()); - staffOrgRelationEntity.setOrgType(fromDTO.getOrgType()); - staffOrgRelationService.insert(staffOrgRelationEntity); - - if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())){ - Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), customerStaffAgencyEntity.getUserId(),fromDTO.getCustomerId())); - if (!roleUserAccess.success()){ - throw new EpmetException("save data to gov-role-user failure"); - } - } - //如果是烟台的需要更新 根据手机号+姓名 更新data_sync_user_data置为已创建、记录staffId - // 开发环境默认:45687aa479955f9d06204d415238f7cc - // 测试环境:0c41b272ee9ee95ac6f184ad548a30eb - // 烟台: 1535072605621841922 - if ("1535072605621841922".equals(fromDTO.getCustomerId()) - || "45687aa479955f9d06204d415238f7cc".equals(fromDTO.getCustomerId()) - || "0c41b272ee9ee95ac6f184ad548a30eb".equals(fromDTO.getCustomerId())) { - YtSyncStaffIdFormDTO ytSyncStaffIdFormDTO = ConvertUtils.sourceToTarget(fromDTO,YtSyncStaffIdFormDTO.class); - ytSyncStaffIdFormDTO.setStaffId(result.getData().getUserId()); - ytSyncStaffIdFormDTO.setOperUserId(fromDTO.getCurrentUserId()); - epmetThirdOpenFeignClient.dataSyncUpdateStaff(ytSyncStaffIdFormDTO); - } - //2022.10.18加个返参,借用下StaffDetailResultDTO不再新建dto了 - StaffDetailResultDTO resultDTO=new StaffDetailResultDTO(); - resultDTO.setStaffId(result.getData().getUserId()); - return new Result().ok(resultDTO); - } - - - @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 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 工作人员所属组织 - * @Param tokenDto - * @Return {@link StaffOrgListResultDTO} - * @Author zhaoqifeng - * @Date 2021/9/8 16:57 - */ - @Override - public List staffOrgList(TokenDto tokenDto) { - //redis获取工作人员信息 - CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); - if (null == staffInfoCache) { - return Collections.emptyList(); - } - List list = new ArrayList<>(); - //工作人员所在组织 - StaffOrgListResultDTO agency = new StaffOrgListResultDTO(); - agency.setOrgId(staffInfoCache.getAgencyId()); - agency.setOrgName(staffInfoCache.getAgencyName()); - agency.setOrgType(OrgInfoConstant.AGENCY); - list.add(agency); - //工作人员所在部门 - if(CollectionUtils.isNotEmpty(staffInfoCache.getDeptList())) { - List deptList = staffInfoCache.getDeptList().stream().map(item -> { - StaffOrgListResultDTO dto = new StaffOrgListResultDTO(); - dto.setOrgId(item.getId()); - dto.setOrgName(item.getName()); - dto.setOrgType(OrgInfoConstant.DEPT); - return dto; - }).collect(Collectors.toList()); - list.addAll(deptList); - } - //工作人员所在网格 - if(CollectionUtils.isNotEmpty(staffInfoCache.getGridList())) { - List gridList = staffInfoCache.getGridList().stream().map(item -> { - StaffOrgListResultDTO dto = new StaffOrgListResultDTO(); - dto.setOrgId(item.getId()); - dto.setOrgName(item.getName()); - dto.setOrgType(OrgInfoConstant.GRID); - return dto; - }).collect(Collectors.toList()); - list.addAll(gridList); - } - return list; - } - - @Override - public void execAsyncExcelImport(Path filePath, String importTaskId,String orgType, String orgId) { - - try { - - CustomerStaffImportListener listener = new CustomerStaffImportListener(userRemoteService.getLoginUserDetails().getUserId(), userRemoteService.getLoginUserDetails().getCustomerId(), orgType,orgId,this); - - EasyExcel.read(filePath.toFile(), CustomerStaffImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead(); - - String errorDesFileUrl = null; - - List errorRows = listener.getErrorRows(); - List otherRows = listener.getOtherRows(); - - boolean failed = errorRows.size() > 0; - - // 合并到一起写入 - errorRows.addAll(otherRows); - - // 生成并上传描述文件 - OutputStream os = null; - FileItem fileItem = null; - if (errorRows.size() > 0) { - try { - // 文件生成 - Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("staff", "import", "error_des"); - String timeMillis = String.valueOf(System.currentTimeMillis()); - String fileName = "staff_import_error_".concat(timeMillis).concat(".xlsx"); - - fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile()) - .createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName); - - os = fileItem.getOutputStream(); - - EasyExcel.write(os, CustomerStaffImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows); - // 文件上传oss - Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); - if (errorDesFileUploadResult.success()) { - errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); - } - } finally { - IOUtils.closeQuietly(os); - try { - fileItem.delete(); - } catch (Exception e){ - log.error("【客户信息导入】删除临时描述文件失败:{}", ExceptionUtils.getErrorStackTrace(e)); - } - } - } - - // 完成导入 - Result result = ImportTaskUtils.finishImportTask(importTaskId, - failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS, - errorDesFileUrl, - ""); - - if (!result.success()) { - log.error("【客户信息导入】导入记录状态修改为'finished_success'失败"); - } - } catch (Exception e) { - String errorMsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【客户信息导入】出错:{}", errorMsg); - - Result result = ImportTaskUtils.finishImportTask(importTaskId, ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL, null, "导入失败"); - - if (!result.success()) { - log.error("【客户信息导入】导入记录状态修改为'finished_fail'失败"); - } - } finally { - // 删除临时文件 - if (Files.exists(filePath)) { - try { - Files.delete(filePath); - } catch (IOException e) { - log.error("method exception", e); - } - } - } - } - - /** - * 批量持久化 - * @param addStaffV2FromDTOList - */ - public void exportAdd(List addStaffV2FromDTOList, CustomerStaffImportListener listener) { - - addStaffV2FromDTOList.forEach(fromDTO -> { - - //1.根据新增人员类型判断查询机关信息 - OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(fromDTO.getOrgId(), fromDTO.getOrgType()); - if (null == orgDTO) { - logger.warn(String.format("工作人员新增,根据新增人员组织类型未查询到相关组织信息,orgId->%s,orgType->%s", fromDTO.getOrgId(), fromDTO.getOrgType())); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"根据新增人员组织类型未查询到相关组织信息","组织不存在"); - } - - //2.调用user服务,新增用户信息 - StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(fromDTO, StaffSubmitFromDTO.class); - submitDTO.setAgencyId(orgDTO.getAgencyId()); - Result result = epmetUserFeignClient.addStaff(submitDTO); - if (!result.success()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),result.getInternalMsg(),result.getMsg()); - } - - //3.人员机关表总人数加一、关系表新增关系数据 - //人员机关关系表 - CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); - customerStaffAgencyEntity.setCustomerId(fromDTO.getCustomerId()); - customerStaffAgencyEntity.setUserId(result.getData().getUserId()); - customerStaffAgencyEntity.setAgencyId(orgDTO.getAgencyId()); - customerStaffAgencyService.insert(customerStaffAgencyEntity); - //机关总人数加一 - CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); - agencyEntity.setId(orgDTO.getAgencyId()); - agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); - customerAgencyService.updateById(agencyEntity); - - //4.部门、网格主表、关系表修改、新增数据 - if ("dept".equals(fromDTO.getOrgType())) { - CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); - dept.setCustomerId(fromDTO.getCustomerId()); - dept.setUserId(result.getData().getUserId()); - dept.setDepartmentId(fromDTO.getOrgId()); - customerStaffDepartmentService.insert(dept); - CustomerDepartmentEntity departmentEntity = new CustomerDepartmentEntity(); - departmentEntity.setId(fromDTO.getOrgId()); - departmentEntity.setTotalUser(orgDTO.getDeptTotalUser() + 1); - customerDepartmentService.updateById(departmentEntity); - } - if ("grid".equals(fromDTO.getOrgType())) { - CustomerStaffGridEntity grid = new CustomerStaffGridEntity(); - grid.setCustomerId(fromDTO.getCustomerId()); - grid.setUserId(result.getData().getUserId()); - grid.setGridId(fromDTO.getOrgId()); - customerStaffGridService.insert(grid); - CustomerGridEntity gridEntity = new CustomerGridEntity(); - gridEntity.setId(fromDTO.getOrgId()); - gridEntity.setTotalUser(orgDTO.getGridTotalUser() + 1); - customerGridService.updateById(gridEntity); - } - - //5.工作人员注册组织关系表新增数据 - StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); - staffOrgRelationEntity.setCustomerId(fromDTO.getCustomerId()); - if("agency".equals(fromDTO.getOrgType())){ - staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); - }else { - staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids() + ":") + orgDTO.getAgencyId()); - } - staffOrgRelationEntity.setStaffId(result.getData().getUserId()); - staffOrgRelationEntity.setOrgId(fromDTO.getOrgId()); - staffOrgRelationEntity.setOrgType(fromDTO.getOrgType()); - staffOrgRelationService.insert(staffOrgRelationEntity); - - if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())){ - Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), customerStaffAgencyEntity.getUserId(),fromDTO.getCustomerId())); - if (!roleUserAccess.success()){ - throw new EpmetException("save data to gov-role-user failure"); - } - } - //如果是烟台的需要更新 根据手机号+姓名 更新data_sync_user_data置为已创建、记录staffId - // 开发环境默认:45687aa479955f9d06204d415238f7cc - // 测试环境:0c41b272ee9ee95ac6f184ad548a30eb - // 烟台: 1535072605621841922 - if ("1535072605621841922".equals(fromDTO.getCustomerId()) - || "45687aa479955f9d06204d415238f7cc".equals(fromDTO.getCustomerId()) - || "0c41b272ee9ee95ac6f184ad548a30eb".equals(fromDTO.getCustomerId())) { - YtSyncStaffIdFormDTO ytSyncStaffIdFormDTO = ConvertUtils.sourceToTarget(fromDTO,YtSyncStaffIdFormDTO.class); - ytSyncStaffIdFormDTO.setStaffId(result.getData().getUserId()); - ytSyncStaffIdFormDTO.setOperUserId(fromDTO.getCurrentUserId()); - epmetThirdOpenFeignClient.dataSyncUpdateStaff(ytSyncStaffIdFormDTO); - } - - }); - } + + @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 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 工作人员所属组织 + * @Param tokenDto + * @Return {@link StaffOrgListResultDTO} + * @Author zhaoqifeng + * @Date 2021/9/8 16:57 + */ + @Override + public List staffOrgList(TokenDto tokenDto) { + //redis获取工作人员信息 + CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfoCache) { + return Collections.emptyList(); + } + List list = new ArrayList<>(); + //工作人员所在组织 + StaffOrgListResultDTO agency = new StaffOrgListResultDTO(); + agency.setOrgId(staffInfoCache.getAgencyId()); + agency.setOrgName(staffInfoCache.getAgencyName()); + agency.setOrgType(OrgInfoConstant.AGENCY); + list.add(agency); + //工作人员所在部门 + if (CollectionUtils.isNotEmpty(staffInfoCache.getDeptList())) { + List deptList = staffInfoCache.getDeptList().stream().map(item -> { + StaffOrgListResultDTO dto = new StaffOrgListResultDTO(); + dto.setOrgId(item.getId()); + dto.setOrgName(item.getName()); + dto.setOrgType(OrgInfoConstant.DEPT); + return dto; + }).collect(Collectors.toList()); + list.addAll(deptList); + } + //工作人员所在网格 + if (CollectionUtils.isNotEmpty(staffInfoCache.getGridList())) { + List gridList = staffInfoCache.getGridList().stream().map(item -> { + StaffOrgListResultDTO dto = new StaffOrgListResultDTO(); + dto.setOrgId(item.getId()); + dto.setOrgName(item.getName()); + dto.setOrgType(OrgInfoConstant.GRID); + return dto; + }).collect(Collectors.toList()); + list.addAll(gridList); + } + return list; + } + + @Override + public void execAsyncExcelImport(Path filePath, String importTaskId, String orgType, String orgId) { + + try { + + CustomerStaffImportListener listener = new CustomerStaffImportListener(userRemoteService.getLoginUserDetails().getUserId(), userRemoteService.getLoginUserDetails().getCustomerId(), orgType, orgId, this); + + EasyExcel.read(filePath.toFile(), CustomerStaffImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead(); + + String errorDesFileUrl = null; + + List errorRows = listener.getErrorRows(); + List otherRows = listener.getOtherRows(); + + boolean failed = errorRows.size() > 0; + + // 合并到一起写入 + errorRows.addAll(otherRows); + + // 生成并上传描述文件 + OutputStream os = null; + FileItem fileItem = null; + if (errorRows.size() > 0) { + try { + // 文件生成 + Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("staff", "import", "error_des"); + String timeMillis = String.valueOf(System.currentTimeMillis()); + String fileName = "staff_import_error_".concat(timeMillis).concat(".xlsx"); + + fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile()) + .createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName); + + os = fileItem.getOutputStream(); + + EasyExcel.write(os, CustomerStaffImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows); + // 文件上传oss + Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + if (errorDesFileUploadResult.success()) { + errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); + } + } finally { + IOUtils.closeQuietly(os); + try { + fileItem.delete(); + } catch (Exception e) { + log.error("【客户信息导入】删除临时描述文件失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + } + + // 完成导入 + Result result = ImportTaskUtils.finishImportTask(importTaskId, + failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS, + errorDesFileUrl, + ""); + + if (!result.success()) { + log.error("【客户信息导入】导入记录状态修改为'finished_success'失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【客户信息导入】出错:{}", errorMsg); + + Result result = ImportTaskUtils.finishImportTask(importTaskId, ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL, null, "导入失败"); + + if (!result.success()) { + log.error("【客户信息导入】导入记录状态修改为'finished_fail'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + log.error("method exception", e); + } + } + } + } + + /** + * 批量持久化 + * + * @param addStaffV2FromDTOList + */ + public void exportAdd(List addStaffV2FromDTOList, CustomerStaffImportListener listener) { + + addStaffV2FromDTOList.forEach(fromDTO -> { + + //1.根据新增人员类型判断查询机关信息 + OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(fromDTO.getOrgId(), fromDTO.getOrgType()); + if (null == orgDTO) { + logger.warn(String.format("工作人员新增,根据新增人员组织类型未查询到相关组织信息,orgId->%s,orgType->%s", fromDTO.getOrgId(), fromDTO.getOrgType())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据新增人员组织类型未查询到相关组织信息", "组织不存在"); + } + + //2.调用user服务,新增用户信息 + StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(fromDTO, StaffSubmitFromDTO.class); + submitDTO.setAgencyId(orgDTO.getAgencyId()); + Result result = epmetUserFeignClient.addStaff(submitDTO); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getInternalMsg(), result.getMsg()); + } + + //3.人员机关表总人数加一、关系表新增关系数据 + //人员机关关系表 + CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); + customerStaffAgencyEntity.setCustomerId(fromDTO.getCustomerId()); + customerStaffAgencyEntity.setUserId(result.getData().getUserId()); + customerStaffAgencyEntity.setAgencyId(orgDTO.getAgencyId()); + customerStaffAgencyService.insert(customerStaffAgencyEntity); + //机关总人数加一 + CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); + agencyEntity.setId(orgDTO.getAgencyId()); + agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); + customerAgencyService.updateById(agencyEntity); + + //4.部门、网格主表、关系表修改、新增数据 + if ("dept".equals(fromDTO.getOrgType())) { + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(fromDTO.getCustomerId()); + dept.setUserId(result.getData().getUserId()); + dept.setDepartmentId(fromDTO.getOrgId()); + customerStaffDepartmentService.insert(dept); + CustomerDepartmentEntity departmentEntity = new CustomerDepartmentEntity(); + departmentEntity.setId(fromDTO.getOrgId()); + departmentEntity.setTotalUser(orgDTO.getDeptTotalUser() + 1); + customerDepartmentService.updateById(departmentEntity); + } + if ("grid".equals(fromDTO.getOrgType())) { + CustomerStaffGridEntity grid = new CustomerStaffGridEntity(); + grid.setCustomerId(fromDTO.getCustomerId()); + grid.setUserId(result.getData().getUserId()); + grid.setGridId(fromDTO.getOrgId()); + customerStaffGridService.insert(grid); + CustomerGridEntity gridEntity = new CustomerGridEntity(); + gridEntity.setId(fromDTO.getOrgId()); + gridEntity.setTotalUser(orgDTO.getGridTotalUser() + 1); + customerGridService.updateById(gridEntity); + } + + //5.工作人员注册组织关系表新增数据 + StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); + staffOrgRelationEntity.setCustomerId(fromDTO.getCustomerId()); + if ("agency".equals(fromDTO.getOrgType())) { + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); + } else { + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids() + ":") + orgDTO.getAgencyId()); + } + staffOrgRelationEntity.setStaffId(result.getData().getUserId()); + staffOrgRelationEntity.setOrgId(fromDTO.getOrgId()); + staffOrgRelationEntity.setOrgType(fromDTO.getOrgType()); + staffOrgRelationService.insert(staffOrgRelationEntity); + + if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())) { + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), customerStaffAgencyEntity.getUserId(), fromDTO.getCustomerId())); + if (!roleUserAccess.success()) { + throw new EpmetException("save data to gov-role-user failure"); + } + } + //如果是烟台的需要更新 根据手机号+姓名 更新data_sync_user_data置为已创建、记录staffId + // 开发环境默认:45687aa479955f9d06204d415238f7cc + // 测试环境:0c41b272ee9ee95ac6f184ad548a30eb + // 烟台: 1535072605621841922 + if ("1535072605621841922".equals(fromDTO.getCustomerId()) + || "45687aa479955f9d06204d415238f7cc".equals(fromDTO.getCustomerId()) + || "0c41b272ee9ee95ac6f184ad548a30eb".equals(fromDTO.getCustomerId())) { + YtSyncStaffIdFormDTO ytSyncStaffIdFormDTO = ConvertUtils.sourceToTarget(fromDTO, YtSyncStaffIdFormDTO.class); + ytSyncStaffIdFormDTO.setStaffId(result.getData().getUserId()); + ytSyncStaffIdFormDTO.setOperUserId(fromDTO.getCurrentUserId()); + epmetThirdOpenFeignClient.dataSyncUpdateStaff(ytSyncStaffIdFormDTO); + } + + }); + } }