Commit 264bfbeb authored by hongguangwu's avatar hongguangwu

Merge branch 'develop'

parents e14d28cf be8338f1
......@@ -10,6 +10,8 @@ public class ArchivesConstants {
public static final String EMP_BAD_RECORD="不良记录";
public static final String EMP_AUTO_RENEWAL_RECORD="员工合同续签待办";
/**
* 复档
*/
......
......@@ -88,7 +88,7 @@ public class TAutoContractRuleInfo extends BaseEntity {
@Schema(description = "确认签署时间")
private String confirmSignDate;
/**
* 续签合同发起时间类型 0 上一份合同到期前一个月
* 续签合同发起时间类型 0 上一份合同到期前一个月 最新更新为:0 上一份合同到期前第5个工作日 1 上一份合同到期后第10个工作日
*/
@ExcelAttribute(name = "续签合同发起时间类型 ")
@ExcelProperty("续签合同发起时间类型 ")
......
......@@ -61,6 +61,14 @@ public class TContractAutoLog extends BaseEntity {
@ExcelProperty("入职日期")
@Schema(description = "入职日期")
private Date joinLeaveDate;
/**
* 合同开始日期
*/
@ExcelAttribute(name = "合同开始日期", isDate = true)
@ExcelProperty("合同开始日期")
@Schema(description = "合同开始日期")
private Date contractStartDate;
/**
* 手机号码
*/
......
......@@ -317,6 +317,54 @@ public class TEmpContractAlert extends BaseEntity {
@Schema(description = "反馈时间")
private Date feedbackTime;
/**
* 预计合同发起时间
*/
@TableField(exist = false)
@ExcelAttribute(name = "预计合同发起时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("预计合同发起时间")
@Schema(description = "预计合同发起时间")
private Date expectedCollectionTime;
/**
* 签署方式:1线下签0电子签
*/
@TableField(exist = false)
@ExcelAttribute(name = "签署方式" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("签署方式")
@Schema(description = "签署方式:1线下签0电子签")
private Integer signType;
/**
* 续签状态:0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9(已归档-电子签+线下签)已完结10撤销签署
*/
@TableField(exist = false)
@ExcelAttribute(name = "续签状态" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("续签状态")
@Schema(description = "签署方式:0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9(已归档-电子签+线下签)已完结10撤销签署-客服撤销 11撤销签署-系统自动撤销")
private Integer processStatus;
/**
* 前端客服
*/
@ExcelAttribute(name = "前端客服" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("前端客服")
@Schema(description = "前端客服")
private String csName;
/**
* 前端客服
*/
@ExcelAttribute(name = "前端客服" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("前端客服")
@Schema(description = "前端客服")
private String csLoginName;
/**
* 合同截止日期
*/
......@@ -342,4 +390,12 @@ public class TEmpContractAlert extends BaseEntity {
@Schema(description = "合同岗位", name = "post")
private String post;
/**
* 是否自动化: 0 是 1 否 默认1
*/
@Length(max = 1, message = "工是否自动化不能超过1个字符")
@ExcelAttribute(name = "是否自动化", maxLength = 32)
@Schema(description = "是否自动化: 0 是 1 否 默认1", name = "autoFlag")
private String autoFlag;
}
......@@ -544,6 +544,10 @@ public class TEmployeeContractInfo extends BaseEntity {
@TableField(exist = false)
private String preId;
@Schema(description = "合同续签待办确认preNewId")
private String preNewId;
/**
* preName
*/
......@@ -566,5 +570,10 @@ public class TEmployeeContractInfo extends BaseEntity {
private String tryPeriod;
/**
* 自动化提交人
*/
@Schema(description = "自动化提交人")
@TableField(exist = false)
private String reNewSubmitter;
}
/*
* 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.*;
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 hgw
* @date 2026-02-03 14:16:10
*/
@Data
@TableName("t_gz_area")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "瓜子特殊字典")
public class TGzArea extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("ID")
@Schema(description = "ID")
private String id;
/**
* 省
*/
@ExcelAttribute(name = "省")
@ExcelProperty("省")
@Schema(description = "省")
private Integer province;
/**
* 市
*/
@ExcelAttribute(name = "市")
@ExcelProperty("市")
@Schema(description = "市")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer city;
/**
* 区县
*/
@ExcelAttribute(name = "区县")
@ExcelProperty("区县")
@Schema(description = "区县")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer town;
/**
* 皖信地址编码
*/
@ExcelAttribute(name = "皖信地址编码", isNotEmpty = true, errorInfo = "皖信地址编码不能为空", maxLength = 11)
@NotBlank(message = "皖信地址编码不能为空")
@Length(max = 11, message = "皖信地址编码不能超过11个字符")
@ExcelProperty("皖信地址编码")
@Schema(description = "皖信地址编码")
private String areaCode;
/**
* 皖信地址
*/
@ExcelAttribute(name = "皖信地址", maxLength = 50)
@Length(max = 50, message = "皖信地址不能超过50个字符")
@ExcelProperty("皖信地址")
@Schema(description = "皖信地址")
private String areaName;
/**
* 瓜子地址编码
*/
@ExcelAttribute(name = "瓜子地址编码", isNotEmpty = true, errorInfo = "瓜子地址编码不能为空", maxLength = 11)
@NotBlank(message = "瓜子地址编码不能为空")
@Length(max = 11, message = "瓜子地址编码不能超过11个字符")
@ExcelProperty("瓜子地址编码")
@Schema(description = "瓜子地址编码")
private String gzCode;
/**
* 瓜子城市名称
*/
@ExcelAttribute(name = "瓜子城市名称", maxLength = 50)
@Length(max = 50, message = "瓜子城市名称不能超过50个字符")
@ExcelProperty("瓜子城市名称")
@Schema(description = "瓜子城市名称")
private String gzName;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
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.util.Date;
/**
* @Author fxj
* @Date 2022/7/1
* @Description
* @Version 1.0
*/
@Data
public class ContractAlertConfirmResVo implements Serializable {
@ExcelAttribute(name = "项目名称")
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String deptName;
@ExcelAttribute(name = "项目编码")
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelAttribute(name = "主键" )
@Schema(description ="主键")
@ExcelIgnore
private String id;
/**
* 员工名称
*/
@ExcelAttribute(name = "员工名称" )
@Schema(description ="员工名称")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工名称")
private String empName;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号" )
@Schema(description ="身份证号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 上一份合同起止日期
*/
@Schema(description = "上一份合同起止日期")
private String lastContractEndAndStart;
/**
* 就职岗位
*/
@ExcelAttribute(name = "就职岗位" )
@Schema(description ="就职岗位")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("就职岗位")
private String post;
/**
* 合同类型
*/
@ExcelAttribute(name = "合同类型" )
@Schema(description ="合同类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同类型")
private String contractType;
/**
* 签署甲方
*/
@ExcelAttribute(name = "签署甲方", maxLength = 50)
@Length(max = 50, message = "签署甲方不能超过50个字符")
@ExcelProperty("签署甲方")
@Schema(description = "签署甲方")
private String signatory;
/**
* 签署方式
*/
@ExcelAttribute(name = "签署方式", maxLength = 32)
@ExcelProperty("签署方式")
@Schema(description = "签署方式1线下签0电子签")
private String signType;
/**
* 合同开始日期
*/
@ExcelAttribute(name = "合同开始日期" )
@Schema(description ="合同开始日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同开始日期")
private String contractStart;
/**
* 合同截止日期
*/
@ExcelAttribute(name = "合同截止日期" )
@Schema(description ="合同截止日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同截止日期")
private String contractEnd;
/**
* 合同截止日期-续签
*/
@ExcelAttribute(name = "合同截止日期-续签" )
@Schema(description ="合同截止日期-续签")
@JsonFormat(pattern = "yyyy-MM-dd")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同截止日期-续签")
private String contractEndNew;
/**
* 合同开始日期-续签
*/
@ExcelAttribute(name = "合同开始日期-续签" )
@Schema(description ="合同开始日期-续签")
@JsonFormat(pattern = "yyyy-MM-dd")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同开始日期-续签")
private String contractStartNew;
/**
* 合同ID
*/
@ExcelAttribute(name = "合同ID" , isExport = false)
@Schema(description ="合同ID")
@ExcelIgnore
private String contractId;
@ExcelAttribute(name = "错误信息")
@Schema(description = "错误信息")
@ExcelProperty("错误信息")
private String errorMsg;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
* @Author fxj
* @Date 2022/7/1
* @Description
* @Version 1.0
*/
@Data
public class ContractAlertConfirmVo implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelAttribute(name = "主键" )
@Schema(description ="主键")
@ExcelIgnore
private String id;
/**
* 员工名称
*/
@ExcelAttribute(name = "员工名称" )
@Schema(description ="员工名称")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工名称")
private String empName;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号" )
@Schema(description ="身份证号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 手机号码
*/
@Schema(description = "手机号码")
private String empPhone;
/**
* 员工类型
*/
@ExcelAttribute(name = "员工类型" )
@Schema(description ="员工类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工类型")
private String empType;
/**
* 合同类型
*/
@ExcelAttribute(name = "合同类型" )
@Schema(description ="合同类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同类型")
private String contractType;
/**
* 合同开始日期
*/
@ExcelAttribute(name = "合同开始日期" )
@Schema(description ="合同开始日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同开始日期")
private Date contractStart;
/**
* 合同截止日期
*/
@ExcelAttribute(name = "合同截止日期" )
@Schema(description ="合同截止日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同截止日期")
private Date contractEnd;
/**
* 档案地-省
*/
@ExcelAttribute(name = "档案地-省" )
@Schema(description ="档案地-省")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案地-省")
private String fileProvince;
/**
* 档案地-市
*/
@ExcelAttribute(name = "档案地-市" )
@Schema(description ="档案地-市")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案地-市")
private String fileCity;
/**
* 档案地-县
*/
@ExcelAttribute(name = "档案地-县" )
@Schema(description ="档案地-县")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案地-县")
private String fileTown;
/**
* 合同ID
*/
@ExcelAttribute(name = "合同ID" , isExport = false)
@Schema(description ="合同ID")
@ExcelIgnore
private String contractId;
@ExcelAttribute(name = "项目名称")
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String deptName;
@ExcelAttribute(name = "项目编码")
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
@ExcelAttribute(name = "错误信息")
@Schema(description = "错误信息")
@ExcelProperty("错误信息")
private String errorMsg;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
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.time.LocalDateTime;
import java.util.List;
/**
* @Author fxj
......@@ -26,6 +31,12 @@ public class ContractAlertSearchVo extends TEmpContractAlert {
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* 预计合同发起时间区间 [开始时间,结束时间]
*/
@Schema(description = "预计合同发起时间区间")
private LocalDateTime[] startEndTimecreate;
/**
* @Author fxj
* 查询数据起
......@@ -47,4 +58,49 @@ public class ContractAlertSearchVo extends TEmpContractAlert {
* 合同截止时间区间查询--截止
**/
private LocalDateTime contractEndEnd;
/**
* @Author fxj
* 合同预计发起时间区间查询--开始
**/
private LocalDateTime expectedCollectionTimeStart;
/**
* @Author fxj
* 合同预计发起时间区间查询--截止
**/
private LocalDateTime expectedCollectionTimeEnd;
/**
* @Author fxj
* 续签状态多选查询
**/
private List<String> processStatusList;
/**
* 项目编码列表
*/
@Schema(description = "项目编码列表")
private List<String> deptNoList;
/**
* 合同IDS
*/
@TableField(exist = false)
@Schema(description = "合同IDS")
private List<String> idList;
/**
* 确认信息IDS
*/
@TableField(exist = false)
@Schema(description = "确认信息IDS")
private List<String> preIdList;
@Schema(description = "处理状态数组")
@TableField(exist = false)
private List<String> statusList;
@TableField(exist = false)
@Schema(description = "前端客服")
private String customerUserLoginname;
}
/*
* 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.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPreNew;
import lombok.Data;
import java.io.Serializable;
/**
* @Author fxj
* @Description 获取合同续签待办的 续签提醒数据、续签确认数据、新续签合同信息
* @Date 16:54 2026/2/11
* @Param
* @return
**/
@Data
public class EmpContractRenewVO implements Serializable {
private static final long serialVersionUID = 1L;
//合同续签提醒数据
private TEmpContractAlert empContractAlert;
//新续签合同信息
private TEmployeeContractInfo contractInfo;
//续签确认数据
private TEmployeeContractPreNew contractPreNew;
}
/*
* 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.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPre;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPreHistory;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPreNew;
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;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
/**
* @Author fxj
* @Description 人员手机号、项目信息、提醒对应合同信息、提醒对应合同的电子签信息
* @Date 17:32 2026/2/11
**/
@Data
public class EmpProjectVO extends RowIndex implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 员工类型(字典值,0外包1派遣2代理)
*/
@ExcelAttribute(name = "员工类型",isNotEmpty = true, errorInfo = "员工类型不能为空",maxLength = 5,isDataId = true,dataType = ExcelAttributeConstants.EMP_NATRUE)
@ExcelProperty(value ="员工类型")
private String empNatrue;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名",isNotEmpty = true, errorInfo = "员工姓名不能为空",maxLength = 20)
@ExcelProperty(value ="员工姓名")
private String empName;
/**
* 身份证号码
*/
@ExcelAttribute(name = "身份证号",isNotEmpty = true, errorInfo = "身份证号不能为空",maxLength = 20)
@ExcelProperty(value ="身份证号")
private String empIdcard;
/**
* 项目编码
*/
@ExcelProperty(value ="项目编码")
@ExcelAttribute(name = "项目编码",isNotEmpty = true, errorInfo = "项目编码不能为空",maxLength = 20)
private String deptNo;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", maxLength = 50)
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String departName;
/**
* 手机号码
*/
@ExcelProperty(value = "手机号码")
@Size(max = 11, message = "手机号码不可超过11位")
private String empPhone;
/**
* 合同信息
*/
@ExcelProperty(value = "合同信息")
private TEmployeeContractInfo contractInfo;
//自动化合同续签确认信息
private TEmployeeContractPreNew preNew;
//自动化合同新签信息
private TEmployeeContractPreHistory pre;
}
......@@ -249,6 +249,13 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty(value ="preId")
private String preId;
/**
* 续签待办确认信息ID
*/
@ExcelAttribute(name = "preNewId")
@ExcelProperty(value ="preNewId")
private String preNewId;
/**
* preName
*/
......@@ -263,4 +270,12 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@TableField(exist = false)
private String leaveName;
/**
* 自动化提交人
*/
@Schema(description = "自动化提交人")
@TableField(exist = false)
private String reNewSubmitter;
}
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.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
/**
* @Author fxj
* @Date 2026/2/5
* @Description
* @Version 1.0
*/
@Data
public class TEmpContractAlertExportVo {
/**
* 员工编码
*/
@ExcelAttribute(name = "员工编码" )
@Schema(description ="员工编码")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工编码")
private String empCode;
/**
* 员工名称
*/
@ExcelAttribute(name = "员工名称" )
@Schema(description ="员工名称")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工名称")
private String empName;
/**
* 手机号码
*/
@ExcelAttribute(name = "手机号码" )
@Schema(description = "手机号码")
@ExcelProperty("手机号码")
private String empPhone;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号" )
@Schema(description ="身份证号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 合同开始日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelAttribute(name = "合同开始日期" )
@Schema(description ="合同开始日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同开始日期")
private String contractStart;
/**
* 合同截止日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelAttribute(name = "合同截止日期" )
@Schema(description ="合同截止日期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同截止日期")
private String contractEnd;
/**
* 合同岗位
*/
@Length(max = 32, message = "合同岗位不能超过32个字符")
@ExcelAttribute(name = "合同岗位", maxLength = 32, needExport = true)
@Schema(description = "合同岗位", name = "post")
@ExcelProperty("合同岗位")
private String post;
/**
* 工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制
*/
@Length(max = 32, message = "工时制不能超过32个字符")
@ExcelAttribute(name = "工时制", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.WORKING_HOURS)
@Schema(description = "工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制", name = "workingHours")
@ExcelProperty("工时制")
private String workingHours;
/**
* 档案地-省
*/
@ExcelAttribute(name = "档案地-省",isArea = true )
@Schema(description ="档案地-省")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案所在省")
private String fileProvince;
/**
* 档案地-市
*/
@ExcelAttribute(name = "档案地-市",isArea = true,parentField = "fileProvince" )
@Schema(description ="档案地-市")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案所在市")
private String fileCity;
/**
* 档案地-县
*/
@ExcelAttribute(name = "档案地-县" ,isArea = true,parentField = "fileCity")
@Schema(description ="档案地-县")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("档案所在县")
private String fileTown;
/**
* 客户名称
*/
@ExcelAttribute(name = "客户名称" )
@Schema(description = "客户名称")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("客户名称")
private String unitName;
/**
* 客户编码
*/
@ExcelAttribute(name = "客户编码" )
@Schema(description = "客户编码")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("客户编码")
private String unitNo;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称" )
@Schema(description ="项目名称")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("项目名称")
private String project;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码" )
@Schema(description ="项目编码")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("项目编码")
private String projectNo;
/**
* 员工类型
*/
@ExcelAttribute(name = "员工类型" ,isDataId = true,dataType = ExcelAttributeConstants.EMP_NATRUE )
@Schema(description ="员工类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("员工类型")
private String empType;
/**
* 合同类型
*/
@ExcelAttribute(name = "合同类型" , isDataId = true,dataType = ExcelAttributeConstants.EMPLOYEE_CONTRACT_TYPE)
@Schema(description ="合同类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("合同类型")
private String contractType;
/**
* 签订期限
*/
@ExcelAttribute(name = "签订期限" ,isDataId = true,readConverterExp = "0=已完成一定工作任务为期限,1=固定期限,2=无固定期限")
@Schema(description ="签订期限")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("签订期限")
private String contractTerm;
/**
* 到期天数
*/
@ExcelAttribute(name = "到期天数" )
@Schema(description ="到期天数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("距离到期天数")
private Integer daysDue;
/**
* 是否过期:0 未过期 1 过期
*/
@ExcelAttribute(name = "是否过期", isDataId = true,readConverterExp = "0=未过期,1=过期" )
@Schema(description ="是否过期:0 未过期 1 过期")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否过期")
private String dueFlag;
/**
* 过期天数
*/
@ExcelAttribute(name = "过期天数" )
@Schema(description ="过期天数")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("过期天数")
private Integer daysOver;
/**
* 首次提醒时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelAttribute(name = "首次提醒时间" )
@Schema(description ="首次提醒时间")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("首次提醒时间")
private String firstAlertTime;
/**
* 提醒人
*/
@ExcelAttribute(name = "提醒人" )
@Schema(description ="提醒人")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("提醒人")
private String alertPerson;
/**
* 是否反馈: 0 否 1 是
*/
@ExcelAttribute(name = "是否反馈", isDataId = true,readConverterExp = "0=否,1=是" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否反馈")
@Schema(description = "是否反馈")
private String isFeedback;
/**
* 反馈原因
*/
@ExcelAttribute(name = "未续签原因" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("未续签原因")
@Schema(description = "未续签原因")
private String feedbackReason;
/**
* 详情
*/
@ExcelAttribute(name = "具体描述信息" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("具体描述信息")
@Schema(description = "具体描述信息")
private String feedbackDetail;
/**
* 反馈人
*/
@ExcelAttribute(name = "反馈人" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("反馈人")
@Schema(description = "反馈人")
private String feedbackPerson;
/**
* 反馈时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelAttribute(name = "反馈时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("反馈时间")
@Schema(description = "反馈时间")
private String feedbackTime;
/**
* 处理状态 0 待处理 1 处理中 2 已处理
*/
@ExcelAttribute(name = "处理状态", isDataId = true, readConverterExp = "0=待处理,1=处理中,2=已处理" )
@Schema(description ="处理状态")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("处理状态")
private String handleStatus;
/**
* 签署方式:1线下签0电子签
*/
@ExcelAttribute(name = "签署方式" , isDataId = true,readConverterExp = "1=线下签,0=电子签")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("签署方式")
@Schema(description = "签署方式:1线下签0电子签")
private String signType;
/**
* 续签状态:0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9(已归档-电子签+线下签)已完结10撤销签署
*/
@ExcelAttribute(name = "续签状态", readConverterExp = "0=待确认,1=待发起,2=线下签待审核,3=线下签审核不通过,4=线下签待归档,5=发起失败,6=签署中,7=签署失败,8=电子待归档,9=已完结,10=撤销签署-客服撤销,11=撤销签署-系统自动撤销")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("续签状态")
@Schema(description = "签署方式:0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9(已归档-电子签+线下签)已完结10撤销签署-客服撤销 11撤销签署-系统自动撤销")
private String processStatus;
/**
* 预计合同发起时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@ExcelAttribute(name = "预计合同发起时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("预计合同发起时间")
@Schema(description = "预计合同发起时间")
private Date expectedCollectionTime;
/**
* 前端客服
*/
@ExcelAttribute(name = "前端客服" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("前端客服")
@Schema(description = "前端客服")
private String csName;
}
......@@ -47,4 +47,7 @@ public class TEmployeeAutoRegistCheckVo implements Serializable {
@ExcelProperty("错误信息")
private String errorMsg;
//反馈文件要求
ContractAlertConfirmResVo confirmVo;
}
/*
* 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
* 合同续签确认信息--批量发起明细 系统会自动拉取当前前端客服+“预计合同发起时间”为空的或为今日及今日之前的,续签状态为“待发起、发起失败、审核不通过、签署失败”的合同信息;
*
* @author fxj
* @date 2026-02-05 15:45:40
*/
@Data
public class TEmployeeContractPreNewDetailVo {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", maxLength = 50)
@Length(max = 50, message = "项目名称不能超过50个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String deptName;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 30)
@NotBlank(message = "项目编码不能为空")
@Length(max = 30, message = "项目编码不能超过30个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目id
*/
@ExcelAttribute(name = "项目id", maxLength = 36)
@Length(max = 36, message = "项目id不能超过36个字符")
@ExcelProperty("项目id")
@Schema(description = "项目id")
private String deptId;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 30)
@Length(max = 30, message = "员工姓名不能超过30个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String employeeName;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号", isNotEmpty = true, errorInfo = "身份证号不能为空", maxLength = 18)
@NotBlank(message = "身份证号不能为空")
@Length(max = 18, message = "身份证号不能超过18个字符")
@ExcelProperty("身份证号")
@Schema(description = "身份证号")
private String empIdcard;
/**
* 上一份合同起止日期
*/
@ExcelAttribute(name = "上一份合同起止日期", isDate = true)
@ExcelProperty("上一份合同起止日期")
@Schema(description = "上一份合同起止日期")
private String lastContractDate;
/**
* 就职岗位
*/
@ExcelAttribute(name = "就职岗位", maxLength = 50)
@Length(max = 50, message = "就职岗位不能超过50个字符")
@ExcelProperty("就职岗位")
@Schema(description = "就职岗位")
private String position;
/**
* 合同类型 标准合同/劳务协议/实习协议/劳务派遣合同/非全日制/其他合同
*/
@ExcelAttribute(name = "合同类型", maxLength = 8)
@Length(max = 8, message = "合同类型不能超过8个字符")
@ExcelProperty("合同类型")
@Schema(description = "合同类型 标准合同/劳务协议/实习协议/劳务派遣合同/非全日制/其他合同")
private String contractType;
/**
* 签署甲方
*/
@ExcelAttribute(name = "签署甲方", maxLength = 50)
@Length(max = 50, message = "签署甲方不能超过50个字符")
@ExcelProperty("签署甲方")
@Schema(description = "签署甲方")
private String signatory;
/**
* 签署方式1线下签0电子签
*/
@ExcelAttribute(name = "签署方式", maxLength = 1)
@Length(max = 1, message = "签署方式不能超过1个字符")
@ExcelProperty("签署方式")
@Schema(description = "签署方式1线下签0电子签")
private String signType;
/**
* 合同开始日期
*/
@ExcelAttribute(name = "合同开始日期", isDate = true)
@ExcelProperty("合同开始日期")
@Schema(description = "合同开始日期")
private Date contractStart;
/**
* 合同截止日期
*/
@ExcelAttribute(name = "合同截止日期", isDate = true)
@ExcelProperty("合同截止日期")
@Schema(description = "合同截止日期")
private Date contractEnd;
/**
* 合同开始日期-上一份合同
*/
@ExcelAttribute(name = "合同开始日期-上一份合同" )
@Schema(description ="合同开始日期-上一份合同")
@ExcelProperty("合同开始日期-上一份合同")
private Date contractStartPre;
/**
* 合同截止日期-上一份合同
*/
@ExcelAttribute(name = "合同截止日期-上一份合同" )
@Schema(description ="合同截止日期-上一份合同")
@ExcelProperty("合同截止日期-上一份合同")
private Date contractEndPre;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPreNew;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 合同续签预派单信息
*
* @author fxj
* @date 2026-02-05 15:45:40
*/
@Data
public class TEmployeeContractPreNewSearchVo extends TEmployeeContractPreNew {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private List<String> ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
@Schema(description = "处理状态数组")
@TableField(exist = false)
private List<String> statusList;
}
/*
* 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.alibaba.excel.annotation.write.style.ColumnWidth;
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;
/**
* 瓜子特殊字典导出Vo
*
* @author hgw
* @date 2026-02-05 14:16:10
*/
@Data
@ColumnWidth(25)
public class TGzAreaExportVo {
/**
* 皖信地址编码
*/
@ExcelAttribute(name = "皖信地址编码", isNotEmpty = true, errorInfo = "皖信地址编码不能为空", maxLength = 11)
@NotBlank(message = "皖信地址编码不能为空")
@Length(max = 11, message = "皖信地址编码不能超过11个字符")
@ExcelProperty("皖信地址编码")
@Schema(description = "皖信地址编码")
private String areaCode;
/**
* 皖信地址
*/
@ExcelAttribute(name = "皖信地址", maxLength = 50)
@Length(max = 50, message = "皖信地址不能超过50个字符")
@ExcelProperty("皖信地址")
@Schema(description = "皖信地址")
private String areaName;
/**
* 瓜子地址编码
*/
@ExcelAttribute(name = "瓜子地址编码", isNotEmpty = true, errorInfo = "瓜子地址编码不能为空", maxLength = 11)
@NotBlank(message = "瓜子地址编码不能为空")
@Length(max = 11, message = "瓜子地址编码不能超过11个字符")
@ExcelProperty("瓜子地址编码")
@Schema(description = "瓜子地址编码")
private String gzCode;
/**
* 瓜子城市名称
*/
@ExcelAttribute(name = "瓜子城市名称", maxLength = 50)
@Length(max = 50, message = "瓜子城市名称不能超过50个字符")
@ExcelProperty("瓜子城市名称")
@Schema(description = "瓜子城市名称")
private String gzName;
}
/*
* 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.TGzArea;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 瓜子特殊字典
*
* @author hgw
* @date 2026-02-03 14:16:10
*/
@Data
public class TGzAreaSearchVo extends TGzArea {
/**
* 多选导出或删除等操作
*/
@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;
}
......@@ -90,4 +90,27 @@ public class EmployeeConstants {
**/
public static final String CONTRACT_NAME[] = {"标准合同","劳务派遣合同","其他"};
/**
* 未找到合同信息
**/
public static final String DATA_CAN_NOT_FOUND = "未找到合同信息!";
/**
* 合同起止日期与被续签合同日期重叠
**/
public static final String DATA_CONTRACT_OVERLAP = "合同起止日期与被续签合同日期重叠!";
/**
* 系统自动撤销签署必须走线下签
**/
public static final String DATA_CONTRACT_CANCEL_MUST_OFFLINE_SIGN = "系统自动撤销签署必须走线下签!";
public static final String DATA_CONTRACT_EXPECTED_SIGN_TIME_ERROR = "待续签合同超期一个月,需走线下签";
public static final String DATA_CONTRACT_EXPECTED_SIGN_TIME_ERROR_TWO = "发起时间距离合同开始日期已超过一个月,禁止使用电子签,请切换为线下签";
public static final String ERROR_TYPE_CONTRACT = "合同";
public static final String ERROR_DUPLICATE_CONFIRM = "已确认,请勿重复确认";
public static final String ERROR_NO_ALERT_FOUND = "未找到合同续签待办信息";
}
......@@ -128,6 +128,19 @@ public class FascController {
return fascService.submitContract(id);
}
/**
* @Author fxj
* @Description 自动化待办续签:发起电子签署
* @Date 9:40 2026/2/11
* @Param 合同待签订任务记录表TEmployeeContractPreNew:id
* @return
**/
@Operation(description = "自动化待办续签:发起电子签署")
@GetMapping("/submitContractRenew")
public R<String> submitContractRenew(@RequestParam String id) throws ApiException {
return fascService.submitContractRenew(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 撤销签署
......@@ -140,7 +153,18 @@ public class FascController {
public R<String> cancelTask(@RequestParam String id) throws ApiException {
return fascService.cancelTask(id);
}
/**
* @Author fxj
* @Description 自动化待办续签:撤销签署
* @Date 9:41 2026/2/11
* @Param id 合同待签订任务记录表TEmployeeContractPreNew:id
* @return
**/
@Operation(description = "自动化待办续签:撤销签署")
@GetMapping("/cancelTaskRenew")
public R<String> cancelTaskRenew(@RequestParam String id) throws ApiException {
return fascService.cancelTaskRenew(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 催办
......@@ -154,6 +178,19 @@ public class FascController {
return fascService.urgeTask(id);
}
/**
* @Author fxj
* @Description
* @Date 9:42 2026/2/11
* @Param 合同待签订任务记录表TEmployeeContractPreNew:id
* @return
**/
@Operation(description = "自动化待办续签:催办")
@GetMapping("/urgeTaskRenew")
public R<String> urgeTaskRenew(@RequestParam String id) throws ApiException {
return fascService.urgeTaskRenew(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 获取附件
......@@ -167,6 +204,19 @@ public class FascController {
fascService.getFileByRequestId(id);
return R.ok();
}
/**
* @Author fxj
* @Description 获取附件
* @Date 19:37 2026/2/10
* @Param id 合同待签订任务记录表TEmployeeContractPreNew:id
* @return
**/
@Operation(description = "自动化待办续签获取附件")
@GetMapping("/getRenewFileByRequestId")
public R<String> getRenewFileByRequestId(@RequestParam String id) throws ApiException {
fascService.getFileByRequestIdRenew(id,null);
return R.ok();
}
@Operation(summary = "异步通知", description = "异步通知")
@RequestMapping(value = "/api/fascCallback")
......
......@@ -21,9 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpContractAlertUpdateVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
......@@ -43,6 +41,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
......@@ -60,7 +59,52 @@ public class TEmpContractAlertController {
private final TEmpContractAlertService tEmpContractAlertService;
private final MenuUtil menuUtil;
/**
* 自动化合同续签待办查询
* @param page 分页对象
* @param tEmpContractAlert 自动化合同续签待办查询
* @return
*/
@Operation(description = "自动化合同续签待办查询")
@GetMapping("/autoPage")
public R<IPage<ContractAlertAutoVo>> getTEmpContractAlertAutoPage(Page<TEmpContractAlert> page, ContractAlertSearchVo tEmpContractAlert) {
//默认开启自动化的
tEmpContractAlert.setAutoFlag(CommonConstants.ZERO_STRING);
return R.ok(tEmpContractAlertService.getTEmpContractAlertAutoPage(page,tEmpContractAlert));
}
/**
* 自动化合同续签待办查询
* @param tEmpContractAlert 自动化合同续签待办查询
* @return
*/
@Operation(description = "自动化合同续签待办查询")
@GetMapping("/autoRenewForConfirm")
public R<List<ContractAlertConfirmVo>> getAutoRenewForConfirm(ContractAlertSearchVo tEmpContractAlert) {
//默认开启自动化的
tEmpContractAlert.setAutoFlag(CommonConstants.ZERO_STRING);
//默认查询待确认的信息
List<String> processStatusList = new ArrayList<>();
processStatusList.add(CommonConstants.ZERO_STRING);
tEmpContractAlert.setProcessStatusList(processStatusList);
return tEmpContractAlertService.getAutoRenewForConfirm(tEmpContractAlert);
}
/**
* @Author fxj
* @Description 自动化合同续签待办数量
* @Date 16:49 2026/2/5
* @Param
* @return
**/
@Operation(description = "自动化合同续签待办数量")
@GetMapping("/autoCount")
public R<Integer> getTEmpContractAlertAutoCount() {
ContractAlertSearchVo tEmpContractAlert = new ContractAlertSearchVo();
//默认开启自动化的
tEmpContractAlert.setAutoFlag(CommonConstants.ZERO_STRING);
return R.ok(tEmpContractAlertService.getTEmpContractAlertAutoCount(tEmpContractAlert));
}
/**
* 分页查询
......@@ -280,4 +324,41 @@ public class TEmpContractAlertController {
public void pushInsuranceAlertToWx() {
tEmpContractAlertService.pushContractAlertToWx();
}
/**
* @Author fxj
* @Description 批量导出自动化合同续签待办
* @Date 17:00 2026/2/5
* @Param
* @return
**/
@Operation(description = "导出自动化续签待办")
@PostMapping("/autoExport")
public void autoExport(HttpServletResponse response, @RequestBody ContractAlertSearchVo searchVo) {
searchVo.setAutoFlag(CommonConstants.ZERO_STRING);
tEmpContractAlertService.listAutoExport(response,searchVo);
}
/**
* 通过合同ID查询合同对应的项目档案信息及人员手机号码
* @param id id
* @return R
*/
@Operation(summary = "通过合同ID查询合同对应的项目档案信息及人员手机号码", description = "通过合同ID查询合同对应的项目档案信息及人员手机号码")
@GetMapping("/getProjectInfoByContractId" )
public R<EmpProjectVO> getProjectInfoByContractId(@RequestParam("id" ) String id) {
return R.ok(tEmpContractAlertService.getProjectInfoByContractId(id));
}
/**
* @Author fxj
* @Description 通过合同提醒ID查询合同提醒信息、确认接收信息、新增续签合同信息
* @Date 16:53 2026/2/11
**/
@Operation(summary = "通过合同提醒ID查询合同提醒信息、确认接收信息、新增续签合同信息", description = "通过合同提醒ID查询合同提醒信息、确认接收信息、新增续签合同信息")
@GetMapping("/getAllRenewInfoById" )
public R<EmpContractRenewVO> getAllRenewInfoById(@RequestParam("id" ) String id) {
return tEmpContractAlertService.getAllRenewInfoById(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.TGzArea;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzAreaService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaSearchVo;
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.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 javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 瓜子特殊字典
*
* @author hgw
* @date 2026-02-03 14:16:10
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tgzarea")
@Tag(name = "瓜子特殊字典管理")
public class TGzAreaController {
private final TGzAreaService tGzAreaService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tGzArea 瓜子特殊字典
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TGzArea>> getTGzAreaPage(Page<TGzArea> page, TGzArea tGzArea) {
return new R<>(tGzAreaService.getTGzAreaPage(page, tGzArea));
}
/**
* 不分页查询
*
* @param tGzArea 瓜子特殊字典
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TGzArea>> getTGzAreaList(@RequestBody TGzArea tGzArea) {
return R.ok(tGzAreaService.getTGzAreaList(tGzArea));
}
/**
* 通过id查询瓜子特殊字典
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tgzarea_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tgzarea_get')")
public R<TGzArea> getById(@PathVariable("id") String id) {
return R.ok(tGzAreaService.getById(id));
}
/**
* 新增瓜子特殊字典
*
* @param tGzArea 瓜子特殊字典
* @return R
*/
@Operation(summary = "新增瓜子特殊字典", description = "新增瓜子特殊字典:hasPermission('archives_tgzarea_add')")
@SysLog("新增瓜子特殊字典")
@PostMapping
@PreAuthorize("@pms.hasPermission('archives_tgzarea_add')")
public R<String> save(@RequestBody TGzArea tGzArea) {
R<String> judgeR = this.judgeCore(tGzArea);
if (judgeR != null) return judgeR;
tGzAreaService.save(tGzArea);
return R.ok();
}
private R<String> judgeCore(TGzArea tGzArea) {
if (Common.isEmpty(tGzArea.getAreaCode())) {
return R.failed("请填写皖信地址编码");
}
if (Common.isEmpty(tGzArea.getGzCode())) {
return R.failed("请填写瓜子地址编码");
}
long count = tGzAreaService.getTGzAreaCountByCode(tGzArea.getAreaCode(), tGzArea.getId());
if (count > 0) {
return R.failed("该皖信地址编码已存在!");
}
return null;
}
/**
* 修改瓜子特殊字典
*
* @param tGzArea 瓜子特殊字典
* @return R
*/
@Operation(summary = "修改瓜子特殊字典", description = "修改瓜子特殊字典:hasPermission('archives_tgzarea_edit')")
@SysLog("修改瓜子特殊字典")
@PutMapping
@PreAuthorize("@pms.hasPermission('archives_tgzarea_edit')")
public R<String> updateById(@RequestBody TGzArea tGzArea) {
R<String> judgeR = this.judgeCore(tGzArea);
if (judgeR != null) return judgeR;
tGzAreaService.updateById(tGzArea);
return R.ok();
}
/**
* 通过id删除瓜子特殊字典
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除瓜子特殊字典", description = "通过id删除瓜子特殊字典:hasPermission('archives_tgzarea_del')")
@SysLog("通过id删除瓜子特殊字典")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tgzarea_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tGzAreaService.removeById(id));
}
/**
* 瓜子特殊字典 批量导出
*
* @author hgw
* @date 2026-02-03 14:16:10
**/
@Operation(description = "导出瓜子特殊字典")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody TGzAreaSearchVo searchVo) {
tGzAreaService.listExport(response, searchVo);
}
}
......@@ -18,9 +18,10 @@
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.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpContractAlertUpdateVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -41,4 +42,27 @@ public interface TEmpContractAlertMapper extends BaseMapper<TEmpContractAlert> {
List<TEmpContractAlert> getAlertInfoList(@Param("idCardList") List<String> idCardList);
/**
* 员工合同续签待办简单分页查询
* @param tEmpContractAlert 员工合同续签待办
* @return
*/
IPage<ContractAlertAutoVo> getTEmpContractAlertAutoPage(Page<TEmpContractAlert> page, @Param("tEmpContractAlert") ContractAlertSearchVo tEmpContractAlert);
/**
* @Author fxj
* @Description 自动化合同续签待办数量
* @Date 16:51 2026/2/5
* @Param
* @return
**/
int getTEmpContractAlertAutoCount(@Param("tEmpContractAlert") ContractAlertSearchVo tEmpContractAlert);
List<TEmpContractAlertExportVo> listExport(@Param("tEmpContractAlert") ContractAlertSearchVo searchVo);
void updateProcessStatus();
List<ContractAlertConfirmVo> getAutoRenewForConfirm(@Param("tEmpContractAlert")ContractAlertSearchVo tEmpContractAlert);
List<ContractAlertAutoVo> getPushWxConfrimInfos();
}
/*
* 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.TEmployeeContractPreNew;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPreNewDetailVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPreNewSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 合同续签预派单信息
*
* @author fxj
* @date 2026-02-05 15:45:40
*/
@Mapper
public interface TEmployeeContractPreNewMapper extends BaseMapper<TEmployeeContractPreNew> {
/**
* 合同续签预派单信息简单分页查询
*
* @param tEmployeeContractPreNew 合同续签预派单信息
* @return
*/
IPage<TEmployeeContractPreNew> getTEmployeeContractPreNewPage(Page<TEmployeeContractPreNew> page, @Param("tEmployeeContractPreNew") TEmployeeContractPreNew tEmployeeContractPreNew);
List<EmployeeContractVO> getDisPatcherContractListRenew(@Param("idList") List<String> idList,@Param("statusList") List<String> statusList,@Param("type") String type);
List<TEmployeeContractPreNewDetailVo> getDetailList(@Param("tEmpContractAlert") ContractAlertSearchVo tEmployeeContractPreNew);
List<String> getUnDispatchList();
int getDetailListCount(@Param("tEmpContractAlert") ContractAlertSearchVo tEmployeeContractPreNew);
}
/*
* 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.TGzArea;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 瓜子特殊字典
*
* @author hgw
* @date 2026-02-03 14:16:10
*/
@Mapper
public interface TGzAreaMapper extends BaseMapper<TGzArea> {
/**
* 瓜子特殊字典简单分页查询
* @param tGzArea 瓜子特殊字典
* @return
*/
IPage<TGzArea> getTGzAreaPage(Page<TGzArea> page, @Param("tGzArea") TGzArea tGzArea);
List<TGzArea> getTGzAreaList(@Param("tGzArea") TGzArea tGzArea);
long getTGzAreaExportCount(@Param("tGzArea") TGzArea tGzArea);
long getTGzAreaCountByCode(@Param("areaCode") String areaCode, @Param("id") String id);
List<TGzAreaExportVo> getTGzAreaExport(@Param("tGzArea") TGzAreaSearchVo tGzArea);
}
......@@ -45,12 +45,25 @@ public interface FascService extends IService<FddContractInfo> {
// 推送法大大任务
R<String> submitContract(String id) throws ApiException;
// 自动化续签待办:推送法大大任务
R<String> submitContractRenew(String id) throws ApiException;
// 撤销签署任务
R<String> cancelTask(String id) throws ApiException;
// 自动化续签待办:撤销签署任务
R<String> cancelTaskRenew(String id) throws ApiException;
// 催办签署任务
R<String> urgeTask(String id) throws ApiException;
// 自动化续签待办:催办签署任务
R<String> urgeTaskRenew(String id) throws ApiException;
// 获取附件
boolean getFileByRequestId(String id) throws ApiException;
// 自动化续签待办:获取附件
boolean getFileByRequestIdRenew(String id,String contractId) throws ApiException;
}
......@@ -22,9 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FeedBackDetail;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpContractAlertUpdateVO;
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;
......@@ -40,6 +38,13 @@ import java.util.List;
*/
public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
/**
* 员工合同续签待办简单分页查询
* @param tEmpContractAlert 员工合同续签待办
* @return
*/
IPage<ContractAlertAutoVo> getTEmpContractAlertAutoPage(Page<TEmpContractAlert> page, ContractAlertSearchVo tEmpContractAlert);
IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo);
// 给自动化用的-合同待续签-分页查询
IPage<TEmpContractAlert> getAutoPage(Page page, ContractAlertSearchVo searchVo);
......@@ -74,4 +79,14 @@ public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void pushContractAlertToWx();
Integer getTEmpContractAlertAutoCount(ContractAlertSearchVo tEmpContractAlert);
void listAutoExport(HttpServletResponse response, ContractAlertSearchVo searchVo);
EmpProjectVO getProjectInfoByContractId(String id);
R<EmpContractRenewVO> getAllRenewInfoById(String id);
R<List<ContractAlertConfirmVo>> getAutoRenewForConfirm(ContractAlertSearchVo tEmpContractAlert);
}
/*
* 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.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPre;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPreNew;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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 javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
* 合同续签预派单信息
*
* @author fxj
* @date 2026-02-05 15:45:40
*/
public interface TEmployeeContractPreNewService extends IService<TEmployeeContractPreNew> {
/**
* 合同续签预派单信息简单分页查询
*
* @param tEmployeeContractPreNew 合同续签预派单信息
* @return
*/
IPage<TEmployeeContractPreNew> getTEmployeeContractPreNewPage(Page<TEmployeeContractPreNew> page, TEmployeeContractPreNewSearchVo tEmployeeContractPreNew);
void listExport(HttpServletResponse response, TEmployeeContractPreNewSearchVo searchVo);
List<TEmployeeContractPreNew> noPageDiy(TEmployeeContractPreNewSearchVo searchVo);
R confirmRenewalContract(TEmployeeContractPreNewVo preVo);
R batchCconfirmRenewalContract(TEmployeeContractPreNewVo preVo);
R dispatcherContract(List<String> idList, String type);
R revokeSign(List<TEmployeeAutoRegistRevokeVo> registRevokeVoList);
R autoRevokeElectronicSign();
R notifyRevokedElectronicSign();
R electronicSignExpiringReminder();
R contractUrg(String id);
R<TEmployeeContractPreNew> getInfoByPreId(String preId);
R<List<TEmployeeContractPreNewDetailVo>> getDetailList(ContractAlertSearchVo tEmployeeContractPreNew);
R<TEmployeeContractInfo> getRenewContractByPreId(String preId);
R pushWxConfrimMessage();
void pushDisConfrimContracts();
R<Integer> getDetailListCount(ContractAlertSearchVo tEmployeeContractPreNew);
R getContractTerm(String startDate, String endDate);
LocalDate getPreDateByConfigId(String configId, Date contractEnd);
void updateByIdAndUpdateAlert(TEmployeeContractPreNew preNew);
}
/*
* 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.TGzArea;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 瓜子特殊字典
*
* @author hgw
* @date 2026-02-03 14:16:10
*/
public interface TGzAreaService extends IService<TGzArea> {
/**
* 瓜子特殊字典简单分页查询
*
* @param tGzArea 瓜子特殊字典
* @return
*/
IPage<TGzArea> getTGzAreaPage(Page<TGzArea> page, TGzArea tGzArea);
// list
List<TGzArea> getTGzAreaList(TGzArea tGzArea);
// 条数
long getTGzAreaCountByCode(String areaCode, String id);
// 导出
void listExport(HttpServletResponse response, TGzAreaSearchVo searchVo);
// 获取瓜子特殊字典Map使用
Map<String, String> getGzAreaMap();
}
......@@ -384,6 +384,7 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
for (TAttaInfoSaveVo attaInfoVo : preVo.getAttaList()) {
TAttaInfo attaInfo = new TAttaInfo();
BeanUtils.copyProperties(attaInfoVo, attaInfo);
attaInfo.setId(null);
attaInfo.setDomainId(pre.getId());
attaInfo.setCreateName("确认接收同步");
attaInfoService.save(attaInfo);
......
......@@ -59,6 +59,7 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
private final TFascTemplateService tFascTemplateService;
private final TFascTemplateDetailService tFascTemplateDetailService;
private final TEmployeeContractPreMapper tEmployeeContractPreMapper;
private final TEmployeeContractPreNewMapper tEmployeeContractPreNewMapper;
private final TEmployeeContractInfoMapper tEmployeeContractInfoMapper;
private final TEmployeeInfoMapper tEmployeeInfoMapper;
private final TEmpContactInfoMapper tEmpContactInfoMapper;
......@@ -374,7 +375,71 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
return requestInfo;
}
@Override
public R<String> submitContractRenew(String id) throws ApiException {
// templateName 签署任务模板名称
TEmployeeContractPreNew contract = tEmployeeContractPreNewMapper.selectById(id);
if (contract == null) {
return R.failed(FASC_NO_CONTRACT);
}
TEmployeeContractInfo empContract = tEmployeeContractInfoMapper.selectOne(Wrappers.<TEmployeeContractInfo>query()
.lambda().eq(TEmployeeContractInfo::getPreNewId,id)
.eq(TEmployeeContractInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
String empIdCard = contract.getEmpIdcard();
if (Common.isEmpty(empIdCard)) {
return R.failed("未找到身份证,请联系管理员");
}
if (empContract == null) {
return R.failed(FASC_NO_EMP_CONTRACT);
}
TEmployeeContractPrePushFascVo empContactInfo = tEmpContactInfoMapper.getTEmpContactInfoOneByCard(empIdCard);
TEmployeeContractPrePushFascVo empInfo = tEmpContactInfoMapper.getTEmpInfoOneByCard(empIdCard);
if (empContactInfo != null) {
contract.setContactEmpName(empContactInfo.getContactEmpName());
contract.setContactTel(empContactInfo.getContactTel());
contract.setContactAddress(empContactInfo.getContactAddress());
}
if (empInfo != null) {
contract.setHuArea(empInfo.getHuArea());
contract.setContactArea(empInfo.getContactArea());
contract.setEmpEmail(empInfo.getEmpEmail());
}
if (Common.isEmpty(contract.getFadadaTemplateId())) {
return R.failed("未找到合同模板ID,请联系管理员");
}
if (Common.isEmpty(contract.getSignType())) {
return R.failed("签署方式为空,请联系管理员");
} else if (!CommonConstants.ZERO_STRING.equals(contract.getSignType())) {
return R.failed("签署方式不是电子签,不可发起电子签署");
}
// 如果状态过多,可以改为这个:
// ArrayUtils.contains(forbidStatusArr, tGzOfferInfo.getOfferStatus())
//系统自动撤销及客服撤销都放行
if (Common.isNotNull(contract.getRequestId())
&& !CommonConstants.ELEVEN_STRING.equals(contract.getProcessStatus())
&& !CommonConstants.TEN_STRING.equals(contract.getProcessStatus())
&& !CommonConstants.FIVE_STRING.equals(contract.getProcessStatus())) {
return R.failed("合同已发起,请勿重复发起!");
}
TFascTemplate tFascTemplate = tFascTemplateService.getOne(Wrappers.<TFascTemplate>query()
.lambda().eq(TFascTemplate::getSignTemplateId, contract.getFadadaTemplateId())
.last(CommonConstants.LAST_ONE_SQL));
if (tFascTemplate == null) {
return R.failed(FASC_NO_TEMPLATE);
} else if (!"valid".equals(tFascTemplate.getSignTemplateStatus())) {
return R.failed("法大大模版状态不是“启用”,不可发起电子签署");
}
List<TFascTemplateDetail> detailList = tFascTemplateDetailService.getTDetailListByFieldType(contract.getFadadaTemplateId());
// - 判断是否入职超过1个月——接口入口做了
TFascCompany company = tFascCompanyService.getById(tFascTemplate.getCompanyId());
R<String> requestInfo = fascUtil.submitContract(contract, tFascPushLogService, tEmployeeContractPreNewMapper, tFascTemplate, detailList, company);
return requestInfo;
}
/**
* @param id TEmployeeContractPre主键
* @Description: 撤销签署任务
......@@ -399,7 +464,23 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
return fascUtil.cancelTask(contract, tFascPushLogService, tEmployeeContractPreMapper, company);
}
@Override
public R<String> cancelTaskRenew(String id) throws ApiException {
// templateName 签署任务模板名称
TEmployeeContractPreNew contract = tEmployeeContractPreNewMapper.selectById(id);
if (contract == null) {
return R.failed(FASC_NO_CONTRACT);
}
if (Common.isEmpty(contract.getRequestId())) {
return R.failed("无requestId,请检查数据");
}
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return R.failed("无公司信息,请检查数据!");
}
return fascUtil.cancelTask(contract, tFascPushLogService, tEmployeeContractPreNewMapper, company);
}
private TFascCompany getTFascCompany(TEmployeeContractPre contract) {
TFascCompany company = null;
if (Common.isNotNull(contract.getFadadaTemplateId())) {
......@@ -413,6 +494,19 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
return company;
}
private TFascCompany getTFascCompany(TEmployeeContractPreNew contract) {
TFascCompany company = null;
if (Common.isNotNull(contract.getFadadaTemplateId())) {
TFascTemplate tFascTemplate = tFascTemplateService.getOne(Wrappers.<TFascTemplate>query()
.lambda().eq(TFascTemplate::getSignTemplateId, contract.getFadadaTemplateId())
.last(CommonConstants.LAST_ONE_SQL));
if (tFascTemplate != null && Common.isNotNull(tFascTemplate.getCompanyId())) {
company = tFascCompanyService.getById(tFascTemplate.getCompanyId());
}
}
return company;
}
/**
* @param id TEmployeeContractPre主键
* @Description: 催办签署任务
......@@ -439,6 +533,30 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
/**
* @Author fxj
* @Description 续签待办自动化:催办签署任务
* @Date 19:25 2026/2/10
**/
@Override
public R<String> urgeTaskRenew(String id) throws ApiException {
// templateName 签署任务模板名称
TEmployeeContractPreNew contract = tEmployeeContractPreNewMapper.selectById(id);
if (contract == null) {
return R.failed(FASC_NO_CONTRACT);
}
if (Common.isEmpty(contract.getRequestId())) {
return R.failed("无requestId,请检查数据");
}
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return R.failed("无公司信息,请检查数据!");
}
return fascUtil.urgeTask(contract, tFascPushLogService, tEmployeeContractPreNewMapper, company);
}
/**
* @param id TEmployeeContractPre主键
* @Description: 获取附件
......@@ -463,6 +581,22 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
return fascUtil.getFileByRequestId(contract, tFascPushLogService, tAttaInfoMapper, ossUtil, company);
}
@Override
public boolean getFileByRequestIdRenew(String id,String contractId) throws ApiException {
// templateName 签署任务模板名称
TEmployeeContractPreNew contract = tEmployeeContractPreNewMapper.selectById(id);
if (contract == null) {
return false;
}
if (Common.isEmpty(contract.getRequestId())) {
// return R.failed("无requestId,请检查数据")
return false;
}
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return false;
}
return fascUtil.getFileByRequestId(contract, tFascPushLogService, tAttaInfoMapper, ossUtil, company, contractId);
}
}
/*
* 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 com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.TGzArea;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TGzAreaMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzAreaService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzAreaSearchVo;
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.DateUtil;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 瓜子特殊字典
*
* @author hgw
* @date 2026-02-03 14:16:10
*/
@Log4j2
@Service
public class TGzAreaServiceImpl extends ServiceImpl<TGzAreaMapper, TGzArea> implements TGzAreaService {
/**
* 瓜子特殊字典简单分页查询
*
* @param tGzArea 瓜子特殊字典
* @return
*/
@Override
public IPage<TGzArea> getTGzAreaPage(Page<TGzArea> page, TGzArea tGzArea) {
return baseMapper.getTGzAreaPage(page, tGzArea);
}
@Override
public List<TGzArea> getTGzAreaList(TGzArea tGzArea) {
return baseMapper.getTGzAreaList(tGzArea);
}
@Override
public long getTGzAreaCountByCode(String areaCode, String id) {
return baseMapper.getTGzAreaCountByCode(areaCode, id);
}
@Override
public Map<String, String> getGzAreaMap() {
List<TGzArea> list = baseMapper.getTGzAreaList(null);
Map<String, String> map = new HashMap<>();
if (list != null && !list.isEmpty()) {
for (TGzArea tGzArea : list) {
map.put(tGzArea.getAreaCode(), tGzArea.getGzCode());
}
}
return map;
}
/**
* 瓜子地址映射表批量导出
*
* @return
*/
@Override
public void listExport(HttpServletResponse response, TGzAreaSearchVo searchVo) {
String fileName = "瓜子地址映射表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TGzAreaExportVo> list = new ArrayList<>();
long count = baseMapper.getTGzAreaExportCount(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8));
ExcelWriter excelWriter = EasyExcelFactory.write(out, TGzAreaExportVo.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT) {
WriteSheet writeSheet;
for (int i = 0; i <= count; i = i + CommonConstants.EXCEL_EXPORT_LIMIT) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = baseMapper.getTGzAreaExport(searchVo);
if (Common.isNotNull(list)) {
writeSheet = EasyExcelFactory.writerSheet("瓜子地址映射表" + index).build();
excelWriter.write(list, writeSheet);
index++;
list.clear();
}
}
} else {
WriteSheet writeSheet = EasyExcelFactory.writerSheet("瓜子地址映射表" + index).build();
excelWriter.write(list, writeSheet);
}
if (Common.isNotNull(list)) {
list.clear();
}
out.flush();
excelWriter.finish();
} catch (Exception e) {
log.error("执行异常", e);
} finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
}
......@@ -29,6 +29,8 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo;
import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TCutsomerDataPermissonMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractPreNewMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TSettleDomainMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.EmployeeRegistrationPreService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeContractPreService;
......@@ -82,10 +84,17 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
@Autowired
private InsuranceDaprUtil insuranceDaprUtil;
@Autowired
private TEmpContractAlertMapper empContractAlertMapper;
@Autowired
@Lazy
private TEmployeeContractPreService employeeContractPreService;
@Autowired
@Lazy
private TEmployeeContractPreNewMapper employeeContractPreNewMapper;
@Autowired
@Lazy
private EmployeeRegistrationPreService registrationPreService;
......@@ -602,8 +611,21 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
.set(TEmployeeContractPre::getCustomerUsername, vo.getName())
.set(TEmployeeContractPre::getCustomerUserLoginname, vo.getLoginName());
employeeContractPreService.update(updateContractWrapper);
//更新合同待续签的前端客服
LambdaUpdateWrapper<TEmployeeContractPreNew> updateContractNewWrapper = new LambdaUpdateWrapper<>();
updateContractNewWrapper.eq(TEmployeeContractPreNew::getDeptNo,vo.getDepartNo())
.set(TEmployeeContractPreNew::getCustomerUsername, vo.getName())
.set(TEmployeeContractPreNew::getCustomerUserLoginname, vo.getLoginName());
employeeContractPreNewMapper.update(null,updateContractNewWrapper);
//更新社保待购买的前端客服
socialDaprUtils.updateSocialPreCustomerName(updateVo);
//更新合同续签待办提醒前端客服
LambdaUpdateWrapper<TEmpContractAlert> updateCtractWrapper = new LambdaUpdateWrapper<>();
updateCtractWrapper.eq(TEmpContractAlert::getProjectNo,vo.getDepartNo())
.set(TEmpContractAlert::getCsName, vo.getName())
.set(TEmpContractAlert::getCsLoginName, vo.getLoginName());
empContractAlertMapper.update(null,updateCtractWrapper);
}
}
}catch (Exception e){
......
......@@ -9,6 +9,7 @@
<result property="empName" column="EMP_NAME"/>
<result property="empIdcard" column="EMP_IDCARD"/>
<result property="joinLeaveDate" column="JOIN_LEAVE_DATE"/>
<result property="contractStartDate" column="CONTRACT_START_DATE"/>
<result property="phone" column="PHONE"/>
<result property="errorInfo" column="ERROR_INFO"/>
<result property="createBy" column="CREATE_BY"/>
......@@ -31,7 +32,7 @@
a.UPDATE_BY,
a.CREATE_NAME,
a.UPDATE_TIME,
a.CREATE_TIME,a.CONTRACT_ID,a.MAIN_ID,a.is_urg
a.CREATE_TIME,a.CONTRACT_ID,a.MAIN_ID,a.is_urg,a.CONTRACT_START_DATE
</sql>
<sql id="tContractAutoLog_where">
<if test="tContractAutoLog != null">
......
......@@ -158,6 +158,8 @@ public interface CacheConstants {
String PAYMENT_SOCIAL_EXPORT = "payment_social_export";
String EMP_CONTRACT_AUTO_RENEWAL_EXPORT = "emp_contract_auto_renewal_export";
String PAYMENT_DISPATCH_BATCH_ADD_IMPORT = "payment_dispatch_batch_add_import";
String MOBILE_CHANGE_LIMIT = "mobile_change_limit";
......
This diff is collapsed.
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