weaver-hrm-salary/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java

152 lines
6.9 KiB
Java
Raw Normal View History

2022-04-16 15:33:51 +08:00
package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.biz.EmployBiz;
import com.engine.salary.component.WeaFormOption;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
2022-05-31 16:41:11 +08:00
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
2022-04-16 15:33:51 +08:00
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationBO;
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.TaxDeclarationListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.exception.SalaryRunTimeException;
2022-06-10 13:33:48 +08:00
import com.engine.salary.service.TaxAgentService;
import com.engine.salary.service.TaxDeclarationService;
import com.engine.salary.service.impl.TaxAgentServiceImpl;
import com.engine.salary.service.impl.TaxDeclarationServiceImpl;
2022-04-16 15:33:51 +08:00
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.page.PageInfo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import weaver.hrm.User;
2022-04-19 20:58:30 +08:00
import java.text.SimpleDateFormat;
2022-04-16 15:33:51 +08:00
import java.util.*;
import java.util.stream.Collectors;
/**
2022-06-02 18:02:27 +08:00
* 个税申报表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
2022-04-16 15:33:51 +08:00
public class TaxDeclarationWrapper extends Service {
private TaxDeclarationService getTaxDeclarationService(User user) {
2022-06-07 15:43:22 +08:00
return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
2022-04-16 15:33:51 +08:00
}
2022-05-31 21:05:59 +08:00
private TaxAgentService getTaxAgentService(User user) {
2022-06-07 15:43:22 +08:00
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
2022-04-16 15:33:51 +08:00
}
2022-05-09 17:47:19 +08:00
2022-04-16 15:33:51 +08:00
/**
* 个税申报表列表
*
* @param queryParam 列表查询条件
* @param
* @return
*/
public PageInfo listPage(TaxDeclarationListQueryParam queryParam) {
EmployBiz employBiz = new EmployBiz();
// 询个税申报表(分页)
PageInfo<TaxDeclarationPO> page = getTaxDeclarationService(user).listPageByParam(queryParam);
PageInfo<TaxDeclarationListDTO> dtoPage = new PageInfo<TaxDeclarationListDTO>(TaxDeclarationListDTO.class);
dtoPage.setPageNum(queryParam.getCurrent());
dtoPage.setPageSize(queryParam.getPageSize());
2023-02-13 10:59:09 +08:00
dtoPage.setTotal(page.getTotal());
2022-04-16 15:33:51 +08:00
List<TaxDeclarationPO> list = page.getList();
if (CollectionUtils.isNotEmpty(list)) {
// 查询人员
List<Long> employeeIds = SalaryEntityUtil.properties(list, TaxDeclarationPO::getCreator, Collectors.toList());
List<DataCollectionEmployee> employeeComInfos = employBiz.getEmployeeByIdsAll(employeeIds);
// 查询个税扣缴义务人
Set<Long> taxAgentIds = SalaryEntityUtil.properties(list, TaxDeclarationPO::getTaxAgentId);
2022-06-09 19:02:18 +08:00
List<TaxAgentPO> taxAgentPOS = getTaxDeclarationService(user).countByTaxDeclarationId(taxAgentIds);
2022-04-16 15:33:51 +08:00
// 转换成列表dto
2022-05-09 17:47:19 +08:00
List<TaxDeclarationListDTO> taxDeclarationListDTOS = TaxDeclarationBO.convert2ListDTO(list, employeeComInfos, taxAgentPOS);
2022-04-16 15:33:51 +08:00
dtoPage.setList(taxDeclarationListDTOS);
}
return dtoPage;
}
2022-05-09 17:47:19 +08:00
public TaxDeclarationFormDTO getForm(Long id) {
TaxDeclarationFormDTO formDTO = new TaxDeclarationFormDTO();
if (Objects.nonNull(id)) {
// 查询个税申报表
2022-06-10 13:33:48 +08:00
TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(id);
2022-05-09 17:47:19 +08:00
if (Objects.isNull(taxDeclaration)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除"));
2022-04-16 15:33:51 +08:00
}
2022-05-09 17:47:19 +08:00
// 查询个税扣缴义务人
2022-05-31 16:41:11 +08:00
TaxAgentPO taxAgent = getTaxAgentService(user).getById(id);
2022-05-09 17:47:19 +08:00
//日期转换
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
String transformDate = simpleDateFormat.format(taxDeclaration.getSalaryMonth());
// 转换成个税申报表详情dto
2022-06-07 15:43:22 +08:00
formDTO = TaxDeclarationFormDTO.builder().salaryMonth(SalaryDateUtil.String2YearMonth(transformDate)).taxAgentId(taxDeclaration.getTaxAgentId()).taxAgentName(Optional.ofNullable(taxAgent).map(TaxAgentPO::getName).orElse("")).description(taxDeclaration.getDescription()).build();
2022-05-09 17:47:19 +08:00
}
// 转换成前端所需的数据格式
// WeaForm weaForm = SalaryFormatUtil.<TaxDeclarationFormDTO>getInstance().buildForm(TaxDeclarationFormDTO.class, formDTO);
2022-04-16 15:33:51 +08:00
2022-05-09 17:47:19 +08:00
// 查询租户所有的个税扣缴义务人
2022-06-07 15:43:22 +08:00
Collection<TaxAgentPO> taxAgentListDTOS = getTaxAgentService(user).listAll();
2022-05-09 17:47:19 +08:00
// 表单中个税扣缴义务人的可选项
List<WeaFormOption> weaFormOptions = Lists.newArrayListWithExpectedSize(taxAgentListDTOS.size());
2022-05-31 16:41:11 +08:00
for (TaxAgentPO taxAgent : taxAgentListDTOS) {
2022-05-09 17:47:19 +08:00
weaFormOptions.add(new WeaFormOption("" + taxAgent.getId(), taxAgent.getName()));
}
2022-04-16 15:33:51 +08:00
// weaForm.getItems().forEach((k, v) -> {
// if (StringUtils.equals("taxAgentId", k)) {
// v.setOptions(weaFormOptions);
// }
// if (StringUtils.equals("salaryMonth", k)) {
// Map<String, Object> otherParams = new HashMap<>();
// otherParams.put("type", "month");
// v.setOtherParams(otherParams);
// }
// });
2022-05-09 17:47:19 +08:00
return formDTO;
}
/**
2022-04-16 15:33:51 +08:00
* 查询个税申报表的基本信息
*
2022-05-09 17:47:19 +08:00
* @param id 个税申报表id
2022-04-16 15:33:51 +08:00
* @return
*/
public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id) {
// 查询个税申报表
2022-06-10 13:33:48 +08:00
TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(id);
2022-04-16 15:33:51 +08:00
if (Objects.isNull(taxDeclaration)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除"));
}
2022-04-19 20:58:30 +08:00
//日期转换
2022-05-09 17:47:19 +08:00
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
String transformDate = simpleDateFormat.format(taxDeclaration.getSalaryMonth());
2022-04-16 15:33:51 +08:00
// 查询个税扣缴义务人
2022-05-31 16:41:11 +08:00
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclaration.getTaxAgentId());
2022-06-07 15:43:22 +08:00
return TaxDeclarationInfoDTO.builder().salaryMonth(SalaryDateUtil.String2YearMonth(transformDate)).taxAgentId(taxDeclaration.getTaxAgentId()).taxAgentName(Optional.ofNullable(taxAgentPO).map(TaxAgentPO::getName).orElse("")).build();
2022-04-16 15:33:51 +08:00
}
2022-06-07 15:43:22 +08:00
2022-05-09 17:47:19 +08:00
/**
2022-04-16 15:33:51 +08:00
* 保存
*
2022-05-09 17:47:19 +08:00
* @param saveParam 保存参数
2022-04-16 15:33:51 +08:00
*/
public void save(TaxDeclarationSaveParam saveParam) {
2022-06-10 13:33:48 +08:00
getTaxDeclarationService(user).save(saveParam);
2022-04-16 15:33:51 +08:00
}
}