Commit bc04f32e authored by hongguangwu's avatar hongguangwu

Merge branch 'develop'

parents af9d0cf2 8f453234
......@@ -2,6 +2,8 @@ package com.yifu.cloud.plus.v1.yifu.archives.entity;
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.TSocialPreDetailVo;
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;
......@@ -104,6 +106,9 @@ public class EmployeeRegistrationPre extends BaseEntity {
@Schema(description = "商险是否已购买 0 是 1 否")
private String insuranceIsBuy;
@Schema(description = "商险是否已购买 0 是 1 否")
private String socialIsBuy;
@Schema(description = "档案所在地-县编号")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String townCode;
......@@ -134,6 +139,14 @@ public class EmployeeRegistrationPre extends BaseEntity {
@TableField(exist = false)
private List<TInsurancePreDetail> exitInsuranceInfoList;
@Schema(description = "社保待购买信息")
@TableField(exist = false)
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "社保流程中信息集合")
@TableField(exist = false)
private List<TSocialPreDetailVo> exitSocialInfoList;
@Schema(description = "附件集合")
@TableField(exist = false)
private List<TAttaInfo> attaList;
......
......@@ -61,10 +61,10 @@ public class LGuaziOfferRecord extends BaseEntity {
/**
* 记录来源
* (1:手动更新状态;2:编辑offer信息;3:发送Offer查阅短信;4:发送信息收集短信;5:收集短信发送成功;6:(系统触发)C端采集提交;
* 7:档案审核;9:发起合同申请10:合同审核通过;11:合同归档;12:发送合同下载短信)
* 7:档案审核;9:发起合同申请10:合同审核通过;11:合同归档;12:发送合同下载短信;13:瓜子系统更新状态
*/
@Length(max = 2, message = "记录来源不能超过2个字符")
@Schema(description = "记录来源(1:手动更新状态;2:编辑offer信息;3:发送Offer查阅短信;4:发送信息收集短信;5:收集短信发送成功;6:(系统触发)C端采集提交;7:档案审核通过;9:发起合同申请10:合同审核通过;11:合同归档;12:发送合同下载短信)")
@Schema(description = "记录来源(1:手动更新状态;2:编辑offer信息;3:发送Offer查阅短信;4:发送信息收集短信;5:收集短信发送成功;6:(系统触发)C端采集提交;7:档案审核通过;9:发起合同申请10:合同审核通过;11:合同归档;12:发送合同下载短信;13:瓜子系统更新状态)")
private String recordFrom;
/**
* 删除标记
......
......@@ -98,6 +98,13 @@ public class TAutoContractScheme extends BaseEntity {
@ExcelProperty("发大大电子签模板")
@Schema(description = "发大大电子签模板")
private String fadadaTemplate;
/**
* 发大大电子签模板ID
*/
@ExcelAttribute(name = "发大大电子签模板ID", maxLength = 50)
@ExcelProperty("发大大电子签模板ID")
@Schema(description = "发大大电子签模板ID")
private String fadadaTemplateId;
/**
* 签订期限 0 固定期限 1 无固定期限 3.以完成一定工作任务为期限
* // 电子签-签订期限(既有字典)
......
......@@ -98,6 +98,13 @@ public class TAutoMainRel extends BaseEntity {
@Schema(description = "岗位是否统一 0是 1 否")
private String postFlag;
/**
* 是否仅使用自动化入口 0 是 1否
*/
@ExcelAttribute(name = "是否仅使用自动化入口", maxLength = 1)
@Schema(description = "是否仅使用自动化入口 0 是 1否")
private String autoFlag;
/**
* 项目名称
*/
......
/*
* 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-10-09 11:13:18
*/
@Data
@TableName("t_auto_social_rule_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "社保购买规则主表")
public class TAutoSocialRuleInfo extends BaseEntity {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String id;
/**
* 项目配置ID
*/
@ExcelAttribute(name = "项目配置ID", isNotEmpty = false, errorInfo = "项目配置ID不能为空", maxLength = 32)
@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:入职满1个月...入职满6个月)
*/
@ExcelAttribute(name = "派单发起时间", maxLength = 2,isNotEmpty = false, errorInfo = "派单发起时间不能为空")
@Length(max = 2, message = "派单发起时间不能超过2个字符")
@ExcelProperty("派单发起时间")
@Schema(description = "派单发起时间(字典::0:入职满1个月...入职满6个月)")
private String startPeriod;
/**
* 派单发起具体时间字典:0:15:20
*/
@ExcelAttribute(name = "派单发起具体时间", maxLength = 10)
@Length(max = 10, message = "派单发起具体时间不能超过10个字符")
@ExcelProperty("派单发起具体时间字典")
@Schema(description = "派单发起具体时间字典:0:15:20")
private String startTime;
/**
* 派单确认时间,字典:0:派单发起当日
*/
@ExcelAttribute(name = "派单确认时间", maxLength = 50,isNotEmpty = false, errorInfo = "派单发起时间不能为空")
@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 = "项目编码", maxLength = 50)
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目ID
*/
@ExcelAttribute(name = "项目ID", maxLength = 50)
@Length(max = 50, message = "项目ID不能超过50个字符")
@ExcelProperty("项目ID")
@Schema(description = "项目ID")
private String deptId;
}
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 java.util.Date;
/**
* 合同自动化企微日志表
*
* @author huych
* @date 2025-10-20 20:02:08
*/
@Data
@TableName("t_contract_auto_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "合同自动化企微日志表")
public class TContractAutoLog extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("ID")
@Schema(description = "ID")
private String id;
@Schema(description = "合同实时ID")
private String contractId;
@Schema(description = "合同主数据ID")
private String mainId;
@Schema(description = "催办标识 0已催办 1未催办")
private String isUrg;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 50)
@Length(max = 50, message = "员工姓名不能超过50个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String empName;
/**
* 员工身份证
*/
@ExcelAttribute(name = "员工身份证", maxLength = 20)
@Length(max = 20, message = "员工身份证不能超过20个字符")
@ExcelProperty("员工身份证")
@Schema(description = "员工身份证")
private String empIdcard;
/**
* 入职日期
*/
@ExcelAttribute(name = "入职日期", isDate = true)
@ExcelProperty("入职日期")
@Schema(description = "入职日期")
private Date joinLeaveDate;
/**
* 手机号码
*/
@ExcelAttribute(name = "手机号码", maxLength = 30)
@Length(max = 30, message = "手机号码不能超过30个字符")
@ExcelProperty("手机号码")
@Schema(description = "手机号码")
private String phone;
/**
* 异常原因说明
*/
@ExcelAttribute(name = "异常原因说明", maxLength = 200)
@Length(max = 200, message = "异常原因说明不能超过200个字符")
@ExcelProperty("异常原因说明")
@Schema(description = "异常原因说明")
private String errorInfo;
}
......@@ -391,7 +391,7 @@ public class TEmployeeContractInfo extends BaseEntity {
/**
* 审核状态(0:待提交;1:待审核;2审核通过;3审核不通过)
*/
@Schema(description = "审核状态(0:待提交;1:待审核;2审核通过;3审核不通过)")
@Schema(description = "审核状态(0:待提交;1:待审核;2审核通过;3审核不通过;4签署中;5撤销签署;6签署失败)")
private Integer auditStatus;
/**
......@@ -463,6 +463,9 @@ public class TEmployeeContractInfo extends BaseEntity {
@Schema(description = "作废、终止选择的合同id", name = "reason")
private String oldContractId;
@Schema(description = "签署方式1线下签0电子签")
private String signType;
/**
* 是否附件 0是/1否
*/
......@@ -504,7 +507,7 @@ public class TEmployeeContractInfo extends BaseEntity {
* @Date 14:50 2022/11/7
**/
@ExcelAttribute(name = "审核类型",readConverterExp = "0=派增,1=派减")
@Schema(description = "审核类型:0派增-社保派单、1派增-无社保新签、2派增-续签、3派减-作废、4派减-终止")
@Schema(description = "审核类型:0派增-社保派单、1派增-无社保新签、2派增-续签、3派减-作废、4派减-终止、5自动化派单-无需审核")
private String type;
/**
......
......@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.baomidou.mybatisplus.annotation.*;
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.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -57,7 +58,8 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "合同类型,标准合同/劳务协议/实习协议/劳务派遣合同/非全日制/其他合同")
private String contractType;
@Schema(description = "状态,0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9已完结10撤销签署")
@ExcelAttribute(name = "签署方式", isDataId = true, readConverterExp = "0=待确认,1=待发起,2=线下签待审核,3=线下签审核不通过,4=线下签待归档,5=发起失败,6=签署中,7=签署失败,8=电子待归档,9=已完结,10=撤销签署-客服撤销,11=撤销签署-系统自动撤销")
@Schema(description = "状态,0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9已完结10撤销签署-客服撤销 11 撤销签署-系统自动撤销")
private String processStatus;
@Schema(description = "签署甲方")
......@@ -69,9 +71,11 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "前端客服登录名")
private String customerUserLoginname;
@ExcelAttribute(name = "签署方式", isDataId = true, readConverterExp = "0=电子签,1=线下签")
@Schema(description = "签署方式1线下签0电子签")
private String signType;
@ExcelAttribute(name = "是否撤销签署", isDataId = true, readConverterExp = "0=是,1=否")
@Schema(description = "是否撤销签署0是1否")
private String signFlag;
......@@ -88,6 +92,19 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "法大大模版名称")
private String fadadaTemplate;
@Schema(description = "电子签转线下签的原因")
private String changeTypeReason;
@Schema(description = "电子签转线下签操作人")
private String changeTypeUser;
@Schema(description = "电子签转线下签操作时间")
private Date changeTypeTime;
@ExcelAttribute(name = "是否已建档", isDataId = true, readConverterExp = "0=是,1=否")
@Schema(description = "是否已建档 0是 1否")
private String archivesIsCreate;
@Schema(description = "数据来源1客户端 2客服端")
private String dataSource;
......@@ -117,6 +134,7 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "签订类型")
private String situation;
@ExcelAttribute(name = "签订期限", isDataId = true, readConverterExp = "0=已完成一定工作任务为期限,1=固定期限,2=无固定期限")
@Schema(description = "签订期限 0已完成一定工作任务为期限、1固定期限、2无固定期限")
private String contractTerm;
......@@ -139,6 +157,7 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "工作任务")
private String task;
@ExcelAttribute(name = "任务类型", isDataId = true, readConverterExp = "0=不同员工不同任务自定义,1=所有员工任务相同")
@Schema(description = "任务类型: 0 不同员工不同任务自定义 1 所有员工任务相同")
private String taskType;
......@@ -148,15 +167,18 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "配置名称")
private String configName;
@ExcelAttribute(name = "是否允许修改", isDataId = true, readConverterExp = "0=是,1=否")
@Schema(description = "是否允许修改 0是 1否")
private String updateFlag;
@ExcelAttribute(name = "是否有试用期", isDataId = true, readConverterExp = "0=是,1=否")
@Schema(description = "是否有试用期 0是1否")
private String tryPeriodType;
@Schema(description = "试用期(单位月)")
private String tryPeriod;
@ExcelAttribute(name = "工资形式", isDataId = true, readConverterExp = "1=计时工资,2=计件工资,3=其他")
@Schema(description = "工资形式 1.计时工资 2.计件工资 3.其他")
private String salaryType;
......@@ -175,6 +197,7 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "用工单位名称")
private String workingCompany;
@ExcelAttribute(name = "工时制", isDataId = true, readConverterExp = "1=标准工时,2=综合工时,3=不定时工时制")
@Schema(description = "工时制(数据字典) 1标准工时 2 综合工时 3不定时工时制")
private String workingHours;
......@@ -202,6 +225,7 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "工资发放时间")
private String paymentTime;
@ExcelAttribute(name = "工资发放方式", isDataId = true, readConverterExp = "0=直接发放,1=委托银行代发")
@Schema(description = "工资发放方式 0 直接发放/1委托银行代发")
private String paymentType;
......@@ -219,6 +243,7 @@ public class TEmployeeContractPre extends BaseEntity {
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date dispatchPeriodEnd;
@ExcelAttribute(name = "工作方式", isDataId = true, readConverterExp = "0=第一种方式,1=第二种方式")
@Schema(description = "工作方式 0 第一种方式 1 第二种方式")
private String workType;
......@@ -245,15 +270,20 @@ public class TEmployeeContractPre extends BaseEntity {
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date internshipPeriodEnd;
@ExcelAttribute(name = "合同岗位", isDataId = true, readConverterExp = "0=固定岗位,1=等于档案处维护,2=自定义")
@Schema(description = "合同岗位 0 固定岗位 1 等于档案处维护 2 自定义")
private String postType;
@ExcelAttribute(name = "入职确认选择", isDataId = true, readConverterExp = "0=配置方案内选择,1=自定义,2=配置方案+自定义")
@Schema(description = "入职确认选择 0 配置方案内选择、1 自定义 2 配置方案+自定义")
private String confirmEmpSelect;
@ExcelAttribute(name = "超时未确认是否触发签署任务", isDataId = true, readConverterExp = "0=自动触发,1=不触发")
@Schema(description = "超时未确认是否触发签署任务(电子签) 0 自动触发 1 不触发")
private String timeoutElecSign;
@ExcelAttribute(name = "合同截止日期类型", isDataId = true, readConverterExp = "0=合同年限推算,1=同商务合同一致,2=已完成固定工作位期限")
@Schema(description = "合同截止日期类型 0合同年限推算/1同商务合同一致/2已完成固定工作位期限")
private String contractEndType;
......@@ -269,9 +299,11 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "入离职登记主表id")
private String registerId;
@ExcelAttribute(name = "是否已签署合同", isDataId = true, readConverterExp = "0=是,1=否")
@Schema(description = "是否已签署合同 0是1否")
private String contractFlag;
@ExcelAttribute(name = "新合同发起时间", isDataId = true, readConverterExp = "0=入职日期,3=入职3天后,7=入职1周后,14=入职2周后,21=入职3周后")
@Schema(description = "新合同发起时间 入职日期 0、入职3天后 3、入职1周后 7、入职2周后 14、入职3周后 21")
@TableField(exist = false)
private String registType;
......@@ -288,4 +320,18 @@ public class TEmployeeContractPre extends BaseEntity {
@TableField(exist = false)
private List<TAttaInfo> attaList;
@ExcelAttribute(name = "超期标识", isDataId = true, readConverterExp = "0=已超期,1=未超期")
@Schema(description = "超期标识 0已超期 1未超期")
private String overFlag;
@Schema(description = "法大大模版ID")
private String fadadaTemplateId;
// 1待发起、5发起失败、7签署失败,可以发起电子签 2025-10-14 18:25:16倩倩
// processStatus = "状态,0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9已完结10撤销签署")
@Schema(description = "任务ID")
private String requestId;
@Schema(description = "任务信息")
private String requestMsg;
}
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.baomidou.mybatisplus.annotation.*;
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.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 合同待签订任务记录表
*
* @author huych
* @date 2025-06-11 14:15:53
*/
@Data
@TableName("t_employee_contract_pre_history")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "合同待签订任务记录表-快照-给合同查询用")
public class TEmployeeContractPreHistory extends TEmployeeContractPre {
}
......@@ -52,10 +52,10 @@ public class TEmployeePreLogDetail extends BaseEntity {
/**
* 类型:1档案;2商险
*/
@ExcelAttribute(name = "类型:1档案;2商险3合同", maxLength = 1)
@Length(max = 1, message = "类型:1档案;2商险3合同不能超过1个字符")
@ExcelProperty("类型:1档案;2商险3合同")
@Schema(description = "类型:1档案;2商险 3合同")
@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社保")
private String type;
/**
* 入职确认信息表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.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;
/**
* 法大大专业版公司信息表
*
* @author hgw
* @date 2025-10-22 17:43:17
*/
@Data
@TableName("t_fasc_company")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大专业版公司信息表")
public class TFascCompany extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 公司主体
*/
@ExcelAttribute(name = "公司主体", maxLength = 100)
@Length(max = 100, message = "公司主体不能超过100个字符")
@ExcelProperty("公司主体")
@Schema(description = "公司主体")
private String companyName;
/**
* APPID
*/
@ExcelAttribute(name = "APPID", maxLength = 100)
@Length(max = 100, message = "APPID不能超过100个字符")
@ExcelProperty("APPID")
@Schema(description = "APPID")
private String appId;
/**
* AppSecret
*/
@ExcelAttribute(name = "AppSecret", maxLength = 100)
@Length(max = 100, message = "AppSecret不能超过100个字符")
@ExcelProperty("AppSecret")
@Schema(description = "AppSecret")
private String appSecret;
/**
* AppUrl
*/
@ExcelAttribute(name = "AppUrl", maxLength = 100)
@Length(max = 100, message = "AppUrl不能超过100个字符")
@ExcelProperty("AppUrl")
@Schema(description = "AppUrl")
private String appUrl;
/**
* openId
*/
@ExcelAttribute(name = "openId", maxLength = 100)
@Length(max = 100, message = "openId不能超过100个字符")
@ExcelProperty("openId")
@Schema(description = "openId")
private String openId;
/**
* 场景码
*/
@ExcelAttribute(name = "场景码", maxLength = 100)
@Length(max = 100, message = "场景码不能超过100个字符")
@ExcelProperty("场景码")
@Schema(description = "场景码")
private String businessId;
}
/*
* 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 hgw
* @date 2025-10-09 10:39:43
*/
@Data
@TableName("t_fasc_edit_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大编辑日志表")
public class TFascEditLog extends BaseEntity {
/**
* 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 mainId;
/**
* 类型1模板2映射
*/
@ExcelAttribute(name = "类型1模板2映射", isNotEmpty = true, errorInfo = "类型1模板2映射不能为空", maxLength = 1)
@NotBlank(message = "类型1模板2映射不能为空")
@Length(max = 1, message = "类型1模板2映射不能超过1个字符")
@ExcelProperty("类型1模板2映射")
@Schema(description = "类型1模板2映射")
private String mainType;
/**
* 编辑内容
*/
@ExcelAttribute(name = "编辑内容", isNotEmpty = true, errorInfo = "编辑内容不能为空", maxLength = 100)
@NotBlank(message = "编辑内容不能为空")
@Length(max = 100, message = "编辑内容不能超过100个字符")
@ExcelProperty("编辑内容")
@Schema(description = "编辑内容")
private String editContent;
}
/*
* 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* 法大大专业版皖信字段表
*
* @author hgw
* @date 2025-09-30 16:29:27
*/
@Data
@TableName("t_fasc_hr_field")
@Schema(description = "法大大专业版皖信字段表")
public class TFascHrField {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 皖信字段
*/
@ExcelAttribute(name = "皖信字段", maxLength = 100)
@Length(max = 100, message = "皖信字段不能超过100个字符")
@ExcelProperty("皖信字段")
@Schema(description = "皖信字段")
private String hrField;
/**
* 皖信字段ID
*/
@ExcelAttribute(name = "皖信字段ID", maxLength = 100)
@Length(max = 100, message = "皖信字段ID不能超过100个字符")
@ExcelProperty("皖信字段ID")
@Schema(description = "皖信字段ID")
private String hrFieldId;
/**
* 合同类型:标准合同、劳务协议、实习协议、非全日制、劳务派遣合同
*/
@ExcelAttribute(name = "合同类型", maxLength = 20)
@Length(max = 20, message = "合同类型不能超过20个字符")
@ExcelProperty("合同类型")
@Schema(description = "合同类型")
private String contractType;
/**
* 字段类型
*/
@ExcelAttribute(name = "字段类型", maxLength = 10)
@Length(max = 10, message = "字段类型不能超过10个字符")
@ExcelProperty("字段类型")
@Schema(description = "字段类型")
private String fieldType;
/**
* 字段格式化或键值对
*/
@ExcelAttribute(name = "字段格式化或键值对", maxLength = 30)
@Length(max = 30, message = "字段格式化或键值对不能超过30个字符")
@ExcelProperty("字段格式化或键值对")
@Schema(description = "字段格式化或键值对")
private String fieldValue;
}
/*
* 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 hgw
* @date 2025-09-30 16:29:28
*/
@Data
@TableName("t_fasc_push_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大专业版推送日志表")
public class TFascPushLog extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 业务参考号
*/
@ExcelAttribute(name = "业务参考号", isNotEmpty = true, errorInfo = "业务参考号不能为空", maxLength = 32)
@NotBlank(message = "业务参考号不能为空")
@Length(max = 32, message = "业务参考号不能超过32个字符")
@ExcelProperty("业务参考号")
@Schema(description = "业务参考号")
private String transReferenceId;
/**
* 返回的任务ID
*/
@ExcelAttribute(name = "返回的任务ID", maxLength = 32)
@Length(max = 32, message = "返回的任务ID不能超过32个字符")
@ExcelProperty("返回的任务ID")
@Schema(description = "返回的任务ID")
private String signTaskId;
/**
* 推送信息
*/
@ExcelAttribute(name = "推送信息")
@ExcelProperty("推送信息")
@Schema(description = "推送信息")
private String pushData;
/**
* 返回信息
*/
@ExcelAttribute(name = "返回信息")
@ExcelProperty("返回信息")
@Schema(description = "返回信息")
private String returnData;
/**
* 合同ID
*/
@ExcelAttribute(name = "合同ID", maxLength = 32)
@Length(max = 32, message = "合同ID不能超过32个字符")
@ExcelProperty("合同ID")
@Schema(description = "合同ID")
private String contractId;
/**
* 任务状态0推送中1成功2失败
*/
@ExcelAttribute(name = "任务状态0推送中1成功2失败", maxLength = 2)
@Length(max = 2, message = "任务状态0推送中1成功2失败不能超过2个字符")
@ExcelProperty("任务状态0推送中1成功2失败")
@Schema(description = "任务状态0推送中1成功2失败")
private String taskStatus;
/**
* 查询关键字
*/
@ExcelAttribute(name = "查询关键字", maxLength = 50)
@Length(max = 50, message = "查询关键字不能超过50个字符")
@ExcelProperty("查询关键字")
@Schema(description = "查询关键字")
private String typeKey;
/**
* 类型
*/
@ExcelAttribute(name = "类型", maxLength = 20)
@Length(max = 20, message = "类型不能超过20个字符")
@ExcelProperty("类型")
@Schema(description = "类型")
private String typeName;
}
/*
* 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.TableField;
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.time.LocalDateTime;
/**
* 法大大专业版模版表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
@TableName("t_fasc_template")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大专业版模版表")
public class TFascTemplate extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 公司主体Id
*/
@ExcelAttribute(name = "公司主体Id", maxLength = 100)
@Length(max = 100, message = "公司主体Id不能超过100个字符")
@ExcelProperty("公司主体Id")
@Schema(description = "公司主体Id")
private String companyId;
/**
* 公司主体
*/
@ExcelAttribute(name = "公司主体", maxLength = 100)
@Length(max = 100, message = "公司主体不能超过100个字符")
@ExcelProperty("公司主体")
@Schema(description = "公司主体")
private String companyName;
/**
* 签署方
*/
@ExcelAttribute(name = "签署方", maxLength = 100)
@Length(max = 100, message = "签署方不能超过100个字符")
@ExcelProperty("签署方")
@Schema(description = "签署方")
private String signName;
/**
* 签署方Openid
*/
@ExcelAttribute(name = "签署方Openid", maxLength = 100)
@Length(max = 100, message = "签署方Openid不能超过100个字符")
@ExcelProperty("签署方Openid")
@Schema(description = "签署方Openid")
private String signOpenId;
/**
* 模版ID
*/
@ExcelAttribute(name = "模版ID", isNotEmpty = true, errorInfo = "模版ID不能为空", maxLength = 100)
@NotBlank(message = "模版ID不能为空")
@Length(max = 100, message = "模版ID不能超过100个字符")
@ExcelProperty("模版ID")
@Schema(description = "模版ID")
private String signTemplateId;
/**
* 模版名称
*/
@ExcelAttribute(name = "模版名称", maxLength = 100)
@Length(max = 100, message = "模版名称不能超过100个字符")
@ExcelProperty("模版名称")
@Schema(description = "模版名称")
private String signTemplateName;
/**
* 模版状态
* invalid: 停用;valid: 启用;creating:草稿
*/
@ExcelAttribute(name = "模版状态", maxLength = 20)
@Length(max = 20, message = "模版状态不能超过20个字符")
@ExcelProperty("模版状态")
@Schema(description = "模版状态")
private String signTemplateStatus;
/**
* 创建人
*/
@ExcelAttribute(name = "创建人", maxLength = 100)
@Length(max = 100, message = "创建人不能超过100个字符")
@ExcelProperty("创建人")
@Schema(description = "创建人")
private String creatorMemberName;
/**
* 法大大模版创建时间
*/
@ExcelAttribute(name = "法大大模版创建时间", isDate = true)
@ExcelProperty("法大大模版创建时间")
@Schema(description = "法大大模版创建时间")
private LocalDateTime fascCreateTime;
/**
* 最新更新时间
*/
@ExcelAttribute(name = "最新更新时间", isDate = true)
@ExcelProperty("最新更新时间")
@Schema(description = "最新更新时间")
private LocalDateTime fascUpdateTime;
/**
* 关联用章名称
*/
@ExcelAttribute(name = "关联用章名称", maxLength = 100)
@Length(max = 100, message = "关联用章名称不能超过100个字符")
@ExcelProperty("关联用章名称")
@Schema(description = "关联用章名称")
private String zhangName;
/**
* 是否免验证签0否1是
*/
@ExcelAttribute(name = "是否免验证签0否1是", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@Length(max = 1, message = "是否免验证签0否1是不能超过1个字符")
@ExcelProperty("是否免验证签0否1是")
@Schema(description = "是否免验证签0否1是")
private String isMianQian;
/**
* 皖信合同类型
*/
@ExcelAttribute(name = "皖信合同类型", maxLength = 32)
@Length(max = 32, message = "皖信合同类型不能超过32个字符")
@ExcelProperty("皖信合同类型")
@Schema(description = "皖信合同类型")
private String contractType;
/**
* 必填是否已配置0未配置1部分配置2已配置
*/
@ExcelAttribute(name = "必填是否已配置", maxLength = 1, isDataId = true, readConverterExp = "0=未配置,1=部分配置,2=已配置")
@Length(max = 1, message = "必填是否已配置不能超过1个字符")
@ExcelProperty("必填是否已配置0未配置1部分配置2已配置")
@Schema(description = "必填是否已配置0未配置1部分配置2已配置")
private String isMustEdit;
/**
* 发起方ID
*/
@ExcelAttribute(name = "发起方ID")
@ExcelProperty("发起方ID")
@Schema(description = "发起方ID")
private String companyActorId;
/**
* 签署方ID
*/
@ExcelAttribute(name = "签署方ID")
@ExcelProperty("签署方ID")
@Schema(description = "签署方ID")
private String personActorId;
@TableField(exist = false)
@ExcelProperty("当前必填已配置数量")
private String isMustNow;
@TableField(exist = false)
@ExcelProperty("当前必填总数量")
private String isMustAll;
/**
* 是否删除0否1是
*/
@ExcelAttribute(name = "是否删除0否1是", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@Length(max = 1, message = "是否删除0否1是不能超过1个字符")
@ExcelProperty("是否删除0否1是")
@Schema(description = "是否删除0否1是")
private String deleteFlag;
}
/*
* 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 2025-09-30 16:29:28
*/
@Data
@TableName("t_fasc_template_detail")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大专业版模板映射表")
public class TFascTemplateDetail extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 模板ID
*/
@ExcelAttribute(name = "模板ID", isNotEmpty = true, errorInfo = "模板ID不能为空", maxLength = 100)
@NotBlank(message = "模板ID不能为空")
@Length(max = 100, message = "模板ID不能超过100个字符")
@ExcelProperty("模板ID")
@Schema(description = "模板ID")
private String signTemplateId;
/**
* 法大大文档ID
*/
@ExcelAttribute(name = "法大大文档ID", maxLength = 100)
@Length(max = 100, message = "法大大文档ID不能超过100个字符")
@ExcelProperty("法大大文档ID")
@Schema(description = "法大大文档ID")
private String fascDocId;
/**
* 法大大字段
*/
@ExcelAttribute(name = "法大大字段", maxLength = 100)
@Length(max = 100, message = "法大大字段不能超过100个字符")
@ExcelProperty("法大大字段")
@Schema(description = "法大大字段")
private String fascField;
/**
* 法大大字段ID
*/
@ExcelAttribute(name = "法大大字段ID", maxLength = 100)
@Length(max = 100, message = "法大大字段ID不能超过100个字符")
@ExcelProperty("法大大字段ID")
@Schema(description = "法大大字段ID")
private String fascFieldId;
/**
* 是否必填0否1是
*/
@ExcelAttribute(name = "是否必填0否1是", maxLength = 1 , isDataId = true, readConverterExp = "0=否,1=是")
@Length(max = 1, message = "是否必填0否1是不能超过1个字符")
@ExcelProperty("是否必填0否1是")
@Schema(description = "是否必填0否1是")
private String isMust;
/**
* 是否删除0否1是
*/
@ExcelAttribute(name = "是否删除0否1是", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@Length(max = 1, message = "是否删除0否1是不能超过1个字符")
@ExcelProperty("是否删除0否1是")
@Schema(description = "是否删除0否1是")
private String deleteFlag;
/**
* 皖信字段
*/
@ExcelAttribute(name = "皖信字段", maxLength = 100)
@Length(max = 100, message = "皖信字段不能超过100个字符")
@ExcelProperty("皖信字段")
@Schema(description = "皖信字段")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String hrField;
/**
* 皖信字段ID
*/
@ExcelAttribute(name = "皖信字段ID", maxLength = 100)
@Length(max = 100, message = "皖信字段ID不能超过100个字符")
@ExcelProperty("皖信字段ID")
@Schema(description = "皖信字段ID")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String hrFieldId;
/**
* 是否已配置0未配置1已配置
*/
@ExcelAttribute(name = "是否已配置", maxLength = 3, isDataId = true, readConverterExp = "0=未配置,1=已配置")
@Length(max = 3, message = "是否已配置不能超过3个字符")
@ExcelProperty("是否已配置")
@Schema(description = "是否已配置0未配置1已配置")
private String isEdit;
@TableField(exist = false)
@Schema(description = "模版名称")
private String signTemplateName;
// 模板状态: invalid: 停用;valid: 启用;creating:草稿
@TableField(exist = false)
@Schema(description = "模版状态")
private String signTemplateStatus;
@TableField(exist = false)
@Schema(description = "对应皖信合同类型")
private String contractType;
// 合同类型是否配置 空(空值),“是”(1),“否”(0)
@TableField(exist = false)
@Schema(description = "合同类型是否配置")
private String haveContractType;
/**
* 字段类型
*/
@TableField(exist = false)
@Schema(description = "字段类型")
private String fieldType;
/**
* 字段格式化或键值对
*/
@TableField(exist = false)
@Schema(description = "字段格式化或键值对")
private String fieldValue;
}
......@@ -86,6 +86,59 @@ public class IdCardUtil {
}
return date;
}
/**
* 提取身份证中的出生日期,身份证非法则返回空
* @param idNum
* @return
*/
public static String getBirthdateByPatten(String idNum, String patten){
Pattern idNumPattern = null;
Matcher idNumMatcher = null;
String returnDateStr = null;
//定义判别用户身份证号的正则表达式(要么是15位,要么是18位,最后一位可以为字母)
idNumPattern = compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
//通过Pattern获得Matcher
idNumMatcher = idNumPattern.matcher(idNum);
//判断用户输入是否为身份证号
if(idNumMatcher.matches()){
Pattern birthDatePattern =null;
Matcher birthDateMather = null;
String year = null;
if(idNum.length()==18){
//如果是,定义正则表达式提取出身份证中的出生日期
birthDatePattern= compile("\\d{6}(\\d{4})(\\d{2})(\\d{2}).*");//身份证上的前6位以及出生年月日
//通过Pattern获得Matcher
birthDateMather= birthDatePattern.matcher(idNum);
}else if(idNum.length()==15){
//如果是,定义正则表达式提取出身份证中的出生日期
birthDatePattern= compile("\\d{6}(\\d{2})(\\d{2})(\\d{2}).*");//身份证上的前6位以及出生年月日
//通过Pattern获得Matcher
birthDateMather= birthDatePattern.matcher(idNum);
}
//通过Matcher获得用户的出生年月日
if(null != birthDateMather && birthDateMather.find()){
if(idNum.length()==18){
year = birthDateMather.group(1);
}else if(idNum.length()==15){
year = "19"+birthDateMather.group(1);
}
String month = birthDateMather.group(2);
String datetemp = birthDateMather.group(3);
String dateStr =year+"-"+month+"-"+datetemp;
SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfOut = new SimpleDateFormat( patten );
try {
Date shijian =sdfInput.parse(dateStr);
returnDateStr = sdfOut.format(shijian);
} catch (ParseException e) {
//数据有误
}
}
}
return returnDateStr;
}
/**
* 获取身份证的性别
* @Author fxj
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CustomerExpiringStatistics implements Serializable {
private String customerUserLoginname;
private int expiringCount = 0;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CustomerRevokeStatistics implements Serializable {
private String customerUserLoginname;
private int revokedCount = 0;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CustomerStatistics implements Serializable {
private String customerUserLoginname;
private String customerUsername;
private int initiatedCount = 0;
private int failedCount = 0;
private int electronicSignFailedCount = 0;
private int offlineSignFailedCount = 0;
}
......@@ -49,7 +49,7 @@ public class EmployeeContractExportAuditVO implements Serializable {
* 3、合同申请处申请类型为:作废——审核类型统一为:派减-作废;终止——审核类型统一为:派减-终止;
* @Date 14:50 2022/11/7
**/
@ExcelAttribute(name = "审核类型",readConverterExp = "0=派增-社保派单,1=派增-无社保新签,2=派增-续签,3=派减-作废,4=派减-终止")
@ExcelAttribute(name = "审核类型",readConverterExp = "0=派增-社保派单,1=派增-无社保新签,2=派增-续签,3=派减-作废,4=派减-终止,5=自动化派单-无需审核")
@Schema(description = "审核类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("审核类型")
......
......@@ -46,14 +46,14 @@ public class EmployeeContractExportVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* @Author fxj
* @Description 0派增-社保派单、1派增-无社保新签、2派增-续签、3派减-作废、4派减-终止
* @Description 0派增-社保派单、1派增-无社保新签、2派增-续签、3派减-作废、4派减-终止、5自动化派单-无需审核
* 1、增加“审核类型”,内容为:派增-社保派单、派增-无社保新签、派增-续签、派减-作废、派减-终止
* 2、社保派单过来的合同,审核类型统一为:派增-社保派单;
* 3、合同申请处申请类型为:新签(正常签订)——审核类型为:派增-无社保新签、;续签(合同未到期重新签订、离职再入职、商务合同更改)——审核类型统一为:派增-续签;
* 3、合同申请处申请类型为:作废——审核类型统一为:派减-作废;终止——审核类型统一为:派减-终止;
* @Date 14:50 2022/11/7
**/
@ExcelAttribute(name = "审核类型",readConverterExp = "0=派增-社保派单,1=派增-无社保新签,2=派增-续签,3=派减-作废,4=派减-终止")
@ExcelAttribute(name = "审核类型",readConverterExp = "0=派增-社保派单,1=派增-无社保新签,2=派增-续签,3=派减-作废,4=派减-终止,5=自动化派单-无需审核")
@Schema(description = "审核类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("审核类型")
......@@ -187,7 +187,7 @@ public class EmployeeContractExportVO implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("审核状态")
@ExcelAttribute(name = "审核状态", readConverterExp = "0=待提交,1=待审核,2=审核通过,3=审核不通过")
@ExcelAttribute(name = "审核状态", readConverterExp = "0=待提交,1=待审核,2=审核通过,3=审核不通过,4=签署中,5=撤销签署,6=签署失败")
@Schema(description = "审核状态")
private String auditStatus;
......@@ -299,4 +299,9 @@ public class EmployeeContractExportVO implements Serializable {
@Schema(description = "试用期", name = "tryPeriod")
@ExcelProperty("试用期")
private String tryPeriod;
@Schema(description = "签署方式1线下签0电子签")
@ExcelProperty("签署方式")
@ExcelAttribute(name = "签署方式", readConverterExp = "0=电子签,1=线下签")
private String signType;
}
......@@ -207,6 +207,9 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty("备注")
private String remark;
@Schema(description = "签署方式1线下签0电子签")
private String signType;
/**
* 0 是 1 否
*/
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author huych
* @description 社保自动化自动化社保明细VO
* @date 2025-10-10 15:44:26
*/
@Data
@Schema(description = "社保自动化自动化社保明细VO")
public class EmployeePreSocialListVo implements Serializable {
private static final long serialVersionUID = 628032758008497542L;
@Schema(description = "社保待购买信息")
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "社保流程中信息集合")
private List<TSocialPreDetailVo> exitSocialInfoList;
}
......@@ -120,6 +120,9 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "商险是否已购买 0 是 1 否")
private String insuranceIsBuy;
@Schema(description = "社保是否已参保 0 是 1 否")
private String socialIsBuy;
@Schema(description = "身份证合集")
private List<String> idcardList;
......@@ -132,6 +135,12 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "合同待派单信息")
private TEmployeeContractPreVo employeeContractPreVos;
@Schema(description = "社保待购买信息")
private TDispatchInfoPreVo dispatchInfoPreVo;
@Schema(description = "社保流程中信息集合")
private List<TSocialPreDetailVo> exitSocialInfoList;
@Schema(description = "附件集合")
private List<TAttaInfoSaveVo> attaList;
......
......@@ -16,4 +16,6 @@ public class MessageTempleteVo implements Serializable {
String signName;
// 模版编号
String templeteCode;
// 应用AppId
String appId;
}
......@@ -46,4 +46,10 @@ public class TAutoMainRelAddVo implements Serializable {
//员工合同签订规则配置方案子表表
private List<TAutoContractScheme> contractSchemes;
//社保规则主表
private TAutoSocialRuleInfo socialRuleInfo;
//社保规则明细表
private List<TAutoSocialRuleRel> socialRuleRels;
}
......@@ -60,4 +60,10 @@ public class TAutoMainRelDetailVo implements Serializable {
//员工合同签订规则配置方案子表表
private List<TAutoContractScheme> contractSchemes;
//社保规则表
private TAutoSocialRuleInfo socialRuleInfo;
//社保规则明细表
private List<TAutoSocialRuleRel> socialRuleRels;
}
/*
* 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.TAutoSocialRuleInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 社保购买规则主表
*
* @author fxj
* @date 2025-10-09 11:13:18
*/
@Data
public class TAutoSocialRuleInfoSearchVo extends TAutoSocialRuleInfo{
/**
* 多选导出或删除等操作
*/
@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-10-09 11:13:18
*/
@Data
public class TAutoSocialRuleInfoVo 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
*/
@Length(max = 32, message = "项目配置ID 不能超过32 个字符")
@ExcelAttribute(name = "项目配置ID", isNotEmpty = false, 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;
/**
* 项目编码
*/
@Length(max = 50, message = "项目编码 不能超过50 个字符")
@ExcelAttribute(name = "项目编码", maxLength = 50)
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
/**
* 项目ID
*/
@Length(max = 50, message = "项目ID 不能超过50 个字符")
@ExcelAttribute(name = "项目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.TAutoSocialRuleRel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 社保购买规则明细表
*
* @author fxj
* @date 2025-10-09 11:13:18
*/
@Data
public class TAutoSocialRuleRelSearchVo extends TAutoSocialRuleRel {
/**
* 多选导出或删除等操作
*/
@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-10-09 11:13:18
*/
@Data
public class TAutoSocialRuleRelVo 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;
/**
* 社保起缴日期是否一致(0-是,1-否)
*/
@Length(max = 1, message = "社保起缴日期是否一致(0-是,1-否) 不能超过1 个字符")
@ExcelAttribute(name = "社保起缴日期是否一致(0-是,1-否)", maxLength = 1)
@Schema(description = "社保起缴日期是否一致(0-是,1-否)")
@ExcelProperty("社保起缴日期是否一致(0-是,1-否)")
private String socialDateFlag;
/**
* 起缴日期:0 入职日期
*/
@Length(max = 2, message = "起缴日期:0 入职日期 不能超过2 个字符")
@ExcelAttribute(name = "起缴日期:0 入职日期", maxLength = 2)
@Schema(description = "起缴日期:0 入职日期")
@ExcelProperty("起缴日期:0 入职日期")
private String socialDateType;
/**
* 缴纳类型:0最低、1自定义、2最高
*/
@Length(max = 2, message = "缴纳类型:0最低、1自定义、2最高 不能超过2 个字符")
@ExcelAttribute(name = "缴纳类型:0最低、1自定义、2最高", maxLength = 2)
@Schema(description = "缴纳类型:0最低、1自定义、2最高")
@ExcelProperty("缴纳类型:0最低、1自定义、2最高")
private String paymentType;
/**
* 备案基数类型:0固定值1自定义
*/
@Length(max = 2, message = "备案基数类型:0固定值1自定义 不能超过2 个字符")
@ExcelAttribute(name = "备案基数类型:0固定值1自定义", maxLength = 2)
@Schema(description = "备案基数类型:0固定值1自定义")
@ExcelProperty("备案基数类型:0固定值1自定义")
private String recordBaseType;
/**
* 备案基数
*/
@Length(max = 30, message = "备案基数 不能超过30 个字符")
@ExcelAttribute(name = "备案基数", maxLength = 30)
@Schema(description = "备案基数")
@ExcelProperty("备案基数")
private String recordBase;
/**
* 委托备注(字典值)
*/
@Length(max = 100, message = "委托备注(字典值) 不能超过100 个字符")
@ExcelAttribute(name = "委托备注(字典值)", maxLength = 100)
@Schema(description = "委托备注(字典值)")
@ExcelProperty("委托备注(字典值)")
private String remarkDict;
/**
* 项目编码
*/
@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;
}
......@@ -99,4 +99,9 @@ public class TEmployeeContractPreExportVo implements Serializable {
@Schema(description = "状态")
@ExcelProperty("状态")
private String processStatus;
@ExcelAttribute(name = "是否已建档")
@Schema(description = "是否已建档")
@ExcelProperty("是否已建档")
private String archivesIsCreate;
}
......@@ -56,4 +56,7 @@ public class TEmployeeContractPreSearchVo extends TEmployeeContractPre {
@Schema(description = "列表类型 1 待办 2监控")
private String type;
@Schema(description = "自动标识 1不查询确认时间为空的数据")
private String autoSendFlag;
}
......@@ -565,4 +565,13 @@ public class TEmployeeContractPreVo extends RowIndex implements Serializable {
private String revokeReason;
/**
* 法大大模版ID
*/
@Length(max = 50, message = "法大大模版ID 不能超过50 个字符")
@ExcelAttribute(name = "法大大模版ID", maxLength = 50)
@Schema(description = "法大大模版ID")
@ExcelProperty("法大大模版ID")
private String fadadaTemplateId;
}
/*
* 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;
/**
* 导出-法大大专业版模版映射表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
@ColumnWidth(10)
public class TFascTemplateDetailExportVo {
@ExcelAttribute(name = "法大大模版名称")
@ExcelProperty("法大大模版名称")
private String signTemplateName;
@ExcelAttribute(name = "模版ID", isNotEmpty = true, errorInfo = "模版ID不能为空", maxLength = 100)
@ExcelProperty("模版ID")
private String signTemplateId;
@ExcelAttribute(name = "模版状态")
@ExcelProperty("模版状态")
private String signTemplateStatus;
/**
* 法大大字段
*/
@ExcelAttribute(name = "法大大字段", maxLength = 100)
@Length(max = 100, message = "法大大字段不能超过100个字符")
@ExcelProperty("法大大字段")
@Schema(description = "法大大字段")
private String fascField;
/**
* 法大大字段ID
*/
@ExcelAttribute(name = "法大大字段ID", maxLength = 100)
@Length(max = 100, message = "法大大字段ID不能超过100个字符")
@ExcelProperty("法大大字段ID")
@Schema(description = "法大大字段ID")
private String fascFieldId;
/**
* 是否必填0否1是
*/
@ExcelAttribute(name = "是否必填", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@ExcelProperty("是否必填")
private String isMust;
/**
* 是否删除0否1是
*/
@ExcelAttribute(name = "是否删除", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@ExcelProperty("是否删除")
private String deleteFlag;
@ExcelAttribute(name = "对应皖信合同类型")
@ExcelProperty("对应皖信合同类型")
private String contractType;
/**
* 皖信字段
*/
@ExcelAttribute(name = "皖信字段", maxLength = 100)
@ExcelProperty("皖信字段")
private String hrField;
/**
* 皖信字段ID
*/
@ExcelAttribute(name = "皖信字段ID", maxLength = 100)
@ExcelProperty("皖信字段ID")
private String hrFieldId;
/**
* 是否已配置0未配置1已配置
*/
@ExcelAttribute(name = "是否已配置", maxLength = 3, isDataId = true, readConverterExp = "0=未配置,1=已配置")
@ExcelProperty("是否已配置")
private String isEdit;
}
/*
* 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.TFascTemplateDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 法大大专业版模板映射表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
public class TFascTemplateDetailSearchVo extends TFascTemplateDetail {
/**
* 多选导出或删除等操作
*/
@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.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;
/**
* 法大大专业版模版映射表_更新VO
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
public class TFascTemplateDetailUpdateVo extends RowIndex implements Serializable {
//法大大模版名称、模版ID、法大大字段、法大大字段ID、对应皖信合同类型(同一个模版ID只能对应一种类型)、对应皖信字段、对应皖信字段ID
//法大大模版名称、模版ID、法大大字段、法大大字段ID、对应皖信字段、对应皖信字段ID
// 对应皖信合同类型——去掉该字段,影响更新效果(填了不校验,也不更新,会产生误解) 2025-09-30 17:32
/**
* 模版名称
*/
@NotBlank(message = "法大大模版名称 不能为空")
@Length(max = 100, message = "法大大模版名称 不能超过100 个字符")
@ExcelAttribute(isNotEmpty = true, errorInfo = "法大大模版名称 不能为空", name = "法大大模版名称", maxLength = 100)
@Schema(description = "法大大模版名称")
@ExcelProperty("法大大模版名称")
private String signTemplateName;
/**
* 模版ID
*/
@NotBlank(message = "模版ID 不能为空")
@Length(max = 100, message = "模版ID 不能超过100 个字符")
@ExcelAttribute(name = "模版ID", isNotEmpty = true, errorInfo = "模版ID 不能为空", maxLength = 100)
@Schema(description = "模版ID")
@ExcelProperty("模版ID")
private String signTemplateId;
/**
* 法大大字段
*/
@NotBlank(message = "法大大字段 不能为空")
@Length(max = 100, message = "法大大字段 不能超过100 个字符")
@ExcelAttribute(isNotEmpty = true, errorInfo = "法大大字段 不能为空", name = "法大大字段", maxLength = 100)
@Schema(description = "法大大字段")
@ExcelProperty("法大大字段")
private String fascField;
/**
* 法大大字段ID
*/
@NotBlank(message = "法大大字段ID 不能为空")
@Length(max = 100, message = "法大大字段ID 不能超过100 个字符")
@ExcelAttribute(isNotEmpty = true, errorInfo = "法大大字段ID 不能为空", name = "法大大字段ID", maxLength = 100)
@Schema(description = "法大大字段ID")
@ExcelProperty("法大大字段ID")
private String fascFieldId;
/**
* 对应皖信字段
*/
@NotBlank(message = "对应皖信字段 不能为空")
@Length(max = 100, message = "对应皖信字段 不能超过100 个字符")
@ExcelAttribute(isNotEmpty = true, errorInfo = "对应皖信字段 不能为空", name = "对应皖信字段", maxLength = 100)
@Schema(description = "对应皖信字段")
@ExcelProperty("对应皖信字段")
private String hrField;
/**
* 对应皖信字段ID
*/
@NotBlank(message = "对应皖信字段ID 不能为空")
@Length(max = 100, message = "对应皖信字段ID 不能超过100 个字符")
@ExcelAttribute(isNotEmpty = true, errorInfo = "对应皖信字段ID 不能为空", name = "对应皖信字段ID", maxLength = 100)
@Schema(description = "对应皖信字段ID")
@ExcelProperty("对应皖信字段ID")
private String hrFieldId;
}
/*
* 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;
/**
* 导出-法大大专业版模版表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
@ColumnWidth(10)
public class TFascTemplateExportVo {
// 公司主体、签署方、签署方Openid、模版ID、模版名称、
/**
* 公司主体
*/
@ExcelAttribute(name = "公司主体", maxLength = 100)
@Length(max = 100, message = "公司主体不能超过100个字符")
@ExcelProperty("公司主体")
@Schema(description = "公司主体")
private String companyName;
/**
* 签署方
*/
@ExcelAttribute(name = "签署方", maxLength = 100)
@Length(max = 100, message = "签署方不能超过100个字符")
@ExcelProperty("签署方")
@Schema(description = "签署方")
private String signName;
/**
* 签署方Openid
*/
@ExcelAttribute(name = "签署方Openid", maxLength = 100)
@Length(max = 100, message = "签署方Openid不能超过100个字符")
@ExcelProperty("签署方Openid")
@Schema(description = "签署方Openid")
private String signOpenId;
/**
* 模版ID
*/
@ExcelAttribute(name = "模版ID", isNotEmpty = true, errorInfo = "模版ID不能为空", maxLength = 100)
@NotBlank(message = "模版ID不能为空")
@Length(max = 100, message = "模版ID不能超过100个字符")
@ExcelProperty("模版ID")
@Schema(description = "模版ID")
private String signTemplateId;
/**
* 模版名称
*/
@ExcelAttribute(name = "模版名称", maxLength = 100)
@Length(max = 100, message = "模版名称不能超过100个字符")
@ExcelProperty("模版名称")
@Schema(description = "模版名称")
private String signTemplateName;
// 创建人、最新更新时间、关联用章名称、模版状态、是否免验证签、皖信合同类型、必填是否已配置
/**
* 创建人
*/
@ExcelAttribute(name = "创建人", maxLength = 100)
@Length(max = 100, message = "创建人不能超过100个字符")
@ExcelProperty("创建人")
@Schema(description = "创建人")
private String creatorMemberName;
/**
* 最新更新时间
*/
@ExcelAttribute(name = "最新更新时间", isDate = true)
@ExcelProperty("最新更新时间")
@Schema(description = "最新更新时间")
private String fascUpdateTime;
/**
* 关联用章名称
*/
@ExcelAttribute(name = "关联用章名称", maxLength = 100)
@Length(max = 100, message = "关联用章名称不能超过100个字符")
@ExcelProperty("关联用章名称")
@Schema(description = "关联用章名称")
private String zhangName;
/**
* 模版状态
* invalid: 停用;valid: 启用;creating:草稿
*/
@ExcelAttribute(name = "模版状态", maxLength = 20, isDataId = true, readConverterExp = "invalid=停用,valid=启用,creating=草稿")
@Length(max = 20, message = "模版状态不能超过20个字符")
@ExcelProperty("模版状态")
@Schema(description = "模版状态")
private String signTemplateStatus;
/**
* 是否免验证签0否1是
*/
@ExcelAttribute(name = "是否免验证签", maxLength = 1, isDataId = true, readConverterExp = "0=否,1=是")
@Length(max = 1, message = "是否免验证签不能超过1个字符")
@ExcelProperty("是否免验证签")
@Schema(description = "是否免验证签")
private String isMianQian;
/**
* 皖信合同类型
*/
@ExcelAttribute(name = "皖信合同类型", maxLength = 32)
@Length(max = 32, message = "皖信合同类型不能超过32个字符")
@ExcelProperty("皖信合同类型")
@Schema(description = "皖信合同类型")
private String contractType;
/**
* 必填是否已配置0未配置1部分配置2已配置
*/
@ExcelAttribute(name = "必填是否已配置", maxLength = 1, isDataId = true, readConverterExp = "0=未配置,1=部分配置,2=已配置")
@Length(max = 1, message = "必填是否已配置不能超过1个字符")
@ExcelProperty("必填是否已配置")
@Schema(description = "必填是否已配置")
private String isMustEdit;
}
/*
* 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.TFascTemplate;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 法大大专业版模板表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@Data
public class TFascTemplateSearchVo extends TFascTemplate {
/**
* 多选导出或删除等操作
*/
@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.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 hgw
* @date 2025-09-30 16:29:28
*/
@Data
public class TFascTemplateUpdateVo extends RowIndex implements Serializable {
/**
* 模版ID
*/
@NotBlank(message = "模版ID 不能为空")
@Length(max = 100, message = "模版ID 不能超过100 个字符")
@ExcelAttribute(name = "模版ID", isNotEmpty = true, errorInfo = "模版ID 不能为空", maxLength = 100)
@Schema(description = "模版ID")
@ExcelProperty("模版ID")
private String signTemplateId;
/**
* 模版名称
*/
@Length(max = 100, message = "模版名称 不能超过100 个字符")
@ExcelAttribute(name = "模版名称", isNotEmpty = true, errorInfo = "模版名称 不能为空", maxLength = 100)
@Schema(description = "模版名称")
@ExcelProperty("模版名称")
private String signTemplateName;
/**
* 皖信合同类型
*/
@Length(max = 32, message = "皖信合同类型 不能超过32 个字符")
@ExcelAttribute(name = "皖信合同类型", isNotEmpty = true, errorInfo = "皖信合同类型 不能为空", maxLength = 32)
@Schema(description = "皖信合同类型")
@ExcelProperty("皖信合同类型")
private String contractType;
}
/*
* 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.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
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.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;
import java.util.Date;
/**
* 瓜子取消offer vo
*
* @author hgw
* @date 2025-10-21 18:22:49
*/
@Data
public class TGzOfferInfoCancelVo {
@Schema(description = "流程ID(瓜子推过来的主键)")
private String bizId;
@Schema(description = "取消原因")
private String reason;
}
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;
/**
* 入职确认信息社保已购买记录
*
* @author huych
* @date 2025-09-30 16:41:57
*/
@Data
public class TSocialPreDetailVo 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 socialProvince;
/**
* 社保缴纳地-市
*/
@ExcelAttribute(name = "社保缴纳地-市", maxLength = 32)
@Length(max = 32, message = "社保缴纳地-市不能超过32个字符")
@ExcelProperty("社保缴纳地-市")
@Schema(description = "社保缴纳地-市")
private String socialCity;
/**
* 社保缴纳地-县
*/
@ExcelAttribute(name = "社保缴纳地-县", maxLength = 32)
@Length(max = 32, message = "社保缴纳地-县不能超过32个字符")
@ExcelProperty("社保缴纳地-县")
@Schema(description = "社保缴纳地-县")
private String socialTown;
/**
* 项目名称
*/
@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 socialHouseholdName;
/**
* 入职确认信息主表id
*/
@ExcelAttribute(name = "入职确认信息主表id", maxLength = 36)
@Length(max = 36, message = "入职确认信息主表id不能超过36个字符")
@ExcelProperty("入职确认信息主表id")
@Schema(description = "入职确认信息主表id")
private String registerId;
/**
* 缴费政策类型 0-最低 1-自定义 2-最高
*/
private String paymentType;
/**
* 社保状态
*/
private String socialStatus;
/**
* 派单人
*/
@ExcelAttribute(name = "派单人", maxLength = 64)
@Length(max = 64, message = "派单人不能超过64个字符")
@ExcelProperty("派单人")
@Schema(description = "派单人")
private String dispatchName;
/**
* 派单时间
*/
@ExcelAttribute(name = "派单时间")
@ExcelProperty("派单时间")
@Schema(description = "派单时间")
private String dispatchTime;
}
......@@ -57,6 +57,12 @@
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-log</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--必备:swagger-->
<dependency>
......@@ -72,6 +78,12 @@
<groupId>com.fadada.api</groupId>
<version>1.8.0</version>
<artifactId>fadada-java-sdk-api3</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
......@@ -123,7 +135,19 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!-- 二维码生成JAR结束 -->
<dependency>
<groupId>com.fadada.api</groupId>
<artifactId>fasc-openapi-java-sdk</artifactId>
<version>5.7.4.0910</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 二维码生成JAR结束 -->
</dependencies>
<build>
......
package com.yifu.cloud.plus.v1.yifu.archives.config;
import com.fasc.open.api.bean.base.BaseRes;
import com.fasc.open.api.bean.common.OpenId;
import com.fasc.open.api.exception.ApiException;
import com.fasc.open.api.v5_1.client.OpenApiClient;
import com.fasc.open.api.v5_1.client.ServiceClient;
import com.fasc.open.api.v5_1.client.TemplateClient;
import com.fasc.open.api.v5_1.req.template.GetSignTemplateListReq;
import com.fasc.open.api.v5_1.req.template.SignTemplateListFilterInfo;
import com.fasc.open.api.v5_1.res.service.AccessTokenRes;
import com.fasc.open.api.v5_1.res.template.SignTemplateListInfo;
import com.fasc.open.api.v5_1.res.template.SignTemplateListRes;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @Author: hgw
* @Date: 2025-9-25 14:24:53
* @return: 企业法大大专业版配置
**/
@Configuration
@Data
@Slf4j
public class FascConfig {
@Value("${fasc.appId}")
private String appId;
@Value("${fasc.appSecret}")
private String appSecret;
@Value("${fasc.appUrl}")
private String appUrl;
@Value("${fasc.openId}")
private String openId;
/*@Autowired
private RedisTemplate redisTemplate;
*//*public static void main(String[] args) throws ApiException {
String appId = "80003662";
String appSecret = "DXREUVHOLEFJMWLGYFGF1JKID8YCEDWZ";
OpenApiClient openApiClient = new OpenApiClient(appId, appSecret, "https://uat-api.fadada.com/api/v5");
ServiceClient serviceClient = new ServiceClient(openApiClient);
BaseRes<AccessTokenRes> res = serviceClient.getAccessToken();
String token = null;
if (res != null && res.isSuccess() && res.getData() != null && res.getData().getAccessToken() != null) {
token = res.getData().getAccessToken();
}
System.out.println(token);
}*//*
*//**
* @Description: 获取token
* @Author: huyc
* @Date: 2023/7/28 14:46
* @return: java.lang.String
**//*
public String getFascToken(OpenApiClient openApiClient) throws ApiException {
String tokenKey = CacheConstants.FASC_ACCOSS_TOKEN;
Object wxToken = redisTemplate.opsForValue().get(tokenKey);
if (null != wxToken) {
return String.valueOf(wxToken);
}
if (openApiClient == null) {
openApiClient = new OpenApiClient(appId, appSecret, appUrl);
}
ServiceClient serviceClient = new ServiceClient(openApiClient);
BaseRes<AccessTokenRes> res = serviceClient.getAccessToken();
String token = null;
if (res != null && res.isSuccess() && res.getData() != null && res.getData().getAccessToken() != null) {
token = res.getData().getAccessToken();
}
if (Common.isEmpty(token)) {
throw new CheckedException("获取法大大专业版token失败");
}
redisTemplate.opsForValue().set(tokenKey, token);
redisTemplate.expire(tokenKey, 3600, TimeUnit.SECONDS);
return token;
}
*//**
* @Author: hgw
* @Date: 2025-9-25 14:11:06
* @Description: 移除法大大专业版accossToken
* @return: java.lang.String
**//*
public void removeFascToken() {
redisTemplate.delete(CacheConstants.FASC_ACCOSS_TOKEN);
}
public List<SignTemplateListInfo> getTemplateList(String templateName) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(appId, appSecret, appUrl);
TemplateClient templateClient = new TemplateClient(openApiClient) ;
String accessToken = this.getFascToken(openApiClient);
GetSignTemplateListReq getSignTemplateListReq = new GetSignTemplateListReq() ;
getSignTemplateListReq.setListPageNo(1) ;
getSignTemplateListReq.setListPageSize(100) ;
OpenId ownerId = new OpenId() ;
ownerId.setIdType(CacheConstants.FASC_ID_TYPE) ;
ownerId.setOpenId(openId) ;
getSignTemplateListReq.setOwnerId(ownerId) ;
SignTemplateListFilterInfo signTemplateListFilterInfo = new SignTemplateListFilterInfo();
if (Common.isNotNull(templateName)) {
// 签署任务模板名称,如果传了该参数,会根据名称模糊匹配查询,长度最大100个字符。
signTemplateListFilterInfo.setSignTemplateName(templateName) ;
} else {
signTemplateListFilterInfo.setSignTemplateName("") ;
}
getSignTemplateListReq.setListFilter(signTemplateListFilterInfo) ;
getSignTemplateListReq.setAccessToken(accessToken) ;
BaseRes<SignTemplateListRes> res = templateClient.getSignTemplateList(getSignTemplateListReq) ;
List<SignTemplateListInfo> list = null;
if (res != null && res.isSuccess() && res.getData() != null && res.getData().getSignTemplates() != null
&& !res.getData().getSignTemplates().isEmpty()) {
list = res.getData().getSignTemplates();
if (res.getData().getListPageCount() != null ) {
int listPageCount = res.getData().getListPageCount();
// 超过1页的循环查询
if (listPageCount > 1) {
for (int i=2; i<=listPageCount; i++) {
getSignTemplateListReq.setListPageNo(i) ;
res = templateClient.getSignTemplateList(getSignTemplateListReq) ;
if (res.getData().getSignTemplates() != null && !res.getData().getSignTemplates().isEmpty()) {
list.addAll(res.getData().getSignTemplates());
}
}
}
}
}
return list;
}*/
}
......@@ -211,4 +211,5 @@ public class EmployeeRegistrationPreController {
public R<EmployeeInfoMsgVo> getGzEmployeeInfo(@RequestBody EmployeeInfoMsgVo vo) {
return employeeRegistrationPreService.getGzEmployeeInfo(vo);
}
}
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fadada.api.utils.crypt.FddCryptUtil;
import com.fasc.open.api.constants.RequestConstants;
import com.fasc.open.api.exception.ApiException;
import com.yifu.cloud.plus.v1.yifu.archives.config.FascConfig;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascPushLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.FascService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascPushLogService;
import com.yifu.cloud.plus.v1.yifu.archives.utils.DoFascTask;
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.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
/**
* @auther huyc
* @date 2022/6/29
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/fasc")
@Tag(name = "法大大专业版接口")
public class FascController {
@Autowired
private FascService fascService;
@Autowired
private FascConfig fascConfig;
@Autowired
@Lazy
private DoFascTask doFascTask;
private final TFascPushLogService tFascPushLogService;
private static String FASC_EVENT = "X-FASC-Event";
private static String FASC_BIZ_CONTENT = "bizContent";
private static String FASC_SUCCESS = "success";
/**
* @Description: 获取模板
* @Author: hgw
* @Date: 2025/9/26 16:21
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "每日定时获取法大大模板和详情")
@PostMapping("/inner/everyDayGetFascTemplate")
@Inner
public R<String> everyDayGetFascTemplate() throws ApiException {
return fascService.getTemplate(null);
}
/**
* @param templateName 签署任务模板名称,如果传了该参数,会根据名称模糊匹配查询,长度最大100个字符。
* @Description: 获取模板
* @Author: hgw
* @Date: 2025/9/26 16:21
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "获取模板")
@GetMapping("/getTemplate")
public R<String> getTemplate(@RequestParam(required = false) String templateName) throws ApiException {
return fascService.getTemplate(templateName);
}
/**
* @param signTemplateId 签署任务模板ID
* @Description: 获取模板详情预览链接
* @Author: hgw
* @Date: 2025/9/26 16:21
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "获取模板详情预览链接")
@GetMapping("/getTemplateDetailUrl")
public R<String> getTemplateDetailUrl(@RequestParam String signTemplateId) throws ApiException {
return fascService.getTemplateDetailUrl(signTemplateId);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 发起电子签署
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "发起电子签署")
@GetMapping("/submitContract")
public R<String> submitContract(@RequestParam String id) throws ApiException {
return fascService.submitContract(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 撤销签署
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "撤销签署")
@GetMapping("/cancelTask")
public R<String> cancelTask(@RequestParam String id) throws ApiException {
return fascService.cancelTask(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 催办
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "催办")
@GetMapping("/urgeTask")
public R<String> urgeTask(@RequestParam String id) throws ApiException {
return fascService.urgeTask(id);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 获取附件
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "获取附件")
@GetMapping("/getFileByRequestId")
public R<String> getFileByRequestId(@RequestParam String id) throws ApiException {
fascService.getFileByRequestId(id);
return R.ok();
}
@Operation(summary = "异步通知", description = "异步通知")
@RequestMapping(value = "/api/fascCallback")
public R<String> notifyUrl(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTaskStatus(CommonConstants.ONE_STRING);
pushLog.setTypeKey("签署任务事件,异步通知");
pushLog.setTypeName("签署任务事件,异步通知");
tFascPushLogService.save(pushLog);
if (checkSign(request, pushLog)) {
pushLog.setTaskStatus(CommonConstants.TWO_STRING);
tFascPushLogService.updateById(pushLog);
return R.failed("验签失败");
}
tFascPushLogService.updateById(pushLog);
String fddEvent = request.getHeader(FASC_EVENT);
String fddBizContent = request.getParameter(FASC_BIZ_CONTENT);
if (Common.isNotNull(fddEvent)) {
JSONObject jsonObject = JSON.parseObject(fddBizContent);
// 任务ID
String signTaskId = jsonObject.getString("signTaskId");
// 原因
String terminationNote = jsonObject.getString("terminationNote");
if (Common.isEmpty(terminationNote)) {
terminationNote = jsonObject.getString("signRejectReason");
}
if (Common.isEmpty(terminationNote)) {
terminationNote = jsonObject.getString("fillRejectReason");
}
if (Common.isEmpty(terminationNote)) {
terminationNote = jsonObject.getString("signFailedReason");
}
// 操作人
//String userName = jsonObject.getString("userName")
// 异步执行:
doFascTask.doFascOkCore(pushLog, fddEvent, fddBizContent, signTaskId, terminationNote);
return R.ok(null, FASC_SUCCESS);
}
return R.ok(null, FASC_SUCCESS);
}
//验证签名,返回true表示失败
public boolean checkSign(HttpServletRequest request, TFascPushLog pushLog) throws Exception {
Map<String, String> paraMap = new HashMap<>();
paraMap.put(RequestConstants.APP_ID, request.getHeader(RequestConstants.APP_ID));
paraMap.put(RequestConstants.SIGN_TYPE, request.getHeader(RequestConstants.SIGN_TYPE));
String timeStamp = request.getHeader(RequestConstants.TIMESTAMP);
paraMap.put(RequestConstants.TIMESTAMP, timeStamp);
paraMap.put(RequestConstants.NONCE, request.getHeader(RequestConstants.NONCE));
paraMap.put(FASC_EVENT, request.getHeader(FASC_EVENT));
paraMap.put(FASC_BIZ_CONTENT, request.getParameter(FASC_BIZ_CONTENT));
//参数排序,ascii码排序
String sortParam = FddCryptUtil.sortParameters(paraMap);
pushLog.setPushData(sortParam);
//计算之后得到签名 该签名需要放到请求头
if (Common.isEmpty(sortParam) || Common.isEmpty(timeStamp)) {
return true;
}
String signature = FddCryptUtil.sign(sortParam, timeStamp, fascConfig.getAppSecret());
if (StringUtils.equals(signature, request.getHeader(RequestConstants.SIGN))) {
return false;
}
// 表示验签失败:
return true;
}
}
......@@ -196,4 +196,17 @@ public class TAutoMainRelController {
public Map<String,String> getProjectAutoSetMap(@RequestBody List<String> departNos) {
return tAutoMainRelService.getProjectAutoSetMap(departNos);
}
/**
* 修改项目配置'是否仅使用自动化入口' 0 是 1 否
* @param autoFlag '是否仅使用自动化入口' 0 是 1 否
* @param id 配置ID
* @return R
*/
@Operation(summary = "修改项目配置'是否仅使用自动化入口'", description = "修改项目配置'是否仅使用自动化入口'")
@SysLog("修改项目配置'是否仅使用自动化入口'" )
@PostMapping("/updateAutoFlagById")
public R<Boolean> updateAutoFlagById(@RequestParam(required = true) String id, @RequestParam(required = true) String autoFlag) {
return tAutoMainRelService.updateAutoFlagById(id, autoFlag);
}
}
/*
* 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.TAutoSocialRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoSocialRuleInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoSocialRuleInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 社保购买规则主表
*
* @author fxj
* @date 2025-10-09 11:13:18
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautosocialruleinfo")
@Tag(name = "社保购买规则主表管理")
public class TAutoSocialRuleInfoController {
private final TAutoSocialRuleInfoService tAutoSocialRuleInfoService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tAutoSocialRuleInfo 社保购买规则主表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoSocialRuleInfo>> getTAutoSocialRuleInfoPage(Page<TAutoSocialRuleInfo> page, TAutoSocialRuleInfoSearchVo tAutoSocialRuleInfo) {
return new R<>(tAutoSocialRuleInfoService.getTAutoSocialRuleInfoPage(page, tAutoSocialRuleInfo));
}
/**
* 不分页查询
*
* @param tAutoSocialRuleInfo 社保购买规则主表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo_get')" )
public R<List<TAutoSocialRuleInfo>> getTAutoSocialRuleInfoNoPage(@RequestBody TAutoSocialRuleInfoSearchVo tAutoSocialRuleInfo) {
return R.ok(tAutoSocialRuleInfoService.noPageDiy(tAutoSocialRuleInfo));
}
/**
* 通过id查询社保购买规则主表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tautosocialruleinfo_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo_get')")
public R<TAutoSocialRuleInfo> getById(@PathVariable("id") String id) {
return R.ok(tAutoSocialRuleInfoService.getById(id));
}
/**
* 新增社保购买规则主表
*
* @param tAutoSocialRuleInfo 社保购买规则主表
* @return R
*/
@Operation(summary = "新增社保购买规则主表", description = "新增社保购买规则主表:hasPermission('archives_tautosocialruleinfo_add')")
@SysLog("新增社保购买规则主表")
@PostMapping
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo_add')")
public R<Boolean> save(@RequestBody TAutoSocialRuleInfo tAutoSocialRuleInfo) {
return R.ok(tAutoSocialRuleInfoService.save(tAutoSocialRuleInfo));
}
/**
* 修改社保购买规则主表
*
* @param tAutoSocialRuleInfo 社保购买规则主表
* @return R
*/
@Operation(summary = "修改社保购买规则主表", description = "修改社保购买规则主表:hasPermission('archives_tautosocialruleinfo_edit')")
@SysLog("修改社保购买规则主表")
@PutMapping
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo_edit')")
public R<Boolean> updateById(@RequestBody TAutoSocialRuleInfo tAutoSocialRuleInfo) {
return R.ok(tAutoSocialRuleInfoService.updateById(tAutoSocialRuleInfo));
}
/**
* 通过id删除社保购买规则主表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除社保购买规则主表", description = "通过id删除社保购买规则主表:hasPermission('archives_tautosocialruleinfo_del')")
@SysLog("通过id删除社保购买规则主表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoSocialRuleInfoService.removeById(id));
}
/**
* 社保购买规则主表 批量导入
*
* @author fxj
* @date 2025-10-09 11:13:18
**/
@SneakyThrows
@Operation(description = "批量新增社保购买规则主表 hasPermission('archives_tautosocialruleinfo-batch-import')")
@SysLog("批量新增社保购买规则主表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
return tAutoSocialRuleInfoService.importDiy(file.getInputStream());
}
/**
* 社保购买规则主表 批量导出
*
* @author fxj
* @date 2025-10-09 11:13:18
**/
@Operation(description = "导出社保购买规则主表 hasPermission('archives_tautosocialruleinfo-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('archives_tautosocialruleinfo-export')")
public void export(HttpServletResponse response, @RequestBody TAutoSocialRuleInfoSearchVo searchVo) {
tAutoSocialRuleInfoService.listExport(response, 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoSocialRuleRel;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoSocialRuleRelService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoSocialRuleRelVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoSocialRuleRelSearchVo;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 社保购买规则明细表
*
* @author fxj
* @date 2025-10-09 11:13:18
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautosocialrulerel")
@Tag(name = "社保购买规则明细表管理")
public class TAutoSocialRuleRelController {
private final TAutoSocialRuleRelService tAutoSocialRuleRelService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tAutoSocialRuleRel 社保购买规则明细表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoSocialRuleRel>> getTAutoSocialRuleRelPage(Page<TAutoSocialRuleRel> page, TAutoSocialRuleRelSearchVo tAutoSocialRuleRel) {
return new R<>(tAutoSocialRuleRelService.getTAutoSocialRuleRelPage(page, tAutoSocialRuleRel));
}
/**
* 不分页查询
*
* @param tAutoSocialRuleRel 社保购买规则明细表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel_get')" )
public R<List<TAutoSocialRuleRel>> getTAutoSocialRuleRelNoPage(@RequestBody TAutoSocialRuleRelSearchVo tAutoSocialRuleRel) {
return R.ok(tAutoSocialRuleRelService.noPageDiy(tAutoSocialRuleRel));
}
/**
* 通过id查询社保购买规则明细表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tautosocialrulerel_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel_get')")
public R<TAutoSocialRuleRel> getById(@PathVariable("id") String id) {
return R.ok(tAutoSocialRuleRelService.getById(id));
}
/**
* 新增社保购买规则明细表
*
* @param tAutoSocialRuleRel 社保购买规则明细表
* @return R
*/
@Operation(summary = "新增社保购买规则明细表", description = "新增社保购买规则明细表:hasPermission('archives_tautosocialrulerel_add')")
@SysLog("新增社保购买规则明细表")
@PostMapping
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel_add')")
public R<Boolean> save(@RequestBody TAutoSocialRuleRel tAutoSocialRuleRel) {
return R.ok(tAutoSocialRuleRelService.save(tAutoSocialRuleRel));
}
/**
* 修改社保购买规则明细表
*
* @param tAutoSocialRuleRel 社保购买规则明细表
* @return R
*/
@Operation(summary = "修改社保购买规则明细表", description = "修改社保购买规则明细表:hasPermission('archives_tautosocialrulerel_edit')")
@SysLog("修改社保购买规则明细表")
@PutMapping
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel_edit')")
public R<Boolean> updateById(@RequestBody TAutoSocialRuleRel tAutoSocialRuleRel) {
return R.ok(tAutoSocialRuleRelService.updateById(tAutoSocialRuleRel));
}
/**
* 通过id删除社保购买规则明细表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除社保购买规则明细表", description = "通过id删除社保购买规则明细表:hasPermission('archives_tautosocialrulerel_del')")
@SysLog("通过id删除社保购买规则明细表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoSocialRuleRelService.removeById(id));
}
/**
* 社保购买规则明细表 批量导入
*
* @author fxj
* @date 2025-10-09 11:13:18
**/
@SneakyThrows
@Operation(description = "批量新增社保购买规则明细表 hasPermission('archives_tautosocialrulerel-batch-import')")
@SysLog("批量新增社保购买规则明细表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
return tAutoSocialRuleRelService.importDiy(file.getInputStream());
}
/**
* 社保购买规则明细表 批量导出
*
* @author fxj
* @date 2025-10-09 11:13:18
**/
@Operation(description = "导出社保购买规则明细表 hasPermission('archives_tautosocialrulerel-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('archives_tautosocialrulerel-export')")
public void export(HttpServletResponse response, @RequestBody TAutoSocialRuleRelSearchVo searchVo) {
tAutoSocialRuleRelService.listExport(response, searchVo);
}
}
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.TContractAutoLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.TContractAutoLogService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 合同自动化企微日志表
*
* @author huych
* @date 2025-10-20 20:02:08
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tcontractautolog" )
@Tag(name = "合同自动化企微日志表管理")
public class TContractAutoLogController {
private final TContractAutoLogService tContractAutoLogService;
/**
* 简单分页查询
* @param page 分页对象
* @param tContractAutoLog 合同自动化企微日志表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TContractAutoLog>> getTContractAutoLogPage(Page<TContractAutoLog> page, TContractAutoLog tContractAutoLog) {
return new R<>(tContractAutoLogService.getTContractAutoLogPage(page,tContractAutoLog));
}
/**
* 通过id查询客户信息
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询")
@GetMapping("/{id}")
public R<TContractAutoLog> getById(@PathVariable("id") String id) {
return R.ok(tContractAutoLogService.getById(id));
}
}
......@@ -108,7 +108,7 @@ public class TEmployeeContractInfoController {
public R<IPage<TEmployeeContractInfo>> getAuditPage(Page<TEmployeeContractInfo> page, TEmployeeContractInfo tEmployeeContractInfo) {
tEmployeeContractInfo.setAuditStatus(CommonConstants.ONE_INT);
this.setAuth(tEmployeeContractInfo);
return new R<>(tEmployeeContractInfoService.getTEmployeeContractInfoPage(page, tEmployeeContractInfo));
return new R<>(tEmployeeContractInfoService.getTEmployeeContractInfoPageByAudit(page, tEmployeeContractInfo));
}
/**
......@@ -228,7 +228,7 @@ public class TEmployeeContractInfoController {
if (Common.isNotNull(tEmployeeContractInfo.getAuditRemark()) && tEmployeeContractInfo.getAuditRemark().length() > 200) {
return R.failed(ArchivesConstants.CONTRACT_AUDIT_REMARK_TOO_LONG);
}
return tEmployeeContractInfoService.auditContract(tEmployeeContractInfo,user);
return tEmployeeContractInfoService.auditContract(tEmployeeContractInfo,user, true);
}
/**
* @Author fxj
......@@ -267,7 +267,11 @@ public class TEmployeeContractInfoController {
@PostMapping("/filingContract")
@PreAuthorize("@pms.hasPermission('temployeecontractinfo_filing')")
public R<String> filingContract(@RequestBody TEmployeeContractInfo tEmployeeContractInfo) {
return tEmployeeContractInfoService.filingContract(tEmployeeContractInfo);
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
}
return tEmployeeContractInfoService.filingContract(tEmployeeContractInfo, user);
}
/**
......
......@@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeContractPreHistoryService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeContractPreService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpProjectStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeAutoRegistRevokeVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPreSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
......@@ -41,6 +44,7 @@ import java.util.List;
public class TEmployeeContractPreController {
private final TEmployeeContractPreService tEmployeeContractPreService;
private final TEmployeeContractPreHistoryService tEmployeeContractPreHistoryService;
private final MenuUtil menuUtil;
......@@ -71,6 +75,22 @@ public class TEmployeeContractPreController {
return R.ok(tEmployeeContractPreService.getById(id));
}
/**
* @param contractId 合同ID
* @Description: 通过合同ID查询(原合同查电子签详情专用)
* @Author: hgw
* @Date: 2025/10/20 10:19
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPre>
**/
@Operation(summary = "通过合同ID查询", description = "通过合同ID查询")
@GetMapping("/getByContractId" )
public R<TEmployeeContractPreHistory> getByContractId(@RequestParam("contractId" ) String contractId) {
// 2025-10-20 10:29:41 倩倩说不过滤状态,只要是自动化生成的合同,都要看电子签详情
TEmployeeContractPreHistory pre = tEmployeeContractPreHistoryService.getOne(Wrappers.<TEmployeeContractPreHistory>lambdaQuery()
.eq(TEmployeeContractPreHistory::getContractId, contractId).last(CommonConstants.LAST_ONE_SQL));
return R.ok(pre);
}
/**
* 不分页查询
* @param tEmployeeContractPre 商险待办任务表
......@@ -113,7 +133,25 @@ public class TEmployeeContractPreController {
**/
@Operation(description = "合同待签订信息单个/批量发起签署任务")
@PostMapping("/dispatcherContract")
public R dispatcherContract(@RequestBody List<String> idList) {
public R dispatcherContract(@RequestBody List<String> idList, @RequestParam(required = false) String signType) {
YifuUser user = SecurityUtils.getUser();
//如果是电子签发起线下签先更新为线下签
if(null != signType && null != idList) {
TEmployeeContractPre tEmployeeContractPre;
// 2025-11-3 14:54:57 测试(龙弟)说发起线下签署,如果是电子签,将撤销原因,是否撤销还原到初始的
for (String id : idList) {
tEmployeeContractPre = tEmployeeContractPreService.getById(id);
if (tEmployeeContractPre != null && "0".equals(tEmployeeContractPre.getSignType())) {
tEmployeeContractPre.setSignType("1");
tEmployeeContractPre.setChangeTypeReason("手动派单转为线下签");
tEmployeeContractPre.setChangeTypeUser(user.getNickname());
tEmployeeContractPre.setChangeTypeTime(DateUtil.getCurrentDateTime());
tEmployeeContractPre.setSignFlag(CommonConstants.ONE_STRING);
tEmployeeContractPre.setRevokeReason("");
tEmployeeContractPreService.updateById(tEmployeeContractPre);
}
}
}
return tEmployeeContractPreService.dispatcherContract(idList,"1");
}
......@@ -205,18 +243,20 @@ public class TEmployeeContractPreController {
.or()
.eq(TEmployeeContractInfo::getAuditStatus, CommonConstants.TWO_INT)
.eq(TEmployeeContractInfo::getInUse, CommonConstants.ZERO_STRING)
.or()
.eq(TEmployeeContractInfo::getAuditStatus, CommonConstants.FOUR_INT)
)
.eq(TEmployeeContractInfo::getDeleteFlag, CommonConstants.ZERO_INT));
return R.ok(employeeContractInfo);
}
/**
* 派单当日8点30分统一推送确认信息
* 派单当日9点统一推送确认信息
* @author huych
* @date 2025-06-16 11:26:16
* @return void
*/
@SysLog("派单当日8点30分统一推送确认信息")
@SysLog("派单当日9点统一推送确认信息")
@Inner
@PostMapping("/inner/pushWxConfrimMessage")
public void pushWxConfrimMessage() {
......@@ -224,12 +264,12 @@ public class TEmployeeContractPreController {
}
/**
* 每天上午9点推送待派单数据
* 每天15.00/15.20点推送待派单数据
* @author huych
* @date 2025-06-16 14:18:26
* @return void
*/
@SysLog("每天上午9点推送待派单数据")
@SysLog("每天15.00/15.20点推送待派单数据")
@Inner
@PostMapping("/inner/pushDisConfrimContracts")
public void pushDisConfrimContracts() {
......@@ -248,4 +288,50 @@ public class TEmployeeContractPreController {
public Boolean checkContractPreIsExit(@RequestBody EmpProjectStatusVo vo) {
return tEmployeeContractPreService.checkContractPreIsExit(vo);
}
/**
* @Description: 每日晚23:00自动撤销超时电子签署任务
* @Author: huych
* @Date: 2025-10-15
* @return: R
**/
@Inner
@PostMapping("/inner/autoRevokeElectronicSign")
public R autoRevokeElectronicSign() {
return tEmployeeContractPreService.autoRevokeElectronicSign();
}
/**
* @Description: 每日早9点通知前端客服前一日撤销电子签署情况
* @Author: huych
* @Date: 2025-10-15
* @return: R
**/
@Inner
@PostMapping("/inner/notifyRevokedElectronicSign")
public R notifyRevokedElectronicSign() {
return tEmployeeContractPreService.notifyRevokedElectronicSign();
}
/**
* @Description: 每日早9点电子签合同即将超期提醒
* @Author: huych
* @Date: 2025-10-15
* @return: R
**/
@Inner
@PostMapping("/inner/electronicSignExpiringReminder")
public R electronicSignExpiringReminder() {
return tEmployeeContractPreService.electronicSignExpiringReminder();
}
/**
* 一键催办
* @param id 一键催办列表
**/
@Operation(description = "一键催办")
@PostMapping("/contractUrg")
public R contractUrg(@RequestParam String id) {
return tEmployeeContractPreService.contractUrg(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.TFascEditLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascEditLogService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 法大大编辑日志表
*
* @author hgw
* @date 2025-10-09 10:39:43
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tfasceditlog")
@Tag(name = "法大大编辑日志表管理")
public class TFascEditLogController {
private final TFascEditLogService tFascEditLogService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tFascEditLog 法大大编辑日志表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TFascEditLog>> getTFascEditLogPage(Page<TFascEditLog> page, TFascEditLog tFascEditLog) {
return new R<>(tFascEditLogService.getTFascEditLogPage(page, tFascEditLog));
}
/**
* 不分页查询
*
* @param tFascEditLog 法大大编辑日志表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TFascEditLog>> getTFascEditLogList(@RequestBody TFascEditLog tFascEditLog) {
return R.ok(tFascEditLogService.getTFascEditLogList(tFascEditLog));
}
}
/*
* 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.TFascHrField;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascHrFieldService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 法大大专业版皖信字段表
*
* @author hgw
* @date 2025-09-30 16:29:27
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tfaschrfield")
@Tag(name = "法大大专业版皖信字段表管理")
public class TFascHrFieldController {
private final TFascHrFieldService tFascHrFieldService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tFascHrField 法大大专业版皖信字段表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TFascHrField>> getTFascHrFieldPage(Page<TFascHrField> page, TFascHrField tFascHrField) {
return new R<>(tFascHrFieldService.getTFascHrFieldPage(page, tFascHrField));
}
/**
* 不分页查询
*
* @param tFascHrField 法大大专业版皖信字段表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TFascHrField>> getTFascHrFieldNoPage(@RequestBody TFascHrField tFascHrField) {
return R.ok(tFascHrFieldService.noPageDiy(tFascHrField));
}
}
/*
* 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.TFascEditLog;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplate;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplateDetail;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascEditLogService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascTemplateDetailService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascTemplateService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TFascTemplateSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 法大大专业版模板表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tfasctemplate")
@Tag(name = "法大大专业版模板表管理")
public class TFascTemplateController {
private final TFascTemplateService tFascTemplateService;
private final TFascTemplateDetailService tFascTemplateDetailService;
private final TFascEditLogService tFascEditLogService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tFascTemplate 法大大专业版模板表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TFascTemplate>> getTFascTemplatePage(Page<TFascTemplate> page, TFascTemplateSearchVo tFascTemplate) {
return new R<>(tFascTemplateService.getTFascTemplatePage(page, tFascTemplate));
}
/**
* 不分页查询
*
* @param tFascTemplate 法大大专业版模板表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TFascTemplate>> getTFascTemplateNoPage(@RequestBody TFascTemplateSearchVo tFascTemplate) {
return R.ok(tFascTemplateService.noPageDiy(tFascTemplate));
}
/**
* 通过id查询法大大专业版模板表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tfasctemplate_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tfasctemplate_get')")
public R<TFascTemplate> getById(@PathVariable("id") String id) {
return R.ok(tFascTemplateService.getById(id));
}
/**
* 修改法大大专业版模板表
*
* @param tFascTemplate 法大大专业版模板表
* @return R
*/
@Operation(summary = "修改法大大专业版模板表", description = "修改法大大专业版模板表:hasPermission('archives_tfasctemplate_edit')")
@SysLog("修改法大大专业版模板表")
@PutMapping
@PreAuthorize("@pms.hasPermission('archives_tfasctemplate_edit')")
public R<String> updateById(@RequestBody TFascTemplate tFascTemplate) {
if (Common.isEmpty(tFascTemplate.getId())) {
return R.failed("ID不能为空");
}
TFascTemplate old = tFascTemplateService.getById(tFascTemplate.getId());
if (old == null) {
return R.failed("未找到原模板");
}
if (Common.isEmpty(tFascTemplate.getContractType())) {
return R.failed("合同类型不能为空");
}
// 改没改合同,都加日志
TFascEditLog tFascEditLog = new TFascEditLog();
tFascEditLog.setMainId(tFascTemplate.getId());
tFascEditLog.setMainType(CommonConstants.ONE_STRING);
tFascEditLog.setEditContent("“合同类型”由“" + old.getContractType() + "”→“" + tFascTemplate.getContractType() + "”");
tFascEditLogService.save(tFascEditLog);
if (Common.isNotNull(old.getContractType()) && old.getContractType().equals(tFascTemplate.getContractType())) {
tFascTemplateDetailService.initFascTemplateIsMust(old.getSignTemplateId());
return R.ok();
} else {
old.setContractType(tFascTemplate.getContractType());
tFascTemplateService.updateById(old);
// 初始化字段,并重新计算模板的是否已配置
tFascTemplateDetailService.initDetailHrField(old.getSignTemplateId());
return R.ok();
}
}
/**
* 法大大专业版模板表 批量维护合同类型
*
* @author hgw
* @date 2025-09-30 16:29:28
**/
@SneakyThrows
@Operation(description = "批量维护合同类型 hasPermission('archives_tfasctemplate-batch-update')")
@SysLog("批量维护合同类型")
@PostMapping("/batchUpdate")
public R<List<ErrorMessage>> batchUpdate(@RequestBody MultipartFile file) {
return tFascTemplateService.batchUpdate(file.getInputStream());
}
/**
* 法大大专业版模板表 批量导出
*
* @author hgw
* @date 2025-09-30 16:29:28
**/
@Operation(description = "导出法大大专业版模板表 hasPermission('archives_tfasctemplate-export')")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody TFascTemplateSearchVo searchVo) {
tFascTemplateService.listExport(response, 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.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.TFascEditLog;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplateDetail;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascEditLogService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascTemplateDetailService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TFascTemplateDetailSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 法大大专业版模板映射表
*
* @author hgw
* @date 2025-09-30 16:29:28
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tfasctemplatedetail")
@Tag(name = "法大大专业版模板映射表管理")
public class TFascTemplateDetailController {
private final TFascTemplateDetailService tFascTemplateDetailService;
private final TFascEditLogService tFascEditLogService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tFascTemplateDetail 法大大专业版模板映射表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TFascTemplateDetail>> getTFascTemplateDetailPage(Page<TFascTemplateDetail> page, TFascTemplateDetailSearchVo tFascTemplateDetail) {
return new R<>(tFascTemplateDetailService.getTFascTemplateDetailPage(page, tFascTemplateDetail));
}
/**
* @Description: 重新刷新主模板表的必填是否已填
* @Author: hgw
* @Date: 2025/10/10 16:33
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(description = "重新刷新主模板表的必填是否已填")
@SysLog(value = "重新刷新主模板表的必填是否已填")
@GetMapping("/initFascTemplateIsMust")
public R<String> initFascTemplateIsMust(@RequestParam(required = false) String templateId) {
return tFascTemplateDetailService.initFascTemplateIsMust(templateId);
}
/**
* 不分页查询
*
* @param tFascTemplateDetail 法大大专业版模板映射表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TFascTemplateDetail>> getTFascTemplateDetailNoPage(@RequestBody TFascTemplateDetailSearchVo tFascTemplateDetail) {
return R.ok(tFascTemplateDetailService.noPageDiy(tFascTemplateDetail));
}
/**
* 通过id查询法大大专业版模板映射表
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('archives_tfasctemplatedetail_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('archives_tfasctemplatedetail_get')")
public R<TFascTemplateDetail> getById(@PathVariable("id") String id) {
return R.ok(tFascTemplateDetailService.getById(id));
}
/**
* 修改法大大专业版模板映射表
*
* @param tFascTemplateDetail 法大大专业版模板映射表
* @return R
*/
@Operation(summary = "修改法大大专业版模板映射表", description = "修改法大大专业版模板映射表:hasPermission('archives_tfasctemplatedetail_edit')")
@SysLog("修改法大大专业版模板映射表")
@PutMapping
@PreAuthorize("@pms.hasPermission('archives_tfasctemplatedetail_edit')")
public R<String> updateById(@RequestBody TFascTemplateDetail tFascTemplateDetail) {
if (Common.isEmpty(tFascTemplateDetail.getId())) {
return R.failed("ID不能为空");
}
if (Common.isEmpty(tFascTemplateDetail.getHrFieldId()) || Common.isEmpty(tFascTemplateDetail.getHrField())) {
return R.failed("皖信字段不能为空");
}
TFascTemplateDetail old = tFascTemplateDetailService.getById(tFascTemplateDetail.getId());
if (old == null) {
return R.failed("根据ID未找到原信息");
}
// 更新映射表
tFascTemplateDetailService.updateById(tFascTemplateDetail);
// 改没改合同,都加日志
TFascEditLog tFascEditLog = new TFascEditLog();
tFascEditLog.setMainId(tFascTemplateDetail.getId());
tFascEditLog.setMainType(CommonConstants.TWO_STRING);
String editContent = "“皖信字段”由“";
if (Common.isEmpty(old.getHrField())) {
editContent += "空”";
} else {
editContent += old.getHrField() + "”";
}
editContent += "→“";
if (Common.isNotNull(tFascTemplateDetail.getHrField())) {
editContent += tFascTemplateDetail.getHrField() + "”";
} else {
editContent += "空”";
}
// 判断是否已配置有没有变更:0未配置 1已配置
if (Common.isEmpty(old.getIsEdit())) {
if (Common.isNotNull(tFascTemplateDetail.getIsEdit()) && CommonConstants.ONE_STRING.equals(tFascTemplateDetail.getIsEdit())) {
editContent += ";“是否已配置”由“未配置”→“已配置”";
}
} else if (Common.isEmpty(tFascTemplateDetail.getIsEdit())) {
editContent += ";“是否已配置”由“已配置”→“未配置”";
} else if (!old.getIsEdit().equals(tFascTemplateDetail.getIsEdit())) {
if (CommonConstants.ONE_STRING.equals(tFascTemplateDetail.getIsEdit())) {
editContent += ";“是否已配置”由“未配置”→“已配置”";
} else {
editContent += ";“是否已配置”由“已配置”→“未配置”";
}
}
tFascEditLog.setEditContent(editContent);
tFascEditLogService.save(tFascEditLog);
// 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(old.getSignTemplateId());
return R.ok();
}
/**
* 法大大专业版模板映射表 批量维护
*
* @author hgw
* @date 2025-09-30 16:29:28
**/
@SneakyThrows
@Operation(description = "批量维护法大大专业版模板映射表 hasPermission('archives_tfasctemplatedetail-batch-update')")
@SysLog("批量维护法大大专业版模板映射表")
@PostMapping("/batchUpdateFascDetail")
public R<List<ErrorMessage>> batchUpdateFascDetail(@RequestBody MultipartFile file) {
return tFascTemplateDetailService.batchUpdateFascDetail(file.getInputStream());
}
/**
* 法大大专业版模板映射表 批量导出
*
* @author hgw
* @date 2025-09-30 16:29:28
**/
@Operation(description = "导出法大大专业版模板映射表 hasPermission('archives_tfasctemplatedetail-export')")
@PostMapping("/export")
@SysLog("导出法大大专业版模板映射表")
public void export(HttpServletResponse response, @RequestBody TFascTemplateDetailSearchVo searchVo) {
tFascTemplateDetailService.listExport(response, searchVo);
}
}
......@@ -17,28 +17,26 @@
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yifu.cloud.plus.v1.yifu.archives.config.GzConfig;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAttaInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TGzEmpInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TGzOfferInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAttaInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContactInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzEmpInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzOfferInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.service.*;
import com.yifu.cloud.plus.v1.yifu.archives.utils.GZSign;
import com.yifu.cloud.plus.v1.yifu.archives.utils.ReturnGz;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzEmpInfoPushGzAttaVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzEmpInfoPushGzContractVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzEmpInfoPushGzFileVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzEmpInfoPushGzVo;
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.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
......@@ -68,12 +66,64 @@ public class TGzController {
private final TGzEmpInfoService tGzEmpInfoService;
private final TAttaInfoService tAttaInfoService;
private final TEmpContactInfoService tEmpContactInfoService;
private final LGuaziOfferRecordService lGuaziOfferRecordService;
private RestTemplate restTemplate = new RestTemplate();
@Autowired
private OSSUtil ossUtil;
/**
* @Description: 接收瓜子推送过来的取消Offer的信息
* @Author: hgw
* @Date: 2025-10-22 08:35:57
* @return: com.yifu.cloud.plus.v1.yifu.archives.utils.ReturnGz<java.lang.String>
**/
@PostMapping("/doCancelOfferInfo")
public ReturnGz<String> doCancelOfferInfo(@RequestBody TGzOfferInfoCancelVo vo) {
if (Common.isEmpty(vo.getBizId())) {
return ReturnGz.failed("BizId必传");
}
TGzOfferInfo nowGzOfferInfo = tGzOfferInfoService.getOne(Wrappers.<TGzOfferInfo>query().lambda()
.eq(TGzOfferInfo::getBizId, vo.getBizId())
.last(CommonConstants.LAST_ONE_SQL));
if (nowGzOfferInfo == null || Common.isEmpty(nowGzOfferInfo.getId())) {
return ReturnGz.failed("根据BizId,未找到瓜子offer信息");
}
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
YifuUser user = new YifuUser("2", 1L, "", "预入职扫码",
"瓜子系统", "0", SecurityConstants.BCRYPT + "123456",
"12345678911", true, true, true,
true,
"1", authorities, "1",
null, null,
null,null);
// 10:取消offer
nowGzOfferInfo.setOfferStatus(CommonConstants.TEN_STRING);
// 5. 签名验证通过,处理业务逻辑
R<String> r = tGzOfferInfoService.gzUpdateStatus(nowGzOfferInfo, user);
if (R.isSuccess(r)) {
return ReturnGz.ok();
} else {
saveFailLog(nowGzOfferInfo.getId(), user);
return ReturnGz.failed(r.getMsg());
}
}
private void saveFailLog(Integer offerId, YifuUser user) {
LGuaziOfferRecord recordLog = new LGuaziOfferRecord();
recordLog.setOfferId(offerId);
recordLog.setContent("Offer取消失败");
// 记录来源
recordLog.setRecordFrom("13");
recordLog.setCreateBy(user.getId());
recordLog.setCreateName(user.getNickname());
lGuaziOfferRecordService.save(recordLog);
}
/**
* @Description: 接收瓜子推送过来的Offer信息
* @Author: hgw
......
......@@ -46,7 +46,7 @@ public interface LGuaziOfferRecordService extends IService<LGuaziOfferRecord> {
* 5:收集短信发送成功更新状态;6:(系统触发)C端采集提交;7:档案审核通过;8:档案审核不通过;
* 9:发起合同申请;10:合同审核通过;11:合同归档;12:发送合同下载短信)
*/
void saveRecordOne(LGuaziOfferRecordVo lGuaziOfferRecordVo);
void saveRecordOne(LGuaziOfferRecordVo lGuaziOfferRecordVo, String cancelTaskName);
/**
......
This diff is collapsed.
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