diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index b5d991c58..5657e0c77 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -11,7 +11,6 @@ import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.entity.taxrate.TaxAgent; -import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -21,7 +20,7 @@ import com.google.common.collect.Maps; import dm.jdbc.util.IdGenerator; import lombok.Data; import org.apache.commons.collections4.CollectionUtils; - +import weaver.hrm.User; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; @@ -119,6 +118,7 @@ public class TaxDeclarationBO { public static Result handle(TaxDeclarationSaveParam saveParam, Date taxCycle, + User user, List salaryItems, List salarySobs, List salaryAcctResults @@ -139,28 +139,11 @@ public class TaxDeclarationBO { Map> taxAgentIdKeyAcctResultMap = SalaryEntityUtil.group2Map(salaryAcctResults, SalaryAcctResultPO::getTaxAgentId); taxAgentIdKeyAcctResultMap.forEach((k, v) -> { // 新增的个税申报表 - TaxDeclarationPO taxDeclaration = convert2PO(saveParam, taxCycle, k); + TaxDeclarationPO taxDeclaration = convert2PO(saveParam,user, taxCycle, k); result.getNeedInsertTaxDeclarations().add(taxDeclaration); // 处理个税申报明细以及累计情况 handleTaxDeclarationDetail(result, taxDeclaration, v, salaryItemMap); }); - /*taxAgentIdKeyAcctResultMap.forEach((taxAgentId, incomeCategoryKeyAcctResultPOMap) -> { - incomeCategoryKeyAcctResultPOMap.forEach((incomeCategory, salaryAcctResultPOS) -> { - // 新增的个税申报表 - TaxDeclarationPO taxDeclaration = convert2PO(saveParam, taxCycle, taxAgentId, incomeCategory, employeeId); - result.getNeedInsertTaxDeclarations().add(taxDeclaration); - if (Objects.equals(incomeCategory, IncomeCategoryEnum.WAGES_AND_SALARIES.getValue())) { - // 生成个税申报表 - handleTaxDeclaration4Wage(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap); - // 生成往期累计情况 - handleAddUpSituation(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap); - } - if (Objects.equals(incomeCategory, IncomeCategoryEnum.REMUNERATION_FOR_LABOR.getValue())) { - // 生成个税申报表 - handleTaxDeclaration4Labor(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap); - } - }); - });*/ return result; } @@ -326,19 +309,22 @@ public class TaxDeclarationBO { }); } - private static TaxDeclarationPO convert2PO(TaxDeclarationSaveParam saveParam, Date taxCycle, Long taxAgentId) { + private static TaxDeclarationPO convert2PO(TaxDeclarationSaveParam saveParam, User user,Date taxCycle, Long taxAgentId) { LocalDateTime now = LocalDateTime.now(); + if(saveParam.getDescription()==null){ + saveParam.setDescription(""); + } return TaxDeclarationPO.builder() .id(IdGenerator.generate()) .taxAgentId(taxAgentId) .salaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1))) .taxCycle(taxCycle) .description(saveParam.getDescription()) - // .creator(employeeId) + .creator((long)user.getUID()) .createTime(SalaryDateUtil.localDateTimeToDate(now)) .updateTime(SalaryDateUtil.localDateTimeToDate(now)) .deleteType(0) - //.tenantKey(tenantKey) + .tenantKey("") .build(); } diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationSaveParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationSaveParam.java index 8e4c734ed..6c8b48efa 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationSaveParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationSaveParam.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import weaver.hrm.User; import java.time.YearMonth; @@ -28,4 +29,6 @@ public class TaxDeclarationSaveParam { private String salaryMonthStr; + private User user; + } diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml index 76849e539..69c61121a 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml @@ -59,22 +59,59 @@ ORDER BY id DESC - INSERT INTO hrsa_tax_declaration - (create_time, creator, delete_type, description, id, salary_month, - tax_agent_id, tax_cycle, tenant_key, update_time) + INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description, + creator, create_time, update_time, delete_type, tenant_key) VALUES - + ( - #{item.create_time}, - #{item.creator}, - #{item.delete_type}, - #{item.description}, #{item.id}, - #{item.salary_month}, - #{item.tax_agent_id}, - #{item.tax_cycle}, - #{item.tenant_key}, - #{item.update_time} + #{item.salaryMonth}, + #{item.taxCycle}, + #{item.taxAgentId}, + #{item.description}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description, + creator, create_time, update_time, delete_type, tenant_key) + + + select + #{item.id}, + #{item.salaryMonth}, + #{item.taxCycle}, + #{item.taxAgentId}, + #{item.description}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + from dual + + + + INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description, + creator, create_time, update_time, delete_type, tenant_key) + VALUES + + ( + #{item.id}, + #{item.salaryMonth}, + #{item.taxCycle}, + #{item.taxAgentId}, + #{item.description}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} ) diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index eeb8c0043..dea4a04cd 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -1,22 +1,18 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.salaryacct.param.SalaryComparisonResultQueryParam; -import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationDetailListDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; -import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper; import com.engine.salary.service.TaxDeclarationExcelService; import com.engine.salary.service.TaxDeclarationService; import com.engine.salary.service.impl.TaxDeclarationExcelServiceImpl; import com.engine.salary.service.impl.TaxDeclarationServiceImpl; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.TaxDeclarationDetailWrapper; import com.engine.salary.wrapper.TaxDeclarationWrapper; @@ -90,6 +86,7 @@ public class TaxDeclarationController { public String save(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationSaveParam param) { User user = HrmUserVarify.getUser(request, response); param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr())); + param.setUser(user); return new ResponseResult().run(getTaxDeclarationWrapper(user)::save, param); } //个税申报表详情列表 diff --git a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java index fff8e3a89..ce839ca7d 100644 --- a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java @@ -199,6 +199,7 @@ public class TaxDeclarationWrapper extends Service { public void save(TaxDeclarationSaveParam saveParam) { //getTaxDeclarationService(user).save(saveParam); EmployBiz employBiz = new EmployBiz(); + User user = saveParam.getUser(); // 薪资所属月的日期范围 LocalDateRange salaryMonthDateRange = SalaryDateUtil.localDate2YearRange(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1))); if (Objects.isNull(salaryMonthDateRange)) { @@ -249,8 +250,10 @@ public class TaxDeclarationWrapper extends Service { // 查询所有薪资项目 List salaryItemPOS = new SalaryItemBiz().listAll(); // 处理要保存的数据 - TaxDeclarationBO.Result result = TaxDeclarationBO.handle(saveParam, taxCycle, salaryItemPOS, salarySobPOS,salaryAcctResultPOS); + TaxDeclarationBO.Result result = TaxDeclarationBO.handle(saveParam, taxCycle, user,salaryItemPOS, salarySobPOS,salaryAcctResultPOS); // 保存个税申报表 + //添加判断 + if (CollectionUtils.isNotEmpty(result.getNeedInsertTaxDeclarations())) { getTaxDeclarationMapper().batchInsert(result.getNeedInsertTaxDeclarations());