|
|
@@ -8,7 +8,9 @@ import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
|
|
|
import com.wx.blink.backend.domain.dto.BlinkInterviewEvaluationDTO;
|
|
|
import com.wx.blink.backend.domain.qry.BlinkEmployeeOnboardingQry;
|
|
|
import com.wx.blink.backend.objectmapper.BlinkEmployeeOnboardingMapper;
|
|
|
+import com.wx.blink.backend.repository.BlinkChargeProjectRepository;
|
|
|
import com.wx.blink.backend.repository.BlinkEmployeeOnboardingRepository;
|
|
|
+import com.wx.blink.backend.repository.BlinkInterviewEvaluationRepository;
|
|
|
import com.wx.blink.backend.service.IBlinkChargeProjectService;
|
|
|
import com.wx.blink.backend.service.IBlinkEmployeeOnboardingService;
|
|
|
import com.wx.blink.backend.service.IBlinkInterviewEvaluationService;
|
|
|
@@ -39,16 +41,20 @@ public class BlinkEmployeeOnboardingServiceImpl extends ServiceImpl<BlinkEmploye
|
|
|
private IBlinkInterviewEvaluationService evaluationService;
|
|
|
@Resource
|
|
|
private IBlinkChargeProjectService chargeProjectService;
|
|
|
+ @Resource
|
|
|
+ private BlinkInterviewEvaluationRepository evaluationRepository;
|
|
|
+ @Resource
|
|
|
+ private BlinkChargeProjectRepository projectRepository;
|
|
|
|
|
|
/**
|
|
|
- * 新增员工
|
|
|
+ * 新增员工-web端
|
|
|
*
|
|
|
* @param dto
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public ResponseDTO<String> supportsEmployeeOnboardingCreate(BlinkEmployeeOnboardingDTO dto) {
|
|
|
+ public ResponseDTO<String> supportsEmployeeOnboardingCreateWeb(BlinkEmployeeOnboardingDTO dto) {
|
|
|
// 验证入职员工是否重复
|
|
|
BlinkEmployeeOnboardingDO onboardingDO = repository.queryByName(dto.getName(), null, Boolean.FALSE);
|
|
|
if (Objects.nonNull(onboardingDO)) {
|
|
|
@@ -80,6 +86,32 @@ public class BlinkEmployeeOnboardingServiceImpl extends ServiceImpl<BlinkEmploye
|
|
|
return ResponseDTO.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增员工-移动端
|
|
|
+ *
|
|
|
+ * @param dto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public ResponseDTO<String> supportsEmployeeOnboardingCreate(BlinkEmployeeOnboardingDTO dto) {
|
|
|
+ // 验证入职员工是否重复
|
|
|
+ BlinkEmployeeOnboardingDO onboardingDO = repository.queryByName(dto.getName(), null, Boolean.FALSE);
|
|
|
+ if (Objects.nonNull(onboardingDO)) {
|
|
|
+ return ResponseDTO.dataErrorParam("员工名称重复!请检查");
|
|
|
+ }
|
|
|
+ // 生成DO
|
|
|
+ BlinkEmployeeOnboardingDO onboarding = new BlinkEmployeeOnboardingDO();
|
|
|
+ mapper.toBlinkEmployeeOnboardingDO(dto, onboarding);
|
|
|
+ //生成员工编码
|
|
|
+ SerialNumberIdEnum serialNumberIdEnum = BlinkEnumUtil.getEnumByValue(4, SerialNumberIdEnum.class);
|
|
|
+ String employeeCode = serialNumberService.generate(serialNumberIdEnum);
|
|
|
+ onboarding.setEmployeeCode(employeeCode);
|
|
|
+ // 执行新增
|
|
|
+ this.save(onboarding);
|
|
|
+ return ResponseDTO.ok();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 分页查询入职员工列表
|
|
|
*
|
|
|
@@ -107,8 +139,16 @@ public class BlinkEmployeeOnboardingServiceImpl extends ServiceImpl<BlinkEmploye
|
|
|
if (!Objects.nonNull(onboardingDO)) {
|
|
|
return ResponseDTO.userErrorParam("活动不存在!请检查");
|
|
|
}
|
|
|
+ // 查询面试评价
|
|
|
+ List<BlinkInterviewEvaluationDTO> evaluationDTOS = evaluationRepository.supportsInterviewEvaluationQueryList(onboardingDO.getEmployeeCode());
|
|
|
+ // 查询负责项目
|
|
|
+ List<BlinkChargeProjectDTO> chargeProjectDTOS = projectRepository.supportsChargeProjectQueryList(onboardingDO.getEmployeeCode());
|
|
|
+ // 生成dto
|
|
|
BlinkEmployeeOnboardingDTO dto = new BlinkEmployeeOnboardingDTO();
|
|
|
mapper.toBlinkEmployeeOnboardingDTO(onboardingDO, dto);
|
|
|
+ // 设置面试评价和负责项目
|
|
|
+ dto.setEvaluationDTOList(evaluationDTOS);
|
|
|
+ dto.setChargeProjectDTOList(chargeProjectDTOS);
|
|
|
return ResponseDTO.ok(dto);
|
|
|
}
|
|
|
|
|
|
@@ -128,7 +168,63 @@ public class BlinkEmployeeOnboardingServiceImpl extends ServiceImpl<BlinkEmploye
|
|
|
// 生成DO
|
|
|
BlinkEmployeeOnboardingDO onboarding = new BlinkEmployeeOnboardingDO();
|
|
|
mapper.toBlinkEmployeeOnboardingDO(dto, onboarding);
|
|
|
- // 创建人赋值
|
|
|
+ // 获取面试评价集合
|
|
|
+ List<BlinkInterviewEvaluationDTO> evaluationDTOList = dto.getEvaluationDTOList();
|
|
|
+ // 根据employeeCode查询数据库面试评价集合
|
|
|
+ List<BlinkInterviewEvaluationDTO> evaluationDTOS = evaluationRepository.supportsInterviewEvaluationQueryList(onboardingDO.getEmployeeCode());
|
|
|
+ for (BlinkInterviewEvaluationDTO evaluationDTO : evaluationDTOList) {
|
|
|
+ if (evaluationDTO.getId() == null){
|
|
|
+ // 如果id为 null ,执行新增操作
|
|
|
+ evaluationDTO.setEmployeeCode(dto.getEmployeeCode());
|
|
|
+ evaluationService.supportsInterviewEvaluationCreate(evaluationDTO);
|
|
|
+ }else {
|
|
|
+ // 如果id不为 null ,则将最新数据和数据库数据对比,执行修改或删除操作
|
|
|
+ for (BlinkInterviewEvaluationDTO interviewEvaluationDTO : evaluationDTOS) {
|
|
|
+ if (evaluationDTO.getId().equals(interviewEvaluationDTO.getId())){
|
|
|
+ // 最新数据id和数据库数据id一致,则执行修改操作
|
|
|
+ evaluationService.supportsInterviewEvaluationUpdate(evaluationDTO);
|
|
|
+ }else {
|
|
|
+ // 反之则执行删除操作
|
|
|
+ evaluationService.supportsInterviewEvaluationDeleteById(interviewEvaluationDTO.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 校验面试评价数据是否删除(使用数据库数据 - 最新数据 不为空则有数据删除,为空则没有数据删除)
|
|
|
+ evaluationDTOS.removeAll(evaluationDTOList);
|
|
|
+ if (!evaluationDTOS.isEmpty()){
|
|
|
+ for (BlinkInterviewEvaluationDTO evaluationDTO : evaluationDTOS) {
|
|
|
+ evaluationService.supportsInterviewEvaluationDeleteById(evaluationDTO.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取负责项目集合
|
|
|
+ List<BlinkChargeProjectDTO> chargeProjectDTOList = dto.getChargeProjectDTOList();
|
|
|
+ // 根据employeeCode查询数据库负责项目
|
|
|
+ List<BlinkChargeProjectDTO> chargeProjectDTOS = projectRepository.supportsChargeProjectQueryList(onboardingDO.getEmployeeCode());
|
|
|
+ for (BlinkChargeProjectDTO projectDTO : chargeProjectDTOList) {
|
|
|
+ if (projectDTO.getId() == null){
|
|
|
+ // 如果id为 null ,执行新增操作
|
|
|
+ projectDTO.setEmployeeCode(dto.getEmployeeCode());
|
|
|
+ chargeProjectService.supportsChargeProjectCreate(projectDTO);
|
|
|
+ }else {
|
|
|
+ // 如果id不为 null ,则将最新数据和数据库数据对比,执行修改或删除操作
|
|
|
+ for (BlinkChargeProjectDTO chargeProjectDTO : chargeProjectDTOS) {
|
|
|
+ if (projectDTO.getId().equals(chargeProjectDTO.getId())){
|
|
|
+ // 最新数据id和数据库数据id一致,则执行修改操作
|
|
|
+ chargeProjectService.supportsChargeProjectUpdate(projectDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 校验负责项目数据是否删除(使用数据库数据 - 最新数据 不为空则有数据删除,为空则没有数据删除)
|
|
|
+ chargeProjectDTOS.removeAll(chargeProjectDTOList);
|
|
|
+ if (!chargeProjectDTOS.isEmpty()){
|
|
|
+ for (BlinkChargeProjectDTO chargeProjectDTO : chargeProjectDTOS) {
|
|
|
+ chargeProjectService.supportsChargeProjectDeleteById(chargeProjectDTO.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 修改人赋值
|
|
|
BlinkEntityUtil.setUpdatedInfo(onboarding);
|
|
|
// 执行新增
|
|
|
this.updateById(onboarding);
|