Commit 9fb2cfe1 authored by fangxinjiang's avatar fangxinjiang

项目规则配置-fxj

parent 1e881992
/*
* 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.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 字典表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@TableName("sys_auto_dict")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "字典表")
public class SysAutoDict extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private Long id;
/**
* 字典编码
*/
@ExcelAttribute(name = "字典编码", maxLength = 100)
@Length(max = 100, message = "字典编码不能超过100个字符")
@ExcelProperty("字典编码")
@Schema(description = "字典编码")
private String type;
/**
* 字典名称
*/
@ExcelAttribute(name = "字典名称", maxLength = 100)
@Length(max = 100, message = "字典名称不能超过100个字符")
@ExcelProperty("字典名称")
@Schema(description = "字典名称")
private String description;
/**
* 备注
*/
@ExcelAttribute(name = "备注", maxLength = 255)
@Length(max = 255, message = "备注不能超过255个字符")
@ExcelProperty("备注")
@Schema(description = "备注")
private String remark;
/**
* 是否是系统内置
*/
@ExcelAttribute(name = "是否是系统内置", maxLength = 1)
@Length(max = 1, message = "是否是系统内置不能超过1个字符")
@ExcelProperty("是否是系统内置")
@Schema(description = "是否是系统内置")
private String systemFlag;
/**
* 删除标记
*/
@ExcelAttribute(name = "删除标记", maxLength = 1)
@Length(max = 1, message = "删除标记不能超过1个字符")
@ExcelProperty("删除标记")
@Schema(description = "删除标记")
private String delFlag;
/**
* 联动上级类型
*/
@ExcelAttribute(name = "联动上级类型", maxLength = 32)
@Length(max = 32, message = "联动上级类型不能超过32个字符")
@ExcelProperty("联动上级类型")
@Schema(description = "联动上级类型")
private String parentItemType;
/**
* 客户端标识
*/
@ExcelAttribute(name = "客户端标识", maxLength = 32)
@Length(max = 32, message = "客户端标识不能超过32个字符")
@ExcelProperty("客户端标识")
@Schema(description = "客户端标识")
private String clientId;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@TableName("sys_auto_dict_item")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "字典项")
public class SysAutoDictItem extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private Long id;
/**
* 字典ID
*/
@ExcelAttribute(name = "字典ID", isNotEmpty = true, errorInfo = "字典ID不能为空")
@NotBlank(message = "字典ID不能为空")
@ExcelProperty("字典ID")
@Schema(description = "字典ID")
private Long dictId;
/**
* 值
*/
@ExcelAttribute(name = "值", maxLength = 100)
@Length(max = 100, message = "值不能超过100个字符")
@ExcelProperty("值")
@Schema(description = "值")
private String value;
/**
* 标签
*/
@ExcelAttribute(name = "标签", maxLength = 100)
@Length(max = 100, message = "标签不能超过100个字符")
@ExcelProperty("标签")
@Schema(description = "标签")
private String label;
/**
* 字典类型
*/
@ExcelAttribute(name = "字典类型", maxLength = 100)
@Length(max = 100, message = "字典类型不能超过100个字符")
@ExcelProperty("字典类型")
@Schema(description = "字典类型")
private String type;
/**
* 描述
*/
@ExcelAttribute(name = "描述", maxLength = 100)
@Length(max = 100, message = "描述不能超过100个字符")
@ExcelProperty("描述")
@Schema(description = "描述")
private String description;
/**
* 排序(升序)
*/
@ExcelAttribute(name = "排序(升序)", isNotEmpty = true, errorInfo = "排序(升序)不能为空")
@NotBlank(message = "排序(升序)不能为空")
@ExcelProperty("排序(升序)")
@Schema(description = "排序(升序)")
private Integer sortOrder;
/**
* 备注
*/
@ExcelAttribute(name = "备注", maxLength = 255)
@Length(max = 255, message = "备注不能超过255个字符")
@ExcelProperty("备注")
@Schema(description = "备注")
private String remark;
/**
* 删除标记
*/
@ExcelAttribute(name = "删除标记", maxLength = 1)
@Length(max = 1, message = "删除标记不能超过1个字符")
@ExcelProperty("删除标记")
@Schema(description = "删除标记")
private String delFlag;
/**
* 父节点ID
*/
@ExcelAttribute(name = "父节点ID")
@ExcelProperty("父节点ID")
@Schema(description = "父节点ID")
private Long parentId;
/**
* 客户端标识
*/
@ExcelAttribute(name = "客户端标识", maxLength = 32)
@Length(max = 32, message = "客户端标识不能超过32个字符")
@ExcelProperty("客户端标识")
@Schema(description = "客户端标识")
private String clientId;
/**
* 是否禁用: 0 启用 1 急用
*/
@ExcelAttribute(name = "是否禁用: 0 启用 1 急用", isNotEmpty = true, errorInfo = "是否禁用: 0 启用 1 急用不能为空", maxLength = 1)
@NotBlank(message = "是否禁用: 0 启用 1 急用不能为空")
@Length(max = 1, message = "是否禁用: 0 启用 1 急用不能超过1个字符")
@ExcelProperty("是否禁用: 0 启用 1 急用")
@Schema(description = "是否禁用: 0 启用 1 急用")
private String disable;
/**
* 项目编码,标识此字典项为那个项目所有
*/
@ExcelAttribute(name = "项目编码,标识此字典项为那个项目所有", isNotEmpty = true, errorInfo = "项目编码,标识此字典项为那个项目所有不能为空", maxLength = 32)
@NotBlank(message = "项目编码,标识此字典项为那个项目所有不能为空")
@Length(max = 32, message = "项目编码,标识此字典项为那个项目所有不能超过32个字符")
@ExcelProperty("项目编码,标识此字典项为那个项目所有")
@Schema(description = "项目编码,标识此字典项为那个项目所有")
private String deptNo;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@TableName("t_auto_emp_rule_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "档案管理规则配置表")
public class TAutoEmpRuleInfo extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 是否启用自动化:0是 1否
*/
@ExcelAttribute(name = "是否启用自动化:0是 1否", isNotEmpty = true, errorInfo = "是否启用自动化:0是 1否不能为空", maxLength = 1)
@NotBlank(message = "是否启用自动化:0是 1否不能为空")
@Length(max = 1, message = "是否启用自动化:0是 1否不能超过1个字符")
@ExcelProperty("是否启用自动化:0是 1否")
@Schema(description = "是否启用自动化:0是 1否")
private String autoFlag;
/**
* 收集方案:0自动1 手动
*/
@ExcelAttribute(name = "收集方案:0自动1 手动", isNotEmpty = true, errorInfo = "收集方案:0自动1 手动不能为空", maxLength = 1)
@NotBlank(message = "收集方案:0自动1 手动不能为空")
@Length(max = 1, message = "收集方案:0自动1 手动不能超过1个字符")
@ExcelProperty("收集方案:0自动1 手动")
@Schema(description = "收集方案:0自动1 手动")
private String collectType;
/**
* 推送时间
*/
@ExcelAttribute(name = "推送时间", isNotEmpty = true, errorInfo = "推送时间不能为空", isDate = true)
@NotBlank(message = "推送时间不能为空")
@ExcelProperty("推送时间")
@Schema(description = "推送时间")
private Date pushDate;
/**
* 员工类型
*/
@ExcelAttribute(name = "员工类型", maxLength = 2)
@Length(max = 2, message = "员工类型不能超过2个字符")
@ExcelProperty("员工类型")
@Schema(description = "员工类型")
private String empType;
/**
* 档案所在地-省
*/
@ExcelAttribute(name = "档案所在地-省", maxLength = 10)
@Length(max = 10, message = "档案所在地-省不能超过10个字符")
@ExcelProperty("档案所在地-省")
@Schema(description = "档案所在地-省")
private String empProvince;
/**
* 档案所在地-市
*/
@ExcelAttribute(name = "档案所在地-市", maxLength = 10)
@Length(max = 10, message = "档案所在地-市不能超过10个字符")
@ExcelProperty("档案所在地-市")
@Schema(description = "档案所在地-市")
private String empCity;
/**
* 档案所在地-县/区
*/
@ExcelAttribute(name = "档案所在地-县/区", maxLength = 10)
@Length(max = 10, message = "档案所在地-县/区不能超过10个字符")
@ExcelProperty("档案所在地-县/区")
@Schema(description = "档案所在地-县/区")
private String empTown;
/**
* 合同类型
*/
@ExcelAttribute(name = "合同类型", maxLength = 10)
@Length(max = 10, message = "合同类型不能超过10个字符")
@ExcelProperty("合同类型")
@Schema(description = "合同类型")
private String contractType;
/**
* 业务细分(同合的业务细分)
*/
@ExcelAttribute(name = "业务细分(同合的业务细分)", isNotEmpty = true, errorInfo = "业务细分(同合的业务细分)不能为空", maxLength = 32)
@NotBlank(message = "业务细分(同合的业务细分)不能为空")
@Length(max = 32, message = "业务细分(同合的业务细分)不能超过32个字符")
@ExcelProperty("业务细分(同合的业务细分)")
@Schema(description = "业务细分(同合的业务细分)")
private String businessTypeSub;
/**
* 默认信息是否允许修改
*/
@ExcelAttribute(name = "默认信息是否允许修改", isNotEmpty = true, errorInfo = "默认信息是否允许修改不能为空", maxLength = 1)
@NotBlank(message = "默认信息是否允许修改不能为空")
@Length(max = 1, message = "默认信息是否允许修改不能超过1个字符")
@ExcelProperty("默认信息是否允许修改")
@Schema(description = "默认信息是否允许修改")
private String updateFlag;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 50)
@NotBlank(message = "项目编码不能为空")
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目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 deptId;
/**
* 项目配置主表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;
}
/*
* 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.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@TableName("t_auto_main_rel")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目配置表主表")
public class TAutoMainRel extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码不能为空", maxLength = 50)
@NotBlank(message = "项目编码不能为空")
@Length(max = 50, message = "项目编码不能超过50个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目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 deptId;
/**
* 规则最新更新时间
*/
@ExcelAttribute(name = "规则最新更新时间", isDate = true)
@ExcelProperty("规则最新更新时间")
@Schema(description = "规则最新更新时间")
private Date ruleUpdateTime;
/**
* 规则最新更新人
*/
@ExcelAttribute(name = "规则最新更新人", maxLength = 50)
@Length(max = 50, message = "规则最新更新人不能超过50个字符")
@ExcelProperty("规则最新更新人")
@Schema(description = "规则最新更新人")
private String ruleUpdatePerson;
/**
* 服务状态:0正常 1停止服务 2冻结 (是否使用:0是 非0否)
*/
@Schema(description = "服务状态:0正常 1停止服务 2冻结")
@TableField(exist = false)
private String stopFlag;
/**
* 项目名称
*/
@Schema(description = "项目名称")
@TableField(exist = false)
private String departName;
/**
* 前端客服
*/
@Schema(description = "前端客服")
@TableField(exist = false)
private String csUserName;
}
/*
* 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.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@TableName("t_auto_rule_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "规则变更日志表")
public class TAutoRuleLog extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 类型:0项目规则
*/
@ExcelAttribute(name = "类型:0项目规则")
@ExcelProperty("类型:0项目规则")
@Schema(description = "类型:0项目规则")
private Integer type;
/**
* 规则配置主表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;
/**
* 原来的信息
*/
@ExcelAttribute(name = "原来的信息", isNotEmpty = true, errorInfo = "原来的信息不能为空")
@NotBlank(message = "原来的信息不能为空")
@ExcelProperty("原来的信息")
@Schema(description = "原来的信息")
private String oldInfo;
/**
* 新的信息
*/
@ExcelAttribute(name = "新的信息", isNotEmpty = true, errorInfo = "新的信息不能为空")
@NotBlank(message = "新的信息不能为空")
@ExcelProperty("新的信息")
@Schema(description = "新的信息")
private String newInfo;
/**
* 差异的信息(属性名称,逗号隔开)
*/
@ExcelAttribute(name = "差异的信息(属性名称,逗号隔开)")
@ExcelProperty("差异的信息(属性名称,逗号隔开)")
@Schema(description = "差异的信息(属性名称,逗号隔开)")
private String differenceInfo;
}
/*
* 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.SysAutoDictItem;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class SysAutoDictItemSearchVo extends SysAutoDictItem{
/**
* 多选导出或删除等操作
*/
@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.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
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 com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class SysAutoDictItemVo extends RowIndex implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "id 不能为空")
@ExcelAttribute(name = "id", isNotEmpty = true, errorInfo = "id 不能为空")
@Schema(description = "id")
@ExcelProperty("id")
private Long id;
/**
* 字典ID
*/
@NotBlank(message = "字典ID 不能为空")
@ExcelAttribute(name = "字典ID", isNotEmpty = true, errorInfo = "字典ID 不能为空")
@Schema(description = "字典ID")
@ExcelProperty("字典ID")
private Long dictId;
/**
* 值
*/
@Length(max = 100, message = "值 不能超过100 个字符")
@ExcelAttribute(name = "值", maxLength = 100)
@Schema(description = "值")
@ExcelProperty("值")
private String value;
/**
* 标签
*/
@Length(max = 100, message = "标签 不能超过100 个字符")
@ExcelAttribute(name = "标签", maxLength = 100)
@Schema(description = "标签")
@ExcelProperty("标签")
private String label;
/**
* 字典类型
*/
@Length(max = 100, message = "字典类型 不能超过100 个字符")
@ExcelAttribute(name = "字典类型", maxLength = 100)
@Schema(description = "字典类型")
@ExcelProperty("字典类型")
private String type;
/**
* 描述
*/
@Length(max = 100, message = "描述 不能超过100 个字符")
@ExcelAttribute(name = "描述", maxLength = 100)
@Schema(description = "描述")
@ExcelProperty("描述")
private String description;
/**
* 排序(升序)
*/
@NotBlank(message = "排序(升序) 不能为空")
@ExcelAttribute(name = "排序(升序)", isNotEmpty = true, errorInfo = "排序(升序) 不能为空")
@Schema(description = "排序(升序)")
@ExcelProperty("排序(升序)")
private Integer sortOrder;
/**
* 备注
*/
@Length(max = 255, message = "备注 不能超过255 个字符")
@ExcelAttribute(name = "备注", maxLength = 255)
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
/**
* 删除标记
*/
@Length(max = 1, message = "删除标记 不能超过1 个字符")
@ExcelAttribute(name = "删除标记", maxLength = 1)
@Schema(description = "删除标记")
@ExcelProperty("删除标记")
private String delFlag;
/**
* 父节点ID
*/
@ExcelAttribute(name = "父节点ID")
@Schema(description = "父节点ID")
@ExcelProperty("父节点ID")
private Long parentId;
/**
* 创建人姓名
*/
@Length(max = 32, message = "创建人姓名 不能超过32 个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 32)
@Schema(description = "创建人姓名")
@ExcelProperty("创建人姓名")
private String createName;
/**
* 客户端标识
*/
@Length(max = 32, message = "客户端标识 不能超过32 个字符")
@ExcelAttribute(name = "客户端标识", maxLength = 32)
@Schema(description = "客户端标识")
@ExcelProperty("客户端标识")
private String clientId;
/**
* 是否禁用: 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 disable;
/**
* 项目编码,标识此字典项为那个项目所有
*/
@NotBlank(message = "项目编码,标识此字典项为那个项目所有 不能为空")
@Length(max = 32, message = "项目编码,标识此字典项为那个项目所有 不能超过32 个字符")
@ExcelAttribute(name = "项目编码,标识此字典项为那个项目所有", isNotEmpty = true, errorInfo = "项目编码,标识此字典项为那个项目所有 不能为空", maxLength = 32)
@Schema(description = "项目编码,标识此字典项为那个项目所有")
@ExcelProperty("项目编码,标识此字典项为那个项目所有")
private String projectNo;
}
/*
* 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.SysAutoDict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 字典表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class SysAutoDictSearchVo extends SysAutoDict {
/**
* 多选导出或删除等操作
*/
@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-03-13 15:15:26
*/
@Data
public class SysAutoDictVo extends RowIndex implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "id 不能为空")
@ExcelAttribute(name = "id", isNotEmpty = true, errorInfo = "id 不能为空")
@Schema(description = "id")
@ExcelProperty("id")
private Long id;
/**
* 字典编码
*/
@Length(max = 100, message = "字典编码 不能超过100 个字符")
@ExcelAttribute(name = "字典编码", maxLength = 100)
@Schema(description = "字典编码")
@ExcelProperty("字典编码")
private String type;
/**
* 字典名称
*/
@Length(max = 100, message = "字典名称 不能超过100 个字符")
@ExcelAttribute(name = "字典名称", maxLength = 100)
@Schema(description = "字典名称")
@ExcelProperty("字典名称")
private String description;
/**
* 备注
*/
@Length(max = 255, message = "备注 不能超过255 个字符")
@ExcelAttribute(name = "备注", maxLength = 255)
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
/**
* 是否是系统内置
*/
@Length(max = 1, message = "是否是系统内置 不能超过1 个字符")
@ExcelAttribute(name = "是否是系统内置", maxLength = 1)
@Schema(description = "是否是系统内置")
@ExcelProperty("是否是系统内置")
private String systemFlag;
/**
* 删除标记
*/
@Length(max = 1, message = "删除标记 不能超过1 个字符")
@ExcelAttribute(name = "删除标记", maxLength = 1)
@Schema(description = "删除标记")
@ExcelProperty("删除标记")
private String delFlag;
/**
* 联动上级类型
*/
@Length(max = 32, message = "联动上级类型 不能超过32 个字符")
@ExcelAttribute(name = "联动上级类型", maxLength = 32)
@Schema(description = "联动上级类型")
@ExcelProperty("联动上级类型")
private String parentItemType;
/**
* 创建人姓名
*/
@Length(max = 32, message = "创建人姓名 不能超过32 个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 32)
@Schema(description = "创建人姓名")
@ExcelProperty("创建人姓名")
private String createName;
/**
* 客户端标识
*/
@Length(max = 32, message = "客户端标识 不能超过32 个字符")
@ExcelAttribute(name = "客户端标识", maxLength = 32)
@Schema(description = "客户端标识")
@ExcelProperty("客户端标识")
private String clientId;
}
/*
* 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.TAutoEmpRuleInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoEmpRuleInfoSearchVo extends TAutoEmpRuleInfo {
/**
* 多选导出或删除等操作
*/
@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.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
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 com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoEmpRuleInfoVo extends RowIndex implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键 不能为空")
@Length(max = 32, message = "主键 不能超过32 个字符")
@ExcelAttribute(name = "主键", isNotEmpty = true, errorInfo = "主键 不能为空", maxLength = 32)
@Schema(description = "主键")
@ExcelProperty("主键")
private String id;
/**
* 是否启用自动化: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 手动
*/
@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 collectType;
/**
* 推送时间
*/
@NotBlank(message = "推送时间 不能为空")
@ExcelAttribute(name = "推送时间", isNotEmpty = true, errorInfo = "推送时间 不能为空", isDate = true)
@Schema(description = "推送时间")
@ExcelProperty("推送时间")
private Date pushDate;
/**
* 员工类型
*/
@Length(max = 2, message = "员工类型 不能超过2 个字符")
@ExcelAttribute(name = "员工类型", maxLength = 2)
@Schema(description = "员工类型")
@ExcelProperty("员工类型")
private String empType;
/**
* 档案所在地-省
*/
@Length(max = 10, message = "档案所在地-省 不能超过10 个字符")
@ExcelAttribute(name = "档案所在地-省", maxLength = 10)
@Schema(description = "档案所在地-省")
@ExcelProperty("档案所在地-省")
private String empProvince;
/**
* 档案所在地-市
*/
@Length(max = 10, message = "档案所在地-市 不能超过10 个字符")
@ExcelAttribute(name = "档案所在地-市", maxLength = 10)
@Schema(description = "档案所在地-市")
@ExcelProperty("档案所在地-市")
private String empCity;
/**
* 档案所在地-县/区
*/
@Length(max = 10, message = "档案所在地-县/区 不能超过10 个字符")
@ExcelAttribute(name = "档案所在地-县/区", maxLength = 10)
@Schema(description = "档案所在地-县/区")
@ExcelProperty("档案所在地-县/区")
private String empTown;
/**
* 合同类型
*/
@Length(max = 10, message = "合同类型 不能超过10 个字符")
@ExcelAttribute(name = "合同类型", maxLength = 10)
@Schema(description = "合同类型")
@ExcelProperty("合同类型")
private String contractType;
/**
* 业务细分(同合的业务细分)
*/
@NotBlank(message = "业务细分(同合的业务细分) 不能为空")
@Length(max = 32, message = "业务细分(同合的业务细分) 不能超过32 个字符")
@ExcelAttribute(name = "业务细分(同合的业务细分)", isNotEmpty = true, errorInfo = "业务细分(同合的业务细分) 不能为空", maxLength = 32)
@Schema(description = "业务细分(同合的业务细分)")
@ExcelProperty("业务细分(同合的业务细分)")
private String businessTypeSub;
/**
* 默认信息是否允许修改
*/
@NotBlank(message = "默认信息是否允许修改 不能为空")
@Length(max = 1, message = "默认信息是否允许修改 不能超过1 个字符")
@ExcelAttribute(name = "默认信息是否允许修改", isNotEmpty = true, errorInfo = "默认信息是否允许修改 不能为空", maxLength = 1)
@Schema(description = "默认信息是否允许修改")
@ExcelProperty("默认信息是否允许修改")
private String updateFlag;
/**
* 项目编码
*/
@NotBlank(message = "项目编码 不能为空")
@Length(max = 50, message = "项目编码 不能超过50 个字符")
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码 不能为空", maxLength = 50)
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String projectNo;
/**
* 项目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 projectId;
/**
* 项目配置主表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;
}
/*
* 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.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
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.io.Serializable;
import java.util.Date;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
@Schema(description = "项目配置表主表")
public class TAutoMainRelExportVo implements Serializable {
/**
* 项目名称
*/
@HeadFontStyle(fontHeightInPoints = 11)
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String departName;
/**
* 项目编码
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String deptNo;
/**
* 服务状态:0正常 1停止服务 2冻结 (是否使用:0是 非0否)
*/
@HeadFontStyle(fontHeightInPoints = 11)
@Schema(description = "服务状态:0正常 1停止服务 2冻结")
@ExcelProperty("是否可用")
private String stopFlag;
/**
* 前端客服
*/
@HeadFontStyle(fontHeightInPoints = 11)
@Schema(description = "前端客服")
@ExcelProperty("前端客服")
private String csUserName;
/**
* 规则最新更新时间
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("规则最新更新时间")
@Schema(description = "最新更新时间")
private Date ruleUpdateTime;
/**
* 规则最新更新人
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("最新更新操作人")
@Schema(description = "规则最新更新人")
private String ruleUpdatePerson;
}
/*
* 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.TAutoMainRel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoMainRelSearchVo extends TAutoMainRel {
/**
* 多选导出或删除等操作
*/
@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.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
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 com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoMainRelVo 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;
/**
* 项目编码
*/
@NotBlank(message = "项目编码 不能为空")
@Length(max = 50, message = "项目编码 不能超过50 个字符")
@ExcelAttribute(name = "项目编码", isNotEmpty = true, errorInfo = "项目编码 不能为空", maxLength = 50)
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String projectNo;
/**
* 项目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 projectId;
/**
* 规则最新更新时间
*/
@ExcelAttribute(name = "规则最新更新时间", isDate = true)
@Schema(description = "规则最新更新时间")
@ExcelProperty("规则最新更新时间")
private Date ruleUpdateTime;
/**
* 规则最新更新人
*/
@Length(max = 50, message = "规则最新更新人 不能超过50 个字符")
@ExcelAttribute(name = "规则最新更新人", maxLength = 50)
@Schema(description = "规则最新更新人")
@ExcelProperty("规则最新更新人")
private String ruleUpdatePerson;
}
/*
* 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.TAutoRuleLog;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoRuleLogSearchVo extends TAutoRuleLog {
/**
* 多选导出或删除等操作
*/
@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.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
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 com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Data
public class TAutoRuleLogVo 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;
/**
* 类型:0项目规则
*/
@ExcelAttribute(name = "类型:0项目规则")
@Schema(description = "类型:0项目规则")
@ExcelProperty("类型:0项目规则")
private Integer type;
/**
* 规则配置主表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 = "原来的信息 不能为空")
@ExcelAttribute(name = "原来的信息", isNotEmpty = true, errorInfo = "原来的信息 不能为空")
@Schema(description = "原来的信息")
@ExcelProperty("原来的信息")
private String oldInfo;
/**
* 新的信息
*/
@NotBlank(message = "新的信息 不能为空")
@ExcelAttribute(name = "新的信息", isNotEmpty = true, errorInfo = "新的信息 不能为空")
@Schema(description = "新的信息")
@ExcelProperty("新的信息")
private String newInfo;
/**
* 差异的信息(属性名称,逗号隔开)
*/
@ExcelAttribute(name = "差异的信息(属性名称,逗号隔开)")
@Schema(description = "差异的信息(属性名称,逗号隔开)")
@ExcelProperty("差异的信息(属性名称,逗号隔开)")
private String differenceInfo;
}
/*
* 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.SysAutoDict;
import com.yifu.cloud.plus.v1.yifu.archives.service.SysAutoDictService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictSearchVo;
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-03-13 15:15:26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/sysautodict" )
@Tag(name = "字典表管理")
public class SysAutoDictController {
private final SysAutoDictService sysAutoDictService;
/**
* 简单分页查询
* @param page 分页对象
* @param sysAutoDict 字典表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<SysAutoDict>> getSysAutoDictPage(Page<SysAutoDict> page, SysAutoDictSearchVo sysAutoDict) {
return new R<>(sysAutoDictService.getSysAutoDictPage(page,sysAutoDict));
}
/**
* 不分页查询
* @param sysAutoDict 字典表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
//@PreAuthorize("@pms.hasPermission('demo_sysautodict_get')" )
public R<List<SysAutoDict>> getSysAutoDictNoPage(@RequestBody SysAutoDictSearchVo sysAutoDict) {
return R.ok(sysAutoDictService.noPageDiy(sysAutoDict));
}
/**
* 通过id查询字典表
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_sysautodict_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_sysautodict_get')" )
public R<SysAutoDict> getById(@PathVariable("id" ) Long id) {
return R.ok(sysAutoDictService.getById(id));
}
/**
* 新增字典表
* @param sysAutoDict 字典表
* @return R
*/
@Operation(summary = "新增字典表", description = "新增字典表:hasPermission('demo_sysautodict_add')")
@SysLog("新增字典表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('demo_sysautodict_add')" )
public R<Boolean> save(@RequestBody SysAutoDict sysAutoDict) {
return R.ok(sysAutoDictService.save(sysAutoDict));
}
/**
* 修改字典表
* @param sysAutoDict 字典表
* @return R
*/
@Operation(summary = "修改字典表", description = "修改字典表:hasPermission('demo_sysautodict_edit')")
@SysLog("修改字典表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('demo_sysautodict_edit')" )
public R<Boolean> updateById(@RequestBody SysAutoDict sysAutoDict) {
return R.ok(sysAutoDictService.updateById(sysAutoDict));
}
/**
* 通过id删除字典表
* @param id id
* @return R
*/
@Operation(summary = "通过id删除字典表", description = "通过id删除字典表:hasPermission('demo_sysautodict_del')")
@SysLog("通过id删除字典表" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_sysautodict_del')" )
public R<Boolean> removeById(@PathVariable Long id) {
return R.ok(sysAutoDictService.removeById(id));
}
/**
* 字典表 批量导入
*
* @author fxj
* @date 2025-03-13 15:15:26
**/
@SneakyThrows
@Operation(description = "批量新增字典表 hasPermission('demo_sysautodict-batch-import')")
@SysLog("批量新增字典表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('demo_sysautodict-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file){
return sysAutoDictService.importDiy(file.getInputStream());
}
/**
* 字典表 批量导出
* @author fxj
* @date 2025-03-13 15:15:26
**/
@Operation(description = "导出字典表 hasPermission('demo_sysautodict-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_sysautodict-export')")
public void export(HttpServletResponse response, @RequestBody SysAutoDictSearchVo searchVo) {
sysAutoDictService.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.SysAutoDictItem;
import com.yifu.cloud.plus.v1.yifu.archives.service.SysAutoDictItemService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictItemSearchVo;
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-03-13 15:15:26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/sysautodictitem" )
@Tag(name = "字典项管理")
public class SysAutoDictItemController {
private final SysAutoDictItemService sysAutoDictItemService;
/**
* 简单分页查询
* @param page 分页对象
* @param sysAutoDictItem 字典项
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<SysAutoDictItem>> getSysAutoDictItemPage(Page<SysAutoDictItem> page, SysAutoDictItemSearchVo sysAutoDictItem) {
return new R<>(sysAutoDictItemService.getSysAutoDictItemPage(page,sysAutoDictItem));
}
/**
* 不分页查询
* @param sysAutoDictItem 字典项
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
//@PreAuthorize("@pms.hasPermission('demo_sysautodictitem_get')" )
public R<List<SysAutoDictItem>> getSysAutoDictItemNoPage(@RequestBody SysAutoDictItemSearchVo sysAutoDictItem) {
return R.ok(sysAutoDictItemService.noPageDiy(sysAutoDictItem));
}
/**
* 通过id查询字典项
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_sysautodictitem_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem_get')" )
public R<SysAutoDictItem> getById(@PathVariable("id" ) Long id) {
return R.ok(sysAutoDictItemService.getById(id));
}
/**
* 新增字典项
* @param sysAutoDictItem 字典项
* @return R
*/
@Operation(summary = "新增字典项", description = "新增字典项:hasPermission('demo_sysautodictitem_add')")
@SysLog("新增字典项" )
@PostMapping
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem_add')" )
public R<Boolean> save(@RequestBody SysAutoDictItem sysAutoDictItem) {
return R.ok(sysAutoDictItemService.save(sysAutoDictItem));
}
/**
* 修改字典项
* @param sysAutoDictItem 字典项
* @return R
*/
@Operation(summary = "修改字典项", description = "修改字典项:hasPermission('demo_sysautodictitem_edit')")
@SysLog("修改字典项" )
@PutMapping
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem_edit')" )
public R<Boolean> updateById(@RequestBody SysAutoDictItem sysAutoDictItem) {
return R.ok(sysAutoDictItemService.updateById(sysAutoDictItem));
}
/**
* 通过id删除字典项
* @param id id
* @return R
*/
@Operation(summary = "通过id删除字典项", description = "通过id删除字典项:hasPermission('demo_sysautodictitem_del')")
@SysLog("通过id删除字典项" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem_del')" )
public R<Boolean> removeById(@PathVariable Long id) {
return R.ok(sysAutoDictItemService.removeById(id));
}
/**
* 字典项 批量导入
*
* @author fxj
* @date 2025-03-13 15:15:26
**/
@SneakyThrows
@Operation(description = "批量新增字典项 hasPermission('demo_sysautodictitem-batch-import')")
@SysLog("批量新增字典项")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file){
return sysAutoDictItemService.importDiy(file.getInputStream());
}
/**
* 字典项 批量导出
* @author fxj
* @date 2025-03-13 15:15:26
**/
@Operation(description = "导出字典项 hasPermission('demo_sysautodictitem-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_sysautodictitem-export')")
public void export(HttpServletResponse response, @RequestBody SysAutoDictItemSearchVo searchVo) {
sysAutoDictItemService.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.TAutoEmpRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoEmpRuleInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoEmpRuleInfoSearchVo;
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-03-13 15:15:26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautoempruleinfo" )
@Tag(name = "档案管理规则配置表管理")
public class TAutoEmpRuleInfoController {
private final TAutoEmpRuleInfoService tAutoEmpRuleInfoService;
/**
* 简单分页查询
* @param page 分页对象
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoEmpRuleInfo>> getTAutoEmpRuleInfoPage(Page<TAutoEmpRuleInfo> page, TAutoEmpRuleInfoSearchVo tAutoEmpRuleInfo) {
return new R<>(tAutoEmpRuleInfoService.getTAutoEmpRuleInfoPage(page,tAutoEmpRuleInfo));
}
/**
* 不分页查询
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
//@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo_get')" )
public R<List<TAutoEmpRuleInfo>> getTAutoEmpRuleInfoNoPage(@RequestBody TAutoEmpRuleInfoSearchVo tAutoEmpRuleInfo) {
return R.ok(tAutoEmpRuleInfoService.noPageDiy(tAutoEmpRuleInfo));
}
/**
* 通过id查询档案管理规则配置表
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tautoempruleinfo_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo_get')" )
public R<TAutoEmpRuleInfo> getById(@PathVariable("id" ) String id) {
return R.ok(tAutoEmpRuleInfoService.getById(id));
}
/**
* 新增档案管理规则配置表
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return R
*/
@Operation(summary = "新增档案管理规则配置表", description = "新增档案管理规则配置表:hasPermission('demo_tautoempruleinfo_add')")
@SysLog("新增档案管理规则配置表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo_add')" )
public R<Boolean> save(@RequestBody TAutoEmpRuleInfo tAutoEmpRuleInfo) {
return R.ok(tAutoEmpRuleInfoService.save(tAutoEmpRuleInfo));
}
/**
* 修改档案管理规则配置表
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return R
*/
@Operation(summary = "修改档案管理规则配置表", description = "修改档案管理规则配置表:hasPermission('demo_tautoempruleinfo_edit')")
@SysLog("修改档案管理规则配置表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo_edit')" )
public R<Boolean> updateById(@RequestBody TAutoEmpRuleInfo tAutoEmpRuleInfo) {
return R.ok(tAutoEmpRuleInfoService.updateById(tAutoEmpRuleInfo));
}
/**
* 通过id删除档案管理规则配置表
* @param id id
* @return R
*/
@Operation(summary = "通过id删除档案管理规则配置表", description = "通过id删除档案管理规则配置表:hasPermission('demo_tautoempruleinfo_del')")
@SysLog("通过id删除档案管理规则配置表" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo_del')" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoEmpRuleInfoService.removeById(id));
}
/**
* 档案管理规则配置表 批量导入
*
* @author fxj
* @date 2025-03-13 15:15:26
**/
@SneakyThrows
@Operation(description = "批量新增档案管理规则配置表 hasPermission('demo_tautoempruleinfo-batch-import')")
@SysLog("批量新增档案管理规则配置表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file){
return tAutoEmpRuleInfoService.importDiy(file.getInputStream());
}
/**
* 档案管理规则配置表 批量导出
* @author fxj
* @date 2025-03-13 15:15:26
**/
@Operation(description = "导出档案管理规则配置表 hasPermission('demo_tautoempruleinfo-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tautoempruleinfo-export')")
public void export(HttpServletResponse response, @RequestBody TAutoEmpRuleInfoSearchVo searchVo) {
tAutoEmpRuleInfoService.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.TAutoMainRel;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoMainRelService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.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-03-13 15:15:26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautomainrel" )
@Tag(name = "项目配置表主表管理")
public class TAutoMainRelController {
private final TAutoMainRelService tAutoMainRelService;
private final MenuUtil menuUtil;
/**
* 简单分页查询
* @param page 分页对象
* @param tAutoMainRel 项目配置表主表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoMainRel>> getTAutoMainRelPage(Page<TAutoMainRel> page, TAutoMainRelSearchVo tAutoMainRel) {
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, tAutoMainRel);
return new R<>(tAutoMainRelService.getTAutoMainRelPage(page,tAutoMainRel));
}
/**
* 不分页查询
* @param tAutoMainRel 项目配置表主表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
//@PreAuthorize("@pms.hasPermission('demo_tautomainrel_get')" )
public R<List<TAutoMainRelExportVo>> getTAutoMainRelNoPage(@RequestBody TAutoMainRelSearchVo tAutoMainRel) {
return R.ok(tAutoMainRelService.noPageDiy(tAutoMainRel));
}
/**
* 通过id查询项目配置表主表
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tautomainrel_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautomainrel_get')" )
public R<TAutoMainRel> getById(@PathVariable("id" ) String id) {
return R.ok(tAutoMainRelService.getById(id));
}
/**
* 新增项目配置表主表
* @param tAutoMainRel 项目配置表主表
* @return R
*/
@Operation(summary = "新增项目配置表主表", description = "新增项目配置表主表:hasPermission('demo_tautomainrel_add')")
@SysLog("新增项目配置表主表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('demo_tautomainrel_add')" )
public R<Boolean> save(@RequestBody TAutoMainRel tAutoMainRel) {
return R.ok(tAutoMainRelService.save(tAutoMainRel));
}
/**
* 修改项目配置表主表
* @param tAutoMainRel 项目配置表主表
* @return R
*/
@Operation(summary = "修改项目配置表主表", description = "修改项目配置表主表:hasPermission('demo_tautomainrel_edit')")
@SysLog("修改项目配置表主表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('demo_tautomainrel_edit')" )
public R<Boolean> updateById(@RequestBody TAutoMainRel tAutoMainRel) {
return R.ok(tAutoMainRelService.updateById(tAutoMainRel));
}
/**
* 通过id删除项目配置表主表
* @param id id
* @return R
*/
@Operation(summary = "通过id删除项目配置表主表", description = "通过id删除项目配置表主表:hasPermission('demo_tautomainrel_del')")
@SysLog("通过id删除项目配置表主表" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautomainrel_del')" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoMainRelService.removeById(id));
}
/**
* 项目配置表主表 批量导入
*
* @author fxj
* @date 2025-03-13 15:15:26
**/
@SneakyThrows
@Operation(description = "批量新增项目配置表主表 hasPermission('demo_tautomainrel-batch-import')")
@SysLog("批量新增项目配置表主表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('demo_tautomainrel-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file){
return tAutoMainRelService.importDiy(file.getInputStream());
}
/**
* 项目配置表主表 批量导出
* @author fxj
* @date 2025-03-13 15:15:26
**/
@Operation(description = "导出项目配置表主表 hasPermission('demo_tautomainrel-export')")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody TAutoMainRelSearchVo searchVo) {
tAutoMainRelService.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.TAutoRuleLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoRuleLogService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoRuleLogSearchVo;
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-03-13 15:15:26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tautorulelog" )
@Tag(name = "规则变更日志表管理")
public class TAutoRuleLogController {
private final TAutoRuleLogService tAutoRuleLogService;
/**
* 简单分页查询
* @param page 分页对象
* @param tAutoRuleLog 规则变更日志表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TAutoRuleLog>> getTAutoRuleLogPage(Page<TAutoRuleLog> page, TAutoRuleLogSearchVo tAutoRuleLog) {
return new R<>(tAutoRuleLogService.getTAutoRuleLogPage(page,tAutoRuleLog));
}
/**
* 不分页查询
* @param tAutoRuleLog 规则变更日志表
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
//@PreAuthorize("@pms.hasPermission('demo_tautorulelog_get')" )
public R<List<TAutoRuleLog>> getTAutoRuleLogNoPage(@RequestBody TAutoRuleLogSearchVo tAutoRuleLog) {
return R.ok(tAutoRuleLogService.noPageDiy(tAutoRuleLog));
}
/**
* 通过id查询规则变更日志表
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tautorulelog_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautorulelog_get')" )
public R<TAutoRuleLog> getById(@PathVariable("id" ) String id) {
return R.ok(tAutoRuleLogService.getById(id));
}
/**
* 新增规则变更日志表
* @param tAutoRuleLog 规则变更日志表
* @return R
*/
@Operation(summary = "新增规则变更日志表", description = "新增规则变更日志表:hasPermission('demo_tautorulelog_add')")
@SysLog("新增规则变更日志表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('demo_tautorulelog_add')" )
public R<Boolean> save(@RequestBody TAutoRuleLog tAutoRuleLog) {
return R.ok(tAutoRuleLogService.save(tAutoRuleLog));
}
/**
* 修改规则变更日志表
* @param tAutoRuleLog 规则变更日志表
* @return R
*/
@Operation(summary = "修改规则变更日志表", description = "修改规则变更日志表:hasPermission('demo_tautorulelog_edit')")
@SysLog("修改规则变更日志表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('demo_tautorulelog_edit')" )
public R<Boolean> updateById(@RequestBody TAutoRuleLog tAutoRuleLog) {
return R.ok(tAutoRuleLogService.updateById(tAutoRuleLog));
}
/**
* 通过id删除规则变更日志表
* @param id id
* @return R
*/
@Operation(summary = "通过id删除规则变更日志表", description = "通过id删除规则变更日志表:hasPermission('demo_tautorulelog_del')")
@SysLog("通过id删除规则变更日志表" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tautorulelog_del')" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tAutoRuleLogService.removeById(id));
}
/**
* 规则变更日志表 批量导入
*
* @author fxj
* @date 2025-03-13 15:15:26
**/
@SneakyThrows
@Operation(description = "批量新增规则变更日志表 hasPermission('demo_tautorulelog-batch-import')")
@SysLog("批量新增规则变更日志表")
@PostMapping("/importListAdd")
@PreAuthorize("@pms.hasPermission('demo_tautorulelog-batch-import')")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file){
return tAutoRuleLogService.importDiy(file.getInputStream());
}
/**
* 规则变更日志表 批量导出
* @author fxj
* @date 2025-03-13 15:15:26
**/
@Operation(description = "导出规则变更日志表 hasPermission('demo_tautorulelog-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tautorulelog-export')")
public void export(HttpServletResponse response, @RequestBody TAutoRuleLogSearchVo searchVo) {
tAutoRuleLogService.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.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Mapper
public interface SysAutoDictItemMapper extends BaseMapper<SysAutoDictItem> {
/**
* 字典项简单分页查询
* @param sysAutoDictItem 字典项
* @return
*/
IPage<SysAutoDictItem> getSysAutoDictItemPage(Page<SysAutoDictItem> page, @Param("sysAutoDictItem") SysAutoDictItem sysAutoDictItem);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDict;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 字典表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Mapper
public interface SysAutoDictMapper extends BaseMapper<SysAutoDict> {
/**
* 字典表简单分页查询
* @param sysAutoDict 字典表
* @return
*/
IPage<SysAutoDict> getSysAutoDictPage(Page<SysAutoDict> page, @Param("sysAutoDict") SysAutoDict sysAutoDict);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoEmpRuleInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Mapper
public interface TAutoEmpRuleInfoMapper extends BaseMapper<TAutoEmpRuleInfo> {
/**
* 档案管理规则配置表简单分页查询
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return
*/
IPage<TAutoEmpRuleInfo> getTAutoEmpRuleInfoPage(Page<TAutoEmpRuleInfo> page, @Param("tAutoEmpRuleInfo") TAutoEmpRuleInfo tAutoEmpRuleInfo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Mapper
public interface TAutoMainRelMapper extends BaseMapper<TAutoMainRel> {
/**
* 项目配置表主表简单分页查询
* @param tAutoMainRel 项目配置表主表
* @return
*/
IPage<TAutoMainRel> getTAutoMainRelPage(Page<TAutoMainRel> page, @Param("tAutoMainRel") TAutoMainRel tAutoMainRel);
Long noPageCountDiy(@Param("tAutoMainRel")TAutoMainRelSearchVo tAutoMainRel);
List<TAutoMainRelExportVo> noPageDiy(@Param("tAutoMainRel")TAutoMainRelSearchVo tAutoMainRel);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoRuleLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Mapper
public interface TAutoRuleLogMapper extends BaseMapper<TAutoRuleLog> {
/**
* 规则变更日志表简单分页查询
* @param tAutoRuleLog 规则变更日志表
* @return
*/
IPage<TAutoRuleLog> getTAutoRuleLogPage(Page<TAutoRuleLog> page, @Param("tAutoRuleLog") TAutoRuleLog tAutoRuleLog);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
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.archives.vo.SysAutoDictItemSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
public interface SysAutoDictItemService extends IService<SysAutoDictItem> {
/**
* 字典项简单分页查询
* @param sysAutoDictItem 字典项
* @return
*/
IPage<SysAutoDictItem> getSysAutoDictItemPage(Page<SysAutoDictItem> page, SysAutoDictItemSearchVo sysAutoDictItem);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void listExport(HttpServletResponse response, SysAutoDictItemSearchVo searchVo);
List<SysAutoDictItem> noPageDiy(SysAutoDictItemSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDict;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 字典表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
public interface SysAutoDictService extends IService<SysAutoDict> {
/**
* 字典表简单分页查询
* @param sysAutoDict 字典表
* @return
*/
IPage<SysAutoDict> getSysAutoDictPage(Page<SysAutoDict> page, SysAutoDictSearchVo sysAutoDict);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void listExport(HttpServletResponse response, SysAutoDictSearchVo searchVo);
List<SysAutoDict> noPageDiy(SysAutoDictSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoEmpRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoEmpRuleInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
public interface TAutoEmpRuleInfoService extends IService<TAutoEmpRuleInfo> {
/**
* 档案管理规则配置表简单分页查询
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return
*/
IPage<TAutoEmpRuleInfo> getTAutoEmpRuleInfoPage(Page<TAutoEmpRuleInfo> page, TAutoEmpRuleInfoSearchVo tAutoEmpRuleInfo);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void listExport(HttpServletResponse response, TAutoEmpRuleInfoSearchVo searchVo);
List<TAutoEmpRuleInfo> noPageDiy(TAutoEmpRuleInfoSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
public interface TAutoMainRelService extends IService<TAutoMainRel> {
/**
* 项目配置表主表简单分页查询
* @param tAutoMainRel 项目配置表主表
* @return
*/
IPage<TAutoMainRel> getTAutoMainRelPage(Page<TAutoMainRel> page, TAutoMainRelSearchVo tAutoMainRel);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void listExport(HttpServletResponse response, TAutoMainRelSearchVo searchVo);
List<TAutoMainRelExportVo> noPageDiy(TAutoMainRelSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoRuleLog;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoRuleLogSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
public interface TAutoRuleLogService extends IService<TAutoRuleLog> {
/**
* 规则变更日志表简单分页查询
* @param tAutoRuleLog 规则变更日志表
* @return
*/
IPage<TAutoRuleLog> getTAutoRuleLogPage(Page<TAutoRuleLog> page, TAutoRuleLogSearchVo tAutoRuleLog);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void listExport(HttpServletResponse response, TAutoRuleLogSearchVo searchVo);
List<TAutoRuleLog> noPageDiy(TAutoRuleLogSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictItemVo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.SysAutoDictItemMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.SysAutoDictItemService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
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.archives.vo.SysAutoDictItemSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 字典项
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Log4j2
@Service
public class SysAutoDictItemServiceImpl extends ServiceImpl<SysAutoDictItemMapper, SysAutoDictItem> implements SysAutoDictItemService {
/**
* 字典项简单分页查询
* @param sysAutoDictItem 字典项
* @return
*/
@Override
public IPage<SysAutoDictItem> getSysAutoDictItemPage(Page<SysAutoDictItem> page, SysAutoDictItemSearchVo sysAutoDictItem){
return baseMapper.getSysAutoDictItemPage(page,sysAutoDictItem);
}
/**
* 字典项批量导出
* @param searchVo 字典项
* @return
*/
@Override
public void listExport(HttpServletResponse response, SysAutoDictItemSearchVo searchVo){
String fileName = "字典项批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<SysAutoDictItem> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, SysAutoDictItem.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
ExcelUtil<SysAutoDictItem> util = new ExcelUtil<>(SysAutoDictItem.class);
for (SysAutoDictItem vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("字典项"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("字典项"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<SysAutoDictItem> noPageDiy(SysAutoDictItemSearchVo searchVo) {
LambdaQueryWrapper<SysAutoDictItem> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(SysAutoDictItem::getId,idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0){
wrapper.last(" limit "+ searchVo.getLimitStart() +","+ searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(SysAutoDictItemSearchVo searchVo) {
LambdaQueryWrapper<SysAutoDictItem> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(SysAutoDictItem::getId,idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(SysAutoDictItemSearchVo entity){
LambdaQueryWrapper<SysAutoDictItem> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(SysAutoDictItem::getCreateTime, entity.getCreateTimes()[0])
.le(SysAutoDictItem::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(SysAutoDictItem::getCreateName,entity.getCreateName());
}
return wrapper;
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<SysAutoDictItemVo> util1 = new ExcelUtil<>(SysAutoDictItemVo.class);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, SysAutoDictItemVo.class, new ReadListener<SysAutoDictItemVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<SysAutoDictItemVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(SysAutoDictItemVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importSysAutoDictItem(cachedDataList,errorMessageList);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}
return R.ok(errorMessageList);
}
private void importSysAutoDictItem(List<SysAutoDictItemVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
SysAutoDictItemVo excel = excelVOList.get(i);
// 数据合法情况 TODO
// 插入
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(SysAutoDictItemVo excel) {
SysAutoDictItem insert = new SysAutoDictItem();
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDict;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.SysAutoDictMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.SysAutoDictService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 字典表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Log4j2
@Service
public class SysAutoDictServiceImpl extends ServiceImpl<SysAutoDictMapper, SysAutoDict> implements SysAutoDictService {
/**
* 字典表简单分页查询
* @param sysAutoDict 字典表
* @return
*/
@Override
public IPage<SysAutoDict> getSysAutoDictPage(Page<SysAutoDict> page, SysAutoDictSearchVo sysAutoDict){
return baseMapper.getSysAutoDictPage(page,sysAutoDict);
}
/**
* 字典表批量导出
* @param searchVo 字典表
* @return
*/
@Override
public void listExport(HttpServletResponse response, SysAutoDictSearchVo searchVo){
String fileName = "字典表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<SysAutoDict> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, SysAutoDict.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
ExcelUtil<SysAutoDict> util = new ExcelUtil<>(SysAutoDict.class);
for (SysAutoDict vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("字典表"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("字典表"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<SysAutoDict> noPageDiy(SysAutoDictSearchVo searchVo) {
LambdaQueryWrapper<SysAutoDict> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(SysAutoDict::getId,idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0){
wrapper.last(" limit "+ searchVo.getLimitStart() +","+ searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(SysAutoDictSearchVo searchVo) {
LambdaQueryWrapper<SysAutoDict> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(SysAutoDict::getId,idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(SysAutoDictSearchVo entity){
LambdaQueryWrapper<SysAutoDict> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(SysAutoDict::getCreateTime, entity.getCreateTimes()[0])
.le(SysAutoDict::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(SysAutoDict::getCreateName,entity.getCreateName());
}
return wrapper;
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<SysAutoDictVo> util1 = new ExcelUtil<>(SysAutoDictVo.class);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, SysAutoDictVo.class, new ReadListener<SysAutoDictVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<SysAutoDictVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(SysAutoDictVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importSysAutoDict(cachedDataList,errorMessageList);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}
return R.ok(errorMessageList);
}
private void importSysAutoDict(List<SysAutoDictVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
SysAutoDictVo excel = excelVOList.get(i);
// 数据合法情况 TODO
// 插入
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(SysAutoDictVo excel) {
SysAutoDict insert = new SysAutoDict();
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoEmpRuleInfo;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoEmpRuleInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoEmpRuleInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoEmpRuleInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoEmpRuleInfoVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 档案管理规则配置表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Log4j2
@Service
public class TAutoEmpRuleInfoServiceImpl extends ServiceImpl<TAutoEmpRuleInfoMapper, TAutoEmpRuleInfo> implements TAutoEmpRuleInfoService {
/**
* 档案管理规则配置表简单分页查询
* @param tAutoEmpRuleInfo 档案管理规则配置表
* @return
*/
@Override
public IPage<TAutoEmpRuleInfo> getTAutoEmpRuleInfoPage(Page<TAutoEmpRuleInfo> page, TAutoEmpRuleInfoSearchVo tAutoEmpRuleInfo){
return baseMapper.getTAutoEmpRuleInfoPage(page,tAutoEmpRuleInfo);
}
/**
* 档案管理规则配置表批量导出
* @param searchVo 档案管理规则配置表
* @return
*/
@Override
public void listExport(HttpServletResponse response, TAutoEmpRuleInfoSearchVo searchVo){
String fileName = "档案管理规则配置表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TAutoEmpRuleInfo> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, TAutoEmpRuleInfo.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
ExcelUtil<TAutoEmpRuleInfo> util = new ExcelUtil<>(TAutoEmpRuleInfo.class);
for (TAutoEmpRuleInfo vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("档案管理规则配置表"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("档案管理规则配置表"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<TAutoEmpRuleInfo> noPageDiy(TAutoEmpRuleInfoSearchVo searchVo) {
LambdaQueryWrapper<TAutoEmpRuleInfo> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(TAutoEmpRuleInfo::getId,idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0){
wrapper.last(" limit "+ searchVo.getLimitStart() +","+ searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(TAutoEmpRuleInfoSearchVo searchVo) {
LambdaQueryWrapper<TAutoEmpRuleInfo> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(TAutoEmpRuleInfo::getId,idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TAutoEmpRuleInfoSearchVo entity){
LambdaQueryWrapper<TAutoEmpRuleInfo> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TAutoEmpRuleInfo::getCreateTime, entity.getCreateTimes()[0])
.le(TAutoEmpRuleInfo::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(TAutoEmpRuleInfo::getCreateName,entity.getCreateName());
}
return wrapper;
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<TAutoEmpRuleInfoVo> util1 = new ExcelUtil<>(TAutoEmpRuleInfoVo.class);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, TAutoEmpRuleInfoVo.class, new ReadListener<TAutoEmpRuleInfoVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<TAutoEmpRuleInfoVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(TAutoEmpRuleInfoVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importTAutoEmpRuleInfo(cachedDataList,errorMessageList);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}
return R.ok(errorMessageList);
}
private void importTAutoEmpRuleInfo(List<TAutoEmpRuleInfoVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
TAutoEmpRuleInfoVo excel = excelVOList.get(i);
// 数据合法情况 TODO
// 插入
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(TAutoEmpRuleInfoVo excel) {
TAutoEmpRuleInfo insert = new TAutoEmpRuleInfo();
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoMainRelMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoMainRelService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 项目配置表主表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Log4j2
@Service
public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAutoMainRel> implements TAutoMainRelService {
/**
* 项目配置表主表简单分页查询
* @param tAutoMainRel 项目配置表主表
* @return
*/
@Override
public IPage<TAutoMainRel> getTAutoMainRelPage(Page<TAutoMainRel> page, TAutoMainRelSearchVo tAutoMainRel){
return baseMapper.getTAutoMainRelPage(page,tAutoMainRel);
}
/**
* 项目配置表主表批量导出
* @param searchVo 项目配置表主表
* @return
*/
@Override
public void listExport(HttpServletResponse response, TAutoMainRelSearchVo searchVo){
String fileName = "项目配置表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TAutoMainRelExportVo> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, TAutoMainRelExportVo.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
ExcelUtil<TAutoMainRelExportVo> util = new ExcelUtil<>(TAutoMainRelExportVo.class);
for (TAutoMainRelExportVo vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("项目配置表主表"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("项目配置表主表"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<TAutoMainRelExportVo> noPageDiy(TAutoMainRelSearchVo searchVo) {
return baseMapper.noPageDiy(searchVo);
}
private Long noPageCountDiy(TAutoMainRelSearchVo searchVo) {
return baseMapper.noPageCountDiy(searchVo);
}
private LambdaQueryWrapper buildQueryWrapper(TAutoMainRelSearchVo entity){
LambdaQueryWrapper<TAutoMainRel> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TAutoMainRel::getCreateTime, entity.getCreateTimes()[0])
.le(TAutoMainRel::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(TAutoMainRel::getCreateName,entity.getCreateName());
}
return wrapper;
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<TAutoMainRelVo> util1 = new ExcelUtil<>(TAutoMainRelVo.class);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, TAutoMainRelVo.class, new ReadListener<TAutoMainRelVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<TAutoMainRelVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(TAutoMainRelVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importTAutoMainRel(cachedDataList,errorMessageList);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}
return R.ok(errorMessageList);
}
private void importTAutoMainRel(List<TAutoMainRelVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
TAutoMainRelVo excel = excelVOList.get(i);
// 数据合法情况 TODO
// 插入
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(TAutoMainRelVo excel) {
TAutoMainRel insert = new TAutoMainRel();
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoRuleLog;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoRuleLogMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoRuleLogService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoRuleLogSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoRuleLogVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 规则变更日志表
*
* @author fxj
* @date 2025-03-13 15:15:26
*/
@Log4j2
@Service
public class TAutoRuleLogServiceImpl extends ServiceImpl<TAutoRuleLogMapper, TAutoRuleLog> implements TAutoRuleLogService {
/**
* 规则变更日志表简单分页查询
* @param tAutoRuleLog 规则变更日志表
* @return
*/
@Override
public IPage<TAutoRuleLog> getTAutoRuleLogPage(Page<TAutoRuleLog> page, TAutoRuleLogSearchVo tAutoRuleLog){
return baseMapper.getTAutoRuleLogPage(page,tAutoRuleLog);
}
/**
* 规则变更日志表批量导出
* @param searchVo 规则变更日志表
* @return
*/
@Override
public void listExport(HttpServletResponse response, TAutoRuleLogSearchVo searchVo){
String fileName = "规则变更日志表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TAutoRuleLog> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName , CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, TAutoRuleLog.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT){
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)){
ExcelUtil<TAutoRuleLog> util = new ExcelUtil<>(TAutoRuleLog.class);
for (TAutoRuleLog vo:list){
util.convertEntity(vo,null,null,null);
}
}
if (Common.isNotNull(list)){
WriteSheet writeSheet = EasyExcel.writerSheet("规则变更日志表"+index).build();
excelWriter.write(list,writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)){
list.clear();
}
}
}else {
WriteSheet writeSheet = EasyExcel.writerSheet("规则变更日志表"+index).build();
excelWriter.write(list,writeSheet);
}
if (Common.isNotNull(list)){
list.clear();
}
out.flush();
excelWriter.finish();
}catch (Exception e){
log.error("执行异常" ,e);
}finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<TAutoRuleLog> noPageDiy(TAutoRuleLogSearchVo searchVo) {
LambdaQueryWrapper<TAutoRuleLog> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(TAutoRuleLog::getId,idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0){
wrapper.last(" limit "+ searchVo.getLimitStart() +","+ searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(TAutoRuleLogSearchVo searchVo) {
LambdaQueryWrapper<TAutoRuleLog> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(TAutoRuleLog::getId,idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TAutoRuleLogSearchVo entity){
LambdaQueryWrapper<TAutoRuleLog> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TAutoRuleLog::getCreateTime, entity.getCreateTimes()[0])
.le(TAutoRuleLog::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(TAutoRuleLog::getCreateName,entity.getCreateName());
}
return wrapper;
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<TAutoRuleLogVo> util1 = new ExcelUtil<>(TAutoRuleLogVo.class);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
EasyExcel.read(inputStream, TAutoRuleLogVo.class, new ReadListener<TAutoRuleLogVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<TAutoRuleLogVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(TAutoRuleLogVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importTAutoRuleLog(cachedDataList,errorMessageList);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}
return R.ok(errorMessageList);
}
private void importTAutoRuleLog(List<TAutoRuleLogVo> excelVOList, List<ErrorMessage> errorMessageList) {
// 个性化校验逻辑
ErrorMessage errorMsg;
// 执行数据插入操作 组装
for (int i = 0; i < excelVOList.size(); i++) {
TAutoRuleLogVo excel = excelVOList.get(i);
// 数据合法情况 TODO
// 插入
insertExcel(excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(TAutoRuleLogVo excel) {
TAutoRuleLog insert = new TAutoRuleLog();
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.SysAutoDictItemMapper">
<resultMap id="sysAutoDictItemMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem">
<id property="id" column="id"/>
<result property="dictId" column="dict_id"/>
<result property="value" column="value"/>
<result property="label" column="label"/>
<result property="type" column="type"/>
<result property="description" column="description"/>
<result property="sortOrder" column="sort_order"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="parentId" column="parent_id"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="createName" column="create_name"/>
<result property="clientId" column="client_id"/>
<result property="disable" column="disable"/>
<result property="deptNo" column="dept_no"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.dict_id,
a.value,
a.label,
a.type,
a.description,
a.sort_order,
a.remark,
a.del_flag,
a.parent_id,
a.create_time,
a.create_by,
a.update_by,
a.update_time,
a.create_name,
a.client_id,
a.disable,
a.dept_no
</sql>
<sql id="sysAutoDictItem_where">
<if test="sysAutoDictItem != null">
<if test="sysAutoDictItem.id != null">
AND a.id = #{sysAutoDictItem.id}
</if>
<if test="sysAutoDictItem.dictId != null">
AND a.dict_id = #{sysAutoDictItem.dictId}
</if>
<if test="sysAutoDictItem.value != null and sysAutoDictItem.value.trim() != ''">
AND a.value = #{sysAutoDictItem.value}
</if>
<if test="sysAutoDictItem.label != null and sysAutoDictItem.label.trim() != ''">
AND a.label = #{sysAutoDictItem.label}
</if>
<if test="sysAutoDictItem.type != null and sysAutoDictItem.type.trim() != ''">
AND a.type = #{sysAutoDictItem.type}
</if>
<if test="sysAutoDictItem.description != null and sysAutoDictItem.description.trim() != ''">
AND a.description = #{sysAutoDictItem.description}
</if>
<if test="sysAutoDictItem.sortOrder != null">
AND a.sort_order = #{sysAutoDictItem.sortOrder}
</if>
<if test="sysAutoDictItem.remark != null and sysAutoDictItem.remark.trim() != ''">
AND a.remark = #{sysAutoDictItem.remark}
</if>
<if test="sysAutoDictItem.delFlag != null and sysAutoDictItem.delFlag.trim() != ''">
AND a.del_flag = #{sysAutoDictItem.delFlag}
</if>
<if test="sysAutoDictItem.parentId != null">
AND a.parent_id = #{sysAutoDictItem.parentId}
</if>
<if test="sysAutoDictItem.createTime != null">
AND a.create_time = #{sysAutoDictItem.createTime}
</if>
<if test="sysAutoDictItem.createBy != null and sysAutoDictItem.createBy.trim() != ''">
AND a.create_by = #{sysAutoDictItem.createBy}
</if>
<if test="sysAutoDictItem.updateBy != null and sysAutoDictItem.updateBy.trim() != ''">
AND a.update_by = #{sysAutoDictItem.updateBy}
</if>
<if test="sysAutoDictItem.updateTime != null">
AND a.update_time = #{sysAutoDictItem.updateTime}
</if>
<if test="sysAutoDictItem.createName != null and sysAutoDictItem.createName.trim() != ''">
AND a.create_name = #{sysAutoDictItem.createName}
</if>
<if test="sysAutoDictItem.clientId != null and sysAutoDictItem.clientId.trim() != ''">
AND a.client_id = #{sysAutoDictItem.clientId}
</if>
<if test="sysAutoDictItem.disable != null and sysAutoDictItem.disable.trim() != ''">
AND a.disable = #{sysAutoDictItem.disable}
</if>
<if test="sysAutoDictItem.deptNo != null and sysAutoDictItem.deptNo.trim() != ''">
AND a.dept_no = #{sysAutoDictItem.deptNo}
</if>
</if>
</sql>
<!--sysAutoDictItem简单分页查询-->
<select id="getSysAutoDictItemPage" resultMap="sysAutoDictItemMap">
SELECT
<include refid="Base_Column_List"/>
FROM sys_auto_dict_item a
<where>
1=1
<include refid="sysAutoDictItem_where"/>
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.SysAutoDictMapper">
<resultMap id="sysAutoDictMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDict">
<id property="id" column="id"/>
<result property="type" column="type"/>
<result property="description" column="description"/>
<result property="remark" column="remark"/>
<result property="systemFlag" column="system_flag"/>
<result property="delFlag" column="del_flag"/>
<result property="parentItemType" column="parent_item_type"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="createName" column="create_name"/>
<result property="clientId" column="client_id"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.type,
a.description,
a.remark,
a.system_flag,
a.del_flag,
a.parent_item_type,
a.create_time,
a.create_by,
a.update_by,
a.update_time,
a.create_name,
a.client_id
</sql>
<sql id="sysAutoDict_where">
<if test="sysAutoDict != null">
<if test="sysAutoDict.id != null">
AND a.id = #{sysAutoDict.id}
</if>
<if test="sysAutoDict.type != null and sysAutoDict.type.trim() != ''">
AND a.type = #{sysAutoDict.type}
</if>
<if test="sysAutoDict.description != null and sysAutoDict.description.trim() != ''">
AND a.description = #{sysAutoDict.description}
</if>
<if test="sysAutoDict.remark != null and sysAutoDict.remark.trim() != ''">
AND a.remark = #{sysAutoDict.remark}
</if>
<if test="sysAutoDict.systemFlag != null and sysAutoDict.systemFlag.trim() != ''">
AND a.system_flag = #{sysAutoDict.systemFlag}
</if>
<if test="sysAutoDict.delFlag != null and sysAutoDict.delFlag.trim() != ''">
AND a.del_flag = #{sysAutoDict.delFlag}
</if>
<if test="sysAutoDict.parentItemType != null and sysAutoDict.parentItemType.trim() != ''">
AND a.parent_item_type = #{sysAutoDict.parentItemType}
</if>
<if test="sysAutoDict.createTime != null">
AND a.create_time = #{sysAutoDict.createTime}
</if>
<if test="sysAutoDict.createBy != null and sysAutoDict.createBy.trim() != ''">
AND a.create_by = #{sysAutoDict.createBy}
</if>
<if test="sysAutoDict.updateBy != null and sysAutoDict.updateBy.trim() != ''">
AND a.update_by = #{sysAutoDict.updateBy}
</if>
<if test="sysAutoDict.updateTime != null">
AND a.update_time = #{sysAutoDict.updateTime}
</if>
<if test="sysAutoDict.createName != null and sysAutoDict.createName.trim() != ''">
AND a.create_name = #{sysAutoDict.createName}
</if>
<if test="sysAutoDict.clientId != null and sysAutoDict.clientId.trim() != ''">
AND a.client_id = #{sysAutoDict.clientId}
</if>
</if>
</sql>
<!--sysAutoDict简单分页查询-->
<select id="getSysAutoDictPage" resultMap="sysAutoDictMap">
SELECT
<include refid="Base_Column_List"/>
FROM sys_auto_dict a
<where>
1=1
<include refid="sysAutoDict_where"/>
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoEmpRuleInfoMapper">
<resultMap id="tAutoEmpRuleInfoMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoEmpRuleInfo">
<id property="id" column="ID"/>
<result property="autoFlag" column="AUTO_FLAG"/>
<result property="collectType" column="COLLECT_TYPE"/>
<result property="pushDate" column="PUSH_DATE"/>
<result property="empType" column="EMP_TYPE"/>
<result property="empProvince" column="EMP_PROVINCE"/>
<result property="empCity" column="EMP_CITY"/>
<result property="empTown" column="EMP_TOWN"/>
<result property="contractType" column="CONTRACT_TYPE"/>
<result property="businessTypeSub" column="BUSINESS_TYPE_SUB"/>
<result property="updateFlag" column="UPDATE_FLAG"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="mainId" column="MAIN_ID"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.AUTO_FLAG,
a.COLLECT_TYPE,
a.PUSH_DATE,
a.EMP_TYPE,
a.EMP_PROVINCE,
a.EMP_CITY,
a.EMP_TOWN,
a.CONTRACT_TYPE,
a.BUSINESS_TYPE_SUB,
a.UPDATE_FLAG,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.DEPT_NO,
a.DEPT_ID,
a.MAIN_ID
</sql>
<sql id="tAutoEmpRuleInfo_where">
<if test="tAutoEmpRuleInfo != null">
<if test="tAutoEmpRuleInfo.id != null and tAutoEmpRuleInfo.id.trim() != ''">
AND a.ID = #{tAutoEmpRuleInfo.id}
</if>
<if test="tAutoEmpRuleInfo.autoFlag != null and tAutoEmpRuleInfo.autoFlag.trim() != ''">
AND a.AUTO_FLAG = #{tAutoEmpRuleInfo.autoFlag}
</if>
<if test="tAutoEmpRuleInfo.collectType != null and tAutoEmpRuleInfo.collectType.trim() != ''">
AND a.COLLECT_TYPE = #{tAutoEmpRuleInfo.collectType}
</if>
<if test="tAutoEmpRuleInfo.pushDate != null">
AND a.PUSH_DATE = #{tAutoEmpRuleInfo.pushDate}
</if>
<if test="tAutoEmpRuleInfo.empType != null and tAutoEmpRuleInfo.empType.trim() != ''">
AND a.EMP_TYPE = #{tAutoEmpRuleInfo.empType}
</if>
<if test="tAutoEmpRuleInfo.empProvince != null and tAutoEmpRuleInfo.empProvince.trim() != ''">
AND a.EMP_PROVINCE = #{tAutoEmpRuleInfo.empProvince}
</if>
<if test="tAutoEmpRuleInfo.empCity != null and tAutoEmpRuleInfo.empCity.trim() != ''">
AND a.EMP_CITY = #{tAutoEmpRuleInfo.empCity}
</if>
<if test="tAutoEmpRuleInfo.empTown != null and tAutoEmpRuleInfo.empTown.trim() != ''">
AND a.EMP_TOWN = #{tAutoEmpRuleInfo.empTown}
</if>
<if test="tAutoEmpRuleInfo.contractType != null and tAutoEmpRuleInfo.contractType.trim() != ''">
AND a.CONTRACT_TYPE = #{tAutoEmpRuleInfo.contractType}
</if>
<if test="tAutoEmpRuleInfo.businessTypeSub != null and tAutoEmpRuleInfo.businessTypeSub.trim() != ''">
AND a.BUSINESS_TYPE_SUB = #{tAutoEmpRuleInfo.businessTypeSub}
</if>
<if test="tAutoEmpRuleInfo.updateFlag != null and tAutoEmpRuleInfo.updateFlag.trim() != ''">
AND a.UPDATE_FLAG = #{tAutoEmpRuleInfo.updateFlag}
</if>
<if test="tAutoEmpRuleInfo.createBy != null and tAutoEmpRuleInfo.createBy.trim() != ''">
AND a.CREATE_BY = #{tAutoEmpRuleInfo.createBy}
</if>
<if test="tAutoEmpRuleInfo.createName != null and tAutoEmpRuleInfo.createName.trim() != ''">
AND a.CREATE_NAME = #{tAutoEmpRuleInfo.createName}
</if>
<if test="tAutoEmpRuleInfo.createTime != null">
AND a.CREATE_TIME = #{tAutoEmpRuleInfo.createTime}
</if>
<if test="tAutoEmpRuleInfo.updateBy != null and tAutoEmpRuleInfo.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tAutoEmpRuleInfo.updateBy}
</if>
<if test="tAutoEmpRuleInfo.updateTime != null">
AND a.UPDATE_TIME = #{tAutoEmpRuleInfo.updateTime}
</if>
<if test="tAutoEmpRuleInfo.deptNo != null and tAutoEmpRuleInfo.deptNo.trim() != ''">
AND a.DEPT_NO = #{tAutoEmpRuleInfo.deptNo}
</if>
<if test="tAutoEmpRuleInfo.deptId != null and tAutoEmpRuleInfo.deptId.trim() != ''">
AND a.DEPT_ID = #{tAutoEmpRuleInfo.deptId}
</if>
<if test="tAutoEmpRuleInfo.mainId != null and tAutoEmpRuleInfo.mainId.trim() != ''">
AND a.MAIN_ID = #{tAutoEmpRuleInfo.mainId}
</if>
</if>
</sql>
<!--tAutoEmpRuleInfo简单分页查询-->
<select id="getTAutoEmpRuleInfoPage" resultMap="tAutoEmpRuleInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_auto_emp_rule_info a
<where>
1=1
<include refid="tAutoEmpRuleInfo_where"/>
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoMainRelMapper">
<resultMap id="tAutoMainRelMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel">
<id property="id" column="ID"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="deptId" column="DEPT_ID"/>
<result property="ruleUpdateTime" column="RULE_UPDATE_TIME"/>
<result property="ruleUpdatePerson" column="RULE_UPDATE_PERSON"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.dept_NO,
a.dept_ID,
a.RULE_UPDATE_TIME,
a.RULE_UPDATE_PERSON,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME
</sql>
<sql id="tAutoMainRel_where">
<if test="tAutoMainRel != null">
<if test="tAutoMainRel.id != null and tAutoMainRel.id.trim() != ''">
AND a.ID = #{tAutoMainRel.id}
</if>
<if test="tAutoMainRel.deptNo != null and tAutoMainRel.deptNo.trim() != ''">
AND a.DEPT_NO = #{tAutoMainRel.deptNo}
</if>
<if test="tAutoMainRel.deptId != null and tAutoMainRel.deptId.trim() != ''">
AND a.DEPT_ID = #{tAutoMainRel.deptId}
</if>
<if test="tAutoMainRel.ruleUpdateTime != null">
AND a.RULE_UPDATE_TIME = #{tAutoMainRel.ruleUpdateTime}
</if>
<if test="tAutoMainRel.ruleUpdatePerson != null and tAutoMainRel.ruleUpdatePerson.trim() != ''">
AND a.RULE_UPDATE_PERSON = #{tAutoMainRel.ruleUpdatePerson}
</if>
<if test="tAutoMainRel.createBy != null and tAutoMainRel.createBy.trim() != ''">
AND a.CREATE_BY = #{tAutoMainRel.createBy}
</if>
<if test="tAutoMainRel.createName != null and tAutoMainRel.createName.trim() != ''">
AND a.CREATE_NAME = #{tAutoMainRel.createName}
</if>
<if test="tAutoMainRel.createTime != null">
AND a.CREATE_TIME = #{tAutoMainRel.createTime}
</if>
<if test="tAutoMainRel.updateBy != null and tAutoMainRel.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tAutoMainRel.updateBy}
</if>
<if test="tAutoMainRel.updateTime != null">
AND a.UPDATE_TIME = #{tAutoMainRel.updateTime}
</if>
<if test="tAutoMainRel.authSql != null and tAutoMainRel.authSql.trim() != ''">
${tAutoMainRel.authSql}
</if>
</if>
</sql>
<!--tAutoMainRel简单分页查询-->
<select id="getTAutoMainRelPage" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoMainRel">
SELECT
a.ID,
a.dept_ID,
a.RULE_UPDATE_TIME,
a.RULE_UPDATE_PERSON,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME
,b.DEPART_NAME,IFNULL(b.cs_name,'') csUserName,b.DEPART_NO dept_NO,IF(b.STOP_FLAG='0','是','否') STOP_FLAG
FROM t_auto_main_rel a
left join t_settle_domain b on a.DEPT_ID = b.id
<where>
1=1
<if test="tAutoMainRel != null">
<if test="tAutoMainRel.departName != null and tAutoMainRel.departName.trim() != ''">
AND b.DEPART_NAME like concat('%',#{tAutoMainRel.departName} ,'%')
</if>
<if test="tAutoMainRel.csUserName != null and tAutoMainRel.csUserName.trim() != ''">
AND b.cs_name like concat('%',#{tAutoMainRel.csUserName} ,'%')
</if>
</if>
<include refid="tAutoMainRel_where"/>
order by a.CREATE_TIME desc
</where>
</select>
<select id="noPageCountDiy" resultType="java.lang.Long">
SELECT
count(1)
FROM t_auto_main_rel a
left join t_settle_domain b on a.DEPT_ID = b.id
<where>
1=1
<if test="tAutoMainRel != null">
<if test="tAutoMainRel.departName != null and tAutoMainRel.departName.trim() != ''">
AND b.DEPART_NAME like concat('%',#{tAutoMainRel.departName} ,'%')
</if>
<if test="tAutoMainRel.csUserName != null and tAutoMainRel.csUserName.trim() != ''">
AND b.cs_name like concat('%',#{tAutoMainRel.csUserName} ,'%')
</if>
</if>
<include refid="tAutoMainRel_where"/>
</where>
</select>
<select id="noPageDiy" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.TAutoMainRelExportVo">
SELECT
a.RULE_UPDATE_TIME,
a.RULE_UPDATE_PERSON,
b.DEPART_NAME,
IFNULL(b.cs_name,'') csUserName,
b.DEPART_NO dept_NO,
IF(b.STOP_FLAG='0','是','否') STOP_FLAG
FROM t_auto_main_rel a
left join t_settle_domain b on a.DEPT_ID = b.id
<where>
1=1
<if test="tAutoMainRel != null">
<if test="tAutoMainRel.departName != null and tAutoMainRel.departName.trim() != ''">
AND b.DEPART_NAME like concat('%',#{tAutoMainRel.departName} ,'%')
</if>
<if test="tAutoMainRel.csUserName != null and tAutoMainRel.csUserName.trim() != ''">
AND b.cs_name like concat('%',#{tAutoMainRel.csUserName} ,'%')
</if>
</if>
<include refid="tAutoMainRel_where"/>
order by a.CREATE_TIME desc
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TAutoRuleLogMapper">
<resultMap id="tAutoRuleLogMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TAutoRuleLog">
<id property="id" column="ID"/>
<result property="type" column="TYPE"/>
<result property="mainId" column="MAIN_ID"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="oldInfo" column="OLD_INFO"/>
<result property="newInfo" column="NEW_INFO"/>
<result property="differenceInfo" column="DIFFERENCE_INFO"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.TYPE,
a.MAIN_ID,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.OLD_INFO,
a.NEW_INFO,
a.DIFFERENCE_INFO
</sql>
<sql id="tAutoRuleLog_where">
<if test="tAutoRuleLog != null">
<if test="tAutoRuleLog.id != null and tAutoRuleLog.id.trim() != ''">
AND a.ID = #{tAutoRuleLog.id}
</if>
<if test="tAutoRuleLog.type != null">
AND a.TYPE = #{tAutoRuleLog.type}
</if>
<if test="tAutoRuleLog.mainId != null and tAutoRuleLog.mainId.trim() != ''">
AND a.MAIN_ID = #{tAutoRuleLog.mainId}
</if>
<if test="tAutoRuleLog.createBy != null and tAutoRuleLog.createBy.trim() != ''">
AND a.CREATE_BY = #{tAutoRuleLog.createBy}
</if>
<if test="tAutoRuleLog.createName != null and tAutoRuleLog.createName.trim() != ''">
AND a.CREATE_NAME = #{tAutoRuleLog.createName}
</if>
<if test="tAutoRuleLog.createTime != null">
AND a.CREATE_TIME = #{tAutoRuleLog.createTime}
</if>
<if test="tAutoRuleLog.updateBy != null and tAutoRuleLog.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tAutoRuleLog.updateBy}
</if>
<if test="tAutoRuleLog.updateTime != null">
AND a.UPDATE_TIME = #{tAutoRuleLog.updateTime}
</if>
<if test="tAutoRuleLog.oldInfo != null and tAutoRuleLog.oldInfo.trim() != ''">
AND a.OLD_INFO = #{tAutoRuleLog.oldInfo}
</if>
<if test="tAutoRuleLog.newInfo != null and tAutoRuleLog.newInfo.trim() != ''">
AND a.NEW_INFO = #{tAutoRuleLog.newInfo}
</if>
<if test="tAutoRuleLog.differenceInfo != null and tAutoRuleLog.differenceInfo.trim() != ''">
AND a.DIFFERENCE_INFO = #{tAutoRuleLog.differenceInfo}
</if>
</if>
</sql>
<!--tAutoRuleLog简单分页查询-->
<select id="getTAutoRuleLogPage" resultMap="tAutoRuleLogMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_auto_rule_log a
<where>
1=1
<include refid="tAutoRuleLog_where"/>
</where>
</select>
</mapper>
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