Commit 1e0bd2e8 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.0' into MVP1.7.0

parents 46d98b15 a654e4a3
/*
* 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.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
/**
* 薪资导入、删除锁定表(锁定后不可导入删除,除非清理掉数据)
*
* @author hgw
* @date 2024-10-24 15:22:51
*/
@Data
@TableName("t_archives_export_limit")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "档案导出限定表(限定后不可导出,除非清理掉数据或等10分钟)")
public class TArchivesExportLimit extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("id")
private String id;
/**
* 删除标志:0未删除;1已删除(1代表已完成导出,释放了锁)
*/
@ExcelAttribute(name = "删除标志:0未删除;1已删除(1代表已完成导出,释放了锁)", isNotEmpty = true, errorInfo = "删除标志:0未删除;1已删除(1代表已完成导入或删除,释放了锁)不能为空")
@NotBlank(message = "删除标志:0未删除;1已删除(1代表已完成导出,释放了锁)不能为空")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("删除标志:0未删除;1已删除(1代表已完成导出,释放了锁)")
private Integer deleteFlag;
/**
* 类型:1预入职导出;2完整度监控导出
*/
@ExcelAttribute(name = "类型", isNotEmpty = true, errorInfo = "类型:1预入职导出;2完整度监控导出不能为空")
@NotBlank(message = "类型:1预入职导出;2完整度监控导出不能为空")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("类型:1预入职导出;2完整度监控导出")
private Integer type;
}
...@@ -113,11 +113,14 @@ public class TEmployeeInfo extends BaseEntity { ...@@ -113,11 +113,14 @@ public class TEmployeeInfo extends BaseEntity {
/** /**
* 出生日期 * 出生日期
* Error attempting to get column 'EMP_BIRTHDAY' from result set. Cause: java.sql.SQLException: HOUR_OF_DAY
* 因为夏令时引起的。只有1940-06-03、1941-03-16、1986-05-04、1987-04-12、1988-04-10、1989-04-16、1990-04-15、1991-04-14几个时间会有如上错误抛出
* https://blog.csdn.net/weixin_51906670/article/details/130556793
*/ */
@DateTimeFormat("yyyy-MM-dd") @DateTimeFormat("yyyy-MM-dd")
@Schema(description = "出生日期") @Schema(description = "出生日期")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date empBirthday; private java.sql.Date empBirthday;
/** /**
* 年龄 * 年龄
...@@ -568,8 +571,29 @@ public class TEmployeeInfo extends BaseEntity { ...@@ -568,8 +571,29 @@ public class TEmployeeInfo extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<TEmpOtherFile> otherFiles; private List<TEmpOtherFile> otherFiles;
// 员工声明
@TableField(exist = false)
private TPreEmpDeclaration tPreEmpDeclaration;
// 档案编辑的其他附件之外的附件,例如:身份证正反面,户口本2页、员工声明、员工确认 // 档案编辑的其他附件之外的附件,例如:身份证正反面,户口本2页、员工声明、员工确认
@TableField(exist = false) @TableField(exist = false)
private List<TAttaInfo> attaList; private List<TAttaInfo> attaList;
// 档案编辑的其他附件之外的附件,例如:身份证正反面,户口本2页、员工声明、员工确认
// 身份证9\24
@TableField(exist = false)
private TAttaInfo attaIdCardOne;
@TableField(exist = false)
private TAttaInfo attaIdCardTwo;
// 户口本10\25
@TableField(exist = false)
private TAttaInfo attaRegistrationOne;
@TableField(exist = false)
private TAttaInfo attaRegistrationTwo;
// 员工声明21\25
@TableField(exist = false)
private TAttaInfo attaDeclearOne;
@TableField(exist = false)
private TAttaInfo attaDeclearTwo;
} }
...@@ -31,14 +31,14 @@ import java.io.Serializable; ...@@ -31,14 +31,14 @@ import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
* 预入职-员工 * 预入职-员工
* *
* @author hgw * @author hgw
* @date 2024-06-17 11:24:00 * @date 2024-06-17 11:24:00
*/ */
@Data @Data
@TableName("t_pre_emp_declaration") @TableName("t_pre_emp_declaration")
@Schema(description = "预入职-员工明") @Schema(description = "预入职-员工明")
public class TPreEmpDeclaration implements Serializable { public class TPreEmpDeclaration implements Serializable {
/** /**
......
...@@ -231,12 +231,12 @@ public class TPreEmpMain extends BaseEntity { ...@@ -231,12 +231,12 @@ public class TPreEmpMain extends BaseEntity {
@Schema(description = "结算主体ID") @Schema(description = "结算主体ID")
private String settleDomain; private String settleDomain;
/** /**
* 员工明表ID,新申明要加一条新数据,关联这个主表 * 员工明表ID,新申明要加一条新数据,关联这个主表
*/ */
@ExcelAttribute(name = "员工明表ID", maxLength = 32) @ExcelAttribute(name = "员工明表ID", maxLength = 32)
@Length(max = 32, message = "员工明表ID不能超过32个字符") @Length(max = 32, message = "员工明表ID不能超过32个字符")
@ExcelProperty("员工明表ID") @ExcelProperty("员工明表ID")
@Schema(description = "员工明表ID,新申明要加一条新数据,关联这个主表") @Schema(description = "员工明表ID,新申明要加一条新数据,关联这个主表")
private String declarationId; private String declarationId;
// 数据来源 默认0: '扫码进入', 1: 'PC批量导入' // 数据来源 默认0: '扫码进入', 1: 'PC批量导入'
...@@ -285,7 +285,7 @@ public class TPreEmpMain extends BaseEntity { ...@@ -285,7 +285,7 @@ public class TPreEmpMain extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<TPreEmpOtherFile> otherFiles; private List<TPreEmpOtherFile> otherFiles;
// 档案编辑的其他附件之外的附件,例如:身份证正反面,户口本2页、员工声明、员工确认 // 档案编辑的其他附件之外的附件,例如:身份证正反面,户口本2页、学历学信、员工声明、员工确认
@TableField(exist = false) @TableField(exist = false)
private List<TAttaInfo> attaList; private List<TAttaInfo> attaList;
......
...@@ -130,7 +130,7 @@ public class TPreEmployeeInfo extends BaseEntity { ...@@ -130,7 +130,7 @@ public class TPreEmployeeInfo extends BaseEntity {
@ExcelAttribute(name = "出生日期", isDate = true) @ExcelAttribute(name = "出生日期", isDate = true)
@ExcelProperty("出生日期") @ExcelProperty("出生日期")
@Schema(description = "出生日期") @Schema(description = "出生日期")
private Date empBirthday; private java.sql.Date empBirthday;
/** /**
* 年龄 * 年龄
*/ */
......
...@@ -35,10 +35,10 @@ public class IdCardUtil { ...@@ -35,10 +35,10 @@ public class IdCardUtil {
* @param idNum * @param idNum
* @return * @return
*/ */
public static Date getBirthdate(String idNum){ public static java.sql.Date getBirthdate(String idNum){
Pattern idNumPattern = null; Pattern idNumPattern = null;
Matcher idNumMatcher = null; Matcher idNumMatcher = null;
Date date = null; java.sql.Date date = null;
//定义判别用户身份证号的正则表达式(要么是15位,要么是18位,最后一位可以为字母) //定义判别用户身份证号的正则表达式(要么是15位,要么是18位,最后一位可以为字母)
idNumPattern = compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])"); idNumPattern = compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
//通过Pattern获得Matcher //通过Pattern获得Matcher
...@@ -76,7 +76,7 @@ public class IdCardUtil { ...@@ -76,7 +76,7 @@ public class IdCardUtil {
String temp = sdf.format(shijian); String temp = sdf.format(shijian);
if(dateStr.equals(temp)){ if(dateStr.equals(temp)){
//输出用户的出生年月日 //输出用户的出生年月日
date = shijian; date = new java.sql.Date(shijian.getTime());
} }
} catch (ParseException e) { } catch (ParseException e) {
//数据有误 //数据有误
......
...@@ -22,7 +22,7 @@ public class EmpMainDetailVo implements Serializable { ...@@ -22,7 +22,7 @@ public class EmpMainDetailVo implements Serializable {
private TEmpBadRecord tEmpBadRecord; private TEmpBadRecord tEmpBadRecord;
// 紧急联络人 // 紧急联络人
private TEmpContactInfo tEmpContactInfo; private TEmpContactInfo tEmpContactInfo;
// 员工 // 员工
private TPreEmpDeclaration tEmpDeclaration; private TPreEmpDeclaration tEmpDeclaration;
// 员工伤残信息表 // 员工伤残信息表
private TEmpDisabilityInfo tEmpDisabilityInfo; private TEmpDisabilityInfo tEmpDisabilityInfo;
......
...@@ -70,7 +70,7 @@ public class EmployeeBusinessVo { ...@@ -70,7 +70,7 @@ public class EmployeeBusinessVo {
*/ */
@ExcelAttribute(name = "出生日期",isDate =true ,dateFormat = DateUtil.ISO_EXPANDED_DATE_FORMAT) @ExcelAttribute(name = "出生日期",isDate =true ,dateFormat = DateUtil.ISO_EXPANDED_DATE_FORMAT)
@Schema(description = "出生日期", name = "empBirthday") @Schema(description = "出生日期", name = "empBirthday")
private Date empBirthday; private java.sql.Date empBirthday;
/** /**
* 民族 * 民族
*/ */
......
...@@ -245,4 +245,35 @@ public class EmployeeInsertVO extends RowIndex implements Serializable { ...@@ -245,4 +245,35 @@ public class EmployeeInsertVO extends RowIndex implements Serializable {
@ExcelProperty(value = "通信地址-详细地址") @ExcelProperty(value = "通信地址-详细地址")
private String contactAddress; private String contactAddress;
/*
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", isNotEmpty = true, errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName;
@ExcelAttribute(name = "与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType;
@ExcelAttribute(name = "联系地址-省", isNotEmpty = true, isArea = true)
private String relationProvince;
@ExcelAttribute(name = "联系地址-市", isNotEmpty = true, isArea = true, parentField = "relationProvince")
private String relationCity;
@ExcelAttribute(name = "联系地址-区/县", isNotEmpty = true, isArea = true, parentField = "relationCity")
private String relationTown;
@ExcelAttribute(name = "联系地址-详细地址", isNotEmpty = true, errorInfo = "联系地址-街道、详情不能为空", maxLength = 100)
private String address;
@ExcelAttribute(name = "手机号码(紧急联系人)", isPhone = true, isNotEmpty = true, errorInfo = "手机号码(紧急联系人)不能为空", maxLength = 20)
private String tel;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "银行卡号", isNotEmpty = true, maxLength = 50)
private String bankNo;
@ExcelAttribute(name = "开户行总行", maxLength = 50)
private String bankName;
@ExcelAttribute(name = "开户省", isArea = true)
private String bankProvince;
@ExcelAttribute(name = "开户市", isArea = true, parentField = "bankProvince")
private String bankCity;
@ExcelAttribute(name = "开户支行", maxLength = 50)
private String bankSubName;
@ExcelAttribute(name = "计税月份", isDate = true, dateFormat = "yyyyMM", maxLength = 6)
private String taxMonth;*/
} }
...@@ -39,7 +39,7 @@ public class PreEmpMainDetailVo implements Serializable { ...@@ -39,7 +39,7 @@ public class PreEmpMainDetailVo implements Serializable {
private TPreEmpBadRecord tpreEmpBadRecord; private TPreEmpBadRecord tpreEmpBadRecord;
// 预入职-紧急联络人 // 预入职-紧急联络人
private TPreEmpContactInfo tpreEmpContactInfo; private TPreEmpContactInfo tpreEmpContactInfo;
// 预入职-员工 // 预入职-员工
private TPreEmpDeclaration tpreEmpDeclaration; private TPreEmpDeclaration tpreEmpDeclaration;
// 预入职-员工伤残信息表 // 预入职-员工伤残信息表
private TPreEmpDisabilityInfo tpreEmpDisabilityInfo; private TPreEmpDisabilityInfo tpreEmpDisabilityInfo;
......
/*
* 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.yifu.archives.vo;
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 java.io.Serializable;
import java.util.Date;
/**
* 档案批量更新导入的表格内容
*
* @author hgw
* @date 2024-10-17 15:30:41
*/
@Data
public class PreUploadEmpImportTwoVo implements Serializable {
// (字典值,0外包1派遣2代理)
@ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE, maxLength = 4)
private String empNatrue;
@ExcelAttribute(name = "员工姓名", maxLength = 32)
private String empName;
@ExcelAttribute(name = "身份证号", isNotEmpty = true, maxLength = 20)
private String empIdcard;
//@ExcelAttribute(name = "性别", maxLength = 32)
//private String empSex;
//@ExcelAttribute(name = "身份证期限", isDate = true)
//private String cardType;
@ExcelAttribute(name = "身份证开始日期", isDate = true)
private String validityStart;
@ExcelAttribute(name = "身份证截止日期", isDate = true, pattern = "validityStart")
private String validityEnd;
//@ExcelAttribute(name = "出生日期", isDate = true)
//private String empBirthday;
//@ExcelAttribute(name = "年龄")
//private Integer empAge;
@ExcelAttribute(name = "婚姻状况", isDataId = true, dataType = ExcelAttributeConstants.EMP_MARRIED, maxLength = 32)
private String empMarriStatus;
@ExcelAttribute(name = "民族", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATIONAL, maxLength = 32)
private String empNational;
@ExcelAttribute(name = "政治面貌", isDataId = true, dataType = ExcelAttributeConstants.EMP_POLITICAL, maxLength = 32)
private String politicalStatus;
@ExcelAttribute(name = "手机号码", isPhone = true, maxLength = 32)
private String empPhone;
@ExcelAttribute(name = "邮箱", maxLength = 50)
private String empEmail;
// 区域ID
@ExcelAttribute(name = "户籍所在地-省", isArea = true)
private String idProvince;
@ExcelAttribute(name = "户籍所在地-市", isArea = true, parentField = "idProvince")
private String idCity;
@ExcelAttribute(name = "户籍所在地-区/县", isArea = true, parentField = "idCity")
private String idTown;
@ExcelAttribute(name = "户口性质", isDataId = true, dataType = ExcelAttributeConstants.EMP_REGISTYPE, maxLength = 32)
private String empRegisType;
@ExcelAttribute(name = "档案所在地-省", isArea = true)
private String fileProvince;
@ExcelAttribute(name = "档案所在地-市", isArea = true, parentField = "fileProvince")
private String fileCity;
@ExcelAttribute(name = "档案所在地-区/县", isArea = true, parentField = "fileCity")
private String fileTown;
@ExcelAttribute(name = "通信地址-省", isArea = true)
private String contactProvince;
@ExcelAttribute(name = "通信地址-市", isArea = true, parentField = "contactProvince")
private String contactCity;
@ExcelAttribute(name = "通信地址-区/县", isArea = true, parentField = "contactCity")
private String contactTown;
@ExcelAttribute(name = "通信地址-详细地址", maxLength = 200)
private String contactAddress;
@ExcelAttribute(name = "备注", maxLength = 200)
private String remark;
// 预入职-员工学历信息表
// private TPreEmpEducation tpreEmpEducation
// 学历 学校 专业 教育开始时间 教育结束时间 是否大专及以上 最高学历
@ExcelAttribute(name = "是否大专及以上", isDataId = true, readConverterExp = "0=否,1=是")
private String isCollege;
@ExcelAttribute(name = "最高学历", isDataId = true, dataType = ExcelAttributeConstants.EDUCATION, maxLength = 32)
private String educationName;
@ExcelAttribute(name = "学校", maxLength = 64)
private String school;
@ExcelAttribute(name = "专业", maxLength = 64)
private String major;
@ExcelAttribute(name = "入学时间", isDate = true)
private String entryDate;
@ExcelAttribute(name = "毕业时间", isDate = true, pattern = "entryDate")
private String gradutionDate;
// 紧急联系人
// private TPreEmpContactInfo tpreEmpContactInfo
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName;
@ExcelAttribute(name = "紧急联系人与本人关系", errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType;
@ExcelAttribute(name = "联系地址-省", isArea = true)
private String relationProvince;
@ExcelAttribute(name = "联系地址-市", isArea = true, parentField = "relationProvince")
private String relationCity;
@ExcelAttribute(name = "联系地址-区/县", isArea = true, parentField = "relationCity")
private String relationTown;
@ExcelAttribute(name = "联系地址-详细地址", errorInfo = "联系地址-街道、详情不能为空", maxLength = 200)
private String address;
@ExcelAttribute(name = "手机号码(紧急联系人)", isPhone = true, errorInfo = "手机号码(紧急联系人)不能为空", maxLength = 20)
private String tel;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "银行卡号", maxLength = 50)
private String bankNo;
@ExcelAttribute(name = "开户行总行", maxLength = 50)
private String bankName;
@ExcelAttribute(name = "开户省", isArea = true)
private String bankProvince;
@ExcelAttribute(name = "开户市", isArea = true, parentField = "bankProvince")
private String bankCity;
@ExcelAttribute(name = "开户支行", maxLength = 50)
private String bankSubName;
@ExcelAttribute(name = "计税月份", isDate = true, dateFormat = "yyyyMM", maxLength = 6)
private String taxMonth;
// 字典值起始
@ExcelAttribute(name = "员工类型-值")
private String empNatrueValue;
@ExcelAttribute(name = "婚姻状况-值")
private String empMarriStatusValue;
@ExcelAttribute(name = "民族-值")
private String empNationalValue;
@ExcelAttribute(name = "政治面貌-值")
private String politicalStatusValue;
@ExcelAttribute(name = "户籍所在地-省-值")
private String idProvinceValue;
@ExcelAttribute(name = "户籍所在地-市-值")
private String idCityValue;
@ExcelAttribute(name = "户籍所在地-县-值")
private String idTownValue;
@ExcelAttribute(name = "户口性质-值")
private String empRegisTypeValue;
@ExcelAttribute(name = "档案所在地-省-值")
private String fileProvinceValue;
@ExcelAttribute(name = "档案所在地-市-值")
private String fileCityValue;
@ExcelAttribute(name = "档案所在地-县-值")
private String fileTownValue;
@ExcelAttribute(name = "通信地址-省-值")
private String contactProvinceValue;
@ExcelAttribute(name = "通信地址-市-值")
private String contactCityValue;
@ExcelAttribute(name = "通信地址-县-值")
private String contactTownValue;
// 紧急联系人
@ExcelAttribute(name = "联系地址-省-值")
private String relationProvinceValue;
@ExcelAttribute(name = "联系地址-市-值")
private String relationCityValue;
@ExcelAttribute(name = "联系地址-县-值")
private String relationTownValue;
@ExcelAttribute(name = "入学时间-值")
private Date entryDateValue;
@ExcelAttribute(name = "毕业时间-值")
private Date gradutionDateValue;
// 预入职-员工学历信息表
@ExcelAttribute(name = "是否大专及以上-值")
private String isCollegeValue;
@ExcelAttribute(name = "学历-值")
private String educationNameValue;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "开户省-值")
private String bankProvinceValue;
@ExcelAttribute(name = "开户市-值")
private String bankCityValue;
@ExcelAttribute(name = "计税月份-值")
private String taxMonthValue;
@ExcelAttribute(name = "身份证开始日期-值")
private Date validityStartValue;
@ExcelAttribute(name = "身份证截止日期-值")
private Date validityEndValue;
// 字典值结束
@TableField(exist = false)
private int lineNum;
@TableField(exist = false)
private String errorInfo;
}
...@@ -36,7 +36,7 @@ import java.util.List; ...@@ -36,7 +36,7 @@ import java.util.List;
public class PreUploadEmpImportVo implements Serializable { public class PreUploadEmpImportVo implements Serializable {
// (字典值,0外包1派遣2代理) // (字典值,0外包1派遣2代理)
@ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE, maxLength = 2) @ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE, maxLength = 4)
private String empNatrue; private String empNatrue;
@ExcelAttribute(name = "员工姓名", maxLength = 32) @ExcelAttribute(name = "员工姓名", maxLength = 32)
private String empName; private String empName;
...@@ -93,7 +93,7 @@ public class PreUploadEmpImportVo implements Serializable { ...@@ -93,7 +93,7 @@ public class PreUploadEmpImportVo implements Serializable {
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人) // 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", isNotEmpty = true, errorInfo = "紧急联系人姓名不能为空", maxLength = 20) @ExcelAttribute(name = "紧急联系人姓名", isNotEmpty = true, errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName; private String contactEmpName;
@ExcelAttribute(name = "与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50) @ExcelAttribute(name = "紧急联系人与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType; private String relationType;
@ExcelAttribute(name = "联系地址-省", isNotEmpty = true, isArea = true) @ExcelAttribute(name = "联系地址-省", isNotEmpty = true, isArea = true)
private String relationProvince; private String relationProvince;
...@@ -144,9 +144,9 @@ public class PreUploadEmpImportVo implements Serializable { ...@@ -144,9 +144,9 @@ public class PreUploadEmpImportVo implements Serializable {
// 成员姓名 与本人关系 手机号码(家庭成员) // 成员姓名 与本人关系 手机号码(家庭成员)
// 预入职-员工家庭信息表 // 预入职-员工家庭信息表
// private List<TPreEmpFamily> tpreEmpFamilyList // private List<TPreEmpFamily> tpreEmpFamilyList
@ExcelAttribute(name = "成员姓名", maxLength = 32) @ExcelAttribute(name = "家庭成员成员姓名", maxLength = 32)
private String familyName; private String familyName;
@ExcelAttribute(name = "与本人关系", isMark = true, maxLength = 32) @ExcelAttribute(name = "家庭成员与本人关系", isMark = true,isDataId = true,dataType = ExcelAttributeConstants.FAMILY_RELATION, maxLength = 32)
private String relationshipSelf; private String relationshipSelf;
@ExcelAttribute(name = "手机号码(家庭成员)", isMark = true, isPhone = true, maxLength = 32) @ExcelAttribute(name = "手机号码(家庭成员)", isMark = true, isPhone = true, maxLength = 32)
private String contractTel; private String contractTel;
...@@ -195,7 +195,7 @@ public class PreUploadEmpImportVo implements Serializable { ...@@ -195,7 +195,7 @@ public class PreUploadEmpImportVo implements Serializable {
private String remark; private String remark;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份 // 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "银行卡号", isNotEmpty = true, maxLength = 50) @ExcelAttribute(name = "银行卡号", maxLength = 50)
private String bankNo; private String bankNo;
@ExcelAttribute(name = "开户行总行", maxLength = 50) @ExcelAttribute(name = "开户行总行", maxLength = 50)
private String bankName; private String bankName;
...@@ -258,6 +258,8 @@ public class PreUploadEmpImportVo implements Serializable { ...@@ -258,6 +258,8 @@ public class PreUploadEmpImportVo implements Serializable {
// 预入职-员工工作履历信息表 // 预入职-员工工作履历信息表
@ExcelAttribute(name = "是否为首份工作") @ExcelAttribute(name = "是否为首份工作")
private String firstWorkFlagValue; private String firstWorkFlagValue;
@ExcelAttribute(name = "与本人关系")
private String relationshipSelfValue;
// 预入职-员工职业资格信息表 // 预入职-员工职业资格信息表
@ExcelAttribute(name = "是否有职业资格证书") @ExcelAttribute(name = "是否有职业资格证书")
private String haveQualificationValue; private String haveQualificationValue;
...@@ -285,15 +287,24 @@ public class PreUploadEmpImportVo implements Serializable { ...@@ -285,15 +287,24 @@ public class PreUploadEmpImportVo implements Serializable {
private String bankCityValue; private String bankCityValue;
@ExcelAttribute(name = "计税月份") @ExcelAttribute(name = "计税月份")
private String taxMonthValue; private String taxMonthValue;
@ExcelAttribute(name = "身份证开始日期")
private Date validityStartValue;
@ExcelAttribute(name = "身份证截止日期")
private Date validityEndValue;
// 字典值结束 // 字典值结束
// 附属信息 // 附属信息
List<PreUploadEmpImportVo> otherList = new ArrayList<>(); // List<PreUploadEmpImportVo> otherList = new ArrayList<>()
// 是否主信息,未false,则仅更新附属信息 // 是否主信息,未false,则仅更新附属信息
@TableField(exist = false) @TableField(exist = false)
private Boolean isMain; private Boolean isMain;
@TableField(exist = false)
private int lineNum;
@TableField(exist = false) @TableField(exist = false)
private String errorInfo; private String errorInfo;
......
...@@ -34,6 +34,9 @@ public class TCompleteMonitorInfoVo implements Serializable { ...@@ -34,6 +34,9 @@ public class TCompleteMonitorInfoVo implements Serializable {
@Schema(description = "人员档案id") @Schema(description = "人员档案id")
private String empInfoId; private String empInfoId;
@Schema(description = "人员项目档案id")
private String empProjectId;
@Schema(description = "项目编码") @Schema(description = "项目编码")
private String deptNo; private String deptNo;
......
...@@ -348,6 +348,21 @@ public class TEmployeeInfoController { ...@@ -348,6 +348,21 @@ public class TEmployeeInfoController {
return tEmployeeInfoService.batchUpdateEmployee(file.getInputStream(),exportFields); return tEmployeeInfoService.batchUpdateEmployee(file.getInputStream(),exportFields);
} }
/**
* @Description: 批量更新人员和银行信息
* @Author: hgw
* @Date: 2024-10-16 17:41:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.pig4cloud.plugin.excel.vo.ErrorMessage>>
**/
@SneakyThrows
@Operation(summary = "批量更新人员和银行信息", description = "批量更新人员和银行信息 hasPermission('employee_batch_update_bank')")
@SysLog("批量更新人员和银行信息")
@PostMapping("/batchUpdateEmployeeAndBank")
// @PreAuthorize("@pms.hasPermission('employee_batch_update_bank')")
public R<List<PreUploadEmpImportTwoVo>> batchUpdateEmployeeAndBank(MultipartFile file, PreUploadImportParamVo vo) throws Exception {
return tEmployeeInfoService.batchUpdateEmployeeAndBank(file, vo);
}
/** /**
* 批量导出人员档案信息 * 批量导出人员档案信息
* *
...@@ -506,6 +521,13 @@ public class TEmployeeInfoController { ...@@ -506,6 +521,13 @@ public class TEmployeeInfoController {
return tEmployeeInfoService.getHcmEmpInfo(idCard); return tEmployeeInfoService.getHcmEmpInfo(idCard);
} }
@Operation(description = "测试异常数据使用接口")
@SysLog("测试异常数据使用接口")
@PostMapping("/getListByDeptIdByLimit")
public List<TEmployeeInfo> getListByDeptIdByLimit(@RequestParam String deptId,@RequestParam Integer limit1, @RequestParam Integer limit2) {
return tEmployeeInfoService.getListByDeptIdByLimit(deptId, limit1,limit2);
}
/** /**
* @param idCardList * @param idCardList
* @Description: HCM获取人员信息列表 * @Description: HCM获取人员信息列表
......
...@@ -258,8 +258,9 @@ public class TPreEmpMainController { ...@@ -258,8 +258,9 @@ public class TPreEmpMainController {
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo>
**/ **/
@SysLog("预入职批量导入") @SysLog("预入职批量导入")
@Operation(description = "预入职批量导入") @Operation(summary = "预入职批量导入", description = "预入职批量导入 hasPermission('pre_emp_batch_upload')")
@PostMapping("/uploadPreEmp") @PostMapping("/uploadPreEmp")
// @PreAuthorize("@pms.hasPermission('pre_emp_batch_upload')")
public R<List<PreUploadEmpImportVo>> uploadPreEmp(MultipartFile file, PreUploadImportParamVo vo) throws Exception { public R<List<PreUploadEmpImportVo>> uploadPreEmp(MultipartFile file, PreUploadImportParamVo vo) throws Exception {
return tPreEmpMainService.uploadPreEmp(file, vo); return tPreEmpMainService.uploadPreEmp(file, vo);
} }
......
/*
* 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.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TArchivesExportLimit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 薪资导入、删除锁定表(锁定后不可导入删除,除非清理掉数据)
*
* @author hgw
* @date 2024-10-24 15:59:09
*/
@Mapper
public interface TArchivesExportLimitMapper extends BaseMapper<TArchivesExportLimit> {
/**
* 查询是否有锁
*/
List<TArchivesExportLimit> getLimitList(@Param("tArchivesExportLimit") TArchivesExportLimit tArchivesExportLimit);
}
...@@ -93,6 +93,13 @@ public interface TCompleteMonitorMapper extends BaseMapper<TCompleteMonitor> { ...@@ -93,6 +93,13 @@ public interface TCompleteMonitorMapper extends BaseMapper<TCompleteMonitor> {
int getTEmpMainAllCount(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor); int getTEmpMainAllCount(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
// 导出详情使用 hgw 2024-6-26 11:05:41 // 导出详情使用 hgw 2024-6-26 11:05:41
List<TMainExportAllVO> getTEmpMainAllList(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor); List<TMainExportAllVO> getTEmpMainAllList(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByContract(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByEducation(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByBad(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByDisability(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByWork(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByFamily(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
List<TMainExportAllVO> getTEmpMainAllListByProfessional(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
// 导出详情使用 hgw 2024-6-26 11:05:41 // 导出详情使用 hgw 2024-6-26 11:05:41
int getTEmpMainAllCountOneWork(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor); int getTEmpMainAllCountOneWork(@Param("tCompleteMonitor") TCompleteMonitor tCompleteMonitor);
......
...@@ -20,6 +20,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.mapper; ...@@ -20,6 +20,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 员工不良记录 * 员工不良记录
...@@ -29,5 +32,5 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -29,5 +32,5 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface TEmpBadRecordMapper extends BaseMapper<TEmpBadRecord> { public interface TEmpBadRecordMapper extends BaseMapper<TEmpBadRecord> {
List<TEmpBadRecord> getBadByIdCard(@Param("idCardList") List<String> idCardList);
} }
...@@ -24,6 +24,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo; ...@@ -24,6 +24,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author fxj * @author fxj
* @date 2024-06-17 14:29:11 * @date 2024-06-17 14:29:11
...@@ -37,4 +39,15 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> { ...@@ -37,4 +39,15 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> {
* @return * @return
*/ */
IPage<TEmpContactInfo> getTEmpContactInfoPage(Page<TEmpContactInfo> page, @Param("tEmpContactInfo") TEmpContactInfo tEmpContactInfo); IPage<TEmpContactInfo> getTEmpContactInfoPage(Page<TEmpContactInfo> page, @Param("tEmpContactInfo") TEmpContactInfo tEmpContactInfo);
/**
* @param deptId
* @Description: 获取紧急联系人信息
* @Author: hgw
* @Date: 2024/10/17 19:42
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo>
**/
List<TEmpContactInfo> getContactByDeptId(@Param("deptId") String deptId);
List<TEmpContactInfo> getContactByIdCardList(@Param("idCardList") List<String> idCardList);
} }
...@@ -20,6 +20,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.mapper; ...@@ -20,6 +20,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpDisabilityInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpDisabilityInfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 员工伤残信息表 * 员工伤残信息表
...@@ -30,4 +33,5 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -30,4 +33,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface TEmpDisabilityInfoMapper extends BaseMapper<TEmpDisabilityInfo> { public interface TEmpDisabilityInfoMapper extends BaseMapper<TEmpDisabilityInfo> {
List<TEmpDisabilityInfo> getTEmpDisabilityByIdCardList(@Param("idCardList") List<String> idCardList);
} }
...@@ -40,4 +40,6 @@ public interface TEmpEducationMapper extends BaseMapper<TEmpEducation> { ...@@ -40,4 +40,6 @@ public interface TEmpEducationMapper extends BaseMapper<TEmpEducation> {
List<TEmpEducationExportVo> noPageDiy(@Param("searchVo")EducationSearchVo searchVo,@Param("idList")List<String> idList); List<TEmpEducationExportVo> noPageDiy(@Param("searchVo")EducationSearchVo searchVo,@Param("idList")List<String> idList);
int noPageCountDiy(@Param("searchVo")EducationSearchVo searchVo,@Param("idList")List<String> idList); int noPageCountDiy(@Param("searchVo")EducationSearchVo searchVo,@Param("idList")List<String> idList);
List<TEmpEducation> getTEmpEducationByIdCard(@Param("idCardList") List<String> idCardList);
} }
...@@ -48,6 +48,10 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> { ...@@ -48,6 +48,10 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
List<TEmployeeInfo> getList(@Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo); List<TEmployeeInfo> getList(@Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo);
// 批量更新使用,按项目查询人员信息
List<TEmployeeInfo> getListByDeptId(@Param("deptId") String deptId);
List<TEmployeeInfo> getListByDeptIdByLimit(@Param("deptId") String deptId, @Param("limit1") Integer limit1, @Param("limit2") Integer limit2);
// hgw 2022-6-22 15:32:39 根据身份证查询一批档案 // hgw 2022-6-22 15:32:39 根据身份证查询一批档案
List<TEmployeeInfo> getListByIdCard(@Param("idCardList") List<String> idCardList); List<TEmployeeInfo> getListByIdCard(@Param("idCardList") List<String> idCardList);
......
...@@ -22,7 +22,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration; ...@@ -22,7 +22,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* 预入职-员工 * 预入职-员工
* *
* @author hgw * @author hgw
* @date 2024-06-17 11:24:00 * @date 2024-06-17 11:24:00
...@@ -30,7 +30,7 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -30,7 +30,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface TPreEmpDeclarationMapper extends BaseMapper<TPreEmpDeclaration> { public interface TPreEmpDeclarationMapper extends BaseMapper<TPreEmpDeclaration> {
/** /**
* 预入职-员工明简单分页查询 * 预入职-员工明简单分页查询
* *
* @return * @return
*/ */
......
...@@ -52,6 +52,9 @@ public interface TPreEmpMainMapper extends BaseMapper<TPreEmpMain> { ...@@ -52,6 +52,9 @@ public interface TPreEmpMainMapper extends BaseMapper<TPreEmpMain> {
int getTPreEmpMainAllCount(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain); int getTPreEmpMainAllCount(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
List<TPreMainExportAllVO> getTPreEmpMainAllList(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain); List<TPreMainExportAllVO> getTPreEmpMainAllList(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
List<TPreMainExportAllVO> getTPreEmpMainAllListByWork(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
List<TPreMainExportAllVO> getTPreEmpMainAllListByFamily(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
List<TPreMainExportAllVO> getTPreEmpMainAllListByProfessional(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
// 导出详情使用 hgw 2024-6-26 11:05:41 // 导出详情使用 hgw 2024-6-26 11:05:41
int getTEmpMainAllCountOneWork(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain); int getTEmpMainAllCountOneWork(@Param("tPreEmpMain") TPreEmpMain tPreEmpMain);
......
...@@ -56,4 +56,6 @@ public interface TEmpBadRecordService extends IService<TEmpBadRecord> { ...@@ -56,4 +56,6 @@ public interface TEmpBadRecordService extends IService<TEmpBadRecord> {
**/ **/
TEmpBadRecord getByEmpId(String empId); TEmpBadRecord getByEmpId(String empId);
List<TEmpBadRecord> getBadByIdCard(List<String> idList);
} }
...@@ -49,5 +49,16 @@ public interface TEmpContactInfoService extends IService<TEmpContactInfo> { ...@@ -49,5 +49,16 @@ public interface TEmpContactInfoService extends IService<TEmpContactInfo> {
List<TEmpContactInfo> noPageDiy(TEmpContactInfoSearchVo searchVo); List<TEmpContactInfo> noPageDiy(TEmpContactInfoSearchVo searchVo);
/**
* @Description: 获取紧急联系人
* @Author: hgw
* @Date: 2024/10/17 19:40
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo>
**/
List<TEmpContactInfo> getContactByDeptId(String deptId);
// 根据身份证获取
List<TEmpContactInfo> getContactByIdCardList(List<String> idList);
TEmpContactInfo getByEmpId(String empId); TEmpContactInfo getByEmpId(String empId);
} }
...@@ -45,6 +45,8 @@ public interface TEmpDisabilityInfoService extends IService<TEmpDisabilityInfo> ...@@ -45,6 +45,8 @@ public interface TEmpDisabilityInfoService extends IService<TEmpDisabilityInfo>
List<TEmpDisabilityInfo> getTEmpDisabilityInfoNoPage(DisabilitySearchVo searchVo); List<TEmpDisabilityInfo> getTEmpDisabilityInfoNoPage(DisabilitySearchVo searchVo);
List<TEmpDisabilityInfo> getTEmpDisabilityByIdCardList(List<String> idList);
R<Boolean> updateByIdDiy(TEmpDisabilityInfo tEmpDisabilityInfo); R<Boolean> updateByIdDiy(TEmpDisabilityInfo tEmpDisabilityInfo);
R<List<ErrorMessage>> importTmpDisabilityDiy(InputStream inputStream); R<List<ErrorMessage>> importTmpDisabilityDiy(InputStream inputStream);
......
...@@ -77,4 +77,6 @@ public interface TEmpEducationService extends IService<TEmpEducation> { ...@@ -77,4 +77,6 @@ public interface TEmpEducationService extends IService<TEmpEducation> {
**/ **/
TEmpEducation getByEmpId(String empId); TEmpEducation getByEmpId(String empId);
List<TEmpEducation> getTEmpEducationByIdCard(List<String> idCardList);
} }
...@@ -24,6 +24,7 @@ import com.pig4cloud.plugin.excel.vo.ErrorMessage; ...@@ -24,6 +24,7 @@ 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.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
...@@ -169,6 +170,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> { ...@@ -169,6 +170,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/ **/
R<List<ErrorMessage>> batchUpdateEmployee(InputStream inputStream,String[] exportFields); R<List<ErrorMessage>> batchUpdateEmployee(InputStream inputStream,String[] exportFields);
// 批量更新人员和银行信息
R<List<PreUploadEmpImportTwoVo>> batchUpdateEmployeeAndBank(MultipartFile file, PreUploadImportParamVo paramVo) throws Exception ;
void updateEducationOfEmp(EmpEducationUpdateVO education); void updateEducationOfEmp(EmpEducationUpdateVO education);
/** /**
...@@ -264,4 +268,6 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> { ...@@ -264,4 +268,6 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
// 预入职批量导入使用 // 预入职批量导入使用
List<TEmployeeInfo> getListByIdCardList(List<String> idList); List<TEmployeeInfo> getListByIdCardList(List<String> idList);
List<TEmployeeInfo> getListByDeptIdByLimit(String deptId, Integer limit1, Integer limit2);
} }
...@@ -21,14 +21,14 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -21,14 +21,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration; import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration;
/** /**
* 预入职-员工 * 预入职-员工
* *
* @author hgw * @author hgw
* @date 2024-06-17 11:24:00 * @date 2024-06-17 11:24:00
*/ */
public interface TPreEmpDeclarationService extends IService<TPreEmpDeclaration> { public interface TPreEmpDeclarationService extends IService<TPreEmpDeclaration> {
/** /**
* 预入职-员工明简单分页查询 * 预入职-员工明简单分页查询
* *
* @return * @return
*/ */
......
...@@ -332,7 +332,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -332,7 +332,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
newEmployeeInfo.setCreateName(fddContractAttachInfo.getCreateName()); newEmployeeInfo.setCreateName(fddContractAttachInfo.getCreateName());
newEmployeeInfo.setUpdateBy(fddContractAttachInfo.getUpdateBy()); newEmployeeInfo.setUpdateBy(fddContractAttachInfo.getUpdateBy());
newEmployeeInfo.setContractStatus(CommonConstants.ONE_INT); newEmployeeInfo.setContractStatus(CommonConstants.ONE_INT);
Date date = IdCardUtil.getBirthdate(fddContractAttachInfo.getEmpIdcard()); java.sql.Date date = IdCardUtil.getBirthdate(fddContractAttachInfo.getEmpIdcard());
if (null != date) { if (null != date) {
//初始化年龄 //初始化年龄
......
...@@ -318,4 +318,9 @@ public class TEmpBadRecordServiceImpl extends ServiceImpl<TEmpBadRecordMapper, T ...@@ -318,4 +318,9 @@ public class TEmpBadRecordServiceImpl extends ServiceImpl<TEmpBadRecordMapper, T
} }
return wrapper; return wrapper;
} }
@Override
public List<TEmpBadRecord> getBadByIdCard(List<String> idList) {
return baseMapper.getBadByIdCard(idList);
}
} }
...@@ -262,4 +262,14 @@ public class TEmpContactInfoServiceImpl extends ServiceImpl<TEmpContactInfoMappe ...@@ -262,4 +262,14 @@ public class TEmpContactInfoServiceImpl extends ServiceImpl<TEmpContactInfoMappe
.orderByDesc(TEmpContactInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL)); .orderByDesc(TEmpContactInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
} }
@Override
public List<TEmpContactInfo> getContactByDeptId(String deptId) {
return baseMapper.getContactByDeptId(deptId);
}
@Override
public List<TEmpContactInfo> getContactByIdCardList(List<String> idList) {
return baseMapper.getContactByIdCardList(idList);
}
} }
...@@ -196,6 +196,11 @@ public class TEmpDisabilityInfoServiceImpl extends ServiceImpl<TEmpDisabilityInf ...@@ -196,6 +196,11 @@ public class TEmpDisabilityInfoServiceImpl extends ServiceImpl<TEmpDisabilityInf
return baseMapper.selectList(wrapper); return baseMapper.selectList(wrapper);
} }
@Override
public List<TEmpDisabilityInfo> getTEmpDisabilityByIdCardList(List<String> idList) {
return baseMapper.getTEmpDisabilityByIdCardList(idList);
}
@Override @Override
public R<Boolean> updateByIdDiy(TEmpDisabilityInfo tEmpDisabilityInfo) { public R<Boolean> updateByIdDiy(TEmpDisabilityInfo tEmpDisabilityInfo) {
TEmpDisabilityInfo exist = baseMapper.selectOne(Wrappers.<TEmpDisabilityInfo>query().lambda() TEmpDisabilityInfo exist = baseMapper.selectOne(Wrappers.<TEmpDisabilityInfo>query().lambda()
......
...@@ -557,4 +557,9 @@ public class TEmpEducationServiceImpl extends ServiceImpl<TEmpEducationMapper, T ...@@ -557,4 +557,9 @@ public class TEmpEducationServiceImpl extends ServiceImpl<TEmpEducationMapper, T
return empEducation; return empEducation;
} }
@Override
public List<TEmpEducation> getTEmpEducationByIdCard(List<String> idCardList) {
return baseMapper.getTEmpEducationByIdCard(idCardList);
}
} }
...@@ -24,7 +24,7 @@ import lombok.extern.log4j.Log4j2; ...@@ -24,7 +24,7 @@ import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 预入职-员工 * 预入职-员工
* *
* @author hgw * @author hgw
* @date 2024-06-17 11:24:00 * @date 2024-06-17 11:24:00
...@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service; ...@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
@Service @Service
public class TPreEmpDeclarationServiceImpl extends ServiceImpl<TPreEmpDeclarationMapper, TPreEmpDeclaration> implements TPreEmpDeclarationService { public class TPreEmpDeclarationServiceImpl extends ServiceImpl<TPreEmpDeclarationMapper, TPreEmpDeclaration> implements TPreEmpDeclarationService {
/** /**
* 预入职-员工明简单分页查询 * 预入职-员工明简单分页查询
* *
* @return * @return
*/ */
......
...@@ -50,6 +50,9 @@ security: ...@@ -50,6 +50,9 @@ security:
- /tpreempmain/saveDraftPreEmpMain - /tpreempmain/saveDraftPreEmpMain
- /tpreempmain/savePreEmpMain - /tpreempmain/savePreEmpMain
- /fileUpload/uploadFileReturnAtta - /fileUpload/uploadFileReturnAtta
- /tpreempmain/getPhoneByCardAndName
- /tpreempmain/sendCode
- /tpreempmain/checkCode
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ 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)
~
-->
<!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.TArchivesExportLimitMapper">
<resultMap id="tArchivesExportLimitMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TArchivesExportLimit">
<id property="id" column="id"/>
<result property="deleteFlag" column="delete_flag"/>
<result property="type" column="type"/>
<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"/>
</resultMap>
<sql id="Base_Column_List">
a
.
id
,
a.type,
a.delete_flag,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME
</sql>
<sql id="tArchivesExportLimit_where">
<if test="tArchivesExportLimit != null">
<if test="tArchivesExportLimit.id != null and tArchivesExportLimit.id.trim() != ''">
AND a.id = #{tArchivesExportLimit.id}
</if>
<if test="tArchivesExportLimit.createBy != null and tArchivesExportLimit.createBy.trim() != ''">
AND a.CREATE_BY = #{tArchivesExportLimit.createBy}
</if>
<if test="tArchivesExportLimit.type != null">
AND a.type = #{tArchivesExportLimit.type}
</if>
</if>
</sql>
<!--tArchivesExportLimit查询-->
<select id="getLimitList" resultMap="tArchivesExportLimitMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_archives_export_limit a
<where>
a.DELETE_FLAG = 0 and a.create_time > DATE_SUB(NOW(),INTERVAL 10 MINUTE)
<include refid="tArchivesExportLimit_where"/>
</where>
</select>
</mapper>
...@@ -42,4 +42,34 @@ ...@@ -42,4 +42,34 @@
<result property="updateTime" column="UPDATE_TIME"/> <result property="updateTime" column="UPDATE_TIME"/>
<result property="badRecordFlag" column="BAD_RECORD_FLAG"/> <result property="badRecordFlag" column="BAD_RECORD_FLAG"/>
</resultMap> </resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_NAME,
a.EMP_ID,
a.EMP_IDCARD,
a.PROJECT,
a.PROJECT_CODE,
a.HAPPEN_TIME,
a.REMARK,
a.LOSE_FEE,
a.LOSE_FEE_OTHER,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_TIME,
a.SETTLE_DOMAIN,
a.BAD_RECORD_FLAG
</sql>
<select id="getBadByIdCard" resultMap="tEmpBadRecordMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_emp_bad_record a
where a.EMP_IDCARD in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY a.EMP_IDCARD
</select>
</mapper> </mapper>
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.ID, a.ID,
a.EMP_ID, a.EMP_ID,
a.EMP_IDCARD,
a.EMP_NAME, a.EMP_NAME,
a.RELATION_TYPE, a.RELATION_TYPE,
a.ADDRESS, a.ADDRESS,
...@@ -108,4 +109,24 @@ ...@@ -108,4 +109,24 @@
<include refid="tEmpContactInfo_where"/> <include refid="tEmpContactInfo_where"/>
</where> </where>
</select> </select>
<select id="getContactByDeptId" resultMap="tEmpContactInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_emp_contact_info a
left join t_employee_project b on a.EMP_IDCARD = b.EMP_IDCARD
where b.DEPT_ID = #{deptId}
GROUP BY a.EMP_IDCARD
</select>
<select id="getContactByIdCardList" resultMap="tEmpContactInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_emp_contact_info a
where a.EMP_IDCARD in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY a.EMP_IDCARD
</select>
</mapper> </mapper>
...@@ -48,9 +48,44 @@ ...@@ -48,9 +48,44 @@
<result property="infectiousName" column="INFECTIOUS_NAME"/> <result property="infectiousName" column="INFECTIOUS_NAME"/>
<result property="disabilityFlag" column="DISABILITY_FLAG"/> <result property="disabilityFlag" column="DISABILITY_FLAG"/>
<result property="otherFlag" column="OTHER_FLAG"/> <result property="otherFlag" column="OTHER_FLAG"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_ID,
a.EMP_NAME,
a.EMP_CODE,
a.EMP_IDCARD,
a.DISABILITY_NAME,
a.DISABILITY_LEVEL,
a.INJURY_IDENTIFICATION,
a.START_TIME,
a.END_TIME,
a.OCCUPATIONAL_DISEASE,
a.DELETE_FLAG,
a.SETTLE_DOMAIN,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_TIME,
a.REMARK,
a.OCCUPATIONAL_DISEASE_FLAG,
a.INFECTIOUS_DISEASE_FLAG,
a.INFECTIOUS_NAME,
a.DISABILITY_FLAG,
a.OTHER_FLAG,
a.OTHER_FLAG
</sql>
<select id="getTEmpDisabilityByIdCardList" resultMap="tEmpDisabilityInfoMap">
SELECT
</resultMap> <include refid="Base_Column_List"/>
FROM t_emp_disability_info a
where a.EMP_IDCARD in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY a.EMP_IDCARD
</select>
</mapper> </mapper>
...@@ -67,6 +67,34 @@ ...@@ -67,6 +67,34 @@
<result property="certificationName" column="CERTIFICATION_NAME"/> <result property="certificationName" column="CERTIFICATION_NAME"/>
</resultMap> </resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_ID,
a.EMP_NAME,
a.EMP_CODE,
a.EMP_IDCARD,
a.ENTRY_DATE,
a.EDUCATION_NAME,
a.GRADUTION_DATE,
a.SCHOOL,
a.EDUCATION_SYSTEM,
a.HIGH_IDENTIFICATION,
a.TYPE,
a.COLLAGE_SYSTEM,
a.DELETE_FLAG,
a.SETTLE_DOMAIN,
a.DISPATCH_FLAG,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_TIME,
a.REMARK,
a.CERTIFICATION_NAME,
a.MAJOR
</sql>
<update id="updateHighIdentification" parameterType="java.lang.String"> <update id="updateHighIdentification" parameterType="java.lang.String">
update t_emp_education update t_emp_education
set HIGH_IDENTIFICATION='1' set HIGH_IDENTIFICATION='1'
...@@ -142,4 +170,16 @@ ...@@ -142,4 +170,16 @@
</if> </if>
</if> </if>
</sql> </sql>
<select id="getTEmpEducationByIdCard" resultMap="tEmpEducationMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_emp_education a
where a.HIGH_IDENTIFICATION = '0' and a.EMP_IDCARD in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY a.EMP_IDCARD
</select>
</mapper> </mapper>
...@@ -764,6 +764,24 @@ ...@@ -764,6 +764,24 @@
</foreach> </foreach>
</select> </select>
<!-- hgw 根据身份证查询 -->
<select id="getListByDeptId" resultMap="tEmployeeInfoMap">
select
<include refid="baseParam"/>
from t_employee_info a
left join t_employee_project b on a.EMP_IDCARD = b.EMP_IDCARD
where a.DELETE_FLAG = '0' and b.DEPT_ID = #{deptId}
GROUP BY a.EMP_IDCARD
</select>
<select id="getListByDeptIdByLimit" resultMap="tEmployeeInfoMap">
select
<include refid="baseParam"/>
from t_employee_info a
left join t_employee_project b on a.EMP_IDCARD = b.EMP_IDCARD
where a.DELETE_FLAG = '0' and b.DEPT_ID = #{deptId}
limit #{limit1},#{limit2}
</select>
<select id="getListByIdCardList" resultMap="tEmployeeInfoMap"> <select id="getListByIdCardList" resultMap="tEmployeeInfoMap">
select select
<include refid="baseParam"/> <include refid="baseParam"/>
......
...@@ -159,6 +159,20 @@ public class TCheckBankNoController { ...@@ -159,6 +159,20 @@ public class TCheckBankNoController {
return tCheckBankNoService.checkBankNoBatch(list); return tCheckBankNoService.checkBankNoBatch(list);
} }
/**
* @Description: 批量银行卡号校验返回含名字
* @Author: hgw
* @Date: 2024-10-23 18:13:15
* @return: com.yifu.cloud.plus.v1.check.vo.CheckBankNoVo
**/
@Operation(description = "批量银行卡号校验返回含名字")
@SysLog("批量银行卡号校验返回含名字" )
@Inner
@PostMapping("/inner/checkBankNoAndNameBatch" )
public CheckBatchVo checkBankNoAndNameBatch(@RequestBody List<TCheckBankNo> list) throws ExecutionException, InterruptedException{
return tCheckBankNoService.checkBankNoAndNameBatch(list);
}
/** /**
* @Description: 代发户调用银行卡校验--如果其他接口也要调用,加上信息 * @Description: 代发户调用银行卡校验--如果其他接口也要调用,加上信息
* @Author: hgw * @Author: hgw
......
...@@ -65,5 +65,7 @@ public interface TCheckBankNoService extends IService<TCheckBankNo> { ...@@ -65,5 +65,7 @@ public interface TCheckBankNoService extends IService<TCheckBankNo> {
**/ **/
CheckBatchVo checkBankNoBatch(List<TCheckBankNo> list) throws ExecutionException, InterruptedException; CheckBatchVo checkBankNoBatch(List<TCheckBankNo> list) throws ExecutionException, InterruptedException;
CheckBatchVo checkBankNoAndNameBatch(List<TCheckBankNo> list) throws ExecutionException, InterruptedException;
R<List<ErrorMessage>> importDiy(InputStream inputStream); R<List<ErrorMessage>> importDiy(InputStream inputStream);
} }
...@@ -298,6 +298,130 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh ...@@ -298,6 +298,130 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
return vo; return vo;
} }
@Override
public CheckBatchVo checkBankNoAndNameBatch(List<TCheckBankNo> list) throws ExecutionException, InterruptedException{
CheckBatchVo vo = new CheckBatchVo();
List<String> noList = new ArrayList<>();
for (TCheckBankNo no : list) {
if (Common.isNotNull(no.getBankNo())) {
noList.add(no.getBankNo());
}
}
Map<String, TCheckBankNo> noMap = new HashMap<>();
if (!noList.isEmpty()) {
List<TCheckBankNo> checkBankNoList = baseMapper.getListByNoList(noList);
if (checkBankNoList != null && !checkBankNoList.isEmpty()) {
for (TCheckBankNo no : checkBankNoList) {
noMap.put(no.getBankNo() + CommonConstants.DOWN_LINE_STRING + no.getName(), no);
}
}
}
List<TCheckBankNo> noCurlist = new ArrayList<>();
TCheckBankNo cur;
Map<String, Boolean> bankMap = new HashMap<>();
for (TCheckBankNo check : list) {
cur = noMap.get(check.getBankNo() + CommonConstants.DOWN_LINE_STRING + check.getName());
if (cur != null) {
if (CommonConstants.ZERO_ONE.equals(cur.getResult())) {
bankMap.put(cur.getBankNo() + CommonConstants.DOWN_LINE_STRING + cur.getName(), cur.getName().equals(check.getName()));
} else {
if (cur.getName().equals(check.getName())) {
bankMap.put(cur.getBankNo() + CommonConstants.DOWN_LINE_STRING + cur.getName(), false);
} else {
noCurlist.add(check);
}
}
} else {
noCurlist.add(check);
}
}
List<TCheckBankNo> saveList = new ArrayList<>();
if (!noCurlist.isEmpty()) {
boolean canCheck = canCheckService.getCanCheck();
int taskSize = 4;
// 创建一个线程池
ExecutorService pool = Executors.newFixedThreadPool(taskSize);
List<Future> listF = new ArrayList<>();
if (noCurlist.size()>=4) {
int l = 4;
Callable c;
Future f;
for (int k=0;k<l;k++) {
if ((k+1)==l) {
List<TCheckBankNo> finalList = noCurlist.subList(k * (noCurlist.size() / l), noCurlist.size());
if (canCheck) {
c = new MyCallable(bankMap, finalList, saveList);
// 执行任务并获取Future对象
f = pool.submit(c);
listF.add(f);
} else {
doNomalByName(bankMap, saveList, finalList);
}
} else {
List<TCheckBankNo> finalList = noCurlist.subList(k * (noCurlist.size() / l), (k + 1) * (noCurlist.size() / l));
if (canCheck) {
c = new MyCallable(bankMap, finalList, saveList);
// 执行任务并获取Future对象
f = pool.submit(c);
listF.add(f);
} else {
doNomalByName(bankMap, saveList, finalList);
}
}
}
} else {
if (canCheck) {
Callable c = new MyCallable(bankMap, noCurlist, saveList);
// 执行任务并获取Future对象
Future f = pool.submit(c);
listF.add(f);
} else {
doNomalByName(bankMap, saveList, noCurlist);
}
}
if (canCheck) {
// 关闭线程池
pool.shutdown();
for (Future fs : listF) {
// 从Future对象上获取任务的返回值,并输出到控制台
fs.get();
}
}
//fo (TCheckBankNo no : noCurlist)
// 原代码
/*resR = ChecksUtil.checkBankNoTwo(no.getName(), no.getBankNo(), canCheck)
f (Common.isNotNull(resR) && resR.getCode() == CommonConstants.SUCCESS
&& Common.isNotNull(resR.getData()))
newNo = resR.getData()
bankMap.put(no.getBankNo(), CommonConstants.ZERO_ONE.equals(newNo.getResult()))
saveList.add(newNo)
else
bankMap.put(no.getBankNo(), false)
*/
if (!saveList.isEmpty()) {
this.saveOrUpdateBatch(saveList);
saveList.clear();
}
}
vo.setCheckMap(bankMap);
return vo;
}
private void doNomalByName(Map<String, Boolean> bankMap, List<TCheckBankNo> saveList, List<TCheckBankNo> finalList) {
TCheckBankNo newNo;
for (TCheckBankNo no : finalList) {
newNo = new TCheckBankNo();
newNo.setBankNo(no.getBankNo());
newNo.setName(no.getName());
newNo.setMessage(ChecksConstants.CHECK_CONFIG_ACCESS);
newNo.setResult("01");
newNo.setType(CommonConstants.ONE_STRING);
newNo.setRemark(ChecksConstants.CHECK_CONFIG_ACCESS);
saveList.add(newNo);
bankMap.put(no.getBankNo() + CommonConstants.DOWN_LINE_STRING + no.getName(), true);
}
}
private void doNomal(Map<String, Boolean> bankMap, List<TCheckBankNo> saveList, List<TCheckBankNo> finalList) { private void doNomal(Map<String, Boolean> bankMap, List<TCheckBankNo> saveList, List<TCheckBankNo> finalList) {
TCheckBankNo newNo; TCheckBankNo newNo;
for (TCheckBankNo no : finalList) { for (TCheckBankNo no : finalList) {
......
...@@ -115,5 +115,11 @@ ...@@ -115,5 +115,11 @@
<artifactId>lock4j-redis-template-spring-boot-starter</artifactId> <artifactId>lock4j-redis-template-spring-boot-starter</artifactId>
<version>2.2.4</version> <version>2.2.4</version>
</dependency> </dependency>
<!-- 读取excel -->
<dependency>
<groupId>com.monitorjbl</groupId>
<artifactId>xlsx-streamer</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author hgw
* @description 薪资原表识别的 列内容 vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelColumnVo {
// 列号
private int lineNum;
// 列内容
private String content;
}
package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Map;
/**
* @author hgw
* @description 薪资原表识别的 sheet vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelSheetVo {
// 数据行
private int dataNum;
// sheet名
private String sheetName;
// 解析过程发现的错误信息
private String errorInfo;
// 标题行
private List<ExcelColumnVo> titleList;
// 内容行+列
private List<Map<String, String>> contentList;
}
...@@ -62,6 +62,7 @@ public class EkpInsuranceUtil { ...@@ -62,6 +62,7 @@ public class EkpInsuranceUtil {
log.info("推送EKP开始,formValues:"+formValues); log.info("推送EKP开始,formValues:"+formValues);
ResponseEntity<String> obj = yourRestTemplate.exchange(ekpInsuranceProperties.getInsuranceUrl(), HttpMethod.POST, entity, String.class); ResponseEntity<String> obj = yourRestTemplate.exchange(ekpInsuranceProperties.getInsuranceUrl(), HttpMethod.POST, entity, String.class);
String body = obj.getBody(); String body = obj.getBody();
log.info("推送EKP结果,body:"+body);
if (StringUtils.isBlank(body)){ if (StringUtils.isBlank(body)){
log.error("交易失败:"+obj); log.error("交易失败:"+obj);
return null; return null;
...@@ -106,6 +107,7 @@ public class EkpInsuranceUtil { ...@@ -106,6 +107,7 @@ public class EkpInsuranceUtil {
//有返回值的情况 VO可以替换成具体的JavaBean //有返回值的情况 VO可以替换成具体的JavaBean
ResponseEntity<String> obj = yourRestTemplate.exchange(ekpInsuranceProperties.getInsuranceUrl(), HttpMethod.POST, entity, String.class); ResponseEntity<String> obj = yourRestTemplate.exchange(ekpInsuranceProperties.getInsuranceUrl(), HttpMethod.POST, entity, String.class);
String body = obj.getBody(); String body = obj.getBody();
log.info("推送EKP结果,body:"+body);
if (StringUtils.isBlank(body)){ if (StringUtils.isBlank(body)){
log.error(EkpConstants.SEND_FAILED); log.error(EkpConstants.SEND_FAILED);
return null; return null;
......
...@@ -147,12 +147,11 @@ ...@@ -147,12 +147,11 @@
SELECT SELECT
gongzi.fd_3b10afe8c70742 AS detailsId, gongzi.fd_3b10afe8c70742 AS detailsId,
if(gongzi.fd_3adfee4ba5ad36 = '已结算','0',if(gongzi.fd_3adfee4ba5ad36 = '结算中','1',if(gongzi.fd_3adfee4ba5ad36 = '已冻结','3','2'))) earningStatus, if(gongzi.fd_3adfee4ba5ad36 = '已结算','0',if(gongzi.fd_3adfee4ba5ad36 = '结算中','1',if(gongzi.fd_3adfee4ba5ad36 = '已冻结','3','2'))) earningStatus,
if(jiesuandan.fd_3b46bb64c5a172 = '已收','0',if(jiesuandan.fd_3b46bb64c5a172 = '垫付','2','1')) receiptStatus, if(gongzi.fd_3adfee4c0c59ee = '已收','0',if(gongzi.fd_3adfee4c0c59ee = '垫付','2','1')) receiptStatus,
if(gongzi.fd_3adfeef9440ab2 = '已结算','0',if(gongzi.fd_3adfeef9440ab2 = '结算中','1','2')) zhichuEarningStatus, if(gongzi.fd_3adfeef9440ab2 = '已结算','0',if(gongzi.fd_3adfeef9440ab2 = '结算中','1','2')) zhichuEarningStatus,
if(fukuan.fd_3b148bc0c28e48 = '已付','0','1') payStatus if(fukuan.fd_3b148bc0c28e48 = '已付','0','1') payStatus
FROM FROM
ekp_salary_info gongzi ekp_salary_info gongzi
LEFT JOIN ekp_39864c6f16e8f4f9ebc3 jiesuandan ON gongzi.fd_3adfee5dd14866 = jiesuandan.fd_3adff6ff7f48e4
LEFT JOIN ekp_db4ed54e25543f4b7a9a fukuan ON gongzi.fd_id = fukuan.fd_3b1fe00b0f5dde LEFT JOIN ekp_db4ed54e25543f4b7a9a fukuan ON gongzi.fd_id = fukuan.fd_3b1fe00b0f5dde
where where
1 = 1 1 = 1
......
...@@ -82,4 +82,18 @@ public class EkpQiwiChuchai { ...@@ -82,4 +82,18 @@ public class EkpQiwiChuchai {
@Schema(description = "数据源") @Schema(description = "数据源")
private String fdDataSource; private String fdDataSource;
// cyx-mvp1.7.0 新增字段:关联差旅费报销编号、岗位级别、业务条线归属、代为发起随行人员出差流程
@Schema(description = "关联差旅费报销编号")
private String fdSettleFormCode;
@Schema(description = "代为发起随行人员出差流程(是,否)")
private String fdPersonTravelProcess;
@Schema(description = "岗位级别")
private String fdPositionLevel;
@Schema(description = "业务条线归属")
private String fdBusinessLine;
} }
...@@ -133,4 +133,23 @@ public class QiWeiController { ...@@ -133,4 +133,23 @@ public class QiWeiController {
return wxSalaryService.getQiWeiZhaoPinAndSave(startTime, endTime); return wxSalaryService.getQiWeiZhaoPinAndSave(startTime, endTime);
} }
/**
* 手动同步当日HCM的E人事审批里的出差
* @author chenyuxi
* @date 2024-10-17
* @since 1.9.0
**/
@Operation(summary = "手动同步当日HCM的E人事审批里的出差--EKP调用接口")
@SysLog("手动同步当日HCM的E人事审批里的出差--EKP调用接口")
@GetMapping("/getEChuchaiInfo")
public R<String> getEChuchaiInfo() {
String startDay = DateUtil.addDay(0);
String endDay = DateUtil.addDay(0);
R<List<EkpQiwiChuchai>> returnR = wxSalaryService.getQiWeiChuChaiAndSave(startDay, endDay, 2);
if (returnR != null && returnR.getCode() == CommonConstants.SUCCESS) {
return R.ok();
}
return R.failed();
}
} }
...@@ -379,7 +379,8 @@ public class QiWeiServiceImpl extends ServiceImpl<EkpQiweiChuchaiMapper, EkpQiwi ...@@ -379,7 +379,8 @@ public class QiWeiServiceImpl extends ServiceImpl<EkpQiweiChuchaiMapper, EkpQiwi
} }
reimburse.setFdApplyUserName(datas.getString("applyName")); reimburse.setFdApplyUserName(datas.getString("applyName"));
reimburse.setFdSpNo(datas.getString("flowId")); reimburse.setFdSpNo(datas.getString("flowId"));
reimburse.setFdStatus(CommonConstants.ZERO_STRING); // cyx-mvp1.7.0: 关联状态默认为"未关联"
reimburse.setFdStatus("未关联");
reimburse.setCreateTime(LocalDateTime.now()); reimburse.setCreateTime(LocalDateTime.now());
reimburse.setFdApplyUserDept(datas.getString("applyDeptName")); reimburse.setFdApplyUserDept(datas.getString("applyDeptName"));
if (Common.isNotNull(datas.getString("startTimeFormat"))) { if (Common.isNotNull(datas.getString("startTimeFormat"))) {
...@@ -459,6 +460,17 @@ public class QiWeiServiceImpl extends ServiceImpl<EkpQiweiChuchaiMapper, EkpQiwi ...@@ -459,6 +460,17 @@ public class QiWeiServiceImpl extends ServiceImpl<EkpQiweiChuchaiMapper, EkpQiwi
reimburse.setFdAddressLevel(formData.getString("出差地点级别")); reimburse.setFdAddressLevel(formData.getString("出差地点级别"));
reimburse.setFdJiaoTong(formData.getString("交通补助")); reimburse.setFdJiaoTong(formData.getString("交通补助"));
reimburse.setFdCanYin(formData.getString("餐饮补助")); reimburse.setFdCanYin(formData.getString("餐饮补助"));
// cyx-mvp1.7.0 新增字段:岗位级别、业务条线归属、代为发起随行人员出差流程
reimburse.setFdPositionLevel(formData.getString("岗位级别"));
reimburse.setFdBusinessLine(formData.getString("业务条线归属"));
// 代为发起随行人员出差流程,标识含义:1:是;2:否
if(CommonConstants.ONE_STRING.equals(formData.getString("代为发起随行人员出差流程"))){
reimburse.setFdPersonTravelProcess("是");
}
if(CommonConstants.TWO_STRING.equals(formData.getString("代为发起随行人员出差流程"))){
reimburse.setFdPersonTravelProcess("否");
}
} }
cpList.add(reimburse); cpList.add(reimburse);
} }
......
...@@ -45,6 +45,8 @@ public interface TSalaryStandardOriginalService extends IService<TSalaryStandard ...@@ -45,6 +45,8 @@ public interface TSalaryStandardOriginalService extends IService<TSalaryStandard
List<TSalaryStandardOriginal> getTSalaryStandardOriginalList(TSalaryStandardOriginal tSalaryStandardOriginal); List<TSalaryStandardOriginal> getTSalaryStandardOriginalList(TSalaryStandardOriginal tSalaryStandardOriginal);
List<String> getSpecialIdCardList();
/** /**
* @param file * @param file
* @Description: 识别表头主类 * @Description: 识别表头主类
......
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