diff --git a/src/com/engine/salary/maintainer/MaintainerController.java b/src/com/engine/salary/maintainer/MaintainerController.java index 12040d334..9e2bc4b50 100644 --- a/src/com/engine/salary/maintainer/MaintainerController.java +++ b/src/com/engine/salary/maintainer/MaintainerController.java @@ -1,6 +1,7 @@ package com.engine.salary.maintainer; import com.engine.common.util.ServiceUtil; +import com.engine.salary.maintainer.datacollection.AddUpSituationManager; import com.engine.salary.maintainer.salaryacct.SalaryAcctManager; import com.engine.salary.maintainer.salaryacct.SalaryAcctSupplementParam; import com.engine.salary.util.ResponseResult; @@ -11,6 +12,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -33,6 +35,10 @@ public class MaintainerController { return ServiceUtil.getService(SalaryAcctManager.class, user); } + private AddUpSituationManager getAddUpSituationManager(User user) { + return ServiceUtil.getService(AddUpSituationManager.class, user); + } + //---------------------------薪资核算 start ------------------------------------ /** @@ -53,4 +59,20 @@ public class MaintainerController { //---------------------------薪资核算 end ------------------------------------ + + //---------------------------数据采集 往期累计情况 start ------------------------------------ + /** + * 恢复所有已申报的往期累计数据 + * + * @return + */ + @GET + @Path("/addupsituation/recover") + @Produces(MediaType.APPLICATION_JSON) + public String recoverAddUpSituationHistoryData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult< Map, String >(user).run(getAddUpSituationManager(user)::recoverAddUpHistoryData); + } + //---------------------------数据采集 往期累计情况 end ------------------------------------ + } diff --git a/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java b/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java new file mode 100644 index 000000000..39a930ebe --- /dev/null +++ b/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java @@ -0,0 +1,64 @@ +package com.engine.salary.maintainer.datacollection; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; +import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper; +import com.engine.salary.service.TaxDeclarationService; +import com.engine.salary.service.impl.TaxDeclarationServiceImpl; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.general.BaseBean; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.YearMonth; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @date 2023/04/23 17:23 + * @description 往期累计情况维护类 + */ +public class AddUpSituationManager extends Service { + + private TaxDeclarationMapper getTaxDeclarationMapper() { + return MapperProxyFactory.getProxy(TaxDeclarationMapper.class); + } + + private TaxDeclarationService getTaxDeclarationService() { + return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user); + } + + public String recoverAddUpHistoryData() { + // 获取已有的个税申报表记录 + List taxDeclarationList = getTaxDeclarationMapper().listSome(new TaxDeclarationPO()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Map taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarationList, TaxDeclarationPO::getId, PO->PO.getTaxAgentId()+"-"+sdf.format(PO.getSalaryMonth())); + BaseBean bb = new BaseBean(); + List taxDeclarationIds = taxDeclarationList.stream().map(TaxDeclarationPO::getId).collect(Collectors.toList()); + bb.writeLog("往期累计数据恢复DataIds:"+ taxDeclarationIds); + bb.writeLog("往期累计数据恢复DataMap:"+ taxDeclarationMap); + // 循环调用生成申报单接口 + for(int i =0; i < taxDeclarationList.size(); i++){ + TaxDeclarationPO PO = taxDeclarationList.get(i); + bb.writeLog("开始删除生成:"+PO.getTaxAgentId()+"-"+PO.getSalaryMonth()); + // 删除记录 + int delete = getTaxDeclarationMapper().deleteByIdZj(PO.getId()); + LocalDate localDate = SalaryDateUtil.dateToLocalDate(PO.getSalaryMonth()); + // 调用生成申报单接口 + YearMonth yearMonth = YearMonth.of(localDate.getYear(),localDate.getMonth()); + try { + getTaxDeclarationService().save(TaxDeclarationSaveParam.builder().salaryMonth(yearMonth).taxAgentId(PO.getTaxAgentId()).build()); + }catch (Exception e){ + bb.writeLog("错误:"+e); + continue; + } + } + return "SUCCESS"; + } +} diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java index a252a430b..5785ed794 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.java @@ -1,7 +1,6 @@ package com.engine.salary.mapper.taxdeclaration; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; -import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -41,4 +40,5 @@ public interface TaxDeclarationMapper { */ void deleteByIds(@Param("ids") Collection ids); + int deleteByIdZj(Long id); } \ 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 fb270b1e1..24ea392ff 100644 --- a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclarationMapper.xml @@ -32,6 +32,15 @@ ,t.income_category + + UPDATE hrsa_tax_declaration + SET delete_type = 1, + update_time ='2023-01-01' + WHERE delete_type = 0 + AND id = #{id} + + +