申报表异常

This commit is contained in:
钱涛 2022-05-09 11:46:49 +08:00
parent 22de36ce59
commit d2a37df97f
11 changed files with 116 additions and 37 deletions

View File

@ -2,8 +2,6 @@ package com.engine.salary.mapper.taxdeclaration;
import com.engine.salary.entity.taxdeclaration.TaxDeclarationDetail;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
import com.engine.salary.util.page.PageInfo;
import com.fapiao.neon.model.in.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -102,4 +100,11 @@ public interface TaxDeclarationDetailMapper {
* @return
*/
List<TaxDeclarationDetailPO> listByTaxDeclarationIdAndEmployeeIds(@Param("taxDeclarationId") Long taxDeclarationId, @Param("collection") List<Long> employeeIds);
/**
* 根据个税申报表id删除
*
* @param taxDeclarationIds
*/
void deleteByTaxDeclarationIds(@Param("taxDeclarationIds") Collection<Long> taxDeclarationIds);
}

View File

@ -298,4 +298,14 @@
</delete>
<update id="deleteByTaxDeclarationIds">
UPDATE hrsa_tax_declaration_detail
SET delete_type = 1
WHERE delete_type = 0
AND tax_declaration_id IN
<foreach collection="taxDeclarationIds" open="(" item="taxDeclarationIds" separator="," close=")">
#{taxDeclarationIds}
</foreach>
</update>
</mapper>

View File

@ -74,5 +74,12 @@ public interface TaxDeclarationMapper {
* @param taxDeclarationDetails
*/
void batchInsert(@Param("collection") Collection<TaxDeclarationPO> taxDeclarationDetails);
/**
* 根据id删除个税申报表
*
* @param ids
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
}

View File

@ -249,5 +249,14 @@
AND delete_type = 0
</delete>
<update id="deleteByIds">
UPDATE hrsa_tax_declaration
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
</mapper>

View File

@ -38,7 +38,7 @@ public interface SalarySendService {
* @param currentTenantKey
* @return
*/
void revokeSalaryBill(Long salaryAccountingId, Long currentEmployeeId, String currentTenantKey);
void revokeSalaryBill(Long salaryAccountingId);
/**
* 工资单发放列表分页

View File

@ -6,7 +6,6 @@ import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
import com.engine.salary.util.page.PageInfo;
import com.fapiao.neon.model.in.Page;
import java.util.Collection;
@ -42,7 +41,6 @@ public interface TaxDeclarationDetailService {
* 根据列表查询条件查询个税申报列表明细
*
* @param queryParam 列表查询条件
* @param tenantKey 租户key
* @return
*/
PageInfo<TaxDeclarationDetailListDTO> listDtoPageByParam(TaxDeclarationDetailListQueryParam queryParam);
@ -51,7 +49,6 @@ public interface TaxDeclarationDetailService {
* 根据列表查询条件查询个税申报列表明细劳务报酬所得
*
* @param queryParam 列表查询条件
* @param tenantKey 租户key
* @return
*/
PageInfo<TaxDeclarationLaborListDTO> listDtoPageByParam4Labor(TaxDeclarationDetailListQueryParam queryParam);
@ -60,7 +57,6 @@ public interface TaxDeclarationDetailService {
* 根据列表查询条件查询个税申报列表明细正常工资薪金所得
*
* @param queryParam 列表查询条件
* @param tenantKey 租户key
* @return
*/
PageInfo<TaxDeclarationWageListDTO> listDtoPageByParam4Wage(TaxDeclarationDetailListQueryParam queryParam);
@ -71,4 +67,11 @@ public interface TaxDeclarationDetailService {
* @param taxDeclarationDetailPOS 个税申报表明细po
*/
void batchSave(Collection<TaxDeclarationDetailPO> taxDeclarationDetailPOS);
/**
* 根据个税申报表id删除个税申报表详情
*
* @param taxDeclarationIds 个税申报表id
*/
void deleteByTaxDeclarationIds(Collection<Long> taxDeclarationIds);
}

View File

@ -7,6 +7,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxrate.TaxAgent;
import com.engine.salary.util.page.PageInfo;
import java.time.YearMonth;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -35,4 +36,12 @@ public interface TaxDeclarationService {
Map<String, Object> delete(Map<String, Object> params);
/**
* 删除个税申报表
*
* @param salaryMonth
* @param tenantKey
*/
void deleteBySalaryMonth(YearMonth salaryMonth);
}

View File

@ -65,21 +65,21 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
private SalarySendService getSalarySendService(User user) {
return ServiceUtil.getService(SalarySendServiceImpl.class, user);
}
// private SalaryCheckResultService salaryCheckResultService;
// private SalaryCheckResultService salaryCheckResultService;
//
// private SalaryCheckResultDetailService salaryCheckResultDetailService;
//
private SalaryComparisonResultService getSalaryComparisonResultService(User user) {
return ServiceUtil.getService(SalaryComparisonResultServiceImpl.class, user);
}
//
// private SalarySendService salarySendService;
//
//
// private LoggerTemplate salaryAcctRecordLoggerTemplate;
//
// private TaxDeclarationService taxDeclarationService;
private TaxDeclarationService getTaxDeclarationService(User user) {
return (TaxDeclarationService) ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
}
@Override
public SalaryAcctRecordPO getById(Long id) {
@ -412,10 +412,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue());
salaryAcctRecordPO.setUpdateTime(new Date());
getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO);
//todo 撤回工资单
// salarySendService.revokeSalaryBill(salaryAcctRecordId);
//todo 删除个税申报表(个税申报表个税申报表详情往期累计情况)
// taxDeclarationService.deleteBySalaryMonth(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()), tenantKey);
//撤回工资单
getSalarySendService(user).revokeSalaryBill(salaryAcctRecordId);
//删除个税申报表(个税申报表个税申报表详情往期累计情况)
getTaxDeclarationService(user).deleteBySalaryMonth(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()));
// 记录日志
// String targetName = getLogTargetNameById(salaryAcctRecordPO.getId(), tenantKey);
// LoggerContext<SalaryAcctRecordPO> loggerContext = new LoggerContext<>();

View File

@ -44,7 +44,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.transaction.annotation.Transactional;
import weaver.hrm.User;
import java.lang.reflect.InvocationTargetException;
@ -228,7 +227,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
}
@Override
public void revokeSalaryBill(Long salaryAccountingId, Long currentEmployeeId, String currentTenantKey) {
public void revokeSalaryBill(Long salaryAccountingId) {
// 校验salaryAccountingId
if (salaryAccountingId == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100497, "核算id必传"));

View File

@ -2,7 +2,6 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.biz.EmployBiz;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationBO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationDetailListDTO;
@ -10,26 +9,16 @@ import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper;
import com.engine.salary.service.SalaryEmployeeService;
import com.engine.salary.service.TaxAgentService;
import com.engine.salary.service.TaxDeclarationDetailService;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.fapiao.neon.model.in.Page;
import com.mzlion.core.lang.CollectionUtils;
import weaver.hrm.User;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey;
/**
* @description: 个税申报表明细
@ -40,7 +29,7 @@ import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tena
*/
public class TaxDeclarationDetailServiceImpl extends Service implements TaxDeclarationDetailService {
private TaxDeclarationDetailMapper getTaxDeclarationDetailMapper(User user) {
private TaxDeclarationDetailMapper getTaxDeclarationDetailMapper() {
return MapperProxyFactory.getProxy(TaxDeclarationDetailMapper.class);
}
private SalaryEmployeeService getSalaryEmployeeService() {
@ -71,7 +60,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla
@Override
public PageInfo<TaxDeclarationDetailListDTO> listDtoPageByParam(TaxDeclarationDetailListQueryParam queryParam) {
// 查询个税申报表明细的人员
List<Long> employeeIdPage = getTaxDeclarationDetailMapper(user).listEmployeeId(queryParam.getTaxDeclarationId());
List<Long> employeeIdPage = getTaxDeclarationDetailMapper().listEmployeeId(queryParam.getTaxDeclarationId());
PageInfo<TaxDeclarationDetailListDTO> dtoPage = new PageInfo<TaxDeclarationDetailListDTO>(TaxDeclarationDetailListDTO.class);
dtoPage.setPageNum(queryParam.getCurrent());
dtoPage.setPageSize(queryParam.getPageSize());
@ -102,7 +91,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla
@Override
public void batchSave(Collection<TaxDeclarationDetailPO> taxDeclarationDetailPOS) {
getTaxDeclarationDetailMapper(user).batchInsert(taxDeclarationDetailPOS);
getTaxDeclarationDetailMapper().batchInsert(taxDeclarationDetailPOS);
}
public List<TaxDeclarationDetailPO> listByTaxDeclarationIdAndEmployeeIds(Long taxDeclarationId, List<Long> employeeIds) {
if (CollectionUtils.isEmpty(employeeIds)) {
@ -115,6 +104,11 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla
// .eq(TaxDeclarationDetailPO::getTaxDeclarationId, taxDeclarationId)
// .in(TaxDeclarationDetailPO::getEmployeeId, employeeIds)
// .list();
return getTaxDeclarationDetailMapper(user).listByTaxDeclarationIdAndEmployeeIds(taxDeclarationId,employeeIds);
return getTaxDeclarationDetailMapper().listByTaxDeclarationIdAndEmployeeIds(taxDeclarationId,employeeIds);
}
@Override
public void deleteByTaxDeclarationIds(Collection<Long> taxDeclarationIds) {
getTaxDeclarationDetailMapper().deleteByTaxDeclarationIds(taxDeclarationIds);
}
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.cmd.taxDeclaration.*;
import com.engine.salary.common.LocalDateRange;
@ -9,18 +10,24 @@ import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxrate.TaxAgent;
import com.engine.salary.entity.taxrate.param.TaxAgentQueryParam;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.TaxAgentMapper;
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper;
import com.engine.salary.service.AddUpSituationService;
import com.engine.salary.service.TaxDeclarationDetailService;
import com.engine.salary.service.TaxDeclarationService;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.PageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import weaver.hrm.User;
import java.text.SimpleDateFormat;
import java.time.YearMonth;
import java.util.*;
public class TaxDeclarationServiceImpl extends Service implements TaxDeclarationService {
@ -29,6 +36,14 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
return MapperProxyFactory.getProxy(TaxDeclarationMapper.class);
}
private TaxDeclarationDetailService getTaxDeclarationDetailService(User user) {
return (TaxDeclarationDetailService) ServiceUtil.getService(TaxDeclarationDetailServiceImpl.class, user);
}
private AddUpSituationService getAddUpSituationService(User user) {
return (AddUpSituationService) ServiceUtil.getService(AddUpSituationServiceImpl.class, user);
}
@Override
public Map<String, Object> listPage(Map<String, Object> params) {
return commandExecutor.execute(new TaxDeclarationListCmd(params, user));
@ -54,6 +69,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
return page;
}
//根据id查询taxAgents
@Override
public List<TaxAgent> countByTaxDeclarationId(Collection<Long> taxAgentIds) {
@ -68,6 +84,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
sqlSession.close();
}
}
//根据id获取TaxDeclaration
@Override
public TaxDeclaration getById(Long id) {
@ -94,8 +111,34 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
public Map<String, Object> update(Map<String, Object> params) {
return commandExecutor.execute(new TaxDeclarationUpdateCmd(params, user));
}
@Override
public Map<String, Object> delete(Map<String, Object> params) {
return commandExecutor.execute(new TaxDeclarationDeleteCmd(params, user));
}
@Override
public void deleteBySalaryMonth(YearMonth salaryMonth) {
// 薪资所属月的日期范围
LocalDateRange salaryMonthDateRange = SalaryDateUtil.localDate2Range(SalaryDateUtil.localDateToDate(salaryMonth.atDay(1)));
if (Objects.isNull(salaryMonthDateRange)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
List<TaxDeclarationPO> taxDeclarationPOS = listBySalaryMonth(salaryMonthDateRange);
if (CollectionUtils.isEmpty(taxDeclarationPOS)) {
return;
}
// 删除个税申报表
Set<Long> taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId);
getTaxDeclarationMapper().deleteByIds(taxDeclarationIds);
// 删除个税申报表详情
getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds);
// 删除往期累计情况
getAddUpSituationService(user).deleteAddUpSituationList(salaryMonth, Collections.emptyList());
}
public List<TaxDeclarationPO> listBySalaryMonth(LocalDateRange salaryMonthDateRange) {
return getTaxDeclarationMapper().listSome(TaxDeclarationPO.builder().salaryMonths(salaryMonthDateRange).build());
}
}