个税申报功能-重启时间和薪资核算创建时间比较

This commit is contained in:
Harryxzy 2022-11-10 11:11:41 +08:00
parent 9dab99d3c5
commit c786dc2d14
4 changed files with 41 additions and 25 deletions

View File

@ -1,10 +1,12 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Set;
public interface SalaryAcctRecordMapper {
@ -71,4 +73,5 @@ public interface SalaryAcctRecordMapper {
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
List<SalaryAcctRecordPO> listByCreateDate(@Param(value = "createRange") LocalDateRange createRange, @Param(value = "salarySobIds") Set<Long> salarySobIds);
}

View File

@ -117,6 +117,25 @@
</if>
ORDER BY id DESC
</select>
<select id="listByCreateDate" resultType="com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_acct_record t
WHERE delete_type = 0
<if test="salarySobIds != null and salarySobIds.size()>0">
AND salary_sob_id IN
<foreach collection="salarySobIds" open="(" item="salarySobId" separator="," close=")">
#{salarySobId}
</foreach>
</if>
<if test="createRange != null and createRange.fromDate != null">
AND create_time <![CDATA[ >= ]]> #{createRange.fromDate}
</if>
<if test="createRange != null and createRange.endDate != null">
AND create_time <![CDATA[ <= ]]> #{createRange.endDate}
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->

View File

@ -400,12 +400,12 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
throw new SalaryRunTimeException("个税申报功能异常");
}
LocalDateRange taxCycleRebootYearRange = LocalDateRange.builder()
.fromDate(SalaryDateUtil.getFirstDayDateOfMonthWithMinutesAndSeconds(taxDeclarationRebootDate))
.endDate(SalaryDateUtil.getLastDayOfYearWithMinutesAndSeconds(taxDeclarationRebootDate))
.fromDate(taxDeclarationRebootDate)
.endDate(SalaryDateUtil.getLastDayOfYear(taxDeclarationRebootDate))
.build();
List<SalaryAcctRecordPO> salaryAcctRebootRecords = listByTaxCycle(taxCycleRebootYearRange,salarySobIds);
// List<SalaryAcctRecordPO> salaryAcctRebootRecords = listByTaxCycle(taxCycleRebootYearRange,salarySobIds);
List<SalaryAcctRecordPO> salaryAcctRebootRecords = listByCreateDate(taxCycleRebootYearRange,salarySobIds);
SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRebootRecords.stream()
.filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())
&& e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))))
@ -433,6 +433,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
}
private List<SalaryAcctRecordPO> listByCreateDate(LocalDateRange taxCycleRebootYearRange, Set<Long> salarySobIds) {
return getSalaryAcctRecordMapper().listByCreateDate(taxCycleRebootYearRange,salarySobIds);
}
@Override
public void updateStatusByIds(Collection<Long> ids, SalaryAcctRecordStatusEnum status) {
@ -579,19 +583,19 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
TaxDeclarationFunctionEnum taxDeclaration = getSalarySysConfService(user).getTaxDeclaration();
if(taxDeclaration.getValue().equals(TaxDeclarationFunctionEnum.OPEN.getValue())){
// if(taxDeclaration.getValue().equals(TaxDeclarationFunctionEnum.OPEN.getValue())){
// 开启了个税申报功能
// 删除个税申报表(个税申报表个税申报表详情往期累计情况)
getTaxDeclarationService(user).delete(salaryAcctRecordPO);
}else if(taxDeclaration.getValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue())){
// 重启个税申报功能
Date taxDeclarationRebootDateTemp = getSalarySysConfService(user).getTaxDeclarationRebootDate();
Date taxDeclarationRebootDate = SalaryDateUtil.getFirstDayDateOfMonthWithMinutesAndSeconds(taxDeclarationRebootDateTemp);
if(!taxDeclarationRebootDate.after(salaryAcctRecordPO.getTaxCycle())){
// 删除个税申报表(个税申报表个税申报表详情往期累计情况)
getTaxDeclarationService(user).delete(salaryAcctRecordPO);
}
}
// }else if(taxDeclaration.getValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue())){
// // 重启个税申报功能
// Date taxDeclarationRebootDateTemp = getSalarySysConfService(user).getTaxDeclarationRebootDate();
// Date taxDeclarationRebootDate = SalaryDateUtil.getFirstDayDateOfMonthWithMinutesAndSeconds(taxDeclarationRebootDateTemp);
// if(!taxDeclarationRebootDate.after(salaryAcctRecordPO.getTaxCycle())){
// // 删除个税申报表(个税申报表个税申报表详情往期累计情况)
// getTaxDeclarationService(user).delete(salaryAcctRecordPO);
// }
// }
// 更新薪资核算记录的状态
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue());
salaryAcctRecordPO.setUpdateTime(new Date());

View File

@ -276,17 +276,7 @@ public class SalaryDateUtil {
return cal.getTime();
}
public static Date getLastDayOfYearWithMinutesAndSeconds(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR, last);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static String getMonthBegin(String specifiedDay) {