薪资档案增加起始发薪和最后发薪
This commit is contained in:
parent
136641649d
commit
a721898d3d
|
|
@ -1,2 +1,6 @@
|
|||
ALTER TABLE `ecology`.`hrsa_salary_archive`
|
||||
ADD COLUMN `tax_agent_id` bigint(0) NULL COMMENT '个税扣缴义务人id' AFTER `tenant_key`;
|
||||
ALTER TABLE hrsa_salary_archive
|
||||
ADD COLUMN tax_agent_id bigint(0) NULL COMMENT '个税扣缴义务人id' AFTER tenant_key;
|
||||
|
||||
ALTER TABLE hrsa_salary_archive
|
||||
ADD COLUMN pay_start_date datetime(0) NULL DEFAULT NULL COMMENT '起始发薪日期' AFTER tax_agent_id,
|
||||
ADD COLUMN pay_end_date datetime(0) NULL DEFAULT NULL COMMENT '最后发薪日期' AFTER pay_start_date;
|
||||
|
|
@ -8,7 +8,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
|
|||
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemDataDTO;
|
||||
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO;
|
||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
|
||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
|
||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
|
||||
|
|
@ -66,6 +66,8 @@ public class SalaryArchiveBO {
|
|||
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName"));
|
||||
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile"));
|
||||
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus"));
|
||||
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "起始发薪日期"), "payStartDate"));
|
||||
columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "最后发薪日期"), "payEndDate"));
|
||||
for (SalaryItemPO salaryItem : salaryItems) {
|
||||
columns.add(new WeaTableColumn("100px", salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX));
|
||||
}
|
||||
|
|
@ -76,14 +78,14 @@ public class SalaryArchiveBO {
|
|||
/**
|
||||
* 构建薪资档案数据
|
||||
*
|
||||
* @param salaryArchiveTaxAgentList
|
||||
* @param salaryArchiveList
|
||||
* @param salaryArchiveItemDataList
|
||||
* @param localDateRange
|
||||
* @param allEmployeeIds
|
||||
* @param isOnlyTaxAgent
|
||||
* @return
|
||||
*/
|
||||
public static List<SalaryArchiveDataDTO> buildSalaryArchiveData(List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgentList,
|
||||
public static List<SalaryArchiveDataDTO> buildSalaryArchiveData(List<SalaryArchivePO> salaryArchiveList,
|
||||
List<SalaryArchiveItemPO> salaryArchiveItemDataList,
|
||||
LocalDateRange localDateRange,
|
||||
List<Long> allEmployeeIds,
|
||||
|
|
@ -94,60 +96,58 @@ public class SalaryArchiveBO {
|
|||
Date end = localDateRange.getEndDate();
|
||||
|
||||
List<SalaryArchiveDataDTO> list = new ArrayList<>();
|
||||
allEmployeeIds.forEach(e -> {
|
||||
// 同一个人的个税扣缴义务人调整历史数据
|
||||
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgents = salaryArchiveTaxAgentList.stream().filter(f -> f.getEmployeeId().equals(e)).collect(Collectors.toList());
|
||||
allEmployeeIds.forEach(e->{
|
||||
// 同一个人的档案数据
|
||||
List<SalaryArchivePO> salaryArchives = salaryArchiveList.stream().filter(f->f.getEmployeeId().equals(e)).collect(Collectors.toList());
|
||||
List<Long> salaryArchiveIds = salaryArchives.stream().map(SalaryArchivePO::getId).collect(Collectors.toList());
|
||||
// 同一个人的薪资项目调整历史数据
|
||||
List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d -> d.getEmployeeId().equals(e)).collect(Collectors.toList());
|
||||
List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d->salaryArchiveIds.contains(d.getSalaryArchiveId())).collect(Collectors.toList());
|
||||
List<Long> salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList());
|
||||
|
||||
SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO();
|
||||
salaryArchiveData.setEmployeeId(e);
|
||||
List<SalaryArchiveTaxAgentDataDTO> taxAgents = new ArrayList<>();
|
||||
// 按个税扣缴义务人生效日期时间段切割
|
||||
Date endTemp = end;
|
||||
for (SalaryArchiveTaxAgentPO salaryArchiveTaxAgent : salaryArchiveTaxAgents) {
|
||||
Date fromDate = salaryArchiveTaxAgent.getEffectiveTime();
|
||||
if (fromDate.after(endTemp) || !endTemp.after(start)) {
|
||||
continue;
|
||||
}
|
||||
SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO();
|
||||
taxAgent.setTaxAgentId(salaryArchiveTaxAgent.getTaxAgentId());
|
||||
taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start) ? start : fromDate)).endDate(endTemp).build());
|
||||
|
||||
// 薪资项目数据按个税扣缴义务人切割
|
||||
if (!isOnlyTaxAgent) {
|
||||
// 开始日期
|
||||
Date startItem = taxAgent.getEffectiveDateRange().getFromDate();
|
||||
// 结束日期
|
||||
Date endItem = taxAgent.getEffectiveDateRange().getEndDate();
|
||||
Date endTempItem = endItem;
|
||||
List<SalaryArchiveItemDataDTO> salaryItemValues = new ArrayList<>();
|
||||
|
||||
for (Long salaryArchiveItemId : salaryArchiveItemIds) {
|
||||
for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) {
|
||||
if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId())) {
|
||||
continue;
|
||||
for (SalaryArchivePO salaryArchive : salaryArchives) {
|
||||
Date fromDate = salaryArchive.getPayStartDate();
|
||||
Date endDate = salaryArchive.getPayEndDate();
|
||||
// 起始发薪日不为空,且不能比结束日期晚,最后发薪日可空可不空,但是如果不为空,就不能比开始日期早,且起始发薪日不能晚于最后发薪日
|
||||
boolean isEnable = fromDate != null && !fromDate.after(end) && (endDate == null || (!fromDate.after(endDate) && !endDate.before(start)));
|
||||
if (isEnable) {
|
||||
SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO();
|
||||
taxAgent.setTaxAgentId(salaryArchive.getTaxAgentId());
|
||||
// taxAgent.setIncomeCategory(salaryArchive.getIncomeCategory());
|
||||
taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start)?start:fromDate)).endDate(endDate == null || endDate.after(end)?end:endDate).build());
|
||||
// 薪资项目数据按个税扣缴义务人切割
|
||||
if (!isOnlyTaxAgent) {
|
||||
// 开始日期
|
||||
Date startItem = taxAgent.getEffectiveDateRange().getFromDate();
|
||||
// 结束日期
|
||||
Date endItem = taxAgent.getEffectiveDateRange().getEndDate();
|
||||
Date endTempItem = endItem;
|
||||
List<SalaryArchiveItemDataDTO> salaryItemValues = new ArrayList<>();
|
||||
for (Long salaryArchiveItemId : salaryArchiveItemIds) {
|
||||
for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) {
|
||||
if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId()) || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchive.getId())) {
|
||||
continue;
|
||||
}
|
||||
Date fromDateItem = salaryArchiveItem.getEffectiveTime();
|
||||
if (fromDateItem.after(endTempItem) || !endTempItem.after(startItem)) {
|
||||
continue;
|
||||
}
|
||||
SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO();
|
||||
salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem)?startItem:fromDateItem)).endDate(endTempItem).build());
|
||||
salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId());
|
||||
salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue());
|
||||
salaryItemValues.add(salaryArchiveItemData);
|
||||
endTempItem = fromDateItem;
|
||||
}
|
||||
Date fromDateItem = salaryArchiveItem.getEffectiveTime();
|
||||
if (fromDateItem.after(endTempItem) || !endTempItem.after(startItem)) {
|
||||
continue;
|
||||
}
|
||||
SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO();
|
||||
salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem) ? startItem : fromDateItem)).endDate(endTempItem).build());
|
||||
salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId());
|
||||
salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue());
|
||||
salaryItemValues.add(salaryArchiveItemData);
|
||||
endTempItem = fromDateItem;
|
||||
endTempItem = endItem;
|
||||
}
|
||||
endTempItem = endItem;
|
||||
taxAgent.setSalaryItemValues(salaryItemValues);
|
||||
}
|
||||
|
||||
taxAgent.setSalaryItemValues(salaryItemValues);
|
||||
taxAgents.add(taxAgent);
|
||||
}
|
||||
|
||||
taxAgents.add(taxAgent);
|
||||
endTemp = fromDate;
|
||||
}
|
||||
salaryArchiveData.setTaxAgents(taxAgents);
|
||||
list.add(salaryArchiveData);
|
||||
|
|
|
|||
|
|
@ -4,11 +4,14 @@ import com.cloudstore.eccom.pc.table.WeaTableType;
|
|||
import com.engine.salary.annotation.SalaryTable;
|
||||
import com.engine.salary.annotation.SalaryTableOperate;
|
||||
import com.engine.salary.annotation.TableTitle;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 薪资档案列表
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
|
|
@ -63,4 +66,19 @@ public class SalaryArchiveListDTO {
|
|||
*/
|
||||
@TableTitle(title = "员工状态", dataIndex = "employeeStatus", key = "employeeStatus")
|
||||
private String employeeStatus;
|
||||
|
||||
/**
|
||||
* 起始发薪日期
|
||||
*/
|
||||
@TableTitle(title = "起始发薪日期", dataIndex = "payStartDate", key = "payStartDate")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date payStartDate;
|
||||
|
||||
/**
|
||||
* 最后发薪日期
|
||||
*/
|
||||
@TableTitle(title = "最后发薪日期", dataIndex = "payEndDate", key = "payEndDate")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date payEndDate;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,5 +100,7 @@ public class SalaryArchiveItemPO {
|
|||
|
||||
|
||||
Collection<Long> ids;
|
||||
Collection<Long> employeeIds;
|
||||
Collection<Long> salaryItemIds;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,13 +28,21 @@ public class SalaryArchivePO {
|
|||
*/
|
||||
private Long id;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 人员信息表的主键id
|
||||
*/
|
||||
private Long employeeId;
|
||||
|
||||
/**
|
||||
* 起始发薪日期
|
||||
*/
|
||||
private Date payStartDate;
|
||||
|
||||
/**
|
||||
* 最后发薪日期
|
||||
*/
|
||||
private Date payEndDate;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
|
@ -68,4 +76,5 @@ public class SalaryArchivePO {
|
|||
|
||||
//---------条件-------
|
||||
private Collection<Long> ids;
|
||||
private Collection<Long> employeeIds;;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,8 @@ public interface SalaryArchiveMapper {
|
|||
*/
|
||||
void batchDeleteHistoryData(SalaryArchivePO build);
|
||||
|
||||
List<SalaryArchivePO> listSome(@Param("param") SalaryArchivePO param);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -10,6 +10,8 @@
|
|||
<result column="delete_type" property="deleteType"/>
|
||||
<result column="tenant_key" property="tenantKey"/>
|
||||
<result column="tax_agent_id" property="taxAgentId"/>
|
||||
<result column="pay_start_date" property="payStartDate"/>
|
||||
<result column="pay_end_date" property="payEndDate"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -24,6 +26,8 @@
|
|||
, t.delete_type
|
||||
, t.tenant_key
|
||||
, t.tax_agent_id
|
||||
, t.pay_start_date
|
||||
, t.pay_end_date
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -55,13 +59,19 @@
|
|||
t1
|
||||
.
|
||||
id
|
||||
,
|
||||
t1.employee_id,
|
||||
t1.tax_agent_id,
|
||||
e.mobile,
|
||||
e.lastname as username,
|
||||
e.status AS employeeStatus,
|
||||
d.departmentname AS departmentName
|
||||
, t1.employee_id
|
||||
, t1.create_time
|
||||
, t1.update_time
|
||||
, t1.creator
|
||||
, t1.delete_type
|
||||
, t1.tenant_key
|
||||
, t1.tax_agent_id
|
||||
, t1.pay_start_date
|
||||
, t1.pay_end_date
|
||||
, e.mobile
|
||||
, e.lastname as username
|
||||
, e.status AS employeeStatus
|
||||
, d.departmentname AS departmentName
|
||||
</sql>
|
||||
|
||||
|
||||
|
|
@ -84,7 +94,7 @@
|
|||
</if>
|
||||
<!-- 个税扣缴义务人 -->
|
||||
<if test="param.taxAgentId != null">
|
||||
AND t1.employee_id = #{param.taxAgentId}
|
||||
AND t1.tax_agent_id = #{param.taxAgentId}
|
||||
</if>
|
||||
<!-- 姓名 -->
|
||||
<if test="param.username != null and param.username != ''">
|
||||
|
|
@ -135,7 +145,7 @@
|
|||
</if>
|
||||
<!-- 个税扣缴义务人 -->
|
||||
<if test="param.taxAgentId != null">
|
||||
AND t1.employee_id = #{param.taxAgentId}
|
||||
AND t1.tax_agent_id = #{param.taxAgentId}
|
||||
</if>
|
||||
<if test="param.username != null and param.username != ''">
|
||||
AND e.lastname like '%'||#{param.username}||'%'
|
||||
|
|
@ -185,7 +195,7 @@
|
|||
</if>
|
||||
<!-- 个税扣缴义务人 -->
|
||||
<if test="param.taxAgentId != null">
|
||||
AND t1.employee_id = #{param.taxAgentId}
|
||||
AND t1.tax_agent_id = #{param.taxAgentId}
|
||||
</if>
|
||||
<if test="param.username != null and param.username != ''">
|
||||
AND e.lastname like '%'+#{param.username}+'%'
|
||||
|
|
@ -223,7 +233,9 @@
|
|||
update_time,
|
||||
creator,
|
||||
tenant_key,
|
||||
tax_agent_id
|
||||
tax_agent_id,
|
||||
pay_start_date,
|
||||
pay_end_date
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="collection" item="item" separator=",">
|
||||
|
|
@ -234,7 +246,9 @@
|
|||
#{item.updateTime},
|
||||
#{item.creator},
|
||||
#{item.tenantKey},
|
||||
#{item.taxAgentId}
|
||||
#{item.taxAgentId},
|
||||
#{item.payStartDate},
|
||||
#{item.payEndDate}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -246,7 +260,9 @@
|
|||
update_time,
|
||||
creator,
|
||||
tenant_key,
|
||||
tax_agent_id
|
||||
tax_agent_id,
|
||||
pay_start_date,
|
||||
pay_end_date
|
||||
)
|
||||
|
||||
<foreach collection="collection" item="item" separator="union all">
|
||||
|
|
@ -257,7 +273,9 @@
|
|||
#{item.updateTime},
|
||||
#{item.creator},
|
||||
#{item.tenantKey},
|
||||
#{item.taxAgentId}
|
||||
#{item.taxAgentId},
|
||||
#{item.payStartDate},
|
||||
#{item.payEndDate}
|
||||
from dual
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -270,7 +288,9 @@
|
|||
update_time,
|
||||
creator,
|
||||
tenant_key,
|
||||
tax_agent_id
|
||||
tax_agent_id,
|
||||
pay_start_date,
|
||||
pay_end_date
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
|
|
@ -280,7 +300,9 @@
|
|||
#{item.updateTime},
|
||||
#{item.creator},
|
||||
#{item.tenantKey},
|
||||
#{item.taxAgentId}
|
||||
#{item.taxAgentId},
|
||||
#{item.payStartDate},
|
||||
#{item.payEndDate}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -303,4 +325,23 @@
|
|||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="listSome" resultType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM
|
||||
hrsa_salary_archive t
|
||||
WHERE t.delete_type = 0
|
||||
<if test="param.ids != null and param.ids.size()>0">
|
||||
AND t.employee_id IN
|
||||
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
|
||||
#{employeeId}
|
||||
</foreach>
|
||||
</if>
|
||||
<!-- 个税扣缴义务人 -->
|
||||
<if test="param.taxAgentId != null">
|
||||
AND t.tax_agent_id = #{param.taxAgentId}
|
||||
</if>
|
||||
ORDER BY t.id DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -123,8 +123,18 @@ public interface SalaryArchiveService {
|
|||
*/
|
||||
List<SalaryArchiveDataDTO> getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection<Long> employeeIds);
|
||||
|
||||
/**
|
||||
* 导入
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param);
|
||||
|
||||
/**
|
||||
* 预览
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> preview(SalaryArchiveImportHandleParam param);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
|
|||
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
|
||||
import com.engine.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.archive.SalaryArchiveItemMapper;
|
||||
import com.engine.salary.mapper.archive.SalaryArchiveMapper;
|
||||
import com.engine.salary.service.SalaryArchiveService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
|
|
@ -89,6 +90,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
return MapperProxyFactory.getProxy(SalaryArchiveMapper.class);
|
||||
}
|
||||
|
||||
private SalaryArchiveItemMapper getSalaryArchiveItemMapper() {
|
||||
return MapperProxyFactory.getProxy(SalaryArchiveItemMapper.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalaryArchivePO getById(Long salaryArchiveId) {
|
||||
return salaryArchiveMapper.getById(salaryArchiveId);
|
||||
|
|
@ -165,7 +170,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
*/
|
||||
@Override
|
||||
public List<SalaryArchiveItemPO> getCurrentEffectiveItemList(Collection<Long> salaryArchivesIds, Collection<Long> salaryItemIds) {
|
||||
if(CollectionUtils.isEmpty(salaryItemIds)){
|
||||
if (CollectionUtils.isEmpty(salaryItemIds)) {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemMapper.getCurrentEffectiveItemList(SalaryArchiveItemQueryParam.builder().salaryArchivesIds(salaryArchivesIds).salaryItemIds(salaryItemIds).effectiveTime(new Date()).build());
|
||||
|
|
@ -181,7 +186,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
*/
|
||||
@Override
|
||||
public List<SalaryArchiveTaxAgentPO> getCurrentEffectiveTaxAgentList(Collection<Long> salaryArchivesIds) {
|
||||
if(CollectionUtils.isEmpty(salaryArchivesIds)){
|
||||
if (CollectionUtils.isEmpty(salaryArchivesIds)) {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().salaryArchivesIds(salaryArchivesIds).effectiveTime(new Date()).build());
|
||||
|
|
@ -250,6 +255,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
map.put("departmentName", e.getDepartmentName());
|
||||
map.put("mobile", e.getMobile());
|
||||
map.put("employeeStatus", e.getEmployeeStatus());
|
||||
map.put("payStartDate", SalaryDateUtil.getFormatLocalDate(e.getPayStartDate()));
|
||||
map.put("payEndDate", SalaryDateUtil.getFormatLocalDate(e.getPayEndDate()));
|
||||
|
||||
// 薪资项目动态
|
||||
Optional<Map<String, Object>> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst();
|
||||
|
|
@ -468,20 +475,18 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
* @return
|
||||
*/
|
||||
private List<SalaryArchiveDataDTO> getSalaryArchiveData(LocalDateRange localDateRange, Collection<Long> employeeIds, boolean isOnlyTaxAgent) {
|
||||
// 获取个税扣缴义务人调整数据
|
||||
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgentList = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build());
|
||||
List<Long> allEmployeeIds = salaryArchiveTaxAgentList.stream().map(SalaryArchiveTaxAgentPO::getEmployeeId).distinct().collect(Collectors.toList());
|
||||
// 获取薪资档案数据
|
||||
List<SalaryArchivePO> salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().employeeIds(employeeIds).build());
|
||||
|
||||
List<Long> allEmployeeIds = salaryArchiveList.stream().map(SalaryArchivePO::getEmployeeId).distinct().collect(Collectors.toList());
|
||||
// 获取所有可被引用的薪资项目
|
||||
List<SalaryItemPO> salaryItems = salaryItemMapper.getCanAdjustSalaryItems();
|
||||
Collection<Long> salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
|
||||
// 获取薪资项目调整数据,isOnlyTaxAgent为true时不需要薪资项目数据
|
||||
List<SalaryArchiveItemPO> salaryArchiveItemDataList;
|
||||
if (isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds)) {
|
||||
salaryArchiveItemDataList = Lists.newArrayList();
|
||||
} else {
|
||||
salaryArchiveItemDataList = salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(new Date()).build());
|
||||
}
|
||||
return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveTaxAgentList,
|
||||
List<SalaryArchiveItemPO> salaryArchiveItemDataList = isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds) ?
|
||||
Lists.newArrayList() : salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build());
|
||||
|
||||
return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveList,
|
||||
salaryArchiveItemDataList,
|
||||
localDateRange,
|
||||
allEmployeeIds,
|
||||
|
|
@ -1436,7 +1441,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
.id(IdGenerator.generate())
|
||||
.employeeId(sa.getEmployeeId())
|
||||
.taxAgentId(st.getTaxAgentId())
|
||||
// .payStartDate(st.getEffectiveTime())
|
||||
.payStartDate(st.getEffectiveTime())
|
||||
// .runStatus(SalaryArchiveStatusEnum.FIXED.getValue())
|
||||
// .modifier(0L)
|
||||
.createTime(today)
|
||||
|
|
@ -1467,7 +1472,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
.build());
|
||||
});
|
||||
|
||||
endDate = st.getEffectiveTime();
|
||||
// endDate = st.getEffectiveTime();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,11 +54,11 @@ import java.util.stream.Collectors;
|
|||
public class SalaryArchiveWrapper extends Service {
|
||||
|
||||
private SalaryArchiveService getSalaryArchiveService(User user) {
|
||||
return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user);
|
||||
return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryArchiveItemService getSalaryArchiveItemService(User user) {
|
||||
return (SalaryArchiveItemService) ServiceUtil.getService(SalaryArchiveItemServiceImpl.class, user);
|
||||
return ServiceUtil.getService(SalaryArchiveItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private EmployBiz employeeService = new EmployBiz();
|
||||
|
|
@ -73,7 +73,7 @@ public class SalaryArchiveWrapper extends Service {
|
|||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> list(SalaryArchiveQueryParam queryParam) {
|
||||
public Map<String, Object> list(SalaryArchiveQueryParam queryParam) {
|
||||
//薪资档案列表
|
||||
PageInfo<SalaryArchiveListDTO> pageInfo = getSalaryArchiveService(user).listPage(queryParam);
|
||||
Collection<SalaryArchiveListDTO> salaryArchives = pageInfo.getList();
|
||||
|
|
@ -105,9 +105,9 @@ public class SalaryArchiveWrapper extends Service {
|
|||
result.success();
|
||||
|
||||
|
||||
Map<String,Object> datas = new HashMap<>();
|
||||
Map<String, Object> datas = new HashMap<>();
|
||||
datas.put("pageInfo", pageInfos);
|
||||
datas.put("dataKey",result.getResultMap());
|
||||
datas.put("dataKey", result.getResultMap());
|
||||
return datas;
|
||||
}
|
||||
|
||||
|
|
@ -255,28 +255,47 @@ public class SalaryArchiveWrapper extends Service {
|
|||
return getSalaryArchiveService(user).downloadTemplate(SalaryArchiveImportTypeEnum.parseByValue(queryParam.getImportType()), queryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> preview(SalaryArchiveImportHandleParam param) {
|
||||
return getSalaryArchiveService(user).preview(param);
|
||||
}
|
||||
|
||||
public Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
/**
|
||||
* 导入档案
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
return getSalaryArchiveService(user).importSalaryArchive(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出列表
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
public XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam) {
|
||||
return getSalaryArchiveService(user).exportList(queryParam);
|
||||
}
|
||||
|
||||
public Map<String,Object> searchCondition() {
|
||||
List<Map<String, String>> userStatus = UserStatusEnum.getList();
|
||||
/**
|
||||
* 人员状态列表
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> searchCondition() {
|
||||
List<Map<String, String>> userStatus = UserStatusEnum.getList();
|
||||
List<Map<String, String>> itemAdjustReasons = SalaryArchiveItemAdjustReasonEnum.getList();
|
||||
List<Map<String, String>> TaxAgentAdjustReason = SalaryArchiveTaxAgentAdjustReasonEnum.getList();
|
||||
Collection<TaxAgentListDTO> taxAgentList = getTaxAgentService(user).findAll();
|
||||
HashMap map = Maps.newHashMap();
|
||||
map.put("userStatus",userStatus);
|
||||
map.put("itemAdjustReasons",itemAdjustReasons);
|
||||
map.put("TaxAgentAdjustReason",TaxAgentAdjustReason);
|
||||
map.put("taxAgentList",taxAgentList);
|
||||
map.put("userStatus", userStatus);
|
||||
map.put("itemAdjustReasons", itemAdjustReasons);
|
||||
map.put("TaxAgentAdjustReason", TaxAgentAdjustReason);
|
||||
map.put("taxAgentList", taxAgentList);
|
||||
return map;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue