Commit 9c715fd7 authored by huyuchen's avatar huyuchen

huych-入离职登记提交

parent 275a1d30
package com.yifu.cloud.plus.v1.csp.entity;
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
......
package com.yifu.cloud.plus.v1.csp.vo;
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* 确认接受vo
*
* @author huych
* @date 2025-03-12 17:14:19
*/
@Data
public class EmployeeRegistrationPreVo implements Serializable {
/**
* 主键ID
*/
@Schema(description = "主键ID")
private String id;
@Schema(description = "员工类型(字典值,0外包1派遣2代理)")
private String empNature;
@Schema(description = "合同类型(字典值)")
private String contractType;
@Schema(description = "合同业务细分(字典值)")
private String contractSubName;
@Schema(description = "服务事项")
private String serverItem;
@Schema(description = "档案所在地-省")
private String fileProvince;
@Schema(description = "档案所在地-市")
private String fileCity;
@Schema(description = "档案所在地-县")
private String fileTown;
}
package com.yifu.cloud.plus.v1.csp.controller;
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationPreService;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.service.EmployeeRegistrationPreService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
......
package com.yifu.cloud.plus.v1.csp.mapper;
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.csp.service;
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......
package com.yifu.cloud.plus.v1.csp.service.impl;
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
......@@ -9,10 +9,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationPreMapper;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationPreService;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.EmployeeRegistrationPreMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.EmployeeRegistrationPreService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainRegistListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
......@@ -34,6 +34,7 @@ import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 入职待建档表
*
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.EmployeeRegistrationPreMapper">
<resultMap id="employeeRegistrationPreMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre">
<id property="id" column="id"/>
<result property="employeeName" column="employee_name"/>
<result property="empIdcard" column="emp_idcard"/>
<result property="empPhone" column="emp_phone"/>
<result property="position" column="position"/>
<result property="joinLeaveDate" column="join_leave_date"/>
<result property="processStatus" column="process_status"/>
<result property="customerUsername" column="customer_username"/>
<result property="customerUserLoginname" column="customer_user_loginname"/>
<result property="deptName" column="dept_name"/>
<result property="deptNo" column="dept_no"/>
<result property="deptId" column="dept_id"/>
<result property="empNature" column="emp_nature"/>
<result property="contractType" column="contract_type"/>
<result property="contractSubName" column="contract_sub_name"/>
<result property="dataSource" column="data_source"/>
<result property="expectedCollectionTime" column="expected_collection_time"/>
<result property="serverItem" column="server_item"/>
<result property="fileProvince" column="file_province"/>
<result property="fileCity" column="file_city"/>
<result property="fileTown" column="file_town"/>
<result property="confirmUser" column="confirm_user"/>
<result property="confirmTime" column="confirm_time"/>
<result property="createBy" column="create_by"/>
<result property="createName" column="create_name"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="customerUsernameNew" column="customer_username_new"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.employee_name,
a.emp_idcard,
a.emp_phone,
a.position,
a.join_leave_date,
a.process_status,
a.customer_username,
a.customer_user_loginname,
a.dept_name,
a.dept_no,
a.dept_id,
a.emp_nature,
a.contract_type,
a.data_source,
a.expected_collection_time,
a.server_item,
a.file_province,
a.file_city,
a.file_town,
a.confirm_user,
a.confirm_time,
a.create_by,
a.create_name,
a.create_time,
a.update_by,
a.update_time,
a.contract_sub_name,
a.customer_username_new
</sql>
<sql id="employeeRegistrationPre_where">
<if test="employeeRegistrationPre != null">
<if test="employeeRegistrationPre.id != null and employeeRegistrationPre.id.trim() != ''">
AND a.id = #{employeeRegistrationPre.id}
</if>
<if test="employeeRegistrationPre.employeeName != null and employeeRegistrationPre.employeeName.trim() != ''">
AND a.employee_name like CONCAT('%',#{employeeRegistrationPre.employeeName},'%')
</if>
<if test="employeeRegistrationPre.empIdcard != null and employeeRegistrationPre.empIdcard.trim() != ''">
AND a.emp_idcard like CONCAT('%',#{employeeRegistrationPre.empIdcard},'%')
</if>
<if test="employeeRegistrationPre.empPhone != null and employeeRegistrationPre.empPhone.trim() != ''">
AND a.emp_phone = #{employeeRegistrationPre.empPhone}
</if>
<if test="employeeRegistrationPre.position != null and employeeRegistrationPre.position.trim() != ''">
AND a.position = #{employeeRegistrationPre.position}
</if>
<if test="employeeRegistrationPre.joinLeaveDate != null">
AND a.join_leave_date = #{employeeRegistrationPre.joinLeaveDate}
</if>
<if test="employeeRegistrationPre.processStatus != null and employeeRegistrationPre.processStatus.trim() != ''">
AND a.process_status in
<foreach item="item" index="index" collection="employeeRegistrationPre.statusList" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="employeeRegistrationPre.customerUsernameNew != null and employeeRegistrationPre.customerUsernameNew.trim() != ''">
AND a.customer_username_new = #{employeeRegistrationPre.customerUsernameNew}
</if>
<if test="employeeRegistrationPre.customerUserLoginname != null and employeeRegistrationPre.customerUserLoginname.trim() != ''">
AND a.customer_user_loginname = #{employeeRegistrationPre.customerUserLoginname}
</if>
<if test="employeeRegistrationPre.deptName != null and employeeRegistrationPre.deptName.trim() != ''">
AND a.dept_name like CONCAT('%',#{employeeRegistrationPre.deptName},'%')
</if>
<if test="employeeRegistrationPre.deptNo != null and employeeRegistrationPre.deptNo.trim() != ''">
AND a.dept_no = #{employeeRegistrationPre.deptNo}
</if>
<if test="employeeRegistrationPre.deptId != null and employeeRegistrationPre.deptId.trim() != ''">
AND a.dept_id = #{employeeRegistrationPre.deptId}
</if>
<if test="employeeRegistrationPre.empNature != null and employeeRegistrationPre.empNature.trim() != ''">
AND a.emp_nature = #{employeeRegistrationPre.empNature}
</if>
<if test="employeeRegistrationPre.contractType != null and employeeRegistrationPre.contractType.trim() != ''">
AND a.contract_type = #{employeeRegistrationPre.contractType}
</if>
<if test="employeeRegistrationPre.dataSource != null and employeeRegistrationPre.dataSource.trim() != ''">
AND a.data_source = #{employeeRegistrationPre.dataSource}
</if>
<if test="employeeRegistrationPre.expectedCollectionTime != null">
AND a.expected_collection_time = #{employeeRegistrationPre.expectedCollectionTime}
</if>
<if test="employeeRegistrationPre.serverItem != null and employeeRegistrationPre.serverItem.trim() != ''">
AND a.server_item = #{employeeRegistrationPre.serverItem}
</if>
<if test="employeeRegistrationPre.fileProvince != null">
AND a.file_province = #{employeeRegistrationPre.fileProvince}
</if>
<if test="employeeRegistrationPre.fileCity != null">
AND a.file_city = #{employeeRegistrationPre.fileCity}
</if>
<if test="employeeRegistrationPre.fileTown != null">
AND a.file_town = #{employeeRegistrationPre.fileTown}
</if>
<if test="employeeRegistrationPre.confirmUser != null and employeeRegistrationPre.confirmUser.trim() != ''">
AND a.confirm_user = #{employeeRegistrationPre.confirmUser}
</if>
<if test="employeeRegistrationPre.confirmTime != null">
AND a.confirm_time = #{employeeRegistrationPre.confirmTime}
</if>
<if test="employeeRegistrationPre.createBy != null and employeeRegistrationPre.createBy.trim() != ''">
AND a.create_by = #{employeeRegistrationPre.createBy}
</if>
<if test="employeeRegistrationPre.createName != null and employeeRegistrationPre.createName.trim() != ''">
AND a.create_name = #{employeeRegistrationPre.createName}
</if>
<if test="employeeRegistrationPre.createTime != null">
AND a.create_time = #{employeeRegistrationPre.createTime}
</if>
<if test="employeeRegistrationPre.updateBy != null and employeeRegistrationPre.updateBy.trim() != ''">
AND a.update_by = #{employeeRegistrationPre.updateBy}
</if>
<if test="employeeRegistrationPre.updateTime != null">
AND a.update_time = #{employeeRegistrationPre.updateTime}
</if>
</if>
</sql>
<!--employeeRegistrationPre简单分页查询-->
<select id="getEmployeeRegistrationPrePage" resultMap="employeeRegistrationPreMap">
SELECT
<include refid="Base_Column_List"/>
FROM employee_registration_pre a
<where>
1=1
<include refid="employeeRegistrationPre_where"/>
</where>
</select>
</mapper>
......@@ -56,7 +56,7 @@ public class EmployeeRegistration extends BaseEntity {
@Schema(description = "入/离职日期")
private Date joinLeaveDate;
@Schema(description = "处理状态,0已接收,1未处理,2已处理")
@Schema(description = "处理状态,0已接收,1未处理,2已处理,3拒绝入职")
private String processStatus;
@Schema(description = "登记人")
......
......@@ -6,6 +6,7 @@ import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationService;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
......@@ -216,4 +217,29 @@ public class EmployeeRegistrationController {
public void hrConfirmExport(HttpServletResponse response, @RequestBody EmployeeRegistrationSearchVo searchVo) {
employeeRegistrationService.hrConfirmExport(response, searchVo);
}
/**
* 入职待确认表 确认接收
*
* @author huych
* @date 2025-03-13 16:55:32
**/
@Operation(description = "入职待确认表确认接收")
@PostMapping("/confirmReceive")
public R confirmReceive(@RequestBody EmployeeRegistrationPreVo preVo) {
return employeeRegistrationService.confirmReceive(preVo);
}
/**
* 修改入离职登记表
*
* @param employeeRegistration 入离职登记表
* @return R
*/
@Operation(summary = "修改入离职登记表")
@SysLog("修改入离职登记表")
@PostMapping("/updatePreById")
public R updatePreById(@RequestBody EmployeeRegistration employeeRegistration) {
return employeeRegistrationService.updatePreRegist(employeeRegistration);
}
}
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -91,6 +92,20 @@ public interface EmployeeRegistrationService extends IService<EmployeeRegistrati
*/
void hrConfirmExport(HttpServletResponse response, EmployeeRegistrationSearchVo searchVo);
/**
* 入职待确认表确认接收
* @param preVo 入离职登记
* @return
*/
R confirmReceive(EmployeeRegistrationPreVo preVo);
/**
* 单个更新
* @param registration 入离职登记
* @return
*/
R updatePreRegist(EmployeeRegistration registration);
/**
* @param searchCspVo 身份证 与 类型
* @Description: 获取已接收的入离职申请,同步所属部门到项目档案里
......
......@@ -22,11 +22,9 @@ import com.yifu.cloud.plus.v1.csp.service.TOperationLogService;
import com.yifu.cloud.plus.v1.csp.vo.*;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpProjectStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainRegistListVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -409,6 +407,42 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
/**
* 入职待确认表确认接收
*
* @param preVo 确认接受vo
* @return
*/
@Override
public R confirmReceive(EmployeeRegistrationPreVo preVo) {
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(preVo)) {
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
EmployeeRegistration registration = baseMapper.selectById(preVo.getId());
if (Common.isEmpty(registration) || (Common.isNotNull(registration) &&
!CommonConstants.ONE_STRING.equals(registration.getProcessStatus()))) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
EmployeeRegistrationPre registrationPre = new EmployeeRegistrationPre();
initRegistPreInfo(registrationPre,registration,preVo);
//点击“接收确认”的时候,监测到该人员该项目下已有在项的档案时,再次提醒:该人员已在项,
//状态将更新成“已处理”;处理记录中,针对此情况,记录真实的进项时间,备注:先于登记入项
EmpProjectStatusVo vo = new EmpProjectStatusVo();
vo.setEmpIdcard(registration.getEmpIdcard());
vo.setDeptNo(registration.getDeptNo());
EmpProjectStatusVo exit = getEmpProjectStatus(vo);
if (Common.isNotNull(exit)) {
return R.ok(exit);
}
registration.setProcessStatus(CommonConstants.ZERO_STRING);
baseMapper.updateById(registration);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING, RegistConstants.CONFIRM_SUBMIT, LocalDateTime.now(),
user.getNickname(), null);
//生成档案待建档数据
return R.ok();
}
public R registAdd(EmployeeRegistration registration) {
//提交校验内容:
//1、身份证号位数、手机号码位数及格式,就职岗位下拉选择“内勤、揽投员、其他”
......@@ -477,6 +511,30 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok();
}
@Override
public R updatePreRegist(EmployeeRegistration registration) {
YifuUser user = SecurityUtils.getUser();
EmployeeRegistration registrationNow = baseMapper.selectById(registration.getId());
if (Common.isEmpty(registrationNow) || !CommonConstants.ONE_STRING.equals(registrationNow.getProcessStatus())) {
return R.failed(RegistConstants.NO_DATA_TO_HANDLE);
}
registrationNow.setProcessStatus(CommonConstants.TWO_STRING);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING, RegistConstants.CONFIRM_SUBMIT, LocalDateTime.now(),
user.getNickname(), null);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING, RegistConstants.MESSAGE_FINISH, registration.getProjectCreateTime(),
user.getNickname(), CommonConstants.ONE_STRING.equals(registrationNow.getFeedbackType())
? RegistConstants.BEFORE_IN_PROJECT : RegistConstants.BEFORE_OUT_PROJECT);
SysCspDeptVo vo = new SysCspDeptVo();
if (CommonConstants.ONE_STRING.equals(registrationNow.getFeedbackType())) {
vo.setDepartName(registrationNow.getEmpDeptname());
vo.setDepartId(Long.valueOf(registrationNow.getEmpDeptid()));
}
vo.setProjectId(registration.getEmpProjectId());
archivesDaprUtil.saveOrDeleteDeptRelation(vo);
baseMapper.updateById(registrationNow);
return R.ok();
}
//单个新增、导入校验
private String registCheck(EmployeeRegistration registration) {
//定义判别用户身份证号的正则表达式(要么是15位,要么是18位,最后一位可以为字母)
......@@ -739,4 +797,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
return false;
}
//数据初始化
private void initRegistPreInfo(EmployeeRegistrationPre registrationPre,EmployeeRegistration registration,EmployeeRegistrationPreVo preVo) {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment