Commit b23508c5 authored by hongguangwu's avatar hongguangwu

Merge remote-tracking branch 'origin/develop' into develop

parents 2b54ba92 cdf9d75e
......@@ -285,15 +285,16 @@ public class TEmployeeProject extends BaseEntity {
private Integer insuranceStatus;
/**
* 社保状态(字典)
* 社保状态(字典): 0 无社保 1 处理中 2.部分购买 3.正常 4.已派减
*/
@Schema(description = "社保状态(字典)")
@Schema(description = "社保状态(字典): 0 无社保 1 处理中 2.部分购买 3.正常 4.已派减")
private Integer socialStatus;
/**
* 公积金状态(字典)
*/
@Schema(description = "公积金状态(字典)")
@Schema(description = "公积金状态(字典): 0 无公积金 1 处理中 2.部分购买 3.正常 4.已派减")
private Integer fundStatus;
/**
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Author fxj
* @Date 2022/8/5
* @Description
* @Version 1.0
*/
@Data
public class UpProjectSocialFundVo implements Serializable {
// 社保状态
String socialStatus;
// 公积金状态
String fundStatus;
// 项目编码
String departNo;
// 身份证
String empIdCard;
}
......@@ -24,6 +24,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpDispatchAddVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpdateEmpVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -291,4 +293,16 @@ public class TEmployeeProjectController {
public TEmployeeProject getByEmpIdAndDeptId(@RequestBody TEmployeeProject employeeProject) {
return tEmployeeProjectService.getByEmpIdAndDeptId(employeeProject.getEmpId(), employeeProject.getDeptId());
}
/**
* @Description: 更新社保公积金状态
* @Author: fxj
* @Date: 2022/08/01 18:52
**/
@Operation(summary = "更新社保公积金状态", description = "更新社保公积金状态")
@Inner
@PostMapping("/inner/updateProjectSocialFund")
public Boolean updateProjectSocialFund(@RequestBody UpProjectSocialFundVo vo) {
return tEmployeeProjectService.updateProjectSocialFund(vo);
}
}
......@@ -97,6 +97,8 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
String getCode(boolean isNew);
boolean updateInUseStatusById(String empId, String deptId, String ContractId);
/**
* @param tEmployeeContractInfo
* @Description: 审核
......
......@@ -25,6 +25,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeXProjectVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.UpProjectSocialFundVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.validation.BindingResult;
......@@ -190,4 +191,6 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
//获取员工编码
String getEmpNo(String deptNo);
Boolean updateProjectSocialFund(UpProjectSocialFundVo vo);
}
......@@ -405,7 +405,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
employeeInfo.setContractStatus(CommonConstants.ONE_INT);
}
}
@Override
public boolean updateInUseStatusById(String empId,String deptId,String ContractId){
return baseMapper.updateInUseStatusById(empId, deptId, ContractId, CommonConstants.ONE_STRING) >0;
}
@Override
public R<String> auditContract(TEmployeeContractInfo tEmployeeContractInfo) {
if (tEmployeeContractInfo != null) {
......
......@@ -2094,9 +2094,11 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
@Override
public Boolean updateEmpInfo(UpdateEmpVo vo) {
if (Common.isNotNull(vo)){
TEmployeeInfo employeeInfo;
TEmployeeProject p = null;
if (Common.isNotNull(vo.getEmpIdCard())){
if (CommonConstants.ZERO_STRING.equals(vo.getType())){
TEmployeeInfo employeeInfo = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
employeeInfo = baseMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.eq(TEmployeeInfo::getEmpIdcard,vo.getEmpIdCard())
.eq(TEmployeeInfo::getStatus,CommonConstants.ZERO_INT)
......@@ -2107,7 +2109,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
}
if (Common.isNotNull(vo.getProjectNo())){
TEmployeeProject p = tEmployeeProjectService.getOne(Wrappers.<TEmployeeProject>query().lambda()
p = tEmployeeProjectService.getOne(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getDeleteFlag,CommonConstants.ZERO_INT)
.eq(TEmployeeProject::getEmpIdcard,vo.getEmpIdCard())
.eq(TEmployeeProject::getDeptNo,vo.getProjectNo())
......@@ -2134,6 +2136,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
c.setAuditStatus(CommonConstants.THREE_INT);
c.setInUse(CommonConstants.ONE_STRING);
}
contractServicer.updateInUseStatusById(c.getEmpId(),c.getDeptNo(),c.getSettleDomain());
contractServicer.updateById(c);
}
......
......@@ -1407,4 +1407,56 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
}
return false;
}
/**
* @Description: 更新社保公积金状态 : 0 无社保|无公积金 1 处理中 2.部分购买 3.正常 4.已派减
* 派增:
* 1、派单处社保或公积金状态为待审核、待办理、办理中,项目档案处社保或公积金状态为处理中1;
* 2、派单处社保或公积金状态为审核不通过或办理失败,项目档案处社保状态为无社保,公积金状态为无公积金0;
* 3、派单处社保状态为部分办理失败,项目档案处社保状态为部分购买 2
* 4、派单处社保或公积金状态为办理成功,项目档案处社保或公积金状态为正常 3
* 派减:
* 1、派减状态为待审核、待办理、审核不通过、办理失败,项目档案处社保或公积金状态不变;
* 2、派减状态为办理成功,项目档案处社保或公积金状态变为已派减 4
* 人员档案处社保或公积金状态根据身份证+项目进行整合:
* 社保状态优先级:正常>部分购买>处理中>已派减>无社保
* 公积金状态优先级:正常>处理中>已派减>无公积金
* @Author: fxj
* @Date: 2022/08/01 18:52
**/
@Override
public Boolean updateProjectSocialFund(UpProjectSocialFundVo vo) {
if (Common.isEmpty(vo) || Common.isEmpty(vo.getEmpIdCard()) || Common.isEmpty(vo.getDepartNo())){
return false;
}
TEmployeeInfo employee = tEmployeeInfoMapper.selectOne(Wrappers.<TEmployeeInfo>query().lambda()
.eq(TEmployeeInfo::getEmpIdcard,vo.getEmpIdCard())
.eq(TEmployeeInfo::getDeleteFlag,CommonConstants.ZERO_STRING).last(CommonConstants.LAST_ONE_SQL));
// : 0 无社保|无公积金 1 处理中 2.部分购买 3.正常 4.已派减
if (Common.isNotNull(employee)){
if (Common.isNotNull(vo.getSocialStatus())){
employee.setSocialStatus(Integer.parseInt(vo.getSocialStatus()));
}
if (Common.isNotNull(vo.getFundStatus())){
employee.setFundStatus(Integer.parseInt(vo.getFundStatus()));
}
tEmployeeInfoMapper.updateById(employee);
}
TEmployeeProject project = baseMapper.selectOne(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getDeptNo,vo.getDepartNo())
.eq(TEmployeeProject::getEmpIdcard,vo.getEmpIdCard())
.eq(TEmployeeProject::getDeleteFlag,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
// : 0 无社保|无公积金 1 处理中 2.部分购买 3.正常 4.已派减
if (Common.isNotNull(project)){
if (Common.isNotNull(vo.getSocialStatus())){
project.setSocialStatus(Integer.parseInt(vo.getSocialStatus()));
}
if (Common.isNotNull(vo.getFundStatus())){
project.setFundStatus(Integer.parseInt(vo.getFundStatus()));
}
baseMapper.updateById(project);
}
return true;
}
}
......@@ -130,6 +130,12 @@ public interface CommonConstants {
String THIRTEEN_STRING = "13";
String FOURTEEN_STRING = "14";
String FIFTEEN_STRING = "15";
String SIXTEEN_STRING = "16";
/**
* number 0
*/
......
......@@ -205,4 +205,27 @@ public class ArchivesDaprUtil {
}
return res;
}
/**
* @Author fxj
* @Description 更新项目档案和人员档案的社保公积金状态
* @Date 19:30 2022/8/1
* @Param type 0 审核通过 1 审核不通过
* @return
**/
public R<Boolean> updateProjectSocialFund(UpProjectSocialFundVo vo){
if (Common.isEmpty(vo.getEmpIdCard())
|| (Common.isEmpty(vo.getSocialStatus())
&& Common.isEmpty(vo.getFundStatus()))
|| Common.isEmpty(vo.getDepartNo())){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
R<Boolean> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeproject/inner/updateProjectSocialFund" , JSON.toJSONString(vo), Boolean.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("更新人员档案、项目档案社保公积金状态信息失败!");
}
return res;
}
}
......@@ -11,6 +11,10 @@ public class InsurancesConstants {
* 新增
*/
public static final String ADD = "新增";
/**
* 离职
*/
public static final String QUIT = "离职";
/**
* 批增
*/
......@@ -69,13 +73,13 @@ public class InsurancesConstants {
*/
public static final String EDIT_NOT_ALLOW = "不允许编辑";
/**
* 投保信息已存在
* 投保记录已存在
*/
public static final String DATA_IS_EXIST = "投保信息已存在";
public static final String DATA_IS_EXIST = "投保记录已存在";
/**
* 投保信息不存在
* 投保记录不存在
*/
public static final String DATA_IS_NOT_EXIST = "投保信息不存在";
public static final String DATA_IS_NOT_EXIST = "投保记录不存在";
/**
* 结算信息不存在
*/
......@@ -560,7 +564,12 @@ public class InsurancesConstants {
/**
* 替换项目不存在
*/
public static final String DEPT_NO_CHANGE_IS_NOT_EXIST = "替换项目不存在";
public static final String DEPT_NO_CHANGE_NEW_IS_NOT_EXIST = "替换项目不存在";
/**
* 被替换的项目不存在
*/
public static final String DEPT_NO_CHANGE_OLD_IS_NOT_EXIST = "被替换的项目不存在";
/**
......@@ -771,5 +780,10 @@ public class InsurancesConstants {
*/
public static final String NOT_CREATE_USER_DELETE_ERROR = "非创建人无法删除保单信息";
/**
* 无更新当前保单信息的权限
*/
public static final String NO_UPDATE_DETAIL_JURISDICTION = "无更新当前保单信息的权限";
}
......@@ -121,6 +121,7 @@ public class TInsuranceDetail extends BaseEntity {
* 保单生效日期
*/
@Schema(description = "保单生效日期")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private LocalDate policyEffect;
/**
......@@ -255,6 +256,7 @@ public class TInsuranceDetail extends BaseEntity {
* 是否过期 0未过期 1已过期
*/
@Schema(description = "是否过期 0未过期 1已过期")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer isOverdue;
/**
......
......@@ -45,4 +45,10 @@ public class InsuranceExportListParam implements Serializable {
*/
@Schema(description = "商险id集合")
private List<String> idList;
/**
* 办理地分流sql
*/
@Schema(description = "办理地分流sql")
private String regionSql;
}
......@@ -63,4 +63,16 @@ public class InsuranceListParam implements Serializable {
*/
@Schema(description = "项目编码列表")
private List<String> deptNoList;
/**
* 办理地分流sql
*/
@Schema(description = "办理地分流sql")
private String regionSql;
/**
* 保单办理人
*/
@Schema(description = "保单办理人")
private String updateBy;
}
......@@ -77,5 +77,17 @@ public class InsuranceRefundHandlingParam implements Serializable {
@Schema(description = "是否过期 0未过期 1已过期")
private Integer isOverdue;
/**
* 办理地分流sql
*/
@Schema(description = "办理地分流sql")
private String regionSql;
/**
* 办理人
*/
@Schema(description = "办理人")
private String updateBy;
}
......@@ -52,4 +52,10 @@ public class RefundExportListParam implements Serializable {
@Schema(description = "商险id集合")
private List<String> idList;
/**
* 办理地分流sql
*/
@Schema(description = "办理地分流sql")
private String regionSql;
}
......@@ -76,6 +76,19 @@ public class TInsuranceDetailController {
return R.ok(tInsuranceDetailService.getInsuranceHandleListPage(page, param));
}
/**
* 投保办理不分页查询
*
* @author licancan
* @param param
* @return {@link R<List<InsuranceListVO>>}
*/
@Operation(summary = "投保办理不分页查询", description = "投保办理不分页查询")
@PostMapping("/getInsuranceHandleList")
public R<List<InsuranceListVO>> getInsuranceHandleList(@RequestBody InsuranceListParam param) {
return R.ok(tInsuranceDetailService.getInsuranceHandleList(param));
}
/**
* 投保分页查询
*
......@@ -103,18 +116,7 @@ public class TInsuranceDetailController {
return R.ok(tInsuranceDetailService.getInsuranceList(param));
}
/**
* 投保办理不分页查询
*
* @author licancan
* @param param
* @return {@link R<List<InsuranceListVO>>}
*/
@Operation(summary = "投保办理不分页查询", description = "投保办理不分页查询")
@PostMapping("/getInsuranceHandleList")
public R<List<InsuranceListVO>> getInsuranceHandleList(@RequestBody InsuranceListParam param) {
return R.ok(tInsuranceDetailService.getInsuranceHandleList(param));
}
/**
* 商险新增
......
......@@ -134,15 +134,6 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
*/
IPage<RefundExportListVo> getInsuranceRefundHandlingPageList(Page<InsuranceRefundHandlingParam> page, @Param("param") InsuranceRefundHandlingParam param);
/**
* 减员办理列表不分页查询
*
* @author zhaji
* @param param 查询参数
* @return {@link List< RefundExportListVo >}
*/
List<RefundExportListVo> getInsuranceRefundHandlingList(@Param("param")InsuranceRefundHandlingParam param);
/**
* 减员办理
*
......
......@@ -168,6 +168,12 @@
#{item}
</foreach>
</if>
<if test="param.regionSql != null and param.regionSql.trim() != ''">
and ${param.regionSql}
</if>
<if test="param.updateBy != null and param.updateBy.trim() != ''">
and detail.UPDATE_BY = #{param.updateBy}
</if>
ORDER BY detail.BUY_HANDLE_STATUS,detail.CREATE_TIME DESC
</select>
......@@ -272,6 +278,7 @@
#{item}
</foreach>
</if>
ORDER BY detail.BUY_HANDLE_STATUS,detail.CREATE_TIME DESC
</select>
<select id="getInsuranceDetailById" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceDetailVO">
......@@ -342,13 +349,13 @@
detail.CREATE_NAME as createName,
detail.REMARK as remark
from t_insurance_detail detail
where detail.id in
where detail.DELETE_FLAG = 0 and detail.BUY_HANDLE_STATUS = 1 and detail.id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
ORDER BY detail.CREATE_TIME DESC
</select>
<!--出办理非勾选查询结果-->
<select id="getInsuranceExportList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceExportListVO">
select detail.id as id,
detail.DEPT_NO as deptNo,
......@@ -385,6 +392,9 @@
<if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''">
and detail.INSURANCE_COMPANY_NAME like concat('%',replace(replace(#{param.insuranceCompanyName},'_','\_'),'%','\%'),'%')
</if>
<if test="param.regionSql != null and param.regionSql.trim() != ''">
and ${param.regionSql}
</if>
ORDER BY detail.CREATE_TIME DESC
</select>
......@@ -713,12 +723,6 @@
<if test="param.deptNo != null and param.deptNo.trim() != ''">
and detail.DEPT_NO = #{param.deptNo}
</if>
<if test="param.deptNo == null or param.deptNo.trim() == ''">
and detail.DEPT_NO in
<foreach collection="param.deptNoList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.reduceHandleStatus != null">
and detail.REDUCE_HANDLE_STATUS = #{param.reduceHandleStatus}
</if>
......@@ -728,65 +732,13 @@
<if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''">
and detail.INSURANCE_COMPANY_NAME = #{param.insuranceCompanyName}
</if>
ORDER BY refund.CREATE_TIME DESC,detail.ID ASC
</select>
<!-- 减员办理列表不分页查询-->
<select id="getInsuranceRefundHandlingList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.RefundExportListVo">
select
DISTINCT
detail.id as id,
detail.DEPT_NO as deptNo,
detail.EMP_NAME as empName,
detail.EMP_IDCARD_NO as empIdcardNo,
detail.BUY_TYPE as buyType,
detail.POST as post,
detail.INSURANCE_PROVINCE_NAME as insuranceProvinceName,
detail.INSURANCE_CITY_NAME as insuranceCityName,
detail.INSURANCE_HANDLE_PROVINCE_NAME as insuranceHandleProvinceName,
detail.INSURANCE_HANDLE_CITY_NAME as insuranceHandleCityName,
detail.POLICY_START as policyStart,
detail.POLICY_END as policyEnd,
detail.INSURANCE_COMPANY_NAME as insuranceCompanyName,
detail.INSURANCE_TYPE_NAME as insuranceTypeName,
detail.BUY_STANDARD as buyStandard,
detail.MEDICAL_QUOTA as medicalQuota,
detail.DIE_DISABLE_QUOTA as dieDisableQuota,
detail.SETTLE_TYPE as settleType,
detail.SETTLE_MONTH as settleMonth,
refund.CREATE_NAME as createName,
detail.REMARK as remark,
detail.REDUCE_HANDLE_STATUS as reduceHandleStatus
from
t_insurance_detail detail,
t_insurance_refund refund
where
detail.DELETE_FLAG = 0
and
detail.ID = refund.INS_DETAIL_ID
and
detail.REDUCE_HANDLE_STATUS = 1
<if test="param.empName != null and param.empName.trim() != ''">
and detail.EMP_NAME like concat('%',replace(replace(#{param.empName},'_','\_'),'%','\%'),'%')
</if>
<if test="param.empIdcardNo != null and param.empIdcardNo.trim() != ''">
and detail.EMP_IDCARD_NO like concat('%',replace(replace(#{param.empIdcardNo},'_','\_'),'%','\%'),'%')
<if test="param.regionSql != null and param.regionSql.trim() != ''">
and ${param.regionSql}
</if>
<if test="param.deptNo != null and param.deptNo.trim() != ''">
and detail.DEPT_NO = #{param.deptNo}
<if test="param.updateBy != null and param.updateBy.trim() != ''">
and refund.UPDATE_BY = #{param.updateBy}
</if>
<if test="param.deptNo == null or param.deptNo.trim() == ''">
and detail.DEPT_NO in
<foreach collection="param.deptNoList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.isOverdue != null ">
and detail.IS_OVERDUE = #{param.isOverdue}
</if>
<if test="param.isUse != null">
and detail.IS_USE = #{param.isUse}
</if>
ORDER BY detail.REFUND_CREATE_TIME DESC
ORDER BY refund.CREATE_TIME DESC,detail.ID ASC
</select>
<!-- 查询保单列表-->
<select id="selectDetailListByIds"
......@@ -907,6 +859,9 @@
<if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''">
and detail.INSURANCE_COMPANY_NAME = #{param.insuranceCompanyName}
</if>
<if test="param.regionSql != null and param.regionSql.trim() != ''">
and ${param.regionSql}
</if>
ORDER BY detail.CREATE_TIME DESC
</select>
<!-- 减员办理-->
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 项目基础薪酬配置-薪资配置2
* 工资报账配置
*
* @author hgw
* @date 2022-08-05 11:40:14
* @date 2019-09-12 15:46:57
*/
@Data
@TableName("t_config_salary")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目基础薪酬配置-薪资配置2")
public class TConfigSalary extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
private String id;
/**
* 配置名称
*/
@ExcelAttribute(name = "配置名称", isNotEmpty = true, errorInfo = "配置名称不能为空", maxLength = 50)
@NotBlank(message = "配置名称不能为空")
@Length(max = 50, message = "配置名称不能超过50个字符")
@ExcelProperty("配置名称")
private String name;
/**
* 结算主体ID
*/
@ExcelAttribute(name = "结算主体ID", isNotEmpty = true, errorInfo = "结算主体ID不能为空", maxLength = 32)
@NotBlank(message = "结算主体ID不能为空")
@Length(max = 32, message = "结算主体ID不能超过32个字符")
@ExcelProperty("结算主体ID")
private String departId;
/**
* 结算主体编码
*/
@ExcelAttribute(name = "结算主体编码", isNotEmpty = true, errorInfo = "结算主体编码不能为空", maxLength = 32)
@NotBlank(message = "结算主体编码不能为空")
@Length(max = 32, message = "结算主体编码不能超过32个字符")
@ExcelProperty("结算主体编码")
private String departNo;
/**
* 结算主体名称
*/
@ExcelAttribute(name = "结算主体名称", isNotEmpty = true, errorInfo = "结算主体名称不能为空", maxLength = 50)
@NotBlank(message = "结算主体名称不能为空")
@Length(max = 50, message = "结算主体名称不能超过50个字符")
@ExcelProperty("结算主体名称")
private String departName;
/**
* 薪酬月份
*/
@ExcelAttribute(name = "薪酬月份", isNotEmpty = true, errorInfo = "薪酬月份不能为空")
@NotBlank(message = "薪酬月份不能为空")
@ExcelProperty("薪酬月份")
private Integer salaryMonth;
/**
* 社保月份
*/
@ExcelAttribute(name = "社保月份", isNotEmpty = true, errorInfo = "社保月份不能为空")
@NotBlank(message = "社保月份不能为空")
@ExcelProperty("社保月份")
private Integer socialMonth;
/**
* 公积金月份
*/
@ExcelAttribute(name = "公积金月份", isNotEmpty = true, errorInfo = "公积金月份不能为空")
@NotBlank(message = "公积金月份不能为空")
@ExcelProperty("公积金月份")
private Integer fundMonth;
/**
* 社保优先级0:生成月;1:缴纳月
*/
@ExcelAttribute(name = "社保优先级0:生成月;1:缴纳月", isNotEmpty = true, errorInfo = "社保优先级0:生成月;1:缴纳月不能为空")
@NotBlank(message = "社保优先级0:生成月;1:缴纳月不能为空")
@ExcelProperty("社保优先级0:生成月;1:缴纳月")
private Integer socialPriority;
/**
* 公积金优先级0:生成月;1:缴纳月
*/
@ExcelAttribute(name = "公积金优先级0:生成月;1:缴纳月", isNotEmpty = true, errorInfo = "公积金优先级0:生成月;1:缴纳月不能为空")
@NotBlank(message = "公积金优先级0:生成月;1:缴纳月不能为空")
@ExcelProperty("公积金优先级0:生成月;1:缴纳月")
private Integer fundPriority;
/**
* 发放方式(0现金/1银行)
*/
@ExcelAttribute(name = "发放方式(0现金/1银行)", isNotEmpty = true, errorInfo = "发放方式(0现金/1银行)不能为空")
@NotBlank(message = "发放方式(0现金/1银行)不能为空")
@ExcelProperty("发放方式(0现金/1银行)")
private Integer grantType;
@TableName("t_config_salary")
@Tag(name="薪资配置-普通薪资配置")
public class TConfigSalary extends Model<TConfigSalary> implements Serializable {
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 )
@ExcelProperty(value="配置名称")
private String name;
/**
* 结算主体ID
*/
@NotBlank(message = "结算主体ID不能为空")
@Length(max=32,message = "结算主体ID不能超过32个字符")
@ExcelAttribute(name = "结算主体ID", isNotEmpty = true,errorInfo = "结算主体ID不能为空" , maxLength = 32 )
@ExcelProperty(value="结算主体ID")
private String departId;
/**
* 结算主体编码
*/
@NotBlank(message = "结算主体编码不能为空")
@Length(max=32,message = "结算主体编码不能超过32个字符")
@ExcelAttribute(name = "结算主体编码", isNotEmpty = true,errorInfo = "结算主体编码不能为空" , maxLength = 32 )
@ExcelProperty(value="结算主体编码")
private String departNo;
/**
* 结算主体名称
*/
@NotBlank(message = "结算主体名称不能为空")
@Length(max=50,message = "结算主体名称不能超过50个字符")
@ExcelAttribute(name = "结算主体名称", isNotEmpty = true,errorInfo = "结算主体名称不能为空" , maxLength = 50 )
@ExcelProperty(value="结算主体名称")
private String departName;
/**
* 工资月份
*/
@NotNull(message = "工资月份不能为空")
@ExcelAttribute(name = "工资月份", isNotEmpty = true,errorInfo = "工资月份不能为空" )
@ExcelProperty(value="工资月份")
private Integer salaryMonth;
/**
* 结算月份
*/
@NotNull(message = "结算月份不能为空")
@ExcelAttribute(name = "结算月份", isNotEmpty = true,errorInfo = "结算月份不能为空" )
@ExcelProperty(value="结算月份")
private Integer settleMonth;
/**
* 社保月份
*/
@NotNull(message = "社保月份不能为空")
@ExcelAttribute(name = "社保月份", isNotEmpty = true,errorInfo = "社保月份不能为空" )
@ExcelProperty(value="社保月份")
private Integer socialMonth;
/**
* 公积金月份
*/
@NotNull(message = "公积金月份不能为空")
@ExcelAttribute(name = "公积金月份", isNotEmpty = true,errorInfo = "公积金月份不能为空" )
@ExcelProperty(value="公积金月份")
private Integer fundMonth;
/**
* 社保优先级
*/
@NotNull(message = "社保优先级不能为空")
@ExcelAttribute(name = "社保优先级", isNotEmpty = true,errorInfo = "社保优先级不能为空" )
@ExcelProperty(value="社保优先级(0:生成;1:缴纳)")
private Integer socialPriority;
/**
* 公积金优先级
*/
@NotNull(message = "公积金优先级不能为空")
@ExcelAttribute(name = "公积金优先级", isNotEmpty = true,errorInfo = "公积金优先级不能为空" )
@ExcelProperty(value="公积金优先级(0:生成;1:缴纳)")
private Integer fundPriority;
/**
* 发放方式
*/
@NotNull(message = "发放方式不能为空")
@ExcelAttribute(name = "发放方式", isNotEmpty = true,errorInfo = "发放方式不能为空" )
@ExcelProperty(value="发放方式(0:现金;1:转账)")
private Integer grantType;
/**
* 年终奖扣税方案
*/
@NotNull(message = "年终奖扣税方案不能为空")
@ExcelAttribute(name = "年终奖扣税方案", errorInfo = "年终奖扣税方案不能为空" )
@ExcelProperty(value="年终奖扣税方案(0:合并;1:单独;2:自动计算)")
private Integer annualBonusType;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 最低工资配置-薪资配置4
* 各地市最低工资标准
*
* @author hgw
* @date 2022-08-05 11:40:14
* @date 2019-10-15 21:45:23
*/
@Data
@TableName("t_min_salary")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "最低工资配置-薪资配置4")
public class TMinSalary extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
private String id;
/**
* 省
*/
@ExcelAttribute(name = "省")
@ExcelProperty("省")
private Integer province;
/**
* 市
*/
@ExcelAttribute(name = "市")
@ExcelProperty("市")
private Integer city;
/**
* 县
*/
@ExcelAttribute(name = "县")
@ExcelProperty("县")
private Integer town;
/**
* 最低工资标准
*/
@ExcelAttribute(name = "最低工资标准", isNotEmpty = true, errorInfo = "最低工资标准不能为空", maxLength = 11)
@NotBlank(message = "最低工资标准不能为空")
@Length(max = 11, message = "最低工资标准不能超过11个字符")
@ExcelProperty("最低工资标准")
private String salaryBase;
/**
* 1.启用 2.停用
*/
@ExcelAttribute(name = "1.启用 2.停用", isNotEmpty = true, errorInfo = "1.启用 2.停用不能为空")
@NotBlank(message = "1.启用 2.停用不能为空")
@ExcelProperty("1.启用 2.停用")
private Integer status;
/**
* 起始时间
*/
@ExcelAttribute(name = "起始时间", isDate = true)
@ExcelProperty("起始时间")
private Date startDate;
/**
* 终止时间
*/
@ExcelAttribute(name = "终止时间", isDate = true)
@ExcelProperty("终止时间")
private Date endDate;
@TableName("t_min_salary")
@Tag(name = "薪资配置-最低工资配置")
public class TMinSalary extends Model<TMinSalary> {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty(value = "id")
private String id;
/**
* 省
*/
@ExcelAttribute(name = "省")
@ExcelProperty(value = "省")
private Integer province;
/**
* 市
*/
@ExcelAttribute(name = "市")
@ExcelProperty(value = "市")
private Integer city;
/**
* 县
*/
@ExcelAttribute(name = "县")
@ExcelProperty(value = "县")
private Integer town;
/**
* 最低工资标准
*/
@NotBlank(message = "最低工资标准不能为空")
@Length(max = 11, message = "最低工资标准不能超过11个字符")
@ExcelAttribute(name = "最低工资标准", isNotEmpty = true, errorInfo = "最低工资标准不能为空", maxLength = 11)
@ExcelProperty(value = "最低工资标准")
private String salaryBase;
/**
* 1.启用 2.停用
*/
@NotNull(message = "1.启用 2.停用不能为空")
@ExcelAttribute(name = "1.启用 2.停用", isNotEmpty = true, errorInfo = "1.启用 2.停用不能为空")
@ExcelProperty(value = "1.启用 2.停用")
private Integer status;
/**
* 起始时间
*/
@ExcelAttribute(name = "起始时间")
@ExcelProperty(value = "起始时间")
private LocalDate startDate;
/**
* 终止时间
*/
@ExcelAttribute(name = "终止时间")
@ExcelProperty(value = "终止时间")
private LocalDate endDate;
/**
* 创建人
*/
@Length(max = 32, message = "创建人不能超过32个字符")
@ExcelAttribute(name = "创建人", maxLength = 32)
@ExcelProperty(value = "创建人")
private String createUser;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间")
@ExcelProperty(value = "创建时间")
private LocalDateTime createDate;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.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 io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 自有员工所在结算主体大全表
*
* @author hgw
* @date 2022-08-05 11:40:14
* @date 2021-11-02 17:29:54
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_own_dept")
@Schema(description = "自有员工所在结算主体大全表")
public class TOwnDept {
@Tag(name = "自有员工所在结算主体大全表")
public class TOwnDept extends Model<TOwnDept> {
private static final long serialVersionUID = 1L;
/**
* id
*
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@ExcelProperty(value = "")
private Integer id;
/**
* 结算主体id
*/
@ExcelAttribute(name = "结算主体id", maxLength = 32)
@NotBlank(message = "结算主体id不能为空")
@Length(max = 32, message = "结算主体id不能超过32个字符")
@ExcelProperty("结算主体id")
@ExcelAttribute(name = "结算主体id", isNotEmpty = true, errorInfo = "结算主体id不能为空", maxLength = 32)
@ExcelProperty(value = "结算主体id")
private String deptId;
/**
* 结算主体编码
*/
@ExcelAttribute(name = "结算主体编码", maxLength = 50)
@Length(max = 50, message = "结算主体编码不能超过50个字符")
@ExcelProperty("结算主体编码")
@ExcelAttribute(name = "结算主体编码", maxLength = 50)
@ExcelProperty(value = "结算主体编码")
private String deptNo;
/**
* 结算主体名称
*/
@ExcelAttribute(name = "结算主体名称", maxLength = 50)
@Length(max = 50, message = "结算主体名称不能超过50个字符")
@ExcelProperty("结算主体名称")
@ExcelAttribute(name = "结算主体名称", maxLength = 50)
@ExcelProperty(value = "结算主体名称")
private String deptName;
/**
* 客户名称
*/
@ExcelAttribute(name = "客户名称", maxLength = 50)
@Length(max = 50, message = "客户名称不能超过50个字符")
@ExcelProperty("客户名称")
@ExcelAttribute(name = "客户名称", maxLength = 50)
@ExcelProperty(value = "客户名称")
private String unitName;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 工资报表配置-薪资配置6
* 薪资识别配置(标准模板)
*
* @author hgw
* @date 2022-08-05 11:40:14
* @date 2019-07-30 15:00:05
*/
@Data
@TableName("t_salary_config_standard")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "工资报表配置-薪资配置6")
public class TSalaryConfigStandard extends BaseEntity {
@TableName("t_salary_config_standard")
@Tag(name = "薪资识别配置(标准模板)")
public class TSalaryConfigStandard extends Model<TSalaryConfigStandard> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty(value = "主键")
private String id;
/**
* 中文名(Excel表头)
*/
@ExcelProperty(value = "中文名(Excel表头)")
@Length(max = 32, message = "中文名(Excel表头)不能超过32个字符")
@NotBlank(message = "中文名(Excel表头)不能为空")
@ExcelAttribute(name = "中文名(Excel表头)", isNotEmpty = true, errorInfo = "中文名(Excel表头)不能为空", maxLength = 32)
private String cnName;
/**
* 数据库字段名
*/
@ExcelProperty(value = "数据库字段名")
@Length(max = 32, message = "数据库字段名不能超过32个字符")
@ExcelAttribute(name = "数据库字段名", maxLength = 32)
private String dbFiedName;
/**
* JAVA属性字段名
*/
@ExcelProperty(value = "JAVA属性字段名")
@Length(max = 32, message = "JAVA属性字段名不能超过32个字符")
@ExcelAttribute(name = "JAVA属性字段名", maxLength = 32)
private String javaFiedName;
/**
* 模板类型(数据字典)
*/
@ExcelProperty(value = "模板类型(数据字典)")
@Length(max = 32, message = "模板类型(数据字典)不能超过32个字符")
@NotBlank(message = "模板类型(数据字典)不能为空")
@ExcelAttribute(name = "模板类型(数据字典)", isNotEmpty = true, errorInfo = "模板类型(数据字典)不能为空", maxLength = 32)
private String modelType;
/**
* 是否是必须
*/
@ExcelProperty(value = "是否是必须(0:不是;1:必填)")
@NotBlank(message = "是否是必须不能为空")
@ExcelAttribute(name = "是否是必须", isNotEmpty = true, errorInfo = "是否是必须不能为空")
private String isMustNeed;
/**
* 是否进行计算扣税:1:计算;0:不计算
*/
@ExcelProperty(value = "是否进行计算扣税:1:计算;0:不计算")
@NotBlank(message = "是否进行计算扣税不能为空")
@ExcelAttribute(name = "是否进行计算扣税", isNotEmpty = true, errorInfo = "是否进行计算扣税不能为空")
private Integer isTax;
/**
* 创建人
*/
@ExcelProperty(value = "创建人")
@Length(max = 32, message = "创建人不能超过32个字符")
@NotBlank(message = "创建人不能为空")
@ExcelAttribute(name = "创建人", isNotEmpty = true, errorInfo = "创建人不能为空", maxLength = 32)
private String createUser;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
@NotBlank(message = "创建时间不能为空")
@ExcelAttribute(name = "创建时间", isNotEmpty = true, errorInfo = "创建时间不能为空")
private LocalDateTime createTime;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
private String id;
/**
* 中文名(Excel表头)
*/
@ExcelAttribute(name = "中文名(Excel表头)", isNotEmpty = true, errorInfo = "中文名(Excel表头)不能为空", maxLength = 32)
@NotBlank(message = "中文名(Excel表头)不能为空")
@Length(max = 32, message = "中文名(Excel表头)不能超过32个字符")
@ExcelProperty("中文名(Excel表头)")
private String cnName;
/**
* 数据库字段名
*/
@ExcelAttribute(name = "数据库字段名", maxLength = 32)
@Length(max = 32, message = "数据库字段名不能超过32个字符")
@ExcelProperty("数据库字段名")
private String dbFiedName;
/**
* JAVA属性字段名
*/
@ExcelAttribute(name = "JAVA属性字段名", maxLength = 32)
@Length(max = 32, message = "JAVA属性字段名不能超过32个字符")
@ExcelProperty("JAVA属性字段名")
private String javaFiedName;
/**
* 模板类型(数据字典)
*/
@ExcelAttribute(name = "模板类型(数据字典)", isNotEmpty = true, errorInfo = "模板类型(数据字典)不能为空", maxLength = 32)
@NotBlank(message = "模板类型(数据字典)不能为空")
@Length(max = 32, message = "模板类型(数据字典)不能超过32个字符")
@ExcelProperty("模板类型(数据字典)")
private String modelType;
/**
* 是否是必须
*/
@ExcelAttribute(name = "是否是必须", isNotEmpty = true, errorInfo = "是否是必须不能为空", maxLength = 1)
@NotBlank(message = "是否是必须不能为空")
@Length(max = 1, message = "是否是必须不能超过1个字符")
@ExcelProperty("是否是必须")
private String isMustNeed;
/**
* 是否进行计算扣税:1:计算;0:不计算
*/
@ExcelAttribute(name = "是否进行计算扣税:1:计算;0:不计算", isNotEmpty = true, errorInfo = "是否进行计算扣税:1:计算;0:不计算不能为空")
@NotBlank(message = "是否进行计算扣税:1:计算;0:不计算不能为空")
@ExcelProperty("是否进行计算扣税:1:计算;0:不计算")
private Integer isTax;
/**
* 排序项
*/
@ExcelAttribute(name = "排序项")
@ExcelProperty("排序项")
private Integer orderLine;
/**
* 排序项
*/
@ExcelProperty(value = "排序项")
@ExcelAttribute(name = "排序项", maxLength = 32)
private String orderLine;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.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 io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
* 所得税配置-薪资配置3
* 个税比例及速算扣除数的配置表
*
* @author hgw
* @date 2022-08-05 11:40:14
* @date 2019-07-30 15:00:05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_salary_tax_config")
@Schema(description = "所得税配置-薪资配置3")
public class TSalaryTaxConfig {
@Tag(name = "薪资配置-所得税配置")
public class TSalaryTaxConfig extends Model<TSalaryTaxConfig> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty(value = "主键")
private String id;
/**
* 累计预扣预缴应纳税所得额说明
*/
@ExcelProperty(value = "累计预扣预缴应纳税所得额说明")
@Length(max = 32, message = "累计预扣预缴应纳税所得额说明不能超过32个字符")
@ExcelAttribute(name = "累计预扣预缴应纳税所得额说明", maxLength = 32)
private String taxableIncomeRemark;
/**
* 预扣率(%)
*/
@ExcelProperty(value = "预扣率(%)")
@NotBlank(message = "预扣率(%)不能为空")
@ExcelAttribute(name = "预扣率(%)", isNotEmpty = true, errorInfo = "预扣率(%)不能为空")
private Integer withholdingRate;
/**
* 速算扣除数
*/
@ExcelProperty(value = "速算扣除数")
@NotBlank(message = "速算扣除数不能为空")
@ExcelAttribute(name = "速算扣除数", isNotEmpty = true, errorInfo = "速算扣除数不能为空")
private BigDecimal quickDeducation;
/**
* 最小区间值
*/
@ExcelProperty(value = "最小区间值")
@NotBlank(message = "最小区间值不能为空")
@ExcelAttribute(name = "最小区间值", isNotEmpty = true, errorInfo = "最小区间值不能为空")
private BigDecimal minIncome;
/**
* 最大区间值
*/
@ExcelProperty(value = "最大区间值")
@NotBlank(message = "最大区间值不能为空")
@ExcelAttribute(name = "最大区间值", isNotEmpty = true, errorInfo = "最大区间值不能为空")
private BigDecimal maxIncome;
/**
* 等级
*/
@ExcelProperty(value = "等级")
@NotBlank(message = "等级不能为空")
@ExcelAttribute(name = "等级", isNotEmpty = true, errorInfo = "等级不能为空")
private Integer level;
/**
* 类型:0:工资;1:年终奖
*/
@ExcelProperty(value = "类型:0:工资;1:年终奖")
@NotBlank(message = "类型不能为空")
@ExcelAttribute(name = "类型", isNotEmpty = true, errorInfo = "类型不能为空")
private Integer type;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
private String id;
/**
* 累计预扣预缴应纳税所得额说明
*/
@ExcelAttribute(name = "累计预扣预缴应纳税所得额说明", maxLength = 32)
@Length(max = 32, message = "累计预扣预缴应纳税所得额说明不能超过32个字符")
@ExcelProperty("累计预扣预缴应纳税所得额说明")
private String taxableIncomeRemark;
/**
* 预扣率(%)
*/
@ExcelAttribute(name = "预扣率(%)", isNotEmpty = true, errorInfo = "预扣率(%)不能为空")
@NotBlank(message = "预扣率(%)不能为空")
@ExcelProperty("预扣率(%)")
private Integer withholdingRate;
/**
* 速算扣除数
*/
@ExcelAttribute(name = "速算扣除数", isNotEmpty = true, errorInfo = "速算扣除数不能为空")
@NotBlank(message = "速算扣除数不能为空")
@ExcelProperty("速算扣除数")
private BigDecimal quickDeducation;
/**
* 最小区间值
*/
@ExcelAttribute(name = "最小区间值", isNotEmpty = true, errorInfo = "最小区间值不能为空")
@NotBlank(message = "最小区间值不能为空")
@ExcelProperty("最小区间值")
private BigDecimal minIncome;
/**
* 最大区间值
*/
@ExcelAttribute(name = "最大区间值", isNotEmpty = true, errorInfo = "最大区间值不能为空")
@NotBlank(message = "最大区间值不能为空")
@ExcelProperty("最大区间值")
private BigDecimal maxIncome;
/**
* 等级
*/
@ExcelAttribute(name = "等级", isNotEmpty = true, errorInfo = "等级不能为空")
@NotBlank(message = "等级不能为空")
@ExcelProperty("等级")
private Integer level;
/**
* 类型:0:工资;1:年终奖
*/
@ExcelAttribute(name = "类型:0:工资;1:年终奖", isNotEmpty = true, errorInfo = "类型:0:工资;1:年终奖不能为空")
@NotBlank(message = "类型:0:工资;1:年终奖不能为空")
@ExcelProperty("类型:0:工资;1:年终奖")
private Integer type;
/**
* 个税起征点或年终奖个税临界值
*/
@ExcelAttribute(name = "个税起征点或年终奖个税临界值")
@ExcelProperty("个税起征点或年终奖个税临界值")
private BigDecimal startPoint;
/**
* 个税起征点或年终奖个税临界值
*/
@ExcelProperty(value = "个税起征点或年终奖个税临界值")
@ExcelAttribute(name = "个税起征点或年终奖个税临界值")
private BigDecimal startPoint;
}
package com.yifu.cloud.plus.v1.yifu.salary;
\ No newline at end of file
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.controller;
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.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import com.yifu.cloud.plus.v1.yifu.salary.service.TConfigSalaryService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TConfigSalarySearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* 项目基础薪酬配置-薪资配置2
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 工资报账配置
* @Date 13:32 2022/8/6
* @Param
* @return
**/
@RestController
@RequiredArgsConstructor
@AllArgsConstructor
@RequestMapping("/tconfigsalary")
@Tag(name = "项目基础薪酬配置-薪资配置2管理")
@Tag(name = "薪资配置-普通工资配置")
public class TConfigSalaryController {
private final TConfigSalaryService tConfigSalaryService;
/**
* @param settleDepart 结算主体id
* @Description: 获取结算主体下的配置信息
* @Author: hgw
* @Date: 2019/9/12 17:05
* @return: com.yifu.cloud.v1.common.core.util.R
**/
@Operation(description = "获取结算主体下的配置列表")
@SysLog("获取结算主体下的配置列表")
@PostMapping("getTConfigSalaryList")
//@PreAuthorize("@pms.hasPermission('wxhr:salary_upload')")
public R getTConfigSalaryList(@RequestParam String settleDepart) {
TConfigSalary configSalary = new TConfigSalary();
configSalary.setDepartId(settleDepart);
QueryWrapper<TConfigSalary> queryWrapperCs = new QueryWrapper<>();
queryWrapperCs.setEntity(configSalary);
List<TConfigSalary> configSalaryList = tConfigSalaryService.list(queryWrapperCs);
return new R<>(configSalaryList);
}
/**
* 简单分页查询
*
* @param page 分页对象
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @param tConfigSalary 工资报账配置
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TConfigSalary>> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalarySearchVo tConfigSalary) {
public R<IPage<TConfigSalary>> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalary tConfigSalary) {
return new R<>(tConfigSalaryService.getTConfigSalaryPage(page, tConfigSalary));
}
/**
* 不分页查询
*
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('salary_tconfigsalary_get')" )
public R<List<TConfigSalary>> getTConfigSalaryNoPage(@RequestBody TConfigSalarySearchVo tConfigSalary) {
return R.ok(tConfigSalaryService.noPageDiy(tConfigSalary));
}
/**
* 通过id查询项目基础薪酬配置-薪资配置2
* 通过id查询单条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('salary_tconfigsalary_get')")
@Operation(description = "id查询")
@GetMapping("/{id}")
public R<TConfigSalary> getById(@PathVariable("id") String id) {
return R.ok(tConfigSalaryService.getById(id));
return new R<>(tConfigSalaryService.getById(id));
}
/**
* 新增项目基础薪酬配置-薪资配置2
* 新增记录
*
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @param tConfigSalary
* @return R
*/
@Operation(summary = "新增项目基础薪酬配置-薪资配置2", description = "新增项目基础薪酬配置-薪资配置2:hasPermission('salary_tconfigsalary_add')")
@SysLog("新增项目基础薪酬配置-薪资配置2")
@Operation(description = "新增(wxhr:tconfigsalary_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('salary_tconfigsalary_add')")
public R<Boolean> save(@RequestBody TConfigSalary tConfigSalary) {
return R.ok(tConfigSalaryService.save(tConfigSalary));
@PreAuthorize("@pms.hasPermission('wxhr:tconfigsalary_add')")
public R save(@Valid @RequestBody TConfigSalary tConfigSalary) {
return new R<>(tConfigSalaryService.save(tConfigSalary));
}
/**
* 修改项目基础薪酬配置-薪资配置2
* 修改记录
*
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @param tConfigSalary
* @return R
*/
@Operation(summary = "修改项目基础薪酬配置-薪资配置2", description = "修改项目基础薪酬配置-薪资配置2:hasPermission('salary_tconfigsalary_edit')")
@SysLog("修改项目基础薪酬配置-薪资配置2")
@Operation(description = "修改(wxhr:tconfigsalary_edit)")
@SysLog("修改工资报账配置")
@PutMapping
@PreAuthorize("@pms.hasPermission('salary_tconfigsalary_edit')")
public R<Boolean> updateById(@RequestBody TConfigSalary tConfigSalary) {
return R.ok(tConfigSalaryService.updateById(tConfigSalary));
@PreAuthorize("@pms.hasPermission('wxhr:tconfigsalary_edit')")
public R update(@RequestBody TConfigSalary tConfigSalary) {
return new R<>(tConfigSalaryService.updateById(tConfigSalary));
}
/**
* 通过id删除项目基础薪酬配置-薪资配置2
* 通过id删除一条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id删除项目基础薪酬配置-薪资配置2", description = "通过id删除项目基础薪酬配置-薪资配置2:hasPermission('salary_tconfigsalary_del')")
@SysLog("通过id删除项目基础薪酬配置-薪资配置2")
@Operation(description = "删除(wxhr:tconfigsalary_del)")
@SysLog("删除工资报账配置")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('salary_tconfigsalary_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tConfigSalaryService.removeById(id));
@PreAuthorize("@pms.hasPermission('wxhr:tconfigsalary_del')")
public R removeById(@PathVariable String id) {
return new R<>(tConfigSalaryService.removeById(id));
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TMinSalary;
import com.yifu.cloud.plus.v1.yifu.salary.service.TMinSalaryService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TMinSalarySearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import javax.validation.Valid;
import java.time.LocalDateTime;
/**
* 最低工资配置-薪资配置4
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 各地市最低工资标准
* @Date 13:32 2022/8/6
* @Param
* @return
**/
@RestController
@RequiredArgsConstructor
@AllArgsConstructor
@RequestMapping("/tminsalary")
@Tag(name = "最低工资配置-薪资配置4管理")
@Tag(name = "薪资配置-最低工资配置")
public class TMinSalaryController {
private final TMinSalaryService tMinSalaryService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tMinSalary 最低工资配置-薪资配置4
* @param tMinSalary 各地市最低工资标准
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TMinSalary>> getTMinSalaryPage(Page<TMinSalary> page, TMinSalarySearchVo tMinSalary) {
public R<IPage<TMinSalary>> getTMinSalaryPage(Page<TMinSalary> page, TMinSalary tMinSalary) {
return new R<>(tMinSalaryService.getTMinSalaryPage(page, tMinSalary));
}
/**
* 不分页查询
*
* @param tMinSalary 最低工资配置-薪资配置4
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('salary_tminsalary_get')" )
public R<List<TMinSalary>> getTMinSalaryNoPage(@RequestBody TMinSalarySearchVo tMinSalary) {
return R.ok(tMinSalaryService.noPageDiy(tMinSalary));
}
/**
* 通过id查询最低工资配置-薪资配置4
* 通过id查询单条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('salary_tminsalary_get')")
@Operation(description = "id查询")
@GetMapping("/{id}")
public R<TMinSalary> getById(@PathVariable("id") String id) {
return R.ok(tMinSalaryService.getById(id));
return new R<>(tMinSalaryService.getById(id));
}
/**
* 新增最低工资配置-薪资配置4
* 新增记录
*
* @param tMinSalary 最低工资配置-薪资配置4
* @param tMinSalary
* @return R
*/
@Operation(summary = "新增最低工资配置-薪资配置4", description = "新增最低工资配置-薪资配置4:hasPermission('salary_tminsalary_add')")
@SysLog("新增最低工资配置-薪资配置4")
@Operation(description = "新增(wxhr:tminsalary_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('salary_tminsalary_add')")
public R<Boolean> save(@RequestBody TMinSalary tMinSalary) {
return R.ok(tMinSalaryService.save(tMinSalary));
@PreAuthorize("@pms.hasPermission('wxhr:tminsalary_add')")
public R save(@Valid @RequestBody TMinSalary tMinSalary) {
YifuUser user = SecurityUtils.getUser();
if (null == user || null == user.getId()) {
return R.failed("获取登录用户信息失败!");
}
tMinSalary.setCreateDate(LocalDateTime.now());
tMinSalary.setCreateUser(String.valueOf(user.getId()));
return new R<>(tMinSalaryService.save(tMinSalary));
}
/**
* 修改最低工资配置-薪资配置4
* 修改记录
*
* @param tMinSalary 最低工资配置-薪资配置4
* @param tMinSalary
* @return R
*/
@Operation(summary = "修改最低工资配置-薪资配置4", description = "修改最低工资配置-薪资配置4:hasPermission('salary_tminsalary_edit')")
@SysLog("修改最低工资配置-薪资配置4")
@Operation(description = "修改(wxhr:tminsalary_edit)")
@SysLog("修改各地市最低工资标准")
@PutMapping
@PreAuthorize("@pms.hasPermission('salary_tminsalary_edit')")
public R<Boolean> updateById(@RequestBody TMinSalary tMinSalary) {
return R.ok(tMinSalaryService.updateById(tMinSalary));
@PreAuthorize("@pms.hasPermission('wxhr:tminsalary_edit')")
public R update(@RequestBody TMinSalary tMinSalary) {
return new R<>(tMinSalaryService.updateById(tMinSalary));
}
/**
* 通过id删除最低工资配置-薪资配置4
* 通过id删除一条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id删除最低工资配置-薪资配置4", description = "通过id删除最低工资配置-薪资配置4:hasPermission('salary_tminsalary_del')")
@SysLog("通过id删除最低工资配置-薪资配置4")
@Operation(description = "删除(wxhr:tminsalary_del)")
@SysLog("删除各地市最低工资标准")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('salary_tminsalary_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tMinSalaryService.removeById(id));
@PreAuthorize("@pms.hasPermission('wxhr:tminsalary_del')")
public R removeById(@PathVariable String id) {
return new R<>(tMinSalaryService.removeById(id));
}
}
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TOwnDept;
import com.yifu.cloud.plus.v1.yifu.salary.service.TOwnDeptService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @Author fxj
* @Description 自有员工所在结算主体大全表
* @Date 13:32 2022/8/6
* @Param
* @return
**/
@RestController
@AllArgsConstructor
@RequestMapping("/towndept")
@Tag(name = "自有员工所在结算主体大全表")
public class TOwnDeptController {
private final TOwnDeptService tOwnDeptService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tOwnDept 自有员工所在结算主体大全表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TOwnDept>> getTOwnDeptPage(Page<TOwnDept> page, TOwnDept tOwnDept) {
return new R<>(tOwnDeptService.getTOwnDeptPage(page, tOwnDept));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation(description = "id查询")
@GetMapping("/{id}")
public R<TOwnDept> getById(@PathVariable("id") Integer id) {
return new R<>(tOwnDeptService.getById(id));
}
/**
* 新增记录
*
* @param tOwnDept
* @return R
*/
@Operation(description = "新增(wxhr:towndept_add)")
@PostMapping
@PreAuthorize("@pms.hasPermission('wxhr:towndept_add')")
public R<Boolean> save(@Valid @RequestBody TOwnDept tOwnDept) {
return new R<>(tOwnDeptService.save(tOwnDept));
}
/**
* 修改记录
*
* @param tOwnDept
* @return R
*/
@Operation(description = "修改(wxhr:towndept_edit)")
@SysLog("修改自有员工所在结算主体大全表")
@PutMapping
@PreAuthorize("@pms.hasPermission('wxhr:towndept_edit')")
public R<Boolean> update(@RequestBody TOwnDept tOwnDept) {
return new R<>(tOwnDeptService.updateById(tOwnDept));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(description = "删除(wxhr:towndept_del)")
@SysLog("删除自有员工所在结算主体大全表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('wxhr:towndept_del')")
public R<Boolean> removeById(@PathVariable Integer id) {
return new R<>(tOwnDeptService.removeById(id));
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.salary.constants.SalaryConstants;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryTaxConfig;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryTaxConfigService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryTaxConfigSearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 所得税配置-薪资配置3
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 个税比例及速算扣除数的配置表
* @Date 13:33 2022/8/6
* @Param
* @return
**/
@RestController
@RequiredArgsConstructor
@AllArgsConstructor
@RequestMapping("/tsalarytaxconfig")
@Tag(name = "所得税配置-薪资配置3管理")
@Tag(name = "薪资配置-所得税配置")
public class TSalaryTaxConfigController {
private final TSalaryTaxConfigService tSalaryTaxConfigService;
/**
* @param page 分页对象
* @param tSalaryTaxConfig 个税比例及速算扣除数的配置表
* @Description: 工资个税-分页查询
* @Author: hgw
* @Date: 2019/10/15 18:06
* @return: com.yifu.cloud.v1.common.core.util.R<com.baomidou.mybatisplus.core.metadata.IPage < com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>>
**/
@Operation(description = "工资个税-分页查询")
@GetMapping("/salaryPage")
public R<IPage<TSalaryTaxConfig>> getTSalaryTaxConfigPageBySalary(Page<TSalaryTaxConfig> page, TSalaryTaxConfig tSalaryTaxConfig) {
tSalaryTaxConfig.setType(SalaryConstants.SALARY_TAX_TYPE[0]);
//根据 level 顺序排序
List<OrderItem> orders = new ArrayList<>();
OrderItem oi = new OrderItem();
oi.setColumn("level");
oi.setAsc(true);
orders.add(oi);
page.setOrders(orders);
return new R<>(tSalaryTaxConfigService.getTSalaryTaxConfigPage(page, tSalaryTaxConfig));
}
/**
* 简单分页查询
*
* @param page 分页对象
* @param tSalaryTaxConfig 所得税配置-薪资配置3
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TSalaryTaxConfig>> getTSalaryTaxConfigPage(Page<TSalaryTaxConfig> page, TSalaryTaxConfigSearchVo tSalaryTaxConfig) {
* @param tSalaryTaxConfig 个税比例及速算扣除数的配置表
* @Description: 年终奖个税-分页查询
* @Author: hgw
* @Date: 2019/10/15 18:05
* @return: com.yifu.cloud.v1.common.core.util.R<com.baomidou.mybatisplus.core.metadata.IPage < com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>>
**/
@Operation(description = "年终奖个税-分页查询")
@GetMapping("/yearPage")
public R<IPage<TSalaryTaxConfig>> getTSalaryTaxConfigPageByYear(Page<TSalaryTaxConfig> page, TSalaryTaxConfig tSalaryTaxConfig) {
tSalaryTaxConfig.setType(SalaryConstants.SALARY_TAX_TYPE[1]);
//根据 level 顺序排序
List<OrderItem> orders = new ArrayList<>();
OrderItem oi = new OrderItem();
oi.setColumn("level");
oi.setAsc(true);
orders.add(oi);
page.setOrders(orders);
return new R<>(tSalaryTaxConfigService.getTSalaryTaxConfigPage(page, tSalaryTaxConfig));
}
/**
* 通过id查询所得税配置-薪资配置3
* 通过id查询单条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('salary_tsalarytaxconfig_get')")
@Operation(description = "id查询")
@GetMapping("/{id}")
public R<TSalaryTaxConfig> getById(@PathVariable("id") String id) {
return R.ok(tSalaryTaxConfigService.getById(id));
return new R<>(tSalaryTaxConfigService.getById(id));
}
/**
* 新增所得税配置-薪资配置3
* 新增记录
*
* @param tSalaryTaxConfig 所得税配置-薪资配置3
* @param tSalaryTaxConfig
* @return R
*/
@Operation(summary = "新增所得税配置-薪资配置3", description = "新增所得税配置-薪资配置3:hasPermission('salary_tsalarytaxconfig_add')")
@SysLog("新增所得税配置-薪资配置3")
@Operation(description = "新增")
@SysLog("新增个税比例及速算扣除数的配置表")
@PostMapping
@PreAuthorize("@pms.hasPermission('salary_tsalarytaxconfig_add')")
public R<Boolean> save(@RequestBody TSalaryTaxConfig tSalaryTaxConfig) {
return R.ok(tSalaryTaxConfigService.save(tSalaryTaxConfig));
@PreAuthorize("@pms.hasPermission('wxhr:tsalarytaxconfig_add')")
public R save(@RequestBody TSalaryTaxConfig tSalaryTaxConfig) {
return new R<>(tSalaryTaxConfigService.save(tSalaryTaxConfig));
}
/**
* 修改所得税配置-薪资配置3
* 修改记录
*
* @param tSalaryTaxConfig 所得税配置-薪资配置3
* @param tSalaryTaxConfig
* @return R
*/
@Operation(summary = "修改所得税配置-薪资配置3", description = "修改所得税配置-薪资配置3:hasPermission('salary_tsalarytaxconfig_edit')")
@SysLog("修改所得税配置-薪资配置3")
@Operation(description = "修改")
@SysLog("修改个税比例及速算扣除数的配置表")
@PutMapping
@PreAuthorize("@pms.hasPermission('salary_tsalarytaxconfig_edit')")
public R<Boolean> updateById(@RequestBody TSalaryTaxConfig tSalaryTaxConfig) {
return R.ok(tSalaryTaxConfigService.updateById(tSalaryTaxConfig));
@PreAuthorize("@pms.hasPermission('wxhr:tsalarytaxconfig_edit')")
public R update(@RequestBody TSalaryTaxConfig tSalaryTaxConfig) {
return new R<>(tSalaryTaxConfigService.updateById(tSalaryTaxConfig));
}
/**
* 通过id删除所得税配置-薪资配置3
* 通过id删除一条记录
*
* @param id id
* @param id
* @return R
*/
@Operation(summary = "通过id删除所得税配置-薪资配置3", description = "通过id删除所得税配置-薪资配置3:hasPermission('salary_tsalarytaxconfig_del')")
@SysLog("通过id删除所得税配置-薪资配置3")
@Operation(description = "删除")
@SysLog("删除个税比例及速算扣除数的配置表")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('salary_tsalarytaxconfig_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tSalaryTaxConfigService.removeById(id));
@PreAuthorize("@pms.hasPermission('wxhr:tsalarytaxconfig_del')")
public R removeById(@PathVariable String id) {
return new R<>(tSalaryTaxConfigService.removeById(id));
}
}
package com.yifu.cloud.plus.v1.yifu.salary.controller;
\ No newline at end of file
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目基础薪酬配置-薪资配置2
* 工资报账配置
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TConfigSalaryMapper extends BaseMapper<TConfigSalary> {
/**
* 项目基础薪酬配置-薪资配置2简单分页查询
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @return
*/
IPage<TConfigSalary> getTConfigSalaryPage(Page<TConfigSalary> page, @Param("tConfigSalary") TConfigSalary tConfigSalary);
/**
* 工资报账配置简单分页查询
* @param tConfigSalary 工资报账配置
* @return
*/
IPage<TConfigSalary> getTConfigSalaryPage(Page page, @Param("tConfigSalary") TConfigSalary tConfigSalary
, @Param("settleDomainVos") List<TSettleDomainSelectVo> settleDomainVos);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TMinSalary;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TMinSalary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 最低工资配置-薪资配置4
* 各地市最低工资标准
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TMinSalaryMapper extends BaseMapper<TMinSalary> {
/**
* 最低工资配置-薪资配置4简单分页查询
* @param tMinSalary 最低工资配置-薪资配置4
* @return
*/
IPage<TMinSalary> getTMinSalaryPage(Page<TMinSalary> page, @Param("tMinSalary") TMinSalary tMinSalary);
/**
* 各地市最低工资标准简单分页查询
* @param tMinSalary 各地市最低工资标准
* @return
*/
IPage<TMinSalary> getTMinSalaryPage(Page page, @Param("tMinSalary") TMinSalary tMinSalary);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TOwnDept;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TOwnDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 自有员工所在结算主体大全表
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TOwnDeptMapper extends BaseMapper<TOwnDept> {
/**
* 自有员工所在结算主体大全表简单分页查询
* @param tOwnDept 自有员工所在结算主体大全表
* @return
*/
IPage<TOwnDept> getTOwnDeptPage(Page<TOwnDept> page, @Param("tOwnDept") TOwnDept tOwnDept);
/**
* 自有员工所在结算主体大全表简单分页查询
*
* @param tOwnDept 自有员工所在结算主体大全表
* @return
*/
IPage<TOwnDept> getTOwnDeptPage(Page<TOwnDept> page, @Param("tOwnDept") TOwnDept tOwnDept);
List<String> getOwnEmpList();
List<String> getTOwnDeptIdList();
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryConfigStandard;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryConfigStandard;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 工资报表配置-薪资配置6
* 薪资识别配置(标准模板)
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TSalaryConfigStandardMapper extends BaseMapper<TSalaryConfigStandard> {
/**
* 工资报表配置-薪资配置6简单分页查询
* @param tSalaryConfigStandard 工资报表配置-薪资配置6
* @return
*/
IPage<TSalaryConfigStandard> getTSalaryConfigStandardPage(Page<TSalaryConfigStandard> page, @Param("tSalaryConfigStandard") TSalaryConfigStandard tSalaryConfigStandard);
/**
* 薪资识别配置(标准模板)简单分页查询
*
* @param tSalaryConfigStandard 薪资识别配置(标准模板)
* @return
*/
IPage<TSalaryConfigStandard> getTSalaryConfigStandardPage(Page<TSalaryConfigStandard> page
, @Param("tSalaryConfigStandard") TSalaryConfigStandard tSalaryConfigStandard);
List<TSalaryConfigStandard> getTSalaryConfigStandardList(@Param("tSalaryConfigStandard") TSalaryConfigStandard tSalaryConfigStandard);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryTaxConfig;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryTaxConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 所得税配置-薪资配置3
* 个税比例及速算扣除数的配置表
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TSalaryTaxConfigMapper extends BaseMapper<TSalaryTaxConfig> {
/**
* 所得税配置-薪资配置3简单分页查询
* @param tSalaryTaxConfig 所得税配置-薪资配置3
* @return
*/
IPage<TSalaryTaxConfig> getTSalaryTaxConfigPage(Page<TSalaryTaxConfig> page, @Param("tSalaryTaxConfig") TSalaryTaxConfig tSalaryTaxConfig);
/**
* 个税比例及速算扣除数的配置表简单分页查询
* @param tSalaryTaxConfig 个税比例及速算扣除数的配置表
* @return
*/
IPage<TSalaryTaxConfig> getTSalaryTaxConfigPage(Page page, @Param("tSalaryTaxConfig") TSalaryTaxConfig tSalaryTaxConfig);
/**
* @param tSalaryTaxConfig
* @Description: 获取个税配置
* @Author: hgw
* @Date: 2019/10/8 14:39
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>
**/
List<TSalaryTaxConfig> getTaxConfigByPersonList(@Param("tSalaryTaxConfig") TSalaryTaxConfig tSalaryTaxConfig);
/**
* @param tSalaryTaxConfig
* @Description: 获取年终奖配置
* @Author: hgw
* @Date: 2019/10/8 14:40
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>
**/
List<TSalaryTaxConfig> getTaxConfigByAnnualBonusList(@Param("tSalaryTaxConfig") TSalaryTaxConfig tSalaryTaxConfig);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSpecialDeducationSum;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSpecialDeducationSum;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 专项扣除配置表-薪资配置5
*
* @author hgw
* @date 2022-08-05 11:40:14
* @author fxj
* @date 2022-08-06 13:00
*/
@Mapper
public interface TSpecialDeducationSumMapper extends BaseMapper<TSpecialDeducationSum> {
/**
* 专项扣除配置表-薪资配置5简单分页查询
* @param tSpecialDeducationSum 专项扣除配置表-薪资配置5
* @return
*/
IPage<TSpecialDeducationSum> getTSpecialDeducationSumPage(Page<TSpecialDeducationSum> page, @Param("tSpecialDeducationSum") TSpecialDeducationSum tSpecialDeducationSum);
/**
* 简单分页查询
*
* @param tSpecialDeducationSum
* @return
*/
IPage<TSpecialDeducationSum> getTSpecialDeducationSumPage(Page page, @Param("tSpecialDeducationSum") TSpecialDeducationSum tSpecialDeducationSum);
/**
* @param tSpecialDeducationSum
* @Description: 查找专项信息,返回list
* @Author: hgw
* @Date: 2019/9/30 16:18
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum>
**/
List<TSpecialDeducationSum> getTSpecialDeducationSumList(@Param("tSpecialDeducationSum") TSpecialDeducationSum tSpecialDeducationSum);
/**
* @param yearMonth
* @param idNumber
* @Description: 获取当月专项信息
* @Author: hgw
* @Date: 2019/9/30 16:29
* @return: com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum
**/
TSpecialDeducationSum getTSpecialDeducationSum(@Param("yearMonth") String yearMonth, @Param("idNumber") String idNumber, @Param("invoiceTitle") String invoiceTitle);
/**
* @param yearMonth
* @param idCardList
* @Description: 工资查询所需的全部list,组装Map来使用
* @Author: hgw
* @Date: 2022/1/26 16:45
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum>
**/
List<TSpecialDeducationSum> getListByIdCardList(@Param("yearMonth") String yearMonth, @Param("idCardList") List<String> idCardList);
int deleteByUnitAndMonth(@Param("yearMonth") String yearMonth, @Param("invoiceTitle") String invoiceTitle);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TConfigSalarySearchVo;
import java.util.List;
/**
* 项目基础薪酬配置-薪资配置2
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 工资报账配置
* @Date 13:12 2022/8/6
* @Param
* @return
**/
public interface TConfigSalaryService extends IService<TConfigSalary> {
/**
* 项目基础薪酬配置-薪资配置2简单分页查询
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @return
*/
IPage<TConfigSalary> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalarySearchVo tConfigSalary);
List<TConfigSalary> noPageDiy(TConfigSalarySearchVo searchVo);
/**
* 工资报账配置简单分页查询
* @param tConfigSalary 工资报账配置
* @return
*/
IPage<TConfigSalary> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalary tConfigSalary);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TMinSalary;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TMinSalarySearchVo;
import java.util.List;
/**
* 最低工资配置-薪资配置4
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 各地市最低工资标准
* @Date 13:13 2022/8/6
* @Param
* @return
**/
public interface TMinSalaryService extends IService<TMinSalary> {
/**
* 最低工资配置-薪资配置4简单分页查询
* @param tMinSalary 最低工资配置-薪资配置4
* @return
*/
IPage<TMinSalary> getTMinSalaryPage(Page<TMinSalary> page, TMinSalarySearchVo tMinSalary);
List<TMinSalary> noPageDiy(TMinSalarySearchVo searchVo);
/**
* 各地市最低工资标准简单分页查询
* @param tMinSalary 各地市最低工资标准
* @return
*/
IPage<TMinSalary> getTMinSalaryPage(Page<TMinSalary> page, TMinSalary tMinSalary);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TOwnDept;
import java.util.Map;
/**
* 自有员工所在结算主体大全表
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 自有员工所在结算主体大全表
* @Date 13:13 2022/8/6
* @Param
* @return
**/
public interface TOwnDeptService extends IService<TOwnDept> {
/**
* 自有员工所在结算主体大全表简单分页查询
*
* @param tOwnDept 自有员工所在结算主体大全表
* @return
*/
IPage<TOwnDept> getTOwnDeptPage(Page<TOwnDept> page, TOwnDept tOwnDept);
/**
* @param
* @Description: 获取自有员工结算主体id
* @Author: hgw
* @Date: 2021/12/28 10:44
* @return: Map
**/
Map<String, Integer> getOwnDeptMap();
/**
* @Description: 自有员工所在结算主体Map
* @Author: hgw
* @Date: 2021/11/2 17:51
* @return: java.util.Map<java.lang.String, java.lang.Integer>
**/
Map<String, Integer> getOwnEmpMap();
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryConfigStandard;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryConfigStandardSearchVo;
import java.util.List;
/**
* 工资报表配置-薪资配置6
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 薪资识别配置(标准模板)
* @Date 13:13 2022/8/6
* @Param
* @return
**/
public interface TSalaryConfigStandardService extends IService<TSalaryConfigStandard> {
/**
* 工资报表配置-薪资配置6简单分页查询
* @param tSalaryConfigStandard 工资报表配置-薪资配置6
* @return
*/
IPage<TSalaryConfigStandard> getTSalaryConfigStandardPage(Page<TSalaryConfigStandard> page, TSalaryConfigStandardSearchVo tSalaryConfigStandard);
List<TSalaryConfigStandard> noPageDiy(TSalaryConfigStandardSearchVo searchVo);
/**
* 薪资识别配置(标准模板)简单分页查询
*
* @param tSalaryConfigStandard 薪资识别配置(标准模板)
* @return
*/
IPage<TSalaryConfigStandard> getTSalaryConfigStandardPage(Page<TSalaryConfigStandard> page, TSalaryConfigStandard tSalaryConfigStandard);
List<TSalaryConfigStandard> getTSalaryConfigStandardList(TSalaryConfigStandard tSalaryConfigStandard);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryTaxConfig;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryTaxConfigSearchVo;
import java.util.List;
/**
* 所得税配置-薪资配置3
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 个税比例及速算扣除数的配置表
* @Date 13:13 2022/8/6
* @Param
* @return
**/
public interface TSalaryTaxConfigService extends IService<TSalaryTaxConfig> {
/**
* 所得税配置-薪资配置3简单分页查询
* @param tSalaryTaxConfig 所得税配置-薪资配置3
* @return
*/
IPage<TSalaryTaxConfig> getTSalaryTaxConfigPage(Page<TSalaryTaxConfig> page, TSalaryTaxConfigSearchVo tSalaryTaxConfig);
/**
* 个税比例及速算扣除数的配置表简单分页查询
* @param tSalaryTaxConfig 个税比例及速算扣除数的配置表
* @return
*/
IPage<TSalaryTaxConfig> getTSalaryTaxConfigPage(Page<TSalaryTaxConfig> page, TSalaryTaxConfig tSalaryTaxConfig);
/**
* @param tSalaryTaxConfig
* @Description: 获取个税配置
* @Author: hgw
* @Date: 2019/10/8 14:39
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>
**/
List<TSalaryTaxConfig> getTaxConfigByPersonList(TSalaryTaxConfig tSalaryTaxConfig);
/**
* @param tSalaryTaxConfig
* @Description: 获取年终奖配置
* @Author: hgw
* @Date: 2019/10/8 14:40
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSalaryTaxConfig>
**/
List<TSalaryTaxConfig> getTaxConfigByAnnualBonusList(TSalaryTaxConfig tSalaryTaxConfig);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSpecialDeducationSum;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSpecialDeducationSumSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
* 专项扣除配置表-薪资配置5
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
* @Author fxj
* @Description 专项扣除
* @Date 13:14 2022/8/6
* @Param
* @return
**/
public interface TSpecialDeducationSumService extends IService<TSpecialDeducationSum> {
/**
* 专项扣除配置表-薪资配置5简单分页查询
* @param tSpecialDeducationSum 专项扣除配置表-薪资配置5
* @return
*/
IPage<TSpecialDeducationSum> getTSpecialDeducationSumPage(Page<TSpecialDeducationSum> page, TSpecialDeducationSumSearchVo tSpecialDeducationSum);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
/**
* 简单分页查询
*
* @param tSpecialDeducationSum
* @return
*/
IPage<TSpecialDeducationSum> getTSpecialDeducationSumPage(Page<TSpecialDeducationSum> page, TSpecialDeducationSum tSpecialDeducationSum);
/**
* @param tSpecialDeducationSum
* @Description: 查找专项信息
* @Author: hgw
* @Date: 2019/9/30 16:19
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum>
**/
List<TSpecialDeducationSum> getTSpecialDeducationSumList(TSpecialDeducationSum tSpecialDeducationSum);
/**
* @param yearMonth 年月
* @param idNumber 身份证
* @param invoiceTitle 封面抬头
* @Description:
* @Author: hgw
* @Date: 2019/9/30 17:23
* @return: com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum
**/
TSpecialDeducationSum getTSpecialDeducationSum(String yearMonth, String idNumber, String invoiceTitle);
/**
* @param yearMonth 年月
* @param idCardList 身份证
* @Description: 工资查询所需的全部list,组装Map来使用
* @Author: hgw
* @Date: 2019/9/30 17:23
* @return: com.yifu.cloud.v1.hrms.api.entity.TSpecialDeducationSum
**/
Map<String, TSpecialDeducationSum> getTSpecialDeducationSumMap(String yearMonth, List<String> idCardList);
/**
* @param yearMonth 年月
* @param invoiceTitle 申报单位
* @Description: 删除专项扣除
* @Author: hgw
* @Date: 2020/4/1 15:12
* @return: int
**/
int deleteByUnitAndMonth(String yearMonth, String invoiceTitle);
/**
* @param sdsList
* @Description: 保存专项
* @Author: hgw
* @Date: 2019/10/14 14:48
* @return: com.yifu.cloud.v1.common.core.util.R
**/
R uploadSds(List<TSpecialDeducationSum> sdsList);
void listExport(HttpServletResponse response, TSpecialDeducationSumSearchVo searchVo);
List<TSpecialDeducationSum> noPageDiy(TSpecialDeducationSumSearchVo searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.salary.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
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 com.yifu.cloud.plus.v1.yifu.salary.entity.TConfigSalary;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TConfigSalaryMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TConfigSalaryService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TConfigSalarySearchVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 项目基础薪酬配置-薪资配置2
*
* @author hgw
* @date 2022-08-05 11:40:14
*/
@Log4j2
@Service
* @Author fxj
* @Description 工资报账配置
* @Date 13:17 2022/8/6
* @Param
* @return
**/
@Service("tConfigSalaryService")
public class TConfigSalaryServiceImpl extends ServiceImpl<TConfigSalaryMapper, TConfigSalary> implements TConfigSalaryService {
/**
* 项目基础薪酬配置-薪资配置2简单分页查询
*
* @param tConfigSalary 项目基础薪酬配置-薪资配置2
* @return
*/
@Override
public IPage<TConfigSalary> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalarySearchVo tConfigSalary) {
return baseMapper.getTConfigSalaryPage(page, tConfigSalary);
}
@Override
public List<TConfigSalary> noPageDiy(TConfigSalarySearchVo searchVo) {
LambdaQueryWrapper<TConfigSalary> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TConfigSalary::getId, idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0) {
wrapper.last(" limit " + searchVo.getLimitStart() + "," + searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TConfigSalarySearchVo entity) {
LambdaQueryWrapper<TConfigSalary> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TConfigSalary::getCreateTime, entity.getCreateTimes()[0])
.le(TConfigSalary::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())) {
wrapper.eq(TConfigSalary::getCreateName, entity.getCreateName());
}
return wrapper;
}
/**
* 工资报账配置简单分页查询
* @param tConfigSalary 工资报账配置
* @return
*/
@Override
public IPage<TConfigSalary> getTConfigSalaryPage(Page<TConfigSalary> page, TConfigSalary tConfigSalary){
YifuUser user = SecurityUtils.getUser();
List<TSettleDomainSelectVo> remoteSettleDomainVoData = null;
if (Common.isNotNull(user)) {
// TODO
R<List<TSettleDomainSelectVo>> remoteGetTSettleDomainVo = null;
if (remoteGetTSettleDomainVo == null) {
throw new RuntimeException("调用结算服务失败");
}
if (CommonConstants.SUCCESS != remoteGetTSettleDomainVo.getCode()) {
throw new RuntimeException("调用结算服务返回失败");
}
remoteSettleDomainVoData = remoteGetTSettleDomainVo.getData();
if (remoteSettleDomainVoData == null) {
throw new RuntimeException("未获取到相关结算信息");
}
}
return baseMapper.getTConfigSalaryPage(page, tConfigSalary, remoteSettleDomainVoData);
}
}
package com.yifu.cloud.plus.v1.yifu.salary.service;
\ No newline at end of file
......@@ -38,16 +38,6 @@ import java.util.Date;
@Data
public class TPaymentInfoVo extends RowIndex implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键 不能为空")
@Length(max = 32, message = "主键 不能超过32 个字符")
@ExcelAttribute(name = "主键", isNotEmpty = true, errorInfo = "主键 不能为空", maxLength = 32)
@Schema(description = "主键")
@ExcelProperty("主键")
private String id;
/**
* 员工姓名
*/
......@@ -69,7 +59,7 @@ public class TPaymentInfoVo extends RowIndex implements Serializable {
*/
@NotBlank(message = "员工ID 不能为空")
@Length(max = 32, message = "员工ID 不能超过32 个字符")
@ExcelAttribute(name = "员工ID", isNotEmpty = true, errorInfo = "员工ID 不能为空", maxLength = 32)
@ExcelAttribute(name = "员工ID", maxLength = 32)
@Schema(description = "员工ID")
@ExcelProperty("员工ID")
private String empId;
......
......@@ -854,7 +854,7 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
TPreDispatchInfo preInfo = new TPreDispatchInfo();
if (Common.isNotNull(list)){
for (TPreDispatchReduceVo info:list){
BeanUtils.copyProperties(preInfo,info);
BeanUtils.copyProperties(info,preInfo);
listInfo.add(preInfo);
}
}
......
......@@ -87,12 +87,12 @@ public class ServiceUtil {
public static boolean checkMothForPaymentImport(Date socialStartDate, String socialPayMonth, Date reduceDate) {
if(socialStartDate != null) {
if (null == reduceDate){
if(Integer.parseInt(socialPayMonth) >= Integer.parseInt(DateUtil.dateToString(socialStartDate))){
if(Integer.parseInt(socialPayMonth) >= Integer.parseInt(DateUtil.dateToString(socialStartDate).replace("-",""))){
return true;
}
}else {
if(Integer.parseInt(socialPayMonth) >= Integer.parseInt(DateUtil.dateToString(socialStartDate))
&& Integer.parseInt(socialPayMonth) < Integer.parseInt(DateUtil.dateToString(reduceDate))){
&& Integer.parseInt(socialPayMonth) < Integer.parseInt(DateUtil.dateToString(reduceDate).replace("-",""))){
return true;
}
}
......
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yifu.cloud.plus.v1.yifu.social.concurrent.threadpool.YFThreadPoolConfig
......@@ -79,7 +79,7 @@ public class ${className}ServiceImpl extends ServiceImpl<${className}Mapper, ${c
*/
@Override
public void listExport(HttpServletResponse response, ${className}SearchVo searchVo){
String fileName = "不良记录批量导出" + DateUtil.getThisTime() + ".xlsx";
String fileName = "${comments}批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<${className}> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
......
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