Commit 4378d128 authored by fangxinjiang's avatar fangxinjiang

测试环境校验服务

parent e1eaf909
......@@ -94,7 +94,7 @@ public class TEmployeeContractInfo extends BaseEntity {
@Schema(description = "合同类型", name = "contractName")
private String contractName;
/**
* 签订期限employee_contract_type
* 签订期限e
* 0 已完成一定工作任务为期限
* 1 固定期限
* 2 无固定期限
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import java.util.List;
/**
* @Author fxj
* @Date 2022/7/19
* @Description 派单新增档案|项目档案|员工合同
* @Version 1.0
*/
public class DispatchAddVo {
/**
* 员工档案
**/
private List<EmpAddDispatchVo> empAdds;
/**
* 员工合同
**/
private List<EmpContractDispatchVo> contracts;
/**
* 员工项目档案
**/
private List<EmpProjectDispatchVo> projects;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author fxj
* @Date 2022/7/18
* @Description
* @Version 1.0
*/
@Data
public class DispatchCheckVo implements Serializable {
private List<String> idCards;
private List<String> codes;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
/**
* @Author fxj
* @Date 2022/7/18
* @Description 派单新增档案
* @Version 1.0
*/
@Data
public class DispatchEmpVo implements Serializable {
/*******************对应项目编码档案&项目档案相关信息*************************/
/**
* 主键
*/
@Schema(description = "主键")
private String id;
@ExcelProperty(value = "员工主码")
private String empCode;
@Schema(description = "员工类型")
@ExcelAttribute(name = "员工类型", isDataId = true,dataType = ExcelAttributeConstants.EMP_NATRUE)
@ExcelProperty(value = "员工类型")
private String empNatrue;
@Schema(description = "员工姓名")
@ExcelProperty(value = "员工姓名")
private String empName;
/**
* 身份证号码
*/
@Schema(description = "身份证号码")
@NotNull(message = "身份证号码不可为空")
@Size(max = 20, message = "身份证号码不可超过20位")
private String empIdcard;
/**
* 民族
*/
@Schema(description = "民族")
private String empNational;
/**
* 手机号码
*/
@Schema(description = "手机号码")
private String empPhone;
/**
* 身份证-省
*/
@Schema(description = "身份证-省")
private Integer idProvince;
/**
* 身份证-市
*/
@Schema(description = "身份证-市")
private Integer idCity;
/**
* 身份证-县
*/
@Schema(description = "身份证-县")
private Integer idTown;
/**
* 户口性质
*/
@Schema(description = "户口性质")
private String empRegisType;
/**
* 档案-省
*/
@Schema(description = "档案-省")
private Integer fileProvince;
/**
* 档案-市
*/
@Schema(description = "档案-市")
private Integer fileCity;
/**
* 档案-县
*/
@Schema(description = "档案-县")
private Integer fileTown;
/**
* 最高学历(字典值)
*/
@Schema(description = "最高学历(字典值)")
private String hignEducation;
/**
* 档案状态(0正常;1已减档)
*/
@Schema(description = "档案状态(0正常;1已减档)")
private Integer fileStatus;
// 以下是项目档案信息
@TableField(exist = false)
@Schema(description = "单位名称")
private String unitName;
@TableField(exist = false)
@Schema(description = "单位编码")
private String unitNo;
@TableField(exist = false)
@Schema(description = "项目id")
private String deptId;
@TableField(exist = false)
@Schema(description = "项目名称")
private String deptName;
@TableField(exist = false)
@Schema(description = "项目编码")
private String deptNo;
@TableField(exist = false)
@Schema(description = "就职岗位")
private String post;
/*******************对应项目编码合同相关信息*************************/
/**
* 合同类型
*/
@NotBlank(message = "合同类型不能为空")
@Length(max = 32, message = "合同类型不能超过32个字符")
@ExcelAttribute(name = "合同类型", maxLength = 32, needExport = true)
@Schema(description = "合同类型", name = "contractName")
private String contractName;
/**
* 签订期限
* 0 已完成一定工作任务为期限
* 1 固定期限
* 2 无固定期限
*/
@NotBlank(message = "签订期限不能为空")
@Length(max = 32, message = "签订期限不能超过32个字符")
@ExcelAttribute(name = "签订期限", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.EMPLOYEE_CONTRACT_TYPE, needExport = true)
@Schema(description = "签订期限", name = "contractType")
private String contractType;
/**
* 合同起始时间
*/
@NotBlank(message = "合同起始时间不能为空")
@ExcelAttribute(name = "合同起始时间", needExport = true)
@Schema(description = "合同起始时间", name = "contractStart")
private Date contractStart;
/**
* 合同到期时间
*/
@ExcelAttribute(name = "合同到期时间", needExport = true)
@Schema(description = "合同到期时间", name = "contractEnd")
private Date contractEnd;
/**
* 合同年限
*/
@NotBlank(message = "合同年限不能为空")
@ExcelAttribute(name = "合同年限", errorInfo = "合同年限不能为空")
@Schema(description = "合同年限", name = "contractTerm")
private String contractTerm;
/**
* 业务细分
*/
@NotBlank(message = "业务细分不能为空")
@Length(max = 32, message = "业务细分不能超过32个字符")
@ExcelAttribute(name = "业务细分", maxLength = 32, needExport = true)
@Schema(description = "业务细分(存lable)", name = "contractName")
private String contractSubName;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @Author fxj
* @Date 2022/7/19
* @Description
* @Version 1.0
*/
@Data
public class EmpAddDispatchVo extends TEmployeeInfo {
/**
* 员工类型(字典值,0外包1派遣2代理)
*/
@ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE)
@Schema(description = "员工类型(字典值,0外包1派遣2代理)")
private String empNatrue;
/**
* 员工姓名
*/
@Schema(description = "员工姓名")
@NotNull(message = "员工姓名不可为空")
@Size(max = 20, message = "员工姓名不可超过20位")
private String empName;
/**
* 身份证号码
*/
@Schema(description = "身份证号码")
@NotNull(message = "身份证号码不可为空")
@Size(max = 20, message = "身份证号码不可超过20位")
private String empIdcard;
/**
* 民族
*/
@Schema(description = "民族")
private String empNational;
/**
* 手机号码
*/
@Schema(description = "手机号码")
@NotNull(message = "手机号码不可为空")
@Size(max = 11, min = 11, message = "手机号码只能11位")
private String empPhone;
/**
* 身份证-省
*/
@Schema(description = "身份证-省")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer idProvince;
/**
* 身份证-市
*/
@Schema(description = "身份证-市")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer idCity;
/**
* 身份证-县
*/
@Schema(description = "身份证-县")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer idTown;
/**
* 户口性质
*/
@Schema(description = "户口性质")
private String empRegisType;
/**
* 档案-省
*/
@Schema(description = "档案-省")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer fileProvince;
/**
* 档案-市
*/
@Schema(description = "档案-市")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer fileCity;
/**
* 档案-县
*/
@Schema(description = "档案-县")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer fileTown;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 人员档案来源(字典:4人员档案新建、5项目档案新建、1社保/公积金、3商险、2薪酬)
* 1=社保、公积金派单,2=人员发薪,3=商险派单,4=档案新建,5=批量导入
*/
@Schema(description = "人员档案来源(字典:1=社保、公积金派单,2=人员发薪,3=商险派单,4=档案新建,5=批量导入)")
private String fileSource;
/**
* 人员档案状态(0草稿、1已审核)
*/
@Schema(description = "人员档案状态(0草稿、1已审核)")
private Integer status;
/**
* 档案状态(0正常;1已减档)
*/
@Schema(description = "档案状态(0正常;1已减档)")
private Integer fileStatus;
/**
* 现存项目数
*/
@Schema(description = "现存项目数")
private Integer projectNum;
/**
* 员工合同状态(字典)
*/
@Schema(description = "员工合同状态(字典)0初始状态")
private Integer contractStatus;
/**
* 社保状态(字典)
*/
@Schema(description = "社保状态(字典)0初始状态")
private Integer socialStatus;
/**
* 公积金状态(字典)0初始状态
*/
@Schema(description = "公积金状态(字典)0初始状态")
private Integer fundStatus;
/**
* 是否删除 0否/1是
*/
@Schema(description = "是否删除 0否/1是")
private String deleteFlag;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
/**
* @Author fxj
* @Date 2022/7/19
* @Description 派单新增合同
* @Version 1.0
*/
@Data
public class EmpContractDispatchVo implements Serializable {
/**
* 员工主键
*/
@Length(max = 32, message = "员工主键不能超过32个字符")
@ExcelAttribute(name = "员工主键", maxLength = 32)
@Schema(description = "员工主键", name = "empId")
private String empId;
/**
* 员工编码
*/
@NotBlank(message = "员工编码不能为空")
@Length(max = 32, message = "员工编码不能超过32个字符")
@ExcelAttribute(name = "员工编码", isNotEmpty = true, errorInfo = "员工编码不能为空", maxLength = 32)
@Schema(description = "员工编码", name = "empNo")
private String empNo;
/**
* 员工姓名
*/
@Length(max = 20, message = "员工姓名不能超过20个字符")
@ExcelAttribute(name = "员工姓名", isNotEmpty = true, maxLength = 20, needExport = true)
@Schema(description = "员工姓名", name = "empName")
private String empName;
/**
* 员工身份证号
*/
@Length(max = 20, message = "身份证号不能超过20个字符")
@ExcelAttribute(name = "身份证号", isNotEmpty = true, maxLength = 20, isIdCard = true, needExport = true)
@Schema(description = "身份证号", name = "empIdcard")
private String empIdcard;
/**
* 员工类型
*/
@ExcelAttribute(name = "员工类型", errorInfo = "员工类型不能为空", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.PERSONNEL_TYPE)
@TableField(exist = false)
private String empType;
/**
* 项目编码
*/
@Length(max = 20, message = "项目编码不能超过20个字符")
@ExcelAttribute(name = "项目编码", isNotEmpty = true, maxLength = 20, needExport = true)
@Schema(description = "项目编码")
private String deptNo;
/**
* 签订类型(字典)
*/
@NotBlank(message = "签订类型不能为空")
@Length(max = 20, message = "签订类型不能超过20个字符")
@ExcelAttribute(name = "签订类型", isNotEmpty = true, errorInfo = "签订类型不能为空", maxLength = 20, isDataId = true, dataType = ExcelAttributeConstants.EMPLOYEE_SITUATION_TYPE)
@Schema(description = "签订类型(字典)", name = "situation")
private String situation;
/**
* 合同类型
*/
@NotBlank(message = "合同类型不能为空")
@Length(max = 32, message = "合同类型不能超过32个字符")
@ExcelAttribute(name = "合同类型", maxLength = 32, needExport = true)
@Schema(description = "合同类型", name = "contractName")
private String contractName;
/**
* 业务细分
*/
@NotBlank(message = "业务细分不能为空")
@Length(max = 32, message = "业务细分不能超过32个字符")
@ExcelAttribute(name = "业务细分", maxLength = 32, needExport = true)
@Schema(description = "业务细分", name = "contractName")
private String contractSubName;
/**
* 合同甲方
*/
@Length(max = 50, message = "原因说明不能超过200个字符")
@ExcelAttribute(name = "合同甲方", maxLength = 50, needExport = true)
@Schema(description = "合同甲方")
@Size(max = 50, message = "合同甲方不可超过50位")
private String contractParty;
/**
* 签订期限
* 0 已完成一定工作任务为期限
* 1 固定期限
* 2 无固定期限
*/
@NotBlank(message = "签订期限不能为空")
@Length(max = 32, message = "签订期限不能超过32个字符")
@ExcelAttribute(name = "签订期限", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.EMPLOYEE_CONTRACT_TYPE, needExport = true)
@Schema(description = "签订期限", name = "contractType")
private String contractType;
/**
* 合同起始时间
*/
@NotBlank(message = "起始日期不能为空")
@DateTimeFormat("yyyy-MM-dd")
@ExcelAttribute(name = "起始日期", isDate = true)
@Schema(description = "起始日期", name = "contractStart")
private Date contractStart;
/**
* 合同到期时间
*/
@ExcelAttribute(name = "截止日期", needExport = true, isDate = true)
@DateTimeFormat("yyyy-MM-dd")
@Schema(description = "截止日期", name = "contractEnd")
private Date contractEnd;
/**
* 合同岗位
*/
@Length(max = 32, message = "合同岗位不能超过32个字符")
@ExcelAttribute(name = "合同岗位", maxLength = 32, needExport = true)
@Schema(description = "合同岗位", name = "post")
private String post;
/**
* 工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制
*/
@Length(max = 32, message = "工时制不能超过32个字符")
@ExcelAttribute(name = "工时制", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.WORKING_HOURS)
@Schema(description = "工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制", name = "workingHours")
private String workingHours;
/**
* 备注
*/
@Length(max = 200, message = "不能超过200个字符")
@ExcelAttribute(name = "备注", maxLength = 200)
@Schema(description = "备注", name = "remark")
private String remark;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @Author fxj
* @Date 2022/7/19
* @Description 派单新增项目档案
* @Version 1.0
*/
@Data
public class EmpProjectDispatchVo implements Serializable {
/**
* 人员档案主表id
*/
@Schema(description ="人员档案主表id")
@Size(max = 32, message = "人员档案主表id不可超过32位")
private String empId;
/**
* 员工编码
*/
@Schema(description ="员工编码")
@Size(max = 20, message = "员工编码不可超过20位")
private String empNo;
/**
* 员工类型(字典值,0外包1派遣2代理)
*/
@NotNull(message = "员工类型不能为空")
@ExcelAttribute(name = "员工类型",isNotEmpty = true, errorInfo = "员工类型不能为空",maxLength = 2,isDataId = true,dataType = ExcelAttributeConstants.EMP_NATRUE)
@ExcelProperty(value ="员工类型")
private String empNatrue;
/**
* 员工姓名
*/
@NotNull(message = "员工姓名不能为空")
@ExcelAttribute(name = "员工姓名",isNotEmpty = true, errorInfo = "员工姓名不能为空",maxLength = 20)
@ExcelProperty(value ="员工姓名")
private String empName;
/**
* 身份证号码
*/
@NotNull(message = "身份证号不能为空")
@ExcelAttribute(name = "身份证号",isNotEmpty = true, errorInfo = "身份证号不能为空",maxLength = 20)
@ExcelProperty(value ="身份证号")
private String empIdcard;
/**
* 项目编码
*/
@NotNull(message = "项目编码不能为空")
@ExcelProperty(value ="项目编码")
@ExcelAttribute(name = "项目编码",isNotEmpty = true, errorInfo = "项目编码不能为空",maxLength = 20)
private String deptNo;
/**
* 合同类型(字典值)
*/
@NotNull(message = "合同类型不能为空")
@ExcelProperty(value ="合同类型")
@ExcelAttribute(name = "合同类型",isNotEmpty = true, errorInfo = "合同类型不能为空",maxLength = 10,isDataId = true,dataType = ExcelAttributeConstants.PERSONNEL_TYPE)
private String contractType;
/**
* 工时制
*/
@ExcelProperty(value ="工时制")
@ExcelAttribute(name = "工时制",maxLength = 10,isDataId = true,dataType = ExcelAttributeConstants.WORKING_HOURS)
private String workingHours;
/**
* 就职岗位
*/
@NotNull(message = "就职岗位不能为空")
@ExcelProperty(value ="就职岗位")
@ExcelAttribute(name = "就职岗位",isNotEmpty = true, errorInfo = "就职岗位不能为空",maxLength = 20)
private String post;
}
......@@ -107,7 +107,7 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
private String contractParty;
/**
* 签订期限employee_contract_type
* 签订期限
* 0 已完成一定工作任务为期限
* 1 固定期限
* 2 无固定期限
......
......@@ -22,12 +22,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddCompanyInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddCompanyInfoService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -27,14 +27,14 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.net.URLDecoder;
......
......@@ -31,12 +31,12 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
......
......@@ -23,12 +23,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractTemplate;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddContractTemplateService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......
......@@ -23,12 +23,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractTemplateFile;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddContractTemplateFileService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -23,12 +23,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddGlobalFieldInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddGlobalFieldInfoService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -24,12 +24,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddPersonAccount;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddPersonAccountService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
......
......@@ -22,12 +22,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddReqLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddReqLogService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -17,18 +17,17 @@
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fadada.api.exception.ApiException;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddSealInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddSealInfoService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......
......@@ -23,12 +23,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddSealPersonAuth;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddSealPersonAuthService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......
......@@ -23,12 +23,12 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.FddTemplateFieldInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.FddTemplateFieldInfoService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -18,7 +18,6 @@
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TCertRecord;
import com.yifu.cloud.plus.v1.yifu.archives.service.TCertRecordService;
......
......@@ -16,8 +16,6 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpBadRecordService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpBadRecordSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......@@ -36,10 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......
......@@ -26,17 +26,13 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
......@@ -147,7 +143,7 @@ public class TEmpContractAlertController {
* @Date 2022-07-4
**/
@SysLog("定时任务生成合同续签代码信息")
@PostMapping("/inner/taskCreateContractAlert")
@PostMapping("/taskCreateContractAlert")
@Inner
public R taskCreateContractAlert() {
return tEmpContractAlertService.taskCreateContractAlert();
......
......@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpDisabilityInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpDisabilityInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DisabilitySearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......
......@@ -27,14 +27,12 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.SettleDomainUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......
......@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpProfessionalQualification;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpProfessionalQualificationService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.CertifySearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......
......@@ -23,7 +23,6 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpWorkRecording;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpWorkRecordingService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.WorkRecordSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......
......@@ -23,6 +23,8 @@ import com.pig4cloud.plugin.excel.vo.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDataAuth;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchCheckVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchEmpVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ErrorMessageVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
......@@ -33,6 +35,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -49,6 +52,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
/**
......@@ -420,4 +424,18 @@ public class TEmployeeInfoController {
tEmployeeInfoService.exportLeaveEmployee(employeeInfo, response);
}
/**
* 通过身份和编码查询档案 项目档案 合同信息
*
* @Author hgw
* @Date 2022-6-24 09:36:06
**/
@Operation(description = "通过身份和编码查询档案 项目档案 合同信息")
@SysLog("通过身份和编码查询档案 项目档案 合同信息")
@Inner
@GetMapping("/getDispatchEmpVo")
public Map<String, DispatchEmpVo> getDispatchEmpVo(@RequestBody(required = true)DispatchCheckVo checkVo) {
return tEmployeeInfoService.getDispatchEmpVo(checkVo);
}
}
......@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeLogService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......
......@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......@@ -34,7 +33,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
......
......@@ -21,6 +21,8 @@ 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.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchCheckVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchEmpVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpEducationUpdateVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeExportVO;
import org.apache.ibatis.annotations.Mapper;
......@@ -73,4 +75,5 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
**/
String getMaxEmpCode();
List<DispatchEmpVo> getDispatchEmpVo(@Param("checkVo")DispatchCheckVo checkVo);
}
......@@ -22,16 +22,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpEducationUpdateVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeLeaveVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ErrorMessageVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.validation.BindingResult;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
* 人员档案表
......@@ -183,4 +181,5 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/
void exportLeaveEmployee(TEmployeeInfo employeeVo, HttpServletResponse response);
Map<String,DispatchEmpVo> getDispatchEmpVo(DispatchCheckVo checkVo);
}
......@@ -29,8 +29,10 @@ import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
......@@ -61,6 +63,8 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final TEmployeeContractInfoMapper contractInfoMapper;
private final TEmployeeInfoMapper employeeInfoMapper;
@Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
......@@ -207,16 +211,20 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
@Override
public R<Boolean> taskCreateContractAlert() {
baseMapper.truncate();
// 获取合同为在档、员工类型为“派遣”、“外包”、最近一次合同审核通过、过期或离过期还有3个月的数据
// 获取合同为在档、员工类型为“0外包”、“1派遣”、最近一次合同审核通过、过期或离过期还有3个月的数据
List<TEmployeeContractInfo> alertList = contractInfoMapper.selectList(Wrappers.<TEmployeeContractInfo>query()
.lambda().eq(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING)
.isNotNull(TEmployeeContractInfo::getAuditTimeLast)
.eq(TEmployeeContractInfo::getContractType,"1")
.eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING)
.ge(TEmployeeContractInfo::getAuditTimeLast,DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(),CommonConstants.THREE_INT_NEGATE))
.le(TEmployeeContractInfo::getContractEnd,DateUtil.dateIncreaseByDay(
DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(),
CommonConstants.dingleDigitIntArray[3]),CommonConstants.dingleDigitIntArray[1]))
.eq(TEmployeeContractInfo::getDeleteFlag,CommonConstants.ZERO_STRING));
// 获取所有未审核通过的合同数据
List<TEmployeeContractInfo> notAccessList = contractInfoMapper.selectList(Wrappers.<TEmployeeContractInfo>query()
.lambda().ne(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING)
.eq(TEmployeeContractInfo::getContractType,"1")
.eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING)
.eq(TEmployeeContractInfo::getDeleteFlag,CommonConstants.ZERO_STRING));
Map<String,TEmpContractAlert> alertMap = new HashMap<>();
......@@ -246,10 +254,18 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private void extracted(Date nowDate,
TEmployeeContractInfo contract,
Map<String,TEmpContractAlert> alertMap) {
TEmployeeInfo employeeInfo = employeeInfoMapper.selectById(contract.getEmpId());
if (Common.isNotNull(employeeInfo)
&& !CommonConstants.ZERO_STRING.equals(employeeInfo.getEmpNatrue())
&& !CommonConstants.ONE_STRING.equals(employeeInfo.getEmpNatrue())){
return;
}
TEmpContractAlert alert = alertMap.get(contract.getEmpIdcard());
// 存在多个审核通过的数据 用最新的审核通过的合同覆盖已有的
if (Common.isNotNull(alert) &&
alert.getContractEnd().after(contract.getContractEnd())){
if (Common.isNotNull(alert)
&& Common.isNotNull(alert.getContractEnd())
&& Common.isNotNull(contract.getContractEnd())
&& alert.getContractEnd().after(contract.getContractEnd())){
return;
}
alert = new TEmpContractAlert();
......
......@@ -65,6 +65,7 @@ import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* 人员档案表
......@@ -2041,4 +2042,13 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
}
}
@Override
public Map<String,DispatchEmpVo> getDispatchEmpVo(DispatchCheckVo checkVo) {
List<DispatchEmpVo> voList = baseMapper.getDispatchEmpVo(checkVo);
if (Common.isNotNull(voList)){
return voList.stream().collect(Collectors.toMap(k->k.getEmpIdcard(), k->k));
}
return null;
}
}
......@@ -125,9 +125,43 @@
<result property="leaveRemark" column="LEAVE_REMARK"/>
<result property="status" column="STATUS"/>
</resultMap>
<resultMap id="dispatchEmpVoMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchEmpVo">
<id property="id" column="ID"/>
<result property="empCode" column="EMP_CODE"/>
<result property="empNatrue" column="EMP_NATRUE"/>
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="empNational" column="EMP_NATIONAL"/>
<result property="empPhone" column="EMP_PHONE"/>
<result property="idProvince" column="ID_PROVINCE"/>
<result property="idCity" column="ID_CITY"/>
<result property="idTown" column="ID_TOWN"/>
<result property="empRegisType" column="EMP_REGIS_TYPE"/>
<result property="fileProvince" column="FILE_PROVINCE"/>
<result property="fileCity" column="FILE_CITY"/>
<result property="fileTown" column="FILE_TOWN"/>
<result property="hignEducation" column="HIGN_EDUCATION"/>
<result property="fileStatus" column="FILE_STATUS"/>
<result property="contractName" column="CONTRACT_NAME"/>
<result property="contractType" column="CONTRACT_TYPE"/>
<result property="contractStart" column="CONTRACT_START"/>
<result property="contractEnd" column="CONTRACT_END"/>
<result property="contractTerm" column="CONTRACT_TERM"/>
<result property="contractSubName" column="CONTRACT_SUB_NAME"/>
<result property="unitName" column="UNIT_NAME"/>
<result property="unitNo" column="UNIT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="deptName" column="DEPT_NAME"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="post" column="POST"/>
</resultMap>
<sql id="baseParam">
a.ID,
a
.
ID
,
a.EMP_CODE,
a.EMP_NATRUE,
a.EMP_NAME,
......@@ -180,7 +214,10 @@
</sql>
<sql id="Base_Export_List">
a.EMP_CODE,
a
.
EMP_CODE
,
a.EMP_NATRUE,
a.EMP_NAME,
a.EMP_IDCARD,
......@@ -407,31 +444,36 @@
<if test="tEmployeeInfo.empNatureArray != null">
AND a.EMP_NATRUE in
<foreach item="idStr" index="index" collection="tEmployeeInfo.empNatureArray" open="(" separator="," close=")">
<foreach item="idStr" index="index" collection="tEmployeeInfo.empNatureArray" open="(" separator=","
close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeInfo.contractStatusArray != null">
AND a.CONTRACT_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeInfo.contractStatusArray" open="(" separator="," close=")">
<foreach item="idStr" index="index" collection="tEmployeeInfo.contractStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeInfo.insuranceStatusArray != null">
AND a.INSURANCE_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeInfo.insuranceStatusArray" open="(" separator="," close=")">
<foreach item="idStr" index="index" collection="tEmployeeInfo.insuranceStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeInfo.socialStatusArray != null">
AND a.SOCIAL_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeInfo.socialStatusArray" open="(" separator="," close=")">
<foreach item="idStr" index="index" collection="tEmployeeInfo.socialStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
<if test="tEmployeeInfo.fundStatusArray != null">
AND a.FUND_STATUS in
<foreach item="idStr" index="index" collection="tEmployeeInfo.fundStatusArray" open="(" separator="," close=")">
<foreach item="idStr" index="index" collection="tEmployeeInfo.fundStatusArray" open="("
separator="," close=")">
#{idStr}
</foreach>
</if>
......@@ -563,7 +605,7 @@
</trim>
</trim>
where
<foreach collection="list" separator="or" item="i" index="index" >
<foreach collection="list" separator="or" item="i" index="index">
ID=#{i.id}
</foreach>
</update>
......@@ -614,7 +656,70 @@
<!-- 获取当日最大的编码 -->
<select id="getMaxEmpCode" resultType="java.lang.String">
SELECT ifnull(max(right(e.EMP_CODE,5)),0) EMP_CODE FROM t_employee_info e where e.DELETE_FLAG = '0' and e.CREATE_TIME>DATE_FORMAT(now(),'%Y-%m-%d')
SELECT ifnull(max(right (e.EMP_CODE, 5)), 0) EMP_CODE
FROM t_employee_info e
where e.DELETE_FLAG = '0'
and e.CREATE_TIME > DATE_FORMAT(now(), '%Y-%m-%d')
</select>
<select id="getDispatchEmpVo" resultMap="dispatchEmpVoMap">
select
a.ID,a.EMP_CODE,a.EMP_NATRUE,a.EMP_NAME,
a.EMP_IDCARD,a.EMP_NATIONAL,a.EMP_PHONE,a.ID_PROVINCE,a.ID_CITY,
a.ID_TOWN,a.EMP_REGIS_TYPE,a.FILE_PROVINCE,a.FILE_CITY,a.FILE_TOWN,a.HIGN_EDUCATION,a.FILE_STATUS,
b.CONTRACT_NAME,b.CONTRACT_TYPE,
b.CONTRACT_START,b.CONTRACT_END,b.CONTRACT_TERM,b.CONTRACT_SUB_NAME,
c.UNIT_NAME,
c.UNIT_NO,c.DEPT_ID,c.DEPT_NAME,c.DEPT_NO,c.POST
from (
select e.ID,e.EMP_CODE,e.EMP_NATRUE,e.EMP_NAME,e.EMP_IDCARD,e.EMP_NATIONAL,e.EMP_PHONE,e.ID_PROVINCE,e.ID_CITY,
e.ID_TOWN,e.EMP_REGIS_TYPE,e.FILE_PROVINCE,e.FILE_CITY,e.FILE_TOWN,e.HIGN_EDUCATION,e.FILE_STATUS
from t_employee_info e
<if test="checkVo != null">
<if test="checkVo.idCards != null">
AND e.EMP_IDCARD in
<foreach item="idStr" index="index" collection="checkVo.idCards" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</if>
) a
left join (
select p.UNIT_NAME,p.UNIT_NO,p.DEPT_ID,p.DEPT_NAME,p.DEPT_NO,p.POST
from t_employee_project p
<if test="checkVo != null">
<if test="checkVo.codes != null">
AND p.DEPT_NO in
<foreach item="code" index="index" collection="checkVo.codes" open="(" separator="," close=")">
#{code}
</foreach>
</if>
</if>
) c on a.ID=c.EMP_ID
left join
(
<!-- 取值未删除,审核通过,使用中,未作废的合同数据,按结算主体分组,有数据即可不要求最新 -->
SELECT
x.SETTLE_DOMAIN,
x.CONTRACT_NAME,
x.CONTRACT_TYPE,
x.CONTRACT_START,
x.CONTRACT_END,
x.CONTRACT_TERM,
x.CONTRACT_SUB_NAME
FROM
t_employee_contract_info x
WHERE
x.DELETE_FLAG = '0'
AND x.AUDIT_STATUS = '2'
AND x.IS_OBSOLETE = '0'
AND x.IN_USE = '0'
GROUP BY
x.SETTLE_DOMAIN
) b on c.DEPT_ID= b.SETTLE_DOMAIN
</select>
</mapper>
......@@ -41,7 +41,7 @@ public class ExcelAttributeConstants {
public static final String CUSTOMER_BUSSINESS_SUB_TYPE = "customer_business_sub_type";
//员工合同类型
//员工合同类型---签订期限
public static final String EMPLOYEE_CONTRACT_TYPE = "employee_contract_type" ;
//员工合同工时制 1标准工时 2 综合工时 3不定时工时制
......@@ -57,6 +57,7 @@ public class ExcelAttributeConstants {
public static final String IS_ILLNESS = "is_illness";
//社保大病取值方式 0 按比例 1按定值
public static final String VALUE_TYPE = "value_type";
public static final String NATION = "nation";
//家庭信息:与本人关系
public static final String RELATIONSHIP_SELF = "relationship_self";
......@@ -68,8 +69,12 @@ public class ExcelAttributeConstants {
public static final String NATURE ="nature";
//员工档案:婚姻状况
public static final String MARITAL_STATUS = "marital_status";
//员工档案:人员类型
//员工档案:人员类型(合同类型)
public static final String PERSONNEL_TYPE = "personnel_type";
//合同业务细分
public static final String PERSONNEL_TYPE_SUB = "personnel_type_sub";
//员工档案:员工标签
public static final String EMPLOYEE_LABLE = "employee_lable";
//员工档案:政治面貌
......
......@@ -335,4 +335,47 @@ public interface ErrorCodes {
* 派单员工社保相关信息不可为空
*/
String EMP_DISPATCH_SOCIAL_NOT_EMPTY = "emp.dispatch.social.not.empty";
/**
* 派单员工公积金相关信息不可为空
*/
String EMP_DISPATCH_FUND_NOT_EMPTY = "emp.dispatch.fund.not.empty";
/**
* 新增异常:存在派增待审核|待办理|办理成功但未派减办理成功的社保数据
*/
String EMP_DISPATCH_SOCIAL_EXISTING = "emp.dispatch.social.existing";
/**
* 新增异常:存在办理成功未派减的工伤社保数据
*/
String EMP_DISPATCH_SOCIAL_INJURY_EXISTING = "emp.dispatch.social.injury.existing";
/**
* 新增异常:存在办理成功未派减的五险社保数据,禁止新增工伤
*/
String EMP_DISPATCH_SOCIAL_NOT_REDUCE = "emp.dispatch.social.not.reduce";
/**
* 新增异常:存在办理成功未派减的工伤社保数据,禁止新增五险
*/
String EMP_DISPATCH_SOCIAL_INJURY_NOT_REDUCE = "emp.dispatch.social.injury.not.reduce";
/**
* 新增异常:未找到对应社保户名称的可用基数配置信息
*/
String EMP_DISPATCH_SOCIAL_HOLD_NOT_EXIST = "emp.dispatch.social.hold.not.exist";
/**
* 新增异常:未找到对应公积金户名称的可用基数配置信息
*/
String EMP_DISPATCH_FUND_HOLD_NOT_EXIST = "emp.dispatch.fund.hold.not.exist";
/**
* 新增异常:未找到对应公积金比例配置信息
*/
String EMP_DISPATCH_FUND_PERCENT_NOT_EXIST = "emp.dispatch.fund.percent.not.exist";
/**
* 新增异常:单次导入不支持社保公积金分开派单
*/
String EMP_DISPATCH_SOCIAL_EXIST = "emp.dispatch.social.exist";
/**
* 新增异常:必须派单社保或公积金,不支持单派档案
*/
String EMP_DISPATCH_SOCIAL_AND_FUND_NOT_EMPTY = "emp.dispatch.social.and.fund.not.empty";
}
......@@ -113,6 +113,25 @@ emp.dispatch.contract.not.empty=\u6D3E\u5355\u5458\u5DE5\u5408\u540C\u76F8\u5173
emp.dispatch.social.not.empty=\u6D3E\u5355\u5458\u5DE5\u793E\u4FDD\u76F8\u5173\u4FE1\u606F\u4E0D\u53EF\u4E3A\u7A7A
emp.dispatch.fund.not.empty=\u6D3E\u5355\u5458\u5DE5\u516C\u79EF\u91D1\u76F8\u5173\u4FE1\u606F\u4E0D\u53EF\u4E3A\u7A7A
emp.dispatch.social.existing=\u65B0\u589E\u5F02\u5E38\uFF1A\u5B58\u5728\u6D3E\u589E\u5F85\u5BA1\u6838|\u5F85\u529E\u7406|\u529E\u7406\u6210\u529F\u4F46\u672A\u6D3E\u51CF\u529E\u7406\u6210\u529F\u7684\u793E\u4FDD\u6570\u636E
emp.dispatch.social.injury.existing=\u65B0\u589E\u5F02\u5E38\uFF1A\u5B58\u5728\u529E\u7406\u6210\u529F\u672A\u6D3E\u51CF\u7684\u5DE5\u4F24\u793E\u4FDD\u6570\u636E
emp.dispatch.social.not.reduce=\u65B0\u589E\u5F02\u5E38\uFF1A\u5B58\u5728\u529E\u7406\u6210\u529F\u672A\u6D3E\u51CF\u7684\u4E94\u9669\u793E\u4FDD\u6570\u636E\uFF0C\u7981\u6B62\u65B0\u589E\u5DE5\u4F24
emp.dispatch.social.injury.not.reduce=\u65B0\u589E\u5F02\u5E38\uFF1A\u5B58\u5728\u529E\u7406\u6210\u529F\u672A\u6D3E\u51CF\u7684\u5DE5\u4F24\u793E\u4FDD\u6570\u636E\uFF0C\u7981\u6B62\u65B0\u589E\u4E94\u9669
emp.dispatch.social.hold.not.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u5230\u5BF9\u5E94\u793E\u4FDD\u6237\u540D\u79F0\u7684\u53EF\u7528\u57FA\u6570\u914D\u7F6E\u4FE1\u606F
emp.dispatch.fund.hold.not.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u5230\u5BF9\u5E94\u516C\u79EF\u91D1\u6237\u540D\u79F0\u7684\u53EF\u7528\u57FA\u6570\u914D\u7F6E\u4FE1\u606F
emp.dispatch.fund.percent.not.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u5230\u5BF9\u5E94\u516C\u79EF\u91D1\u6BD4\u4F8B\u914D\u7F6E\u4FE1\u606F
emp.dispatch.social.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u5355\u6B21\u5BFC\u5165\u4E0D\u652F\u6301\u793E\u4FDD\u516C\u79EF\u91D1\u5206\u5F00\u6D3E\u5355
emp.dispatch.social.and.fund.not.empty=\u65B0\u589E\u5F02\u5E38\uFF1A\u5FC5\u987B\u6D3E\u5355\u793E\u4FDD\u6216\u516C\u79EF\u91D1\uFF0C\u4E0D\u652F\u6301\u5355\u6D3E\u6863\u6848
......
......@@ -17,6 +17,12 @@
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-upms-api</artifactId>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-archives-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<properties>
......
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchCheckVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchEmpVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -7,9 +9,9 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @Author fxj
......@@ -19,9 +21,16 @@ import java.util.List;
*/
@Log4j2
@EnableConfigurationProperties(DaprArchivesProperties.class)
public class SettleDomainUtil {
public class ArchivesDaprUtil {
@Autowired
private DaprArchivesProperties daprArchivesProperties;
/**
* @Author fxj
* @Description 获取登录用户对应的计算主体权限
* @Date 21:15 2022/7/18
* @Param
* @return
**/
public R<List<String>> getSettleDomainIdsByUserId(){
R<List<String>> res = HttpDaprUtil.invokeMethodGet(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/getSettleDomainIdsByUserId","", Object.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
......@@ -29,4 +38,18 @@ public class SettleDomainUtil {
}
return res;
}
/**
* @Author fxj
* @Description 获取派单校验需要的档案信息
* @Date 21:18 2022/7/18
* @Param
* @return
**/
public R<Map> getDispatchEmpVo(DispatchCheckVo checkVo){
R<Map> res = HttpDaprUtil.invokeMethodGet(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/getDispatchEmpVo","", Map.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取档案派单信息失败!");
}
return res;
}
}
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yifu.cloud.plus.v1.yifu.common.dapr.util.SettleDomainUtil
com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil
......@@ -30,7 +30,7 @@ public class CreateContractAlertTask {
**/
public void createContractAlertTask() {
log.info("------------定时任务生成续签代办提醒-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tempcontractalert/inner/taskCreateContractAlert","", Object.class, SecurityConstants.FROM_IN);
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tempcontractalert/taskCreateContractAlert","", Object.class, SecurityConstants.FROM_IN);
log.info("------------定时任务生成续签代办提醒-定时任务结束------------");
}
}
......@@ -465,4 +465,5 @@ public class SysBaseSetInfo extends BaseEntity {
@TableField(exist = false)
private List<SysPayProportion> fundProList;
}
......@@ -118,21 +118,21 @@ public class TProvidentFund extends BaseEntity {
@ExcelProperty("原ID(数据迁移)" )
private String oldId;
/**
* 审核状态(0待审核/1已审核
* 审核状态(0 未审核 1 审核通过 2审核不通过
*/
@NotBlank(message = "审核状态(0待审核/1已审核)不能为空" )
@Length(max = 32, message = "审核状态(0待审核/1已审核) 不能超过32个字符" )
@ExcelAttribute(name = "审核状态(0待审核/1已审核)", isNotEmpty = true, errorInfo = "审核状态(0待审核/1已审核)不能为空", maxLength = 32)
@Schema(description = "审核状态(0待审核/1已审核)" )
@Schema(description = "审核状态:(0 未审核 1 审核通过 2审核不通过)" )
@ExcelProperty("审核状态(0待审核/1已审核)" )
private String auditStatus;
/**
* 办理状态(0待办理/1已办理)
* 办理状态(0待办理/1已办理2办理失败3已派减
*/
@NotBlank(message = "办理状态(0待办理/1已办理)不能为空" )
@Length(max = 32, message = "办理状态(0待办理/1已办理) 不能超过32个字符" )
@ExcelAttribute(name = "办理状态(0待办理/1已办理)", isNotEmpty = true, errorInfo = "办理状态(0待办理/1已办理)不能为空", maxLength = 32)
@Schema(description = "办理状态(0待办理/1已办理)" )
@Schema(description = "办理状态(0待办理/1已办理2办理失败3已派减)" )
@ExcelProperty("办理状态(0待办理/1已办理)" )
private String handleStatus;
/**
......
......@@ -203,36 +203,34 @@ public class TSocialFundInfo extends BaseEntity {
@ExcelProperty("缴纳地-县" )
private String fundTown;
/**
* 社保派增状态:待审核、待办理、办理成功、部分办理失败、办理失败
* 社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败
*/
@Length(max = 1, message = "社保派增状态:待审核、待办理、办理成功、部分办理失败、办理失败 不能超过1个字符" )
@ExcelAttribute(name = "社保派增状态:待审核、待办理、办理成功、部分办理失败、办理失败", maxLength = 1)
@Schema(description = "社保派增状态:待审核、待办理、办理成功、部分办理失败、办理失败" )
@ExcelProperty("社保派增状态:待审核、待办理、办理成功、部分办理失败、办理失败" )
@Length(max = 1, message = "社保派增状态 不能超过1个字符" )
@ExcelAttribute(name = "社保派增状态", maxLength = 1)
@Schema(description = "社保派增状态:0待审核、1待办理、2办理成功、3部分办理失败、4办理失败" )
@ExcelProperty("社保派增状态" )
private String socialAddStatus;
/**
* 公积金派增状态:待审核、待办理、办理成功、部分办理失败、办理失败
* 公积金派增状态:0待审核、1待办理、2办理成功、3办理失败
*/
@Length(max = 1, message = "公积金派增状态:待审核、待办理、办理成功、部分办理失败、办理失败 不能超过1个字符" )
@ExcelAttribute(name = "公积金派增状态:待审核、待办理、办理成功、部分办理失败、办理失败", maxLength = 1)
@Schema(description = "公积金派增状态:待审核、待办理、办理成功、部分办理失败、办理失败" )
@ExcelProperty("公积金派增状态:待审核、待办理、办理成功、部分办理失败、办理失败" )
@Length(max = 1, message = "公积金派增状态 不能超过1个字符" )
@ExcelAttribute(name = "公积金派增状态", maxLength = 1)
@Schema(description = "公积金派增状态:0待审核、1待办理、2办理成功、3办理失败" )
@ExcelProperty("公积金派增状态" )
private String fundAddStatus;
/**
* “待审核、待办理、办理成功、办理失败”
* 社保派减状态:0待审核、1待办理、2办理成功、3办理失败
*/
@Length(max = 1, message = "“待审核、待办理、办理成功、办理失败” 不能超过1个字符" )
@ExcelAttribute(name = "“待审核、待办理、办理成功、办理失败”", maxLength = 1)
@Schema(description = "“待审核、待办理、办理成功、办理失败”" )
@ExcelProperty("“待审核、待办理、办理成功、办理失败”" )
@ExcelAttribute(name = "社保派减状态", maxLength = 1)
@Schema(description = "社保派减状态:0待审核、1待办理、2办理成功、3办理失败" )
@ExcelProperty("社保派减状态" )
private String socialReduceStatus;
/**
* “待审核、待办理、办理成功、办理失败”
* 公积金派减状态:0待审核、1待办理、2办理成功、3办理失败
*/
@Length(max = 1, message = "“待审核、待办理、办理成功、办理失败” 不能超过1个字符" )
@ExcelAttribute(name = "“待审核、待办理、办理成功、办理失败”", maxLength = 1)
@Schema(description = "“待审核、待办理、办理成功、办理失败”" )
@ExcelProperty("“待审核、待办理、办理成功、办理失败”" )
@ExcelAttribute(name = "公积金派减状态", maxLength = 1)
@Schema(description = "公积金派减状态:0待审核、1待办理、2办理成功、3办理失败" )
@ExcelProperty("公积金派减状态" )
private String fundReduceStatus;
/**
* 社保ID(取值最新社保ID)
......
......@@ -135,13 +135,7 @@ public class TSocialInfo extends BaseEntity {
@Schema(description = "个人失业基数" )
@ExcelProperty("个人失业基数" )
private BigDecimal personalUnemploymentCardinal;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "单位工伤基数" )
@Schema(description = "单位工伤基数" )
@ExcelProperty("单位工伤基数" )
private BigDecimal personalWorkInjuryCardinal;
/**
* 员工ID(数据引用)
*/
......@@ -231,12 +225,12 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("个人失业比例" )
private BigDecimal personalUnemploymentPer;
/**
* 审核状态
* 审核状态 0 未审核 1 审核通过 2审核不通过
*/
@NotBlank(message = "审核状态不能为空" )
@Length(max = 32, message = "审核状态 不能超过32个字符" )
@ExcelAttribute(name = "审核状态", isNotEmpty = true, errorInfo = "审核状态不能为空", maxLength = 32)
@Schema(description = "审核状态" )
@Schema(description = "审核状态:0 未审核 1 审核通过 2审核不通过" )
@ExcelProperty("审核状态" )
private String auditStatus;
/**
......@@ -245,7 +239,7 @@ public class TSocialInfo extends BaseEntity {
@NotBlank(message = "办理状态不能为空" )
@Length(max = 32, message = "办理状态 不能超过32个字符" )
@ExcelAttribute(name = "办理状态", isNotEmpty = true, errorInfo = "办理状态不能为空", maxLength = 32)
@Schema(description = "办理状态" )
@Schema(description = "办理状态:0待办理/1已办理2办理失败3已派减" )
@ExcelProperty("办理状态" )
private String handleStatus;
/**
......@@ -264,7 +258,7 @@ public class TSocialInfo extends BaseEntity {
@ExcelAttribute(name = "社保基数配置ID(数据引用)", maxLength = 32)
@Schema(description = "社保基数配置ID(数据引用)" )
@ExcelProperty("社保基数配置ID(数据引用)" )
private String cardinalIid;
private String cardinalId;
/**
* 原ID(数据迁移)
*/
......@@ -356,7 +350,7 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("单位生育金额" )
private BigDecimal unitBirthMoney;
/**
* 单位大病救助金额
* 单位大病救助金额 (按定时时此值有数据)
*/
@ExcelAttribute(name = "单位大病救助金额" )
@Schema(description = "单位大病救助金额" )
......@@ -384,7 +378,7 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("个人失业金额" )
private BigDecimal personalUnemploymentMoney;
/**
* 个人大病金额
* 个人大病金额(按定时时此值有数据)
*/
@ExcelAttribute(name = "个人大病金额" )
@Schema(description = "个人大病金额" )
......@@ -583,12 +577,12 @@ public class TSocialInfo extends BaseEntity {
@ExcelProperty("派减办理时间" )
private Date reduceHandleTime;
/**
* 新员工入职收费:0是1否
* 收费模式:0立即收1次年收
*/
@Length(max = 1, message = "新员工入职收费:0是1否 不能超过1个字符" )
@ExcelAttribute(name = "新员工入职收费:0是1否", maxLength = 1)
@Schema(description = "新员工入职收费:0是1否" )
@ExcelProperty("新员工入职收费:0是1否" )
@Length(max = 1, message = "收费模式 不能超过1个字符" )
@ExcelAttribute(name = "收费模式", maxLength = 1)
@Schema(description = "收费模式:0立即收1次年收" )
@ExcelProperty("收费模式" )
private String isChargePersonal;
/**
* 委托备注
......@@ -646,14 +640,7 @@ public class TSocialInfo extends BaseEntity {
@Schema(description = "社保类型区分(0五险、1单独兼职工伤)" )
@ExcelProperty("社保类型区分(0五险、1单独兼职工伤)" )
private Integer socialType;
/**
* 0不随配置 1随配置 2.单位大病随配置 3个人大病随配置
*/
@Length(max = 1, message = "0不随配置 1随配置 2.单位大病随配置 3个人大病随配置 不能超过1个字符" )
@ExcelAttribute(name = "0不随配置 1随配置 2.单位大病随配置 3个人大病随配置", maxLength = 1)
@Schema(description = "0不随配置 1随配置 2.单位大病随配置 3个人大病随配置" )
@ExcelProperty("0不随配置 1随配置 2.单位大病随配置 3个人大病随配置" )
private String bigailmentVaryFlag;
/**
* 养老起缴日期
*/
......
......@@ -63,6 +63,12 @@
<version>5.8.0</version>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-archives-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -43,4 +43,13 @@ public interface SysBaseSetInfoMapper extends BaseMapper<SysBaseSetInfo> {
IPage<SysBaseSetInfo> getSysBaseSetInfoPage(Page<SysBaseSetInfo> page, @Param("sysBaseSetInfo") SysBaseSetInfo sysBaseSetInfo);
List<SysBaseSetInfo> getAllByEntity(@Param("sysBaseSetInfo")SysBaseSetInfo sysBaseSetInfo);
/**
* @Author fxj
* @Description 获取对应户名称的公积金基数信息
* @Date 17:27 2022/7/19
* @Param
* @return
**/
List<SysBaseSetInfo> getFundBaseSet(@Param("fundHolds")List<String> fundHolds);
}
......@@ -24,6 +24,8 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.yifu.cloud.plus.v1.yifu.social.entity.SysPayProportion;
import java.util.List;
/**
* 公积金政策对应的缴费比例表
*
......@@ -39,4 +41,6 @@ public interface SysPayProportionMapper extends BaseMapper<SysPayProportion> {
* @return
*/
IPage<SysPayProportion> getSysPayProportionPage(Page<SysPayProportion> page, @Param("sysPayProportion") SysPayProportion sysPayProportion);
List<SysPayProportion> selectByPrimaryId(@Param("id") String id);
}
......@@ -17,6 +17,7 @@
package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
......@@ -30,16 +31,21 @@ 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.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.*;
import com.yifu.cloud.plus.v1.yifu.social.mapper.SysBaseSetInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TDispatchInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialFundInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchImportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
......@@ -47,9 +53,10 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 派单信息记录表
......@@ -58,8 +65,16 @@ import java.util.List;
* @date 2022-07-15 11:38:05
*/
@Log4j2
@RequiredArgsConstructor
@Service
public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, TDispatchInfo> implements TDispatchInfoService {
private final ArchivesDaprUtil archivesDaprUtil;
private final TSocialFundInfoMapper socialFundMapper;
private final SysBaseSetInfoMapper baseSetMapper;
/**
* 派单信息记录表简单分页查询
*
......@@ -234,10 +249,504 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
private void importTDispatchInfo(List<TDispatchImportVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
List<String> idcards = new ArrayList<>();
List<String> codes = new ArrayList<>();
List<String> socialholds = new ArrayList<>();
List<String> fundholds = new ArrayList<>();
// 初始化参数
initIdcardAndCode(excelVOList, idcards, codes, socialholds, fundholds);
// 通过身份证和项目编码获取档案&项目档案&最新合同
Map<String, DispatchEmpVo> empVoMap = getDispatchEmpVo(idcards, codes);
// 通过身份证查询社保&公积金&社保公积金查询信息
Map<String, TSocialFundInfo> socialFundMap = getSocialFundMap(idcards);
// 获取结算主体编码数据 以供校验
Map<String, String> settleDomainVo = new HashMap<>();
// 获取所有社保户和公积金户数据
Map<String, SysBaseSetInfo> socialHoldMap = new HashMap<>();
Map<String, SysBaseSetInfo> fundHoldMap = new HashMap<>();
initHoldInfo(socialholds, fundholds, socialHoldMap, fundHoldMap);
// 员工档案
List<EmpAddDispatchVo> empAdds = new ArrayList<>();
//员工合同
List<EmpContractDispatchVo> contracts = new ArrayList<>();
//员工项目档案
List<EmpProjectDispatchVo> projects = new ArrayList<>();
//新增社保
List<TSocialInfo> socials = new ArrayList<>();
//新增公积金
List<TProvidentFund> funds = new ArrayList<>();
//新增派单信息
Map<String,TDispatchInfo> dispatchMap = new HashMap<>();
EmpAddDispatchVo emp;
EmpContractDispatchVo contract;
EmpProjectDispatchVo project;
TSocialFundInfo sf;
DispatchEmpVo empVo = null;
TSocialInfo social;
TProvidentFund fund;
SysBaseSetInfo socialSet;
SysBaseSetInfo fundSet;
TDispatchInfo dispatch;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
socialSet = null;
fundSet = null;
TDispatchImportVo excel = excelVOList.get(i);
// 数据合法情况
if (validImport(errorMessageList, excel, dispatchMap)) {
continue;
}
if (Common.isNotNull(excel.getSocialHousehold())){
socialSet = socialHoldMap.get(excel.getSocialHousehold());
if (Common.isEmpty(socialSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_HOLD_NOT_EXIST)));
continue;
}
}
if (Common.isNotNull(excel.getProvidentHousehold())){
fundSet = fundHoldMap.get(excel.getProvidentHousehold());
if (Common.isEmpty(fundSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_HOLD_NOT_EXIST)));
continue;
}
}
// 是否可以派单: 派单状态、兼职工伤处理
if (validDdispatchStatus(errorMessageList, socialFundMap, excel)) {
continue;
}
if (Common.isNotNull(empVoMap)) {
empVo = empVoMap.get(excel.getEmpIdcard());
}
// 初始化新增信息:档案、项目档案、员工合同
initAddInfo(empAdds, contracts, projects, empVo, excel);
// 新增社保
initSocialAddInfo(socials, empVo, socialSet, excel);
// 新增公积金
if (initFundAddInfo(errorMessageList, funds, empVo, fundSet, excel)){
continue;
}
// 新增派单信息
dispatch = new TDispatchInfo();
dispatch.setEmpIdcard(excel.getEmpIdcard());
dispatch.setEmpName(excel.getEmpName());
dispatch.setEmpNational(excel.getEmpNational());
dispatch.setEmpType(excel.getEmpType());
dispatch.setEmpMobile(excel.getEmpMobile());
dispatch.setStatus(CommonConstants.ONE_STRING);
if (Common.isNotNull(empVo)){
dispatch.setEmpId(empVo.getId());
dispatch.setEmpNo(empVo.getEmpCode());
//TODO
dispatch.setSettleDomain(empVo.getDeptId());
dispatch.setSettleDomainName(empVo.getDeptName());
}
dispatchMap.put(excel.getEmpIdcard(),dispatch);
// 变更社保公积金查询
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS));
}
}
private boolean initFundAddInfo(List<ErrorMessage> errorMessageList, List<TProvidentFund> funds, DispatchEmpVo empVo, SysBaseSetInfo fundSet, TDispatchImportVo excel) {
TProvidentFund fund;
if (Common.isNotNull(excel.getProvidentHousehold())){
fund = new TProvidentFund();
fund.setAuditStatus(CommonConstants.ZERO_STRING);
fund.setHandleStatus(CommonConstants.ZERO_STRING);
fund.setDeleteFlag(CommonConstants.ZERO_STRING);
fund.setBelongUnit("");
fund.setSettleDomain("");
fund.setEmpId(empVo.getId());
fund.setEmpIdcard(excel.getEmpIdcard());
fund.setTrustRemark(excel.getTrustRemark());
fund.setUnitProvidengCardinal(excel.getProvidentPer());
fund.setPersonalProvidentPer(excel.getProvidentPer());
fund.setUnitProvidengCardinal(excel.getProvidentCardinal());
fund.setPersonalProvidentCardinal(excel.getProvidentCardinal());
fund.setProvidentStart(excel.getProvidentStart());
if (Common.isNotNull(fundSet)){
if (!checkFundPer(fundSet.getFundProList(), excel)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_PERCENT_NOT_EXIST)));
return true;
}
fund.setCanOverpay(fundSet.getCanOverpay());
fund.setOverpayNumber(fundSet.getOverpayNumber());
fund.setFundBaseSetId(fundSet.getId());
if (Common.isNotNull(fundSet.getProvince())){
fund.setFundProvince(Integer.toString(fundSet.getProvince()));
}
if (Common.isNotNull(fundSet.getCity())){
fund.setFundCity(Integer.toString(fundSet.getCity()));
}
if (Common.isNotNull(fundSet.getTown())){
fund.setFundTown(Integer.toString(fundSet.getTown()));
}
fund.setFundPayPoint(fundSet.getPayPolicy());
fund.setHaveThisMonth(fundSet.getHaveThisMonth());
}
funds.add(fund);
}
return false;
}
/**
* @Author fxj
* @Description 对比公积金比例,对应上true false
**/
private boolean checkFundPer(List<SysPayProportion> pays,TDispatchImportVo excel){
if (Common.isNotNull(excel.getProvidentPer()) && Common.isNotNull(pays)){
for (SysPayProportion per: pays){
if (per.getCompanyPro().doubleValue()==excel.getProvidentPer().doubleValue()){
return true;
}
}
}
return false;
}
private void initAddInfo(List<EmpAddDispatchVo> empAdds, List<EmpContractDispatchVo> contracts, List<EmpProjectDispatchVo> projects, DispatchEmpVo empVo, TDispatchImportVo excel) {
// 无档案无项目档案无合同无学历
if (Common.isEmpty(empVo) || Common.isEmpty(empVo.getId())) {
// 初始化档案
initEmpAddInfo(empAdds, excel);
// 初始化项目档案
initProjectInfo(projects, excel, empVo);
// 初始化合同
initContractInfo(contracts, excel, empVo);
}
// 有档案无项目档案无合同
if (Common.isNotNull(empVo) && Common.isEmpty(empVo.getDeptNo())) {
// 初始化项目档案
initProjectInfo(projects, excel, empVo);
// 初始化合同
initContractInfo(contracts, excel, empVo);
}
// 有档案有项目档案无合同
if (Common.isNotNull(empVo)
&& Common.isNotNull(empVo.getDeptNo())
&& Common.isEmpty(empVo.getContractType())) {
// 初始化合同
initContractInfo(contracts, excel, empVo);
}
}
private void initSocialAddInfo(List<TSocialInfo> socials, DispatchEmpVo empVo, SysBaseSetInfo socialSet, TDispatchImportVo excel) {
TSocialInfo social;
if (Common.isNotNull(excel.getSocialHousehold())) {
social = new TSocialInfo();
social.setAuditStatus(CommonConstants.ZERO_STRING);
social.setHandleStatus(CommonConstants.ZERO_STRING);
social.setDeleteFlag(CommonConstants.ZERO_STRING);
// TODO 封装单位信息 结算信息
social.setBelongUnit("");
social.setSettleDomain("");
social.setEmpId(empVo.getId());
social.setEmpIdcard(excel.getEmpIdcard());
social.setBigailmentHandle(CommonConstants.ZERO_STRING);
social.setBirthHandle(CommonConstants.ZERO_STRING);
social.setMedicalHandle(CommonConstants.ZERO_STRING);
social.setPensionHandle(CommonConstants.ZERO_STRING);
social.setWorkInjuryHandle(CommonConstants.ZERO_STRING);
social.setUnemployHandle(CommonConstants.ZERO_STRING);
social.setPaymentType(excel.getPaymentType());
social.setRecordBase(excel.getRecordBase());
social.setPensionStart(excel.getPensionStart());
social.setMedicalStart(ifNull(excel.getMedicalStart(), excel.getPensionStart()));
social.setUnemployStart(ifNull(excel.getUnemployStart(), excel.getPensionStart()));
social.setBigailmentStart(ifNull(excel.getBigailmentStart(), excel.getPensionStart()));
social.setWorkInjuryStart(ifNull(excel.getWorkInjuryStart(), excel.getPensionStart()));
social.setBirthStart(ifNull(excel.getBirthStart(), excel.getPensionStart()));
if (CommonConstants.ONE_STRING.equals(excel.getPaymentType())){
if (Common.isNotNull(socialSet.getProvince())){
social.setSocialProvince(Integer.toString(socialSet.getProvince()));
}
if (Common.isNotNull(socialSet.getCity())){
social.setSocialCity(Integer.toString(socialSet.getCity()));
}
if (Common.isNotNull(socialSet.getTown())){
social.setSocialTown(Integer.toString(socialSet.getTown()));
}
// 自定义各个基数起缴时间初试化
social.setPersonalPensionCardinal(excel.getPensionCardinal());
social.setPersonalMedicalCardinal(ifNull(excel.getMedicalCardinal(), excel.getPensionCardinal()));
social.setPersonalUnemploymentCardinal(ifNull(excel.getUnemploymentCardinal(), excel.getPensionCardinal()));
social.setPersonalBigailmentCardinal(ifNull(excel.getBigailmentCardinal(), excel.getPensionCardinal()));
social.setUnitPensionCardinal(excel.getPensionCardinal());
social.setUnitMedicalCardinal(ifNull(excel.getMedicalCardinal(), excel.getPensionCardinal()));
social.setUnitUnemploymentCardinal(ifNull(excel.getUnemploymentCardinal(), excel.getPensionCardinal()));
social.setUnitWorkInjuryCardinal(ifNull(excel.getWorkInjuryCardinal(), excel.getPensionCardinal()));
social.setUnitBigailmentCardinal(ifNull(excel.getBigailmentCardinal(), excel.getPensionCardinal()));
social.setUnitBirthCardinal(ifNull(excel.getBirthCardinal(), excel.getPensionCardinal()));
}
// 获取到政策后封装相关数据
if (Common.isNotNull(socialSet)){
social.setCanOverpay(socialSet.getCanOverpay());
social.setCardinalId(socialSet.getId());
social.setSocialHousehold(socialSet.getId());
social.setCollectMoth(socialSet.getCollectMoth());
social.setCollectType(socialSet.getCollectType());
social.setHaveThisMonth(socialSet.getHaveThisMonth());
social.setInsuranceBigailment(socialSet.getInsuranceBigailment());
social.setInsuranceBirth(socialSet.getInsuranceBirth());
social.setInsuranceInjury(socialSet.getInsuranceInjury());
social.setInsuranceMedical(socialSet.getInsuranceMedical());
social.setInsurancePension(socialSet.getInsurancePension());
social.setInsuranceUnemployment(socialSet.getInsuranceUnemployment());
social.setInsuranceIsLatestCardinality(socialSet.getInsuranceIsLatestCardinality());
social.setIsChargePersonal(socialSet.getIsChargePersonal());
social.setIsIllness(socialSet.getIsIllness());
social.setOverpayNumber(socialSet.getOverpayNumber());
social.setValueType(socialSet.getValueType());
// 比例初始化
social.setPersonalPensionPer(socialSet.getPersonalPersionPro());
social.setPersonalMedicalPer(socialSet.getPersonalMedicalPro());
social.setPersonalUnemploymentPer(socialSet.getPersonalUnemploymentPro());
social.setPersonalBigailmentPer(socialSet.getPayPersonalPro());
social.setUnitPensionPer(socialSet.getUnitPersionPro());
social.setUnitMedicalPer(socialSet.getUnitMedicalPro());
social.setUnitUnemploymentPer(socialSet.getUnitUnemploymentPro());
social.setUnitWorkUnjuryPer(socialSet.getUnitInjuryPro());
social.setUnitBigailmentPer(socialSet.getPayCompanyPro());
social.setUnitBirthPer(socialSet.getUnitBirthPro());
social.setUnitBigailmentMoney(socialSet.getPayCompany());
social.setPersonalBigailmentMoney(socialSet.getPayPersonal());
//按最低
if (CommonConstants.ZERO_STRING.equals(excel.getPaymentType())){
social.setPersonalPensionCardinal(socialSet.getLowerLimit());
social.setPersonalMedicalCardinal(socialSet.getLowerLimit());
social.setPersonalUnemploymentCardinal(socialSet.getLowerLimit());
social.setPersonalBigailmentCardinal(socialSet.getLowerLimit());
social.setUnitPensionCardinal(socialSet.getLowerLimit());
social.setUnitMedicalCardinal(socialSet.getLowerLimit());
social.setUnitUnemploymentCardinal(socialSet.getLowerLimit());
social.setUnitWorkInjuryCardinal(socialSet.getLowerLimit());
social.setUnitBigailmentCardinal(socialSet.getLowerLimit());
social.setUnitBirthCardinal(socialSet.getLowerLimit());
}
//按最高
if (CommonConstants.TWO_STRING.equals(excel.getPaymentType())){
social.setPersonalPensionCardinal(socialSet.getUpperLimit());
social.setPersonalMedicalCardinal(socialSet.getUpperLimit());
social.setPersonalUnemploymentCardinal(socialSet.getUpperLimit());
social.setPersonalBigailmentCardinal(socialSet.getUpperLimit());
social.setUnitPensionCardinal(socialSet.getUpperLimit());
social.setUnitMedicalCardinal(socialSet.getUpperLimit());
social.setUnitUnemploymentCardinal(socialSet.getUpperLimit());
social.setUnitWorkInjuryCardinal(socialSet.getUpperLimit());
social.setUnitBigailmentCardinal(socialSet.getUpperLimit());
social.setUnitBirthCardinal(socialSet.getUpperLimit());
}
}
socials.add(social);
}
}
private BigDecimal ifNull(BigDecimal old,BigDecimal last){
if (Common.isEmpty(old)){
return last;
}
return old;
}
private Date ifNull(Date old,Date last){
if (Common.isEmpty(old)){
return last;
}
return old;
}
private void initHoldInfo(List<String> socialholds,
List<String> fundHolds,
Map<String, SysBaseSetInfo> socialHoldMap,
Map<String, SysBaseSetInfo> fundHoldMap) {
Date now = DateUtil.getCurrentDateTime();
if (Common.isNotNull(socialholds)) {
List<SysBaseSetInfo> socialBases = baseSetMapper.selectList(Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getBaseType, CommonConstants.ZERO_STRING)
.ge(SysBaseSetInfo::getApplyStartDate, now)
.le(SysBaseSetInfo::getApplyEndDate, now)
.eq(SysBaseSetInfo::getDeleteFlag, CommonConstants.ZERO_STRING));
if (Common.isNotNull(socialBases)) {
socialHoldMap = socialBases.stream().collect(Collectors.toMap(k -> k.getDepartName(), k -> k));
}
socialBases.clear();
}
if (Common.isNotNull(fundHolds)) {
List<SysBaseSetInfo> fundBases = baseSetMapper.getFundBaseSet(fundHolds);
if (Common.isNotNull(fundBases)) {
fundHoldMap = fundBases.stream().collect(Collectors.toMap(k -> k.getDepartName(), k -> k));
}
fundBases.clear();
}
}
private void initContractInfo(List<EmpContractDispatchVo> contracts,
TDispatchImportVo excel,
DispatchEmpVo empVo) {
EmpContractDispatchVo contract;
contract = new EmpContractDispatchVo();
contract.setContractEnd(excel.getContractEnd());
contract.setContractName(excel.getContractName());
contract.setContractStart(excel.getContractStart());
contract.setContractType(excel.getContractType());
contract.setContractSubName(excel.getContractSubName());
contract.setDeptNo(excel.getSettleDomainCode());
contract.setPost(excel.getPost());
contract.setSituation(excel.getContractType());
contract.setEmpIdcard(excel.getEmpIdcard());
contract.setEmpName(excel.getEmpName());
if (Common.isNotNull(empVo)) {
contract.setEmpId(empVo.getId());
contract.setEmpNo(empVo.getEmpCode());
contract.setEmpType(empVo.getEmpNatrue());
}
contracts.add(contract);
}
private void initProjectInfo(List<EmpProjectDispatchVo> projects,
TDispatchImportVo excel,
DispatchEmpVo empVo) {
EmpProjectDispatchVo project;
project = new EmpProjectDispatchVo();
project.setDeptNo(excel.getSettleDomainCode());
project.setContractType(excel.getContractType());
project.setEmpIdcard(excel.getEmpIdcard());
project.setEmpName(excel.getEmpName());
project.setEmpNatrue(excel.getEmpType());
project.setPost(excel.getPost());
project.setWorkingHours(excel.getWorkingHours());
if (Common.isNotNull(empVo)) {
project.setEmpId(empVo.getId());
project.setEmpNo(empVo.getEmpCode());
}
projects.add(project);
}
private void initEmpAddInfo(List<EmpAddDispatchVo> empAdds, TDispatchImportVo excel) {
EmpAddDispatchVo emp;
emp = new EmpAddDispatchVo();
emp.setEmpIdcard(excel.getEmpIdcard());
emp.setEmpName(excel.getEmpName());
emp.setEmpNational(excel.getEmpNational());
emp.setEmpNatrue(excel.getEmpType());
emp.setEmpPhone(excel.getEmpMobile());
emp.setEmpRegisType(excel.getEmpRegisType());
emp.setContractStatus(CommonConstants.ZERO_INT);
emp.setDeleteFlag(CommonConstants.ZERO_STRING);
emp.setFileSource(CommonConstants.ONE_STRING);
emp.setFileProvince(excel.getFileProvince());
emp.setFileCity(excel.getFileCity());
emp.setFileTown(excel.getFileTown());
emp.setFileStatus(CommonConstants.ZERO_INT);
emp.setStatus(CommonConstants.ZERO_INT);
emp.setIdProvince(excel.getIdCardProvince());
emp.setIdCity(excel.getIdCardCity());
emp.setIdTown(excel.getIdCardTown());
emp.setProjectNum(CommonConstants.ONE_INT);
emp.setDeptNo(excel.getSettleDomainCode());
emp.setPost(excel.getPost());
empAdds.add(emp);
}
private boolean validDdispatchStatus(List<ErrorMessage> errorMessageList, Map<String, TSocialFundInfo> socialFundMap, TDispatchImportVo excel) {
TSocialFundInfo sf;
if (Common.isNotNull(socialFundMap)) {
sf = socialFundMap.get(excel.getEmpIdcard());
if (Common.isNotNull(sf)) {
// 拒绝新增1:派单待审核、派单待办理、办理成功且未派减成功------ 先排除兼职工伤
if (CommonConstants.ZERO_STRING.equals(sf.getSocialAddStatus())
|| CommonConstants.ONE_STRING.equals(sf.getSocialAddStatus())
|| (CommonConstants.TWO_STRING.equals(sf.getSocialAddStatus())
&& !CommonConstants.TWO_STRING.equals(sf.getSocialReduceStatus())
&& BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(excel.getPensionCardinal())) != 0
&& BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(sf.getUnitPensionCardinal())) != 0)
) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_EXISTING)));
return true;
}
// 拒绝新增2:新增兼职工伤---有兼职工伤不可重复增、
if (BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(excel.getPensionCardinal())) == 0) {
// 有兼职工伤不可重复增 (未派减成功不可新增兼职工伤,但是可以新增五险)
if (BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(sf.getUnitPensionCardinal())) == 0
&& !CommonConstants.TWO_STRING.equals(sf.getSocialReduceStatus())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_INJURY_EXISTING)));
return true;
}
// 有五险未派减不给新增兼职工伤
if (BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(sf.getUnitPensionCardinal())) != 0
&& Common.isEmpty(sf.getSocialReduceStatus())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_NOT_REDUCE)));
return true;
}
}
// 拒绝新增3:新增五险对应兼职工伤逻辑---有兼职工伤未派减不给增五险、
if (BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(excel.getPensionCardinal())) != 0) {
// 有兼职工伤未派减不给增五险
if (BigDecimal.ZERO.compareTo(BigDecimalUtils.isNullToZero(sf.getUnitPensionCardinal())) == 0
&& Common.isEmpty(sf.getSocialReduceStatus())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_INJURY_NOT_REDUCE)));
return true;
}
}
}
}
return false;
}
private Map<String, TSocialFundInfo> getSocialFundMap(List<String> idcards) {
List<TSocialFundInfo> list = socialFundMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda()
.in(TSocialFundInfo::getEmpIdcard, idcards));
if (Common.isNotNull(list)) {
return list.stream().collect(Collectors.toMap(k -> k.getEmpIdcard(), k -> k));
}
return null;
}
private void initIdcardAndCode(List<TDispatchImportVo> excelVOList,
List<String> idcards, List<String> codes,
List<String> socialholds,
List<String> fundholds) {
if (Common.isNotNull(excelVOList)) {
for (TDispatchImportVo vo : excelVOList) {
idcards.add(vo.getEmpIdcard());
codes.add(vo.getSettleDomainCode());
if (Common.isNotNull(vo.getSocialHousehold())) {
socialholds.add(vo.getSocialHousehold());
}
if (Common.isNotNull(vo.getProvidentHousehold())) {
fundholds.add(vo.getProvidentHousehold());
}
}
}
}
private Map<String, DispatchEmpVo> getDispatchEmpVo(List<String> idcards, List<String> codes) {
Map<String, DispatchEmpVo> empVoMap = null;
if (Common.isNotNull(idcards) || Common.isNotNull(codes)) {
DispatchCheckVo checkVo = new DispatchCheckVo();
checkVo.setCodes(CollUtil.distinct(codes));
checkVo.setIdCards(CollUtil.distinct(idcards));
R<Map> res = archivesDaprUtil.getDispatchEmpVo(checkVo);
if (Common.isNotNull(res) && Common.isNotNull(res.getData())) {
empVoMap = res.getData();
}
}
return empVoMap;
}
private boolean validImport(List<ErrorMessage> errorMessageList,
TDispatchImportVo excel,
Map<String, TDispatchInfo> dispatchMap) {
if (Common.isEmpty(excel.getSocialHousehold()) && Common.isEmpty(excel.getProvidentHousehold())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_AND_FUND_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(excel.getContractName()) && (
Common.isEmpty(excel.getContractSubName())
|| Common.isEmpty(excel.getContractType())
......@@ -245,7 +754,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
|| Common.isEmpty(excel.getContractEnd())
)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_CONTRACT_NOT_EMPTY)));
continue;
return true;
}
if (Common.isNotNull(excel.getSocialHousehold()) && (
Common.isEmpty(excel.getRecordBase())
......@@ -253,25 +762,22 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
|| Common.isEmpty(excel.getPaymentType())
|| Common.isEmpty(excel.getPensionCardinal())
)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_NOT_EMPTY)));
continue;
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_EXIST)));
return true;
}
// 无档案无项目档案无合同无学历
// 有档案无项目档案无合同
// 有档案有项目档案无合同
// 新增社保
// 新增公积金
// 变更社保公积金查询
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS));
if (Common.isNotNull(excel.getProvidentHousehold()) && (
Common.isEmpty(excel.getProvidentCardinal())
|| Common.isEmpty(excel.getProvidentStart())
|| Common.isEmpty(excel.getProvidentPer())
)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(dispatchMap)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_NOT_EMPTY)));
return true;
}
return false;
}
......
......@@ -81,6 +81,9 @@
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateTime" column="UPDATE_TIME"/>
<collection property="fundProList" ofType="com.yifu.cloud.plus.v1.yifu.social.entity.SysPayProportion"
select="com.yifu.cloud.plus.v1.yifu.social.mapper.SysBaseSetInfoMapper.selectByPrimaryId" column="id">
</collection>
</resultMap>
<sql id="base_column_list">
SELECT
......@@ -343,4 +346,22 @@
<include refid="sysBaseSetInfo_where"/>
</where>
</select>
<!--获取对应户名称的公积金基数信息-->
<select id="getFundBaseSet" resultMap="sysBaseSetInfoMap">
<include refid="base_column_list"/>
FROM sys_base_set_info a
<where>
1=1
<if test="fundHolds != null and fundHolds.size > 0">
a.DEPART_NAME in
<foreach collection="fundHolds" item="item" open="(" close=")" separator="," >
#{item}
</foreach>
</if>
and a.APPLY_START_DATE <![CDATA[ <= ]]> now()
and a.APPLY_END_DATE <![CDATA[ >= ]] now()
and a.DELETE_FLAG = '0' and a.status='0' and a.BASE_TYPE = '1'
</where>
</select>
</mapper>
......@@ -30,14 +30,18 @@
<result property="sysBaseSetId" column="SYS_BASE_SET_ID"/>
</resultMap>
<sql id="Base_Column_List">
a
.
ID
,
a.COMPANY_PRO,
a.PERSONAL_PRO,
a.SYS_BASE_SET_ID
a.ID,a.COMPANY_PRO,a.PERSONAL_PRO,a.SYS_BASE_SET_ID
</sql>
<select id="selectByPrimaryId" resultMap="sysPayProportionMap">
SELECT
Id,
company_pro,
personal_pro,
sys_base_set_id
FROM sys_pay_proportion
WHERE
sys_pay_proportion.sys_base_set_id = #{id}
</select>
<sql id="sysPayProportion_where">
<if test="sysPayProportion != null">
<if test="sysPayProportion.id != null and sysPayProportion.id.trim() != ''">
......
......@@ -53,7 +53,7 @@
<result property="auditStatus" column="AUDIT_STATUS"/>
<result property="handleStatus" column="HANDLE_STATUS"/>
<result property="draftStatus" column="DRAFT_STATUS"/>
<result property="cardinalIid" column="CARDINAL_IID"/>
<result property="cardinalId" column="CARDINAL_ID"/>
<result property="oldId" column="OLD_ID"/>
<result property="settleDomain" column="SETTLE_DOMAIN"/>
<result property="socialProvince" column="SOCIAL_PROVINCE"/>
......@@ -104,7 +104,6 @@
<result property="paymentType" column="PAYMENT_TYPE"/>
<result property="recordBase" column="RECORD_BASE"/>
<result property="socialType" column="SOCIAL_TYPE"/>
<result property="bigailmentVaryFlag" column="BIGAILMENT_VARY_FLAG"/>
<result property="pensionStart" column="PENSION_START"/>
<result property="medicalStart" column="MEDICAL_START"/>
<result property="unemployStart" column="UNEMPLOY_START"/>
......@@ -310,8 +309,8 @@
<if test="tSocialInfo.draftStatus != null and tSocialInfo.draftStatus.trim() != ''">
AND a.DRAFT_STATUS = #{tSocialInfo.draftStatus}
</if>
<if test="tSocialInfo.cardinalIid != null and tSocialInfo.cardinalIid.trim() != ''">
AND a.CARDINAL_IID = #{tSocialInfo.cardinalIid}
<if test="tSocialInfo.cardinalId != null and tSocialInfo.cardinalId.trim() != ''">
AND a.CARDINAL_IID = #{tSocialInfo.cardinalId}
</if>
<if test="tSocialInfo.oldId != null">
AND a.OLD_ID = #{tSocialInfo.oldId}
......
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