From d2a37df97f3a0d09b035909729aeb4af24d1136c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 May 2022 11:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E8=A1=A8=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaxDeclarationDetailMapper.java | 9 +++- .../TaxDeclarationDetailMapper.xml | 10 +++++ .../taxdeclaration/TaxDeclarationMapper.java | 9 +++- .../taxdeclaration/TaxDeclarationMapper.xml | 9 ++++ .../salary/service/SalarySendService.java | 2 +- .../service/TaxDeclarationDetailService.java | 11 +++-- .../salary/service/TaxDeclarationService.java | 9 ++++ .../impl/SalaryAcctRecordServiceImpl.java | 22 ++++----- .../service/impl/SalarySendServiceImpl.java | 3 +- .../impl/TaxDeclarationDetailServiceImpl.java | 24 ++++------ .../impl/TaxDeclarationServiceImpl.java | 45 ++++++++++++++++++- 11 files changed, 116 insertions(+), 37 deletions(-) diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java index e69012d2f..952812249 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.java @@ -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 listByTaxDeclarationIdAndEmployeeIds(@Param("taxDeclarationId") Long taxDeclarationId, @Param("collection") List employeeIds); + + /** + * 根据个税申报表id删除 + * + * @param taxDeclarationIds + */ + void deleteByTaxDeclarationIds(@Param("taxDeclarationIds") Collection taxDeclarationIds); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml index 363c986a2..f070e92e9 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationDetailMapper.xml @@ -298,4 +298,14 @@ + + UPDATE hrsa_tax_declaration_detail + SET delete_type = 1 + WHERE delete_type = 0 + AND tax_declaration_id IN + + #{taxDeclarationIds} + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java index 0693098e7..c7f9b39dd 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java @@ -74,5 +74,12 @@ public interface TaxDeclarationMapper { * @param taxDeclarationDetails */ void batchInsert(@Param("collection") Collection taxDeclarationDetails); - + + /** + * 根据id删除个税申报表 + * + * @param ids + */ + void deleteByIds(@Param("ids") Collection ids); + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml index 4476bd52a..96e351c33 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml @@ -249,5 +249,14 @@ AND delete_type = 0 + + UPDATE hrsa_tax_declaration + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index d06dbdd17..45df4808c 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -38,7 +38,7 @@ public interface SalarySendService { * @param currentTenantKey * @return */ - void revokeSalaryBill(Long salaryAccountingId, Long currentEmployeeId, String currentTenantKey); + void revokeSalaryBill(Long salaryAccountingId); /** * 工资单发放列表(分页) diff --git a/src/com/engine/salary/service/TaxDeclarationDetailService.java b/src/com/engine/salary/service/TaxDeclarationDetailService.java index fa17e6178..6c529e96b 100644 --- a/src/com/engine/salary/service/TaxDeclarationDetailService.java +++ b/src/com/engine/salary/service/TaxDeclarationDetailService.java @@ -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 listDtoPageByParam(TaxDeclarationDetailListQueryParam queryParam); @@ -51,7 +49,6 @@ public interface TaxDeclarationDetailService { * 根据列表查询条件查询个税申报列表明细(劳务报酬所得) * * @param queryParam 列表查询条件 - * @param tenantKey 租户key * @return */ PageInfo listDtoPageByParam4Labor(TaxDeclarationDetailListQueryParam queryParam); @@ -60,7 +57,6 @@ public interface TaxDeclarationDetailService { * 根据列表查询条件查询个税申报列表明细(正常工资薪金所得) * * @param queryParam 列表查询条件 - * @param tenantKey 租户key * @return */ PageInfo listDtoPageByParam4Wage(TaxDeclarationDetailListQueryParam queryParam); @@ -71,4 +67,11 @@ public interface TaxDeclarationDetailService { * @param taxDeclarationDetailPOS 个税申报表明细po */ void batchSave(Collection taxDeclarationDetailPOS); + + /** + * 根据个税申报表id删除个税申报表详情 + * + * @param taxDeclarationIds 个税申报表id + */ + void deleteByTaxDeclarationIds(Collection taxDeclarationIds); } diff --git a/src/com/engine/salary/service/TaxDeclarationService.java b/src/com/engine/salary/service/TaxDeclarationService.java index 07ea4d1e5..96696b4cf 100644 --- a/src/com/engine/salary/service/TaxDeclarationService.java +++ b/src/com/engine/salary/service/TaxDeclarationService.java @@ -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 delete(Map params); + /** + * 删除个税申报表 + * + * @param salaryMonth + * @param tenantKey + */ + void deleteBySalaryMonth(YearMonth salaryMonth); + } diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 5f8dc623a..d2ec29776 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -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 loggerContext = new LoggerContext<>(); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index e17727323..9a93311e2 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -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必传")); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java index f855f7ceb..a3735e3fc 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java @@ -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 listDtoPageByParam(TaxDeclarationDetailListQueryParam queryParam) { // 查询个税申报表明细的人员 - List employeeIdPage = getTaxDeclarationDetailMapper(user).listEmployeeId(queryParam.getTaxDeclarationId()); + List employeeIdPage = getTaxDeclarationDetailMapper().listEmployeeId(queryParam.getTaxDeclarationId()); PageInfo dtoPage = new PageInfo(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 taxDeclarationDetailPOS) { - getTaxDeclarationDetailMapper(user).batchInsert(taxDeclarationDetailPOS); + getTaxDeclarationDetailMapper().batchInsert(taxDeclarationDetailPOS); } public List listByTaxDeclarationIdAndEmployeeIds(Long taxDeclarationId, List 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 taxDeclarationIds) { + getTaxDeclarationDetailMapper().deleteByTaxDeclarationIds(taxDeclarationIds); } } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index c06d69c25..f023a38af 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -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 listPage(Map 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 countByTaxDeclarationId(Collection 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 update(Map params) { return commandExecutor.execute(new TaxDeclarationUpdateCmd(params, user)); } + @Override public Map delete(Map 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 taxDeclarationPOS = listBySalaryMonth(salaryMonthDateRange); + if (CollectionUtils.isEmpty(taxDeclarationPOS)) { + return; + } + // 删除个税申报表 + Set taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId); + getTaxDeclarationMapper().deleteByIds(taxDeclarationIds); + // 删除个税申报表详情 + getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds); + // 删除往期累计情况 + getAddUpSituationService(user).deleteAddUpSituationList(salaryMonth, Collections.emptyList()); + } + + public List listBySalaryMonth(LocalDateRange salaryMonthDateRange) { + + return getTaxDeclarationMapper().listSome(TaxDeclarationPO.builder().salaryMonths(salaryMonthDateRange).build()); + } }