diff --git a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java index 34dc71756..6dfae0819 100644 --- a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java @@ -5,6 +5,8 @@ import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.PageUtil; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; @@ -67,8 +69,8 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - mapper.deleteBatchIds(effectiveSalaryItemDels); - sqlSession.commit(); + mapper.deleteBatchIds(effectiveSalaryItemDels); + sqlSession.commit(); } finally { sqlSession.close(); } @@ -101,7 +103,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - return mapper.salaryItemAdjustRecordList(queryParam,salaryItemIds); + return mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); } finally { sqlSession.close(); } @@ -117,4 +119,17 @@ public class SalaryArchiveItemBiz { sqlSession.close(); } } + + public PageInfo salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + PageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); + SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); + List salaryItemAdjustRecordListDTOS = mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); + PageInfo page = new PageInfo(salaryItemAdjustRecordListDTOS); + return page; + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveTaxAgentFormDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveTaxAgentFormDTO.java index ab52a7f8d..bd822869b 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveTaxAgentFormDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveTaxAgentFormDTO.java @@ -5,6 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Map; + /** * @Description: 个税扣缴义务人调整 * @Author: wangxiangzhong @@ -17,9 +19,9 @@ import lombok.NoArgsConstructor; //个税扣缴义务人调整") public class SalaryArchiveTaxAgentFormDTO { - //薪资档案id") + //薪资档案id private Long salaryArchiveId; - //个税扣缴义务人调整") -// private WeaForm salaryArchiveTaxAgentForm; + //个税扣缴义务人调整 + private Map salaryArchiveTaxAgentForm; } diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SingleSalaryItemAdjustRecordListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SingleSalaryItemAdjustRecordListDTO.java index dce9afbc5..fd7099dde 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SingleSalaryItemAdjustRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SingleSalaryItemAdjustRecordListDTO.java @@ -5,11 +5,16 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + /** - * @Description: 薪资项目调整记录列表 - * @Author: wangxiangzhong - * @Date: 2021/11/1 16:34 - */ + * 薪资项目调整记录列表 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @Builder @NoArgsConstructor @@ -21,10 +26,10 @@ import lombok.NoArgsConstructor; //}, tableType = WeaTableTypeEnum.NONE) public class SingleSalaryItemAdjustRecordListDTO { -// //主键id") + // //主键id") // @JsonSerialize(using = ToStringSerializer.class) private Long id; -// + // // //调整项目") // @WeaFormat( // label = "调整项目", @@ -32,7 +37,7 @@ public class SingleSalaryItemAdjustRecordListDTO { // tableColumn = @TableColumn(width = "20%") // ) private String adjustItem; -// + // // //调整前") // @WeaFormat( // label = "调整前", @@ -40,23 +45,23 @@ public class SingleSalaryItemAdjustRecordListDTO { // tableColumn = @TableColumn(width = "20%") // ) private String adjustBefore; -// + // // //调整后") // @WeaFormat( // label = "调整后", // labelId = 85434, // tableColumn = @TableColumn(width = "20%") // ) -// private String adjustAfter; -// + private String adjustAfter; + // // //调整原因") // @WeaFormat( // label = "调整原因", // labelId = 85431, // tableColumn = @TableColumn(width = "10%") // ) -// private String adjustReason; -// + private String adjustReason; + // // //生效日期") // @WeaFormat( // label = "生效日期", @@ -64,16 +69,16 @@ public class SingleSalaryItemAdjustRecordListDTO { // tableColumn = @TableColumn(width = "15%") // ) // @JsonFormat(pattern = "yyyy-MM-dd") -// private LocalDate effectiveTime; -// + private Date effectiveTime; + // // //操作人") // @WeaFormat( // label = "操作人", // labelId = 85435, // tableColumn = @TableColumn(width = "10%") // ) -// private String operator; -// + private String operator; + // // //操作时间") // @WeaFormat( // label = "操作时间", @@ -81,25 +86,25 @@ public class SingleSalaryItemAdjustRecordListDTO { // tableColumn = @TableColumn(width = "20%") // ) // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") -// private Date operateTime; -// + private Date operateTime; + // // //备注") // @WeaFormat( // label = "备注", // labelId = 84961, // tableColumn = @TableColumn(width = "10%") // ) -// private String description; -// + private String description; + // // /** // * 薪资档案id // */ // @JsonIgnore -// private Long salaryArchiveId; -// + private Long salaryArchiveId; + // // /** // * 薪资项目id // */ // @JsonIgnore -// private Long salaryItemId; + private Long salaryItemId; } diff --git a/src/com/engine/salary/entity/salaryarchive/dto/TaxAgentAdjustRecordListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/TaxAgentAdjustRecordListDTO.java index 711ee0342..fa9e9f5b2 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/TaxAgentAdjustRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/TaxAgentAdjustRecordListDTO.java @@ -1,5 +1,10 @@ package com.engine.salary.entity.salaryarchive.dto; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.SalaryTable; +import com.engine.salary.annotation.SalaryTableColumn; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; @@ -7,119 +12,73 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + /** - * @Description: 个税扣缴义务人调整记录列表 - * @Author: wangxiangzhong - * @Date: 2021/11/1 16:34 - */ + * 个税扣缴义务人调整记录列表 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @Builder @NoArgsConstructor @AllArgsConstructor //个税扣缴义务人调整记录列表") -//@TableOperates(tableType = WeaTableTypeEnum.CHECKBOX) +@SalaryTable(pageId = "a4f85287-e3f9-4275-1567-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX) public class TaxAgentAdjustRecordListDTO { //主键id") @JsonSerialize(using = ToStringSerializer.class) + @SalaryTableColumn(column = "id", display = false) private Long id; -// /** -// * 人员信息表的主键id -// */ -// private Long employeeId; -// -// //姓名") -// @WeaFormat( -// label = "姓名", -// labelId = 85429, -// tableColumn = @TableColumn(width = "100") -// ) -// private String username; -// -// //部门") -// @WeaFormat( -// label = "部门", -// labelId = 86185, -// tableColumn = @TableColumn(width = "100") -// ) -// private String departmentName; -// -// //员工状态") -// @WeaFormat( -// label = "员工状态", -// labelId = 86187, -// tableColumn = @TableColumn(width = "100") -// ) -// private String employeeStatus; -// -// //调整前") -// @WeaFormat( -// label = "调整前", -// labelId = 85433, -// tableColumn = @TableColumn(width = "100") -// ) -// private String adjustBefore; -// -// //调整后") -// @WeaFormat( -// label = "调整后", -// labelId = 85434, -// tableColumn = @TableColumn(width = "100") -// ) -// private String adjustAfter; -// -// //调整原因") -// @WeaFormat( -// label = "调整原因", -// labelId = 85431, -// tableColumn = @TableColumn(width = "100") -// ) -// private String adjustReason; -// -// //生效日期") -// @WeaFormat( -// label = "生效日期", -// labelId = 85904, -// tableColumn = @TableColumn(width = "100") -// ) -// @JsonFormat(pattern = "yyyy-MM-dd") -// private LocalDate effectiveTime; -// -// //操作人") -// @WeaFormat( -// label = "操作人", -// labelId = 85435, -// tableColumn = @TableColumn(width = "100") -// ) -// private String operator; -// -// //操作时间") -// @WeaFormat( -// label = "操作时间", -// labelId = 85436, -// tableColumn = @TableColumn(width = "150") -// ) -// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") -// private Date operateTime; -// -// //备注") -// @WeaFormat( -// label = "备注", -// labelId = 84961, -// tableColumn = @TableColumn(width = "100") -// ) -// private String description; -// -// /** -// * 薪资档案id -// */ -// @JsonIgnore -// private Long salaryArchiveId; -// -// /** -// * 个税扣缴义务人id -// */ -// @JsonIgnore -// private Long taxAgentId; + /** + * 人员信息表的主键id + */ + private Long employeeId; + + @SalaryTableColumn(text = "姓名", width = "10%", column = "username") + private String username; + + @SalaryTableColumn(text = "部门", width = "10%", column = "departmentName") + private String departmentName; + + @SalaryTableColumn(text = "员工状态", width = "10%", column = "employeeStatus") + private String employeeStatus; + + @SalaryTableColumn(text = "调整前", width = "10%", column = "adjustBefore") + private String adjustBefore; + + @SalaryTableColumn(text = "调整后", width = "10%", column = "adjustAfter") + private String adjustAfter; + + @SalaryTableColumn(text = "调整原因", width = "10%", column = "adjustReason") + private String adjustReason; + + @SalaryTableColumn(text = "生效日期", width = "10%", column = "effectiveTime") + private Date effectiveTime; + + @SalaryTableColumn(text = "操作人", width = "10%", column = "operator") + private String operator; + + @SalaryTableColumn(text = "操作时间", width = "10%", column = "operateTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date operateTime; + + @SalaryTableColumn(text = "备注", width = "10%", column = "description") + private String description; + + /** + * 薪资档案id + */ + private Long salaryArchiveId; + + /** + * 个税扣缴义务人id + */ + @JsonIgnore + private Long taxAgentId; } diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentQueryParam.java index 902f3c9a0..432bfd505 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentQueryParam.java @@ -19,6 +19,8 @@ public class SalaryArchiveTaxAgentQueryParam { */ private Date effectiveTime; + Long salaryArchiveId; + Collection salaryArchivesIds; Collection employeeIds; diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentSaveParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentSaveParam.java index 05b7df536..3d72ab3e6 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentSaveParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveTaxAgentSaveParam.java @@ -8,7 +8,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.LocalDate; +import java.util.Date; /** * 个税扣缴义务人调整保存参数 @@ -29,15 +29,18 @@ public class SalaryArchiveTaxAgentSaveParam { private Long salaryArchiveId; //生效时间") - private LocalDate effectiveTime; + private Date effectiveTime; - //调整原因") - private SalaryArchiveTaxAgentAdjustReasonEnum adjustReason; + /** + * 调整原因 + * @see SalaryArchiveTaxAgentAdjustReasonEnum + */ + private String adjustReason; //个税扣缴义务人id") private Long taxAgentId; - public static void checkParam(SalaryArchiveTaxAgentSaveParam saveParam, Long employeeId, String tenantKey) { + public static void checkParam(SalaryArchiveTaxAgentSaveParam saveParam) { if (saveParam.getSalaryArchiveId() == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 100305, "薪资档案id必传")); } diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java index 092f5975f..2a7c8fcbc 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java @@ -1,6 +1,8 @@ package com.engine.salary.mapper.archive; +import com.engine.salary.entity.salaryarchive.dto.TaxAgentAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentQueryParam; +import com.engine.salary.entity.salaryarchive.param.TaxAgentAdjustRecordQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; import org.apache.ibatis.annotations.Param; @@ -8,74 +10,98 @@ import java.util.List; public interface SalaryArchiveTaxAgentMapper { - /** + /** * 查询所有记录 * * @return 返回集合,没有返回空List */ - List listAll(); - + List listAll(); + /** * 条件查询 * * @return 返回集合,没有返回空List */ List listSome(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); - - /** + + /** * 根据主键查询 * * @param id 主键 * @return 返回记录,没有返回null */ - SalaryArchiveTaxAgentPO getById(Long id); - - /** + SalaryArchiveTaxAgentPO getById(Long id); + + /** * 新增,忽略null字段 * * @param salaryArchiveTaxAgent 新增的记录 * @return 返回影响行数 */ - int insertIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); - - /** + int insertIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); + + /** * 修改,修改所有字段 * * @param salaryArchiveTaxAgent 修改的记录 * @return 返回影响行数 */ - int update(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); - - /** + int update(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); + + /** * 修改,忽略null字段 * * @param salaryArchiveTaxAgent 修改的记录 * @return 返回影响行数 */ - int updateIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); - - /** + int updateIgnoreNull(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); + + /** * 删除记录 * * @param salaryArchiveTaxAgent 待删除的记录 * @return 返回影响行数 */ - int delete(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); + int delete(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); - List listByParam(@Param("param") SalaryArchiveTaxAgentQueryParam build); + List listByParam(@Param("param") SalaryArchiveTaxAgentQueryParam build); - void deleteBySalaryArchiveId(@Param("collection")List salaryArchiveIds); + void deleteBySalaryArchiveId(@Param("collection") List salaryArchiveIds); - List getEffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam build); + List getEffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam build); - List getIneffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam build); + List getIneffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam build); - void deleteBatchIds(List ids); + void deleteBatchIds(List ids); - /** - * 批量插入 - * @param salaryArchiveTaxAgentSaves - */ - void batchInsert(@Param("collection") List salaryArchiveTaxAgentSaves); + /** + * 批量插入 + * + * @param salaryArchiveTaxAgentSaves + */ + void batchInsert(@Param("collection") List salaryArchiveTaxAgentSaves); + + + /** + * 分页查询薪资项目调整记录列表 + * + * @param page + * @param param + * @param tenantKey + * @return + */ +// IPage taxAgentAdjustRecordList(Page page, @Param("param") TaxAgentAdjustRecordQueryParam param, @Param("tenantKey") String tenantKey); + + /** + * 查询薪资项目调整记录列表 + * + * @param param + * @return + */ + List taxAgentAdjustRecordList(@Param("param") TaxAgentAdjustRecordQueryParam param); + + List getTaxAgentLtTimeBySalaryArchiveId(SalaryArchiveTaxAgentQueryParam build); + + List getAdjustBeforeTaxAgent(SalaryArchiveTaxAgentPO build); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml index 7a304f05e..ec0af4c31 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml @@ -333,6 +333,9 @@ FROM hrsa_salary_archive_tax_agent t WHERE delete_type = 0 AND t.effective_time <= #{effectiveTime} + + AND t.salary_archive_id = #{salaryArchiveId} + ORDER BY t.effective_time DESC @@ -342,7 +345,10 @@ FROM hrsa_salary_archive_tax_agent t WHERE delete_type = 0 - AND t.effective_time >= #{effectiveTime} + AND t.effective_time > #{effectiveTime} + + AND t.salary_archive_id = #{salaryArchiveId} + ORDER BY t.effective_time DESC @@ -436,5 +442,289 @@ + + + + + + t1 + . + id + , + t1.employee_id, + e.lastname as username, + e.status AS employeeStatus, + d.departmentname AS departmentName, + t1.effective_time, + t1.adjust_reason, + t1.tax_agent_id AS adjust_after, + o.lastname AS operator, + t1.operate_time, + t1.description, + t1.salary_archive_id, + t1.tax_agent_id + + + + + AND t1.id IN + + #{id} + + + + + AND t1.salary_archive_id = #{param.salaryArchiveId} + + + + AND e.lastname like CONCAT('%',#{param.username},'%') + + + + AND e.position IN + + #{id} + + + + + AND e.status = #{param.userstatus} + + + + AND d.id IN + + #{id} + + + + + AND t1.adjust_reason = #{param.adjustReason} + + + + AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]}) + + + + AND (t1.operate_time BETWEEN CONCAT(#{param.operateTime[0]},' 00:00:00') AND + CONCAT(#{param.operateTime[1]},' 23:59:59')) + + + + AND t1.operator IN + + #{id} + + + + + AND t1.description like CONCAT('%',#{param.description},'%') + + + + + AND t1.id IN + + #{id} + + + + + AND t1.salary_archive_id = #{param.salaryArchiveId} + + + + AND e.lastname like '%'||#{param.username}||'%' + + + + AND e.position IN + + #{id} + + + + + AND e.status = #{param.userstatus} + + + + AND d.id IN + + #{id} + + + + + AND t1.adjust_reason = #{param.adjustReason} + + + + AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]}) + + + + AND (t1.operate_time BETWEEN #{param.operateTime[0]}||' 00:00:00' AND #{param.operateTime[1]}||' 23:59:59' ) + + + + AND t1.operator IN + + #{id} + + + + + AND t1.description like '%'||#{param.description}||'%' + + + + + AND t1.id IN + + #{id} + + + + + AND t1.salary_archive_id = #{param.salaryArchiveId} + + + + AND e.lastname like '%'+#{param.username}+'%' + + + + AND e.position IN + + #{id} + + + + + AND e.status = #{param.userstatus} + + + + AND d.id IN + + #{id} + + + + + AND t1.adjust_reason = #{param.adjustReason} + + + + AND (t1.effective_time BETWEEN #{param.effectiveTime[0]} AND #{param.effectiveTime[1]}) + + + + AND (t1.operate_time BETWEEN #{param.operateTime[0]}+' 00:00:00' AND #{param.operateTime[1]}+' 23:59:59' ) + + + + AND t1.operator IN + + #{id} + + + + + AND t1.description like '%'+#{param.description}+'%' + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryArchiveItemService.java b/src/com/engine/salary/service/SalaryArchiveItemService.java index 26dac1a7d..b91feab36 100644 --- a/src/com/engine/salary/service/SalaryArchiveItemService.java +++ b/src/com/engine/salary/service/SalaryArchiveItemService.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustBeforeParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.util.page.PageInfo; import java.util.List; @@ -73,7 +74,7 @@ public interface SalaryArchiveItemService { * @param tenantKey * @return */ -// Page salaryItemAdjustRecordListPage(Page page, SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds, String tenantKey); + PageInfo salaryItemAdjustRecordListPage( SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds); /** * 薪资调整记录列表 diff --git a/src/com/engine/salary/service/SalaryArchiveTaxAgentService.java b/src/com/engine/salary/service/SalaryArchiveTaxAgentService.java new file mode 100644 index 000000000..913edcfe2 --- /dev/null +++ b/src/com/engine/salary/service/SalaryArchiveTaxAgentService.java @@ -0,0 +1,86 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryarchive.dto.TaxAgentAdjustRecordListDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentSaveParam; +import com.engine.salary.entity.salaryarchive.param.TaxAgentAdjustRecordQueryParam; +import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; + +import java.util.List; + +/** + * 薪资档案-个税扣缴义务人 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface SalaryArchiveTaxAgentService { + + /** + * 获取已经生效的个税扣缴义务人 + * + * @param salaryArchiveId + * @return + */ + SalaryArchiveTaxAgentPO getEffectiveTaxAgent(Long salaryArchiveId); + + /** + * 获取单个薪资档案个税扣缴义务人记录 + * + * @param salaryArchiveTaxAgentId + * @return + */ + SalaryArchiveTaxAgentPO getById(Long salaryArchiveTaxAgentId); + + /** + * 获取调整前的个税扣缴义务人 + * + * @param salaryArchiveTaxAgent + * @return + */ + SalaryArchiveTaxAgentPO getAdjustBeforeTaxAgent(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); + + /** + * 个税扣缴义务人的调整记录(分页) + * + * @param page + * @param queryParam + * @return + */ +// Page taxAgentAdjustRecordListPage(Page page, TaxAgentAdjustRecordQueryParam queryParam); + + /** + * 个税扣缴义务人的调整记录 + * + * @param queryParam + * @return + */ + List taxAgentAdjustRecordList(TaxAgentAdjustRecordQueryParam queryParam); + + /** + * 保存个税扣缴义务人调整 + * + * @param saveParam + * @return + */ + String saveTaxAgent(SalaryArchiveTaxAgentSaveParam saveParam); + + /** + * 删除个税扣缴义务人调整 + * + * @param salaryArchiveTaxAgentId + * @return + */ + String deleteTaxAgent(Long salaryArchiveTaxAgentId); + + /** + * 导出-个税扣缴义务人的调整记录列表 + * + * @param map + * @param username + * @param eteamsId + * @param queryParam + */ +// void exportAdjustRecordList(Map map, String username, String eteamsId, TaxAgentAdjustRecordQueryParam queryParam); +} diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 520961474..979129748 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SalaryArchiveItemService; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; @@ -250,11 +251,10 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi } -// @Override -// public Page salaryItemAdjustRecordListPage(Page page, SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds, String tenantKey) { -// salaryArchiveItemMapper.salaryItemAdjustRecordList(page, queryParam, salaryItemIds, tenantKey); -// return page; -// } + @Override + public PageInfo salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds) { + return salaryArchiveItemMapper.salaryItemAdjustRecordListPage(queryParam, salaryItemIds); + } @Override public List salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds) { diff --git a/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java new file mode 100644 index 000000000..4fb08bb7d --- /dev/null +++ b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java @@ -0,0 +1,281 @@ +package com.engine.salary.service.impl; + +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.salaryarchive.dto.TaxAgentAdjustRecordListDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentQueryParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentSaveParam; +import com.engine.salary.entity.salaryarchive.param.TaxAgentAdjustRecordQueryParam; +import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; +import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.archive.SalaryArchiveMapper; +import com.engine.salary.mapper.archive.SalaryArchiveTaxAgentMapper; +import com.engine.salary.service.SalaryArchiveTaxAgentService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.SalaryI18nUtil; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; +import java.util.List; + +/** + * 薪资档案-个税扣缴义务人 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryArchiveTaxAgentService { + private static final Logger log = LoggerFactory.getLogger(SalaryArchiveTaxAgentServiceImpl.class); + private SalaryArchiveMapper salaryArchiveMapper; + private SalaryArchiveTaxAgentMapper salaryArchiveTaxAgentMapper; + private TaxAgentService taxAgentService; +// private SalaryBatchService salaryBatchService; + + @Override + public SalaryArchiveTaxAgentPO getById(Long salaryArchiveTaxAgentId) { + return salaryArchiveTaxAgentMapper.getById(salaryArchiveTaxAgentId); + } + +// @Override +// public Page taxAgentAdjustRecordListPage(Page page, TaxAgentAdjustRecordQueryParam queryParam, String tenantKey) { +// salaryArchiveTaxAgentMapper.taxAgentAdjustRecordList(page, queryParam, tenantKey); +// return page; +// } + + @Override + public List taxAgentAdjustRecordList(TaxAgentAdjustRecordQueryParam queryParam) { + return salaryArchiveTaxAgentMapper.taxAgentAdjustRecordList(queryParam); + } + + /** + * 获取未生效 + * + * @param salaryArchiveId + * @return + */ + private SalaryArchiveTaxAgentPO getIneffectiveTaxAgent(Long salaryArchiveId) { + List ineffectiveTaxAgentList = salaryArchiveTaxAgentMapper.getIneffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam.builder().salaryArchiveId(salaryArchiveId).effectiveTime(new Date()).build()); + return CollectionUtils.isNotEmpty(ineffectiveTaxAgentList) ? ineffectiveTaxAgentList.get(0) : null; + } + + /** + * 获取当前已生效 + * + * @param salaryArchiveId + * @return + */ + @Override + public SalaryArchiveTaxAgentPO getEffectiveTaxAgent(Long salaryArchiveId) { + List effectiveTaxAgentList = salaryArchiveTaxAgentMapper.getEffectiveTaxAgentList(SalaryArchiveTaxAgentQueryParam.builder().salaryArchiveId(salaryArchiveId).effectiveTime(new Date()).build()); + return CollectionUtils.isNotEmpty(effectiveTaxAgentList) ? effectiveTaxAgentList.get(0) : null; + } + + @Override + public String saveTaxAgent(SalaryArchiveTaxAgentSaveParam saveParam) { + // 校验参数 + SalaryArchiveTaxAgentSaveParam.checkParam(saveParam); + + // 薪资档案 + SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(saveParam.getSalaryArchiveId()); + // 获取当前已生效 + SalaryArchiveTaxAgentPO effectiveTaxAgent = getEffectiveTaxAgent(saveParam.getSalaryArchiveId()); + // 获取当前已生效之前的 + List salaryArchiveTaxAgents = Lists.newArrayList(); + if (effectiveTaxAgent != null) { + salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.getTaxAgentLtTimeBySalaryArchiveId( + SalaryArchiveTaxAgentQueryParam + .builder() + .salaryArchiveId(saveParam.getSalaryArchiveId()) + .effectiveTime(effectiveTaxAgent.getEffectiveTime()) + .build()); + } + // 获取未生效数据 + SalaryArchiveTaxAgentPO ineffectiveTaxAgent = getIneffectiveTaxAgent(saveParam.getSalaryArchiveId()); + + // 待保存生效时间 + Date saveEffectiveTime = saveParam.getEffectiveTime(); + // 当天 + Date today = new Date(); + + // 1.检验是否可以调整 + if (effectiveTaxAgent != null) { + // 当前已经生效的时间 + Date effectiveTime = effectiveTaxAgent.getEffectiveTime(); + // 1.1 如果早于<当前已生效 + if (saveEffectiveTime.before(effectiveTime)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期")); + // 1.2 如果等于当前已生效 + } else if (saveEffectiveTime.equals(effectiveTime)) { + if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgents) && salaryArchiveTaxAgents.get(0).getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同")); + } + if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同")); + } + // 1.3 如果>已经生效且<=今天 + } else if (saveEffectiveTime.after(effectiveTime) && !saveEffectiveTime.after(today)) { + if (effectiveTaxAgent.getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同")); + } + if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同")); + } + // 1.4 如果>今天 + } else if (saveEffectiveTime.after(today) && effectiveTaxAgent.getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同")); + } + } else if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(saveParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同")); + } + // 2.数据处理 + // 2.数据处理,有的就先删后增 + if (effectiveTaxAgent != null && saveEffectiveTime.equals(effectiveTaxAgent.getEffectiveTime())) { + salaryArchiveTaxAgentMapper.delete(SalaryArchiveTaxAgentPO.builder().id(effectiveTaxAgent.getId()).build()); + } + if (ineffectiveTaxAgent != null && saveEffectiveTime.after(today)) { + salaryArchiveTaxAgentMapper.delete(SalaryArchiveTaxAgentPO.builder().id(ineffectiveTaxAgent.getId()).build()); + } + insertTaxAgent(salaryArchive, saveParam); + // 3.todo 日志处理 + + return StringUtils.EMPTY; + } + + /** + * 插入 + * + * @param salaryArchive + * @param saveParam + */ + private void insertTaxAgent(SalaryArchivePO salaryArchive, SalaryArchiveTaxAgentSaveParam saveParam) { + long employeeId = user.getUID(); + Date now = new Date(); + SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = SalaryArchiveTaxAgentPO.builder() +// .id(IdGenerator.generate()) + .salaryArchiveId(saveParam.getSalaryArchiveId()) + .employeeId(salaryArchive.getEmployeeId()) + .effectiveTime(saveParam.getEffectiveTime()) + .adjustReason(saveParam.getAdjustReason()) + // 调整后 + .taxAgentId(saveParam.getTaxAgentId()) + .operator(employeeId) + .operateTime(now) + .createTime(now) + .updateTime(now) + .creator(employeeId) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + salaryArchiveTaxAgentMapper.insertIgnoreNull(salaryArchiveTaxAgent); + } + + @Override + public String deleteTaxAgent(Long salaryArchiveTaxAgentId) { + SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = salaryArchiveTaxAgentMapper.getById(salaryArchiveTaxAgentId); + if (salaryArchiveTaxAgent == null) { + return StringUtils.EMPTY; + } + if (salaryArchiveTaxAgent.getEffectiveTime().after(new Date())) { + salaryArchiveTaxAgent.setDeleteType(1); + // 删除未生效数据 + salaryArchiveTaxAgentMapper.delete(salaryArchiveTaxAgent); + } + return StringUtils.EMPTY; + } + +// @Override +// public void exportAdjustRecordList(Map map, String username, String eteamsId, TaxAgentAdjustRecordQueryParam queryParam, Long currentEmployeeId, String currentTenantKey) { +// List sheetList = new ArrayList<>(); +// +// ExcelSheetData excelSheetData = new ExcelSheetData(); +// // 1.工作簿名称 +// String nameI18n = SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 99978, "个税扣缴义务人调整记录"); +// excelSheetData.setSheetName(nameI18n); +// String[] header = { +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85429, "姓名"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 86187, "员工状态"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 86185, "部门"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85433, "调整前"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85434, "调整后"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85431, "调整原因"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85904, "生效日期"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85435, "操作人"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 85436, "操作时间"), +// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 84961, "备注") +// }; +// // 2.表头 +// excelSheetData.setHeaders(Collections.singletonList(header)); +// +// // 获取记录 +// List list = salaryArchiveTaxAgentMapper.taxAgentAdjustRecordList(queryParam, currentTenantKey); +// List listAll = salaryArchiveTaxAgentMapper.taxAgentAdjustRecordList(TaxAgentAdjustRecordQueryParam.builder().build(), currentTenantKey); +// // 个税扣缴义务人 +// Collection taxAgentList = taxAgentService.findAll(currentTenantKey); +// // 人员信息赋值 +// list.forEach(m -> { +// if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) { +// listAll.removeIf(a -> a.getId().equals(m.getId())); +// } +// Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId())).findFirst(); +// m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); +// Optional optionalBefore = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustBefore())).findFirst(); +// m.setAdjustBefore(optionalBefore.isPresent() ? optionalBefore.get().getName() : ""); +// Optional optionalAfter = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustAfter())).findFirst(); +// m.setAdjustAfter(optionalAfter.isPresent() ? optionalAfter.get().getName() : ""); +// +// m.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(m.getEmployeeStatus(), currentEmployeeId, currentTenantKey)); +// m.setAdjustReason(SalaryArchiveTaxAgentAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason(), currentEmployeeId, currentTenantKey)); +// }); +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// List> rows = new ArrayList<>(); +// for (TaxAgentAdjustRecordListDTO dto : list) { +// List row = new ArrayList<>(); +// row.add(dto.getUsername()); +// row.add(dto.getEmployeeStatus()); +// row.add(dto.getDepartmentName()); +// row.add(dto.getAdjustBefore()); +// row.add(dto.getAdjustAfter()); +// row.add(dto.getAdjustReason()); +// row.add(dto.getEffectiveTime() + ""); +// row.add(dto.getOperator()); +// row.add(format.format(dto.getOperateTime())); +// row.add(dto.getDescription()); +// rows.add(row); +// } +// // 3.表数据 +// excelSheetData.setRows(rows); +// +// sheetList.add(excelSheetData); +// +// salaryBatchService.simpleExportExcel(ExportExcelInfo.builder() +// .bizId(map.get("biz").toString()) +// .flag(true) +// .userId(currentEmployeeId) +// .eteamsId(eteamsId) +// .tenantKey(currentTenantKey) +// .operator(username) +// .module(map.get("module").toString()) +// .fileName(nameI18n + SalaryDateUtil.getFormatLocalDateTime(LocalDateTime.now())) +// .handlerName(map.get("function").toString()) +// .dataType(nameI18n) +// .function(map.get("function").toString()).build(), sheetList); +// } + + @Override + public SalaryArchiveTaxAgentPO getAdjustBeforeTaxAgent(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent) { + List salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.getAdjustBeforeTaxAgent( + SalaryArchiveTaxAgentPO + .builder() + .salaryArchiveId(salaryArchiveTaxAgent.getSalaryArchiveId()) + .effectiveTime(salaryArchiveTaxAgent.getEffectiveTime()) + .build()); + return CollectionUtils.isNotEmpty(salaryArchiveTaxAgents) ? salaryArchiveTaxAgents.get(0) : null; + } + +} diff --git a/src/com/engine/salary/util/page/PageInfo.java b/src/com/engine/salary/util/page/PageInfo.java index f74d3e946..55735520a 100644 --- a/src/com/engine/salary/util/page/PageInfo.java +++ b/src/com/engine/salary/util/page/PageInfo.java @@ -15,6 +15,9 @@ public class PageInfo extends com.github.pagehelper.PageInfo { List columns = new ArrayList<>(); List dataSource = new ArrayList<>(); + public PageInfo() { + } + public PageInfo(List list) { super(list); } diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index a63e5ad3a..42fbccf8c 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -3,10 +3,13 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveFormDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentFormDTO; +import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.*; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import com.engine.salary.util.ResponseResult; import com.engine.salary.wrapper.SalaryArchiveItemWrapper; +import com.engine.salary.wrapper.SalaryArchiveTaxAgentWrapper; import com.engine.salary.wrapper.SalaryArchiveWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.apache.commons.lang3.StringUtils; @@ -17,10 +20,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -48,7 +48,10 @@ public class SalaryArchiveController { private SalaryArchiveItemWrapper getSalaryArchiveItemWrapper(User user) { return ServiceUtil.getService(SalaryArchiveItemWrapper.class, user); } -// private SalaryArchiveTaxAgentWrapper salaryArchiveTaxAgentWrapper; + + private SalaryArchiveTaxAgentWrapper getSalaryArchiveTaxAgentWrapper(User user) { + return ServiceUtil.getService(SalaryArchiveTaxAgentWrapper.class, user); + } // /******** 薪资档案主表 start ***********************************************************************************************/ @@ -64,7 +67,7 @@ public class SalaryArchiveController { @Produces(MediaType.APPLICATION_JSON) public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>().run(getSalaryArchiveWrapper(user)::list, queryParam); + return new ResponseResult>().run(getSalaryArchiveWrapper(user)::list, queryParam); } /** @@ -318,87 +321,89 @@ public class SalaryArchiveController { // ******** 薪资项目调整 end ***********************************************************************************************/ // ******** 个税扣缴义务人调整 start ***********************************************************************************************/ -// /** -// * 获取个税扣缴义务人调整表单 -// * -// * @param salaryArchiveId -// * @return -// */ -// @GetMapping("/getTaxAgentForm") -// @ApiOperation("获取个税扣缴义务人调整表单") -// @WeaPermission -// public WeaResult getTaxAgentForm(@RequestParam(value = "salaryArchiveId") Long salaryArchiveId) { -// SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()); -// return WeaResult.success(form); -// } -// -// /** -// * 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单 -// * -// * @param salaryArchiveTaxAgentId -// * @return -// */ -// @GetMapping("/getTaxAgentFormBySalaryArchiveTaxAgentId") -// @ApiOperation("获取薪资项目调整表单") -// @WeaPermission -// public WeaResult getTaxAgentFormBySalaryArchiveTaxAgentId(@RequestParam Long salaryArchiveTaxAgentId) { -// SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentFormBySalaryArchiveTaxAgentId(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()); -// return WeaResult.success(form); -// } -// -// /** -// * 保存个税扣缴义务人调整 -// * -// * @param saveParam -// * @return -// */ -// @PostMapping("/saveTaxAgent") -// @ApiOperation("保存个税扣缴义务人调整") -// @WeaPermission -// public WeaResult saveTaxAgent(@RequestBody SalaryArchiveTaxAgentSaveParam saveParam) { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.saveTaxAgent(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); -// } -// -// /** -// * 删除个税扣缴义务人调整 -// * -// * @param salaryArchiveTaxAgentId -// * @return -// */ -// @PostMapping("/deleteTaxAgent") -// @ApiOperation("删除个税扣缴义务人调整") -// @WeaPermission -// public WeaResult deleteTaxAgent(@RequestParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.deleteTaxAgent(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); -// } -// /******** 薪资项目调整 end ***********************************************************************************************/ -// -// /******** 薪资项目调整记录 start ***********************************************************************************************/ -// /** -// * 薪资项目调整记录列表的高级搜索 -// * -// * @return -// */ -// @GetMapping("/adjustRecord/getSalaryItemSearchCondition") -// @ApiOperation("薪资项目调整记录列表的高级搜索") -// @WeaPermission -// public WeaResult getSalaryItemSearchCondition() { -// return WeaResult.success(salaryArchiveItemWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); -// } -// -// /** -// * 薪资项目调整记录列表 -// * -// * @param queryParam -// * @return -// */ -// @PostMapping("/adjustRecord/salaryItemList") -// @ApiOperation("薪资项目调整记录列表") -// @WeaPermission -// public WeaResult> salaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) { -// return WeaResult.success(salaryArchiveItemWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); -// } -// + + /** + * 获取个税扣缴义务人调整表单 + * + * @param salaryArchiveId + * @return + */ + @GET + @Path("/getTaxAgentForm") + @Produces(MediaType.APPLICATION_JSON) + public String getTaxAgentForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveId") Long salaryArchiveId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryArchiveTaxAgentWrapper(user)::getTaxAgentForm, salaryArchiveId); + } + + /** + * 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单` + * + * @param salaryArchiveTaxAgentId + * @return + */ + @GET + @Path("/getTaxAgentFormBySalaryArchiveTaxAgentId") + @Produces(MediaType.APPLICATION_JSON) + public String getTaxAgentFormBySalaryArchiveTaxAgentId(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryArchiveTaxAgentWrapper(user)::getTaxAgentFormBySalaryArchiveTaxAgentId, salaryArchiveTaxAgentId); + } + + + /** + * 保存个税扣缴义务人调整 + * + * @param saveParam + * @return + */ + @POST + @Path("/saveTaxAgent") + @Produces(MediaType.APPLICATION_JSON) + public String saveTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveTaxAgentSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryArchiveTaxAgentWrapper(user)::saveTaxAgent, saveParam); + } + + + /** + * 删除个税扣缴义务人调整 + * + * @param salaryArchiveTaxAgentId + * @return + */ + /** + * 保存个税扣缴义务人调整 + * + * @return + */ + @POST + @Path("/deleteTaxAgent") + @Produces(MediaType.APPLICATION_JSON) + public String deleteTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long salaryArchiveTaxAgentId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryArchiveTaxAgentWrapper(user)::deleteTaxAgent, salaryArchiveTaxAgentId); + } + + // ******** 薪资项目调整 end ***********************************************************************************************/ + + // ******** 薪资项目调整记录 start ***********************************************************************************************/ + + + /** + * 薪资项目调整记录列表 + * + * @param queryParam + * @return + */ + @POST + @Path("/adjustRecord/salaryItemList") + @Produces(MediaType.APPLICATION_JSON) + public String adjustRecordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemAdjustRecordQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getSalaryArchiveItemWrapper(user)::adjustRecordList, queryParam); + } + // /** // * 单个档案的薪资项目调整记录列表 // * @@ -436,7 +441,7 @@ public class SalaryArchiveController { // @ApiOperation("个税扣缴义务人调整记录列表的高级搜索") // @WeaPermission // public WeaResult getTaxAgentSearchCondition() { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); +// return WeaResult.success(getSalaryArchiveTaxAgentWrapper(user).getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** @@ -449,7 +454,7 @@ public class SalaryArchiveController { // @ApiOperation("个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> taxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); +// return WeaResult.success(getSalaryArchiveTaxAgentWrapper(user).adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** @@ -462,7 +467,7 @@ public class SalaryArchiveController { // @ApiOperation("单个档案的个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> SingleTaxAgentAdjustRecordList(@RequestBody SingleTaxAgentAdjustRecordQueryParam queryParam) { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.singleTaxAgentAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); +// return WeaResult.success(getSalaryArchiveTaxAgentWrapper(user).singleTaxAgentAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** @@ -475,7 +480,7 @@ public class SalaryArchiveController { // @ApiOperation("导出个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> exportTaxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) { -// return WeaResult.success(salaryArchiveTaxAgentWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); +// return WeaResult.success(getSalaryArchiveTaxAgentWrapper(user).exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // /******** 个税扣缴义务人调整记录 end ***********************************************************************************************/ } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 2db7daab3..2f094fc9d 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -190,30 +190,28 @@ public class SalaryArchiveItemWrapper extends Service { return list; } -// /** -// * 单个档案的薪资项目调整记录列表 -// * -// * @param queryParam -// * @param employeeId -// * @param tenantKey -// * @return -// */ -// public WeaTable singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam, Long employeeId, String tenantKey) { + /** + * 单个档案的薪资项目调整记录列表 + * + * @param queryParam + * @return + */ +// public WeaTable singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam) { // if (queryParam.getSalaryArchiveId() == null) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100425, "薪资档案id不能为空")); // } // // 获取所有可被引用的薪资项目 -// List salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(tenantKey); +// List salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(); // List salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); // -// Page page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true); // SalaryItemAdjustRecordQueryParam adjustRecordQueryParam = new SalaryItemAdjustRecordQueryParam(); // BeanUtils.copyProperties(queryParam, adjustRecordQueryParam); -// page = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(page, adjustRecordQueryParam, salaryItemIds, tenantKey); -// Page listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); +// PageInfo page = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(adjustRecordQueryParam, salaryItemIds); // -// List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds, tenantKey); -// List list = page.getRecords(); +// PageInfo listPage = new PageInfo(); +// +// List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); +// List list = page.getList(); // List resultList = Lists.newArrayList(); // list.forEach(m -> { // if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) { @@ -222,24 +220,24 @@ public class SalaryArchiveItemWrapper extends Service { // Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst(); // m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); // -// m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason(), employeeId, tenantKey)); +// m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); // // SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecordList = new SingleSalaryItemAdjustRecordListDTO(); // BeanUtils.copyProperties(m, singleSalaryItemAdjustRecordList); // resultList.add(singleSalaryItemAdjustRecordList); // }); -// listPage.setRecords(resultList); +// listPage.setList(resultList); // // WeaTable weaTable = FormatManager.getInstance() // .genTable(SingleSalaryItemAdjustRecordListDTO.class, listPage); // weaTable.setModule("hrmsalary"); -// List salaryItemPageIds = listPage.getRecords().stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList()); -// List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(queryParam.getSalaryArchiveId(), salaryItemPageIds, tenantKey); +// List salaryItemPageIds = listPage.getList().stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList()); +// List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(queryParam.getSalaryArchiveId(), salaryItemPageIds); // // 行记录按钮权限控制 -// for (int i = 0; i < listPage.getRecords().size(); i++) { -// SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = listPage.getRecords().get(i); +// for (int i = 0; i < listPage.getList().size(); i++) { +// SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = (SingleSalaryItemAdjustRecordListDTO)listPage.getList().get(i); // Optional optional = effectiveSalaryItems.stream().filter(f -> f.getSalaryItemId().equals(singleSalaryItemAdjustRecord.getSalaryItemId())).findFirst(); -// LocalDate effectiveDate = optional.map(SalaryArchiveItemPO::getEffectiveTime).orElse(null); +// Date effectiveDate = optional.map(SalaryArchiveItemPO::getEffectiveTime).orElse(null); // List permissions = weaTable.getOperatesPermission().get(i); // for (int j = 0; j < permissions.size(); j++) { // Permission permission = permissions.get(j); @@ -253,8 +251,6 @@ public class SalaryArchiveItemWrapper extends Service { // } // } // } -// // 在外展示操作按钮 -// weaTable.getOperates().get(0).setOuter(Boolean.TRUE); // return weaTable; // } // diff --git a/src/com/engine/salary/wrapper/SalaryArchiveTaxAgentWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveTaxAgentWrapper.java new file mode 100644 index 000000000..99d410aaa --- /dev/null +++ b/src/com/engine/salary/wrapper/SalaryArchiveTaxAgentWrapper.java @@ -0,0 +1,312 @@ +package com.engine.salary.wrapper; + +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.api.browser.util.ConditionFactory; +import com.api.browser.util.ConditionType; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentFormDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentSaveParam; +import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; +import com.engine.salary.entity.taxrate.TaxAgent; +import com.engine.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.SalaryArchiveTaxAgentService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.SalaryI18nUtil; + +import java.util.*; + +/** + * 薪资档案-个税扣缴义务人 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryArchiveTaxAgentWrapper extends Service { + private SalaryArchiveTaxAgentService salaryArchiveTaxAgentService; + private TaxAgentService taxAgentService; +// @Resource +// private SalaryBatchService salaryBatchService; +// @Autowired +// private ExecutorService taskExecutor; + + /** + * 获取个税扣缴义务人调整表单 + * 获取调整原因和扣税义务人列表 + * + * @param salaryArchiveId + * @return + */ + public SalaryArchiveTaxAgentFormDTO getTaxAgentForm(Long salaryArchiveId) { + if (salaryArchiveId == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100425, "薪资档案id不能为空")); + } + // 个税扣缴义务人下拉列表 + Collection taxAgentList = taxAgentService.findAll(); + // 构建表单 + Map form = buildTaxAgentForm(taxAgentList, null, "", "", null); + + return SalaryArchiveTaxAgentFormDTO.builder() + .salaryArchiveId(salaryArchiveId) + .salaryArchiveTaxAgentForm(form) + .build(); + } + + private Map buildTaxAgentForm(Collection taxAgentList, Date effectiveTime, String adjustReason, String adjustBefore, Long adjustAfter) { + // 个税扣缴义务人调整原因下拉列表 + List salaryArchiveTaxAgentAdjustReasonEnums = Arrays.asList(SalaryArchiveTaxAgentAdjustReasonEnum.values()); + + ConditionFactory conditionFactory = new ConditionFactory(user); + + //条件组 + List addGroups = new ArrayList(); + List items = new ArrayList(); + + SearchConditionItem effectiveTimeItem = conditionFactory.createCondition(ConditionType.DATEPICKER, 502327, "effectiveTime"); + effectiveTimeItem.setColSpan(1);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 + effectiveTimeItem.setFieldcol(12); //条件输入框所占宽度,默认值18 + effectiveTimeItem.setViewAttr(3); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 + effectiveTimeItem.setLength(10); // 设置输入长度 + effectiveTimeItem.setLabel("生效时间"); //设置文本值 这个将覆盖多语言标签的值 + effectiveTimeItem.setRules("required"); //设置字段填入规则 + items.add(effectiveTimeItem); + + SearchConditionItem adjustReasonItem = conditionFactory.createCondition(ConditionType.SELECT, 502227, "adjustReason"); + List selectOptions = new ArrayList<>(); //设置选项值 + Arrays.stream(SalaryArchiveTaxAgentAdjustReasonEnum.values()).forEach(r -> { + if (r.getValue().equals(adjustReason)) { + selectOptions.add(new SearchConditionOption(r.getValue(), r.getDefaultLabel(), true)); + } + selectOptions.add(new SearchConditionOption(r.getValue(), r.getDefaultLabel())); + }); + adjustReasonItem.setOptions(selectOptions); + effectiveTimeItem.setColSpan(1); + effectiveTimeItem.setFieldcol(12); + effectiveTimeItem.setViewAttr(3); + effectiveTimeItem.setLength(10); + adjustReasonItem.setLabel("调整原因"); + effectiveTimeItem.setRules("required"); //设置字段填入规则 + items.add(adjustReasonItem); + + SearchConditionItem adjustBeforeItem = conditionFactory.createCondition(ConditionType.INPUT, 502327, "adjustBefore"); + adjustBeforeItem.setColSpan(1);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 + adjustBeforeItem.setFieldcol(12); //条件输入框所占宽度,默认值18 + adjustBeforeItem.setViewAttr(1); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 + adjustBeforeItem.setLength(10); // 设置输入长度 + adjustBeforeItem.setLabel("调整前"); //设置文本值 这个将覆盖多语言标签的值 + adjustBeforeItem.setRules("required"); //设置字段填入规则 + adjustBeforeItem.setValue(adjustBefore); + items.add(adjustBeforeItem); + + + SearchConditionItem taxAgentItem = conditionFactory.createCondition(ConditionType.SELECT, 502227, "taxAgentId"); + List taxAgentOptions = new ArrayList<>(); //设置选项值 + taxAgentList.forEach(t -> { + if (t.getId().equals(adjustAfter)) { + taxAgentOptions.add(new SearchConditionOption(t.getId().toString(), t.getName(), true)); + } + taxAgentOptions.add(new SearchConditionOption(t.getId().toString(), t.getName())); + }); + adjustReasonItem.setOptions(selectOptions); + effectiveTimeItem.setColSpan(1); + effectiveTimeItem.setFieldcol(12); + effectiveTimeItem.setViewAttr(3); + effectiveTimeItem.setLength(10); + adjustReasonItem.setLabel("调整后"); + effectiveTimeItem.setRules("required"); //设置字段填入规则 + items.add(taxAgentItem); + + addGroups.add(new SearchConditionGroup("表单", true, items)); + + Map map = new HashMap<>(); + map.put("form", addGroups); + return map; + } + + /** + * 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单 + * + * @param salaryArchiveTaxAgentId + * @return + */ + public SalaryArchiveTaxAgentFormDTO getTaxAgentFormBySalaryArchiveTaxAgentId(Long salaryArchiveTaxAgentId) { + if (salaryArchiveTaxAgentId == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100489, "薪资档案的个税扣缴义务人id不能为空")); + } + SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = salaryArchiveTaxAgentService.getById(salaryArchiveTaxAgentId); + if (salaryArchiveTaxAgent == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100484, "该薪资档案的个税扣缴义务人的调整记录不存在")); + } + // 个税扣缴义务人下拉列表 + Collection taxAgentList = taxAgentService.findAll(); + // 调整前 + String adjustBefore = ""; + SalaryArchiveTaxAgentPO adjustBeforePo = salaryArchiveTaxAgentService.getAdjustBeforeTaxAgent(salaryArchiveTaxAgent); + + if (adjustBeforePo != null) { + Optional optional = taxAgentList.stream().filter(f -> f.getId().equals(adjustBeforePo.getTaxAgentId())).findFirst(); + adjustBefore = optional.isPresent() ? optional.get().getName() : ""; + } + + Date effectiveTime = salaryArchiveTaxAgent.getEffectiveTime(); + String adjustReason = salaryArchiveTaxAgent.getAdjustReason(); + Long adjustAfter = salaryArchiveTaxAgent.getTaxAgentId(); + + // 构建表单 + Map taxAgentForm = buildTaxAgentForm(taxAgentList, effectiveTime, adjustReason, adjustBefore, adjustAfter); + + return SalaryArchiveTaxAgentFormDTO.builder() + .salaryArchiveId(salaryArchiveTaxAgent.getSalaryArchiveId()) + .salaryArchiveTaxAgentForm(taxAgentForm) + .build(); + } + + /** + * 保存个税扣缴义务人调整 + * + * @param saveParam + * @return + */ + public String saveTaxAgent(SalaryArchiveTaxAgentSaveParam saveParam) { + return salaryArchiveTaxAgentService.saveTaxAgent(saveParam); + } + + /** + * 删除个税扣缴义务人调整 + * + * @param salaryArchiveTaxAgentId + * @return + */ + public String deleteTaxAgent(Long salaryArchiveTaxAgentId) { + return salaryArchiveTaxAgentService.deleteTaxAgent(salaryArchiveTaxAgentId); + } + + + /** + * 个税扣缴义务人调整记录列表 + * + * @param queryParam + * @return + */ +// public Map adjustRecordList(TaxAgentAdjustRecordQueryParam queryParam) { +// Page page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true); +// page = salaryArchiveTaxAgentService.taxAgentAdjustRecordListPage(page, queryParam, tenantKey); +// +// Page listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); +// // 个税扣缴义务人 +// Collection taxAgentList = taxAgentService.findAll(tenantKey); +// List listAll = salaryArchiveTaxAgentService.taxAgentAdjustRecordList(TaxAgentAdjustRecordQueryParam.builder().build()); +// List list = page.getRecords(); +// list.stream().forEach(m -> { +// if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) { +// listAll.removeIf(a -> a.getId().equals(m.getId())); +// } +// Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId())).findFirst(); +// m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); +// Optional optionalBefore = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustBefore())).findFirst(); +// m.setAdjustBefore(optionalBefore.isPresent() ? optionalBefore.get().getName() : ""); +// Optional optionalAfter = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustAfter())).findFirst(); +// m.setAdjustAfter(optionalAfter.isPresent() ? optionalAfter.get().getName() : ""); +// +// m.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(m.getEmployeeStatus())); +// +// m.setAdjustReason(SalaryArchiveTaxAgentAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); +// }); +// listPage.setRecords(list); +// WeaTable weaTable = FormatManager.getInstance() +// .genTable(TaxAgentAdjustRecordListDTO.class, listPage); +// weaTable.setModule("hrmsalary"); +// return weaTable; +// } +// +// /** +// * 单个档案的个税扣缴义务人调整记录列表 +// * +// * @param queryParam +// * @param employeeId +// * @param tenantKey +// * @return +// */ +// public WeaTable singleTaxAgentAdjustRecordList(SingleTaxAgentAdjustRecordQueryParam queryParam) { +// if (queryParam.getSalaryArchiveId() == null) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100425, "薪资档案id不能为空")); +// } +// +// Page page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true); +// TaxAgentAdjustRecordQueryParam adjustRecordQueryParam = new TaxAgentAdjustRecordQueryParam(); +// BeanUtils.copyProperties(queryParam, adjustRecordQueryParam); +// page = salaryArchiveTaxAgentService.taxAgentAdjustRecordListPage(page, adjustRecordQueryParam, tenantKey); +// +// Page listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); +// // 个税扣缴义务人 +// Collection taxAgentList = taxAgentService.findAll(tenantKey); +// List listAll = salaryArchiveTaxAgentService.taxAgentAdjustRecordList(TaxAgentAdjustRecordQueryParam.builder().build(), tenantKey); +// List list = page.getRecords(); +// List resultList = Lists.newArrayList(); +// list.forEach(m -> { +// if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) { +// listAll.removeIf(a -> a.getId().equals(m.getId())); +// } +// Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId())).findFirst(); +// m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); +// Optional optionalBefore = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustBefore())).findFirst(); +// m.setAdjustBefore(optionalBefore.isPresent() ? optionalBefore.get().getName() : ""); +// Optional optionalAfter = taxAgentList.stream().filter(t -> t.getId().toString().equals(m.getAdjustAfter())).findFirst(); +// m.setAdjustAfter(optionalAfter.isPresent() ? optionalAfter.get().getName() : ""); +// +// m.setAdjustReason(SalaryArchiveTaxAgentAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); +// +// +// SingleTaxAgentAdjustRecordListDTO singleTaxAgentAdjustRecordList = new SingleTaxAgentAdjustRecordListDTO(); +// BeanUtils.copyProperties(m, singleTaxAgentAdjustRecordList); +// resultList.add(singleTaxAgentAdjustRecordList); +// }); +// listPage.setRecords(resultList); +// WeaTable weaTable = FormatManager.getInstance() +// .genTable(SingleTaxAgentAdjustRecordListDTO.class, listPage); +// weaTable.setModule("hrmsalary"); +// // 获取当前已生效 +// SalaryArchiveTaxAgentPO salaryArchiveTaxAgent = salaryArchiveTaxAgentService.getEffectiveTaxAgent(queryParam.getSalaryArchiveId(), tenantKey); +// LocalDate effectiveDate = (salaryArchiveTaxAgent == null ? null : salaryArchiveTaxAgent.getEffectiveTime()); +// +// // 行记录按钮权限控制 +// for (int i = 0; i < listPage.getRecords().size(); i++) { +// SingleTaxAgentAdjustRecordListDTO singleTaxAgentAdjustRecord = listPage.getRecords().get(i); +// List permissions = weaTable.getOperatesPermission().get(i); +// for (int j = 0; j < permissions.size(); j++) { +// Permission permission = permissions.get(j); +// if (effectiveDate != null && singleTaxAgentAdjustRecord.getEffectiveTime().isBefore(effectiveDate)) { +// permission.setVisible(false); +// permission.setDisabled(true); +// } +// if (j > 0 && singleTaxAgentAdjustRecord.getEffectiveTime().equals(effectiveDate)) { +// permission.setVisible(false); +// permission.setDisabled(false); +// } +// } +// } +// // 在外展示操作按钮 +// weaTable.getOperates().get(0).setOuter(Boolean.TRUE); +// return weaTable; +// } +// +// /** +// * 导出个税扣缴义务人调整记录列表 +// * +// * @param queryParam +// * @return +// */ +// public Map exportAdjustRecordList(TaxAgentAdjustRecordQueryParam queryParam) { +// // 构建异步导出参数 +// Map map = salaryBatchService.buildeExportParam("exportSalaryArchiveTaxAgentAdjustRecord"); +// +// String username = UserContext.getCurrentUser().getUsername(); +// String eteamsId = TenantRpcContext.getEteamsId(); +// salaryArchiveTaxAgentService.exportAdjustRecordList(map, username, eteamsId, queryParam); +// return map; +// } +}