Browse Source

工作人员调动

dev_shibei_match
zhaoqifeng 4 years ago
parent
commit
f6f7bee82e
  1. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/StaffTransferRecordDTO.java
  2. 27
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffTransferV2FormDTO.java
  3. 15
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java
  4. 16
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/StaffTransferRecordEntity.java
  5. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffOrgRelationService.java
  6. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java
  7. 19
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffOrgRelationServiceImpl.java
  8. 144
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/StaffTransferRecordDTO.java

@ -57,12 +57,15 @@ public class StaffTransferRecordDTO implements Serializable {
* 调动前组织Id
*/
private String oldAgencyId;
private String oldOrgType;
private String oldOrgId;
/**
* 调动后组织Id
*/
private String agencyId;
private String orgType;
private String orgId;
/**
* 备注说明
*/

27
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffTransferV2FormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @Author zhaoqifeng
* @Date 2021/8/20 15:26
*/
@NoArgsConstructor
@Data
public class StaffTransferV2FormDTO implements Serializable {
private static final long serialVersionUID = 1217329965082876795L;
@NotBlank(message = "组织ID不能为空")
private String orgId;
@NotBlank(message = "组织类型不能为空")
private String orgType;
@NotBlank(message = "工作人员ID不能为空")
private String staffId;
@NotBlank(message = "备注说明不能为空")
private String remarks;
}

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

@ -145,6 +145,21 @@ public class StaffController {
return new Result();
}
/**
* 工作人员调动V2
*
* @author zhaoqifeng
* @date 2020/8/27 16:12
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("stafftransferv2")
public Result staffTransferV2(@LoginUser TokenDto tokenDto, @RequestBody StaffTransferV2FormDTO formDTO){
staffService.staffTransferV2(tokenDto, formDTO);
return new Result();
}
/**
* 根据staffId查询用户基本信息
* @author sun

16
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/StaffTransferRecordEntity.java

@ -53,15 +53,19 @@ public class StaffTransferRecordEntity extends BaseEpmetEntity {
*/
private String operatedStaffId;
/**
* 调动前组织Id
*/
/**
* 调动前组织Id
*/
private String oldAgencyId;
private String oldOrgType;
private String oldOrgId;
/**
* 调动后组织Id
*/
/**
* 调动后组织Id
*/
private String agencyId;
private String orgType;
private String orgId;
/**
* 备注说明

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffOrgRelationService.java

@ -92,4 +92,13 @@ public interface StaffOrgRelationService extends BaseService<StaffOrgRelationEnt
* @date 2021-08-19
*/
void delete(String[] ids);
/**
* @Description 获取工作人员注册组织关系
* @Param staffId
* @Return {@link StaffOrgRelationDTO}
* @Author zhaoqifeng
* @Date 2021/8/20 16:46
*/
StaffOrgRelationDTO getByStaffId(String staffId);
}

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

@ -100,6 +100,16 @@ public interface StaffService {
*/
void staffTransfer(TokenDto tokenDto, StaffTransferFormDTO fromDTO);
/**
* 工作人员调动
* @author zhaoqifeng
* @date 2020/8/27 16:13
* @param tokenDto
* @param fromDTO
* @return void
*/
void staffTransferV2(TokenDto tokenDto, StaffTransferV2FormDTO fromDTO);
/**
* 根据staffId查询用户基本信息
* @author sun

19
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffOrgRelationServiceImpl.java

@ -17,10 +17,12 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.StaffOrgRelationDao;
@ -97,4 +99,21 @@ public class StaffOrgRelationServiceImpl extends BaseServiceImpl<StaffOrgRelatio
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param staffId
* @Description 获取工作人员注册组织关系
* @Param staffId
* @Return {@link StaffOrgRelationDTO}
* @Author zhaoqifeng
* @Date 2021/8/20 16:46
*/
@Override
public StaffOrgRelationDTO getByStaffId(String staffId) {
LambdaQueryWrapper<StaffOrgRelationEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StaffOrgRelationEntity::getStaffId, staffId);
wrapper.eq(StaffOrgRelationEntity::getDelFlag, NumConstant.ZERO_STR);
return ConvertUtils.sourceToTarget(baseDao.selectOne(wrapper), StaffOrgRelationDTO.class);
}
}

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

@ -1,14 +1,17 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
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.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerAgencyConstant;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dao.CustomerAgencyDao;
import com.epmet.dao.CustomerStaffAgencyDao;
import com.epmet.dto.*;
@ -24,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -68,6 +72,8 @@ public class StaffServiceImpl implements StaffService {
private CustomerStaffGridService customerStaffGridService;
@Autowired
private StaffOrgRelationService staffOrgRelationService;
@Resource
private CustomerStaffRedis customerStaffRedis;
@Override
public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) {
@ -243,6 +249,7 @@ public class StaffServiceImpl implements StaffService {
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());
@ -283,6 +290,143 @@ public class StaffServiceImpl implements StaffService {
//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<List<PendProjectListResultDTO>> 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<List<ActInfoDTO>> 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.更改注册关系
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

Loading…
Cancel
Save