Commit c2bf35c2 authored by hongguangwu's avatar hongguangwu

B端初次提交

parent 938b6ed6
package com.yifu.cloud.plus.v1.business.entity.cert;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 人员证书信息表
*
* @author fxj
* @date 2021-08-16 15:34:16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_cert_info")
@Schema(description = "人员证书信息表")
public class TCertInfo extends Model<TCertInfo> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* b端员工工号 (电信工号)
*/
@ExcelAttribute(name = "电信工号", maxLength = 20, isNotEmpty = true, errorInfo = "电信工号不可为空")
@Schema(description = "电信工号")
private String businessTelecomNumber;
/**
* 姓名
*/
@ExcelAttribute(name = "姓名", isNotEmpty = true, errorInfo = "姓名不能为空", maxLength = 50)
@Schema(description = "姓名")
private String empName;
/**
* 员工身份证号
*/
@ExcelAttribute(name = "身份证号", maxLength = 20, isNotEmpty = true, errorInfo = "身份证号不可为空")
@Schema(description = "身份证号")
private String empIdcard;
/**
* 部门
*/
@ExcelAttribute(name = "所属部门", maxLength = 20)
@Schema(description = "所属部门")
private String organId;
/**
* 岗位
*/
@ExcelAttribute(name = "岗位", maxLength = 20)
@Schema(description = "岗位")
private String post;
/**
* 标签
*/
@ExcelAttribute(name = "标签名称", maxLength = 20)
@Schema(description = "标签名称")
private String label;
/**
* 证件类型:电工证、登高证等
*/
@ExcelAttribute(name = "证件类型", maxLength = 32, isNotEmpty = true, errorInfo = "证件类型不可为空", isDataId = true, dataType = "cert_type")
@Schema(description = "证件类型")
private String certType;
/**
* 证件状态:0正常、1待复审、2已失效
*/
@ExcelAttribute(name = "证件状态", errorInfo = "证件状态不能为空", isDataId = true, dataType = "cert_status")
@Schema(description = "证件状态(0 正常 1 待复审 2 已失效)")
private String status;
/**
* 证书号
*/
@ExcelAttribute(name = "证件号", maxLength = 50, isNotEmpty = true, errorInfo = "证件号不能为空")
@Schema(description = "证件号")
private String certNum;
/**
* 作业类别
*/
@ExcelAttribute(name = "作业类别", maxLength = 50, isNotEmpty = true, errorInfo = "作业类别不能为空")
@Schema(description = "作业类别")
private String jobClass;
/**
* 准操项目
*/
@ExcelAttribute(name = "准操项目", maxLength = 100, errorInfo = "准操项目不能为空")
@Schema(description = "准操项目")
private String operationItem;
/**
* 初领日期
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelAttribute(name = "初领日期", maxLength = 20, errorInfo = "初领日期不能为空")
@Schema(description = "初领日期")
private LocalDate receiveTime;
/**
* 有效期限
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelAttribute(name = "有效期-开始日", maxLength = 50, errorInfo = "有效期-开始日不能为空")
@Schema(description = "有效期-开始日")
private LocalDate termValidityStart;
/**
* 有效期限
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelAttribute(name = "有效期-截止日", maxLength = 50, errorInfo = "有效期-截止日不能为空")
@Schema(description = "有效期-截止日")
private LocalDate termValidityEnd;
/**
* 复审日期
*/
@ExcelAttribute(name = "复审日期", isNotEmpty = true, errorInfo = "复审日期不能为空")
@Schema(description = "复审日期")
private LocalDate reviewDate;
/**
* 证件照片地址-正面
*/
@ExcelAttribute(name = "证件照片地址-正面", maxLength = 100)
@Schema(description = "证件照片地址-正面")
private String ossUrlFront;
/**
* 证件照片地址-反面
*/
@ExcelAttribute(name = "证件照片地址-反面", maxLength = 100)
@Schema(description = "证件照片地址-反面")
private String ossUrlBack;
/**
* 创建人姓名
*/
@ExcelAttribute(name = "创建人姓名", maxLength = 20)
@Schema(description = "创建人姓名")
private String createUser;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 删除状态:0未删除 1删除
*/
@ExcelAttribute(name = "删除状态", errorInfo = "删除状态不能为空")
@Schema(description = "删除状态")
private String deleteFlag;
}
package com.yifu.cloud.plus.v1.business.entity.cert;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_update_record")
@Schema(description = "B端修改记录表")
public class TUpdateRecord extends Model<TUpdateRecord> {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键", name = "id")
private String id;
/**
* 创建人id
*/
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id", name = "createUser")
private String createUser;
/**
* 创建人名
*/
@Length(max = 32, message = "创建人名不能超过32个字符")
@ExcelAttribute(name = "创建人名", isNotEmpty = true, errorInfo = "创建人名不能为空", maxLength = 32)
@Schema(description = "创建人名", name = "createUserName")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间", name = "createTime")
private LocalDateTime createTime;
/**
* 实体id
*/
@Length(max = 32, message = "实体id不能超过32个字符")
@ExcelAttribute(name = "实体id", isNotEmpty = true, errorInfo = "实体id不能为空", maxLength = 32)
@Schema(description = "实体id", name = "domainId")
private String domainId;
/**
* 模块0证件
*/
@NotBlank(message = "模块0证件不能为空")
@Length(max = 2, message = "模块0证件不能超过2个字符")
@ExcelAttribute(name = "模块0证件", isNotEmpty = true, errorInfo = "模块0证件不能为空", maxLength = 2)
@Schema(description = "模块0证件", name = "modul")
private String modul;
/**
* 全类名
*/
@Length(max = 100, message = "全类名不能超过100个字符")
@ExcelAttribute(name = "全类名", maxLength = 100)
@Schema(description = "全类名", name = "fullClassName")
private String fullClassName;
/**
* 原来的信息
*/
@NotBlank(message = "原来的信息不能为空")
@ExcelAttribute(name = "原来的信息", isNotEmpty = true, errorInfo = "原来的信息不能为空")
@Schema(description = "原来的信息", name = "oldInfo")
private String oldInfo;
/**
* 新的信息
*/
@NotBlank(message = "新的信息不能为空")
@ExcelAttribute(name = "新的信息", isNotEmpty = true, errorInfo = "新的信息不能为空")
@Schema(description = "新的信息", name = "newInfo")
private String newInfo;
/**
* 差异的信息
*/
@ExcelAttribute(name = "差异的信息")
@Schema(description = "差异的信息", name = "differenceInfo")
private String differenceInfo;
}
package com.yifu.cloud.plus.v1.business.entity.manager;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 部门数据权限表
*
* @author fxj
* @date 2021-08-11 16:54:35
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("organ_data_permission")
@Schema(description = "部门数据权限表")
public class OrganDataPermission extends Model<OrganDataPermission> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 是否是所有者
*/
@Length(max = 1, message = "是否是所有者不能超过1个字符")
@ExcelAttribute(name = "是否是所有者", maxLength = 1)
@Schema(description = "是否是所有者")
private String isOwner;
/**
* 部门ID
*/
@Length(max = 32, message = "部门ID不能超过32个字符")
@ExcelAttribute(name = "部门ID", maxLength = 32)
@Schema(description = "部门ID")
private String organId;
/**
* 部门CODE
*/
@Length(max = 32, message = "部门CODE不能超过32个字符")
@ExcelAttribute(name = "部门CODE", maxLength = 32)
@Schema(description = "部门CODE")
private String organCode;
/**
* 授权来源
*/
@Length(max = 50, message = "授权来源不能超过50个字符")
@ExcelAttribute(name = "授权来源", maxLength = 50)
@Schema(description = "授权来源")
private String permissonSrc;
/**
* 被授权人
*/
@NotBlank(message = "被授权人不能为空")
@Length(max = 32, message = "被授权人不能超过32个字符")
@ExcelAttribute(name = "被授权人", isNotEmpty = true, errorInfo = "被授权人不能为空", maxLength = 32)
@Schema(description = "被授权人")
private String bePermissonUser;
/**
* 被授权时间
*/
@ExcelAttribute(name = "被授权时间")
@Schema(description = "被授权时间")
private LocalDateTime bePermissionTime;
/**
* 备注
*/
@Length(max = 50, message = "备注不能超过50个字符")
@ExcelAttribute(name = "备注", maxLength = 50)
@Schema(description = "备注")
private String remark;
/**
* 授权人
*/
@Length(max = 32, message = "授权人不能超过32个字符")
@ExcelAttribute(name = "授权人", maxLength = 32)
@Schema(description = "授权人")
private String permissionUser;
}
package com.yifu.cloud.plus.v1.business.entity.manager;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 客户的用户与客户的机构关系表
*
* @author fxj
* @date 2021-08-11 16:54:35
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("r_user_organ")
@Schema(description = "客户的用户与客户的机构关系表")
public class RUserOrgan extends Model<RUserOrgan> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "")
private String id;
/**
* 部门ID
*/
@NotBlank(message = "部门ID不能为空")
@Length(max = 32, message = "部门ID不能超过32个字符")
@ExcelAttribute(name = "部门ID", isNotEmpty = true, errorInfo = "部门ID不能为空", maxLength = 32)
@Schema(description = "部门ID")
private String organId;
/**
* 部门CODE
*/
@Length(max = 100, message = "部门CODE不能超过100个字符")
@ExcelAttribute(name = "部门CODE", errorInfo = "部门CODE不能为空", maxLength = 100)
@Schema(description = "部门CODE")
private String organCode;
/**
* 部门等级
*/
@Length(max = 2, message = "部门等级不能超过2个字符")
@ExcelAttribute(name = "部门等级", maxLength = 2)
@Schema(description = "部门等级")
private String organLevel;
/**
* 创建人姓名
*/
@Length(max = 32, message = "创建人姓名不能超过32个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 32)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 用户ID
*/
@NotBlank(message = "用户ID不能为空")
@Length(max = 32, message = "用户ID不能超过32个字符")
@ExcelAttribute(name = "用户ID", isNotEmpty = true, errorInfo = "用户ID不能为空", maxLength = 32)
@Schema(description = "用户ID")
private String userId;
/**
* 创建人ID
*/
@Length(max = 32, message = "创建人ID不能超过32个字符")
@ExcelAttribute(name = "创建人ID", maxLength = 32)
@Schema(description = "创建人ID")
private String createUserId;
/**
* 部门名称
*/
@Length(max = 50, message = "部门名称不能超过50个字符")
@ExcelAttribute(name = "部门名称", maxLength = 50)
@Schema(description = "部门名称")
private String organName;
}
package com.yifu.cloud.plus.v1.business.entity.salary;
import cn.hutool.core.date.DatePattern;
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.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
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 javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* B端-薪酬主表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_salary")
@Schema(description = "B端-薪酬主表")
public class TBusSalary extends Model<TBusSalary> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 电信工号
*/
@NotBlank(message = "电信工号不能为空")
@Length(max = 50, message = "电信工号不能超过50个字符")
@ExcelAttribute(name = "电信工号", isNotEmpty = true, errorInfo = "电信工号不能为空", maxLength = 50)
@Schema(description = "电信工号")
private String teleNo;
/**
* 姓名
*/
@Length(max = 50, message = "姓名不能超过50个字符")
@ExcelAttribute(name = "姓名", maxLength = 50)
@Schema(description = "姓名")
private String empName;
/**
* 身份证号
*/
@Length(max = 50, message = "身份证号不能超过50个字符")
@ExcelAttribute(name = "身份证号", maxLength = 50)
@Schema(description = "身份证号")
private String empIdCard;
/**
* 部门id
*/
@ExcelAttribute(name = "部门id", maxLength = 11)
@Schema(description = "部门id")
private Integer deptId;
/**
* 部门Level
*/
@ExcelAttribute(name = "部门Level")
@Schema(description = "部门Level")
private Integer deptLevel;
/**
* 所属部门
*/
@NotBlank(message = "所属部门不能为空")
@Length(max = 100, message = "所属部门不能超过100个字符")
@ExcelAttribute(name = "所属部门", isNotEmpty = true, errorInfo = "所属部门不能为空", maxLength = 100)
@Schema(description = "所属部门")
private String deptName;
/**
* 部门tree
*/
@Length(max = 200, message = "部门tree不能超过200个字符")
@ExcelAttribute(name = "部门tree", maxLength = 200)
@Schema(description = "部门tree")
private String deptTreeLogo;
/**
* 岗位
*/
@Length(max = 50, message = "岗位不能超过50个字符")
@ExcelAttribute(name = "岗位", maxLength = 50)
@Schema(description = "岗位")
private String post;
/**
* 工资月份
*/
@NotBlank(message = "工资月份不能为空")
@Length(max = 6, message = "工资月份不能超过6个字符")
@ExcelAttribute(name = "工资月份", isDate = true, errorInfo = "工资月份不能为空", maxLength = 6, dateFormat = "yyyyMM")
@Schema(description = "工资月份")
private String salaryMonth;
/**
* 薪酬应发
*/
@ExcelAttribute(name = "薪酬应发", maxLength = 9)
@Schema(description = "薪酬应发")
private BigDecimal relaySalary;
/**
* 激励应发
*/
@ExcelAttribute(name = "激励应发", maxLength = 9)
@Schema(description = "激励应发")
private BigDecimal relayIncent;
/**
* 其他应发
*/
@ExcelAttribute(name = "其他应发", maxLength = 9)
@Schema(description = "其他应发")
private BigDecimal relayOther;
/**
* 应发合计
*/
@NotNull(message = "应发合计不能为空")
@ExcelAttribute(name = "应发合计", isNotEmpty = true, errorInfo = "应发合计不能为空", maxLength = 9)
@Schema(description = "应发合计")
private BigDecimal relaySum;
/**
* 代扣个人社保
*/
@ExcelAttribute(name = "代扣个人社保", maxLength = 9)
@Schema(description = "代扣个人社保")
private BigDecimal withholidPersonSocial;
/**
* 代扣个人公积金
*/
@ExcelAttribute(name = "代扣个人公积金", maxLength = 9)
@Schema(description = "代扣个人公积金")
private BigDecimal withholidPersonFund;
/**
* 代扣个税
*/
@ExcelAttribute(name = "代扣个税", maxLength = 9)
@Schema(description = "代扣个税")
private BigDecimal withholidPersonTax;
/**
* 其他应扣————其他扣款
* 2021-9-17 15:39:02 张倩倩要求改名为 其他扣款
*/
@ExcelAttribute(name = "其他扣款", maxLength = 9)
@Schema(description = "其他扣款")
private BigDecimal withholidOther;
/**
* 扣款合计
*/
@NotNull(message = "扣款合计不能为空")
@ExcelAttribute(name = "扣款合计", isNotEmpty = true, errorInfo = "扣款合计不能为空", maxLength = 9)
@Schema(description = "扣款合计")
private BigDecimal withholidSum;
/**
* 实发工资
*/
@NotNull(message = "实发工资不能为空")
@ExcelAttribute(name = "实发工资", isNotEmpty = true, errorInfo = "实发工资不能为空", maxLength = 9)
@Schema(description = "实发工资")
private BigDecimal actualSalary;
/**
* 单位社保
*/
@ExcelAttribute(name = "单位社保", maxLength = 9)
@Schema(description = "单位社保")
private BigDecimal unitSocial;
/**
* 单位公积金
*/
@ExcelAttribute(name = "单位公积金" , maxLength = 9)
@Schema(description = "单位公积金")
private BigDecimal unitFund;
/**
* 创建人id
*/
@NotBlank(message = "创建人id不能为空")
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "工资附加项")
@TableField(exist = false)
List<TBusSalaryItem> bisList = new ArrayList<>();
@Schema(description = "工资附加项-所有表头")
@TableField(exist = false)
Set<String> titleSet = new HashSet<>();
/**
* id,导出使用
*/
@TableField(exist = false)
String idStr;
}
package com.yifu.cloud.plus.v1.business.entity.salary;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端-薪资配置
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_salary_config")
@Schema(description = "B端-薪资配置")
public class TBusSalaryConfig extends Model<TBusSalaryConfig> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 中文名(Excel表头)
*/
@NotBlank(message = "中文名(Excel表头)不能为空")
@Length(max = 32, message = "中文名(Excel表头)不能超过32个字符")
@ExcelAttribute(name = "中文名(Excel表头)", isNotEmpty = true, errorInfo = "中文名(Excel表头)不能为空", maxLength = 32)
@Schema(description = "中文名(Excel表头)")
private String cnName;
/**
* 数据库字段名
*/
@Length(max = 32, message = "数据库字段名不能超过32个字符")
@ExcelAttribute(name = "数据库字段名", maxLength = 32)
@Schema(description = "数据库字段名")
private String dbFiedName;
/**
* JAVA属性字段名
*/
@Length(max = 32, message = "JAVA属性字段名不能超过32个字符")
@ExcelAttribute(name = "JAVA属性字段名", maxLength = 32)
@Schema(description = "JAVA属性字段名")
private String javaFiedName;
/**
* 校验字段:0:无所谓;1必填;2金额;3必填+金额
*/
@ExcelAttribute(name = "校验字段:0:无所谓;1必填;2金额;3必填+金额", maxLength = 1)
@Schema(description = "校验字段:0:无所谓;1必填;2金额;3必填+金额")
private Integer isMustNeed;
/**
* 创建人
*/
@NotBlank(message = "创建人不能为空")
@Length(max = 32, message = "创建人不能超过32个字符")
@ExcelAttribute(name = "创建人", isNotEmpty = true, errorInfo = "创建人不能为空", maxLength = 32)
@Schema(description = "创建人")
private String createUser;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 排序项
*/
@ExcelAttribute(name = "排序项")
@Schema(description = "排序项")
private Integer orderLine;
}
package com.yifu.cloud.plus.v1.business.entity.salary;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端-原表表头与配置关联表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_salary_config_title_res")
@Schema(description = "B端-原表表头与配置关联表")
public class TBusSalaryConfigTitleRes extends Model<TBusSalaryConfigTitleRes> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 结算主体id
*/
@NotBlank(message = "结算主体id不能为空")
@Length(max = 32, message = "结算主体id不能超过32个字符")
@ExcelAttribute(name = "结算主体id", isNotEmpty = true, errorInfo = "结算主体id不能为空", maxLength = 32)
@Schema(description = "结算主体id")
private Integer deptId;
/**
* 结算主体Name
*/
@Length(max = 32, message = "结算主体Name不能超过32个字符")
@ExcelAttribute(name = "结算主体Name", maxLength = 32)
@Schema(description = "结算主体Name")
private String deptName;
/**
* 结算主体No
*/
@Length(max = 32, message = "结算主体No不能超过32个字符")
@ExcelAttribute(name = "结算主体No", maxLength = 32)
@Schema(description = "结算主体No")
private String deptNo;
/**
* 原表表头
*/
@NotBlank(message = "原表表头不能为空")
@Length(max = 50, message = "原表表头不能超过50个字符")
@ExcelAttribute(name = "原表表头", isNotEmpty = true, errorInfo = "原表表头不能为空", maxLength = 50)
@Schema(description = "原表表头")
private String excelTitle;
/**
* 配置id
*/
@NotBlank(message = "配置id不能为空")
@Length(max = 32, message = "配置id不能超过32个字符")
@ExcelAttribute(name = "配置id", isNotEmpty = true, errorInfo = "配置id不能为空", maxLength = 32)
@Schema(description = "配置id")
private String configId;
/**
* 配置名称
*/
@Length(max = 32, message = "配置名称不能超过32个字符")
@ExcelAttribute(name = "配置名称", maxLength = 32)
@Schema(description = "配置名称")
private String configName;
/**
* 创建人id
*/
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 保存类型:0:保存;1不保存
*/
@ExcelAttribute(name = "保存类型:0:保存;1不保存")
@Schema(description = "保存类型:0:保存;1不保存")
private Integer saveType;
}
package com.yifu.cloud.plus.v1.business.entity.salary;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
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;
/**
* B端-薪酬明细表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_salary_item")
@Schema(description = "B端-薪酬明细表")
public class TBusSalaryItem extends Model<TBusSalaryItem> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 工资报账表ID
*/
@NotBlank(message = "工资报账表ID不能为空")
@Length(max = 32, message = "工资报账表ID不能超过32个字符")
@ExcelAttribute(name = "工资报账表ID", isNotEmpty = true, errorInfo = "工资报账表ID不能为空", maxLength = 32)
@Schema(description = "工资报账表ID")
private String salaryId;
/**
* 表头名称
*/
@NotBlank(message = "表头名称不能为空")
@Length(max = 50, message = "表头名称不能超过50个字符")
@ExcelAttribute(name = "表头名称", isNotEmpty = true, errorInfo = "表头名称不能为空", maxLength = 50)
@Schema(description = "表头名称")
private String cnName;
/**
* JAVA属性名称
*/
@NotBlank(message = "JAVA属性名称不能为空")
@Length(max = 32, message = "JAVA属性名称不能超过32个字符")
@ExcelAttribute(name = "JAVA属性名称", isNotEmpty = true, errorInfo = "JAVA属性名称不能为空", maxLength = 32)
@Schema(description = "JAVA属性名称")
private String javaFiedName;
/**
* 文本值
*/
@Length(max = 100, message = "文本值不能超过100个字符")
@ExcelAttribute(name = "文本值", maxLength = 100)
@Schema(description = "文本值")
private String textValue;
/**
* 排序项
*/
@ExcelAttribute(name = "排序项")
@Schema(description = "排序项")
private Integer orderLine;
}
package com.yifu.cloud.plus.v1.business.entity.salary;
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 java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/**
* 部门薪资变动统计表
* @TableName t_salary_statistics_depart
*/
@TableName(value ="t_salary_statistics_depart")
@Data
public class TSalaryStatisticsDepart implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId
private String id;
/**
* 部门名称
*/
private String departName;
/**
* 部门id
*/
private Integer departId;
/**
* 部门父id
*/
private Integer departPid;
/**
* 部门等级
*/
private Integer depatLevel;
/**
* 工资月份-yyyyMM
*/
private String salaryMonth;
/**
* 薪酬应发 8位整数 2位小数
*/
private BigDecimal payableSalary;
/**
* 薪酬应发差额 8位整数 2位小数
*/
private BigDecimal payableSalaryOffset;
/**
* 薪酬应发差额标识 0减少 1不变 2增加
*/
private String payableSalaryFlag;
/**
* 激励应发 8位整数 2位小数
*/
private BigDecimal payableIncentiveSalary;
/**
* 激励应发差额 8位整数 2位小数
*/
private BigDecimal payableIncentiveSalaryOffset;
/**
* 激励应发差额标识 0减少 1不变 2增加
*/
private String payableIncentiveSalaryFlag;
/**
* 其他应发 8位整数 2位小数
*/
private BigDecimal payableOtherSalary;
/**
* 其他应发差额 8位整数 2位小数
*/
private BigDecimal payableOtherSalaryOffset;
/**
* 其他应发差额标识 0减少 1不变 2增加
*/
private String payableOtherSalaryFlag;
/**
* 应发合计 9位整数 2位小数
*/
private BigDecimal payableTotal;
/**
* 应发合计差额 9位整数 2位小数
*/
private BigDecimal payableTotalOffset;
/**
* 应发合计差额标识 0减少 1不变 2增加
*/
private String payableTotalFlag;
/**
* 单位社保 6位整数 2位小数
*/
private BigDecimal companySocial;
/**
* 单位社保差额 6位整数 2位小数
*/
private BigDecimal companySocialOffset;
/**
* 单位社保差额标识 0减少 1不变 2增加
*/
private String companySocialFlag;
/**
* 单位公积金 6位整数 2位小数
*/
private BigDecimal companyAccFund;
/**
* 单位公积金差额 6位整数 2位小数
*/
private BigDecimal companyAccFundOffset;
/**
* 单位公积金差额标识 0减少 1不变 2增加
*/
private String companyAccFundFlag;
/**
* 个人社保 6位整数 2位小数
*/
private BigDecimal personalSocial;
/**
* 个人社保差额 6位整数 2位小数
*/
private BigDecimal personalSocialOffset;
/**
* 个人社保差额标识 0减少 1不变 2增加
*/
private String personalSocialFlag;
/**
* 个人公积金 6位整数 2位小数
*/
private BigDecimal personalAccFund;
/**
* 个人公积金差额 6位整数 2位小数
*/
private BigDecimal personalAccFundOffset;
/**
* 个人公积金差额标识 0减少 1不变 2增加
*/
private String personalAccFundFlag;
/**
* 个人所得税 6位整数 2位小数
*/
private BigDecimal indIncomeTax;
/**
* 个人所得税差额 6位整数 2位小数
*/
private BigDecimal indIncomeTaxOffset;
/**
* 个人所得税差额标识 0减少 1不变 2增加
*/
private String indIncomeTaxFlag;
/**
* 其他扣款 6位整数 2位小数
*/
private BigDecimal otherDedutions;
/**
* 其他扣款差额 6位整数 2位小数
*/
private BigDecimal otherDedutionOffset;
/**
* 其他扣款差额标识 0减少 1不变 2增加
*/
private String otherDedutionFalg;
/**
* 扣款合计 7位整数 2位小数
*/
private BigDecimal dedutionTotal;
/**
* 扣款合计差额 7位整数 2位小数
*/
private BigDecimal dedutionTotalOffset;
/**
* 扣款合计差额标识 0减少 1不变 2增加
*/
private String dedutionTotalFlag;
/**
* 实发工资 8位整数 2位小数
*/
private BigDecimal actualSalary;
/**
* 实发工资差额 8位整数 2位小数
*/
private BigDecimal actualSalaryOffset;
/**
* 实发工资差额标识 0减少 1不变 2增加
*/
private String actualSalaryFlag;
/**
* 人均成本 8位整数 2位小数
*/
private BigDecimal perCapita;
/**
* 人均成本差额 8位整数 2位小数
*/
private BigDecimal perCapitaOffset;
/**
* 人均成本差额标识 0减少 1不变 2增加
*/
private String perCapitaFlag;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.entity.salary;
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 java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/**
* 个人薪资变动统计表
* @TableName t_salary_statistics_personal
*/
@TableName(value ="t_salary_statistics_personal")
@Data
public class TSalaryStatisticsPersonal implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId
private String id;
/**
* 电信工号
*/
private String telecomNumber;
/**
* 姓名
*/
private String empName;
/**
* 工资月份-yyyyMM
*/
private String salaryMonth;
/**
* 人数 正整数
*/
private Integer peopleNumber;
/**
* 人数差值 正整数
*/
private Integer peopleNumberOffset;
/**
* 薪酬应发 8位整数 2位小数
*/
private BigDecimal payableSalary;
/**
* 薪酬应发差额 8位整数 2位小数
*/
private BigDecimal payableSalaryOffset;
/**
* 薪酬应发差额标识 0减少 1不变 2增加
*/
private String payableSalaryFlag;
/**
* 激励应发 8位整数 2位小数
*/
private BigDecimal payableIncentiveSalary;
/**
* 激励应发差额 8位整数 2位小数
*/
private BigDecimal payableIncentiveSalaryOffset;
/**
* 激励应发差额标识 0减少 1不变 2增加
*/
private String payableIncentiveSalaryFlag;
/**
* 其他应发 8位整数 2位小数
*/
private BigDecimal payableOtherSalary;
/**
* 其他应发差额 8位整数 2位小数
*/
private BigDecimal payableOtherSalaryOffset;
/**
* 其他应发差额标识 0减少 1不变 2增加
*/
private String payableOtherSalaryFlag;
/**
* 应发合计 9位整数 2位小数
*/
private BigDecimal payableTotal;
/**
* 应发合计差额 9位整数 2位小数
*/
private BigDecimal payableTotalOffset;
/**
* 应发合计差额标识 0减少 1不变 2增加
*/
private String payableTotalFlag;
/**
* 单位社保 6位整数 2位小数
*/
private BigDecimal companySocial;
/**
* 单位社保差额 6位整数 2位小数
*/
private BigDecimal companySocialOffset;
/**
* 单位社保差额标识 0减少 1不变 2增加
*/
private String companySocialFlag;
/**
* 单位公积金 6位整数 2位小数
*/
private BigDecimal companyAccFund;
/**
* 单位公积金差额 6位整数 2位小数
*/
private BigDecimal companyAccFundOffset;
/**
* 单位公积金差额标识 0减少 1不变 2增加
*/
private String companyAccFundFlag;
/**
* 个人社保 6位整数 2位小数
*/
private BigDecimal personalSocial;
/**
* 个人社保差额 6位整数 2位小数
*/
private BigDecimal personalSocialOffset;
/**
* 个人社保差额标识 0减少 1不变 2增加
*/
private String personalSocialFlag;
/**
* 个人公积金 6位整数 2位小数
*/
private BigDecimal personalAccFund;
/**
* 个人公积金差额 6位整数 2位小数
*/
private BigDecimal personalAccFundOffset;
/**
* 个人公积金差额标识 0减少 1不变 2增加
*/
private String personalAccFundFlag;
/**
* 个人所得税 6位整数 2位小数
*/
private BigDecimal indIncomeTax;
/**
* 个人所得税差额 6位整数 2位小数
*/
private BigDecimal indIncomeTaxOffset;
/**
* 个人所得税差额标识 0减少 1不变 2增加
*/
private String indIncomeTaxFlag;
/**
* 其他扣款 6位整数 2位小数
*/
private BigDecimal otherDedutions;
/**
* 其他扣款差额 6位整数 2位小数
*/
private BigDecimal otherDedutionOffset;
/**
* 其他扣款差额标识 0减少 1不变 2增加
*/
private String otherDedutionFalg;
/**
* 扣款合计 7位整数 2位小数
*/
private BigDecimal dedutionTotal;
/**
* 扣款合计差额 7位整数 2位小数
*/
private BigDecimal dedutionTotalOffset;
/**
* 扣款合计差额标识 0减少 1不变 2增加
*/
private String dedutionTotalFlag;
/**
* 实发工资 8位整数 2位小数
*/
private BigDecimal actualSalary;
/**
* 实发工资差额 8位整数 2位小数
*/
private BigDecimal actualSalaryOffset;
/**
* 实发工资差额标识 0减少 1不变 2增加
*/
private String actualSalaryFlag;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.entity.settle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端结算表
*
* @author hgw
* @date 2021-08-16 15:58:09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_settle")
@Schema(description = "B端结算表")
public class TBusSettle extends Model<TBusSettle> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "")
private String id;
/**
* 报账部门
*/
@Length(max = 100, message = "报账部门不能超过100个字符")
@ExcelAttribute(name = "报账部门", maxLength = 100)
@Schema(description = "报账部门")
private String accountDeptName;
/**
* 结算月
*/
@Length(max = 6, message = "结算月不能超过6个字符")
@ExcelAttribute(name = "结算月", maxLength = 6)
@Schema(description = "结算月")
private String settleMonth;
/**
* 创建人id
*/
@NotBlank(message = "创建人id不能为空")
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 删除标志,0未删除
*/
@ExcelAttribute(name = "删除标志,0未删除")
@Schema(description = "删除标志,0未删除")
private Integer deleteFlag;
}
package com.yifu.cloud.plus.v1.business.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* @author fxj
* @date 2021-08-18 14:51:15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_bus_dict")
@Schema(description = "")
public class SysBusDict extends Model<SysBusDict> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 字典名称
*/
@Length(max = 20, message = "字典名称不能超过20个字符")
@ExcelAttribute(name = "字典名称", maxLength = 20)
@Schema(description = "字典名称")
private String label;
/**
* 字典值
*/
@Length(max = 20, message = "字典值不能超过20个字符")
@ExcelAttribute(name = "字典值", maxLength = 20)
@Schema(description = "字典值")
private String value;
/**
* 字典编码
*/
@Length(max = 20, message = "字典编码不能超过20个字符")
@ExcelAttribute(name = "字典编码", maxLength = 20)
@Schema(description = "字典编码")
private String itemType;
/**
* 字典状态 0 启用 1 禁用
*/
@NotBlank(message = "字典状态不能为空")
@Length(max = 1, message = "字典状态不能超过1个字符")
@ExcelAttribute(name = "字典状态", isNotEmpty = true, errorInfo = "字典状态不能为空", maxLength = 1)
@Schema(description = "字典状态(0 启用 1 禁用)")
private String status;
}
package com.yifu.cloud.plus.v1.business.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端附件表
*
* @author hgw
* @date 2021-08-12 16:38:51
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_atta_info")
@Schema(description = "B端附件表")
public class TBusAttaInfo extends Model<TBusAttaInfo> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 资源名称
*/
@NotBlank(message = "资源名称不能为空")
@Length(max = 50, message = "资源名称不能超过50个字符")
@ExcelAttribute(name = "资源名称", isNotEmpty = true, errorInfo = "资源名称不能为空", maxLength = 50)
@Schema(description = "资源名称")
private String attaName;
/**
* 资源地址
*/
@NotBlank(message = "资源地址不能为空")
@Length(max = 100, message = "资源地址不能超过100个字符")
@ExcelAttribute(name = "资源地址", isNotEmpty = true, errorInfo = "资源地址不能为空", maxLength = 100)
@Schema(description = "资源地址")
private String attaSrc;
/**
* 资源大小
*/
@ExcelAttribute(name = "资源大小")
@Schema(description = "资源大小")
private Long attaSize;
/**
* 资源类型
*/
@Length(max = 10, message = "资源类型不能超过10个字符")
@ExcelAttribute(name = "资源类型", maxLength = 10)
@Schema(description = "资源类型")
private String attaType;
/**
* 创建人id
*/
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 实体id和关系类型共同确定附件所属
*/
@Length(max = 32, message = "实体id和关系类型共同确定附件所属不能超过32个字符")
@ExcelAttribute(name = "实体id和关系类型共同确定附件所属", maxLength = 32)
@Schema(description = "实体id和关系类型共同确定附件所属")
private String relationId;
/**
* 关系类型(0结算单;1社保;2公积金;3代发工资;4餐补;5春节大礼包;6证件附件)
*/
@Length(max = 1, message = "关系类型(0结算单;1社保;2公积金;3代发工资;4餐补;5春节大礼包;6证件附件;7假勤信息附件8学信网证明)不能超过1个字符")
@ExcelAttribute(name = "关系类型", isNotEmpty = true, errorInfo = "关系类型不能为空", maxLength = 1)
@Schema(description = "关系类型(0结算单;1社保;2公积金;3代发工资;4餐补;5春节大礼包;6证件附件;7假勤信息附件8学信网证明)")
private Integer relationType;
}
package com.yifu.cloud.plus.v1.business.entity.system;
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.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* B端部门表
*
* @author hgw
* @date 2021-08-10 10:38:44
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_dept")
@Schema(description = "B端部门表")
public class TBusDept extends Model<TBusDept> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.AUTO)
@Schema(description = "主键")
private Integer id;
/**
* 部门名称
*/
@Length(max = 100, message = "部门名称不能超过100个字符")
@ExcelAttribute(name = "部门名称", maxLength = 100)
@Schema(description = "部门名称")
private String name;
/**
* 级别
*/
@ExcelAttribute(name = "级别")
@Schema(description = "级别")
private Integer level;
/**
* 父级id
*/
@NotNull(message = "父级id不能为空")
@ExcelAttribute(name = "父级id", isNotEmpty = true, errorInfo = "父级id不能为空")
@Schema(description = "父级id")
private Integer pid;
/**
* 创建人id
*/
@NotBlank(message = "创建人id不能为空")
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 树标记:父tree_logo_id
*/
@Length(max = 200, message = "树标记:父tree_logo_id不能超过200个字符")
@ExcelAttribute(name = "树标记:父tree_logo_id", maxLength = 200)
@Schema(description = "树标记:父tree_logo_id")
private String treeLogo;
/**
* 删除标志:0未删除
*/
@Length(max = 1, message = "删除标志:0未删除不能超过1个字符")
@ExcelAttribute(name = "删除标志:0未删除", maxLength = 1)
@Schema(description = "删除标志:0未删除")
private Integer deleteFlag;
/**
* 部门子树
*/
@TableField(exist = false)
private List<TBusDept> children;
/**
* 上级部门
*/
@TableField(exist = false)
private String parentName;
}
package com.yifu.cloud.plus.v1.business.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端标签表
*
* @author hgw
* @date 2021-08-11 17:00:52
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_lable")
@Schema(description = "B端标签表")
public class TBusLable extends Model<TBusLable> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.AUTO)
@Schema(description = "主键")
private Integer id;
/**
* 标签名称
*/
@Length(max = 100, message = "标签名称不能超过100个字符")
@ExcelAttribute(name = "标签名称", maxLength = 100)
@Schema(description = "标签名称")
private String name;
/**
* 说明
*/
@Length(max = 200, message = "说明不能超过200个字符")
@ExcelAttribute(name = "说明", maxLength = 200)
@Schema(description = "说明")
private String remark;
/**
* 是否启用,0启用,1禁用
*/
@ExcelAttribute(name = "是否启用,0启用,1禁用")
@Schema(description = "是否启用,0启用,1禁用")
private Integer status;
/**
* 创建人id
*/
@NotBlank(message = "创建人id不能为空")
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 删除标志,0未删除
*/
@ExcelAttribute(name = "删除标志,0未删除")
@Schema(description = "删除标志,0未删除")
private Integer deleteFlag;
}
package com.yifu.cloud.plus.v1.business.entity.system;
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.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.List;
/**
* B端预警表
*
* @author hgw
* @date 2021-08-20 17:39:51
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_warning")
@Schema(description = "B端预警表")
public class TBusWarning extends Model<TBusWarning> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 类型:0短信;1系统消息
*/
@ExcelAttribute(name = "类型:0短信;1系统消息")
@Schema(description = "类型:0短信;1系统消息")
private Integer type;
/**
* 提醒类型:0复审;1到期;2年假未休;3假期结束日期
*/
@ExcelAttribute(name = "提醒类型:0复审;1到期;2年假未休;3假期结束日期")
@Schema(description = "提醒类型:0复审;1到期;2年假未休;3假期结束日期")
private Integer remindType;
/**
* 模板
*/
@Length(max = 100, message = "模板不能超过100个字符")
@ExcelAttribute(name = "模板", maxLength = 100)
@Schema(description = "模板")
private String remindTemplate;
/**
* 发送方式:0自动;1手动
*/
@ExcelAttribute(name = "发送方式:0自动;1手动")
@Schema(description = "发送方式:0自动;1手动")
private Integer sendMethod;
/**
* 提醒规则(到期天数)
*/
@ExcelAttribute(name = "提醒规则(到期天数)")
@Schema(description = "提醒规则(到期天数)")
private Integer remindRules;
/**
* 提醒对象(为空,则提醒到人,否则为角色idStr,逗号分隔)
*/
@Length(max = 50, message = "提醒对象(为空,则提醒到人,否则为角色idStr,逗号分隔)不能超过50个字符")
@ExcelAttribute(name = "提醒对象(为空,则提醒到人,否则为角色idStr,逗号分隔)", maxLength = 50)
@Schema(description = "提醒对象(为空,则提醒到人,否则为角色idStr,逗号分隔)")
private String remindObject;
/**
* 模板编码
*/
@Length(max = 20, message = "模板编码不能超过20个字符")
@ExcelAttribute(name = "模板编码", maxLength = 20)
@Schema(description = "模板编码", name = "modelCode")
private String modelCode;
/**
* 签名(例:安徽皖信)
*/
@Length(max = 32, message = "签名不能超过32个字符")
@ExcelAttribute(name = "签名", maxLength = 32)
@Schema(description = "签名(例:安徽皖信)", name = "signName")
private String signName;
/**
* 年假未休的发送日期(设计初始日期为'06-30'
*/
@Length(max = 10, message = "年假未休的发送日期不能超过10个字符")
@ExcelAttribute(name = "年假未休的发送日期", maxLength = 10)
@Schema(description = "年假未休的发送日期", name = "sendDate")
private String sendDate;
/**
* 备注
*/
@Schema(description = "备注", name = "remark")
private String remark;
/**
* 人员列表
**/
@TableField(exist = false)
private List<TBusWarningEmployee> empList;
}
package com.yifu.cloud.plus.v1.business.entity.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端短信发送记录表
*
* @author hgw
* @date 2021-08-23 16:27:34
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_warning_employee")
@Schema(description = "B端短信发送记录表")
public class TBusWarningEmployee extends Model<TBusWarningEmployee> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
@Schema(description = "主键", name = "id")
private Integer id;
/**
* 预警主表id
*/
@NotBlank(message = "预警主表id不能为空")
@Length(max = 32, message = "预警主表id不能超过32个字符")
@ExcelAttribute(name = "预警主表id", isNotEmpty = true, errorInfo = "预警主表id不能为空", maxLength = 32)
@Schema(description = "预警主表id")
private String warningId;
/**
* 客户id
*/
@Length(max = 32, message = "B端部门id不能超过32个字符")
@ExcelAttribute(name = "B端部门id", maxLength = 32)
@Schema(description = "B端部门id")
private String busDeptId;
/**
* 客户编码
*/
@Length(max = 32, message = "B端部门编码不能超过32个字符")
@ExcelAttribute(name = "B端部门编码", maxLength = 32)
@Schema(description = "B端部门编码")
private String busDeptCode;
/**
* 客户名称
*/
@Length(max = 50, message = "B端部门名称不能超过50个字符")
@ExcelAttribute(name = "B端部门名称", maxLength = 50)
@Schema(description = "B端部门名称")
private String busDeptName;
/**
* 姓名
*/
@Length(max = 32, message = "姓名不能超过32个字符")
@ExcelAttribute(name = "姓名", maxLength = 32)
@Schema(description = "姓名")
private String empName;
/**
* 身份证
*/
@Length(max = 50, message = "身份证不能超过50个字符")
@ExcelAttribute(name = "身份证", maxLength = 50)
@Schema(description = "身份证")
private String empIdcard;
/**
* 联系方式
*/
@Length(max = 50, message = "联系方式不能超过50个字符")
@ExcelAttribute(name = "联系方式", maxLength = 50)
@Schema(description = "联系方式")
private String empPhone;
/**
* 发送时间
*/
@ExcelAttribute(name = "发送时间")
@Schema(description = "发送时间")
private LocalDateTime sendDate;
/**
* 创建人
*/
@Length(max = 32, message = "创建人不能超过32个字符")
@ExcelAttribute(name = "创建人", maxLength = 32)
@Schema(description = "创建人")
private String createUser;
/**
* 发送状态:1等待回执;2:发送失败;3:发送成功;
*/
@Length(max = 1, message = "发送状态:1等待回执;2:发送失败;3:发送成功;不能超过1个字符")
@ExcelAttribute(name = "发送状态:1等待回执;2:发送失败;3:发送成功;", maxLength = 1)
@Schema(description = "发送状态:1等待回执;2:发送失败;3:发送成功;")
private String sendStatus;
/**
* 备注
*/
@Length(max = 100, message = "备注不能超过100个字符")
@ExcelAttribute(name = "备注", maxLength = 100)
@Schema(description = "备注")
private String remark;
/**
* 回执id
*/
@Length(max = 50, message = "回执id不能超过50个字符")
@ExcelAttribute(name = "回执id", maxLength = 50)
@Schema(description = "回执id")
private String bizId;
/**
* 短信状态是否回执
*/
@Length(max = 1, message = "短信状态是否回执不能超过1个字符")
@ExcelAttribute(name = "短信状态是否回执", maxLength = 1)
@Schema(description = "短信状态是否回执")
private String updateStatus;
/**
* 短信回执内容
*/
@Length(max = 100, message = "短信回执内容不能超过100个字符")
@ExcelAttribute(name = "短信回执内容", maxLength = 100)
@Schema(description = "短信回执内容")
private String message;
/**
* 证件类型(中文)
*/
@Length(max = 100, message = "证件类型(中文)不能超过100个字符")
@ExcelAttribute(name = "证件类型(中文)", maxLength = 100)
@Schema(description = "证件类型(中文)")
private String certType;
/**
* 未使用假期时长
*/
@ExcelAttribute(name = "未使用假期时长")
@Schema(description = "未使用假期时长")
private String notUsedVacationDuration;
/**
* 电信工号
*/
@ExcelAttribute(name = "电信工号", maxLength = 32)
@Schema(description = "电信工号")
private String businessTelecomNumber;
@TableField(exist = false)
@Schema(description = "发送时间起:例如2021-08-26")
private String sendDateStart;
@TableField(exist = false)
@Schema(description = "发送时间止:例如2021-08-26")
private String sendDateEnd;
}
package com.yifu.cloud.plus.v1.business.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* B端预警-系统消息表表
*
* @author hgw
* @date 2021-08-20 17:39:51
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_warning_message")
@Schema(description = "B端预警-系统消息表")
public class TBusWarningMessage extends Model<TBusWarningMessage> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 预警主表id
*/
@NotBlank(message = "预警主表id不能为空")
@Length(max = 32, message = "预警主表id不能超过32个字符")
@ExcelAttribute(name = "预警主表id", isNotEmpty = true, errorInfo = "预警主表id不能为空", maxLength = 32)
@Schema(description = "预警主表id")
private String warningId;
/**
* 提醒类型:0复审;1到期;2年假未休;3假期结束日期
*/
@ExcelAttribute(name = "提醒类型:0复审;1到期;2年假未休;3假期结束日期")
@Schema(description = "提醒类型:0复审;1到期;2年假未休;3假期结束日期")
private Integer remindType;
/**
* 内容
*/
@Length(max = 100, message = "内容不能超过100个字符")
@ExcelAttribute(name = "内容", maxLength = 100)
@Schema(description = "内容")
private String remindContent;
/**
* 提醒对象(角色idStr,逗号分隔)
*/
@Length(max = 50, message = "提醒对象(角色idStr,逗号分隔)不能超过50个字符")
@ExcelAttribute(name = "提醒对象(角色idStr,逗号分隔)", maxLength = 50)
@Schema(description = "提醒对象(角色idStr,逗号分隔)")
private String remindObject;
/**
* 备注
*/
@Length(max = 50, message = "备注不能超过50个字符")
@ExcelAttribute(name = "备注", maxLength = 50)
@Schema(description = "备注")
private String remark;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createDate;
}
package com.yifu.cloud.plus.v1.business.entity.vacation;
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.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* B端离职信息表
*
* @author hgw
* @date 2021-08-17 17:02:47
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bus_leave")
@Schema(description = "B端离职信息表")
public class TBusLeave extends Model<TBusLeave> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "")
private String id;
/**
* 电信工号
*/
@Length(max = 50, message = "电信工号不能超过50个字符")
@ExcelAttribute(name = "电信工号", maxLength = 50)
@Schema(description = "电信工号")
private String teleNo;
/**
* 姓名
*/
@Length(max = 50, message = "姓名不能超过50个字符")
@ExcelAttribute(name = "姓名", maxLength = 50)
@Schema(description = "姓名")
private String name;
/**
* 身份证
*/
@Length(max = 25, message = "身份证不能超过25个字符")
@ExcelAttribute(name = "身份证", maxLength = 25)
@Schema(description = "身份证")
private String idCard;
/**
* 岗位
*/
@Length(max = 50, message = "岗位不能超过50个字符")
@ExcelAttribute(name = "岗位", maxLength = 50)
@Schema(description = "岗位")
private String post;
/**
* 部门id
*/
@ExcelAttribute(name = "部门id")
@Schema(description = "部门id")
private Integer deptId;
/**
* 所属部门
*/
@Length(max = 100, message = "所属部门不能超过100个字符")
@ExcelAttribute(name = "所属部门", maxLength = 100)
@Schema(description = "所属部门")
private String deptName;
/**
* 部门tree
*/
@Length(max = 200, message = "部门tree不能超过200个字符")
@ExcelAttribute(name = "部门tree", maxLength = 200)
@Schema(description = "部门tree")
private String deptTreeLogo;
/**
* 离职日期
*/
@ExcelAttribute(name = "离职日期")
@Schema(description = "离职日期")
private LocalDate leaveDate;
/**
* 离岗日期
*/
@ExcelAttribute(name = "离岗日期")
@Schema(description = "离岗日期")
private LocalDate leavePostDate;
/**
* 离职原因
*/
@Length(max = 200, message = "离职原因不能超过200个字符")
@ExcelAttribute(name = "离职原因", maxLength = 200)
@Schema(description = "离职原因")
private String leaveReason;
/**
* 创建人id
*/
@NotBlank(message = "创建人id不能为空")
@Length(max = 32, message = "创建人id不能超过32个字符")
@ExcelAttribute(name = "创建人id", isNotEmpty = true, errorInfo = "创建人id不能为空", maxLength = 32)
@Schema(description = "创建人id")
private String createUserId;
/**
* 创建人姓名
*/
@Length(max = 50, message = "创建人姓名不能超过50个字符")
@ExcelAttribute(name = "创建人姓名", maxLength = 50)
@Schema(description = "创建人姓名")
private String createUserName;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 删除标志,0未删除
*/
@ExcelAttribute(name = "删除标志,0未删除")
@Schema(description = "删除标志,0未删除")
private Integer deleteFlag;
@TableField(exist = false)
@Schema(description = "离职日期开始")
private LocalDate leaveDateStart;
@TableField(exist = false)
@Schema(description = "离职日期截止")
private LocalDate leaveDateEnd;
@TableField(exist = false)
@Schema(description = "离岗日期开始")
private LocalDate leavePostStart;
@TableField(exist = false)
@Schema(description = "离岗日期截止")
private LocalDate leavePostEnd;
}
package com.yifu.cloud.plus.v1.business.entity.vacation;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 假勤信息表
* @TableName t_vacation_info
*/
@TableName(value ="t_vacation_info")
@Data
public class TVacationInfo implements Serializable {
/**
* 主键
*/
@TableId
private String id;
/**
* b端员工工号
*/
private String businessTelecomNumber;
/**
* 人员姓名
*/
private String empName;
/**
* 身份证号码
*/
private String empIdcard;
/**
* 部门id
*/
private Integer departId;
/**
* b端岗位
*/
private String businessPost;
/**
* 假勤类型(字典值)
*/
private String vacationType;
/**
* 假勤开始时间
*/
private LocalDateTime vacationStartTime;
/**
* 假勤结束时间
*/
private LocalDateTime vacationEndTime;
/**
* 假勤时长
*/
private BigDecimal vacationDuration;
/**
* 假勤实际结束时间
*/
private LocalDateTime acturalVacationEndTime;
/**
* 假勤事由
*/
private String vacationReason;
/**
* 创建人
*/
private String createUser;
/**
* 更新人
*/
private String updateUser;
/**
* 创建人id
*/
private Integer createUserId;
/**
* 更新人id
*/
private Integer updateUserId;
/**
* 假勤状态 0待休 1休假中 2到期待销假 3已销假
*/
private String vacationStatus;
/**
* 销假说明
*/
private String vacationNote;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 年假未休时长
*/
private BigDecimal vacationNotUsedDuration;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.entity.vacation;
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.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 假期监控表
* @TableName t_vacation_monitor
*/
@TableName(value ="t_vacation_monitor")
@Data
public class TVacationMonitor extends Model<TVacationMonitor> {
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 年份
*/
private String vacationYear;
/**
* 电信工号
*/
private String businessTelecomNumber;
/**
* 身份证号码
*/
private String empIdcard;
/**
* 姓名
*/
private String empName;
/**
* 部门id
*/
private Integer departId;
/**
* b端岗位
*/
private String businessPost;
/**
* 假期时长
*/
private BigDecimal vacationDuration;
/**
* 未使用假期时长
*/
private BigDecimal notUsedVacationDuration;
/**
* 入职时间
*/
private LocalDateTime businessEnjoinDate;
/**
* 休假状态 0未休完 1已休完
*/
private String vacationStatus;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.entity.vacation;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
/**
* 假期监控清零日志表
* @TableName t_vacation_monitor_clear_log
*/
@TableName(value ="t_vacation_monitor_clear_log")
@Data
public class TVacationMonitorClearLog extends Model<TVacationMonitorClearLog> {
/**
* 主键
*/
@TableId
private String id;
/**
* 清零说明
*/
private String clearNote;
/**
* 清零时长
*/
private BigDecimal clearDuration;
/**
* 年份
*/
private String vacationYear;
/**
* 清零人姓名
*/
private String clearUser;
/**
* 清零人id
*/
private Integer clearUserId;
/**
* 清零时间
*/
private LocalDateTime clearTime;
/**
* 年假监控id
*/
private Integer vacationMonitorId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.entity.vacation;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 假期规则配置
* @TableName t_vacation_rule_config
*/
@TableName(value ="t_vacation_rule_config")
@Data
public class TVacationRuleConfig extends Model<TVacationRuleConfig> {
/**
* 主键
*/
@TableId
private Integer id;
/**
* 假期类型 1年假
*/
private String type;
/**
* 是否自动发放假期时间 0否 1是
*/
private String vacationAutoInit;
/**
* 假期初始化时间
*/
private LocalDate vacationInitDate;
/**
* 时间刻度 1按小时(和TIME_VALUE字段一起保证一天可以被不同单位数量的时间转换)
*/
private String timeScale;
/**
* 以时间刻度为单位的时间值(和TIME_SCALE字段一起保证一天可以被不同单位数量的时间转换)
*/
private BigDecimal timeValue;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
/**
* 创建人id
*/
private String createUserId;
/**
* 最后更新人id
*/
private String updateUserId;
public static <T> T entityConvertToObj(T t, TVacationRuleConfig entity) {
BeanUtil.copyProperties(entity, t, CopyOptions.create().setIgnoreNullValue(true));
return t;
}
public static TVacationRuleConfig objConvertToEntity(Object obj) {
TVacationRuleConfig entity = new TVacationRuleConfig();
BeanUtil.copyProperties(obj, entity, CopyOptions.create().setIgnoreNullValue(true));
return entity;
}
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.business.query.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 当前部门统计查询条件
*
* @author: wangweiguo
* @date: 2021/9/16
*/
@Setter
@Getter
@ToString
public class TSalaryCurDepartQuery implements Serializable {
/**
* 部门id
*/
@Schema(description ="部门id")
@NotNull(message = "部门id不能为空")
private Integer departId;
/**
* 工资月份
*/
@Schema(description = "工资月份 yyyyMM", required = true)
@NotBlank(message = "查询条件: 工资月份不能为空")
private String salaryMonth;
/**
* 工资月份的上个月
*/
@Schema(description = "工资月份的上个月,前端无需传该参数")
private String lastSalaryMonth;
}
package com.yifu.cloud.plus.v1.business.query.salary;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
* @description: 部门薪资变动统计表 分页查询query
* @author: wangweiguo
* @date: 2021-09-06
*/
@Setter
@Getter
@ToString
public class TSalaryStatisticsDepartPageQuery extends TSalaryStatisticsDepartQuery {
/**
* 当前页码 默认为1
*/
@Schema(description ="当前页码 默认为1")
private long current = 1;
/**
* 每页数量 默认为10
*/
@Schema(description ="每页数量 默认为10")
private long size = 10;
/**
* 排序字段
*/
@Schema(description ="排序字段")
private List<OrderItem> orders;
}
package com.yifu.cloud.plus.v1.business.query.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @description: 部门薪资变动统计表 查询query
* @author: wangweiguo
* @date: 2021-09-06
*/
@Setter
@Getter
@ToString
public class TSalaryStatisticsDepartQuery implements Serializable {
/**
* 部门treeLogo
*/
@Schema(description ="部门treeLogo")
@NotBlank(message = "部门treeLogo不能为空")
private String treeLogo;
/**
* 工资月份
*/
@Schema(description = "工资月份 yyyyMM", required = true)
@NotBlank(message = "查询条件: 工资月份不能为空")
private String salaryMonth;
/**
* 部门等级
*/
@Schema(description = "部门等级")
@NotNull(message = "部门等级不能为空")
private Integer departLevel;
/**
* 工资月份的上个月
*/
@Schema(description = "工资月份的上个月,前端无需传该参数")
private String lastSalaryMonth;
/**
* 变动类型 0应发增加,
* 1应发减少,
* 2应发不变,
* 3实发增加,
* 4实发减少,
* 5实发不变,
* 6人均成本增加,
* 7人均成本减少,
* 8人均成本不变,
* 9扣款增加,
* 10扣款减少,
* 11扣款不变
*/
@Schema(description ="变动类型: 0应发增加, 1应发减少, 2应发不变, 3实发增加, 4实发减少, 5实发不变, 6人均成本增加, 7人均成本减少, 8人均成本不变, 9扣款增加, 10扣款减少, 11扣款不变")
private String salaryChangeType;
}
package com.yifu.cloud.plus.v1.business.query.salary;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
* 个人薪酬统计分页查询参数
*
* @author: wangweiguo
* @date: 2021/9/8
*/
@Getter
@Setter
@ToString
public class TSalaryStatisticsPersonalPageQuery extends TSalaryStatisticsPersonalQuery{
/**
* 当前页码 默认为1
*/
@Schema(description ="当前页码 默认为1")
private long current = 1;
/**
* 每页数量 默认为10
*/
@Schema(description ="每页数量 默认为10")
private long size = 10;
/**
* 排序字段
*/
@Schema(description ="排序字段")
private List<OrderItem> orders;
}
package com.yifu.cloud.plus.v1.business.query.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @description: 个人薪资变动统计表 查询query
* @author: wangweiguo
* @date: 2021-09-07
*/
@Setter
@Getter
@ToString
public class TSalaryStatisticsPersonalQuery implements Serializable {
/**
* 姓名
*/
@Schema(description ="姓名")
private String empName;
/**
* 身份证号
*/
@Schema(description ="身份证号")
private String empIdCard;
/**
* 部门treeLogo
*/
@Schema(description = "部门treeLogo, 查询个人薪酬的时候不能为空")
@NotBlank(message = "查询条件: 部门treeLogo不能为空")
private String treeLogo;
/**
* 电信工号
*/
@Schema(description ="电信工号")
private String teleNo;
/**
* 工资月份
*/
@Schema(description = "工资月份 yyyyMM")
@NotBlank(message = "查询条件: 工资月份不能为空")
private String salaryMonth;
/**
* 查询类型 0查询当前部门及下级 1仅查询当前部门, 默认为0
*/
@Schema(description = "查询类型 0查询当前部门及下级 1仅查询当前部门, 默认为0")
private String selectType = "0";
/**
* 工资月份的上个月
*/
@Schema(description = "工资月份的上个月,前端无需传该参数")
private String lastSalaryMonth;
/**
* 变动类型 0应发增加,
* 1应发减少,
* 2应发不变,
* 3实发增加,
* 4实发减少,
* 5实发不变,
* 6人均成本增加,
* 7人均成本减少,
* 8人均成本不变,
* 9扣款增加,
* 10扣款减少,
* 11扣款不变
*/
@Schema(description ="变动类型: 0应发增加, 1应发减少, 2应发不变, 3实发增加, 4实发减少, 5实发不变, 6人均成本增加, 7人均成本减少, 8人均成本不变, 9扣款增加, 10扣款减少, 11扣款不变")
private String salaryChangeType;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
import java.util.Set;
/**
* @Description: B端工资导出vo
* @Author: hgw
* @Date: 2021-9-13 17:12:16
* @return:
**/
@Data
public class BusSalaryExportVo {
@Schema(description = "工资详情,包含明细")
private List<TBusSalary> salaryList;
@Schema(description = "所有表头")
private Set<String> titleSet;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfig;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @Description: 工资原表识别导入vo
* @Author: hgw
* @Date: 2021-9-10 15:02:12
* @return:
**/
@Data
public class InitVo {
TBusSalaryConfig otherText;
Map<String, Integer> mustMap = new HashMap<>();
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @description: 接收简单的键值关系
* @author: hgw
* @create: 2021-9-6 15:28:21
**/
@Data
public class KeyValueVo {
/**
* 键
*
* @Author hgw
* @Date 2021-9-6 15:27:58
**/
@Schema(description = "键")
private String title;
/**
* 值
*
* @Author hgw
* @Date 2021-9-6 15:27:58
**/
@Schema(description = "值")
private String content;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfigTitleRes;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 工资原表识别导入vo
* @Author: hgw
* @Date: 2021/1/12 19:45
* @return:
**/
@Data
public class SalaryImportVo {
@Schema(description = "表格数据list")
private List<List<KeyValueVo>> contentList = new ArrayList<>();
@Schema(description = "配置关系")
private List<TBusSalaryConfigTitleRes> resList = new ArrayList<>();
@Schema(description = "部门id")
private String deptId;
@Schema(description = "工资月份")
private String salaryMonth;
@Schema(description = "保存类型:0:保存;1不保存")
private Integer saveType;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 部门薪资变动统计表 分页查询展示 vo
* @author: wangweiguo
* @date: 2021-09-06
*/
@Setter
@Getter
@ToString
public class TSalaryStatisticsDepartVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@Schema(description = "id")
private String id;
/**
* 部门名称
*/
@Schema(description = "部门名称")
private String departName;
/**
* 部门id
*/
@Schema(description = "部门id")
private Integer departId;
/**
* 部门treeLogo
*/
@Schema(description = "部门treeLogo")
private String treeLogo;
/**
* 工资月份-yyyyMM
*/
@Schema(description = "工资月份-yyyyMM")
private String salaryMonth;
/**
* 工资月份的上个月-yyyyMM
*/
@Schema(description = "工资月份的上个月-yyyyMM")
private String lastSalaryMonth;
@JsonIgnore
private String salaryChangeType;
/**
* 人数
*/
@Schema(description = "人数")
private Integer peopleNumber;
/**
* 人数差额
*/
@Schema(description = "人数差额")
private Integer peopleNumberOffset;
/**
* 人数差额标识 0减少 1不变 2增加
*/
@Schema(description = "人数差额标识 0减少 1不变 2增加")
private String peopleNumberFlag;
/**
* 薪酬应发 8位整数 2位小数
*/
@Schema(description = "薪酬应发")
private BigDecimal payableSalary;
/**
* 薪酬应发差额 8位整数 2位小数
*/
@Schema(description = "薪酬应发差额")
private BigDecimal payableSalaryOffset;
/**
* 薪酬应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "薪酬应发差额标识 0减少 1不变 2增加")
private String payableSalaryFlag;
/**
* 激励应发 8位整数 2位小数
*/
@Schema(description = "激励应发")
private BigDecimal payableIncentiveSalary;
/**
* 激励应发差额 8位整数 2位小数
*/
@Schema(description = "激励应发差额")
private BigDecimal payableIncentiveSalaryOffset;
/**
* 激励应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "激励应发差额标识 0减少 1不变 2增加")
private String payableIncentiveSalaryFlag;
/**
* 其他应发 8位整数 2位小数
*/
@Schema(description = "其他应发")
private BigDecimal payableOtherSalary;
/**
* 其他应发差额 8位整数 2位小数
*/
@Schema(description = "其他应发差额")
private BigDecimal payableOtherSalaryOffset;
/**
* 其他应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "其他应发差额标识 0减少 1不变 2增加")
private String payableOtherSalaryFlag;
/**
* 应发合计 9位整数 2位小数
*/
@Schema(description = "应发合计")
private BigDecimal payableTotal;
/**
* 应发合计差额 9位整数 2位小数
*/
@Schema(description = "应发合计差额")
private BigDecimal payableTotalOffset;
/**
* 应发合计差额标识 0减少 1不变 2增加
*/
@Schema(description = "应发合计差额标识 0减少 1不变 2增加")
private String payableTotalFlag;
/**
* 单位社保 6位整数 2位小数
*/
@Schema(description = "单位社保")
private BigDecimal companySocial;
/**
* 单位社保差额 6位整数 2位小数
*/
@Schema(description = "单位社保差额")
private BigDecimal companySocialOffset;
/**
* 单位社保差额标识 0减少 1不变 2增加
*/
@Schema(description = "单位社保差额标识 0减少 1不变 2增加")
private String companySocialFlag;
/**
* 单位公积金 6位整数 2位小数
*/
@Schema(description = "单位公积金")
private BigDecimal companyAccFund;
/**
* 单位公积金差额 6位整数 2位小数
*/
@Schema(description = "单位公积金差额")
private BigDecimal companyAccFundOffset;
/**
* 单位公积金差额标识 0减少 1不变 2增加
*/
@Schema(description = "单位公积金差额标识 0减少 1不变 2增加")
private String companyAccFundFlag;
/**
* 个人社保 6位整数 2位小数
*/
@Schema(description = "个人社保")
private BigDecimal personalSocial;
/**
* 个人社保差额 6位整数 2位小数
*/
@Schema(description = "个人社保差额")
private BigDecimal personalSocialOffset;
/**
* 个人社保差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人社保差额标识 0减少 1不变 2增加")
private String personalSocialFlag;
/**
* 个人公积金 6位整数 2位小数
*/
@Schema(description = "个人公积金")
private BigDecimal personalAccFund;
/**
* 个人公积金差额 6位整数 2位小数
*/
@Schema(description = "个人公积金差额")
private BigDecimal personalAccFundOffset;
/**
* 个人公积金差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人公积金差额标识 0减少 1不变 2增加")
private String personalAccFundFlag;
/**
* 个人所得税 6位整数 2位小数
*/
@Schema(description = "个人所得税")
private BigDecimal indIncomeTax;
/**
* 个人所得税差额 6位整数 2位小数
*/
@Schema(description = "个人所得税差额")
private BigDecimal indIncomeTaxOffset;
/**
* 个人所得税差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人所得税差额标识 0减少 1不变 2增加")
private String indIncomeTaxFlag;
/**
* 其他扣款 6位整数 2位小数
*/
@Schema(description = "其他扣款")
private BigDecimal otherDedutions;
/**
* 其他扣款差额 6位整数 2位小数
*/
@Schema(description = "其他扣款差额")
private BigDecimal otherDedutionOffset;
/**
* 其他扣款差额标识 0减少 1不变 2增加
*/
@Schema(description = "其他扣款差额标识 0减少 1不变 2增加")
private String otherDedutionFalg;
/**
* 扣款合计 7位整数 2位小数
*/
@Schema(description = "扣款合计")
private BigDecimal dedutionTotal;
/**
* 扣款合计差额 7位整数 2位小数
*/
@Schema(description = "扣款合计差额")
private BigDecimal dedutionTotalOffset;
/**
* 扣款合计差额标识 0减少 1不变 2增加
*/
@Schema(description = "扣款合计差额标识 0减少 1不变 2增加")
private String dedutionTotalFlag;
/**
* 实发工资 8位整数 2位小数
*/
@Schema(description = "实发工资")
private BigDecimal actualSalary;
/**
* 实发工资差额 8位整数 2位小数
*/
@Schema(description = "实发工资差额")
private BigDecimal actualSalaryOffset;
/**
* 实发工资差额标识 0减少 1不变 2增加
*/
@Schema(description = "实发工资差额标识 0减少 1不变 2增加")
private String actualSalaryFlag;
/**
* 人均成本 8位整数 2位小数
*/
@Schema(description = "人均成本")
private BigDecimal perCapita;
/**
* 人均成本差额 8位整数 2位小数
*/
@Schema(description = "人均成本差额")
private BigDecimal perCapitaOffset;
/**
* 人均成本差额标识 0减少 1不变 2增加
*/
@Schema(description = "人均成本差额标识 0减少 1不变 2增加")
private String perCapitaFlag;
@JsonIgnore
private List<TSalaryStatisticsDepartVO> children;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description: 个人薪资变动统计表 分页查询展示 vo
* @author: wangweiguo
* @date: 2021-09-07
*/
@Setter
@Getter
@ToString
public class TSalaryStatisticsPersonalVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@Schema(description = "id")
private String id;
/**
* 电信工号
*/
@Schema(description = "电信工号")
private String teleNo;
/**
* 身份证号
*/
@Schema(description = "身份证号")
private String empIdCard;
/**
* 姓名
*/
@Schema(description = "姓名")
private String empName;
/**
* 部门treeLogo
*/
@Schema(description = "部门treeLogo")
private String treeLogo;
/**
* 工资月份-yyyyMM
*/
@Schema(description = "工资月份-yyyyMM")
private String salaryMonth;
/**
* 薪酬应发 8位整数 2位小数
*/
@Schema(description = "薪酬应发")
private BigDecimal payableSalary;
/**
* 薪酬应发差额 8位整数 2位小数
*/
@Schema(description = "薪酬应发差额")
private BigDecimal payableSalaryOffset;
/**
* 薪酬应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "薪酬应发差额标识 0减少 1不变 2增加")
private String payableSalaryFlag;
/**
* 激励应发 8位整数 2位小数
*/
@Schema(description = "激励应发")
private BigDecimal payableIncentiveSalary;
/**
* 激励应发差额 8位整数 2位小数
*/
@Schema(description = "激励应发差额")
private BigDecimal payableIncentiveSalaryOffset;
/**
* 激励应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "激励应发差额标识 0减少 1不变 2增加")
private String payableIncentiveSalaryFlag;
/**
* 其他应发 8位整数 2位小数
*/
@Schema(description = "其他应发")
private BigDecimal payableOtherSalary;
/**
* 其他应发差额 8位整数 2位小数
*/
@Schema(description = "其他应发差额")
private BigDecimal payableOtherSalaryOffset;
/**
* 其他应发差额标识 0减少 1不变 2增加
*/
@Schema(description = "其他应发差额标识 0减少 1不变 2增加")
private String payableOtherSalaryFlag;
/**
* 应发合计 9位整数 2位小数
*/
@Schema(description = "应发合计")
private BigDecimal payableTotal;
/**
* 应发合计差额 9位整数 2位小数
*/
@Schema(description = "应发合计差额")
private BigDecimal payableTotalOffset;
/**
* 应发合计差额标识 0减少 1不变 2增加
*/
@Schema(description = "应发合计差额标识 0减少 1不变 2增加")
private String payableTotalFlag;
/**
* 单位社保 6位整数 2位小数
*/
@Schema(description = "单位社保")
private BigDecimal companySocial;
/**
* 单位社保差额 6位整数 2位小数
*/
@Schema(description = "单位社保差额")
private BigDecimal companySocialOffset;
/**
* 单位社保差额标识 0减少 1不变 2增加
*/
@Schema(description = "单位社保差额标识 0减少 1不变 2增加")
private String companySocialFlag;
/**
* 单位公积金 6位整数 2位小数
*/
@Schema(description = "单位公积金")
private BigDecimal companyAccFund;
/**
* 单位公积金差额 6位整数 2位小数
*/
@Schema(description = "单位公积金差额")
private BigDecimal companyAccFundOffset;
/**
* 单位公积金差额标识 0减少 1不变 2增加
*/
@Schema(description = "单位公积金差额标识 0减少 1不变 2增加")
private String companyAccFundFlag;
/**
* 个人社保 6位整数 2位小数
*/
@Schema(description = "个人社保")
private BigDecimal personalSocial;
/**
* 个人社保差额 6位整数 2位小数
*/
@Schema(description = "个人社保差额")
private BigDecimal personalSocialOffset;
/**
* 个人社保差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人社保差额标识 0减少 1不变 2增加")
private String personalSocialFlag;
/**
* 个人公积金 6位整数 2位小数
*/
@Schema(description = "个人公积金")
private BigDecimal personalAccFund;
/**
* 个人公积金差额 6位整数 2位小数
*/
@Schema(description = "个人公积金差额")
private BigDecimal personalAccFundOffset;
/**
* 个人公积金差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人公积金差额标识 0减少 1不变 2增加")
private String personalAccFundFlag;
/**
* 个人所得税 6位整数 2位小数
*/
@Schema(description = "个人所得税")
private BigDecimal indIncomeTax;
/**
* 个人所得税差额 6位整数 2位小数
*/
@Schema(description = "个人所得税差额")
private BigDecimal indIncomeTaxOffset;
/**
* 个人所得税差额标识 0减少 1不变 2增加
*/
@Schema(description = "个人所得税差额标识 0减少 1不变 2增加")
private String indIncomeTaxFlag;
/**
* 其他扣款 6位整数 2位小数
*/
@Schema(description = "其他扣款")
private BigDecimal otherDedutions;
/**
* 其他扣款差额 6位整数 2位小数
*/
@Schema(description = "其他扣款差额")
private BigDecimal otherDedutionOffset;
/**
* 其他扣款差额标识 0减少 1不变 2增加
*/
@Schema(description = "其他扣款差额标识 0减少 1不变 2增加")
private String otherDedutionFalg;
/**
* 扣款合计 7位整数 2位小数
*/
@Schema(description = "扣款合计")
private BigDecimal dedutionTotal;
/**
* 扣款合计差额 7位整数 2位小数
*/
@Schema(description = "扣款合计差额")
private BigDecimal dedutionTotalOffset;
/**
* 扣款合计差额标识 0减少 1不变 2增加
*/
@Schema(description = "扣款合计差额标识 0减少 1不变 2增加")
private String dedutionTotalFlag;
/**
* 实发工资 8位整数 2位小数
*/
@Schema(description = "实发工资")
private BigDecimal actualSalary;
/**
* 实发工资差额 8位整数 2位小数
*/
@Schema(description = "实发工资差额")
private BigDecimal actualSalaryOffset;
/**
* 实发工资差额标识 0减少 1不变 2增加
*/
@Schema(description = "实发工资差额标识 0减少 1不变 2增加")
private String actualSalaryFlag;
}
package com.yifu.cloud.plus.v1.business.vo.salary;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 部门合计VO
*
* @author: wangweiguo
* @date: 2021/9/7
*/
@Setter
@Getter
@ToString
public class TSalaryTotalVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 应发合计 9位整数 2位小数
*/
@Schema(description ="合计:应发合计")
private BigDecimal payableTotal;
/**
* 应发合计差额 9位整数 2位小数
*/
@Schema(description ="合计:应发合计差额")
private BigDecimal payableTotalOffset;
/**
* 应发合计差额标识 0减少 1不变 2增加
*/
@Schema(description ="应发合计差额标识 0减少 1不变 2增加")
private String payableTotalFlag;
/**
* 实发工资 8位整数 2位小数
*/
@Schema(description ="合计:实发工资")
private BigDecimal actualSalary;
/**
* 实发工资差额 8位整数 2位小数
*/
@Schema(description ="合计:实发工资差额")
private BigDecimal actualSalaryOffset;
/**
* 实发工资差额标识 0减少 1不变 2增加
*/
@Schema(description ="实发工资差额标识 0减少 1不变 2增加")
private String actualSalaryFlag;
/**
* 人均成本 8位整数 2位小数
*/
@Schema(description ="合计:人均成本")
private BigDecimal perCapita;
/**
* 人均成本差额 8位整数 2位小数
*/
@Schema(description ="合计:人均成本差额")
private BigDecimal perCapitaOffset;
/**
* 人均成本差额标识 0减少 1不变 2增加
*/
@Schema(description ="人均成本差额标识 0减少 1不变 2增加")
private String perCapitaFlag;
}
...@@ -22,6 +22,11 @@ ...@@ -22,6 +22,11 @@
<groupId>com.yifu.cloud.plus.v1</groupId> <groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-seata</artifactId> <artifactId>yifu-common-seata</artifactId>
</dependency>--> </dependency>-->
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-business-api</artifactId>
<version>1.0.0</version>
</dependency>
<!--选配: orm 模块--> <!--选配: orm 模块-->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
......
package com.yifu.cloud.plus.v1.business.controller.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfig;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigService;
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.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* B端-薪资配置
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tbussalaryconfig")
@Tag(name = "B端-薪资配置")
public class TBusSalaryConfigController {
private final TBusSalaryConfigService tBusSalaryConfigService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tBusSalaryConfig B端-薪资配置
* @return
*/
@Operation(summary = "简单分页查询")
@GetMapping("/page")
public R<IPage<TBusSalaryConfig>> getTBusSalaryConfigPage(Page<TBusSalaryConfig> page, TBusSalaryConfig tBusSalaryConfig) {
return new R<>(tBusSalaryConfigService.getTBusSalaryConfigPage(page, tBusSalaryConfig));
}
/**
* @Description: 列表(专为前端展现所用)
* @Author: hgw
* @Date: 2021/9/13 16:50
* @return:
**/
@Operation(description = "列表(专为前端展现所用)")
@GetMapping("/getConfigList")
public R<List<TBusSalaryConfig>> getConfigList() {
return new R<>(tBusSalaryConfigService.getConfigList());
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation(description = "id查询")
@GetMapping("/{id}")
public R<TBusSalaryConfig> getById(@PathVariable("id") String id) {
return new R<>(tBusSalaryConfigService.getById(id));
}
/**
* 新增记录
*
* @param tBusSalaryConfig
* @return R
*/
@Operation(description = "新增(yifu-hro-business:tbussalaryconfig_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfig_add')")
public R<Boolean> save(@Valid @RequestBody TBusSalaryConfig tBusSalaryConfig) {
return new R<>(tBusSalaryConfigService.save(tBusSalaryConfig));
}
/**
* 修改记录
*
* @param tBusSalaryConfig
* @return R
*/
@Operation(description = "修改(yifu-hro-business:tbussalaryconfig_edit)")
@SysLog("修改B端-薪资配置")
@PutMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfig_edit')")
public R<Boolean> update(@RequestBody TBusSalaryConfig tBusSalaryConfig) {
return new R<>(tBusSalaryConfigService.updateById(tBusSalaryConfig));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(description = "删除(yifu-hro-business:tbussalaryconfig_del)")
@SysLog("删除B端-薪资配置")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfig_del')")
public R<Boolean> removeById(@PathVariable String id) {
return new R<>(tBusSalaryConfigService.removeById(id));
}
}
package com.yifu.cloud.plus.v1.business.controller.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfigTitleRes;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigTitleResService;
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.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* B端-原表表头与配置关联表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tbussalaryconfigtitleres")
@Tag(name = "B端-原表表头与配置关联表")
public class TBusSalaryConfigTitleResController {
private final TBusSalaryConfigTitleResService tBusSalaryConfigTitleResService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tBusSalaryConfigTitleRes B端-原表表头与配置关联表
* @return
*/
@Operation(summary = "简单分页查询")
@GetMapping("/page")
public R<IPage<TBusSalaryConfigTitleRes>> getTBusSalaryConfigTitleResPage(Page<TBusSalaryConfigTitleRes> page, TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes) {
return new R<>(tBusSalaryConfigTitleResService.getTBusSalaryConfigTitleResPage(page, tBusSalaryConfigTitleRes));
}
/**
* 获取list
* @return
*/
@Operation(summary = "获取之前保存的list,deptId必填")
@GetMapping("/getResListByDeptId")
public R<List<TBusSalaryConfigTitleRes>> getResListByDeptId(@RequestParam Integer deptId) {
return new R<>(tBusSalaryConfigTitleResService.getResListByDeptId(deptId));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation(summary = "id查询")
@GetMapping("/{id}")
public R<TBusSalaryConfigTitleRes> getById(@PathVariable("id") String id) {
return new R<>(tBusSalaryConfigTitleResService.getById(id));
}
/**
* 新增记录
*
* @param tBusSalaryConfigTitleRes
* @return R
*/
@Operation(summary = "新增(yifu-hro-business:tbussalaryconfigtitleres_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfigtitleres_add')")
public R<Boolean> save(@Valid @RequestBody TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes) {
return new R<>(tBusSalaryConfigTitleResService.save(tBusSalaryConfigTitleRes));
}
/**
* 修改记录
*
* @param tBusSalaryConfigTitleRes
* @return R
*/
@Operation(summary = "修改(yifu-hro-business:tbussalaryconfigtitleres_edit)")
@SysLog("修改B端-原表表头与配置关联表")
@PutMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfigtitleres_edit')")
public R<Boolean> update(@RequestBody TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes) {
return new R<>(tBusSalaryConfigTitleResService.updateById(tBusSalaryConfigTitleRes));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(summary = "删除(yifu-hro-business:tbussalaryconfigtitleres_del)")
@SysLog("删除B端-原表表头与配置关联表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryconfigtitleres_del')")
public R<Boolean> removeById(@PathVariable String id) {
return new R<>(tBusSalaryConfigTitleResService.removeById(id));
}
}
package com.yifu.cloud.plus.v1.business.controller.salary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalary;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryService;
import com.yifu.cloud.plus.v1.business.vo.salary.BusSalaryExportVo;
import com.yifu.cloud.plus.v1.business.vo.salary.SalaryImportVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* B端-薪酬主表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tbussalary")
@Tag(name = "B端-薪酬主表")
public class TBusSalaryController {
private final TBusSalaryService tBusSalaryService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tBusSalary B端-薪酬主表
* @return
*/
@Operation(summary = "简单分页查询")
@GetMapping("/page")
public R<IPage<TBusSalary>> getTBusSalaryPage(Page<TBusSalary> page, TBusSalary tBusSalary) {
return new R<>(tBusSalaryService.getTBusSalaryPage(page, tBusSalary));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation(summary = "id查询")
@GetMapping("/{id}")
public R<TBusSalary> getById(@PathVariable("id") String id) {
return new R<>(tBusSalaryService.getById(id));
}
/**
* 新增记录
*
* @param tBusSalary
* @return R
*/
@Operation(summary = "新增(yifu-hro-business:tbussalary_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalary_add')")
public R<Boolean> save(@Valid @RequestBody TBusSalary tBusSalary) {
return new R<>(tBusSalaryService.save(tBusSalary));
}
/**
* 修改记录
*
* @param tBusSalary
* @return R
*/
@Operation(summary = "修改(yifu-hro-business:tbussalary_edit)")
@SysLog("修改B端-薪酬主表")
@PutMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalary_edit')")
public R<Boolean> update(@RequestBody TBusSalary tBusSalary) {
return new R<>(tBusSalaryService.updateById(tBusSalary));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(summary = "删除(yifu-hro-business:tbussalary_del)")
@SysLog("删除B端-薪酬主表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalary_del')")
public R<Boolean> removeById(@PathVariable String id) {
return new R<>(tBusSalaryService.removeById(id));
}
/**
* 通过id删除一条记录
*
* @return R
*/
@Operation(summary = "删除-根据部门与月份(yifu-hro-business:tbussalary_delete)")
@SysLog("删除B端-薪酬主表-根据部门与月份")
@PostMapping("/deleteByDeptAndMonth")
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalary_delete')")
public R<String> deleteByDeptAndMonth(String idStr, Integer deptId, String salaryMonth) {
if (Common.isEmpty(idStr) && Common.isEmpty(deptId)) {
return R.failed("请传参!");
}
int count = 0;
if (Common.isNotNull(idStr)) {
String[] idArr = idStr.split(",");
for (String id : idArr) {
if (tBusSalaryService.removeById(id)) {
count++;
}
}
} else if (Common.isNotNull(deptId) && Common.isNotNull(salaryMonth)) {
TBusSalary busSalary = new TBusSalary();
busSalary.setDeptId(deptId);
busSalary.setSalaryMonth(salaryMonth);
QueryWrapper<TBusSalary> queryWrapperSa = new QueryWrapper<>();
queryWrapperSa.setEntity(busSalary);
count = (int) tBusSalaryService.count(queryWrapperSa);
tBusSalaryService.remove(queryWrapperSa);
}
if (count == 0) {
return R.failed("无数据可删除!");
}
return R.ok("已删除:" + count + "条数据!");
}
/**
* @param salaryVo
* @Description: 导入
* @Author: hgw/
* @Date: 2021/9/6 16:23
* @return: com.yifu.cloud.v1.common.core.util.R<java.lang.String>
**/
@Operation(summary = "导入表格数据:contentList:表格数据list;deptId:部门id;salaryMonth:工资月份;resList:配置关系list;saveType:保存类型:0:保存;1不保存")
@SysLog("B端导入表格数据")
@PostMapping("/importBusSalary")
public R<List<ErrorMessage>> importBusSalary(@RequestBody SalaryImportVo salaryVo) {
return tBusSalaryService.importBusSalary(salaryVo);
}
/**
* 简单分页查询
* @param tBusSalary B端-薪酬主表
*/
@Operation(summary = "导出")
@PostMapping("/doExport")
public R<BusSalaryExportVo> doExport(@RequestBody TBusSalary tBusSalary) {
return new R<>(tBusSalaryService.doExport(tBusSalary));
}
}
package com.yifu.cloud.plus.v1.business.controller.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryItem;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryItemService;
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.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* B端-薪酬明细表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tbussalaryitem")
@Tag(name = "B端-薪酬明细表")
public class TBusSalaryItemController {
private final TBusSalaryItemService tBusSalaryItemService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tBusSalaryItem B端-薪酬明细表
* @return
*/
@Operation(summary = "简单分页查询")
@GetMapping("/page")
public R<IPage<TBusSalaryItem>> getTBusSalaryItemPage(Page<TBusSalaryItem> page, TBusSalaryItem tBusSalaryItem) {
return new R<>(tBusSalaryItemService.getTBusSalaryItemPage(page, tBusSalaryItem));
}
/**
* @param salaryId
* @Description: 工资详情
* @Author: hgw
* @Date: 2021/9/15 15:18
* @return: com.yifu.cloud.v1.common.core.util.R<com.baomidou.mybatisplus.core.metadata.IPage < com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryItem>>
**/
@Operation(summary = "工资详情")
@GetMapping("/getListBySalaryId")
public R<List<TBusSalaryItem>> getListBySalaryId(@RequestParam String salaryId) {
return new R<>(tBusSalaryItemService.getListBySalaryId(salaryId));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation(summary = "id查询")
@GetMapping("/{id}")
public R<TBusSalaryItem> getById(@PathVariable("id") String id) {
return new R<>(tBusSalaryItemService.getById(id));
}
/**
* 新增记录
*
* @param tBusSalaryItem
* @return R
*/
@Operation(summary = "新增(yifu-hro-business:tbussalaryitem_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryitem_add')")
public R<Boolean> save(@Valid @RequestBody TBusSalaryItem tBusSalaryItem) {
return new R<>(tBusSalaryItemService.save(tBusSalaryItem));
}
/**
* 修改记录
*
* @param tBusSalaryItem
* @return R
*/
@Operation(summary = "修改(yifu-hro-business:tbussalaryitem_edit)")
@SysLog("修改B端-薪酬明细表")
@PutMapping
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryitem_edit')")
public R<Boolean> update(@RequestBody TBusSalaryItem tBusSalaryItem) {
return new R<>(tBusSalaryItemService.updateById(tBusSalaryItem));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(summary = "删除(yifu-hro-business:tbussalaryitem_del)")
@SysLog("删除B端-薪酬明细表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('yifu-hro-business:tbussalaryitem_del')")
public R<Boolean> removeById(@PathVariable String id) {
return new R<>(tBusSalaryItemService.removeById(id));
}
}
package com.yifu.cloud.plus.v1.business.controller.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yifu.cloud.plus.v1.business.query.salary.*;
import com.yifu.cloud.plus.v1.business.service.salary.TSalaryStatisticsDepartService;
import com.yifu.cloud.plus.v1.business.service.salary.TSalaryStatisticsPersonalService;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsPersonalVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 薪资变动统计表 controller
* @author: wangweiguo
* @date: 2021-09-06
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/salaryStatistics")
@Tag(name = "薪资变动统计表相关api")
public class TSalaryStatisticsController {
private final TSalaryStatisticsDepartService salaryStatisticsDepartService;
private final TSalaryStatisticsPersonalService salaryStatisticsPersonalService;
/**
* 部门统计分页查询: 部门统计条件分页查询
* @param query 部门统计查询条件
* @return: R<IPage<TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
@Operation(summary ="部门统计分页查询: 部门统计条件分页查询")
@GetMapping("/depart/getListByPage")
public R<IPage<TSalaryStatisticsDepartVO>> getDepartListByPage(TSalaryStatisticsDepartPageQuery query) {
return this.salaryStatisticsDepartService.getListByPage(query);
}
/**
* 部门统计列表查询: 部门统计条件查询
* @param query 部门统计查询条件
* @return: R<List<TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
@Operation(summary ="部门统计列表查询: 部门统计条件查询")
@GetMapping("/depart/getList")
public R<List<TSalaryStatisticsDepartVO>> getDepartList(TSalaryStatisticsDepartQuery query) {
return this.salaryStatisticsDepartService.getList(query);
}
/**
* 部门合计: 条件查询部门合计
* @param query 部门统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Operation(summary ="部门合计: 条件查询部门合计")
@GetMapping("/depart/getSumDepartByParams")
public R<TSalaryTotalVO> getSumDepartByParams(TSalaryStatisticsDepartQuery query) {
query.setDepartLevel(null);
return this.salaryStatisticsDepartService.getSumDepartByParams(query);
}
/**
* 部门统计查询: 根据部门id查询当前部门合计
* @param query 单个部门统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
@Operation(summary ="部门统计查询: 根据部门id查询当前部门合计")
@GetMapping("/depart/getCurDepartSumData")
public R<TSalaryTotalVO> getCurDepartSumData(TSalaryCurDepartQuery query) {
return this.salaryStatisticsDepartService.getCurDepartSumData(query);
}
/**
* 查询: 根据部门id查询当前部门统计数据
* @param query 部门统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
@Operation(summary ="部门统计查询: 根据部门id查询当前部门统计数据")
@GetMapping("/depart/getCurDepartData")
public R<TSalaryStatisticsDepartVO> getCurDepartData(TSalaryCurDepartQuery query) {
return this.salaryStatisticsDepartService.getCurDepartData(query);
}
/**
* 分页查询: 条件分页查询
*
* @param query 单个部门统计查询条件
* @return: R<TSalaryStatisticsDepartVO>
* @author: wangweiguo
* @date: 2021-09-06
*/
@Operation(summary ="分页查询: 条件分页查询")
@GetMapping("/person/getListByPage")
public R<IPage<TSalaryStatisticsPersonalVO>> getPersonListByPage(TSalaryStatisticsPersonalPageQuery query) {
return this.salaryStatisticsPersonalService.getListByPage(query);
}
/**
* 个人统计列表查询: 个人统计条件查询
* @param query 个人统计查询条件
* @return: R<List<TSalaryStatisticsPersonalVO>>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Operation(summary ="个人统计列表查询: 个人统计条件查询")
@GetMapping("/person/getList")
public R<List<TSalaryStatisticsPersonalVO>> getPersonList(TSalaryStatisticsPersonalQuery query) {
return this.salaryStatisticsPersonalService.getList(query);
}
/**
* 个人合计: 条件查询个人合计
* @param query 个人统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Operation(summary ="个人合计: 条件查询个人合计")
@GetMapping("/person/getSumPersonByParams")
public R<TSalaryTotalVO> getSumPersonByParams(TSalaryStatisticsPersonalQuery query) {
return this.salaryStatisticsPersonalService.getSumPersonalByParams(query);
}
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
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.business.entity.salary.TBusSalaryConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* B端-薪资配置
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Mapper
public interface TBusSalaryConfigMapper extends BaseMapper<TBusSalaryConfig> {
/**
* B端-薪资配置简单分页查询
*
* @param tBusSalaryConfig B端-薪资配置
* @return
*/
IPage<TBusSalaryConfig> getTBusSalaryConfigPage(Page<TBusSalaryConfig> page, @Param("tBusSalaryConfig") TBusSalaryConfig tBusSalaryConfig);
List<TBusSalaryConfig> getConfigList();
/**
* @Description: 获取必要列的list
* @Author: hgw
* @Date: 2021/9/10 14:52
* @return: java.util.List<java.lang.String>
**/
List<String> getMustList();
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
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.business.entity.salary.TBusSalaryConfigTitleRes;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* B端-原表表头与配置关联表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Mapper
public interface TBusSalaryConfigTitleResMapper extends BaseMapper<TBusSalaryConfigTitleRes> {
/**
* B端-原表表头与配置关联表简单分页查询
*
* @param tBusSalaryConfigTitleRes B端-原表表头与配置关联表
* @return
*/
IPage<TBusSalaryConfigTitleRes> getTBusSalaryConfigTitleResPage(Page<TBusSalaryConfigTitleRes> page, @Param("tBusSalaryConfigTitleRes") TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes);
/**
* @param deptId
* @Description: list
* @Author: hgw
* @Date: 2021/9/10 16:35
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryConfigTitleRes>
**/
List<TBusSalaryConfigTitleRes> getResListByDeptId(@Param("deptId") Integer deptId);
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
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.business.entity.salary.TBusSalaryItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* B端-薪酬明细表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Mapper
public interface TBusSalaryItemMapper extends BaseMapper<TBusSalaryItem> {
/**
* B端-薪酬明细表简单分页查询
*
* @param tBusSalaryItem B端-薪酬明细表
* @return
*/
IPage<TBusSalaryItem> getTBusSalaryItemPage(Page<TBusSalaryItem> page, @Param("tBusSalaryItem") TBusSalaryItem tBusSalaryItem);
List<TBusSalaryItem> getListBySalaryId(@Param("salaryId") String salaryId);
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
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.business.entity.salary.TBusSalary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* B端-薪酬主表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Mapper
public interface TBusSalaryMapper extends BaseMapper<TBusSalary> {
/**
* B端-薪酬主表简单分页查询
*
* @param tBusSalary B端-薪酬主表
* @return
*/
IPage<TBusSalary> getTBusSalaryPage(Page<TBusSalary> page, @Param("tBusSalary") TBusSalary tBusSalary);
List<TBusSalary> doExport(@Param("idList") List<String> idList, @Param("tBusSalary") TBusSalary tBusSalary);
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsDepart;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryCurDepartQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartQuery;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description: 部门薪资变动统计表 mapper
* @Entity com.yifu.cloud.v1.hrobusiness.api.entity.salary.TSalaryStatisticsDepart
* @author: wangweiguo
* @date: 2021-09-06
*/
@Mapper
public interface TSalaryStatisticsDepartMapper extends BaseMapper<TSalaryStatisticsDepart> {
Page<TSalaryStatisticsDepartVO> getListByPage(Page<TSalaryStatisticsDepartVO> page, @Param("query") TSalaryStatisticsDepartPageQuery query);
List<TSalaryStatisticsDepartVO> getListByPage(@Param("query") TSalaryStatisticsDepartQuery query);
TSalaryTotalVO sumSalaryDepart(@Param("query") TSalaryStatisticsDepartQuery query);
TSalaryTotalVO getCurDepartSumData(@Param("query") TSalaryCurDepartQuery query);
TSalaryStatisticsDepartVO getCurDepartData(@Param("query") TSalaryCurDepartQuery query);
}
package com.yifu.cloud.plus.v1.business.mapper.salary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsPersonal;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalQuery;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsPersonalVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description: 个人薪资变动统计表 mapper
* @Entity com.yifu.cloud.v1.hrobusiness.api.entity.salary.TSalaryStatisticsPersonal
* @author: wangweiguo
* @date: 2021-09-07
*/
@Mapper
public interface TSalaryStatisticsPersonalMapper extends BaseMapper<TSalaryStatisticsPersonal> {
Page<TSalaryStatisticsPersonalVO> getListByPage(Page<TSalaryStatisticsPersonalVO> page, @Param("query") TSalaryStatisticsPersonalPageQuery query);
List<TSalaryStatisticsPersonalVO> getListByPage(@Param("query") TSalaryStatisticsPersonalQuery query);
TSalaryTotalVO sumSalaryPerson(@Param("query") TSalaryStatisticsPersonalQuery query);
}
package com.yifu.cloud.plus.v1.business.mapper.system;
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.business.entity.system.TBusDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* B端部门表
*
* @author hgw
* @date 2021-08-10 10:38:44
*/
@Mapper
public interface TBusDeptMapper extends BaseMapper<TBusDept> {
/**
* B端部门表简单分页查询
*
* @param tBusDept B端部门表
* @return
*/
IPage<TBusDept> getTBusDeptPage(Page<TBusDept> page, @Param("tBusDept") TBusDept tBusDept);
List<TBusDept> getTBusDeptList(@Param("tBusDept") TBusDept tBusDept);
List<TBusDept> getTBusDeptListAsso(@Param("tBusDept") TBusDept tBusDept);
List<TBusDept> getTBusDeptSubList(@Param("id") int id, @Param("treeLogo") String treeLogo);
List<TBusDept> getDeptByName(@Param("id") Integer id, @Param("name") String name);
/**
* @param oldLogo
* @param newLogo
* @Description: 批量更新子集的treeLogo
* @Author: hgw
* @Date: 2021/8/13 17:05
* @return: int
**/
int updateAllTreeLogo(@Param("oldLogo") String oldLogo, @Param("newLogo") String newLogo);
}
package com.yifu.cloud.plus.v1.business.service.salary;
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.business.entity.salary.TBusSalaryConfig;
import java.util.List;
import java.util.Map;
/**
* B端-薪资配置
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
public interface TBusSalaryConfigService extends IService<TBusSalaryConfig> {
/**
* B端-薪资配置简单分页查询
*
* @param tBusSalaryConfig B端-薪资配置
* @return
*/
IPage<TBusSalaryConfig> getTBusSalaryConfigPage(Page<TBusSalaryConfig> page, TBusSalaryConfig tBusSalaryConfig);
/**
* @Description: 列表
* @Author: hgw
* @Date: 2021/9/13 16:31
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryConfig>
**/
List<TBusSalaryConfig> getConfigList();
/**
* @param
* @Description: 必填项map
* @Author: hgw
* @Date: 2021/9/13 16:30
* @return: java.util.Map<java.lang.String, java.lang.Integer>
**/
Map<String, Integer> getMustMap();
}
package com.yifu.cloud.plus.v1.business.service.salary;
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.business.entity.salary.TBusSalaryConfigTitleRes;
import com.yifu.cloud.plus.v1.business.entity.system.TBusDept;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import java.util.List;
/**
* B端-原表表头与配置关联表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
public interface TBusSalaryConfigTitleResService extends IService<TBusSalaryConfigTitleRes> {
/**
* B端-原表表头与配置关联表简单分页查询
*
* @param tBusSalaryConfigTitleRes B端-原表表头与配置关联表
* @return
*/
IPage<TBusSalaryConfigTitleRes> getTBusSalaryConfigTitleResPage(Page<TBusSalaryConfigTitleRes> page
, TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes);
/**
* @param deptId
* @Description: 获取list
* @Author: hgw
* @Date: 2021/9/10 16:37
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryConfigTitleRes>
**/
List<TBusSalaryConfigTitleRes> getResListByDeptId(Integer deptId);
/**
* @param mTitleConfig
* @param saveType
* @param user
* @param dept
* @Description: 保存或更新-配置
* @Author: hgw
* @Date: 2021/9/8 18:22
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryConfigTitleRes>
**/
List<TBusSalaryConfigTitleRes> saveOrUpdateRes(List<TBusSalaryConfigTitleRes> mTitleConfig, Integer saveType
, YifuUser user, TBusDept dept);
}
package com.yifu.cloud.plus.v1.business.service.salary;
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.business.entity.salary.TBusSalaryItem;
import java.util.List;
/**
* B端-薪酬明细表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
public interface TBusSalaryItemService extends IService<TBusSalaryItem> {
/**
* B端-薪酬明细表简单分页查询
*
* @param tBusSalaryItem B端-薪酬明细表
* @return
*/
IPage<TBusSalaryItem> getTBusSalaryItemPage(Page<TBusSalaryItem> page, TBusSalaryItem tBusSalaryItem);
/**
* @param salaryId
* @Description: 获取list
* @Author: hgw
* @Date: 2021/9/15 14:56
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryItem>
**/
List<TBusSalaryItem> getListBySalaryId(String salaryId);
}
package com.yifu.cloud.plus.v1.business.service.salary;
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.business.entity.salary.TBusSalary;
import com.yifu.cloud.plus.v1.business.vo.salary.BusSalaryExportVo;
import com.yifu.cloud.plus.v1.business.vo.salary.SalaryImportVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import java.util.List;
/**
* B端-薪酬主表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
public interface TBusSalaryService extends IService<TBusSalary> {
/**
* B端-薪酬主表简单分页查询
*
* @param tBusSalary B端-薪酬主表
* @return
*/
IPage<TBusSalary> getTBusSalaryPage(Page<TBusSalary> page, TBusSalary tBusSalary);
/**
* @param tBusSalary
* @Description: 导出
* @Author: hgw
* @Date: 2021/9/13 17:16
* @return: com.yifu.cloud.v1.hrobusiness.api.vo.salary.BusSalaryExportVo
**/
BusSalaryExportVo doExport(TBusSalary tBusSalary);
/**
* @param salaryVo
* @Description: 导入
* @Author: hgw
* @Date: 2021/9/6 16:25
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < java.util.List < com.yifu.cloud.v1.common.core.util.bean.ErrorMessage>>>
**/
R<List<ErrorMessage>> importBusSalary(SalaryImportVo salaryVo);
}
package com.yifu.cloud.plus.v1.business.service.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsDepart;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryCurDepartQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartQuery;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import java.util.List;
/**
* @description: 薪资变动统计表 service层
* @author: wangweiguo
* @date: 2021-09-06
*/
public interface TSalaryStatisticsDepartService extends IService<TSalaryStatisticsDepart> {
/**
* 分页查询: 部门统计条件分页查询
* @param query 部门统计查询条件
* @return: R<IPage<TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
R<IPage<TSalaryStatisticsDepartVO>> getListByPage(TSalaryStatisticsDepartPageQuery query);
/**
* 列表查询: 部门统计条件查询
* @param query 部门统计查询条件
* @return: R<List<TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
R<List<TSalaryStatisticsDepartVO>> getList(TSalaryStatisticsDepartQuery query);
/**
* 查询: 根据部门id查询当前部门合计
*
* @param query 单个部门统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
R<TSalaryTotalVO> getCurDepartSumData(TSalaryCurDepartQuery query);
/**
* 查询: 根据部门id查询当前部门统计数据
*
* @param query 单个部门统计查询条件
* @return: R<TSalaryStatisticsDepartVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
R<TSalaryStatisticsDepartVO> getCurDepartData(TSalaryCurDepartQuery query);
/**
* 合计: 条件查询部门合计
* @param query 部门统计查询条件
* @return: R<TSalaryDepartTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
R<TSalaryTotalVO> getSumDepartByParams(TSalaryStatisticsDepartQuery query);
}
package com.yifu.cloud.plus.v1.business.service.salary;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsPersonal;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalQuery;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsPersonalVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @description: 个人薪资变动统计表 service层
* @author: wangweiguo
* @date: 2021-09-07
*/
public interface TSalaryStatisticsPersonalService extends IService<TSalaryStatisticsPersonal> {
/**
* @description: 分页查询: 条件分页查询
* @param query 查询条件
* @return: R<IPage<TSalaryStatisticsPersonalVO>>
* @author: wangweiguo
* @date: 2021-09-07
*/
R<IPage<TSalaryStatisticsPersonalVO>> getListByPage(TSalaryStatisticsPersonalPageQuery query);
/**
* 个人统计列表查询: 个人统计条件查询
* @param query 个人统计查询条件
* @return: R<List<TSalaryStatisticsPersonalVO>>
* @author: wangweiguo
* @date: 2021-09-07
*/
R<List<TSalaryStatisticsPersonalVO>> getList(TSalaryStatisticsPersonalQuery query);
/**
* 个人合计: 条件查询个人合计
* @param query 个人统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
R<TSalaryTotalVO> getSumPersonalByParams(TSalaryStatisticsPersonalQuery query);
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfig;
import com.yifu.cloud.plus.v1.business.mapper.salary.TBusSalaryConfigMapper;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* B端-薪资配置
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Service
public class TBusSalaryConfigServiceImpl extends ServiceImpl<TBusSalaryConfigMapper, TBusSalaryConfig> implements TBusSalaryConfigService {
/**
* B端-薪资配置简单分页查询
*
* @param tBusSalaryConfig B端-薪资配置
* @return
*/
@Override
public IPage<TBusSalaryConfig> getTBusSalaryConfigPage(Page<TBusSalaryConfig> page, TBusSalaryConfig tBusSalaryConfig) {
return baseMapper.getTBusSalaryConfigPage(page, tBusSalaryConfig);
}
/**
* B端-薪资配置简单list
*
* @return
*/
@Override
public List<TBusSalaryConfig> getConfigList() {
return baseMapper.getConfigList();
}
/**
* 获取必要列的Map
*/
@Override
public Map<String, Integer> getMustMap() {
List<String> mustList = baseMapper.getMustList();
Map<String, Integer> mustMap = new HashMap<>();
if (mustList != null && !mustList.isEmpty()) {
for (String name : mustList) {
mustMap.put(name, CommonConstants.ONE_INT);
}
}
return mustMap;
}
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfigTitleRes;
import com.yifu.cloud.plus.v1.business.entity.system.TBusDept;
import com.yifu.cloud.plus.v1.business.mapper.salary.TBusSalaryConfigTitleResMapper;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigTitleResService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* B端-原表表头与配置关联表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Service
public class TBusSalaryConfigTitleResServiceImpl extends ServiceImpl<TBusSalaryConfigTitleResMapper, TBusSalaryConfigTitleRes>
implements TBusSalaryConfigTitleResService {
/**
* B端-原表表头与配置关联表简单分页查询
*
* @param tBusSalaryConfigTitleRes B端-原表表头与配置关联表
* @return
*/
@Override
public IPage<TBusSalaryConfigTitleRes> getTBusSalaryConfigTitleResPage(Page<TBusSalaryConfigTitleRes> page
, TBusSalaryConfigTitleRes tBusSalaryConfigTitleRes) {
return baseMapper.getTBusSalaryConfigTitleResPage(page, tBusSalaryConfigTitleRes);
}
/**
* list
* @return
*/
@Override
public List<TBusSalaryConfigTitleRes> getResListByDeptId(Integer deptId) {
return baseMapper.getResListByDeptId(deptId);
}
/**
* @param mTitleConfig
* @param saveType
* @param user
* @param dept
* @Description: 保存或更新-配置
* @Author: hgw
* @Date: 2021/9/8 18:22
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalaryConfigTitleRes>
**/
@Override
public List<TBusSalaryConfigTitleRes> saveOrUpdateRes(List<TBusSalaryConfigTitleRes> mTitleConfig, Integer saveType
, YifuUser user, TBusDept dept) {
TBusSalaryConfigTitleRes mc = new TBusSalaryConfigTitleRes();
mc.setDeptId(dept.getId());
mc.setSaveType(saveType);
QueryWrapper<TBusSalaryConfigTitleRes> queryWrapperMc = new QueryWrapper<>();
queryWrapperMc.setEntity(mc);
List<TBusSalaryConfigTitleRes> mcList = this.list(queryWrapperMc);
Map<String, String> mcMap = new HashMap<>();
for (TBusSalaryConfigTitleRes mcs : mcList) {
mcMap.put(mcs.getConfigId(), mcs.getId());
}
// 回传list
List<TBusSalaryConfigTitleRes> mTitleConfigList = new ArrayList<>();
// 组装数据回传
this.initMcList(mTitleConfig, user, mcMap, mTitleConfigList, saveType);
return mTitleConfigList;
}
/**
* @param mTitleConfig
* @param user
* @param mcMap
* @param mTitleConfigList
* @Description: 组装数据回传
* @Author: hgw
* @Date: 2021-9-8 18:19:52
* @return: void
**/
private void initMcList(List<TBusSalaryConfigTitleRes> mTitleConfig, YifuUser user, Map<String, String> mcMap
, List<TBusSalaryConfigTitleRes> mTitleConfigList, Integer saveType) {
for (TBusSalaryConfigTitleRes m : mTitleConfig) {
m.setSaveType(saveType);
if (mcMap.get(m.getConfigId()) != null) {
m.setId(mcMap.get(m.getConfigId()));
}
if (Common.isEmpty(m.getId())) {
if (Common.isNotNull(m.getExcelTitle())) {
this.save(m, user);
mTitleConfigList.add(m);
}
} else {
if (Common.isEmpty(m.getExcelTitle())) {
this.removeById(m);
} else {
this.updateById(m);
mTitleConfigList.add(m);
}
}
}
}
/**
* 新增记录
*
* @param mTitleConfig
* @return R
*/
private void save(TBusSalaryConfigTitleRes mTitleConfig, YifuUser user) {
mTitleConfig.setCreateUserId(user.getId());
mTitleConfig.setCreateUserName(user.getNickname());
mTitleConfig.setCreateTime(LocalDateTime.now());
this.save(mTitleConfig);
}
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryItem;
import com.yifu.cloud.plus.v1.business.mapper.salary.TBusSalaryItemMapper;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryItemService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* B端-薪酬明细表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Service
public class TBusSalaryItemServiceImpl extends ServiceImpl<TBusSalaryItemMapper, TBusSalaryItem> implements TBusSalaryItemService {
/**
* B端-薪酬明细表简单分页查询
*
* @param tBusSalaryItem B端-薪酬明细表
* @return
*/
@Override
public IPage<TBusSalaryItem> getTBusSalaryItemPage(Page<TBusSalaryItem> page, TBusSalaryItem tBusSalaryItem) {
return baseMapper.getTBusSalaryItemPage(page, tBusSalaryItem);
}
@Override
public List<TBusSalaryItem> getListBySalaryId(String salaryId) {
return baseMapper.getListBySalaryId(salaryId);
}
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalary;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfig;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfigTitleRes;
import com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryItem;
import com.yifu.cloud.plus.v1.business.entity.system.TBusDept;
import com.yifu.cloud.plus.v1.business.mapper.salary.TBusSalaryMapper;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigService;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryConfigTitleResService;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryItemService;
import com.yifu.cloud.plus.v1.business.service.salary.TBusSalaryService;
import com.yifu.cloud.plus.v1.business.service.system.TBusDeptService;
import com.yifu.cloud.plus.v1.business.util.SalaryUtil;
import com.yifu.cloud.plus.v1.business.vo.salary.BusSalaryExportVo;
import com.yifu.cloud.plus.v1.business.vo.salary.InitVo;
import com.yifu.cloud.plus.v1.business.vo.salary.KeyValueVo;
import com.yifu.cloud.plus.v1.business.vo.salary.SalaryImportVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
/**
* B端-薪酬主表
*
* @author hgw
* @date 2021-09-06 11:10:32
*/
@Service
public class TBusSalaryServiceImpl extends ServiceImpl<TBusSalaryMapper, TBusSalary> implements TBusSalaryService {
@Autowired
private TBusDeptService busDeptService;
@Autowired
private TBusSalaryConfigService busSalaryConfigService;
@Autowired
private TBusSalaryItemService busSalaryItemService;
@Autowired
private TBusSalaryConfigTitleResService busSalaryConfigTitleResService;
/**
* @param tBusSalary
* @Description: 导出
* @Author: hgw
* @Date: 2021/9/13 17:01
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.salary.TBusSalary>
**/
@Override
public BusSalaryExportVo doExport(TBusSalary tBusSalary) {
BusSalaryExportVo vo = new BusSalaryExportVo();
List<String> idList = null;
if (Common.isNotNull(tBusSalary.getIdStr())) {
idList = Common.initStrToList(tBusSalary.getIdStr(), CommonConstants.COMMA_STRING);
}
List<TBusSalary> salaryList = baseMapper.doExport(idList, tBusSalary);
vo.setSalaryList(salaryList);
if (salaryList != null && !salaryList.isEmpty()) {
Set<String> title = new HashSet<>();
List<TBusSalaryItem> itemList;
for (TBusSalary salary : salaryList) {
itemList = busSalaryItemService.getListBySalaryId(salary.getId());
if (itemList != null && !itemList.isEmpty()) {
salary.setBisList(itemList);
for (TBusSalaryItem items : itemList) {
title.add(items.getCnName());
}
}
}
vo.setTitleSet(title);
}
return vo;
}
/**
* B端-薪酬主表简单分页查询
*
* @param tBusSalary B端-薪酬主表
* @return
*/
@Override
public IPage<TBusSalary> getTBusSalaryPage(Page<TBusSalary> page, TBusSalary tBusSalary) {
return baseMapper.getTBusSalaryPage(page, tBusSalary);
}
/**
* @param salaryVo
* @Description: 导入
* @Author: hgw
* @Date: 2021/9/6 16:33
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < com.yifu.cloud.v1.common.core.util.bean.ErrorMessage>>
**/
@Override
public R<List<ErrorMessage>> importBusSalary(SalaryImportVo salaryVo) {
YifuUser user = SecurityUtils.getUser();
if (user == null || user.getId() == null) {
return R.failed("未获取到登录人信息!");
}
List<ErrorMessage> errorList = new ArrayList<>();
StringBuilder error = new StringBuilder();
// 初步判断全局属性有没有空的
Map<String, TBusDept> deptMap = busDeptService.getAllDeptMap();
TBusDept dept = this.judgeFirst(error, salaryVo);
if (error.length() > 0 && !"".equals(error.toString()) && !"null".equals(error.toString())) {
return R.failed(error.toString());
}
// 再次判断每个人的详情
this.judgeSecond(user, deptMap, dept, errorList, salaryVo);
if (!errorList.isEmpty()) {
return R.failed(errorList, "导入失败");
} else {
return R.ok();
}
}
/**
* @Description: 初步判断全局属性有没有空的
* @Author: hgw
* @Date: 2021/9/6 16:41
**/
private TBusDept judgeFirst(StringBuilder error, SalaryImportVo salaryVo) {
if (salaryVo.getContentList() == null || salaryVo.getContentList().isEmpty()) {
error.append("表格数据不可为空!");
}
if (salaryVo.getResList() == null || salaryVo.getResList().isEmpty()) {
error.append("配置关系不可为空!");
}
if (Common.isEmpty(salaryVo.getDeptId())) {
error.append("部门名称不可为空!");
}
if (Common.isEmpty(salaryVo.getSaveType())) {
error.append("是否保存不可为空!");
}
TBusDept dept = busDeptService.getById(salaryVo.getDeptId());
if (dept == null) {
error.append("根据部门id未找到部门!id=").append(salaryVo.getDeptId());
}
return dept;
}
/**
* @Description: 第二步判断与准备数据
* @Author: hgw
* @Date: 2021/9/9 14:21
* @return: void
**/
private void judgeSecond(YifuUser user, Map<String, TBusDept> deptMap, TBusDept dept, List<ErrorMessage> errorList
, SalaryImportVo salaryVo) {
List<TBusSalaryConfigTitleRes> resList = salaryVo.getResList();
List<TBusSalaryConfig> configList = busSalaryConfigService.list();
// 保存或更新-配置
busSalaryConfigTitleResService.saveOrUpdateRes(resList, salaryVo.getSaveType(), user, dept);
Map<String, TBusSalaryConfig> salaryConfigMap = new HashMap<>(); //存放所有字段
for (TBusSalaryConfig cl : configList) {
salaryConfigMap.put(cl.getId(), cl);
}
// 表头配置Map
Map<String, TBusSalaryConfig> configMap = new HashMap<>();
for (TBusSalaryConfigTitleRes tc : resList) {
configMap.put(tc.getExcelTitle(), salaryConfigMap.get(tc.getConfigId()));
}
// 得到类的所有field
Field[] allFields = TBusSalary.class.getDeclaredFields();
// 将有注解的field存放到fieldsMap中
Map<String, Field> fieldsMap = new HashMap<>();
for (Field field : allFields) {
if (field.isAnnotationPresent(ExcelAttribute.class)) {
// 设置类的私有字段属性可访问
field.setAccessible(true);
fieldsMap.put(field.getName(), field);
}
}
List<TBusSalary> salaryList = doCore(deptMap, dept, errorList, salaryVo, user, configMap, fieldsMap);
// 保存工资与详情
this.saveSalaryAndItem(errorList, salaryList);
}
/**
* @param errorList
* @param salaryList
* @Description: 保存工资与详情
* @Author: hgw
* @Date: 2021/9/14 17:49
* @return: void
**/
private void saveSalaryAndItem(List<ErrorMessage> errorList, List<TBusSalary> salaryList) {
if (errorList.isEmpty()) {
this.saveBatch(salaryList);
for (TBusSalary bus : salaryList) {
if (bus.getBisList() != null && !bus.getBisList().isEmpty()) {
for (TBusSalaryItem item : bus.getBisList()) {
item.setSalaryId(bus.getId());
}
busSalaryItemService.saveBatch(bus.getBisList());
}
}
}
}
private List<TBusSalary> doCore(Map<String, TBusDept> deptMap, TBusDept dept, List<ErrorMessage> errorList
, SalaryImportVo salaryVo, YifuUser user, Map<String, TBusSalaryConfig> configMap, Map<String, Field> fieldsMap) {
List<List<KeyValueVo>> contentList = salaryVo.getContentList();
String salaryMonth = salaryVo.getSalaryMonth();
// 其他附加项:
TBusSalaryConfig otherText = busSalaryConfigService.getById("100");
Map<String, Integer> mustMap = busSalaryConfigService.getMustMap();
InitVo initData = new InitVo();
initData.setOtherText(otherText);
initData.setMustMap(mustMap);
// 存放报账list
List<TBusSalary> salaryList = new ArrayList<>();
// 存放金额
// 循环的行标
int i = 0;
// 工资详情
TBusSalary bs;
// 导入的表里的部门信息
TBusDept depts;
// 核心循环:
for (List<KeyValueVo> kvList : contentList) {
bs = new TBusSalary();
// 判断列
this.judgeColum(errorList, configMap, fieldsMap, initData, i, bs, kvList);
// 录入了部门、工资月份,覆盖选择的公共的数据
if (Common.isEmpty(bs.getDeptName())) {
bs.setDeptId(dept.getId());
bs.setDeptName(dept.getName());
bs.setDeptTreeLogo(dept.getTreeLogo());
bs.setDeptLevel(dept.getLevel());
} else {
depts = deptMap.get(bs.getDeptName());
if (depts == null) {
errorList.add(new ErrorMessage(i, "部门不存在,请修改或清除:" + bs.getDeptName()));
} else {
bs.setDeptId(depts.getId());
bs.setDeptName(depts.getName());
bs.setDeptTreeLogo(depts.getTreeLogo());
bs.setDeptLevel(depts.getLevel());
}
}
if (Common.isEmpty(bs.getSalaryMonth())) {
bs.setSalaryMonth(salaryMonth);
}
bs.setCreateTime(LocalDateTime.now());
bs.setCreateUserId(user.getId());
bs.setCreateUserName(user.getNickname());
salaryList.add(bs);
i++;
}
return salaryList;
}
/**
* @Description: 判断列
* @Author: hgw
* @Date: 2021/9/9 15:41
* @return: void
**/
private void judgeColum(List<ErrorMessage> errorList, Map<String, TBusSalaryConfig> configMap
, Map<String, Field> fieldsMap, InitVo initData, int i, TBusSalary bs, List<KeyValueVo> kvList) {
// 属性
Field field;
// 取得类型,并根据对象类型设置值.
Class<?> fieldType;
// 单元格文本
String valueStr;
// 表头文本
String titleStr;
TBusSalaryConfig scs;
// 工资详情-附加明细
TBusSalaryItem bsi;
// 循环的列标排序号
int j = 0;
// 附加明细List,追加在工资详情里
List<TBusSalaryItem> bsiList = new ArrayList<>();
Map<String, Integer> mustMap = new HashMap<>(initData.getMustMap());
TBusSalaryConfig otherText = initData.getOtherText();
// 获取属性对应的注解属性
ExcelAttribute attr; //获取属性对应的注解属性
for (KeyValueVo kv : kvList) {
valueStr = kv.getContent();
titleStr = kv.getTitle();
scs = configMap.get(titleStr);
if (scs == null) {
scs = otherText;
} else if (mustMap.get(scs.getDbFiedName()) != null) {
mustMap.remove(scs.getDbFiedName());
}
// 必填项不可为空
this.judgeMustAndMoney(errorList, i, valueStr, titleStr, scs);
field = fieldsMap.get(scs.getJavaFiedName());
// field != null:报账里的属性,否则属于附加表
if (field == null) {
bsi = new TBusSalaryItem();
bsi.setCnName(kv.getTitle());
bsi.setJavaFiedName(scs.getJavaFiedName());
bsi.setTextValue(valueStr);
bsi.setOrderLine(j);
bsiList.add(bsi);
j++;
} else {
attr = field.getAnnotation(ExcelAttribute.class);
SalaryUtil.validateData(valueStr, attr, errorList, i);
fieldType = field.getType();
if (fieldType != null) {
try {
// 塞属性
SalaryUtil.setFields(field, valueStr, fieldType, bs);
} catch (IllegalAccessException ex) {
log.error("B端薪资原表导入解析失败!");
errorList.add(new ErrorMessage(i, titleStr + "列:导入解析失败:" + valueStr));
}
}
}
}
this.checkMustInfo(errorList, i, mustMap);
bs.setBisList(bsiList);
}
/**
* @Description: 必填项校验
* @Author: hgw
* @Date: 2021/9/10 15:29
* @return: void
**/
private void checkMustInfo(List<ErrorMessage> errorList, int i, Map<String, Integer> mustMap) {
if (!mustMap.isEmpty()) {
StringBuilder sb = new StringBuilder("必填项不可缺少:");
for (String s : mustMap.keySet()) {
sb.append(s).append(" ");
}
errorList.add(new ErrorMessage(i, sb.toString()));
}
}
/**
* @Description: 判断必填和金额
* @Author: hgw
* @Date: 2021/9/9 15:44
* @return: void
**/
private void judgeMustAndMoney(List<ErrorMessage> errorList, int i, String valueStr, String titleStr, TBusSalaryConfig scs) {
if ((CommonConstants.ONE_INT == scs.getIsMustNeed() || CommonConstants.THREE_INT == scs.getIsMustNeed())
&& Common.isEmpty(valueStr)) {
errorList.add(new ErrorMessage(i, titleStr + ":不可为空!"));
}
// 金额不可瞎写
if ((CommonConstants.TWO_INT == scs.getIsMustNeed() || CommonConstants.THREE_INT == scs.getIsMustNeed())
&& Common.isNotNull(valueStr)) {
try {
new BigDecimal(valueStr);
} catch (Exception ex) {
errorList.add(new ErrorMessage(i, titleStr + "列:金额错误:" + valueStr));
}
}
}
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsDepart;
import com.yifu.cloud.plus.v1.business.mapper.salary.TSalaryStatisticsDepartMapper;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryCurDepartQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsDepartQuery;
import com.yifu.cloud.plus.v1.business.service.salary.TSalaryStatisticsDepartService;
import com.yifu.cloud.plus.v1.business.util.BusinessCommonUtils;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description: 部门薪资变动统计表 service实现层
* @author: wangweiguo
* @date: 2021-09-06
*/
@Service
@AllArgsConstructor
public class TSalaryStatisticsDepartServiceImpl extends ServiceImpl<TSalaryStatisticsDepartMapper, TSalaryStatisticsDepart>
implements TSalaryStatisticsDepartService {
/**
* 分页查询: 部门统计条件分页查询
*
* @param query 部门统计查询条件
* @return: R<IPage < TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
@Override
public R<IPage<TSalaryStatisticsDepartVO>> getListByPage(TSalaryStatisticsDepartPageQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
Page<TSalaryStatisticsDepartVO> page = new Page<>(query.getCurrent(), query.getSize());
page.setOrders(query.getOrders());
page = this.baseMapper.getListByPage(page, query);
List<TSalaryStatisticsDepartVO> list = page.getRecords();
initTreeData(list);
return R.ok(page, CommonConstants.SEARCH_SUCCESS);
}
/**
* 列表查询: 部门统计条件查询
*
* @param query 部门统计查询条件
* @return: R<List < TSalaryStatisticsDepartVO>>
* @author: wangweiguo
* @date: 2021-09-06
*/
@Override
public R<List<TSalaryStatisticsDepartVO>> getList(TSalaryStatisticsDepartQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
List<TSalaryStatisticsDepartVO> list = this.baseMapper.getListByPage(query);
initTreeData(list);
return R.ok(list, CommonConstants.SEARCH_SUCCESS);
}
/**
* 查询: 根据部门id查询当前部门合计
*
* @param query 单个部门统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
@Override
public R<TSalaryTotalVO> getCurDepartSumData(TSalaryCurDepartQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
TSalaryTotalVO vo = this.baseMapper.getCurDepartSumData(query);
return R.ok(vo, CommonConstants.SEARCH_SUCCESS);
}
/**
* 查询: 根据部门id查询当前部门统计数据
*
* @param query 单个部门统计查询条件
* @return: R<TSalaryStatisticsDepartVO>
* @author: wangweiguo
* @date: 2021-09-16
*/
@Override
public R<TSalaryStatisticsDepartVO> getCurDepartData(TSalaryCurDepartQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
TSalaryStatisticsDepartVO vo = this.baseMapper.getCurDepartData(query);
return R.ok(vo, CommonConstants.SEARCH_SUCCESS);
}
/**
* 将子查询的树状转为list
*
* @param list 包含children的
*/
private void initTreeData(List<TSalaryStatisticsDepartVO> list) {
for (TSalaryStatisticsDepartVO vo : list) {
BeanUtil.copyProperties(vo.getChildren().get(0), vo, CopyOptions.create().setIgnoreProperties("departName", "departId", "treeLogo").setIgnoreNullValue(true));
}
}
/**
* 合计: 条件查询部门合计
*
* @param query 部门统计查询条件
* @return: R<TSalaryDepartTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Override
public R<TSalaryTotalVO> getSumDepartByParams(TSalaryStatisticsDepartQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
return R.ok(this.baseMapper.sumSalaryDepart(query), CommonConstants.SEARCH_SUCCESS);
}
}
package com.yifu.cloud.plus.v1.business.service.salary.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.salary.TSalaryStatisticsPersonal;
import com.yifu.cloud.plus.v1.business.mapper.salary.TSalaryStatisticsPersonalMapper;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalPageQuery;
import com.yifu.cloud.plus.v1.business.query.salary.TSalaryStatisticsPersonalQuery;
import com.yifu.cloud.plus.v1.business.service.salary.TSalaryStatisticsPersonalService;
import com.yifu.cloud.plus.v1.business.util.BusinessCommonUtils;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsPersonalVO;
import com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 个人薪资变动统计表 service实现层
*
* @author: wangweiguo
* @date: 2021-09-07
*/
@Service
public class TSalaryStatisticsPersonalServiceImpl extends ServiceImpl<TSalaryStatisticsPersonalMapper, TSalaryStatisticsPersonal>
implements TSalaryStatisticsPersonalService {
/**
* 个人统计分页查询: 个人统计条件分页查询
*
* @param query 查询条件
* @return: R<IPage < TSalaryStatisticsPersonalVO>>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Override
public R<IPage<TSalaryStatisticsPersonalVO>> getListByPage(TSalaryStatisticsPersonalPageQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
Page<TSalaryStatisticsPersonalVO> page = new Page<>(query.getCurrent(), query.getSize());
page.setOrders(query.getOrders());
page = this.baseMapper.getListByPage(page, query);
return R.ok(page, CommonConstants.SEARCH_SUCCESS);
}
/**
* 个人统计列表查询: 个人统计条件查询
*
* @param query 个人统计查询条件
* @return: R<List < TSalaryStatisticsPersonalVO>>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Override
public R<List<TSalaryStatisticsPersonalVO>> getList(TSalaryStatisticsPersonalQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
List<TSalaryStatisticsPersonalVO> list = this.baseMapper.getListByPage(query);
return R.ok(list, CommonConstants.SEARCH_SUCCESS);
}
/**
* 个人合计: 条件查询个人合计
*
* @param query 个人统计查询条件
* @return: R<TSalaryTotalVO>
* @author: wangweiguo
* @date: 2021-09-07
*/
@Override
public R<TSalaryTotalVO> getSumPersonalByParams(TSalaryStatisticsPersonalQuery query) {
query.setLastSalaryMonth(BusinessCommonUtils.getLastMonthByCurMonth(query.getSalaryMonth()));
TSalaryTotalVO salaryTotalVO = this.baseMapper.sumSalaryPerson(query);
return R.ok(salaryTotalVO, CommonConstants.SEARCH_SUCCESS);
}
}
package com.yifu.cloud.plus.v1.business.service.system;
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.business.entity.system.TBusDept;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import java.util.List;
import java.util.Map;
/**
* B端部门表
*
* @author hgw
* @date 2021-08-10 10:38:44
*/
public interface TBusDeptService extends IService<TBusDept> {
/**
* B端部门表简单分页查询
*
* @param tBusDept B端部门表
* @return
*/
IPage<TBusDept> getTBusDeptPage(Page<TBusDept> page, TBusDept tBusDept);
/**
* @param tBusDept
* @Description: B端部门表 全部list
* @Author: hgw
* @Date: 2021/8/10 16:49
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.system.TBusDept>
**/
List<TBusDept> getTBusDeptList(TBusDept tBusDept);
List<TBusDept> getTBusDeptListAsso(TBusDept tBusDept);
/**
* @param tBusDept
* @Description: 获取部门名称Map
* @Author: hgw
* @Date: 2021/8/18 11:52
* @return: java.util.Map<java.lang.String, java.lang.Integer>
**/
Map<String, Integer> getTBusDeptMap(TBusDept tBusDept);
/**
* @param id
* @param treeLogo
* @Description: B端部门表 子集list,不含自己
* @Author: hgw
* @Date: 2021/8/10 16:49
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.system.TBusDept>
**/
List<TBusDept> getTBusDeptSubList(int id, String treeLogo);
/**
* @param id
* @param name
* @Description: 获取部门list,判重
* @Author: hgw
* @Date: 2021/8/11 16:06
* @return: java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.system.TBusDept>
**/
List<TBusDept> getDeptByName(Integer id, String name);
/**
* @param oldLogo
* @param newLogo
* @Description: 批量更新子集的treeLogo
* @Author: hgw
* @Date: 2021/8/13 17:27
* @return: int
**/
int updateAllTreeLogo(String oldLogo, String newLogo);
/**
* 根据部门父id或等级查询部门列表
* @param pid 部门pid
* @param level 部门等级
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.system.TBusDept>>
* @author: wangweiguo
* @date: 2021/9/7
* @since hrob2.1
*/
R<List<TBusDept>> getBusDepartByLevelOrPid(Integer pid, Integer level);
/**
* @Description: 获取部门名称Map
* @Author: hgw
* @Date: 2021/8/18 11:52
* @return: java.util.Map<java.lang.String, java.lang.Integer>
**/
Map<String, TBusDept> getAllDeptMap();
}
package com.yifu.cloud.plus.v1.business.service.system.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.business.entity.system.TBusDept;
import com.yifu.cloud.plus.v1.business.mapper.system.TBusDeptMapper;
import com.yifu.cloud.plus.v1.business.service.system.TBusDeptService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* B端部门表
*
* @author hgw
* @date 2021-08-10 10:38:44
*/
@Service("tBusDeptService")
public class TBusDeptServiceImpl extends ServiceImpl<TBusDeptMapper, TBusDept> implements TBusDeptService {
/**
* B端部门表简单分页查询
*
* @param tBusDept B端部门表
* @return
*/
@Override
public IPage<TBusDept> getTBusDeptPage(Page<TBusDept> page, TBusDept tBusDept) {
return baseMapper.getTBusDeptPage(page, tBusDept);
}
/**
* B端部门表 全部list
*
* @param tBusDept B端部门表
* @return
*/
@Override
public List<TBusDept> getTBusDeptList(TBusDept tBusDept) {
return baseMapper.getTBusDeptList(tBusDept);
}
/**
* B端部门表 全部list 包括删除
*
* @param tBusDept B端部门表
* @return
*/
@Override
public List<TBusDept> getTBusDeptListAsso(TBusDept tBusDept) {
return baseMapper.getTBusDeptListAsso(tBusDept);
}
/**
* B端部门表 全部list
*
* @param tBusDept B端部门表
* @return
*/
@Override
public Map<String, Integer> getTBusDeptMap(TBusDept tBusDept) {
List<TBusDept> deptList = baseMapper.getTBusDeptList(tBusDept);
Map<String, Integer> deptMap = new HashMap<>();
if (deptList != null && !deptList.isEmpty()) {
for (TBusDept dept : deptList) {
deptMap.put(dept.getName(), dept.getId());
}
}
return deptMap;
}
/**
* B端部门表 子集list,不含自己
* @return
*/
@Override
public List<TBusDept> getTBusDeptSubList(int id, String treeLogo) {
return baseMapper.getTBusDeptSubList(id, treeLogo);
}
@Override
public List<TBusDept> getDeptByName(Integer id, String name) {
return baseMapper.getDeptByName(id, name);
}
@Override
public int updateAllTreeLogo(String oldLogo, String newLogo) {
return baseMapper.updateAllTreeLogo(oldLogo, newLogo);
}
/**
* 根据部门父id或等级查询部门列表
* @param pid 部门pid
* @param level 部门等级
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List<com.yifu.cloud.v1.hrobusiness.api.entity.system.TBusDept>>
* @author: wangweiguo
* @date: 2021/9/7
* @since hrob2.1
*/
@Override
public R<List<TBusDept>> getBusDepartByLevelOrPid(Integer pid, Integer level) {
List<TBusDept> list = this.lambdaQuery()
.eq(TBusDept::getLevel, level)
.eq(pid != null, TBusDept::getPid, pid)
.eq(TBusDept::getDeleteFlag, CommonConstants.ZERO_INT)
.list();
return R.ok(list, CommonConstants.SEARCH_SUCCESS);
}
/**
* B端部门表 全部list
* @return
*/
@Override
public Map<String, TBusDept> getAllDeptMap() {
List<TBusDept> deptList = baseMapper.getTBusDeptList(null);
Map<String, TBusDept> deptMap = new HashMap<>();
if (deptList != null && !deptList.isEmpty()) {
for (TBusDept dept : deptList) {
deptMap.put(dept.getName(), dept);
}
}
return deptMap;
}
}
package com.yifu.cloud.plus.v1.business.util;
/**
* @description: BusinessCommonContants b端微服务通用常量
* @author: wangweiguo
* @date: 2021/8/17
*/
public class BusinessCommonContants {
public static final String HRB_SETTLE_FILE_PATH = "hrb/settle";
public static final String HROB_VACATION_TYPE = "HROB_VACATION_TYPE";
public static final String BUSINESS_CLIENT_ID = "hrCustomer";
public static final String YEAR_VACATION_VALUE = "5";
// 202108
public static final String SETTLE_MONTH_MATCH = "([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(0[1-9]{1}|1[0-2]{1})";
}
package com.yifu.cloud.plus.v1.business.util;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import org.apache.commons.lang.StringUtils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* @description: hro b端通用方法
* @author: wangweiguo
* @date: 2021/8/16
*/
public class BusinessCommonUtils {
/**
* 格式化标签id
*
* @param employeeTags 标签字符串,英文逗号分割
* @return: java.lang.String
* @author: wangweiguo
* @date: 2021/8/19
*/
public static String formatLabelId(String employeeTags) {
// 标签id格式化处理
String[] tags = StringUtils.split(employeeTags, ",");
List<String> tagList = new ArrayList<>();
if (null != tags) {
for (String tag : tags) {
tagList.add(String.format(CommonConstants.TAG_FROMAT, Integer.valueOf(tag)));
}
}
return StringUtils.join(tagList, ",");
}
/**
* 根据当前月份获取上个月份
*
* @param curMonth 当前月份,格式yyyyMM
* @return String lastMonth 返回上个月份的字符串格式yyyyMM
* @author: wangweiguo
* @date: 2021-09-06
*/
public static String getLastMonthByCurMonth(String curMonth) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate lastSalaryDate = LocalDate.parse(curMonth + "01", dateTimeFormatter).plusMonths(-1L);
return String.format(lastSalaryDate.getYear() + "%02d", lastSalaryDate.getMonthValue());
}
}
package com.yifu.cloud.plus.v1.business.util;
/**
* @description: 返回错误码
* @author: wangweiguo
* @date: 2021/8/16
*/
public class BusinessResultErrorMsg {
public static final String VACATION_MONITOR_ID_IS_NOT_NULL = "vacationMonitorId不能为空";
public static final String SUCCESS = "操作成功";
public static final String VACATION_MONITOR_DATA_IS_NOT_EXIST = "监控数据不存在";
public static final String USER_NOT_LOGIN = "用户未登录";
public static final String SAVE_SETTLE_ERROR = "保存结算记录出错";
public static final String DEPART_ALREADY_EXIST_MONTH_DATA = "该部门该结算月份已有数据,若要更新,请先将原数据删除后,再次导入!";
public static final String ZIP_FILE_NAME_VALID_FAILD = "zip压缩文件名格式不正确";
public static final String ZIP_EXTRACT_ERROR = "结算管理导入zip文件解压功能出错";
public static final String IMPORT_FILE_TYPE_ERROR = "导入的文件格式不正确";
public static final String VACATION_INFO_NOT_EXIST = "假勤信息不存在";
public static final String JSON_DATE_RESOLVER_ERROR = "批量导入假勤信息json日期格式解析失败,请使用正确的日期格式,如:XXXX-XX-XX,";
public static final String JSON_RESOLVER_ERROR = "批量导入假勤信息json数据格式解析失败,";
public static final String VACATION_TYPE_DATA_NOT_EXIST = "假勤类型数据不存在";
public static final String EMPLOYEE_EXTENT_DATA_NOT_EXIST = "人员拓展信息数据不存在";
public static final String DEPART_DATA_NOT_EXIST = "部门数据不存在";
public static final String VACATION_TYPE_NOT_EXIST = "假勤类型不存在";
public static final String BUSINESS_TELECOM_NUMBER_NOT_EXIST = "电信工号不存在";
public static final String START_END_TIME_ERROR = "假勤结束时间不能在假勤开始时间之前";
public static final String ACTURAL_START_END_TIME_ERROR = "真正结束时间不能在假勤结束时间之后";
public static final String FILE_NAME_ERROT = "命名格式不规范";
public static final String RELEASE_VACATION_DURATION_ERROR = "操作失败,释放年休假失败";
public static final String CONSUME_YEAR_VACATION_DURATION_ERROR = "操作失败,消耗年休假失败";
public static final String CONSUME_VACATION_DURATION_ERROR = "操作失败,消耗假勤失败";
public static final String SURPLUS_VACATION_NOT_ENOUGH = "剩余年假时长不足本次消耗";
public static final String VACATION_MONITOR_NOT_EXIST = "没有对应的年假信息";
public static final String IMPORT_SUCCESS = "导入成功!";
public static final String FILE_NAME_DATE_FORMAT_ERROR = "文件名格式中日期格式错误!";
public static final String EMPLOYEE_ALREADY_LEAVE = "添加失败,员工已离职!";
}
package com.yifu.cloud.plus.v1.business.util;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* @author hgw
* @Description: 工资表上传公共类
*/
public class SalaryUtil implements Serializable {
/**
* @param c
* @param attr
* @Description: 验证属性的值的长度
* @Author: hgw
* @Date: 2021/9/17 9:47
* @return: java.lang.String
**/
public static void validateData(String c, ExcelAttribute attr, List<ErrorMessage> errorList, int i) {
//最大长度校验
if (Common.isNotNull(c) && Common.isNotNull(attr) ) {
if (attr.isDate()) {
try {
DateFormat df = new SimpleDateFormat(attr.dateFormat());
df.parse(c.trim());
} catch (ParseException e) {
errorList.add(new ErrorMessage(i, attr.name() + "列:日期格式不正确[正确格式‘199101’],实际:" + c));
}
}
if (attr.maxLength() > 0 && c.length() > attr.maxLength()) {
errorList.add(new ErrorMessage(i, attr.name() + "列:超出最大长度[" + attr.maxLength() + "]:" + c));
}
}
}
/**
* @param field
* @param cellValueStr
* @param fieldType
* @param entity
* @Description: 总入口:塞属性
* @Author: hgw
* @Date: 2021/1/11 11:18
* @return: void
**/
public static <T> void setFields(Field field, String cellValueStr, Class<?> fieldType, T entity) throws IllegalAccessException {
if (String.class == fieldType) {
setStringField(field, cellValueStr, entity);
} else if (BigDecimal.class == fieldType) {
setBigDecimalField(field, cellValueStr, entity);
} else if ((Integer.TYPE == fieldType) || (Integer.class == fieldType)) {
setIntegerField(field, cellValueStr, entity);
}
}
/**
* @param field
* @param cellValueStr
* @param entity
* @Description: 判断整型
* @Author: hgw
* @Date: 2021/1/11 11:48
* @return: void
**/
private static <T> void setIntegerField(Field field, String cellValueStr, T entity) throws IllegalAccessException {
if ("否".equals(cellValueStr)) {
field.set(entity, 0);
} else if ("是".equals(cellValueStr)) {
field.set(entity, 1);
} else {
field.set(entity, Integer.parseInt(Common.isEmpty(cellValueStr)?"0":cellValueStr));
}
}
/**
* @param field
* @param cellValueStr
* @param entity
* @Description: 判断金额
* @Author: hgw
* @Date: 2021/1/11 11:48
* @return: void
**/
private static <T> void setBigDecimalField(Field field, String cellValueStr, T entity) throws IllegalAccessException {
if (cellValueStr.indexOf('%') != -1) {
cellValueStr = cellValueStr.replace("%", "");
}
field.set(entity, BigDecimal.valueOf(Double.valueOf(cellValueStr)));
}
/**
* @param field
* @param cellValueStr
* @param entity
* @Description: 判断固定字符串,塞值
* @Author: hgw
* @Date: 2021/1/11 11:47
* @return: void
**/
private static <T> void setStringField(Field field, String cellValueStr, T entity) throws IllegalAccessException {
if ("否".equals(cellValueStr)) {
field.set(entity, "0");
} else if ("是".equals(cellValueStr)) {
field.set(entity, "1");
} else if ("暂停发".equals(cellValueStr)) {
field.set(entity, "1");
} else if ("立即发".equals(cellValueStr)) {
field.set(entity, "0");
} else if ("现金".equals(cellValueStr)) {
field.set(entity, "0");
} else if ("银行".equals(cellValueStr)) {
field.set(entity, "1");
} else if ("线下".equals(cellValueStr)) {
field.set(entity, "2");
} else if ("合并".equals(cellValueStr)) {
field.set(entity, "0");
} else if ("单独".equals(cellValueStr)) {
field.set(entity, "1");
} else {
field.set(entity, cellValueStr);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.system.TBusDeptMapper">
<resultMap id="tBusDeptMap" type="com.yifu.cloud.plus.v1.business.entity.system.TBusDept">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="level" column="level"/>
<result property="pid" column="pid"/>
<result property="createUserId" column="create_user_id"/>
<result property="createUserName" column="create_user_name"/>
<result property="createTime" column="create_time"/>
<result property="treeLogo" column="tree_logo"/>
<result property="deleteFlag" column="delete_flag"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.name,
a.level,
a.pid,
a.create_user_id,
a.create_user_name,
a.create_time,
a.tree_logo,
a.delete_flag
</sql>
<sql id="tBusDept_where">
<if test="tBusDept != null">
<if test="tBusDept.id != null">
AND a.id = #{tBusDept.id}
</if>
<if test="tBusDept.name != null and tBusDept.name.trim() != ''">
AND a.name like concat('%', #{tBusDept.name},'%')
</if>
<if test="tBusDept.level != null">
AND a.level = #{tBusDept.level}
</if>
<if test="tBusDept.pid != null">
AND a.pid = #{tBusDept.pid}
</if>
<if test="tBusDept.createUserId != null and tBusDept.createUserId.trim() != ''">
AND a.create_user_id = #{tBusDept.createUserId}
</if>
<if test="tBusDept.createUserName != null and tBusDept.createUserName.trim() != ''">
AND a.create_user_name = #{tBusDept.createUserName}
</if>
<if test="tBusDept.createTime != null">
AND a.create_time = #{tBusDept.createTime}
</if>
<if test="tBusDept.treeLogo != null and tBusDept.treeLogo.trim() != ''">
AND a.tree_logo like concat(#{tBusDept.treeLogo},'%')
</if>
</if>
</sql>
<!--tBusDept简单分页查询-->
<select id="getTBusDeptPage" resultMap="tBusDeptMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_dept a
<where>
a.delete_flag = 0 and a.level != '-1'
<include refid="tBusDept_where"/>
</where>
ORDER BY a.level,a.create_time asc
</select>
<!--list-->
<select id="getTBusDeptList" resultMap="tBusDeptMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_dept a
<where>
a.delete_flag = 0
<if test="tBusDept == null or tBusDept.level == null">
and a.level != '-1'
</if>
<include refid="tBusDept_where"/>
</where>
ORDER BY a.level,a.create_time asc
</select>
<!--list-->
<select id="getTBusDeptListAsso" resultMap="tBusDeptMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_dept a
<where>
<include refid="tBusDept_where"/>
</where>
ORDER BY a.level,a.create_time asc
</select>
<!--list-->
<select id="getTBusDeptSubList" resultMap="tBusDeptMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_dept a
where
a.delete_flag = 0
and a.id != #{id}
AND a.tree_logo like concat(#{treeLogo},'%')
</select>
<!--判重-->
<select id="getDeptByName" resultMap="tBusDeptMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_dept a
where
a.delete_flag = 0
<if test="id != null">
and a.id != #{id}
</if>
AND a.name = #{name}
</select>
<!-- 批量更新子集的treeLogo -->
<update id="updateAllTreeLogo">
update
t_bus_dept a
set
a.tree_logo = concat(#{newLogo},SUBSTRING(a.tree_logo,length(#{oldLogo}) + 1))
where
a.tree_logo like concat(#{oldLogo},'%')
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TBusSalaryConfigMapper">
<resultMap id="tBusSalaryConfigMap" type="com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfig">
<id property="id" column="ID"/>
<result property="cnName" column="CN_NAME"/>
<result property="dbFiedName" column="DB_FIED_NAME"/>
<result property="javaFiedName" column="JAVA_FIED_NAME"/>
<result property="isMustNeed" column="IS_MUST_NEED"/>
<result property="createUser" column="CREATE_USER"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="orderLine" column="order_line"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.CN_NAME,
a.DB_FIED_NAME,
a.JAVA_FIED_NAME,
a.IS_MUST_NEED,
a.CREATE_USER,
a.CREATE_TIME,
a.order_line
</sql>
<sql id="tBusSalaryConfig_where">
<if test="tBusSalaryConfig != null">
<if test="tBusSalaryConfig.id != null and tBusSalaryConfig.id.trim() != ''">
AND a.ID = #{tBusSalaryConfig.id}
</if>
<if test="tBusSalaryConfig.cnName != null and tBusSalaryConfig.cnName.trim() != ''">
AND a.CN_NAME = #{tBusSalaryConfig.cnName}
</if>
<if test="tBusSalaryConfig.dbFiedName != null and tBusSalaryConfig.dbFiedName.trim() != ''">
AND a.DB_FIED_NAME = #{tBusSalaryConfig.dbFiedName}
</if>
<if test="tBusSalaryConfig.javaFiedName != null and tBusSalaryConfig.javaFiedName.trim() != ''">
AND a.JAVA_FIED_NAME = #{tBusSalaryConfig.javaFiedName}
</if>
<if test="tBusSalaryConfig.isMustNeed != null ">
AND a.IS_MUST_NEED = #{tBusSalaryConfig.isMustNeed}
</if>
<if test="tBusSalaryConfig.createUser != null and tBusSalaryConfig.createUser.trim() != ''">
AND a.CREATE_USER = #{tBusSalaryConfig.createUser}
</if>
<if test="tBusSalaryConfig.createTime != null">
AND a.CREATE_TIME = #{tBusSalaryConfig.createTime}
</if>
<if test="tBusSalaryConfig.orderLine != null">
AND a.order_line = #{tBusSalaryConfig.orderLine}
</if>
</if>
</sql>
<!--tBusSalaryConfig简单分页查询-->
<select id="getTBusSalaryConfigPage" resultMap="tBusSalaryConfigMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_config a
<where>
1=1
<include refid="tBusSalaryConfig_where"/>
</where>
</select>
<!--tBusSalaryConfig简单list-->
<select id="getConfigList" resultMap="tBusSalaryConfigMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_config a
where a.order_line != 999
order by a.order_line asc
</select>
<!--tBusSalaryConfig简单分页查询-->
<select id="getMustList" resultType="String">
SELECT
a.DB_FIED_NAME
FROM t_bus_salary_config a
where
a.IS_MUST_NEED in (1,3)
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TBusSalaryConfigTitleResMapper">
<resultMap id="tBusSalaryConfigTitleResMap"
type="com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryConfigTitleRes">
<id property="id" column="id"/>
<result property="deptId" column="dept_id"/>
<result property="deptName" column="dept_name"/>
<result property="deptNo" column="dept_no"/>
<result property="excelTitle" column="excel_title"/>
<result property="configId" column="config_id"/>
<result property="configName" column="config_name"/>
<result property="createUserId" column="create_user_id"/>
<result property="createUserName" column="create_user_name"/>
<result property="createTime" column="create_time"/>
<result property="saveType" column="save_type"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.dept_id,
a.dept_name,
a.dept_no,
a.excel_title,
a.config_id,
a.config_name,
a.create_user_id,
a.create_user_name,
a.create_time,
a.save_type
</sql>
<sql id="tBusSalaryConfigTitleRes_where">
<if test="tBusSalaryConfigTitleRes != null">
<if test="tBusSalaryConfigTitleRes.id != null and tBusSalaryConfigTitleRes.id.trim() != ''">
AND a.id = #{tBusSalaryConfigTitleRes.id}
</if>
<if test="tBusSalaryConfigTitleRes.deptId != null and tBusSalaryConfigTitleRes.deptId.trim() != ''">
AND a.dept_id = #{tBusSalaryConfigTitleRes.deptId}
</if>
<if test="tBusSalaryConfigTitleRes.deptName != null and tBusSalaryConfigTitleRes.deptName.trim() != ''">
AND a.dept_name = #{tBusSalaryConfigTitleRes.deptName}
</if>
<if test="tBusSalaryConfigTitleRes.deptNo != null and tBusSalaryConfigTitleRes.deptNo.trim() != ''">
AND a.dept_no = #{tBusSalaryConfigTitleRes.deptNo}
</if>
<if test="tBusSalaryConfigTitleRes.excelTitle != null and tBusSalaryConfigTitleRes.excelTitle.trim() != ''">
AND a.excel_title = #{tBusSalaryConfigTitleRes.excelTitle}
</if>
<if test="tBusSalaryConfigTitleRes.configId != null and tBusSalaryConfigTitleRes.configId.trim() != ''">
AND a.config_id = #{tBusSalaryConfigTitleRes.configId}
</if>
<if test="tBusSalaryConfigTitleRes.configName != null and tBusSalaryConfigTitleRes.configName.trim() != ''">
AND a.config_name = #{tBusSalaryConfigTitleRes.configName}
</if>
<if test="tBusSalaryConfigTitleRes.createUserId != null and tBusSalaryConfigTitleRes.createUserId.trim() != ''">
AND a.create_user_id = #{tBusSalaryConfigTitleRes.createUserId}
</if>
<if test="tBusSalaryConfigTitleRes.createUserName != null and tBusSalaryConfigTitleRes.createUserName.trim() != ''">
AND a.create_user_name = #{tBusSalaryConfigTitleRes.createUserName}
</if>
<if test="tBusSalaryConfigTitleRes.createTime != null">
AND a.create_time = #{tBusSalaryConfigTitleRes.createTime}
</if>
<if test="tBusSalaryConfigTitleRes.saveType != null">
AND a.save_type = #{tBusSalaryConfigTitleRes.saveType}
</if>
</if>
</sql>
<!--tBusSalaryConfigTitleRes简单分页查询-->
<select id="getTBusSalaryConfigTitleResPage" resultMap="tBusSalaryConfigTitleResMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_config_title_res a
<where>
1=1
<include refid="tBusSalaryConfigTitleRes_where"/>
</where>
</select>
<!--tBusSalaryConfigTitleRes简单分页查询-->
<select id="getResListByDeptId" resultMap="tBusSalaryConfigTitleResMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_config_title_res a
where a.dept_id = #{deptId} and a.save_type = 0
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TBusSalaryItemMapper">
<resultMap id="tBusSalaryItemMap" type="com.yifu.cloud.plus.v1.business.entity.salary.TBusSalaryItem">
<id property="id" column="id"/>
<result property="salaryId" column="SALARY_ID"/>
<result property="cnName" column="CN_NAME"/>
<result property="javaFiedName" column="JAVA_FIED_NAME"/>
<result property="textValue" column="TEXT_VALUE"/>
<result property="orderLine" column="order_line"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.SALARY_ID,
a.CN_NAME,
a.JAVA_FIED_NAME,
a.TEXT_VALUE,
a.order_line
</sql>
<sql id="tBusSalaryItem_where">
<if test="tBusSalaryItem != null">
<if test="tBusSalaryItem.id != null and tBusSalaryItem.id.trim() != ''">
AND a.id = #{tBusSalaryItem.id}
</if>
<if test="tBusSalaryItem.salaryId != null and tBusSalaryItem.salaryId.trim() != ''">
AND a.SALARY_ID = #{tBusSalaryItem.salaryId}
</if>
<if test="tBusSalaryItem.cnName != null and tBusSalaryItem.cnName.trim() != ''">
AND a.CN_NAME = #{tBusSalaryItem.cnName}
</if>
<if test="tBusSalaryItem.javaFiedName != null and tBusSalaryItem.javaFiedName.trim() != ''">
AND a.JAVA_FIED_NAME = #{tBusSalaryItem.javaFiedName}
</if>
<if test="tBusSalaryItem.textValue != null and tBusSalaryItem.textValue.trim() != ''">
AND a.TEXT_VALUE = #{tBusSalaryItem.textValue}
</if>
<if test="tBusSalaryConfig.orderLine != null">
AND a.order_line = #{tBusSalaryConfig.orderLine}
</if>
</if>
</sql>
<!--tBusSalaryItem简单分页查询-->
<select id="getTBusSalaryItemPage" resultMap="tBusSalaryItemMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_item a
<where>
1=1
<include refid="tBusSalaryItem_where"/>
</where>
</select>
<!--tBusSalaryItem简单list-->
<select id="getListBySalaryId" resultMap="tBusSalaryItemMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary_item a
where a.SALARY_ID = #{salaryId}
order by a.order_line asc
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TBusSalaryMapper">
<resultMap id="tBusSalaryMap" type="com.yifu.cloud.plus.v1.business.entity.salary.TBusSalary">
<id property="id" column="id"/>
<result property="teleNo" column="tele_no"/>
<result property="empName" column="emp_name"/>
<result property="empIdCard" column="emp_id_card"/>
<result property="deptId" column="dept_id"/>
<result property="deptLevel" column="dept_level"/>
<result property="deptName" column="dept_name"/>
<result property="deptTreeLogo" column="dept_tree_logo"/>
<result property="post" column="post"/>
<result property="salaryMonth" column="salary_month"/>
<result property="relaySalary" column="relay_salary"/>
<result property="relayIncent" column="relay_incent"/>
<result property="relayOther" column="relay_other"/>
<result property="relaySum" column="relay_sum"/>
<result property="withholidPersonSocial" column="withholid_person_social"/>
<result property="withholidPersonFund" column="withholid_person_fund"/>
<result property="withholidPersonTax" column="withholid_person_tax"/>
<result property="withholidOther" column="withholid_other"/>
<result property="withholidSum" column="withholid_sum"/>
<result property="actualSalary" column="actual_salary"/>
<result property="unitSocial" column="unit_social"/>
<result property="unitFund" column="unit_fund"/>
<result property="createUserId" column="create_user_id"/>
<result property="createUserName" column="create_user_name"/>
<result property="createTime" column="create_time"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.tele_no,
a.emp_name,
a.emp_id_card,
a.dept_id,
a.dept_level,
a.dept_name,
a.dept_tree_logo,
a.post,
a.salary_month,
a.relay_salary,
a.relay_incent,
a.relay_other,
a.relay_sum,
a.withholid_person_social,
a.withholid_person_fund,
a.withholid_person_tax,
a.withholid_other,
a.withholid_sum,
a.actual_salary,
a.unit_social,
a.unit_fund,
a.create_user_id,
a.create_user_name,
a.create_time
</sql>
<sql id="tBusSalary_where">
<if test="tBusSalary != null">
<if test="tBusSalary.id != null and tBusSalary.id.trim() != ''">
AND a.id = #{tBusSalary.id}
</if>
<if test="tBusSalary.teleNo != null and tBusSalary.teleNo.trim() != ''">
AND a.tele_no = #{tBusSalary.teleNo}
</if>
<if test="tBusSalary.empName != null and tBusSalary.empName.trim() != ''">
AND a.emp_name like concat('%',#{tBusSalary.empName}, '%')
</if>
<if test="tBusSalary.empIdCard != null and tBusSalary.empIdCard.trim() != ''">
AND a.emp_id_card like concat(#{tBusSalary.empIdCard}, '%')
</if>
/* 查找部门树以及底下的数据 */
<if test="tBusSalary.deptId != null and tBusSalary.deptId != 1">
AND (a.dept_id = #{tBusSalary.deptId} or a.dept_tree_logo like concat('%-', #{tBusSalary.deptId},'-%'))
</if>
<if test="tBusSalary.deptLevel != null">
AND a.dept_level = #{tBusSalary.deptLevel}
</if>
<if test="tBusSalary.deptName != null and tBusSalary.deptName.trim() != ''">
AND a.dept_name like concat('%', #{tBusSalary.deptName}, '%')
</if>
<if test="tBusSalary.deptTreeLogo != null and tBusSalary.deptTreeLogo.trim() != ''">
AND a.dept_tree_logo = #{tBusSalary.deptTreeLogo}
</if>
<if test="tBusSalary.post != null and tBusSalary.post.trim() != ''">
AND a.post = #{tBusSalary.post}
</if>
<if test="tBusSalary.salaryMonth != null and tBusSalary.salaryMonth.trim() != ''">
AND a.salary_month = #{tBusSalary.salaryMonth}
</if>
<if test="tBusSalary.relaySalary != null">
AND a.relay_salary = #{tBusSalary.relaySalary}
</if>
<if test="tBusSalary.relayIncent != null">
AND a.relay_incent = #{tBusSalary.relayIncent}
</if>
<if test="tBusSalary.relayOther != null">
AND a.relay_other = #{tBusSalary.relayOther}
</if>
<if test="tBusSalary.relaySum != null">
AND a.relay_sum = #{tBusSalary.relaySum}
</if>
<if test="tBusSalary.withholidPersonSocial != null">
AND a.withholid_person_social = #{tBusSalary.withholidPersonSocial}
</if>
<if test="tBusSalary.withholidPersonFund != null">
AND a.withholid_person_fund = #{tBusSalary.withholidPersonFund}
</if>
<if test="tBusSalary.withholidPersonTax != null">
AND a.withholid_person_tax = #{tBusSalary.withholidPersonTax}
</if>
<if test="tBusSalary.withholidOther != null">
AND a.withholid_other = #{tBusSalary.withholidOther}
</if>
<if test="tBusSalary.withholidSum != null">
AND a.withholid_sum = #{tBusSalary.withholidSum}
</if>
<if test="tBusSalary.actualSalary != null">
AND a.actual_salary = #{tBusSalary.actualSalary}
</if>
<if test="tBusSalary.unitSocial != null">
AND a.unit_social = #{tBusSalary.unitSocial}
</if>
<if test="tBusSalary.unitFund != null">
AND a.unit_fund = #{tBusSalary.unitFund}
</if>
<if test="tBusSalary.createUserId != null and tBusSalary.createUserId.trim() != ''">
AND a.create_user_id = #{tBusSalary.createUserId}
</if>
<if test="tBusSalary.createUserName != null and tBusSalary.createUserName.trim() != ''">
AND a.create_user_name = #{tBusSalary.createUserName}
</if>
<if test="tBusSalary.createTime != null">
AND a.create_time = #{tBusSalary.createTime}
</if>
</if>
</sql>
<!--tBusSalary简单分页查询-->
<select id="getTBusSalaryPage" resultMap="tBusSalaryMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary a
<where>
1=1
<include refid="tBusSalary_where"/>
</where>
</select>
<!--tBusSalary导出-->
<select id="doExport" resultMap="tBusSalaryMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_bus_salary a
<where>
1=1
<if test="idList != null and idList.size > 0">
AND a.id in
<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="idList == null or idList.size == 0">
<include refid="tBusSalary_where"/>
</if>
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TSalaryStatisticsDepartMapper">
<resultMap id="TSalaryStatisticsDepartVOMap"
type="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO">
<result property="id" column="ID" jdbcType="VARCHAR"/>
<result property="departName" column="DEPART_NAME" jdbcType="VARCHAR"/>
<result property="departId" column="DEPART_ID" jdbcType="INTEGER"/>
<result property="treeLogo" column="TREE_LOGO" jdbcType="VARCHAR"/>
<result property="salaryMonth" column="SALARY_MONTH" jdbcType="CHAR"/>
<result property="lastSalaryMonth" column="LAST_SALARY_MONTH" jdbcType="CHAR"/>
<result property="peopleNumber" column="PEOPLE_NUMBER" jdbcType="INTEGER"/>
<result property="peopleNumberOffset" column="PEOPLE_NUMBER_OFFSET" jdbcType="DECIMAL"/>
<result property="peopleNumberFlag" column="PEOPLE_NUMBER_FLAG" jdbcType="CHAR"/>
<result property="payableSalary" column="PAYABLE_SALARY" jdbcType="DECIMAL"/>
<result property="payableSalaryOffset" column="PAYABLE_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableSalaryFlag" column="PAYABLE_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableIncentiveSalary" column="PAYABLE_INCENTIVE_SALARY" jdbcType="DECIMAL"/>
<result property="payableIncentiveSalaryOffset" column="PAYABLE_INCENTIVE_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableIncentiveSalaryFlag" column="PAYABLE_INCENTIVE_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableOtherSalary" column="PAYABLE_OTHER_SALARY" jdbcType="DECIMAL"/>
<result property="payableOtherSalaryOffset" column="PAYABLE_OTHER_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableOtherSalaryFlag" column="PAYABLE_OTHER_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableTotal" column="PAYABLE_TOTAL" jdbcType="DECIMAL"/>
<result property="payableTotalOffset" column="PAYABLE_TOTAL_OFFSET" jdbcType="DECIMAL"/>
<result property="payableTotalFlag" column="PAYABLE_TOTAL_FLAG" jdbcType="CHAR"/>
<result property="companySocial" column="COMPANY_SOCIAL" jdbcType="DECIMAL"/>
<result property="companySocialOffset" column="COMPANY_SOCIAL_OFFSET" jdbcType="DECIMAL"/>
<result property="companySocialFlag" column="COMPANY_SOCIAL_FLAG" jdbcType="CHAR"/>
<result property="companyAccFund" column="COMPANY_ACC_FUND" jdbcType="DECIMAL"/>
<result property="companyAccFundOffset" column="COMPANY_ACC_FUND_OFFSET" jdbcType="DECIMAL"/>
<result property="companyAccFundFlag" column="COMPANY_ACC_FUND_FLAG" jdbcType="CHAR"/>
<result property="personalSocial" column="PERSONAL_SOCIAL" jdbcType="DECIMAL"/>
<result property="personalSocialOffset" column="PERSONAL_SOCIAL_OFFSET" jdbcType="DECIMAL"/>
<result property="personalSocialFlag" column="PERSONAL_SOCIAL_FLAG" jdbcType="CHAR"/>
<result property="personalAccFund" column="PERSONAL_ACC_FUND" jdbcType="DECIMAL"/>
<result property="personalAccFundOffset" column="PERSONAL_ACC_FUND_OFFSET" jdbcType="DECIMAL"/>
<result property="personalAccFundFlag" column="PERSONAL_ACC_FUND_FLAG" jdbcType="CHAR"/>
<result property="indIncomeTax" column="IND_INCOME_TAX" jdbcType="DECIMAL"/>
<result property="indIncomeTaxOffset" column="IND_INCOME_TAX_OFFSET" jdbcType="DECIMAL"/>
<result property="indIncomeTaxFlag" column="IND_INCOME_TAX_FLAG" jdbcType="CHAR"/>
<result property="otherDedutions" column="OTHER_DEDUTIONS" jdbcType="DECIMAL"/>
<result property="otherDedutionOffset" column="OTHER_DEDUTION_OFFSET" jdbcType="DECIMAL"/>
<result property="otherDedutionFalg" column="OTHER_DEDUTION_FALG" jdbcType="CHAR"/>
<result property="dedutionTotal" column="DEDUTION_TOTAL" jdbcType="DECIMAL"/>
<result property="dedutionTotalOffset" column="DEDUTION_TOTAL_OFFSET" jdbcType="DECIMAL"/>
<result property="dedutionTotalFlag" column="DEDUTION_TOTAL_FLAG" jdbcType="CHAR"/>
<result property="actualSalary" column="ACTUAL_SALARY" jdbcType="DECIMAL"/>
<result property="actualSalaryOffset" column="ACTUAL_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="actualSalaryFlag" column="ACTUAL_SALARY_FLAG" jdbcType="CHAR"/>
<result property="perCapita" column="PER_CAPITA" jdbcType="DECIMAL"/>
<result property="perCapitaOffset" column="PER_CAPITA_OFFSET" jdbcType="DECIMAL"/>
<result property="perCapitaFlag" column="PER_CAPITA_FLAG" jdbcType="CHAR"/>
<collection property="children"
ofType="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO"
column="{salaryMonth=SALARY_MONTH, treeLogo=TREE_LOGO, lastSalaryMonth=LAST_SALARY_MONTH}"
select="sumChildSelect"
javaType="java.util.ArrayList"/>
</resultMap>
<resultMap id="TSalaryDepartTotalVO" type="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO">
</resultMap>
<sql id="Where_TSalaryStatisticsDepartVO">
<if test="query.treeLogo != null">
and temp.TREE_LOGO like concat(#{query.treeLogo}, '%')
</if>
<if test="query.salaryMonth != null and query.salaryMonth.trim() != ''">
and temp.SALARY_MONTH = #{query.salaryMonth}
</if>
<if test="query.departLevel != null">
and temp.DEPART_LEVEL = #{query.departLevel}
</if>
</sql>
<sql id="Where_ChangeType">
<if test="query.salaryChangeType != null and query.salaryChangeType.trim() != ''">
<!-- 0应发增加 -->
<if test="query.salaryChangeType == '0'.toString()">
and PAYABLE_TOTAL_FLAG = '2'
</if>
<!-- 1应发减少 -->
<if test="query.salaryChangeType == '1'.toString()">
and PAYABLE_TOTAL_FLAG = '0'
</if>
<!-- 2应发不变 -->
<if test="query.salaryChangeType == '2'.toString()">
and PAYABLE_TOTAL_FLAG = '1'
</if>
<!-- 3实发增加 -->
<if test="query.salaryChangeType == '3'.toString()">
and ACTUAL_SALARY_FLAG = '2'
</if>
<!-- 4实发减少 -->
<if test="query.salaryChangeType == '4'.toString()">
and ACTUAL_SALARY_FLAG = '0'
</if>
<!-- 5实发不变 -->
<if test="query.salaryChangeType == '5'.toString()">
and ACTUAL_SALARY_FLAG = '1'
</if>
<!-- 6人均成本增加 -->
<if test="query.salaryChangeType == '6'.toString()">
and PER_CAPITA_FLAG = '2'
</if>
<!-- 7人均成本减少 -->
<if test="query.salaryChangeType == '7'.toString()">
and PER_CAPITA_FLAG = '0'
</if>
<!-- 8人均成本不变 -->
<if test="query.salaryChangeType == '8'.toString()">
and PER_CAPITA_FLAG = '1'
</if>
<!-- 9扣款增加 -->
<if test="query.salaryChangeType == '9'.toString()">
and DEDUTION_TOTAL_FLAG = '2'
</if>
<!-- 10扣款减少 -->
<if test="query.salaryChangeType == '10'.toString()">
and DEDUTION_TOTAL_FLAG = '0'
</if>
<!-- 11扣款不变 -->
<if test="query.salaryChangeType == '11'.toString()">
and DEDUTION_TOTAL_FLAG = '1'
</if>
</if>
</sql>
<select id="sumChildSelect" resultType="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO">
select ID, DEPART_ID, DEPART_NAME, DEPART_LEVEL, SALARY_MONTH, LAST_SALARY_MONTH, PEOPLE_NUMBER,
PEOPLE_NUMBER_OFFSET,PEOPLE_NUMBER_FLAG, PAYABLE_SALARY, TREE_LOGO,
PAYABLE_SALARY_OFFSET, PAYABLE_SALARY_FLAG, PAYABLE_INCENTIVE_SALARY, PAYABLE_INCENTIVE_SALARY_OFFSET,
PAYABLE_INCENTIVE_SALARY_FLAG, PAYABLE_OTHER_SALARY, PAYABLE_OTHER_SALARY_OFFSET, PAYABLE_OTHER_SALARY_FLAG,
PAYABLE_TOTAL, PAYABLE_TOTAL_OFFSET, PAYABLE_TOTAL_FLAG, COMPANY_SOCIAL, COMPANY_SOCIAL_OFFSET,
COMPANY_SOCIAL_FLAG, COMPANY_ACC_FUND, COMPANY_ACC_FUND_OFFSET, COMPANY_ACC_FUND_FLAG, PERSONAL_SOCIAL,
PERSONAL_SOCIAL_OFFSET, PERSONAL_SOCIAL_FLAG, PERSONAL_ACC_FUND, PERSONAL_ACC_FUND_OFFSET,
PERSONAL_ACC_FUND_FLAG, IND_INCOME_TAX, IND_INCOME_TAX_OFFSET, IND_INCOME_TAX_FLAG, OTHER_DEDUTIONS,
OTHER_DEDUTION_OFFSET, OTHER_DEDUTION_FALG, DEDUTION_TOTAL, DEDUTION_TOTAL_OFFSET, DEDUTION_TOTAL_FLAG,
ACTUAL_SALARY, ACTUAL_SALARY_OFFSET, ACTUAL_SALARY_FLAG, round(sum(PER_CAPITA), 2) AS PER_CAPITA,
round(sum(PER_CAPITA_OFFSET), 2) AS PER_CAPITA_OFFSET, PER_CAPITA_FLAG
from (
select
`a`.`ID` AS `ID`,
`a`.`DEPART_ID` AS `DEPART_ID`,
`a`.`DEPART_NAME` AS `DEPART_NAME`,
`a`.`DEPART_LEVEL` AS `DEPART_LEVEL`,
`a`.`SALARY_MONTH` AS `SALARY_MONTH`,
`b`.`SALARY_MONTH` AS `LAST_SALARY_MONTH`,
`a`.`PAYABLE_SALARY` AS `PAYABLE_SALARY`,
`a`.`TREE_LOGO` AS `TREE_LOGO`,
`a`.`PEOPLE_NUMBER` AS `PEOPLE_NUMBER`,
abs((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`)) AS `PEOPLE_NUMBER_OFFSET`,
(case
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) > 0) then '2'
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) = 0) then '1'
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) <![CDATA[<]]> 0)
then '0' end) AS `PEOPLE_NUMBER_FLAG`,
abs((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`)) AS `PAYABLE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_SALARY_FLAG`,
`a`.`PAYABLE_INCENTIVE_SALARY` AS `PAYABLE_INCENTIVE_SALARY`,
abs((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`)) AS `PAYABLE_INCENTIVE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_INCENTIVE_SALARY_FLAG`,
`a`.`PAYABLE_OTHER_SALARY` AS `PAYABLE_OTHER_SALARY`,
abs((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`)) AS `PAYABLE_OTHER_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_OTHER_SALARY_FLAG`,
`a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`COMPANY_SOCIAL` AS `COMPANY_SOCIAL`,
abs((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`)) AS `COMPANY_SOCIAL_OFFSET`,
(case
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) > 0) then '2'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) = 0) then '1'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_SOCIAL_FLAG`,
`a`.`COMPANY_ACC_FUND` AS `COMPANY_ACC_FUND`,
abs((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`)) AS `COMPANY_ACC_FUND_OFFSET`,
(case
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) > 0) then '2'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) = 0) then '1'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_ACC_FUND_FLAG`,
`a`.`PERSONAL_SOCIAL` AS `PERSONAL_SOCIAL`,
abs((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`)) AS `PERSONAL_SOCIAL_OFFSET`,
(case
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) > 0) then '2'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) = 0) then '1'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_SOCIAL_FLAG`,
`a`.`PERSONAL_ACC_FUND` AS `PERSONAL_ACC_FUND`,
abs((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`)) AS `PERSONAL_ACC_FUND_OFFSET`,
(case
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) > 0) then '2'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) = 0) then '1'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_ACC_FUND_FLAG`,
`a`.`IND_INCOME_TAX` AS `IND_INCOME_TAX`,
abs((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`)) AS `IND_INCOME_TAX_OFFSET`,
(case
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) > 0) then '2'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) = 0) then '1'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) <![CDATA[<]]> 0)
then '0' end) AS `IND_INCOME_TAX_FLAG`,
`a`.`OTHER_DEDUTIONS` AS `OTHER_DEDUTIONS`,
abs((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`)) AS `OTHER_DEDUTION_OFFSET`,
(case
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) > 0) then '2'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) = 0) then '1'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) <![CDATA[<]]> 0)
then '0' end) AS `OTHER_DEDUTION_FALG`,
`a`.`DEDUTION_TOTAL` AS `DEDUTION_TOTAL`,
abs((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`)) AS `DEDUTION_TOTAL_OFFSET`,
(case
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) > 0) then '2'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) = 0) then '1'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `DEDUTION_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`,
`a`.`PER_CAPITA` AS `PER_CAPITA`,
abs((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`)) AS `PER_CAPITA_OFFSET`,
(case
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) > 0) then '2'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) = 0) then '1'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) <![CDATA[<]]> 0)
then '0' end) AS `PER_CAPITA_FLAG`
from (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat(#{treeLogo}, '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`), null) AS `PEOPLE_NUMBER`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE
`salary_month` = #{salaryMonth}
and `dept_tree_logo` like concat(#{treeLogo}, '%')
) `a`
LEFT JOIN (
SELECT
`hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat(#{treeLogo}, '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`), null) AS `PEOPLE_NUMBER`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM
`hr_business`.`t_bus_salary`
WHERE
salary_month = #{lastSalaryMonth}
and `dept_tree_logo` like concat(#{treeLogo}, '%')
) `b` ON `a`.DOMAIN = `b`.DOMAIN
) `temp`
<where>
1=1
and temp.TREE_LOGO like concat(#{treeLogo}, '%')
and temp.SALARY_MONTH = #{salaryMonth}
</where>
</select>
<select id="getListByPage" resultMap="TSalaryStatisticsDepartVOMap">
select distinct substring_index(a.dept_tree_logo, '-', (#{query.departLevel} + 2)) AS TREE_LOGO,
#{query.salaryMonth} AS SALARY_MONTH,
#{query.lastSalaryMonth} AS LAST_SALARY_MONTH,
b.ID AS ID,
b.NAME AS DEPART_NAME,
b.ID AS DEPART_ID
from hr_business.t_bus_salary a
left join hr_business.t_bus_dept b
on substring_index(a.dept_tree_logo, '-', (#{query.departLevel} + 2)) = b.tree_logo
<where>
1 = 1
and a.salary_month = #{query.salaryMonth}
and length(a.dept_tree_logo) - length(replace(a.dept_tree_logo, '-', '')) >= (#{query.departLevel} + 1)
and substring_index(a.dept_tree_logo, '-', (#{query.departLevel} + 2)) like concat(#{query.treeLogo}, '%')
</where>
</select>
<select id="getCurDepartData" resultType="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsDepartVO">
select ID,
DEPART_ID,
DEPART_NAME,
DEPART_LEVEL,
SALARY_MONTH,
LAST_SALARY_MONTH,
PEOPLE_NUMBER,
PEOPLE_NUMBER_OFFSET,
PEOPLE_NUMBER_FLAG,
PAYABLE_SALARY,
TREE_LOGO,
PAYABLE_SALARY_OFFSET,
PAYABLE_SALARY_FLAG,
PAYABLE_INCENTIVE_SALARY,
PAYABLE_INCENTIVE_SALARY_OFFSET,
PAYABLE_INCENTIVE_SALARY_FLAG,
PAYABLE_OTHER_SALARY,
PAYABLE_OTHER_SALARY_OFFSET,
PAYABLE_OTHER_SALARY_FLAG,
PAYABLE_TOTAL,
PAYABLE_TOTAL_OFFSET,
PAYABLE_TOTAL_FLAG,
COMPANY_SOCIAL,
COMPANY_SOCIAL_OFFSET,
COMPANY_SOCIAL_FLAG,
COMPANY_ACC_FUND,
COMPANY_ACC_FUND_OFFSET,
COMPANY_ACC_FUND_FLAG,
PERSONAL_SOCIAL,
PERSONAL_SOCIAL_OFFSET,
PERSONAL_SOCIAL_FLAG,
PERSONAL_ACC_FUND,
PERSONAL_ACC_FUND_OFFSET,
PERSONAL_ACC_FUND_FLAG,
IND_INCOME_TAX,
IND_INCOME_TAX_OFFSET,
IND_INCOME_TAX_FLAG,
OTHER_DEDUTIONS,
OTHER_DEDUTION_OFFSET,
OTHER_DEDUTION_FALG,
DEDUTION_TOTAL,
DEDUTION_TOTAL_OFFSET,
DEDUTION_TOTAL_FLAG,
ACTUAL_SALARY,
ACTUAL_SALARY_OFFSET,
ACTUAL_SALARY_FLAG,
round(sum(PER_CAPITA), 2) AS PER_CAPITA,
round(sum(PER_CAPITA_OFFSET), 2) AS PER_CAPITA_OFFSET,
PER_CAPITA_FLAG
from (
select `a`.`ID` AS `ID`,
`a`.`DEPART_ID` AS `DEPART_ID`,
`a`.`DEPART_NAME` AS `DEPART_NAME`,
`a`.`DEPART_LEVEL` AS `DEPART_LEVEL`,
`a`.`SALARY_MONTH` AS `SALARY_MONTH`,
`b`.`SALARY_MONTH` AS `LAST_SALARY_MONTH`,
`a`.`PAYABLE_SALARY` AS `PAYABLE_SALARY`,
`a`.`TREE_LOGO` AS `TREE_LOGO`,
`a`.`PEOPLE_NUMBER` AS `PEOPLE_NUMBER`,
abs((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`)) AS `PEOPLE_NUMBER_OFFSET`,
(case
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) > 0) then '2'
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) = 0) then '1'
when ((`a`.`PEOPLE_NUMBER` - `b`.`PEOPLE_NUMBER`) <![CDATA[<]]> 0)
then '0' end) AS `PEOPLE_NUMBER_FLAG`,
abs((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`)) AS `PAYABLE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_SALARY_FLAG`,
`a`.`PAYABLE_INCENTIVE_SALARY` AS `PAYABLE_INCENTIVE_SALARY`,
abs((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`)) AS `PAYABLE_INCENTIVE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_INCENTIVE_SALARY_FLAG`,
`a`.`PAYABLE_OTHER_SALARY` AS `PAYABLE_OTHER_SALARY`,
abs((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`)) AS `PAYABLE_OTHER_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_OTHER_SALARY_FLAG`,
`a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`COMPANY_SOCIAL` AS `COMPANY_SOCIAL`,
abs((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`)) AS `COMPANY_SOCIAL_OFFSET`,
(case
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) > 0) then '2'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) = 0) then '1'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_SOCIAL_FLAG`,
`a`.`COMPANY_ACC_FUND` AS `COMPANY_ACC_FUND`,
abs((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`)) AS `COMPANY_ACC_FUND_OFFSET`,
(case
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) > 0) then '2'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) = 0) then '1'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_ACC_FUND_FLAG`,
`a`.`PERSONAL_SOCIAL` AS `PERSONAL_SOCIAL`,
abs((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`)) AS `PERSONAL_SOCIAL_OFFSET`,
(case
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) > 0) then '2'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) = 0) then '1'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_SOCIAL_FLAG`,
`a`.`PERSONAL_ACC_FUND` AS `PERSONAL_ACC_FUND`,
abs((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`)) AS `PERSONAL_ACC_FUND_OFFSET`,
(case
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) > 0) then '2'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) = 0) then '1'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_ACC_FUND_FLAG`,
`a`.`IND_INCOME_TAX` AS `IND_INCOME_TAX`,
abs((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`)) AS `IND_INCOME_TAX_OFFSET`,
(case
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) > 0) then '2'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) = 0) then '1'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) <![CDATA[<]]> 0)
then '0' end) AS `IND_INCOME_TAX_FLAG`,
`a`.`OTHER_DEDUTIONS` AS `OTHER_DEDUTIONS`,
abs((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`)) AS `OTHER_DEDUTION_OFFSET`,
(case
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) > 0) then '2'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) = 0) then '1'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) <![CDATA[<]]> 0)
then '0' end) AS `OTHER_DEDUTION_FALG`,
`a`.`DEDUTION_TOTAL` AS `DEDUTION_TOTAL`,
abs((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`)) AS `DEDUTION_TOTAL_OFFSET`,
(case
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) > 0) then '2'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) = 0) then '1'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `DEDUTION_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`,
`a`.`PER_CAPITA` AS `PER_CAPITA`,
abs((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`)) AS `PER_CAPITA_OFFSET`,
(case
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) > 0) then '2'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) = 0) then '1'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) <![CDATA[<]]> 0)
then '0' end) AS `PER_CAPITA_FLAG`
from (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat('domain', '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`),
null) AS `PEOPLE_NUMBER`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE 1 = 1
and salary_month = #{query.salaryMonth}
and `dept_id` = #{query.departId}
) `a`
LEFT JOIN (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat('domain', '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`),
null) AS `PEOPLE_NUMBER`,
(sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE 1 = 1
and salary_month = #{query.lastSalaryMonth}
and `dept_id` = #{query.departId}
) `b` ON `a`.DOMAIN = `b`.DOMAIN
) `temp`
</select>
<select id="sumSalaryDepart" resultMap="TSalaryDepartTotalVO">
select
sum(PAYABLE_TOTAL) AS PAYABLE_TOTAL,
sum(PAYABLE_TOTAL_OFFSET) AS PAYABLE_TOTAL_OFFSET,
PAYABLE_TOTAL_FLAG,
sum(DEDUTION_TOTAL) AS DEDUTION_TOTAL,
sum(DEDUTION_TOTAL_OFFSET) AS DEDUTION_TOTAL_OFFSET,
DEDUTION_TOTAL_FLAG,
sum(ACTUAL_SALARY) AS ACTUAL_SALARY,
sum(ACTUAL_SALARY_OFFSET) AS ACTUAL_SALARY_OFFSET,
ACTUAL_SALARY_FLAG,
round(sum(PER_CAPITA), 2) AS PER_CAPITA,
round(sum(PER_CAPITA_OFFSET), 2) AS PER_CAPITA_OFFSET,
PER_CAPITA_FLAG
from (
select
`a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`DEDUTION_TOTAL` AS `DEDUTION_TOTAL`,
abs((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`)) AS `DEDUTION_TOTAL_OFFSET`,
(case
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) > 0) then '2'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) = 0) then '1'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `DEDUTION_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`,
`a`.`PER_CAPITA` AS `PER_CAPITA`,
abs((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`)) AS `PER_CAPITA_OFFSET`,
(case
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) > 0) then '2'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) = 0) then '1'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) <![CDATA[<]]> 0)
then '0' end) AS `PER_CAPITA_FLAG`
from (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
#{query.treeLogo} AS `DOMAIN`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`) AS `PEOPLE_NUMBER`,
round(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`), 2) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE
salary_month = #{query.salaryMonth}
and dept_tree_logo like concat(#{query.treeLogo}, '%')
) `a`
LEFT JOIN (
SELECT
`hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
`hr_business`.`t_bus_salary`.`salary_month` AS `salary_month`,
#{query.treeLogo} AS `DOMAIN`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`) AS `PEOPLE_NUMBER`,
round(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`), 2) AS `PER_CAPITA`
FROM
`hr_business`.`t_bus_salary`
WHERE
salary_month = #{query.lastSalaryMonth}
and dept_tree_logo like concat(#{query.treeLogo}, '%')
) `b` ON `a`.DOMAIN = `b`.DOMAIN
) `temp`
</select>
<select id="getCurDepartSumData" resultMap="TSalaryDepartTotalVO">
select PAYABLE_TOTAL,
PAYABLE_TOTAL_OFFSET,
PAYABLE_TOTAL_FLAG,
ACTUAL_SALARY,
ACTUAL_SALARY_OFFSET,
ACTUAL_SALARY_FLAG,
round(sum(PER_CAPITA), 2) AS PER_CAPITA,
round(sum(PER_CAPITA_OFFSET), 2) AS PER_CAPITA_OFFSET,
PER_CAPITA_FLAG
from (
select `a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`,
`a`.`PER_CAPITA` AS `PER_CAPITA`,
abs((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`)) AS `PER_CAPITA_OFFSET`,
(case
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) > 0) then '2'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) = 0) then '1'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) <![CDATA[<]]> 0)
then '0' end) AS `PER_CAPITA_FLAG`
from (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat('domain', '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`),
null) AS `PEOPLE_NUMBER`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE 1 = 1
and salary_month = #{query.salaryMonth}
and `dept_id` = #{query.departId}
) `a`
LEFT JOIN (
SELECT `hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`dept_id` AS `DEPART_ID`,
`hr_business`.`t_bus_salary`.`dept_name` AS `DEPART_NAME`,
`hr_business`.`t_bus_salary`.`dept_level` AS `DEPART_LEVEL`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
concat('domain', '') AS `DOMAIN`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
if(`hr_business`.`t_bus_salary`.`dept_tree_logo` <![CDATA[<>]]> '', count(DISTINCT
`hr_business`.`t_bus_salary`.`emp_id_card`),
null) AS `PEOPLE_NUMBER`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(DISTINCT `hr_business`.`t_bus_salary`.`emp_id_card`)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
WHERE 1 = 1
and salary_month = #{query.lastSalaryMonth}
and `dept_id` = #{query.departId}
) `b` ON `a`.DOMAIN = `b`.DOMAIN
) `temp`
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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.business.mapper.salary.TSalaryStatisticsPersonalMapper">
<resultMap id="TSalaryStatisticsPersonVOMap"
type="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryStatisticsPersonalVO">
<result property="id" column="ID" jdbcType="VARCHAR"/>
<result property="teleNo" column="TELE_NO" jdbcType="VARCHAR"/>
<result property="empIdCard" column="emp_id_card"/>
<result property="empName" column="EMP_NAME" jdbcType="VARCHAR"/>
<result property="salaryMonth" column="SALARY_MONTH" jdbcType="CHAR"/>
<result property="payableSalary" column="PAYABLE_SALARY" jdbcType="DECIMAL"/>
<result property="payableSalaryOffset" column="PAYABLE_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableSalaryFlag" column="PAYABLE_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableIncentiveSalary" column="PAYABLE_INCENTIVE_SALARY" jdbcType="DECIMAL"/>
<result property="payableIncentiveSalaryOffset" column="PAYABLE_INCENTIVE_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableIncentiveSalaryFlag" column="PAYABLE_INCENTIVE_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableOtherSalary" column="PAYABLE_OTHER_SALARY" jdbcType="DECIMAL"/>
<result property="payableOtherSalaryOffset" column="PAYABLE_OTHER_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="payableOtherSalaryFlag" column="PAYABLE_OTHER_SALARY_FLAG" jdbcType="CHAR"/>
<result property="payableTotal" column="PAYABLE_TOTAL" jdbcType="DECIMAL"/>
<result property="payableTotalOffset" column="PAYABLE_TOTAL_OFFSET" jdbcType="DECIMAL"/>
<result property="payableTotalFlag" column="PAYABLE_TOTAL_FLAG" jdbcType="CHAR"/>
<result property="companySocial" column="COMPANY_SOCIAL" jdbcType="DECIMAL"/>
<result property="companySocialOffset" column="COMPANY_SOCIAL_OFFSET" jdbcType="DECIMAL"/>
<result property="companySocialFlag" column="COMPANY_SOCIAL_FLAG" jdbcType="CHAR"/>
<result property="companyAccFund" column="COMPANY_ACC_FUND" jdbcType="DECIMAL"/>
<result property="companyAccFundOffset" column="COMPANY_ACC_FUND_OFFSET" jdbcType="DECIMAL"/>
<result property="companyAccFundFlag" column="COMPANY_ACC_FUND_FLAG" jdbcType="CHAR"/>
<result property="personalSocial" column="PERSONAL_SOCIAL" jdbcType="DECIMAL"/>
<result property="personalSocialOffset" column="PERSONAL_SOCIAL_OFFSET" jdbcType="DECIMAL"/>
<result property="personalSocialFlag" column="PERSONAL_SOCIAL_FLAG" jdbcType="CHAR"/>
<result property="personalAccFund" column="PERSONAL_ACC_FUND" jdbcType="DECIMAL"/>
<result property="personalAccFundOffset" column="PERSONAL_ACC_FUND_OFFSET" jdbcType="DECIMAL"/>
<result property="personalAccFundFlag" column="PERSONAL_ACC_FUND_FLAG" jdbcType="CHAR"/>
<result property="indIncomeTax" column="IND_INCOME_TAX" jdbcType="DECIMAL"/>
<result property="indIncomeTaxOffset" column="IND_INCOME_TAX_OFFSET" jdbcType="DECIMAL"/>
<result property="indIncomeTaxFlag" column="IND_INCOME_TAX_FLAG" jdbcType="CHAR"/>
<result property="otherDedutions" column="OTHER_DEDUTIONS" jdbcType="DECIMAL"/>
<result property="otherDedutionOffset" column="OTHER_DEDUTION_OFFSET" jdbcType="DECIMAL"/>
<result property="otherDedutionFalg" column="OTHER_DEDUTION_FALG" jdbcType="CHAR"/>
<result property="dedutionTotal" column="DEDUTION_TOTAL" jdbcType="DECIMAL"/>
<result property="dedutionTotalOffset" column="DEDUTION_TOTAL_OFFSET" jdbcType="DECIMAL"/>
<result property="dedutionTotalFlag" column="DEDUTION_TOTAL_FLAG" jdbcType="CHAR"/>
<result property="actualSalary" column="ACTUAL_SALARY" jdbcType="DECIMAL"/>
<result property="actualSalaryOffset" column="ACTUAL_SALARY_OFFSET" jdbcType="DECIMAL"/>
<result property="actualSalaryFlag" column="ACTUAL_SALARY_FLAG" jdbcType="CHAR"/>
</resultMap>
<resultMap id="TSalaryDepartTotalVO" type="com.yifu.cloud.plus.v1.business.vo.salary.TSalaryTotalVO">
</resultMap>
<sql id="Where_TSalaryStatisticsPersonVO">
<if test="query.treeLogo != null">
and temp.TREE_LOGO like concat(#{query.treeLogo}, '%')
</if>
<if test="query.teleNo != null and query.teleNo.trim() != ''">
and temp.TELE_NO like concat('%', #{query.teleNo}, '%')
</if>
<if test="query.empName != null and query.empName.trim() != ''">
and temp.EMP_NAME like concat('%', #{query.empName}, '%')
</if>
<if test="query.empIdCard != null and query.empIdCard.trim() != ''">
AND temp.emp_id_card like concat(#{query.empIdCard}, '%')
</if>
<if test="query.salaryMonth != null and query.salaryMonth.trim() != ''">
and temp.SALARY_MONTH = #{query.salaryMonth}
</if>
<if test="query.salaryChangeType != null and query.salaryChangeType.trim() != ''">
<!-- 0应发增加 -->
<if test="query.salaryChangeType == '0'.toString()">
and temp.PAYABLE_TOTAL_FLAG = '2'
</if>
<!-- 1应发减少 -->
<if test="query.salaryChangeType == '1'.toString()">
and temp.PAYABLE_TOTAL_FLAG = '0'
</if>
<!-- 2应发不变 -->
<if test="query.salaryChangeType == '2'.toString()">
and temp.PAYABLE_TOTAL_FLAG = '1'
</if>
<!-- 3实发增加 -->
<if test="query.salaryChangeType == '3'.toString()">
and temp.ACTUAL_SALARY_FLAG = '2'
</if>
<!-- 4实发减少 -->
<if test="query.salaryChangeType == '4'.toString()">
and temp.ACTUAL_SALARY_FLAG = '0'
</if>
<!-- 5实发不变 -->
<if test="query.salaryChangeType == '5'.toString()">
and temp.ACTUAL_SALARY_FLAG = '1'
</if>
<!-- 6人均成本增加 -->
<if test="query.salaryChangeType == '6'.toString()">
and temp.PER_CAPITA_FLAG = '2'
</if>
<!-- 7人均成本减少 -->
<if test="query.salaryChangeType == '7'.toString()">
and temp.PER_CAPITA_FLAG = '0'
</if>
<!-- 8人均成本不变 -->
<if test="query.salaryChangeType == '8'.toString()">
and temp.PER_CAPITA_FLAG = '1'
</if>
<!-- 9扣款增加 -->
<if test="query.salaryChangeType == '9'.toString()">
and temp.DEDUTION_TOTAL_FLAG = '2'
</if>
<!-- 10扣款减少 -->
<if test="query.salaryChangeType == '10'.toString()">
and temp.DEDUTION_TOTAL_FLAG = '0'
</if>
<!-- 11扣款不变 -->
<if test="query.salaryChangeType == '11'.toString()">
and temp.DEDUTION_TOTAL_FLAG = '1'
</if>
</if>
</sql>
<select id="getListByPage" resultMap="TSalaryStatisticsPersonVOMap">
select ID, TELE_NO,EMP_ID_CARD, EMP_NAME, SALARY_MONTH, PAYABLE_SALARY,TREE_LOGO,
PAYABLE_SALARY_OFFSET, PAYABLE_SALARY_FLAG, PAYABLE_INCENTIVE_SALARY, PAYABLE_INCENTIVE_SALARY_OFFSET,
PAYABLE_INCENTIVE_SALARY_FLAG, PAYABLE_OTHER_SALARY, PAYABLE_OTHER_SALARY_OFFSET, PAYABLE_OTHER_SALARY_FLAG,
PAYABLE_TOTAL, PAYABLE_TOTAL_OFFSET, PAYABLE_TOTAL_FLAG, COMPANY_SOCIAL, COMPANY_SOCIAL_OFFSET,
COMPANY_SOCIAL_FLAG, COMPANY_ACC_FUND, COMPANY_ACC_FUND_OFFSET, COMPANY_ACC_FUND_FLAG, PERSONAL_SOCIAL,
PERSONAL_SOCIAL_OFFSET, PERSONAL_SOCIAL_FLAG, PERSONAL_ACC_FUND, PERSONAL_ACC_FUND_OFFSET,
PERSONAL_ACC_FUND_FLAG, IND_INCOME_TAX, IND_INCOME_TAX_OFFSET, IND_INCOME_TAX_FLAG, OTHER_DEDUTIONS,
OTHER_DEDUTION_OFFSET, OTHER_DEDUTION_FALG, DEDUTION_TOTAL, DEDUTION_TOTAL_OFFSET, DEDUTION_TOTAL_FLAG,
ACTUAL_SALARY, ACTUAL_SALARY_OFFSET, ACTUAL_SALARY_FLAG
from (
select
`a`.`ID` AS `ID`,
`a`.`TELE_NO` AS `TELE_NO`,
`a`.`EMP_NAME` AS `EMP_NAME`,
`a`.`EMP_ID_CARD` AS `EMP_ID_CARD`,
`a`.`TREE_LOGO` AS `TREE_LOGO`,
`a`.`SALARY_MONTH` AS `SALARY_MONTH`,
`a`.`PAYABLE_SALARY` AS `PAYABLE_SALARY`,
abs((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`)) AS `PAYABLE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_SALARY` - `b`.`PAYABLE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_SALARY_FLAG`,
`a`.`PAYABLE_INCENTIVE_SALARY` AS `PAYABLE_INCENTIVE_SALARY`,
abs((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`)) AS `PAYABLE_INCENTIVE_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_INCENTIVE_SALARY` - `b`.`PAYABLE_INCENTIVE_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_INCENTIVE_SALARY_FLAG`,
`a`.`PAYABLE_OTHER_SALARY` AS `PAYABLE_OTHER_SALARY`,
abs((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`)) AS `PAYABLE_OTHER_SALARY_OFFSET`,
(case
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) > 0) then '2'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) = 0) then '1'
when ((`a`.`PAYABLE_OTHER_SALARY` - `b`.`PAYABLE_OTHER_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_OTHER_SALARY_FLAG`,
`a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`COMPANY_SOCIAL` AS `COMPANY_SOCIAL`,
abs((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`)) AS `COMPANY_SOCIAL_OFFSET`,
(case
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) > 0) then '2'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) = 0) then '1'
when ((`a`.`COMPANY_SOCIAL` - `b`.`COMPANY_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_SOCIAL_FLAG`,
`a`.`COMPANY_ACC_FUND` AS `COMPANY_ACC_FUND`,
abs((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`)) AS `COMPANY_ACC_FUND_OFFSET`,
(case
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) > 0) then '2'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) = 0) then '1'
when ((`a`.`COMPANY_ACC_FUND` - `b`.`COMPANY_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `COMPANY_ACC_FUND_FLAG`,
`a`.`PERSONAL_SOCIAL` AS `PERSONAL_SOCIAL`,
abs((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`)) AS `PERSONAL_SOCIAL_OFFSET`,
(case
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) > 0) then '2'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) = 0) then '1'
when ((`a`.`PERSONAL_SOCIAL` - `b`.`PERSONAL_SOCIAL`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_SOCIAL_FLAG`,
`a`.`PERSONAL_ACC_FUND` AS `PERSONAL_ACC_FUND`,
abs((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`)) AS `PERSONAL_ACC_FUND_OFFSET`,
(case
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) > 0) then '2'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) = 0) then '1'
when ((`a`.`PERSONAL_ACC_FUND` - `b`.`PERSONAL_ACC_FUND`) <![CDATA[<]]> 0)
then '0' end) AS `PERSONAL_ACC_FUND_FLAG`,
`a`.`IND_INCOME_TAX` AS `IND_INCOME_TAX`,
abs((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`)) AS `IND_INCOME_TAX_OFFSET`,
(case
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) > 0) then '2'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) = 0) then '1'
when ((`a`.`IND_INCOME_TAX` - `b`.`IND_INCOME_TAX`) <![CDATA[<]]> 0)
then '0' end) AS `IND_INCOME_TAX_FLAG`,
`a`.`OTHER_DEDUTIONS` AS `OTHER_DEDUTIONS`,
abs((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`)) AS `OTHER_DEDUTION_OFFSET`,
(case
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) > 0) then '2'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) = 0) then '1'
when ((`a`.`OTHER_DEDUTIONS` - `b`.`OTHER_DEDUTIONS`) <![CDATA[<]]> 0)
then '0' end) AS `OTHER_DEDUTION_FALG`,
`a`.`DEDUTION_TOTAL` AS `DEDUTION_TOTAL`,
abs((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`)) AS `DEDUTION_TOTAL_OFFSET`,
(case
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) > 0) then '2'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) = 0) then '1'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `DEDUTION_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`
from (
SELECT
`hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`tele_no` AS `TELE_NO`,
`hr_business`.`t_bus_salary`.`emp_id_card` AS `EMP_ID_CARD`,
`hr_business`.`t_bus_salary`.`emp_name` AS `EMP_NAME`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`
FROM `hr_business`.`t_bus_salary`
<where>
1=1
and salary_month = #{query.salaryMonth}
<if test="query.selectType == '0'.toString()">
and dept_tree_logo like concat(#{query.treeLogo}, '%')
</if>
<if test="query.selectType == '1'.toString()">
and dept_tree_logo = #{query.treeLogo}
</if>
</where>
GROUP BY EMP_ID_CARD
) `a`
LEFT JOIN (
SELECT
`hr_business`.`t_bus_salary`.`id` AS `ID`,
`hr_business`.`t_bus_salary`.`tele_no` AS `TELE_NO`,
`hr_business`.`t_bus_salary`.`emp_name` AS `EMP_NAME`,
`hr_business`.`t_bus_salary`.`emp_id_card` AS `EMP_ID_CARD`,
`hr_business`.`t_bus_salary`.`salary_month` AS `salary_month`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `TREE_LOGO`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`
FROM
`hr_business`.`t_bus_salary`
<where>
1=1
and salary_month = #{query.lastSalaryMonth}
<if test="query.selectType == '0'.toString()">
and dept_tree_logo like concat(#{query.treeLogo}, '%')
</if>
<if test="query.selectType == '1'.toString()">
and dept_tree_logo = #{query.treeLogo}
</if>
</where>
GROUP BY emp_id_card
) `b` ON `a`.emp_id_card = `b`.emp_id_card
) `temp`
<where>
1=1
<include refid="Where_TSalaryStatisticsPersonVO"/>
</where>
</select>
<select id="sumSalaryPerson" resultMap="TSalaryDepartTotalVO">
select TREE_LOGO,
EMP_NAME,
TELE_NO,
SALARY_MONTH,
sum(PAYABLE_TOTAL) AS PAYABLE_TOTAL,
sum(PAYABLE_TOTAL_OFFSET) AS PAYABLE_TOTAL_OFFSET,
PAYABLE_TOTAL_FLAG,
sum(DEDUTION_TOTAL) AS DEDUTION_TOTAL,
sum(DEDUTION_TOTAL_OFFSET) AS DEDUTION_TOTAL_OFFSET,
DEDUTION_TOTAL_FLAG,
sum(ACTUAL_SALARY) AS ACTUAL_SALARY,
sum(ACTUAL_SALARY_OFFSET) AS ACTUAL_SALARY_OFFSET,
ACTUAL_SALARY_FLAG,
convert(sum(PER_CAPITA), DECIMAL(10,2)) AS PER_CAPITA,
convert(sum(PER_CAPITA_OFFSET), DECIMAL(10,2)) AS PER_CAPITA_OFFSET,
PER_CAPITA_FLAG
from (
select
`a`.`TELE_NO` AS `TELE_NO`,
`a`.`EMP_NAME` AS `EMP_NAME`,
`a`.`SALARY_MONTH` AS `SALARY_MONTH`,
`a`.`DEPART_TREE_LOGO` AS `TREE_LOGO`,
`a`.`PAYABLE_TOTAL` AS `PAYABLE_TOTAL`,
abs((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`)) AS `PAYABLE_TOTAL_OFFSET`,
(case
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) > 0) then '2'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) = 0) then '1'
when ((`a`.`PAYABLE_TOTAL` - `b`.`PAYABLE_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `PAYABLE_TOTAL_FLAG`,
`a`.`DEDUTION_TOTAL` AS `DEDUTION_TOTAL`,
abs((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`)) AS `DEDUTION_TOTAL_OFFSET`,
(case
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) > 0) then '2'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) = 0) then '1'
when ((`a`.`DEDUTION_TOTAL` - `b`.`DEDUTION_TOTAL`) <![CDATA[<]]> 0)
then '0' end) AS `DEDUTION_TOTAL_FLAG`,
`a`.`ACTUAL_SALARY` AS `ACTUAL_SALARY`,
abs((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`)) AS `ACTUAL_SALARY_OFFSET`,
(case
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) > 0) then '2'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) = 0) then '1'
when ((`a`.`ACTUAL_SALARY` - `b`.`ACTUAL_SALARY`) <![CDATA[<]]> 0)
then '0' end) AS `ACTUAL_SALARY_FLAG`,
`a`.`PER_CAPITA` AS `PER_CAPITA`,
abs((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`)) AS `PER_CAPITA_OFFSET`,
(case
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) > 0) then '2'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) = 0) then '1'
when ((`a`.`PER_CAPITA` - `b`.`PER_CAPITA`) <![CDATA[<]]> 0)
then '0' end) AS `PER_CAPITA_FLAG`
from (
SELECT
`hr_business`.`t_bus_salary`.`tele_no` AS `TELE_NO`,
`hr_business`.`t_bus_salary`.`emp_name` AS `EMP_NAME`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `DEPART_TREE_LOGO`,
`hr_business`.`t_bus_salary`.`salary_month` AS `SALARY_MONTH`,
#{query.treeLogo} AS `DOMAIN`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(distinct emp_id_card)) AS `PER_CAPITA`
FROM `hr_business`.`t_bus_salary`
<where>
1=1
and salary_month = #{query.salaryMonth}
<if test="query.selectType == '0'.toString()">
and dept_tree_logo like concat(#{query.treeLogo}, '%')
</if>
<if test="query.selectType == '1'.toString()">
and dept_tree_logo = #{query.treeLogo}
</if>
<if test="query.teleNo != null and query.teleNo.trim() != ''">
and TELE_NO like concat('%', #{query.teleNo}, '%')
</if>
<if test="query.empName != null and query.empName.trim() != ''">
and EMP_NAME like concat('%', #{query.empName}, '%')
</if>
<if test="query.empIdCard != null and query.empIdCard.trim() != ''">
AND EMP_ID_CARD like concat(#{query.empIdCard}, '%')
</if>
</where>
) `a`
LEFT JOIN
(
SELECT
`hr_business`.`t_bus_salary`.`tele_no` AS `TELE_NO`,
`hr_business`.`t_bus_salary`.`emp_name` AS `EMP_NAME`,
`hr_business`.`t_bus_salary`.`dept_tree_logo` AS `DEPART_TREE_LOGO`,
`hr_business`.`t_bus_salary`.`salary_month` AS `salary_month`,
#{query.treeLogo} AS `DOMAIN`,
sum(`hr_business`.`t_bus_salary`.`relay_salary`) AS `PAYABLE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_incent`) AS `PAYABLE_INCENTIVE_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_other`) AS `PAYABLE_OTHER_SALARY`,
sum(`hr_business`.`t_bus_salary`.`relay_sum`) AS `PAYABLE_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`unit_social`) AS `COMPANY_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`unit_fund`) AS `COMPANY_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_social`) AS `PERSONAL_SOCIAL`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_fund`) AS `PERSONAL_ACC_FUND`,
sum(`hr_business`.`t_bus_salary`.`withholid_person_tax`) AS `IND_INCOME_TAX`,
sum(`hr_business`.`t_bus_salary`.`withholid_other`) AS `OTHER_DEDUTIONS`,
sum(`hr_business`.`t_bus_salary`.`withholid_sum`) AS `DEDUTION_TOTAL`,
sum(`hr_business`.`t_bus_salary`.`actual_salary`) AS `ACTUAL_SALARY`,
(
sum(`hr_business`.`t_bus_salary`.`relay_sum`) /
count(distinct emp_id_card)) AS `PER_CAPITA`
FROM
`hr_business`.`t_bus_salary`
<where>
1=1
and salary_month = #{query.lastSalaryMonth}
<if test="query.selectType == '0'.toString()">
and dept_tree_logo like concat(#{query.treeLogo}, '%')
</if>
<if test="query.selectType == '1'.toString()">
and dept_tree_logo = #{query.treeLogo}
</if>
<if test="query.teleNo != null and query.teleNo.trim() != ''">
and TELE_NO like concat('%', #{query.teleNo}, '%')
</if>
<if test="query.empName != null and query.empName.trim() != ''">
and EMP_NAME like concat('%', #{query.empName}, '%')
</if>
<if test="query.empIdCard != null and query.empIdCard.trim() != ''">
AND EMP_ID_CARD like concat(#{query.empIdCard}, '%')
</if>
</where>
) `b` ON `a`.DOMAIN = `b`.DOMAIN
) `temp`
</select>
</mapper>
...@@ -512,4 +512,12 @@ public interface CommonConstants { ...@@ -512,4 +512,12 @@ public interface CommonConstants {
* @Author fxj * @Author fxj
**/ **/
public static final long HR_B_ORG_ID = 295; public static final long HR_B_ORG_ID = 295;
public static final String TAG_FROMAT = "%04d";
/**
* SEARCH SUCESS
* @Author fxj
* @Date 2020-10-13
**/
public static final String SEARCH_SUCCESS = "查询成功!";
} }
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