diff --git a/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java new file mode 100644 index 000000000..b29818b32 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java @@ -0,0 +1,68 @@ +package com.engine.salary.entity.salaryBill.po; + +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 工资单发放范围项目表 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalarySendRangeObj { + /** + * 主键id + */ + private Long id; + + /** + * 发放id + */ + private Long salarySendId; + + private Long salarySendRangeId; + + /** + * 范围类型;对象=1;对象中排除=2 + */ + private Integer rangeType; + + /** + * 目标类型,人员=1,部门=2,分部=3,岗位=4,个税扣缴义务人=5,所有人=0 + */ + private Integer targetType; + + /** + * 目标id + */ + private Long targetId; + + /** + * 创建人 + */ + private Long creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java new file mode 100644 index 000000000..f2e0675f5 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java @@ -0,0 +1,56 @@ +package com.engine.salary.entity.salaryBill.po; + +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 工资单发放范围表 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalarySendRangePO { + /** + * 主键id + */ + private Long id; + + /** + * 发放id + */ + private Long salarySendId; + + /** + * 发放=grant;撤回=withdraw + */ + private String grantType; + + /** + * 创建人 + */ + private Long creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/salarysend/SalarySendOperateTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendOperateTypeEnum.java new file mode 100644 index 000000000..30e674b12 --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendOperateTypeEnum.java @@ -0,0 +1,32 @@ +package com.engine.salary.enums.salarysend; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.util.SalaryI18nUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Optional; + +/** + * @Description: 范围类型 + * @Author: lfc + * @Date: 2022/11/14 09:33 + */ +@AllArgsConstructor +@Getter +public enum SalarySendOperateTypeEnum implements BaseEnum { + GRANT("grant", "发放", 98590), + WITHDRAW("withdraw", "撤回", 93351); + + private final String value; + + private final String defaultLabel; + + private final int labelId; + + public static String getDefaultLabelByValue(String value, Long employeeId, String tenantKey) { + Optional optional = Arrays.stream(SalarySendOperateTypeEnum.values()).filter(r->r.getValue().equals(value)).findFirst(); + return optional.isPresent()? SalaryI18nUtil.getI18nLabel(optional.get().getLabelId(), optional.get().getDefaultLabel()):""; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java new file mode 100644 index 000000000..cff60f34d --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java @@ -0,0 +1,33 @@ +package com.engine.salary.enums.salarysend; + +import com.engine.salary.enums.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Objects; + +@AllArgsConstructor +@Getter +public enum SalarySendRangeTargetTypeEnum implements BaseEnum { + USER(1, "人员", 100133), + DEPT(2, "部门", 86185), + SUB_COMPANY(3, "分部", 107369), + POSITION(4, "岗位", 90633), + TAX_AGENT(5, "个税扣缴义务人", 86184), + ALL(0, "所有人", 107729); + + private final int value; + + private final String defaultLabel; + + private final int labelId; + + public static SalarySendRangeTargetTypeEnum parseByValue(Integer value) { + for (SalarySendRangeTargetTypeEnum targetTypeEnum : SalarySendRangeTargetTypeEnum.values()) { + if (Objects.equals(targetTypeEnum.getValue(), value)) { + return targetTypeEnum; + } + } + return null; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java new file mode 100644 index 000000000..00cf96618 --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java @@ -0,0 +1,28 @@ +package com.engine.salary.enums.salarysend; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.util.SalaryI18nUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Optional; + +@AllArgsConstructor +@Getter +public enum SalarySendRangeTypeEnum implements BaseEnum { + + INCLUDE_OBJ(1, "对象", 90396), + EXCLUDE_OBJ(2, "对象中排除", 142728); + + private final int value; + + private final String defaultLabel; + + private final int labelId; + + public static String getDefaultLabelByValue(Integer value, Long employeeId, String tenantKey) { + Optional optional = Arrays.stream(SalarySendRangeTypeEnum.values()).filter(r->Integer.valueOf(r.getValue()).equals(value)).findFirst(); + return optional.isPresent()? SalaryI18nUtil.getI18nLabel(optional.get().getLabelId(), optional.get().getDefaultLabel()):""; + } +} diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java new file mode 100644 index 000000000..00a7be206 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java @@ -0,0 +1,24 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.po.SalarySendRangePO; + +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SalarySendRangeMapper { + int deleteByPrimaryKey(Long id); + + int insertSelective(SalarySendRangePO record); + + SalarySendRangePO selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SalarySendRangePO record); + + List selectByAll(SalarySendRangePO salarySendRangePO); + + List selectAllBySalarySendIdAndGrantType(@Param("salarySendId") Long salarySendId, @Param("grantType") String grantType); + + int updateBatchSelective(List list); + + int batchInsert(@Param("list") List list); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml new file mode 100644 index 000000000..cdbc77602 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + id, salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + + + + + delete from hrsa_salary_send_range + where id = #{id,jdbcType=BIGINT} + + + + insert into hrsa_salary_send_range + + + salary_send_id, + + + grant_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{salarySendId,jdbcType=BIGINT}, + + + #{grantType,jdbcType=VARCHAR}, + + + #{creator,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{deleteType,jdbcType=INTEGER}, + + + #{tenantKey,jdbcType=VARCHAR}, + + + + + + update hrsa_salary_send_range + + + salary_send_id = #{salarySendId,jdbcType=BIGINT}, + + + grant_type = #{grantType,jdbcType=VARCHAR}, + + + creator = #{creator,jdbcType=BIGINT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + delete_type = #{deleteType,jdbcType=INTEGER}, + + + tenant_key = #{tenantKey,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + + + + update hrsa_salary_send_range + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.grantType,jdbcType=VARCHAR} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.creator,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.createTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.updateTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.deleteType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.tenantKey,jdbcType=VARCHAR} + + + + + where id in + + #{item.id,jdbcType=BIGINT} + + + + + insert into hrsa_salary_send_range + (salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + ) + values + + (#{item.salarySendId,jdbcType=BIGINT}, #{item.grantType,jdbcType=VARCHAR}, #{item.creator,jdbcType=BIGINT}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR}) + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java new file mode 100644 index 000000000..56c6a8a4e --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java @@ -0,0 +1,24 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import java.util.Date; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SalarySendRangeObjMapper { + int deleteByPrimaryKey(Long id); + + int insertSelective(SalarySendRangeObj record); + + SalarySendRangeObj selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SalarySendRangeObj record); + + List selectByAll(SalarySendRangeObj salarySendRangeObj); + + List selectBySalarySendIdAndSalarySendRangeId(@Param("salarySendId") Long salarySendId, @Param("salarySendRangeId") Long salarySendRangeId); + + int updateBatchSelective(List list); + + int batchInsert(@Param("list") List list); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml new file mode 100644 index 000000000..13367c472 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + id, salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key + + + + + + + delete from hrsa_salary_send_range_obj + where id = #{id,jdbcType=BIGINT} + + + + + insert into hrsa_salary_send_range_obj + + + salary_send_id, + + + salary_send_range_id, + + + range_type, + + + target_type, + + + target_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{salarySendId,jdbcType=BIGINT}, + + + #{salarySendRangeId,jdbcType=BIGINT}, + + + #{rangeType,jdbcType=INTEGER}, + + + #{targetType,jdbcType=INTEGER}, + + + #{targetId,jdbcType=BIGINT}, + + + #{creator,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{deleteType,jdbcType=INTEGER}, + + + #{tenantKey,jdbcType=VARCHAR}, + + + + + + + update hrsa_salary_send_range_obj + + + salary_send_id = #{salarySendId,jdbcType=BIGINT}, + + + salary_send_range_id = #{salarySendRangeId,jdbcType=BIGINT}, + + + range_type = #{rangeType,jdbcType=INTEGER}, + + + target_type = #{targetType,jdbcType=INTEGER}, + + + target_id = #{targetId,jdbcType=BIGINT}, + + + creator = #{creator,jdbcType=BIGINT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + delete_type = #{deleteType,jdbcType=INTEGER}, + + + tenant_key = #{tenantKey,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + + + + + + + update hrsa_salary_send_range_obj + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendRangeId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.rangeType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.targetType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.targetId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.creator,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.createTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.updateTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.deleteType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.tenantKey,jdbcType=VARCHAR} + + + + + where id in + + #{item.id,jdbcType=BIGINT} + + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + values + + (#{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR}) + + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + values (#{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, + #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, + #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR}) + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + + select + #{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalarySendRangeService.java b/src/com/engine/salary/service/SalarySendRangeService.java new file mode 100644 index 000000000..5f5ba97a5 --- /dev/null +++ b/src/com/engine/salary/service/SalarySendRangeService.java @@ -0,0 +1,31 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryBill.dto.*; +import com.engine.salary.entity.salaryBill.param.*; +import com.engine.salary.entity.salaryBill.po.SalarySendPO; +import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; +import com.engine.salary.util.page.PageInfo; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @Description: 工资单发放范围 + */ +public interface SalarySendRangeService { + void save(); + + void listPage(); + + void listDTO(); + + void listByIds(); + + void getById(Long id); + + void deleteBySalarySendIds(Collection sendIds); + + void getSendInfoIdsBySendId(Collection sendIds); +}