Commit 0ffb1cfc authored by hongguangwu's avatar hongguangwu

Merge branch 'develop'

parents 95f0212c b4e9a38c
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TDispatchInfoPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TFundPreDetailVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSocialPreDetailVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
......@@ -109,6 +112,9 @@ public class EmployeeRegistrationPre extends BaseEntity {
@Schema(description = "商险是否已购买 0 是 1 否")
private String socialIsBuy;
@Schema(description = "公积金是否已参保 0 是 1 否")
private String fundIsBuy;
@Schema(description = "档案所在地-县编号")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String townCode;
......@@ -143,10 +149,18 @@ public class EmployeeRegistrationPre extends BaseEntity {
@TableField(exist = false)
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "公积金待购买信息")
@TableField(exist = false)
private TDispatchInfoPreVo dispatchInfoFundPreVo;
@Schema(description = "社保流程中信息集合")
@TableField(exist = false)
private List<TSocialPreDetailVo> exitSocialInfoList;
@Schema(description = "公积金流程中信息集合")
@TableField(exist = false)
private List<TFundPreDetailVo> exitFundInfoList;
@Schema(description = "附件集合")
@TableField(exist = false)
private List<TAttaInfo> attaList;
......@@ -157,4 +171,10 @@ public class EmployeeRegistrationPre extends BaseEntity {
@TableField(exist = false)
private List<String> attaIdList;
/**
* 公积金是否可修改 可修改 true 不可修改 false
*/
@Schema(description = "公积金是否可修改")
@TableField(exist = false)
private Boolean fundUpdateFlag;
}
/*
* 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.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 org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@Data
@TableName("t_auto_fund_rule_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "公积金购买规则主表")
public class TAutoFundRuleInfo extends BaseEntity {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 项目配置ID
*/
@ExcelAttribute(name = "项目配置ID", errorInfo = "项目配置ID不能为空", maxLength = 32)
@NotBlank(message = "项目配置ID不能为空")
@Length(max = 32, message = "项目配置ID不能超过32个字符")
@ExcelProperty("项目配置ID")
@Schema(description = "项目配置ID")
private String mainId;
/**
* 是否自动触发派增(字典:0自动触发派增,1:手动派增)
*/
@ExcelAttribute(name = "是否自动触发派增", isNotEmpty = true, errorInfo = "是否自动触发派增不能为空", maxLength = 1)
@NotBlank(message = "是否自动触发派增不能为空")
@Length(max = 1, message = "是否自动触发派增不能超过1个字符")
@ExcelProperty("是否自动触发派增")
@Schema(description = "是否自动触发派增(字典:0自动触发派增,1:手动派增)")
private String autoFlag;
/**
* 派单发起时间(字典:0:起缴日期当日)
*/
@ExcelAttribute(name = "派单发起时间", maxLength = 2)
@Length(max = 2, message = "派单发起时间不能超过2个字符")
@ExcelProperty("派单发起时间")
@Schema(description = "派单发起时间(字典:0:起缴日期当日)")
private String startPeriod;
/**
* 派单发起具体时间字典:0:15:20
*/
@ExcelAttribute(name = "派单发起具体时间字典:0:15:20", maxLength = 10)
@Length(max = 10, message = "派单发起具体时间字典:0:15:20不能超过10个字符")
@ExcelProperty("派单发起具体时间字典:0:15:20")
@Schema(description = "派单发起具体时间字典:0:15:20")
private String startTime;
/**
* 派单确认时间,字典:0:派单发起当日
*/
@ExcelAttribute(name = "派单确认时间", maxLength = 50)
@Length(max = 50, message = "派单确认时间不能超过50个字符")
@ExcelProperty("派单确认时间")
@Schema(description = "派单确认时间,字典:0:派单发起当日")
private String confirmPeriod;
/**
* 派单确认具体时间:字典0:09:00
*/
@ExcelAttribute(name = "派单确认具体时间", maxLength = 10)
@Length(max = 10, message = "派单确认具体时间不能超过10个字符")
@ExcelProperty("派单确认具体时间")
@Schema(description = "派单确认具体时间:0:09:00")
private String confirmTime;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", errorInfo = "项目编码不能为空", maxLength = 50)
@NotBlank(message = "项目编码不能为空")
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目ID
*/
@ExcelAttribute(name = "项目ID", errorInfo = "项目ID不能为空", maxLength = 50)
@NotBlank(message = "项目ID不能为空")
@Length(max = 50, message = "项目ID不能超过50个字符")
@ExcelProperty("项目ID")
@Schema(description = "项目ID")
private String deptId;
}
/*
* 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.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 org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@Data
@TableName("t_auto_fund_rule_rel")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "公积金购买规则明细表")
public class TAutoFundRuleRel extends BaseEntity {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 公积金配置ID
*/
@ExcelAttribute(name = "公积金配置ID", errorInfo = "公积金配置ID不能为空", maxLength = 32)
@NotBlank(message = "公积金配置ID不能为空")
@Length(max = 32, message = "公积金配置ID不能超过32个字符")
@ExcelProperty("公积金配置ID")
@Schema(description = "公积金配置ID")
private String mainId;
/**
* 配置名称
*/
@ExcelAttribute(name = "配置名称", isNotEmpty = true, errorInfo = "配置名称不能为空", maxLength = 50)
@NotBlank(message = "配置名称不能为空")
@Length(max = 50, message = "配置名称不能超过50个字符")
@ExcelProperty("配置名称")
@Schema(description = "配置名称")
private String configName;
/**
* 公积金户ID
*/
@ExcelAttribute(name = "公积金户ID", maxLength = 50)
@Length(max = 50, message = "公积金户ID不能超过50个字符")
@ExcelProperty("公积金户ID")
@Schema(description = "公积金户ID")
private String configHouseId;
/**
* 公积金户名称
*/
@ExcelAttribute(name = "公积金户名称", maxLength = 100)
@Length(max = 100, message = "公积金户名称不能超过100个字符")
@ExcelProperty("公积金户名称")
@Schema(description = "公积金户名称")
private String configHouseName;
/**
* 公积金单位个人比例是否一致(0-是,1-否)
*/
@ExcelAttribute(name = "公积金单位个人比例是否一致)", maxLength = 1)
@Length(max = 1, message = "公积金单位个人比例是否一致不能超过1个字符")
@ExcelProperty("公积金单位个人比例是否一致")
@Schema(description = "公积金单位个人比例是否一致(0-是,1-否)")
private String fundPerFlag;
/**
* 起缴日期类型:0 入职日期 1 入职满1年次月 2 人员自定义
*/
@ExcelAttribute(name = "起缴日期类型", maxLength = 2)
@Length(max = 2, message = "起缴日期类型不能超过2个字符")
@ExcelProperty("起缴日期类型")
@Schema(description = "起缴日期类型:0 入职日期 1 入职满1年次月 2 人员自定义")
private String fundDateType;
/**
* 缴纳基数类型:0最低、1自定义、2最高、3固定基数
*/
@ExcelAttribute(name = "缴纳基数类型", maxLength = 2)
@Length(max = 2, message = "缴纳基数类型不能超过2个字符")
@ExcelProperty("缴纳基数类型")
@Schema(description = "缴纳基数类型:0最低、1自定义、2最高、3固定基数")
private String paymentType;
/**
* 公积金基数
*/
@ExcelAttribute(name = "公积金基数")
@ExcelProperty("公积金基数")
@Schema(description = "公积金基数")
private BigDecimal fundBase;
/**
* 公积金单位比例
*/
@ExcelAttribute(name = "公积金单位比例", maxLength = 30)
@Length(max = 30, message = "公积金单位比例不能超过30个字符")
@ExcelProperty("公积金单位比例")
@Schema(description = "公积金单位比例")
private String fundCompanyPer;
/**
* 公积金个人比例
*/
@ExcelAttribute(name = "公积金个人比例", maxLength = 100)
@Length(max = 100, message = "公积金个人比例不能超过100个字符")
@ExcelProperty("公积金个人比例")
@Schema(description = "公积金个人比例")
private String fundPersonalPer;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", errorInfo = "项目编码不能为空", maxLength = 50)
@NotBlank(message = "项目编码不能为空")
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目ID
*/
@ExcelAttribute(name = "项目ID", errorInfo = "项目ID不能为空", maxLength = 50)
@NotBlank(message = "项目ID不能为空")
@Length(max = 50, message = "项目ID不能超过50个字符")
@ExcelProperty("项目ID")
@Schema(description = "项目ID")
private String deptId;
/**
* 缴纳地-省(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-省(社保或公积金)")
@ExcelProperty("缴纳地-省(社保或公积金)")
@Schema(description = "缴纳地-省(社保或公积金)")
private Integer province;
/**
* 缴纳地-市(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-市(社保或公积金)")
@ExcelProperty("缴纳地-市(社保或公积金)")
@Schema(description = "缴纳地-市(社保或公积金)")
private Integer city;
/**
* 缴纳地-县(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-县(社保或公积金)")
@ExcelProperty("缴纳地-县(社保或公积金)")
@Schema(description = "缴纳地-县(社保或公积金)")
private Integer town;
/**
* 基数上限(社保或公积金)
*/
@ExcelAttribute(name = "基数上限(社保或公积金)")
@ExcelProperty("基数上限(社保或公积金)")
@Schema(description = "基数上限(社保或公积金)")
private BigDecimal upperLimit;
/**
* 基数下限(社保或公积金)
*/
@ExcelAttribute(name = "基数下限(社保或公积金)")
@ExcelProperty("基数下限(社保或公积金)")
@Schema(description = "基数下限(社保或公积金)")
private BigDecimal lowerLimit;
}
......@@ -180,5 +180,13 @@ public class TAutoInsurRuleInfo extends BaseEntity {
@ExcelProperty("项目ID")
@Schema(description = "项目ID")
private String deptId;
/**
* 续保周期——专门为续保使用的
*/
@ExcelAttribute(name = "续保周期")
@Length(max = 2, message = "续保周期不能超过2个字符")
@ExcelProperty("续保周期")
@Schema(description = "续保周期")
private String renewalPeriod;
}
......@@ -119,4 +119,11 @@ public class TAutoMainRel extends BaseEntity {
@TableField(exist = false)
private String csUserName;
/**
* 前端客服——登录名——商险续签专用
*/
@Schema(description = "前端客服登录名")
@TableField(exist = false)
private String csLoginName;
}
......@@ -551,6 +551,13 @@ public class TEmployeeContractInfo extends BaseEntity {
@TableField(exist = false)
private String preName;
/**
* 离职待办的用户名称
*/
@Schema(description = "离职待办的用户名称")
@TableField(exist = false)
private String leaveName;
/**
* 试用期(单位月)
*/
......
......@@ -52,10 +52,10 @@ public class TEmployeePreLogDetail extends BaseEntity {
/**
* 类型:1档案;2商险
*/
@ExcelAttribute(name = "类型:1档案;2商险3合同4社保", maxLength = 1)
@Length(max = 1, message = "类型:1档案;2商险3合同4社保不能超过1个字符")
@ExcelProperty("类型:1档案;2商险3合同4社保")
@Schema(description = "类型:1档案;2商险 3合同 4社保")
@ExcelAttribute(name = "类型:1档案;2商险3合同4社保5公积金", maxLength = 1)
@Length(max = 1, message = "类型:1档案;2商险3合同4社保5公积金不能超过1个字符")
@ExcelProperty("类型:1档案;2商险3合同4社保5公积金")
@Schema(description = "类型:1档案;2商险 3合同 4社保 5公积金")
private String type;
/**
* 入职确认信息表ID
......
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
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 com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
......@@ -227,6 +228,18 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty(value ="试用期")
private String tryPeriod;
/**
* id
*/
@ExcelAttribute(name = "contractId")
@ExcelProperty(value ="contractId")
private String contractId;
// 离职待办ID
@ExcelAttribute(name = "leaveId")
@ExcelProperty(value ="leaveId")
private String leaveId;
/**
* id
*/
......@@ -240,4 +253,12 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelAttribute(name = "preName")
@ExcelProperty(value ="preName")
private String preName;
/**
* 离职待办的用户名称
*/
@Schema(description = "离职待办的用户名称")
@TableField(exist = false)
private String leaveName;
}
......@@ -20,7 +20,13 @@ public class EmployeePreSocialListVo implements Serializable {
@Schema(description = "社保待购买信息")
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "公积金待购买信息")
private TDispatchInfoPreVo dispatchInfoPreFundVo;
@Schema(description = "社保流程中信息集合")
private List<TSocialPreDetailVo> exitSocialInfoList;
@Schema(description = "公积金流程中信息集合")
private List<TFundPreDetailVo> exitFundInfoList;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -123,6 +125,9 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "社保是否已参保 0 是 1 否")
private String socialIsBuy;
@Schema(description = "公积金是否已参保 0 是 1 否")
private String fundIsBuy;
@Schema(description = "身份证合集")
private List<String> idcardList;
......@@ -138,9 +143,15 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "社保待购买信息")
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "公积金待购买信息")
private TDispatchInfoPreVo dispatchInfoFundPreVo;
@Schema(description = "社保流程中信息集合")
private List<TSocialPreDetailVo> exitSocialInfoList;
@Schema(description = "公积金流程中信息集合")
private List<TFundPreDetailVo> exitFundInfoList;
@Schema(description = "附件集合")
private List<TAttaInfoSaveVo> attaList;
......@@ -148,4 +159,13 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "修改类型:1新增;2修改;3删除;4状态346为不可编辑")
private String modelType;
/**
* 公积金是否可修改 可修改 true 不可修改 false
*/
@ExcelAttribute(name = "公积金是否可修改", maxLength = 10)
@ExcelProperty("公积金是否可修改")
@Schema(description = "公积金是否可修改")
@TableField(exist = false)
private Boolean fundUpdateFlag;
}
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
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.vo.RowIndex;
import lombok.Data;
......@@ -89,4 +90,9 @@ public class EmployeeXProjectVO extends RowIndex implements Serializable {
// @NotNull(message = "是否同步减档不能为空")
// @ExcelAttribute(name = "是否同步减档",isNotEmpty = true, errorInfo = "是否同步减档不能为空",maxLength = 1)
private String isLeaveEmployee;
@TableField(exist = false)
private String leaveId;
@TableField(exist = false)
private String oldId;
}
/*
* 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.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@Data
public class TAutoFundRuleInfoSearchVo extends TAutoFundRuleInfo {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
}
/*
* 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.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@Data
public class TAutoFundRuleInfoVo extends RowIndex implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键ID 不能为空")
@Length(max = 32, message = "主键ID 不能超过32 个字符")
@ExcelAttribute(name = "主键ID", isNotEmpty = true, errorInfo = "主键ID 不能为空", maxLength = 32)
@Schema(description = "主键ID")
@ExcelProperty("主键ID")
private String id;
/**
* 项目配置ID
*/
@NotBlank(message = "项目配置ID 不能为空")
@Length(max = 32, message = "项目配置ID 不能超过32 个字符")
@ExcelAttribute(name = "项目配置ID", isNotEmpty = true, errorInfo = "项目配置ID 不能为空", maxLength = 32)
@Schema(description = "项目配置ID")
@ExcelProperty("项目配置ID")
private String mainId;
/**
* 是否自动触发派增(字典:0自动触发派增,1:手动派增)
*/
@NotBlank(message = "是否自动触发派增(字典:0自动触发派增,1:手动派增) 不能为空")
@Length(max = 1, message = "是否自动触发派增(字典:0自动触发派增,1:手动派增) 不能超过1 个字符")
@ExcelAttribute(name = "是否自动触发派增(字典:0自动触发派增,1:手动派增)", isNotEmpty = true, errorInfo = "是否自动触发派增(字典:0自动触发派增,1:手动派增) 不能为空", maxLength = 1)
@Schema(description = "是否自动触发派增(字典:0自动触发派增,1:手动派增)")
@ExcelProperty("是否自动触发派增(字典:0自动触发派增,1:手动派增)")
private String autoFlag;
/**
* 派单发起时间(字典::0:入职满1个月...入职满6个月)
*/
@Length(max = 2, message = "派单发起时间(字典::0:入职满1个月...入职满6个月) 不能超过2 个字符")
@ExcelAttribute(name = "派单发起时间(字典::0:入职满1个月...入职满6个月)", maxLength = 2)
@Schema(description = "派单发起时间(字典::0:入职满1个月...入职满6个月)")
@ExcelProperty("派单发起时间(字典::0:入职满1个月...入职满6个月)")
private String startPeriod;
/**
* 派单发起具体时间字典:0:15:20
*/
@Length(max = 10, message = "派单发起具体时间字典:0:15:20 不能超过10 个字符")
@ExcelAttribute(name = "派单发起具体时间字典:0:15:20", maxLength = 10)
@Schema(description = "派单发起具体时间字典:0:15:20")
@ExcelProperty("派单发起具体时间字典:0:15:20")
private String startTime;
/**
* 派单确认时间,字典:0:派单发起当日
*/
@Length(max = 50, message = "派单确认时间,字典:0:派单发起当日 不能超过50 个字符")
@ExcelAttribute(name = "派单确认时间,字典:0:派单发起当日", maxLength = 50)
@Schema(description = "派单确认时间,字典:0:派单发起当日")
@ExcelProperty("派单确认时间,字典:0:派单发起当日")
private String confirmPeriod;
/**
* 派单确认具体时间
*/
@Length(max = 10, message = "派单确认具体时间 不能超过10 个字符")
@ExcelAttribute(name = "派单确认具体时间", maxLength = 10)
@Schema(description = "派单确认具体时间")
@ExcelProperty("派单确认具体时间")
private String confirmTime;
/**
* 项目编码
*/
@NotBlank(message = "项目编码 不能为空")
@Length(max = 50, message = "项目编码 不能超过50 个字符")
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码 不能为空", maxLength = 50)
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
/**
* 项目ID
*/
@NotBlank(message = "项目ID 不能为空")
@Length(max = 50, message = "项目ID 不能超过50 个字符")
@ExcelAttribute(name = "项目ID", isNotEmpty = true, errorInfo = "项目ID 不能为空", maxLength = 50)
@Schema(description = "项目ID")
@ExcelProperty("项目ID")
private String deptId;
}
/*
* 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.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleRel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@Data
public class TAutoFundRuleRelSearchVo extends TAutoFundRuleRel {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
}
/*
* 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.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@Data
public class TAutoFundRuleRelVo extends RowIndex implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键ID 不能为空")
@Length(max = 32, message = "主键ID 不能超过32 个字符")
@ExcelAttribute(name = "主键ID", isNotEmpty = true, errorInfo = "主键ID 不能为空", maxLength = 32)
@Schema(description = "主键ID")
@ExcelProperty("主键ID")
private String id;
/**
* 公积金配置ID
*/
@NotBlank(message = "公积金配置ID 不能为空")
@Length(max = 32, message = "公积金配置ID 不能超过32 个字符")
@ExcelAttribute(name = "公积金配置ID", isNotEmpty = true, errorInfo = "公积金配置ID 不能为空", maxLength = 32)
@Schema(description = "公积金配置ID")
@ExcelProperty("公积金配置ID")
private String mainId;
/**
* 配置名称
*/
@NotBlank(message = "配置名称 不能为空")
@Length(max = 50, message = "配置名称 不能超过50 个字符")
@ExcelAttribute(name = "配置名称", isNotEmpty = true, errorInfo = "配置名称 不能为空", maxLength = 50)
@Schema(description = "配置名称")
@ExcelProperty("配置名称")
private String configName;
/**
* 公积金户ID
*/
@Length(max = 50, message = "公积金户ID 不能超过50 个字符")
@ExcelAttribute(name = "公积金户ID", maxLength = 50)
@Schema(description = "公积金户ID")
@ExcelProperty("公积金户ID")
private String configHouseId;
/**
* 公积金户名称
*/
@Length(max = 100, message = "公积金户名称 不能超过100 个字符")
@ExcelAttribute(name = "公积金户名称", maxLength = 100)
@Schema(description = "公积金户名称")
@ExcelProperty("公积金户名称")
private String configHouseName;
/**
* 公积金单位个人比例是否一致(0-是,1-否)
*/
@Length(max = 1, message = "公积金单位个人比例是否一致(0-是,1-否) 不能超过1 个字符")
@ExcelAttribute(name = "公积金单位个人比例是否一致(0-是,1-否)", maxLength = 1)
@Schema(description = "公积金单位个人比例是否一致(0-是,1-否)")
@ExcelProperty("公积金单位个人比例是否一致(0-是,1-否)")
private String fundPerFlag;
/**
* 起缴日期:0 入职日期
*/
@Length(max = 2, message = "起缴日期:0 入职日期 不能超过2 个字符")
@ExcelAttribute(name = "起缴日期:0 入职日期", maxLength = 2)
@Schema(description = "起缴日期:0 入职日期")
@ExcelProperty("起缴日期:0 入职日期")
private String fundDateType;
/**
* 缴纳类型:0最低、1自定义、2最高、3固定基数
*/
@Length(max = 2, message = "缴纳类型:0最低、1自定义、2最高、3固定基数 不能超过2 个字符")
@ExcelAttribute(name = "缴纳类型:0最低、1自定义、2最高、3固定基数", maxLength = 2)
@Schema(description = "缴纳类型:0最低、1自定义、2最高、3固定基数")
@ExcelProperty("缴纳类型:0最低、1自定义、2最高、3固定基数")
private String paymentType;
/**
* 公积金基数
*/
@ExcelAttribute(name = "公积金基数")
@Schema(description = "公积金基数")
@ExcelProperty("公积金基数")
private BigDecimal fundBase;
/**
* 公积金单位比例
*/
@Length(max = 30, message = "公积金单位比例 不能超过30 个字符")
@ExcelAttribute(name = "公积金单位比例", maxLength = 30)
@Schema(description = "公积金单位比例")
@ExcelProperty("公积金单位比例")
private String fundCompanyPer;
/**
* 公积金个人比例
*/
@Length(max = 100, message = "公积金个人比例 不能超过100 个字符")
@ExcelAttribute(name = "公积金个人比例", maxLength = 100)
@Schema(description = "公积金个人比例")
@ExcelProperty("公积金个人比例")
private String fundPersonalPer;
/**
* 项目编码
*/
@NotBlank(message = "项目编码 不能为空")
@Length(max = 50, message = "项目编码 不能超过50 个字符")
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码 不能为空", maxLength = 50)
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
/**
* 项目ID
*/
@NotBlank(message = "项目ID 不能为空")
@Length(max = 50, message = "项目ID 不能超过50 个字符")
@ExcelAttribute(name = "项目ID", isNotEmpty = true, errorInfo = "项目ID 不能为空", maxLength = 50)
@Schema(description = "项目ID")
@ExcelProperty("项目ID")
private String deptId;
/**
* 缴纳地-省(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-省(社保或公积金)")
@Schema(description = "缴纳地-省(社保或公积金)")
@ExcelProperty("缴纳地-省(社保或公积金)")
private Integer province;
/**
* 缴纳地-市(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-市(社保或公积金)")
@Schema(description = "缴纳地-市(社保或公积金)")
@ExcelProperty("缴纳地-市(社保或公积金)")
private Integer city;
/**
* 缴纳地-县(社保或公积金)
*/
@ExcelAttribute(name = "缴纳地-县(社保或公积金)")
@Schema(description = "缴纳地-县(社保或公积金)")
@ExcelProperty("缴纳地-县(社保或公积金)")
private Integer town;
/**
* 基数上限(社保或公积金)
*/
@ExcelAttribute(name = "基数上限(社保或公积金)")
@Schema(description = "基数上限(社保或公积金)")
@ExcelProperty("基数上限(社保或公积金)")
private BigDecimal upperLimit;
/**
* 基数下限(社保或公积金)
*/
@ExcelAttribute(name = "基数下限(社保或公积金)")
@Schema(description = "基数下限(社保或公积金)")
@ExcelProperty("基数下限(社保或公积金)")
private BigDecimal lowerLimit;
}
......@@ -52,4 +52,10 @@ public class TAutoMainRelAddVo implements Serializable {
//社保规则明细表
private List<TAutoSocialRuleRel> socialRuleRels;
//社保规则主表
private TAutoFundRuleInfo fundRuleInfo;
//社保规则明细表
private List<TAutoFundRuleRel> fundRuleRels;
}
......@@ -65,5 +65,10 @@ public class TAutoMainRelDetailVo implements Serializable {
//社保规则明细表
private List<TAutoSocialRuleRel> socialRuleRels;
//公积金规则表
private TAutoFundRuleInfo fundRuleInfo;
//公积金规则明细表
private List<TAutoFundRuleRel> fundRuleRels;
}
......@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
......@@ -220,7 +221,7 @@ public class TDispatchInfoPreVo extends RowIndex implements Serializable {
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date expectedCollectionTime;
/**
* 预计派单时间
* 预计派单时间:社保(入职日期当天 0 入职一个月 1 ...)公积金(起缴日期当日)
*/
@Schema(description = "预计派单类型 入职日期当天 0 入职一个月 1 ...")
private String expectedCollectionType;
......@@ -267,14 +268,46 @@ public class TDispatchInfoPreVo extends RowIndex implements Serializable {
@Schema(description = "入职确认信息主表id")
@ExcelProperty("入职确认信息主表id")
private String registerId;
/**
* 起缴日期类型:0 入职日期 1 入职满1年次月 2 人员自定义
*/
@ExcelAttribute(name = "起缴日期类型", maxLength = 2)
@Length(max = 2, message = "起缴日期类型不能超过2个字符")
@ExcelProperty("起缴日期类型")
@Schema(description = "起缴日期类型:0 入职日期 1 入职满1年次月 2 人员自定义")
private String fundDateType;
/**
* 起缴日期
* 公积金单位个人比例是否一致(0-是,1-否)
*/
@ExcelAttribute(name = "公积金单位个人比例是否一致)", maxLength = 1)
@Length(max = 1, message = "公积金单位个人比例是否一致不能超过1个字符")
@ExcelProperty("公积金单位个人比例是否一致")
@Schema(description = "公积金单位个人比例是否一致(0-是,1-否)")
private String fundPerFlag;
/**
* 起缴日期 (社保起缴日期)
*
*/
@ExcelAttribute(name = "起缴日期", isDate = true)
@Schema(description = "起缴日期")
@Schema(description = "起缴日期(社保起缴日期)")
@ExcelProperty("起缴日期")
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date socialStartDate;
/**
* 起缴日期 (公积金起缴日期)
*/
@ExcelAttribute(name = "起缴日期", isDate = true)
@Schema(description = "起缴日期(公积金起缴日期)")
@ExcelProperty("起缴日期")
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date fundStartDate;
/**
* 养老起缴日期
*/
......@@ -482,7 +515,7 @@ public class TDispatchInfoPreVo extends RowIndex implements Serializable {
@ExcelProperty("生育基数")
private BigDecimal birthCardinal;
/**
* 缴纳类型(0最低缴纳、1自定义缴纳、2最高缴纳)
* 缴纳类型(0最低缴纳、1自定义缴纳、2最高缴纳 (3固定基数--公积金特有)
*/
@ExcelAttribute(name = "缴纳类型")
@Schema(description = "缴纳类型(0最低缴纳、1自定义缴纳、2最高缴纳)")
......@@ -537,4 +570,63 @@ public class TDispatchInfoPreVo extends RowIndex implements Serializable {
@ExcelProperty("基数下限(社保或公积金)" )
private BigDecimal lowerLimit;
/**
* 公积金基数
*/
@ExcelAttribute(name = "公积金基数")
@ExcelProperty("公积金基数")
@Schema(description = "公积金基数")
private BigDecimal providentCardinal;
/**
* 单位公积金比例
*/
@ExcelAttribute(name = "单位公积金比例")
@Schema(description = "单位公积金比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("单位公积金比例")
private BigDecimal unitProvidentPer;
/**
* 个人公积金比例
*/
@ExcelAttribute(name = "个人公积金比例")
@Schema(description = "个人公积金比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人公积金比例")
private BigDecimal personalProvidentPer;
/**
* 公积金缴纳地-省Id
*/
@ExcelAttribute(name = "公积金缴纳地-省Id", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-省Id不能超过32个字符")
@ExcelProperty("公积金缴纳地-省Id")
@Schema(description = "公积金缴纳地-省Id")
private String fundProvinceId;
/**
* 公积金缴纳地-市Id
*/
@ExcelAttribute(name = "公积金缴纳地-市Id", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-市不能超过32个字符")
@ExcelProperty("公积金缴纳地-市Id")
@Schema(description = "公积金缴纳地-市Id")
private String fundCityId;
/**
* 公积金缴纳地-县Id
*/
@ExcelAttribute(name = "公积金缴纳地-县Id", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-县Id不能超过32个字符")
@ExcelProperty("公积金缴纳地-县Id")
@Schema(description = "公积金缴纳地-县Id")
private String fundTownId;
/**
* 公积金户ID
*/
@ExcelAttribute(name = "公积金户ID", maxLength = 50)
@Length(max = 50, message = "公积金户ID不能超过50个字符")
@ExcelProperty("公积金户ID")
@Schema(description = "公积金户ID")
private String configHouseId;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 入职确认信息公积金已购买记录
*
* @author huych
* @date 2025-09-30 16:41:57
*/
@Data
public class TFundPreDetailVo implements Serializable {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("ID")
@Schema(description = "ID")
private String id;
/**
* 公积金缴纳地-省
*/
@ExcelAttribute(name = "公积金缴纳地-省", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-省不能超过32个字符")
@ExcelProperty("公积金缴纳地-省")
@Schema(description = "公积金缴纳地-省")
private String fundProvince;
/**
* 公积金缴纳地-市
*/
@ExcelAttribute(name = "公积金缴纳地-市", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-市不能超过32个字符")
@ExcelProperty("公积金缴纳地-市")
@Schema(description = "公积金缴纳地-市")
private String fundCity;
/**
* 公积金缴纳地-县
*/
@ExcelAttribute(name = "公积金缴纳地-县", maxLength = 32)
@Length(max = 32, message = "公积金缴纳地-县不能超过32个字符")
@ExcelProperty("公积金缴纳地-县")
@Schema(description = "公积金缴纳地-县")
private String fundTown;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", maxLength = 50)
@Length(max = 50, message = "项目名称不能超过50个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String deptName;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", maxLength = 50)
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 公积金户名称
*/
@ExcelAttribute(name = "公积金户名称", maxLength = 50)
@Length(max = 50, message = "公积金户名称不能超过50个字符")
@ExcelProperty("公积金户名称")
@Schema(description = "公积金户名称")
private String fundHouseholdName;
/**
* 入职确认信息主表id
*/
@ExcelAttribute(name = "入职确认信息主表id", maxLength = 36)
@Length(max = 36, message = "入职确认信息主表id不能超过36个字符")
@ExcelProperty("入职确认信息主表id")
@Schema(description = "入职确认信息主表id")
private String registerId;
/**
* 缴费政策类型 0-最低 1-自定义 2-最高 3-固定基数
*/
private String paymentType;
/**
* 公积金状态
*/
private String fundStatus;
/**
* 派单人
*/
@ExcelAttribute(name = "派单人", maxLength = 64)
@Length(max = 64, message = "派单人不能超过64个字符")
@ExcelProperty("派单人")
@Schema(description = "派单人")
private String dispatchName;
/**
* 派单时间
*/
@ExcelAttribute(name = "派单时间")
@ExcelProperty("派单时间")
@Schema(description = "派单时间")
private String dispatchTime;
/**
* 单位公积金缴纳比例
*/
private BigDecimal unitProvidentPer;
/**
* 个人公积金缴纳比例
*/
private BigDecimal personalProvidentPer;
/**
* 单位公积金缴纳基数
*/
private BigDecimal providentCardinal;
}
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoFundRuleInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautofundruleinfo")
@Tag(name = "社保购买规则主表管理")
public class TAutoFundRuleInfoController {
private final TAutoFundRuleInfoService tAutoFundRuleInfoService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tAutoFundRuleInfo 社保购买规则主表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoFundRuleInfo>> getTAutoFundRuleInfoPage(Page<TAutoFundRuleInfo> page, TAutoFundRuleInfoSearchVo tAutoFundRuleInfo) {
return new R<>(tAutoFundRuleInfoService.getTAutoFundRuleInfoPage(page, tAutoFundRuleInfo));
}
/**
* 不分页查询
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('social_tautofundruleinfo_get')" )
public R<List<TAutoFundRuleInfo>> getTAutoFundRuleInfoNoPage(@RequestBody TAutoFundRuleInfoSearchVo tAutoFundRuleInfo) {
return R.ok(tAutoFundRuleInfoService.noPageDiy(tAutoFundRuleInfo));
}
/**
* 通过id查询社保购买规则主表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('social_tautofundruleinfo_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tautofundruleinfo_get')")
public R<TAutoFundRuleInfo> getById(@PathVariable("id") String id) {
return R.ok(tAutoFundRuleInfoService.getById(id));
}
/**
* 新增社保购买规则主表
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return R
*/
@Operation(summary = "新增社保购买规则主表", description = "新增社保购买规则主表:hasPermission('social_tautofundruleinfo_add')")
@SysLog("新增社保购买规则主表")
@PostMapping
@PreAuthorize("@pms.hasPermission('social_tautofundruleinfo_add')")
public R<Boolean> save(@RequestBody TAutoFundRuleInfo tAutoFundRuleInfo) {
return R.ok(tAutoFundRuleInfoService.save(tAutoFundRuleInfo));
}
/**
* 修改社保购买规则主表
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return R
*/
@Operation(summary = "修改社保购买规则主表", description = "修改社保购买规则主表:hasPermission('social_tautofundruleinfo_edit')")
@SysLog("修改社保购买规则主表")
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tautofundruleinfo_edit')")
public R<Boolean> updateById(@RequestBody TAutoFundRuleInfo tAutoFundRuleInfo) {
return R.ok(tAutoFundRuleInfoService.updateById(tAutoFundRuleInfo));
}
/**
* 通过id删除社保购买规则主表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除社保购买规则主表", description = "通过id删除社保购买规则主表:hasPermission('social_tautofundruleinfo_del')")
@SysLog("通过id删除社保购买规则主表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tautofundruleinfo_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoFundRuleInfoService.removeById(id));
}
}
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleRel;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleRelSearchVo;
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.archives.service.TAutoFundRuleRelService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautofundrulerel")
@Tag(name = "社保购买规则明细表管理")
public class TAutoFundRuleRelController {
private final TAutoFundRuleRelService tAutoFundRuleRelService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tAutoFundRuleRel 社保购买规则明细表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoFundRuleRel>> getTAutoFundRuleRelPage(Page<TAutoFundRuleRel> page, TAutoFundRuleRelSearchVo tAutoFundRuleRel) {
return new R<>(tAutoFundRuleRelService.getTAutoFundRuleRelPage(page, tAutoFundRuleRel));
}
/**
* 不分页查询
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('social_tautofundrulerel_get')" )
public R<List<TAutoFundRuleRel>> getTAutoFundRuleRelNoPage(@RequestBody TAutoFundRuleRelSearchVo tAutoFundRuleRel) {
return R.ok(tAutoFundRuleRelService.noPageDiy(tAutoFundRuleRel));
}
/**
* 通过id查询社保购买规则明细表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('social_tautofundrulerel_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tautofundrulerel_get')")
public R<TAutoFundRuleRel> getById(@PathVariable("id") String id) {
return R.ok(tAutoFundRuleRelService.getById(id));
}
/**
* 新增社保购买规则明细表
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return R
*/
@Operation(summary = "新增社保购买规则明细表", description = "新增社保购买规则明细表:hasPermission('social_tautofundrulerel_add')")
@SysLog("新增社保购买规则明细表")
@PostMapping
@PreAuthorize("@pms.hasPermission('social_tautofundrulerel_add')")
public R<Boolean> save(@RequestBody TAutoFundRuleRel tAutoFundRuleRel) {
return R.ok(tAutoFundRuleRelService.save(tAutoFundRuleRel));
}
/**
* 修改社保购买规则明细表
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return R
*/
@Operation(summary = "修改社保购买规则明细表", description = "修改社保购买规则明细表:hasPermission('social_tautofundrulerel_edit')")
@SysLog("修改社保购买规则明细表")
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tautofundrulerel_edit')")
public R<Boolean> updateById(@RequestBody TAutoFundRuleRel tAutoFundRuleRel) {
return R.ok(tAutoFundRuleRelService.updateById(tAutoFundRuleRel));
}
/**
* 通过id删除社保购买规则明细表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除社保购买规则明细表", description = "通过id删除社保购买规则明细表:hasPermission('social_tautofundrulerel_del')")
@SysLog("通过id删除社保购买规则明细表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tautofundrulerel_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoFundRuleRelService.removeById(id));
}
}
......@@ -33,6 +33,7 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
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 com.yifu.cloud.plus.v1.yifu.insurances.vo.AutoDeptVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -209,4 +210,17 @@ public class TAutoMainRelController {
public R<Boolean> updateAutoFlagById(@RequestParam(required = true) String id, @RequestParam(required = true) String autoFlag) {
return tAutoMainRelService.updateAutoFlagById(id, autoFlag);
}
/**
* @Description: 获取全量自动化项目,value里是续保周期
* @Author: hgw
* @Date: 2025/11/12 18:11
* @return: java.util.Map<java.lang.String, java.lang.String>
**/
@Inner
@PostMapping("/inner/getAutoDeptMap")
public AutoDeptVO getAutoDeptMap() {
return tAutoMainRelService.getAutoDeptMap();
}
}
......@@ -33,6 +33,7 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
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 com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceAlertSearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -74,6 +75,37 @@ public class TEmpContractAlertController {
setAuth(searchVo);
return R.ok(tEmpContractAlertService.pageDiy(page, searchVo));
}
/**
* 合同待续签-分页查询
* @param page 分页对象
* @param searchVo 员工合同续签待办
* @return
*/
@Operation(summary = "给自动化用的-合同待续签-分页查询", description = "合同待续签-分页查询")
@GetMapping("/getAutoPage" )
public R<IPage<TEmpContractAlert>> getAutoPage(Page page, ContractAlertSearchVo searchVo) {
setAuth(searchVo);
return R.ok(tEmpContractAlertService.getAutoPage(page, searchVo));
}
@Operation(description = "合同待续签数量查询")
@GetMapping("/getAutoContractCount")
public R<Long> getAutoContractCount(ContractAlertSearchVo searchVo) {
setAuth(searchVo);
return R.ok(tEmpContractAlertService.getAutoContractCount(searchVo));
}
/**
* 不分页查询
* @param searchVo 员工合同续签待办
* @return
*/
@Operation(summary = "给自动化用的-导出-不分页查询", description = "不分页查询")
@PostMapping("/noPageToAuto" )
public R<List<TEmpContractAlert>> noPageToAuto(@RequestBody ContractAlertSearchVo searchVo) {
setAuth(searchVo);
return R.ok(tEmpContractAlertService.noPageToAuto(searchVo));
}
/**
* 不分页查询
* @param searchVo 员工合同续签待办
......
......@@ -27,6 +27,7 @@ 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.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......@@ -291,6 +292,19 @@ public class TEmployeeContractInfoController {
return tEmployeeContractInfoService.batchImport(file.getInputStream());
}
/**
* @param paramVo
* @Description: 离职待办减少合同
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceContract")
public BaseSearchListVO leaveToReduceContract(@RequestBody BaseSearchListVO paramVo){
return tEmployeeContractInfoService.leaveToReduceContract(paramVo);
}
/**
* 批量更新-合同
*
......
......@@ -29,6 +29,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
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.MenuUtil;
......@@ -606,4 +608,31 @@ public class TEmployeeInfoController {
public Set<String> getCustomerUserMap(@RequestBody List<String> empIdCardList) {
return tEmployeeInfoService.getEmpOnlineMap(empIdCardList);
}
/**
* @Description: 查询人员的档案、项目档案、合同状态
* @Author: hgw
* @Date: 2025/11/20 17:15
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO
**/
@Operation(summary = "查询人员的档案、项目档案、合同状态", description = "查询人员的档案、项目档案、合同状态")
@Inner
@PostMapping("/inner/getEmpAndContractStatus")
public BaseSearchVO getEmpAndContractStatus(@RequestBody BaseSearchVO paramVo) {
return tEmployeeInfoService.getEmpAndContractStatus(paramVo);
}
/**
* @param paramVo
* @Description: 离职待办减少项目档案
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceEmp")
public BaseSearchListVO leaveToReduceEmp(@RequestBody BaseSearchListVO paramVo){
return tEmployeeInfoService.leaveToReduceEmp(paramVo);
}
}
......@@ -27,6 +27,7 @@ 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.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
......@@ -206,6 +207,19 @@ public class TEmployeeProjectController {
return tEmployeeProjectService.batchDeleteEmpPro(file.getInputStream());
}
/**
* @param paramVo
* @Description: 离职待办减少项目档案
* @Author: hgw
* @Date: 2025/11/22 17:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO
**/
@Inner
@PostMapping("/inner/leaveToReduceProject")
public BaseSearchListVO leaveToReduceProject(@RequestBody BaseSearchListVO paramVo){
return tEmployeeProjectService.leaveToReduceProject(paramVo);
}
/**
* 批量新增项目档案信息
*
......
/*
* 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.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@Mapper
public interface TAutoFundRuleInfoMapper extends BaseMapper<TAutoFundRuleInfo> {
/**
* 社保购买规则主表简单分页查询
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return
*/
IPage<TAutoFundRuleInfo> getTAutoFundRuleInfoPage(Page<TAutoFundRuleInfo> page, @Param("tAutoFundRuleInfo") TAutoFundRuleInfo tAutoFundRuleInfo);
}
/*
* 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.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleRel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@Mapper
public interface TAutoFundRuleRelMapper extends BaseMapper<TAutoFundRuleRel> {
/**
* 社保购买规则明细表简单分页查询
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return
*/
IPage<TAutoFundRuleRel> getTAutoFundRuleRelPage(Page<TAutoFundRuleRel> page, @Param("tAutoFundRuleRel") TAutoFundRuleRel tAutoFundRuleRel);
}
......@@ -43,6 +43,12 @@ public interface TAutoMainRelMapper extends BaseMapper<TAutoMainRel> {
*/
IPage<TAutoMainRel> getTAutoMainRelPage(Page<TAutoMainRel> page, @Param("tAutoMainRel") TAutoMainRel tAutoMainRel);
// 获取全量自动化项目与商险续保周期
List<TAutoMainRel> getAutoDeptMap();
// 获取所有自动化的项目编号
List<String> getAutoDeptNo();
Long noPageCountDiy(@Param("tAutoMainRel")TAutoMainRelSearchVo tAutoMainRel);
List<TAutoMainRelExportVo> noPageDiy(@Param("tAutoMainRel")TAutoMainRelSearchVo tAutoMainRel);
......
......@@ -114,10 +114,14 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac
void updateContractChange(@Param("idCard")String empIdcard, @Param("deptNo")String deptNo, @Param("oldDeptNo")String odlDeptNo);
String getContractByEmpIdCardAndDeptId(@Param("empIdCard") String empIdCard, @Param("deptId") String deptId);
String getContractByEmpIdCardAndDeptNo(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
String getContractByEmpIdCardAndDeptNoByEnd(@Param("empIdCard") String empIdCard, @Param("deptNo") String deptNo);
String getMinDateByCardAndDeptId(@Param("vo") IdNameNoVo vo);
void updateContractEnd( @Param("tEmployeeContractInfo")TEmployeeContractInfo tEmployeeContractInfo);
List<TEmployeeContractInfo> getContractAlertDeptNosList();
List<EmployeeContractVO> getLeaveContractList(@Param("idList") List<String> idList);
}
......@@ -161,4 +161,6 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
List<SysAreaVo> getSysAreaList(@Param("areaIdSet") Set<Integer> areaIdSet);
String getEmpInfoByIdCard(@Param("empIdCard") String empIdCard);
}
/*
* 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.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleInfoSearchVo;
import java.util.List;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
public interface TAutoFundRuleInfoService extends IService<TAutoFundRuleInfo> {
/**
* 社保购买规则主表简单分页查询
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return
*/
IPage<TAutoFundRuleInfo> getTAutoFundRuleInfoPage(Page<TAutoFundRuleInfo> page, TAutoFundRuleInfoSearchVo tAutoFundRuleInfo);
List<TAutoFundRuleInfo> noPageDiy(TAutoFundRuleInfoSearchVo searchVo);
}
/*
* 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.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleRel;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleRelSearchVo;
import java.util.List;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
public interface TAutoFundRuleRelService extends IService<TAutoFundRuleRel> {
/**
* 社保购买规则明细表简单分页查询
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return
*/
IPage<TAutoFundRuleRel> getTAutoFundRuleRelPage(Page<TAutoFundRuleRel> page, TAutoFundRuleRelSearchVo tAutoFundRuleRel);
List<TAutoFundRuleRel> noPageDiy(TAutoFundRuleRelSearchVo searchVo);
}
......@@ -28,6 +28,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelSearchVo;
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.insurances.vo.AutoDeptVO;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
......@@ -66,5 +67,8 @@ public interface TAutoMainRelService extends IService<TAutoMainRel> {
Map<String, String> getProjectAutoSetMap(List<String> departNos);
// 获取全量自动化项目,value里是续保周期
AutoDeptVO getAutoDeptMap();
R<Boolean> updateAutoFlagById(String id, String autoFlag);
}
......@@ -41,7 +41,12 @@ import java.util.List;
public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo);
// 给自动化用的-合同待续签-分页查询
IPage<TEmpContractAlert> getAutoPage(Page page, ContractAlertSearchVo searchVo);
// 合同待续签数量查询
long getAutoContractCount(ContractAlertSearchVo searchVo);
List<TEmpContractAlert> noPageToAuto(ContractAlertSearchVo searchVo);
List<TEmpContractAlert> listDiy(ContractAlertSearchVo searchVo);
void listExport(HttpServletResponse response, ContractAlertSearchVo searchVo);
......
......@@ -24,6 +24,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
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.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import javax.servlet.http.HttpServletResponse;
......@@ -147,6 +148,9 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
**/
R<List<ErrorMessage>> batchImport(InputStream inputStream);
// 离职待办减少合同
BaseSearchListVO leaveToReduceContract(BaseSearchListVO paramVo);
void importContract(List<EmployeeContractVO> excelVOList, List<ErrorMessage> errorMessageList);
/**
......@@ -198,4 +202,9 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
Boolean selectExitEmpCopntract(TEmployeeAutoRegistCheckVo cardVo);
// 获取合同ID,在用,已审核
String getContractByEmpIdCardAndDeptNo(String empIdCard, String deptNo);
// 查找最近的终止合同
String getContractByEmpIdCardAndDeptNoByEnd(String empIdCard, String deptNo);
}
......@@ -25,6 +25,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
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.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import org.springframework.web.multipart.MultipartFile;
......@@ -142,6 +144,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/
R<String> restoreEmployee(String id, String projectIds);
// 离职待办减少人员档案
BaseSearchListVO leaveToReduceEmp(BaseSearchListVO paramVo);
/**
* @Description: 批量减档
* @Author: hgw
......@@ -297,4 +302,7 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
R<TEmployeeInfo> getByEmpNameAndCard(String empName, String empIdCard);
Set<String> getEmpOnlineMap(List<String> empIdCardList);
BaseSearchVO getEmpAndContractStatus(BaseSearchVO paramVo);
}
......@@ -26,6 +26,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
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.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TInsuranceUnpurchasePersonCardVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardSelectViewVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardUnprojectVo;
......@@ -112,6 +113,10 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
**/
R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream);
// 离职待办减少项目档案
BaseSearchListVO leaveToReduceProject(BaseSearchListVO paramVo);
/**
* @param inputStream
* @param isAdd
......@@ -202,6 +207,8 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
TEmployeeProject getByEmpIdAndDeptId(String empId, String deptId);
TEmployeeProject getByEmpIdCardAndDeptId(String empIdCard, String deptId);
TEmployeeProject getByEmpIdCardAndDeptNo(String empIdCard, String deptNo);
String getIsMultiByEmpIdCard(String empIdCard);
/**
* @Description: 获取已减项或已删除的项目档案信息
......
......@@ -31,6 +31,7 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import com.yifu.cloud.plus.v1.yifu.social.vo.SysBaseSetInfoVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
......@@ -806,6 +807,61 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
}
}
//1.9.17公积金自动化校验逻辑
if (employeeRegistrationPre.getServerItem().contains("公积金")) {
//根据身份证号码和项目编号查询公积金
TEmployeeAutoRegistCheckVo cardVo = new TEmployeeAutoRegistCheckVo();
cardVo.setEmpIdcard(employeeRegistrationPre.getEmpIdcard());
R<Boolean> fundFlag = socialDaprUtils.selectExitEmpFund(cardVo);
if (null != employeeRegistrationPre.getFundUpdateFlag()
&& employeeRegistrationPre.getFundUpdateFlag().booleanValue()){
//是否已购买为是需要判断公积金是否在用或者流程中
if (CommonConstants.ZERO_STRING.equals(employeeRegistrationPre.getFundIsBuy()) &&
(Common.isEmpty(fundFlag) || Boolean.TRUE.equals(!fundFlag.getData()))) {
return R.other(CommonConstants.TWO_INT, null, "未找到流程中或者在用的公积金信息!");
}
//是否已购买为否需要判断是否在用或者流程中的公积金
if (CommonConstants.ONE_STRING.equals(employeeRegistrationPre.getFundIsBuy()) &&
Common.isNotNull(fundFlag) && Boolean.TRUE.equals(fundFlag.getData()) &&
null != employeeRegistrationPre.getDispatchInfoFundPreVo()) {
return R.other(CommonConstants.TWO_INT, null, "该人员存在在途/有效的公积金数据,请将“是否已参保”调整为“是”");
}
}
//判断公积金基数 是否小于 公积金户配置的最低基数
/*if (Common.isNotNull(employeeRegistrationPre)
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo())
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo().getConfigHouseId())
&& Common.isNotNull(employeeRegistrationPre.getDispatchInfoFundPreVo().getProvidentCardinal())){
R<SysBaseSetInfoVo> resR = socialDaprUtils.getSocialHouseBaseSet(employeeRegistrationPre.getDispatchInfoFundPreVo().getConfigHouseId());
if (Common.isNotNull(resR) && resR.getData() != null) {
SysBaseSetInfoVo setInfo = resR.getData();
if (employeeRegistrationPre.getDispatchInfoFundPreVo().getProvidentCardinal().compareTo(setInfo.getLowerLimit()) < 0) {
return R.other(CommonConstants.TWO_INT,null,"公积金基数需≥当前户("+setInfo.getDepartName()+")的最低基数:"+setInfo.getLowerLimit()+"!");
}
}else {
return R.other(CommonConstants.TWO_INT,null,"获取公积金配置信息失败!");
}
}*/
//(公积金待办为在途在保)流程中的公积金数据不能修改
//查已购买公积金明细
if (null != employeeRegistrationPre.getDispatchInfoFundPreVo()
&& !Common.isEmpty(employeeRegistrationPre.getDispatchInfoFundPreVo().getId())
&& null != employeeRegistrationPre.getFundUpdateFlag()
&& employeeRegistrationPre.getFundUpdateFlag().booleanValue()) {
R<Boolean> fundSdr = socialDaprUtils.getFundPreStatus(employeeRegistrationPre.getDispatchInfoFundPreVo().getId());
//公积金购买状态,0待确认,1待派单,2派单失败,3待审核,4审核不通过,5待办理,7办理成功,8办理失败
if (fundSdr != null && null != fundSdr.getData()
&& fundSdr.getData().booleanValue()) {
return R.failed("流程中的公积金待购买数据不可修改!");
}
}
//更新合同签署状态
if (null != employeeRegistrationPre.getDispatchInfoFundPreVo()) {
employeeRegistrationPre.getDispatchInfoFundPreVo().setContractStatus(flag ? CommonConstants.ZERO_STRING : CommonConstants.ONE_STRING);
}
}
//操作记录中字典值的转化
String natureItemBefore = null;
String natureItemAfter = null;
......@@ -1602,6 +1658,15 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
pre.setDispatchInfoPreVo(socialSdr.getData().getDispatchInfoPreVo());
}
}
// 查已购买公积金明细
R<EmployeePreSocialListVo> fundsdr = socialDaprUtils.getFundPreInfoList(id);
if (fundsdr != null && fundsdr.getData() != null) {
if (null != fundsdr.getData().getExitFundInfoList()) {
pre.setExitFundInfoList(fundsdr.getData().getExitFundInfoList());
} else if (null != fundsdr.getData().getDispatchInfoPreFundVo()) {
pre.setDispatchInfoFundPreVo(fundsdr.getData().getDispatchInfoPreFundVo());
}
}
}
return pre;
}
......
......@@ -35,6 +35,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
......@@ -67,6 +69,8 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
private static final String FASC_NO_EMP_CONTRACT = "未找到自动生成的员工合同";
private static final String FASC_NO_TEMPLATE = "未找到新法大大模板";
private static final Logger logger = LoggerFactory.getLogger(FascService.class);
@Override
public R<String> getTemplate(String templateName) throws ApiException {
......@@ -82,14 +86,43 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
// templateName 签署任务模板名称
List<TFascTemplate> tList = new ArrayList<>();
List<SignTemplateListInfo> listSubList;
List<TFascTemplate> tempList = new ArrayList<>();
List<TFascTemplate> tempList;
List<TFascTemplateDetail> detailList = new ArrayList<>();
List<TFascTemplateDetail> detailSubList;
// 重试次数
int maxRetries = 3;
boolean success;
Exception lastException;
// 20秒后重试、40秒后重试、60秒后重试
long millis = 20000;
for (TFascCompany company : companyList) {
listSubList = fascUtil.getTemplateList(templateName, tFascPushLogService, company);
if (listSubList != null && !listSubList.isEmpty()) {
detailSubList = new ArrayList<>();
fascUtil.getTemplateDetailList(listSubList, tempList, detailSubList, tFascPushLogService, company);
tempList = new ArrayList<>();
success = false;
lastException = null;
for (int attempt = 0; attempt < maxRetries && !success; attempt++) {
try {
fascUtil.getTemplateDetailList(listSubList, tempList, detailSubList, tFascPushLogService, company);
success = true;
} catch (Exception e) {
lastException = e;
if (attempt < maxRetries - 1) { // Don't wait after the last attempt
try {
Thread.sleep(millis * (attempt + 1)); // Wait 10 seconds
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
}
}
}
}
if (!success) {
logger.error("法大大获取模板详情,重试 " + maxRetries + " 次依然失败", lastException);
continue;
}
if (!tempList.isEmpty() && !detailSubList.isEmpty()) {
tList.addAll(tempList);
detailList.addAll(detailSubList);
......@@ -108,7 +141,9 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
List<TFascTemplate> updateMain = new ArrayList<>();
List<TFascTemplateDetail> updateDetail = new ArrayList<>();
// TODO - 这里后期要分每个公司去拉取
List<TFascTemplate> allMain = tFascTemplateService.getTFascTemplateListAll(null);
// TODO - 这里后期要分每个公司去拉取
List<TFascTemplateDetail> allDetail = tFascTemplateDetailService.getTFascTemplateDetailList(null);
List<TFascEditLog> logList = new ArrayList<>();
if (allMain == null || allMain.isEmpty()) {
......@@ -305,7 +340,7 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
private TFascCompany getTFascCompany(TEmployeeContractPre contract) {
TFascCompany company = null;
TFascCompany company = null;
if (Common.isNotNull(contract.getFadadaTemplateId())) {
TFascTemplate tFascTemplate = tFascTemplateService.getOne(Wrappers.<TFascTemplate>query()
.lambda().eq(TFascTemplate::getSignTemplateId, contract.getFadadaTemplateId())
......@@ -342,6 +377,7 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
return fascUtil.urgeTask(contract, tFascPushLogService, tEmployeeContractPreMapper, company);
}
/**
* @param id TEmployeeContractPre主键
* @Description: 获取附件
......
/*
* 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.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.entity.TAutoFundRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoFundRuleInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoFundRuleInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 公积金购买规则主表
*
* @author fxj
* @date 2025-11-06 16:26:08
*/
@Log4j2
@Service
public class TAutoFundRuleInfoServiceImpl extends ServiceImpl<TAutoFundRuleInfoMapper, TAutoFundRuleInfo> implements TAutoFundRuleInfoService {
/**
* 社保购买规则主表简单分页查询
*
* @param tAutoFundRuleInfo 社保购买规则主表
* @return
*/
@Override
public IPage<TAutoFundRuleInfo> getTAutoFundRuleInfoPage(Page<TAutoFundRuleInfo> page, TAutoFundRuleInfoSearchVo tAutoFundRuleInfo) {
return baseMapper.getTAutoFundRuleInfoPage(page, tAutoFundRuleInfo);
}
@Override
public List<TAutoFundRuleInfo> noPageDiy(TAutoFundRuleInfoSearchVo searchVo) {
LambdaQueryWrapper<TAutoFundRuleInfo> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TAutoFundRuleInfo::getId, idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0) {
wrapper.last(" limit " + searchVo.getLimitStart() + "," + searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(TAutoFundRuleInfoSearchVo searchVo) {
LambdaQueryWrapper<TAutoFundRuleInfo> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TAutoFundRuleInfo::getId, idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TAutoFundRuleInfoSearchVo entity) {
LambdaQueryWrapper<TAutoFundRuleInfo> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TAutoFundRuleInfo::getCreateTime, entity.getCreateTimes()[0])
.le(TAutoFundRuleInfo::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())) {
wrapper.eq(TAutoFundRuleInfo::getCreateName, entity.getCreateName());
}
return wrapper;
}
}
/*
* 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.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.entity.TAutoFundRuleRel;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoFundRuleRelMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoFundRuleRelService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoFundRuleRelSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 公积金购买规则明细表
*
* @author fxj
* @date 2025-11-06 16:26:07
*/
@Log4j2
@Service
public class TAutoFundRuleRelServiceImpl extends ServiceImpl<TAutoFundRuleRelMapper, TAutoFundRuleRel> implements TAutoFundRuleRelService {
/**
* 社保购买规则明细表简单分页查询
*
* @param tAutoFundRuleRel 社保购买规则明细表
* @return
*/
@Override
public IPage<TAutoFundRuleRel> getTAutoFundRuleRelPage(Page<TAutoFundRuleRel> page, TAutoFundRuleRelSearchVo tAutoFundRuleRel) {
return baseMapper.getTAutoFundRuleRelPage(page, tAutoFundRuleRel);
}
@Override
public List<TAutoFundRuleRel> noPageDiy(TAutoFundRuleRelSearchVo searchVo) {
LambdaQueryWrapper<TAutoFundRuleRel> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TAutoFundRuleRel::getId, idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0) {
wrapper.last(" limit " + searchVo.getLimitStart() + "," + searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(TAutoFundRuleRelSearchVo searchVo) {
LambdaQueryWrapper<TAutoFundRuleRel> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TAutoFundRuleRel::getId, idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TAutoFundRuleRelSearchVo entity) {
LambdaQueryWrapper<TAutoFundRuleRel> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TAutoFundRuleRel::getCreateTime, entity.getCreateTimes()[0])
.le(TAutoFundRuleRel::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())) {
wrapper.eq(TAutoFundRuleRel::getCreateName, entity.getCreateName());
}
return wrapper;
}
}
......@@ -88,6 +88,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final FeedBackDetailService feedBackDetailService;
private final TSettleDomainMapper settleDomainMapper;
private final TAutoMainRelMapper tAutoMainRelMapper;
@Autowired
private UpmsDaprUtils upmsDaprUtils;
......@@ -98,6 +99,49 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
@Autowired
private WxConfig wxConfig;
@Override
public IPage<TEmpContractAlert> getAutoPage(Page page, ContractAlertSearchVo searchVo) {
List<String> deptList = tAutoMainRelMapper.getAutoDeptNo();
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
wrapper.isNotNull(TEmpContractAlert::getId);
if (deptList != null && !deptList.isEmpty()) {
wrapper.in(TEmpContractAlert::getProjectNo, deptList);
}
if (Common.isNotNull(searchVo.getContractEndStart())){
wrapper.ge(TEmpContractAlert::getContractEnd,searchVo.getContractEndStart());
}
if (Common.isNotNull(searchVo.getContractEndEnd())){
wrapper.le(TEmpContractAlert::getContractEnd,searchVo.getContractEndEnd());
}
if (Common.isNotNull(searchVo.getAuthSql())) {
wrapper.last(searchVo.getAuthSql() + " order by CREATE_TIME desc");
} else {
wrapper.orderByDesc(BaseEntity::getCreateTime);
}
return baseMapper.selectPage(page,wrapper);
}
@Override
public long getAutoContractCount(ContractAlertSearchVo searchVo) {
List<String> deptList = tAutoMainRelMapper.getAutoDeptNo();
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
wrapper.isNotNull(TEmpContractAlert::getId);
if (deptList != null && !deptList.isEmpty()) {
wrapper.in(TEmpContractAlert::getProjectNo, deptList);
}
if (Common.isNotNull(searchVo.getContractEndStart())){
wrapper.ge(TEmpContractAlert::getContractEnd,searchVo.getContractEndStart());
}
if (Common.isNotNull(searchVo.getContractEndEnd())){
wrapper.le(TEmpContractAlert::getContractEnd,searchVo.getContractEndEnd());
}
if (Common.isNotNull(searchVo.getAuthSql())) {
wrapper.last(searchVo.getAuthSql());
}
return baseMapper.selectCount(wrapper);
}
@Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
......@@ -116,6 +160,35 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
return baseMapper.selectPage(page,wrapper);
}
@Override
public List<TEmpContractAlert> noPageToAuto(ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
wrapper.isNotNull(TEmpContractAlert::getId);
List<String> deptList = tAutoMainRelMapper.getAutoDeptNo();
if (deptList != null && !deptList.isEmpty()) {
wrapper.in(TEmpContractAlert::getProjectNo, deptList);
}
if (Common.isNotNull(idList)){
wrapper.in(TEmpContractAlert::getId,idList);
}
if (Common.isNotNull(searchVo.getContractEndStart())){
wrapper.ge(TEmpContractAlert::getContractEnd,searchVo.getContractEndStart());
}
if (Common.isNotNull(searchVo.getContractEndEnd())){
wrapper.le(TEmpContractAlert::getContractEnd,searchVo.getContractEndEnd());
}
if (Common.isNotNull(searchVo.getAuthSql())) {
if (Common.isNotNull(searchVo.getAuthSql()) && searchVo.getAuthSql().contains("a.")) {
searchVo.setAuthSql(searchVo.getAuthSql().replace("a.", " "));
}
wrapper.last(searchVo.getAuthSql());
}
return baseMapper.selectList(wrapper);
}
@Override
public List<TEmpContractAlert> listDiy(ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
......
......@@ -44,9 +44,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.*;
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.core.vo.ExcelColumnVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.ExcelSheetVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSalaryProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
......@@ -70,6 +68,8 @@ import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.http.HttpHeaders;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
......@@ -673,10 +673,70 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
}
}
private YifuUser getNewYifuUser(String userId, String userName) {
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
return new YifuUser(userId, 1L, "", userName,
userName, "0", SecurityConstants.BCRYPT + "123456",
"12345678911", true, true, true,
true,
"1", authorities, "1",
null, null,
null, null);
}
// 离职待办减少项目档案
@Override
public BaseSearchListVO leaveToReduceEmp(BaseSearchListVO paramVo) {
List<BaseSearchVO> listParam = paramVo.getListParam();
YifuUser newUser = getNewYifuUser(paramVo.getUserId(), paramVo.getUserName());
// 合同ID,离职待办ID
BaseSearchListVO baseSearchListVO = new BaseSearchListVO();
if (listParam != null && !listParam.isEmpty()) {
List<EmployeeLeaveVO> cachedDataList = new ArrayList<>();
EmployeeLeaveVO vo;
Map<Integer, String> rowLeaveMap = new HashMap<>();
int i=1;// 内部是i+2
for (BaseSearchVO param : listParam) {
i++;
vo = new EmployeeLeaveVO();
vo.setRowIndex(i);
vo.setEmpName(param.getEmpName());
vo.setEmpIdcard(param.getEmpIdCard());
vo.setLeaveReason(param.getResultIdThree());
cachedDataList.add(vo);
rowLeaveMap.put(i, param.getResultIdOne());
}
List<ErrorMessageVO> errorMessageList = new ArrayList<>();
List<com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage> errorMessageReturnList = new ArrayList<>();
// 调用原导入方法
this.batchMinusEmployeeCore(cachedDataList, errorMessageList, newUser);
// 组装对应关系,key是原id,name是新ID
if (!errorMessageList.isEmpty()) {
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage errorMessage;
for (ErrorMessageVO message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
if (message.getErrorSet() !=null && !message.getErrorSet().isEmpty()) {
errorMessage = new com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage(
message.getLineNum(), String.join(CommonConstants.COMMA_STRING, message.getErrorSet())
, null, null, rowLeaveMap.get(message.getLineNum()));
errorMessageReturnList.add(errorMessage);
}
}
}
}
baseSearchListVO.setErrorMessageList(errorMessageReturnList);
}
return baseSearchListVO;
}
@Override
public R<List<ErrorMessageVO>> batchMinusEmployee(InputStream inputStream) {
List<ErrorMessageVO> errorMessageList = new ArrayList<>();
ExcelUtil<EmployeeLeaveVO> util1 = new ExcelUtil<>(EmployeeLeaveVO.class);
YifuUser user = SecurityUtils.getUser();
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
......@@ -725,7 +785,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
if (!cachedDataList.isEmpty()) {
batchMinusEmployeeCore(cachedDataList, errorMessageList);
batchMinusEmployeeCore(cachedDataList, errorMessageList, user);
}
log.info("存储数据库成功!");
}
......@@ -750,11 +810,10 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.archives.vo.ErrorMessageVO>>
**/
public R<List<ErrorMessageVO>> batchMinusEmployeeCore(List<EmployeeLeaveVO> excelVOList
, List<ErrorMessageVO> errorMessageList) {
, List<ErrorMessageVO> errorMessageList, YifuUser user) {
if (excelVOList == null || excelVOList.isEmpty()) {
return R.failed(CommonConstants.DATA_CAN_NOT_EMPTY);
}
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
}
......@@ -4681,4 +4740,41 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
return baseMapper.getEmpOnlineMap(empIdCardList);
}
@Override
public BaseSearchVO getEmpAndContractStatus(BaseSearchVO paramVo) {
BaseSearchVO returnVo = new BaseSearchVO();
if (Common.isNotNull(paramVo) && Common.isNotNull(paramVo.getEmpIdCard()) && Common.isNotNull(paramVo.getDeptNo())) {
// 档案
String empId = baseMapper.getEmpInfoByIdCard(paramVo.getEmpIdCard());
if (Common.isNotNull(empId)) {
returnVo.setResultIdOne(empId);
returnVo.setResultIdOneStatus("在档");
}
TEmployeeProject empProject = tEmployeeProjectService.getByEmpIdCardAndDeptNo(paramVo.getEmpIdCard(), paramVo.getDeptNo());
if (empProject != null && Common.isNotNull(empProject.getId())) {
returnVo.setResultIdTwo(empProject.getId());
if (Common.isNotNull(empProject.getStatus())) {
if (CommonConstants.ZERO_INT == empProject.getStatus()) {
returnVo.setResultIdTwoStatus("草稿");
} else {
returnVo.setResultIdTwoStatus("已审核");
}
}
returnVo.setResultIdFour(tEmployeeProjectService.getIsMultiByEmpIdCard(paramVo.getEmpIdCard()));
}
String contractId = contractServicer.getContractByEmpIdCardAndDeptNo(paramVo.getEmpIdCard(), paramVo.getDeptNo());
if (Common.isNotNull(contractId)) {
returnVo.setResultIdThree(contractId);
returnVo.setResultIdThreeStatus("可用");
}
// 如果没有可用的,查找终止的,放在离职待办的详情里
String contractEndId = contractServicer.getContractByEmpIdCardAndDeptNoByEnd(paramVo.getEmpIdCard(), paramVo.getDeptNo());
returnVo.setResultIdFourStatus(contractEndId);
}
return returnVo;
}
}
......@@ -46,6 +46,8 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.EmpBusinessConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
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.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCspProperties;
......@@ -61,6 +63,8 @@ import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -125,6 +129,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
@Autowired
@Lazy
private EmployeeRegistrationPreService registrationPreService;
private StringBuilder errorTemp;
@Override
public TSalaryStandardSelectViewVo getUnProjectEmpList(List<TSalaryStandardUnprojectVo> voList) {
......@@ -603,8 +608,64 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
private YifuUser getNewYifuUser(String userId, String userName) {
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
return new YifuUser(userId, 1L, "", userName,
userName, "0", SecurityConstants.BCRYPT + "123456",
"12345678911", true, true, true,
true,
"1", authorities, "1",
null, null,
null, null);
}
// 离职待办减少项目档案
@Override
public BaseSearchListVO leaveToReduceProject(BaseSearchListVO paramVo) {
List<BaseSearchVO> listParam = paramVo.getListParam();
YifuUser newUser = getNewYifuUser(paramVo.getUserId(), paramVo.getUserName());
// 合同ID,离职待办ID
BaseSearchListVO baseSearchListVO = new BaseSearchListVO();
if (listParam != null && !listParam.isEmpty()) {
List<EmployeeXProjectVO> cachedDataList = new ArrayList<>();
EmployeeXProjectVO vo;
Map<Integer, String> rowLeaveMap = new HashMap<>();
int i=0;
for (BaseSearchVO param : listParam) {
i++;
vo = new EmployeeXProjectVO();
vo.setRowIndex(i);
vo.setEmpName(param.getEmpName());
vo.setEmpIdcard(param.getEmpIdCard());
vo.setDeptNo(param.getDeptNo());
vo.setLeaveReason(param.getResultIdThree());
vo.setLeaveId(param.getResultIdOne());
vo.setOldId(param.getSearchKey());
cachedDataList.add(vo);
rowLeaveMap.put(i, param.getResultIdOne());
}
List<ErrorMessage> errorMessageList = new ArrayList<>();
// 调用原导入方法
this.deleteListAdd(cachedDataList, errorMessageList, newUser);
// 组装对应关系,key是原id,name是新ID
if (!errorMessageList.isEmpty()) {
for (ErrorMessage message : errorMessageList) {
if (Common.isNotNull(message.getLineNum())) {
message.setKey(rowLeaveMap.get(message.getLineNum()));
}
}
}
baseSearchListVO.setErrorMessageList(errorMessageList);
}
return baseSearchListVO;
}
@Override
public R<List<ErrorMessage>> batchDeleteEmpPro(InputStream inputStream) {
YifuUser user = SecurityUtils.getUser();
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<EmployeeXProjectVO> util1 = new ExcelUtil<>(EmployeeXProjectVO.class);
// 写法2:
......@@ -650,7 +711,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
deleteListAdd(cachedDataList, errorMessageList);
deleteListAdd(cachedDataList, errorMessageList, user);
log.info("存储数据库成功!");
}
}).sheet().doRead();
......@@ -661,7 +722,8 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.ok(errorMessageList);
}
public R<List<ErrorMessage>> deleteListAdd(List<EmployeeXProjectVO> excelVOList, List<ErrorMessage> errorMessageList) {
public R<List<ErrorMessage>> deleteListAdd(List<EmployeeXProjectVO> excelVOList, List<ErrorMessage> errorMessageList
, YifuUser user) {
//项目档案更新list
List<TEmployeeProject> updProjectList = new ArrayList<>();
......@@ -683,7 +745,6 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
long contractCount;
StringBuilder errorTemp;
StringBuilder errorMessage;
YifuUser user = SecurityUtils.getUser();
// 执行数据插入操作 组装 PostDto
for (EmployeeXProjectVO excel : excelVOList) {
//根据身份证和项目编码获取项目档案
......@@ -706,10 +767,11 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
errorMessage.append(";");
errorMessage.append(leaveReason);
errorMessage.append(";");
if (Common.isEmpty(excel.getLeaveRemark())) {
errorMessage.append("");
errorMessage.append(";");
}
// 倩倩说优化一下,没有这个就不显示,且这段特殊逻辑代码不删除,以作历史记录(历史代码是wzb写的,应该是特殊要求
/*if Common.isEmpty(excel.getLeaveRemark(
errorMessage.append("")
errorMessage.append(";")
*/
if (Common.isNotNull(excel.getLeaveRemark())) {
errorMessage.append(excel.getLeaveRemark());
errorMessage.append(";");
......@@ -1496,6 +1558,33 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return employeeProject;
}
@Override
public TEmployeeProject getByEmpIdCardAndDeptNo(String empIdCard, String deptNo) {
TEmployeeProject employeeProject = null;
if (Common.isEmpty(empIdCard) || Common.isEmpty(deptNo)) {
return employeeProject;
}
employeeProject = this.getOne(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpIdcard, empIdCard)
.eq(TEmployeeProject::getDeptNo, deptNo)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT)
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.ZERO_STRING).last(CommonConstants.LAST_ONE_SQL));
return employeeProject;
}
@Override
public String getIsMultiByEmpIdCard(String empIdCard) {
TEmployeeProject employeeProject = null;
if (Common.isEmpty(empIdCard)) {
return CommonConstants.ZERO_STRING;
}
long count = baseMapper.selectCount(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpIdcard, empIdCard)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT)
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.ZERO_STRING));
return count > 1 ? CommonConstants.ONE_STRING : CommonConstants.ZERO_STRING;
}
@Override
public TEmployeeProject getByEmpIdCardAndDeptIdAndDelete(String empIdCard, String deptId) {
TEmployeeProject employeeProject = null;
......
<?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.TAutoFundRuleInfoMapper">
<resultMap id="tAutoFundRuleInfoMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleInfo">
<id property="id" column="ID"/>
<result property="mainId" column="MAIN_ID"/>
<result property="autoFlag" column="AUTO_FLAG"/>
<result property="startPeriod" column="START_PERIOD"/>
<result property="startTime" column="START_TIME"/>
<result property="confirmPeriod" column="CONFIRM_PERIOD"/>
<result property="confirmTime" column="CONFIRM_TIME"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="createBy" column="CREATE_BY"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.MAIN_ID,
a.AUTO_FLAG,
a.START_PERIOD,
a.START_TIME,
a.CONFIRM_PERIOD,
a.CONFIRM_TIME,
a.DEPT_NO,
a.DEPT_ID,
a.CREATE_TIME,
a.UPDATE_TIME,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME
</sql>
<sql id="tAutoFundRuleInfo_where">
<if test="tAutoFundRuleInfo != null">
<if test="tAutoFundRuleInfo.id != null and tAutoFundRuleInfo.id.trim() != ''">
AND a.ID = #{tAutoFundRuleInfo.id}
</if>
<if test="tAutoFundRuleInfo.mainId != null and tAutoFundRuleInfo.mainId.trim() != ''">
AND a.MAIN_ID = #{tAutoFundRuleInfo.mainId}
</if>
<if test="tAutoFundRuleInfo.autoFlag != null and tAutoFundRuleInfo.autoFlag.trim() != ''">
AND a.AUTO_FLAG = #{tAutoFundRuleInfo.autoFlag}
</if>
<if test="tAutoFundRuleInfo.startPeriod != null and tAutoFundRuleInfo.startPeriod.trim() != ''">
AND a.START_PERIOD = #{tAutoFundRuleInfo.startPeriod}
</if>
<if test="tAutoFundRuleInfo.startTime != null and tAutoFundRuleInfo.startTime.trim() != ''">
AND a.START_TIME = #{tAutoFundRuleInfo.startTime}
</if>
<if test="tAutoFundRuleInfo.confirmPeriod != null and tAutoFundRuleInfo.confirmPeriod.trim() != ''">
AND a.CONFIRM_PERIOD = #{tAutoFundRuleInfo.confirmPeriod}
</if>
<if test="tAutoFundRuleInfo.confirmTime != null and tAutoFundRuleInfo.confirmTime.trim() != ''">
AND a.CONFIRM_TIME = #{tAutoFundRuleInfo.confirmTime}
</if>
<if test="tAutoFundRuleInfo.deptNo != null and tAutoFundRuleInfo.deptNo.trim() != ''">
AND a.DEPT_NO = #{tAutoFundRuleInfo.deptNo}
</if>
<if test="tAutoFundRuleInfo.deptId != null and tAutoFundRuleInfo.deptId.trim() != ''">
AND a.DEPT_ID = #{tAutoFundRuleInfo.deptId}
</if>
<if test="tAutoFundRuleInfo.createTime != null">
AND a.CREATE_TIME = #{tAutoFundRuleInfo.createTime}
</if>
<if test="tAutoFundRuleInfo.updateTime != null">
AND a.UPDATE_TIME = #{tAutoFundRuleInfo.updateTime}
</if>
<if test="tAutoFundRuleInfo.createBy != null and tAutoFundRuleInfo.createBy.trim() != ''">
AND a.CREATE_BY = #{tAutoFundRuleInfo.createBy}
</if>
<if test="tAutoFundRuleInfo.updateBy != null and tAutoFundRuleInfo.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tAutoFundRuleInfo.updateBy}
</if>
<if test="tAutoFundRuleInfo.createName != null and tAutoFundRuleInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tAutoFundRuleInfo.createName}
</if>
</if>
</sql>
<!--tAutoFundRuleInfo简单分页查询-->
<select id="getTAutoFundRuleInfoPage" resultMap="tAutoFundRuleInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_auto_fund_rule_info a
<where>
1=1
<include refid="tAutoFundRuleInfo_where"/>
</where>
</select>
</mapper>
<?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.TAutoFundRuleRelMapper">
<resultMap id="tAutoFundRuleRelMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoFundRuleRel">
<id property="id" column="ID"/>
<result property="mainId" column="MAIN_ID"/>
<result property="configName" column="CONFIG_NAME"/>
<result property="configHouseId" column="CONFIG_HOUSE_ID"/>
<result property="configHouseName" column="CONFIG_HOUSE_NAME"/>
<result property="fundPerFlag" column="FUND_PER_FLAG"/>
<result property="fundDateType" column="FUND_DATE_TYPE"/>
<result property="paymentType" column="PAYMENT_TYPE"/>
<result property="fundBase" column="FUND_BASE"/>
<result property="fundCompanyPer" column="FUND_COMPANY_PER"/>
<result property="fundPersonalPer" column="FUND_PERSONAL_PER"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="province" column="PROVINCE"/>
<result property="city" column="CITY"/>
<result property="town" column="TOWN"/>
<result property="upperLimit" column="UPPER_LIMIT"/>
<result property="lowerLimit" column="LOWER_LIMIT"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.MAIN_ID,
a.CONFIG_NAME,
a.CONFIG_HOUSE_ID,
a.CONFIG_HOUSE_NAME,
a.FUND_PER_FLAG,
a.FUND_DATE_TYPE,
a.PAYMENT_TYPE,
a.FUND_BASE,
a.FUND_COMPANY_PER,
a.FUND_PERSONAL_PER,
a.DEPT_NO,
a.DEPT_ID,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.PROVINCE,
a.CITY,
a.TOWN,
a.UPPER_LIMIT,
a.LOWER_LIMIT
</sql>
<sql id="tAutoFundRuleRel_where">
<if test="tAutoFundRuleRel != null">
<if test="tAutoFundRuleRel.id != null and tAutoFundRuleRel.id.trim() != ''">
AND a.ID = #{tAutoFundRuleRel.id}
</if>
<if test="tAutoFundRuleRel.mainId != null and tAutoFundRuleRel.mainId.trim() != ''">
AND a.MAIN_ID = #{tAutoFundRuleRel.mainId}
</if>
<if test="tAutoFundRuleRel.configName != null and tAutoFundRuleRel.configName.trim() != ''">
AND a.CONFIG_NAME = #{tAutoFundRuleRel.configName}
</if>
<if test="tAutoFundRuleRel.configHouseId != null and tAutoFundRuleRel.configHouseId.trim() != ''">
AND a.CONFIG_HOUSE_ID = #{tAutoFundRuleRel.configHouseId}
</if>
<if test="tAutoFundRuleRel.configHouseName != null and tAutoFundRuleRel.configHouseName.trim() != ''">
AND a.CONFIG_HOUSE_NAME = #{tAutoFundRuleRel.configHouseName}
</if>
<if test="tAutoFundRuleRel.fundPerFlag != null and tAutoFundRuleRel.fundPerFlag.trim() != ''">
AND a.FUND_PER_FLAG = #{tAutoFundRuleRel.fundPerFlag}
</if>
<if test="tAutoFundRuleRel.fundDateType != null and tAutoFundRuleRel.fundDateType.trim() != ''">
AND a.FUND_DATE_TYPE = #{tAutoFundRuleRel.fundDateType}
</if>
<if test="tAutoFundRuleRel.paymentType != null and tAutoFundRuleRel.paymentType.trim() != ''">
AND a.PAYMENT_TYPE = #{tAutoFundRuleRel.paymentType}
</if>
<if test="tAutoFundRuleRel.fundBase != null">
AND a.FUND_BASE = #{tAutoFundRuleRel.fundBase}
</if>
<if test="tAutoFundRuleRel.fundCompanyPer != null and tAutoFundRuleRel.fundCompanyPer.trim() != ''">
AND a.FUND_COMPANY_PER = #{tAutoFundRuleRel.fundCompanyPer}
</if>
<if test="tAutoFundRuleRel.fundPersonalPer != null and tAutoFundRuleRel.fundPersonalPer.trim() != ''">
AND a.FUND_PERSONAL_PER = #{tAutoFundRuleRel.fundPersonalPer}
</if>
<if test="tAutoFundRuleRel.deptNo != null and tAutoFundRuleRel.deptNo.trim() != ''">
AND a.DEPT_NO = #{tAutoFundRuleRel.deptNo}
</if>
<if test="tAutoFundRuleRel.deptId != null and tAutoFundRuleRel.deptId.trim() != ''">
AND a.DEPT_ID = #{tAutoFundRuleRel.deptId}
</if>
<if test="tAutoFundRuleRel.createBy != null and tAutoFundRuleRel.createBy.trim() != ''">
AND a.CREATE_BY = #{tAutoFundRuleRel.createBy}
</if>
<if test="tAutoFundRuleRel.createName != null and tAutoFundRuleRel.createName.trim() != ''">
AND a.CREATE_NAME = #{tAutoFundRuleRel.createName}
</if>
<if test="tAutoFundRuleRel.createTime != null">
AND a.CREATE_TIME = #{tAutoFundRuleRel.createTime}
</if>
<if test="tAutoFundRuleRel.updateBy != null and tAutoFundRuleRel.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tAutoFundRuleRel.updateBy}
</if>
<if test="tAutoFundRuleRel.updateTime != null">
AND a.UPDATE_TIME = #{tAutoFundRuleRel.updateTime}
</if>
<if test="tAutoFundRuleRel.province != null">
AND a.PROVINCE = #{tAutoFundRuleRel.province}
</if>
<if test="tAutoFundRuleRel.city != null">
AND a.CITY = #{tAutoFundRuleRel.city}
</if>
<if test="tAutoFundRuleRel.town != null">
AND a.TOWN = #{tAutoFundRuleRel.town}
</if>
<if test="tAutoFundRuleRel.upperLimit != null">
AND a.UPPER_LIMIT = #{tAutoFundRuleRel.upperLimit}
</if>
<if test="tAutoFundRuleRel.lowerLimit != null">
AND a.LOWER_LIMIT = #{tAutoFundRuleRel.lowerLimit}
</if>
</if>
</sql>
<!--tAutoFundRuleRel简单分页查询-->
<select id="getTAutoFundRuleRelPage" resultMap="tAutoFundRuleRelMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_auto_fund_rule_rel a
<where>
1=1
<include refid="tAutoFundRuleRel_where"/>
</where>
</select>
</mapper>
......@@ -47,6 +47,7 @@
<result property="updateTime" column="UPDATE_TIME"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="renewalPeriod" column="RENEWAL_PERIOD"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......@@ -71,7 +72,8 @@
a.UPDATE_BY,
a.UPDATE_TIME,
a.DEPT_NO,
a.DEPT_ID
a.DEPT_ID,
a.RENEWAL_PERIOD
</sql>
<sql id="tAutoInsurRuleInfo_where">
<if test="tAutoInsurRuleInfo != null">
......@@ -144,6 +146,9 @@
<if test="tAutoInsurRuleInfo.deptId != null and tAutoInsurRuleInfo.deptId.trim() != ''">
AND a.DEPT_ID = #{tAutoEmpRuleInfo.deptId}
</if>
<if test="tAutoInsurRuleInfo.renewalPeriod != null and tAutoInsurRuleInfo.renewalPeriod.trim() != ''">
AND a.RENEWAL_PERIOD = #{tAutoEmpRuleInfo.renewalPeriod}
</if>
</if>
</sql>
<!--tAutoInsurRuleInfo简单分页查询-->
......
......@@ -120,6 +120,22 @@
</where>
</select>
<!-- 获取全量自动化项目与商险续保周期 -->
<select id="getAutoDeptMap" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel">
SELECT
ifnull(r.RENEWAL_PERIOD,1) id,d.DEPT_NO deptNo,IFNULL(b.cs_name,'') csUserName,IFNULL(b.cs_login_name,'') csLoginName
FROM t_auto_main_rel d
left join t_auto_insur_rule_info r on r.MAIN_ID=d.id
left join t_settle_domain b on d.DEPT_ID = b.id
</select>
<!-- 获取全量自动化项目编码 -->
<select id="getAutoDeptNo" resultType="java.lang.String">
SELECT
d.DEPT_NO
FROM t_auto_main_rel d
</select>
<select id="noPageCountDiy" resultType="java.lang.Long">
SELECT
......
......@@ -870,6 +870,24 @@
limit 1
</select>
<select id="getContractByEmpIdCardAndDeptNo" resultType="java.lang.String">
select
e.id
from t_employee_contract_info e
where e.EMP_IDCARD = #{empIdCard} and e.DEPT_NO = #{deptNo}
and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2' AND e.IN_USE = '0'
limit 1
</select>
<!-- 查找最近一次终止的合同 -->
<select id="getContractByEmpIdCardAndDeptNoByEnd" resultType="java.lang.String">
select
e.id
from t_employee_contract_info e
where e.EMP_IDCARD = #{empIdCard} and e.DEPT_NO = #{deptNo}
and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2' AND e.IN_USE = '1' and e.SITUATION = '终止'
ORDER BY e.CREATE_TIME desc limit 1
</select>
<!-- 获取最小的审核通过的合同,税友自动生成 离职证明书使用 -->
<select id="getMinDateByCardAndDeptId" resultType="java.lang.String">
select
......@@ -887,4 +905,39 @@
a.DELETE_FLAG = 0
</where>
</select>
<!--tEmployeeContractPre合同派单查询-->
<select id="getLeaveContractList" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractVO">
SELECT
a.EMP_NAME empName,
a.EMP_IDCARD empIdcard,
a.dept_no deptNo,
'终止' situation,
a.contract_type contractName,
a.CONTRACT_SUB_NAME contractSubName,
null reason,
a.contract_Party contractParty,
if(a.CONTRACT_TERM = '' or a.CONTRACT_TERM is null,'2',a.CONTRACT_TERM) contractType,
a.CONTRACT_START as contractStart,
if(a.contract_type = '实习协议',a.CONTRACT_END,if(a.CONTRACT_TERM ='1' ,a.CONTRACT_END,null)) as contractEnd,
a.post,
if(a.working_hours = '' or a.working_hours is null,'4',a.working_hours) as workingHours,
null contractNo,
null fileCabinetNo,
null leaveDate,
null reduceReason,
null remark,
null signType,
null changeContractAndEmployee,
if(a.TRY_PERIOD = '' or a.TRY_PERIOD is null,'无',a.TRY_PERIOD) as tryPeriod
,a.id contractId
FROM t_employee_contract_info a
<where> a.id in
<foreach item="idStr" index="index" collection="idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</where>
</select>
</mapper>
......@@ -1528,4 +1528,13 @@
order by a.CREATE_TIME desc
</select>
<!-- 在档的信息 -->
<select id="getEmpInfoByIdCard" resultType="java.lang.String">
select
a.id
from t_employee_info a
where a.DELETE_FLAG = '0' and a.file_Status = 0 and a.EMP_IDCARD = #{empIdCard}
limit 1
</select>
</mapper>
......@@ -266,6 +266,10 @@ public interface CommonConstants {
char DOWN_LINE_CHAR ='_';
// 冒号 :
String COLON_STRING =":";
// 分号 ;
String SEMICOLON_STRING = ";";
// - 横 分割线 中
String CENTER_SPLIT_LINE_STRING = "-";
// 斜杠
......@@ -325,6 +329,8 @@ public interface CommonConstants {
String RESULT_DATA_SUCESS= "操作成功";
String SAVE_SUCCESS = "保存成功!";
// 保存并审核通过-合同专用,离职待办同步使用
String SAVE_AND_UPDATE = "保存成功!!";
String UPDATE_SUCCESS = "更新成功!";
......@@ -653,6 +659,7 @@ public interface CommonConstants {
List<String> processInsurancesStatus = Stream.of("1","2","5").collect(Collectors.toList());
List<String> processListPreArchivesStatus = Stream.of("0","1","2","3","4","5").collect(Collectors.toList());
String[] INSURANCE_ALERT_STATUS = {"0","1","2","3","4","5"};
List<String> deptList = Stream.of("安徽一册档案管理有限公司","安徽顾合企业管理咨询有限公司","安徽赤道线数字传媒科技有限公司","劳务业务中心","易服智享&研究院").collect(Collectors.toList());
......@@ -688,4 +695,7 @@ public interface CommonConstants {
String GU_DING = "gu_ding";
// 税友、关键字里的户:
String HU_CORE = "_户户_";
// 前端客服角色ID(全服管理者)
long CS_ROLE_ID = 1839501715787390978L;
}
......@@ -217,4 +217,13 @@ public class ExcelAttributeConstants {
public static final String GZ_PROBATION = "gz_probation";
// 瓜子的星座
public static final String GZ_CONSTEL = "gz_constel";
// 社保缴纳月份
public static final String SOCIAL_MONTH_TYPE = "social_month_type";
// 社保可补交月份
public static final String SOCIAL_OVERPAY_MOTH = "social_overpay_month";
// 公积金单边小数点
public static final String FUND_POINT_TYPE = "fund_point_type";
}
......@@ -254,4 +254,38 @@ public class BigDecimalUtils {
}
return new BigDecimal(c);
}
/**
* 判断BigDecimal值是否在指定范围内(包含边界)
* @param value 要检查的值
* @param min 最小值(包含)
* @param max 最大值(包含)
* @return 如果值在范围内返回true,否则返回false
*/
public static boolean isBetween(BigDecimal value, BigDecimal min, BigDecimal max) {
if (value == null || min == null || max == null) {
return false;
}
return value.compareTo(min) >= 0 && value.compareTo(max) <= 0;
}
/**
* 判断BigDecimal值是否在指定范围内
* @param value 要检查的值
* @param min 最小值
* @param minInclusive 最小值是否包含在内
* @param max 最大值
* @param maxInclusive 最大值是否包含在内
* @return 如果值在范围内返回true,否则返回false
*/
public static boolean isBetween(BigDecimal value, BigDecimal min, boolean minInclusive, BigDecimal max, boolean maxInclusive) {
if (value == null || min == null || max == null) {
return false;
}
boolean minCheck = minInclusive ? value.compareTo(min) >= 0 : value.compareTo(min) > 0;
boolean maxCheck = maxInclusive ? value.compareTo(max) <= 0 : value.compareTo(max) < 0;
return minCheck && maxCheck;
}
}
......@@ -148,7 +148,17 @@ public class Common {
Matcher match = pattern.matcher(str);
return match.matches() != false;
}
// 字符串为数字 可以带N位小数点
private static final Pattern NUMBER_PATTERN = compile("^-?\\d+(\\.\\d+)?$");
public static boolean isNumberStr(String str) {
// 判断字符串为数字 可以带N位小数点的正则表达式
if (str == null || str.isEmpty()) {
return false;
}
Matcher match = NUMBER_PATTERN.matcher(str);
return match.matches();
}
/**
* 允许上传的文件类型
*
......@@ -766,4 +776,47 @@ public class Common {
}
return R.ok(errorMessageList);
}
/**
* 创建一个包含指定元素的Set集合
*
* @param elements 要包含在Set中的元素
* @param <T> 元素类型
* @return 包含指定元素的Set集合
*/
public static <T> Set<T> getSet(T... elements) {
Set<T> set = new HashSet<>();
if (elements != null) {
Collections.addAll(set, elements);
}
return set;
}
/**
* 校验字符串是否符合格式 10,10;12,13 或 10.01,10;12,13
* @param str 待校验的字符串
* @return 符合格式返回true,否则返回false
*/
public static boolean validateFormat(String str) {
// 如果字符串为空或null,则不符合格式
if (str == null || str.isEmpty()) {
return false;
}
// 使用正则表达式匹配格式 10.01,10;12,13 ,数字最多两位小数
return str.matches("\\d+(\\.\\d{1,2})?,\\d+(\\.\\d{1,2})?(;\\d+(\\.\\d{1,2})?,\\d+(\\.\\d{1,2})?)*");
}
/**
* 校验字符串是否符合格式 2025-11 或 2025/11 或202511
* @param str 待校验的字符串
* @return 符合格式返回true,否则返回false
*/
public static boolean validateFormatYearMonth(String str) {
// 如果字符串为空或null,则不符合格式
if (str == null || str.isEmpty()) {
return false;
}
// 支持三种格式:2025-11、2025/11、202511
return str.matches("\\d{4}[-/]\\d{1,2}") || str.matches("\\d{6}");
}
}
package com.yifu.cloud.plus.v1.yifu.common.core.util;
import com.alibaba.excel.converters.date.DateDateConverter;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.sms.MonthObject;
import lombok.extern.slf4j.Slf4j;
......@@ -700,6 +701,20 @@ public class DateUtil {
return date;
}
/**
* @Author fxj
* @Description 将LocalDate转成Date
* @Date 16:11 2025/11/20
* @Param
* @return
**/
public static Date convertToDateByLocalDate(LocalDate localDate) {
if (localDate == null) {
return null;
}
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
public static String dateFromat(Date date, int minute) {
String dateFormat = null;
int year = Integer.parseInt(getYear(date));
......@@ -860,6 +875,24 @@ public class DateUtil {
return calendar.getTime();
}
/**
* 获得指定天数的日期
*
* @param i
* @return
* @Author fxj
* @Date 2019-09-18
**/
public static Date getDateByDayNum(int i) {
// 取时间
Date date = stringToDate(formatDate(new Date()));
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
// 把日期往后增加一个月.整数往后推,负数往前移动
calendar.add(Calendar.DAY_OF_MONTH, i);
return calendar.getTime();
}
/**
* @param @param i
* @param @return 参数
......@@ -1201,6 +1234,52 @@ public class DateUtil {
return str;
}
/**
* 获取指定月份
* @Author fxj
* @Date 2019-10-16
* @param yearMonth 格式 :LocalDateTime
* @param i
* @return
* @Description (获取指定日期后指定 ( i)个月的时间YYYYMM)
**/
public static String getYearAndMonth(Date yearMonth, int i){
String str ="";
if(yearMonth != null) {
Calendar c1 = Calendar.getInstance();
c1.setTime(yearMonth);
c1.set(Calendar.DAY_OF_MONTH, 1);
c1.set(Calendar.MONTH, c1.get(Calendar.MONTH) + i);
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH) + 1; // Calendar month is 0-based, convert to 1-based
str = year + (month < 10 ? "0" + month : Integer.toString(month));
}
return str;
}
/**
* 获取指定月份
* @Author fxj
* @Date 2019-10-16
* @param yearMonth 格式 :LocalDateTime
* @param i
* @return
* @Description (获取指定日期后指定 ( i)个月的时间YYYYMM)
**/
public static String getYearAndMonth(Date yearMonth, int i,String split){
String str ="";
if(yearMonth != null) {
Calendar c1 = Calendar.getInstance();
c1.setTime(yearMonth);
c1.set(Calendar.DAY_OF_MONTH, 1);
c1.set(Calendar.MONTH, c1.get(Calendar.MONTH) + i);
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH) + 1; // Calendar month is 0-based, convert to 1-based
str = year +split+ (month < 10 ? "0" + month : Integer.toString(month));
}
return str;
}
/**
* @param i 加减年份
* @Description: 获取当前年月,对年月加减(yyyyMM)
......@@ -1231,6 +1310,23 @@ public class DateUtil {
return c1.getTime();
}
/**
* 获取第一天
* @Author fxj
* @Date 2019-10-16
* @param date
* @return
**/
public static Date getFirstDay(Date date){
if (!Common.isNotNull(date)){
return null;
}
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
c1.set(Calendar.DATE, 1);
return c1.getTime();
}
/**
* 获取第一天
* @Author fxj
......
......@@ -27,6 +27,7 @@ public class ErrorMessage<T> implements Serializable {
* @Author: fxj
**/
private String name;
private String key;
/**
* 错误信息
*/
......@@ -36,6 +37,10 @@ public class ErrorMessage<T> implements Serializable {
*/
private T data;
// 添加默认构造函数
public ErrorMessage() {
}
public ErrorMessage(Integer lineNum, String message) {
this.lineNum = lineNum;
this.color = "red";
......@@ -67,6 +72,14 @@ public class ErrorMessage<T> implements Serializable {
this.name= name;
}
public ErrorMessage(Integer lineNum, String message, String color, String name, String key) {
this.lineNum = lineNum;
this.color = color;
this.message = message;
this.name= name;
this.key= key;
}
public ErrorMessage(Integer lineNum, Set<String> errors) {
this.lineNum = lineNum;
this.errors = errors;
......
......@@ -697,6 +697,11 @@ public class ExcelUtil <T> implements Serializable {
}
//最大值校验
if (Common.isNotNull(attr.max()) && !CommonConstants.ZERO_STRING.equals(attr.max())) {
//先判断是否为科学计数的数,然后转换成非科学计数的字符串
if (c.indexOf("E+") >= 0 && Common.isNumberStr(c.replace("E+", ""))){
//如果金额科学计数,转出正常值 如 c = 1.23456789E+9 转换成 c = 1234567890
c = new BigDecimal(c).toPlainString();
}
if (Common.isNumber(c)) {
if (attr.isDouble() && Double.doubleToLongBits(Double.valueOf(c).doubleValue()) > Double.valueOf(attr.max()).doubleValue()){
return errorInfo(attr, "_超出最大值", i);
......@@ -708,12 +713,17 @@ public class ExcelUtil <T> implements Serializable {
return errorInfo(attr, "_超出最大值", i);
}
}
} else {
}else {
return errorInfo(attr, "_必须为数字且最多两位小数", i);
}
}
//最小值校验
if (attr.min() > 0) {
//先判断是否为科学计数的数,然后转换成非科学计数的字符串
if (c.indexOf("E+") >= 0 && Common.isNumberStr(c.replace("E+", ""))){
//如果金额科学计数,转出正常值 如 c = 1.23456789E+9 转换成 c = 1234567890
c = new BigDecimal(c).toPlainString();
}
if (Common.isNumber(c)) {
if (attr.isFloat()){
if (Float.valueOf(c).compareTo(attr.min()) < CommonConstants.ZERO_INT) {
......
......@@ -17,6 +17,8 @@ public class HolidayCrawler {
* 年度法定节假日、公休日查询接口地址
*/
private static final String YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+DateUtil.getYear(new Date())+"&workday=2&order_by=1&cn=1&page=1&size=500";
private static final String NEXT_YEAR_HOLIDAY_URL = "https://api.apihubs.cn/holiday/get?field=date,weekend&year="+(DateUtil.getYearOfInt(new Date())+1)+"&workday=2&order_by=1&cn=1&page=1&size=500";
/**
* http请求工具类
*/
......@@ -42,4 +44,25 @@ public class HolidayCrawler {
}
return null;
}
public static List<Map<String,Object>> initNextYearHolidays(){
long ts = System.currentTimeMillis();
Map<String,Object> result = REST_TEMPLATE.getForObject(String.format(NEXT_YEAR_HOLIDAY_URL, ts, ts), Map.class);
if(null!=result){
String code=String.valueOf(result.get("code"));
String msg=String.valueOf(result.get("msg"));
if(code.equals("0") && msg.equals("ok")){
Map data= (Map) result.get("data");
if(null!=data){
List<Map<String,Object>> list= (List<Map<String, Object>>) data.get("list");
return list;
/*int i=0;
for(Map<String,Object> d:list){
System.out.println("i="+(++i)+" 日期="+d.get("date")+" 类型="+d.get("weekend")+" weekend_cn="+d.get("weekend_cn"));
}*/
}
}
}
return null;
}
}
/*
* 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.common.core.vo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 通用查询与返回的VO
* @Author: hgw
* @Date: 2025/11/20 15:43
* @return:
**/
@Getter
@Setter
public class BaseSearchListVO implements Serializable {
private static final long serialVersionUID = 1L;
private String userId;
private String userName;
// 商险使用
private List<String> listStringParam = new ArrayList<>();
// 其他查询参数
private List<BaseSearchVO> listParam = new ArrayList<>();
// 返回参数
private List<ErrorMessage> errorMessageList = new ArrayList<>();
}
/*
* 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.common.core.vo;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* @Description: 通用查询与返回的VO
* @Author: hgw
* @Date: 2025/11/20 15:43
* @return:
**/
@Getter
@Setter
public class BaseSearchVO implements Serializable {
private static final long serialVersionUID = 1L;
// 其他查询参数
private String searchKey;
private String empName;
// 身份证
private String empIdCard;
// 项目编码
private String deptNo;
// 操作人名称
private YifuUser newUser;
// 返回结果1(社保ID)(商险ID)(人员档案ID)
private String resultIdOne;
private String resultIdOneStatus;
// 返回结果2(公积金ID)(项目档案ID)
private String resultIdTwo;
private String resultIdTwoStatus;
// 返回结果3(合同ID)
private String resultIdThree;
private String resultIdThreeStatus;
// 返回结果4(是否多项目,0否1是)
private String resultIdFour;
private String resultIdFourStatus;
}
/*
* 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.common.core.vo;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 通用跨服务调用Vo
* @Author: hgw
* @Date: 2025-11-24 10:35:06
* @return:
**/
@Getter
@Setter
public class BaseServiceParamListVO implements Serializable {
private static final long serialVersionUID = 1L;
// 跨服务调用,多消息专用
private List<String> listParam = new ArrayList<>();
// 需处理项:1社保2公积金3商险4合同5项目档案6人员档案
private String doType;
// 结果 0失败
// @Schema(description = "社保减员:0空1无需处理2待派单3发起失败4待审核5待办理6部分办理失败8办理成功9办理失败10审核不通过")
// @Schema(description = "公积金减员:0空1无需处理2待派单3发起失败4待审核5待办理8办理成功9办理失败10审核不通过")
// @Schema(description = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回")
// @Schema(description = "合同终止:0空1无需处理2待发起3发起失败4待审核8审核通过10审核不通过")
// @Schema(description = "减项:0空1无需处理2待减项8减项成功9减项失败")
// @Schema(description = "减档:0空1无需处理2待减档8减档成功9减档失败")
private String doStatus;
// 0:失败;1:成功
private String isSuccess;
// 备注
private String remark;
// 操作人
private String userName;
}
......@@ -12,8 +12,11 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.AutoDeptVO;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TInsuranceUnpurchasePersonCardVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -590,6 +593,21 @@ public class ArchivesDaprUtil {
return res;
}
/**
* @Description: 获取全量自动化项目,value里是续保周期
* @Author: hgw
* @Date: 2025/11/12 18:25
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.insurances.vo.AutoDeptVO>
**/
public R<AutoDeptVO> getAutoDeptVO() {
R<AutoDeptVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl()
, daprArchivesProperties.getAppId(),"/tautomainrel/inner/getAutoDeptMap" , null, AutoDeptVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取自动化项目失败!");
}
return res;
}
/**
* @Author fxj
* @Description 远程接口获取非在职档案(无档案或已离职)
......@@ -649,4 +667,86 @@ public class ArchivesDaprUtil {
return HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),
"/temployeecontractpre/inner/saveContractPreInfo", JSON.toJSONString(preVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的档案、项目档案、合同状态
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getEmpAndContractStatus(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/getEmpAndContractStatus", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的档案、项目档案、合同状态失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的合同状态失败
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getEmpAndContractStatusByClose(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/getEmpAndContractStatusByClose", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的合同状态失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceContract(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeecontractinfo/inner/leaveToReduceContract", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减合同失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceProject(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeproject/inner/leaveToReduceProject", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减项目档案失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减合同
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceEmp(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/leaveToReduceEmp", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减人员档案失败!");
}
return res;
}
}
......@@ -5,6 +5,7 @@ import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationUpdateVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseServiceParamListVO;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCspProperties;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,4 +46,16 @@ public class CspDaprUtils {
public R<Boolean> updateRegistCustomerUserInfo(EmployeeRegistrationCustomerUserUpdateVo updateVo) {
return HttpDaprUtil.invokeMethodPost(daprCspProperties.getAppUrl(),daprCspProperties.getAppId(),"/employeeregistration/inner/updateRegistCustomerUserInfo", JSON.toJSONString(updateVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @Description: 社保、公积金、商险、合同办理成功或失败,更新离职待办
* @Author: hgw
* @Date: 2025/11/24 16:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
public R<String> reduceHandleToLeave(BaseServiceParamListVO vo) {
return HttpDaprUtil.invokeMethodPost(daprCspProperties.getAppUrl(),daprCspProperties.getAppId()
,"/employeeregistrationleave/inner/reduceHandleToLeave"
, vo, String.class, SecurityConstants.FROM_IN);
}
}
......@@ -4,15 +4,21 @@ import com.alibaba.fastjson.JSON;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
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;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchListVO;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprInsurancesProperties;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchReduceVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import java.util.List;
/**
* @Author hgw
* @Date 2022-11-17 10:16:59
......@@ -90,4 +96,77 @@ public class InsuranceDaprUtil {
return HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId(),
"/temployeeinsurancepre/inner/checkExitInsuanceIsProcess", JSON.toJSONString(preVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的商险状态
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getInsurancesStatus(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/insuranceDetail/inner/getInsurancesStatus", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的商险状态失败!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 查询人员的已减完成的商险(返回值,则表示有未减完成的商险
* @Author: hgw
* @Date: 2025/11/20 15:50
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchVO> getInsurancesStatusByClose(BaseSearchVO paramVo) {
R<BaseSearchVO> res = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/insuranceDetail/inner/getInsurancesStatusByClose", paramVo, BaseSearchVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("查询人员的已减完成的商险!");
}
return res;
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办确认后,更新为商险续签待办为已离职
* @Author: hgw
* @Date: 2025-11-21 14:28:20
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public void updateInsurancePreRenewToIsLeave(BaseSearchVO paramVo) {
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/tinsuranceprerenewdetail/inner/updateInsurancePreRenewToIsLeave", paramVo, String.class, SecurityConstants.FROM_IN);
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办确认后,更新为商险续签待办为已离职
* @Author: hgw
* @Date: 2025-11-21 14:28:20
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public void updateInsurancePreRenewToIsLeaveList(BaseSearchListVO paramVo) {
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/tinsuranceprerenewdetail/inner/updateInsurancePreRenewToIsLeaveList", paramVo, String.class, SecurityConstants.FROM_IN);
}
/**
* @param paramVo 查询参数,主要是身份证与项目编码
* @Description: 离职待办调用的批量派减商险
* @Author: hgw
* @Date: 2025-11-21 14:54:37
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO>
**/
public R<BaseSearchListVO> leaveToReduceInsurance(BaseSearchListVO paramVo) {
R<BaseSearchListVO> res = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId()
,"/insuranceDetail/inner/leaveToReduceInsurance", paramVo, BaseSearchListVO.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("离职待办调用的批量派减商险失败!");
}
return res;
}
}
......@@ -3,6 +3,11 @@ spring.ldap.username=cn=admin,dc=worfu,dc=com
spring.ldap.password=Yifu123456!
spring.ldap.base=dc=worfu,dc=com
#spring.ldap.urls=ldap://192.168.1.65:389
#spring.ldap.username=cn=admin,dc=worfu,dc=com
#spring.ldap.password=yifu123456!
#spring.ldap.base=dc=worfu,dc=com
#ldap\u6D4B\u8BD5\u73AF\u5883\u914D\u7F6E-hgw-2025-04-23
#spring.ldap.urls=ldap://192.168.1.65:389
#spring.ldap.password=yifu123456!
\ No newline at end of file
......@@ -33,4 +33,11 @@ public class RegistConstants {
public static final String BACK_RECEIVE = "拒绝入职";
//
public static final String BASE_REASON_TYPE = "1";
public static final String BASE_REASON_TYPE_NAME = "个人辞职";
public static final String BASE_LINK_PORT = "人员离职";
public static final String[] DO_TYPE_ARR = {"-","社保","公积金","商险","合同","项目档案","人员档案"};
public static final String[] DO_TYPE_REDUCE_ARR = {"-","社保派减成功;","公积金派减成功;","商险减员成功;","合同终止成功;","减项成功;","减档成功;"};
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.csp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 离职待办商险明细表
*
* @author hgw
* @date 2025-11-23 10:19:13
*/
@Data
@TableName("employee_registration_leave_insurance")
@Schema(description = "离职待办商险明细表")
public class EmployeeRegistrationLeaveInsurance {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 离职待办主表ID
*/
@ExcelAttribute(name = "离职待办主表ID", isNotEmpty = true, errorInfo = "离职待办主表ID不能为空", maxLength = 32)
@NotBlank(message = "离职待办主表ID不能为空")
@Length(max = 32, message = "离职待办主表ID不能超过32个字符")
@ExcelProperty("离职待办主表ID")
@Schema(description = "离职待办主表ID")
private String leaveId;
/**
* 商险ID
*/
@ExcelAttribute(name = "商险ID", maxLength = 32)
@Length(max = 32, message = "商险ID不能超过32个字符")
@ExcelProperty("商险ID")
@Schema(description = "商险ID")
private String insuranceId;
/**
* 商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回
*/
@ExcelAttribute(name = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回", maxLength = 2)
@Length(max = 2, message = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回不能超过2个字符")
@ExcelProperty("商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回")
@Schema(description = "商险退保:0空1无需处理2待派单3发起失败4待减员5待办理6减员中8减员成功9减员退回")
private String doStatusInsurance;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeave;
import com.yifu.cloud.plus.v1.csp.vo.*;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
......@@ -47,5 +48,7 @@ public interface EmployeeRegistrationMapper extends BaseMapper<EmployeeRegistrat
List<EmployeeRegistrationHrAutoExportVo> selectHrAutoExportList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);
List<EmployeeRegistration> selectRegistrationListBySure(@Param("idList") List<String> idList);
}
......@@ -78,9 +78,9 @@ public class EkpAlertTableController {
* @Param
* @return
**/
@PostMapping("/tesxWxExcelApi")
/*@PostMapping("/tesxWxExcelApi")
public void tesxWxExcelApi() {
//ekpAlertTableService.tesxWxExcelApi();
ekpAlertTableService.test();
}
}*/
}
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