申报表明细新增、编辑
This commit is contained in:
parent
4810bfb73e
commit
d9c952e80c
|
|
@ -48,6 +48,7 @@ public class EmployeeDeclareListQueryParam extends BaseQueryParam {
|
|||
|
||||
// 员工姓名/编号
|
||||
private String keyword;
|
||||
private Long employeeId;
|
||||
|
||||
// 部门
|
||||
private Collection<Long> departmentIds;
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@ package com.engine.salary.entity.taxdeclaration.bo;
|
|||
|
||||
import com.engine.salary.constant.TaxDeclarationDataIndexConstant;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationAnnualListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationEmployeeDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.*;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
|
|
@ -15,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 个税申报表详情
|
||||
|
|
@ -177,4 +176,23 @@ public class TaxDeclarationDetailBO {
|
|||
}
|
||||
return taxDeclarationLaborListDTOS;
|
||||
}
|
||||
|
||||
|
||||
public static List<TaxDeclareRecordDetailFormDTO.TaxReportColumn> convert2ListTaxReportColumn(List<TaxReportColumnPO> pos) {
|
||||
if (CollectionUtils.isEmpty(pos)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<TaxDeclareRecordDetailFormDTO.TaxReportColumn> collect = pos.stream().map(po -> {
|
||||
TaxDeclareRecordDetailFormDTO.TaxReportColumn taxReportColumn = new TaxDeclareRecordDetailFormDTO.TaxReportColumn();
|
||||
taxReportColumn.setReportColumnName(po.getReportColumnName());
|
||||
taxReportColumn.setReportColumnDataIndex(po.getReportColumnDataIndex());
|
||||
taxReportColumn.setTaxReportType(po.getTaxReportType());
|
||||
taxReportColumn.setIncomeCategory(po.getIncomeCategory());
|
||||
taxReportColumn.setDataType(po.getDataType());
|
||||
return taxReportColumn;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return collect;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
package com.engine.salary.entity.taxdeclaration.dto;
|
||||
|
||||
import com.engine.salary.annotation.TableTitle;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 个税申报明细新增表单
|
||||
* <p>Copyright: Copyright (c) 2023</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TaxDeclareRecordDetailFormDTO {
|
||||
|
||||
/**
|
||||
* 个税申报表id
|
||||
*/
|
||||
private Long taxDeclarationId;
|
||||
|
||||
@TableTitle(title = "工号", dataIndex = "jobNum", key = "jobNum")
|
||||
private String jobNum;
|
||||
|
||||
@TableTitle(title = "姓名", dataIndex = "username", key = "username")
|
||||
private String username;
|
||||
|
||||
@TableTitle(title = "证件类型", dataIndex = "cardType", key = "cardType")
|
||||
private String cardType;
|
||||
|
||||
@TableTitle(title = "证件号码", dataIndex = "cardNum", key = "cardNum")
|
||||
private String cardNum;
|
||||
|
||||
/**
|
||||
* 收入所得项目
|
||||
*/
|
||||
private String incomeCategory;
|
||||
|
||||
/**
|
||||
* 人员报送下拉选择
|
||||
*/
|
||||
private List<EmployeeDeclarePO> employeeDeclares;
|
||||
|
||||
/**
|
||||
* 当前申报类型可编辑字段
|
||||
*/
|
||||
private List<TaxReportColumn> taxReportColumns;
|
||||
private Map<String, String> resultValue;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class TaxReportColumn {
|
||||
//报表类型
|
||||
private String taxReportType;
|
||||
//所得项目
|
||||
private String incomeCategory;
|
||||
//申报表列索引
|
||||
private String reportColumnDataIndex ;
|
||||
//申报表的列名
|
||||
private String reportColumnName;
|
||||
//数值类型
|
||||
private String dataType;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.engine.salary.entity.taxdeclaration.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 个税申报明细保存
|
||||
* <p>Copyright: Copyright (c) 2023</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
public class TaxDeclareRecordDetailFormParam {
|
||||
|
||||
/**
|
||||
* 个税申报表id
|
||||
*/
|
||||
private Long taxDeclarationId;
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
package com.engine.salary.entity.taxdeclaration.param;
|
||||
|
||||
import com.engine.salary.annotation.SalaryTableColumn;
|
||||
import com.engine.salary.annotation.TableTitle;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
|
|
@ -23,10 +21,7 @@ public class TaxDeclareRecordDetailSaveParam {
|
|||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
//个税申报记录id")
|
||||
private Long taxDeclareRecordId;
|
||||
|
||||
//个税申报表id")
|
||||
//个税申报表id
|
||||
private Long taxDeclarationId;
|
||||
|
||||
//人员id
|
||||
|
|
@ -34,31 +29,6 @@ public class TaxDeclareRecordDetailSaveParam {
|
|||
private Long employeeId;
|
||||
private Integer employeeType;
|
||||
|
||||
@SalaryTableColumn(
|
||||
text = "工号", width = "10%", column = "jobNum"
|
||||
)
|
||||
@TableTitle(title ="工号",dataIndex = "jobNum",key = "jobNum")
|
||||
private String jobNum;
|
||||
|
||||
@SalaryTableColumn(
|
||||
text = "姓名", width = "10%", column = "username"
|
||||
)
|
||||
@TableTitle(title ="姓名",dataIndex = "username",key = "username")
|
||||
private String username;
|
||||
|
||||
@SalaryTableColumn(
|
||||
text = "证件类型", width = "10%", column = "cardType"
|
||||
)
|
||||
@TableTitle(title ="证件类型",dataIndex = "cardType",key = "cardType")
|
||||
private String cardType;
|
||||
|
||||
@SalaryTableColumn(
|
||||
text = "证件号码", width = "10%", column = "cardNum"
|
||||
)
|
||||
@TableTitle(title ="证件号码",dataIndex = "cardNum",key = "cardNum")
|
||||
private String cardNum;
|
||||
|
||||
private Map<String,String> taxReportColumnValues;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -838,6 +838,9 @@
|
|||
<if test="param.declareStatus != null">
|
||||
AND declare_status = #{param.declareStatus.value}
|
||||
</if>
|
||||
<if test="param.employeeId != null">
|
||||
AND employee_id=#{param.employeeId}
|
||||
</if>
|
||||
<if test="param.employmentStatus != null">
|
||||
AND employment_status = #{param.employmentStatus.value}
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service;
|
|||
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
|
@ -58,10 +59,17 @@ public interface TaxDeclarationValueService {
|
|||
*/
|
||||
void batchSave(List<TaxDeclarationValuePO> taxDeclarationValues);
|
||||
|
||||
|
||||
void save(TaxDeclareRecordDetailSaveParam param);
|
||||
void edit(TaxDeclareRecordDetailSaveParam param);
|
||||
TaxDeclarationValuePO getById(Long id);
|
||||
|
||||
/**
|
||||
* 删除个税申报表明细
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
*/
|
||||
void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.engine.salary.service.impl;
|
|||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.encrypt.EncryptUtil;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
|
|
@ -10,11 +11,13 @@ import com.engine.salary.entity.extemp.po.ExtEmpPO;
|
|||
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationValueList;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
|
|
@ -24,6 +27,7 @@ import com.engine.salary.util.db.MapperProxyFactory;
|
|||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import weaver.hrm.User;
|
||||
|
|
@ -63,6 +67,10 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
|
|||
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private TaxDeclarationService getTaxDeclarationService(User user) {
|
||||
return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection<Long> taxDeclarationIds) {
|
||||
List<TaxDeclarationValuePO> taxDeclarationValuePOS = getTaxDeclarationValueMapper().listSome(TaxDeclarationValuePO.builder().taxDeclarationIds(taxDeclarationIds).build());
|
||||
|
|
@ -131,6 +139,55 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(TaxDeclareRecordDetailSaveParam param) {
|
||||
TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId());
|
||||
if(taxDeclaration==null){
|
||||
throw new SalaryRunTimeException("个税申报表不存在!");
|
||||
}
|
||||
|
||||
TaxDeclarationValuePO po = TaxDeclarationValuePO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.taxDeclarationId(param.getTaxDeclarationId())
|
||||
.taxDeclareRecordId(taxDeclaration.getTaxDeclareRecordId())
|
||||
.employeeId(param.getEmployeeId())
|
||||
.employeeType(param.getEmployeeType())
|
||||
.resultValue(param.getTaxReportColumnValues())
|
||||
.resultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues()))
|
||||
.createTime(new Date())
|
||||
.updateTime(new Date())
|
||||
.creator((long) user.getUID())
|
||||
.deleteType(0)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
|
||||
|
||||
getTaxDeclarationValueMapper().insertIgnoreNull(po);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(TaxDeclareRecordDetailSaveParam param) {
|
||||
TaxDeclarationValuePO po = getById(param.getId());
|
||||
po.setResultValue(param.getTaxReportColumnValues());
|
||||
po.setResultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues()));
|
||||
po.setUpdateTime(new Date());
|
||||
encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
|
||||
getTaxDeclarationValueMapper().updateIgnoreNull(po);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaxDeclarationValuePO getById(Long id) {
|
||||
TaxDeclarationValuePO po = getTaxDeclarationValueMapper().getById(id);
|
||||
if(po==null){
|
||||
throw new SalaryRunTimeException("个税申报明细不存在!");
|
||||
}
|
||||
encryptUtil.decrypt(po,TaxDeclarationValuePO.class);
|
||||
po.setResultValue(JsonUtil.parseMap(po.getResultValueJson(), String.class));
|
||||
|
||||
return po;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
|
||||
|
|
|
|||
|
|
@ -337,19 +337,20 @@ public class TaxDeclarationController {
|
|||
/**
|
||||
* 新增表单
|
||||
*
|
||||
* @param incomeCategory
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
@POST
|
||||
@Path("/getAddForm")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "IncomeCategoryEnum") IncomeCategoryEnum incomeCategory) {
|
||||
public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailFormParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<IncomeCategoryEnum, String>(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, incomeCategory);
|
||||
return new ResponseResult<TaxDeclareRecordDetailFormParam, TaxDeclareRecordDetailFormDTO>(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @param param
|
||||
|
|
@ -358,11 +359,45 @@ public class TaxDeclarationController {
|
|||
@POST
|
||||
@Path("/add")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String add(@Context HttpServletRequest request, @Context HttpServletResponse response,TaxDeclareRecordDetailSaveParam param) {
|
||||
public String add(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<TaxDeclareRecordDetailSaveParam, String>(user).run(getTaxDeclareRecordWrapper(user)::add, param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/edit")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String edit(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<TaxDeclareRecordDetailSaveParam, String>(user).run(getTaxDeclareRecordWrapper(user)::edit, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取详细详细
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
@Path("/detailInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String edit(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, TaxDeclareRecordDetailFormDTO>(user).run(getTaxDeclareRecordWrapper(user)::detailInfo, id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 个税申报表详情列表
|
||||
*
|
||||
|
|
@ -407,9 +442,7 @@ public class TaxDeclarationController {
|
|||
};
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output)
|
||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
||||
.header("Cache-Control", "no-cache").build();
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("个税申报表明细导出异常", e);
|
||||
throw e;
|
||||
|
|
@ -544,9 +577,7 @@ public class TaxDeclarationController {
|
|||
};
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output)
|
||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
||||
.header("Cache-Control", "no-cache").build();
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("未报送的人员导出异常", e);
|
||||
throw e;
|
||||
|
|
@ -581,9 +612,7 @@ public class TaxDeclarationController {
|
|||
};
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output)
|
||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
||||
.header("Cache-Control", "no-cache").build();
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("缺少申报数据的人员导出异常", e);
|
||||
throw e;
|
||||
|
|
@ -617,9 +646,7 @@ public class TaxDeclarationController {
|
|||
};
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output)
|
||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
||||
.header("Cache-Control", "no-cache").build();
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("申报失败人员导出异常", e);
|
||||
throw e;
|
||||
|
|
|
|||
|
|
@ -3,12 +3,17 @@ package com.engine.salary.wrapper;
|
|||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.cache.SalaryCacheKey;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationDetailBO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.*;
|
||||
import com.engine.salary.entity.taxdeclaration.param.*;
|
||||
import com.engine.salary.entity.taxdeclaration.po.*;
|
||||
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
|
||||
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
|
||||
import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||
|
|
@ -91,6 +96,10 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private EmployeeDeclareService getEmployeeDeclareService(User user) {
|
||||
return ServiceUtil.getService(EmployeeDeclareServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 个税申报记录列表
|
||||
|
|
@ -663,29 +672,77 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam);
|
||||
}
|
||||
|
||||
public List<TaxReportColumnPO> getAddForm(IncomeCategoryEnum incomeCategoryEnum) {
|
||||
public TaxDeclareRecordDetailFormDTO getAddForm(TaxDeclareRecordDetailFormParam param) {
|
||||
TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId());
|
||||
// 查询个税申报表列
|
||||
List<TaxReportColumnPO> taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum);
|
||||
return taxReportColumns;
|
||||
List<TaxReportColumnPO> taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()));
|
||||
//当前税款所属期报送成功且状态正常的人员
|
||||
List<EmployeeDeclarePO> employeeDeclarePOS = getEmployeeDeclareService(user).listByParam(
|
||||
EmployeeDeclareListQueryParam
|
||||
.builder()
|
||||
.taxCycle(taxDeclaration.getTaxCycle())
|
||||
.taxAgentId(taxDeclaration.getTaxAgentId())
|
||||
.declareStatus(DeclareStatusEnum.DECLARE_SUCCESS)
|
||||
.employmentStatus(EmploymentStatusEnum.NORMAL)
|
||||
.build()
|
||||
);
|
||||
|
||||
//过滤申报表中已存在的人员
|
||||
List<TaxDeclarationValuePO> taxDeclarationValuePOS = getTaxDeclarationValueService(user).listByTaxDeclarationIds(Collections.singletonList(param.getTaxDeclarationId()));
|
||||
Set<Long> empIds = SalaryEntityUtil.properties(taxDeclarationValuePOS, TaxDeclarationValuePO::getEmployeeId);
|
||||
|
||||
employeeDeclarePOS = employeeDeclarePOS.stream().filter(emp -> !empIds.contains(emp.getEmployeeId())).collect(Collectors.toList());
|
||||
|
||||
return TaxDeclareRecordDetailFormDTO.builder()
|
||||
.taxReportColumns(TaxDeclarationDetailBO.convert2ListTaxReportColumn(taxReportColumns))
|
||||
.employeeDeclares(employeeDeclarePOS)
|
||||
.taxDeclarationId(taxDeclaration.getTaxAgentId())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @param param
|
||||
*/
|
||||
public void add(TaxDeclareRecordDetailSaveParam param) {
|
||||
getTaxDeclarationValueService(user).save(param);
|
||||
}
|
||||
|
||||
TaxDeclarationValuePO build = TaxDeclarationValuePO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.taxDeclarationId(param.getTaxDeclarationId())
|
||||
.taxDeclareRecordId(param.getTaxDeclareRecordId())
|
||||
.employeeId(param.getEmployeeId())
|
||||
.employeeType(param.getEmployeeType())
|
||||
.resultValue(param.getTaxReportColumnValues())
|
||||
.createTime(new Date())
|
||||
.updateTime(new Date())
|
||||
.creator((long) user.getUID())
|
||||
.deleteType(0)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
/**
|
||||
* 编辑
|
||||
* @param param
|
||||
*/
|
||||
public void edit(TaxDeclareRecordDetailSaveParam param) {
|
||||
getTaxDeclarationValueService(user).edit(param);
|
||||
}
|
||||
|
||||
public TaxDeclareRecordDetailFormDTO detailInfo(Long id) {
|
||||
TaxDeclarationValuePO declarationValuePO = getTaxDeclarationValueService(user).getById(id);
|
||||
TaxDeclarationPO taxDeclarationPO = getTaxDeclarationService(user).getById(declarationValuePO.getTaxDeclarationId());
|
||||
|
||||
List<EmployeeDeclarePO> employeeDeclarePOS = getEmployeeDeclareService(user).listByParam(
|
||||
EmployeeDeclareListQueryParam
|
||||
.builder()
|
||||
.taxCycle(taxDeclarationPO.getTaxCycle())
|
||||
.taxAgentId(taxDeclarationPO.getTaxAgentId())
|
||||
.employeeId(declarationValuePO.getEmployeeId())
|
||||
.build()
|
||||
);
|
||||
|
||||
if (CollectionUtils.isEmpty(employeeDeclarePOS)) {
|
||||
throw new SalaryRunTimeException("当前人员未报送!");
|
||||
}
|
||||
EmployeeDeclarePO employeeDeclarePO = employeeDeclarePOS.get(0);
|
||||
// 查询个税申报表列
|
||||
List<TaxReportColumnPO> taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()));
|
||||
return TaxDeclareRecordDetailFormDTO.builder()
|
||||
.incomeCategory(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()).getDefaultLabel())
|
||||
.cardNum(employeeDeclarePO.getCardNum())
|
||||
.cardType(SalaryEnumUtil.enumMatchByValue(employeeDeclarePO.getCardType(), CardTypeEnum.class).getDefaultLabel())
|
||||
.username(employeeDeclarePO.getEmployeeName())
|
||||
.jobNum(employeeDeclarePO.getJobNum())
|
||||
.taxReportColumns(TaxDeclarationDetailBO.convert2ListTaxReportColumn(taxReportColumns))
|
||||
.resultValue(declarationValuePO.getResultValue())
|
||||
.build();
|
||||
List<TaxDeclarationValuePO> objects = new ArrayList<>();
|
||||
objects.add(build);
|
||||
getTaxDeclarationValueService(user).batchSave(objects);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue