申报表明细新增、编辑
This commit is contained in:
parent
4810bfb73e
commit
d9c952e80c
|
|
@ -48,6 +48,7 @@ public class EmployeeDeclareListQueryParam extends BaseQueryParam {
|
||||||
|
|
||||||
// 员工姓名/编号
|
// 员工姓名/编号
|
||||||
private String keyword;
|
private String keyword;
|
||||||
|
private Long employeeId;
|
||||||
|
|
||||||
// 部门
|
// 部门
|
||||||
private Collection<Long> departmentIds;
|
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.constant.TaxDeclarationDataIndexConstant;
|
||||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationAnnualListDTO;
|
import com.engine.salary.entity.taxdeclaration.dto.*;
|
||||||
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.po.TaxDeclarationDetailPO;
|
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.enums.salaryaccounting.EmployeeTypeEnum;
|
||||||
import com.engine.salary.util.SalaryEntityUtil;
|
import com.engine.salary.util.SalaryEntityUtil;
|
||||||
import com.engine.salary.util.SalaryI18nUtil;
|
import com.engine.salary.util.SalaryI18nUtil;
|
||||||
|
|
@ -15,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 个税申报表详情
|
* 个税申报表详情
|
||||||
|
|
@ -177,4 +176,23 @@ public class TaxDeclarationDetailBO {
|
||||||
}
|
}
|
||||||
return taxDeclarationLaborListDTOS;
|
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;
|
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.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -23,10 +21,7 @@ public class TaxDeclareRecordDetailSaveParam {
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
//个税申报记录id")
|
//个税申报表id
|
||||||
private Long taxDeclareRecordId;
|
|
||||||
|
|
||||||
//个税申报表id")
|
|
||||||
private Long taxDeclarationId;
|
private Long taxDeclarationId;
|
||||||
|
|
||||||
//人员id
|
//人员id
|
||||||
|
|
@ -34,31 +29,6 @@ public class TaxDeclareRecordDetailSaveParam {
|
||||||
private Long employeeId;
|
private Long employeeId;
|
||||||
private Integer employeeType;
|
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;
|
private Map<String,String> taxReportColumnValues;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -838,6 +838,9 @@
|
||||||
<if test="param.declareStatus != null">
|
<if test="param.declareStatus != null">
|
||||||
AND declare_status = #{param.declareStatus.value}
|
AND declare_status = #{param.declareStatus.value}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="param.employeeId != null">
|
||||||
|
AND employee_id=#{param.employeeId}
|
||||||
|
</if>
|
||||||
<if test="param.employmentStatus != null">
|
<if test="param.employmentStatus != null">
|
||||||
AND employment_status = #{param.employmentStatus.value}
|
AND employment_status = #{param.employmentStatus.value}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service;
|
||||||
|
|
||||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
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.TaxDeclarationPO;
|
||||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||||
import com.engine.salary.util.page.PageInfo;
|
import com.engine.salary.util.page.PageInfo;
|
||||||
|
|
@ -58,10 +59,17 @@ public interface TaxDeclarationValueService {
|
||||||
*/
|
*/
|
||||||
void batchSave(List<TaxDeclarationValuePO> taxDeclarationValues);
|
void batchSave(List<TaxDeclarationValuePO> taxDeclarationValues);
|
||||||
|
|
||||||
|
|
||||||
|
void save(TaxDeclareRecordDetailSaveParam param);
|
||||||
|
void edit(TaxDeclareRecordDetailSaveParam param);
|
||||||
|
TaxDeclarationValuePO getById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除个税申报表明细
|
* 删除个税申报表明细
|
||||||
*
|
*
|
||||||
* @param taxDeclareRecordIds
|
* @param taxDeclareRecordIds
|
||||||
*/
|
*/
|
||||||
void deleteByTaxDeclareRecordIds(Collection<Long> 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.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||||
import com.engine.salary.encrypt.EncryptUtil;
|
import com.engine.salary.encrypt.EncryptUtil;
|
||||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
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.bo.TaxDeclarationValueList;
|
||||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
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.TaxDeclarationPO;
|
||||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||||
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||||
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||||
|
import com.engine.salary.exception.SalaryRunTimeException;
|
||||||
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper;
|
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper;
|
||||||
import com.engine.salary.service.*;
|
import com.engine.salary.service.*;
|
||||||
import com.engine.salary.util.JsonUtil;
|
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.PageInfo;
|
||||||
import com.engine.salary.util.page.SalaryPageUtil;
|
import com.engine.salary.util.page.SalaryPageUtil;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import dm.jdbc.util.IdGenerator;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
@ -63,6 +67,10 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
|
||||||
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
|
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private TaxDeclarationService getTaxDeclarationService(User user) {
|
||||||
|
return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection<Long> taxDeclarationIds) {
|
public PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection<Long> taxDeclarationIds) {
|
||||||
List<TaxDeclarationValuePO> taxDeclarationValuePOS = getTaxDeclarationValueMapper().listSome(TaxDeclarationValuePO.builder().taxDeclarationIds(taxDeclarationIds).build());
|
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
|
@Override
|
||||||
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||||
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
|
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
|
||||||
|
|
|
||||||
|
|
@ -337,19 +337,20 @@ public class TaxDeclarationController {
|
||||||
/**
|
/**
|
||||||
* 新增表单
|
* 新增表单
|
||||||
*
|
*
|
||||||
* @param incomeCategory
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GET
|
@POST
|
||||||
@Path("/getAddForm")
|
@Path("/getAddForm")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@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);
|
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 request
|
||||||
* @param response
|
* @param response
|
||||||
* @param param
|
* @param param
|
||||||
|
|
@ -358,11 +359,45 @@ public class TaxDeclarationController {
|
||||||
@POST
|
@POST
|
||||||
@Path("/add")
|
@Path("/add")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@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);
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
return new ResponseResult<TaxDeclareRecordDetailSaveParam, String>(user).run(getTaxDeclareRecordWrapper(user)::add, param);
|
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");
|
response.setContentType("application/octet-stream");
|
||||||
return Response.ok(output)
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
|
||||||
.header("Cache-Control", "no-cache").build();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("个税申报表明细导出异常", e);
|
log.error("个税申报表明细导出异常", e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
@ -544,9 +577,7 @@ public class TaxDeclarationController {
|
||||||
};
|
};
|
||||||
|
|
||||||
response.setContentType("application/octet-stream");
|
response.setContentType("application/octet-stream");
|
||||||
return Response.ok(output)
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
|
||||||
.header("Cache-Control", "no-cache").build();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("未报送的人员导出异常", e);
|
log.error("未报送的人员导出异常", e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
@ -581,9 +612,7 @@ public class TaxDeclarationController {
|
||||||
};
|
};
|
||||||
|
|
||||||
response.setContentType("application/octet-stream");
|
response.setContentType("application/octet-stream");
|
||||||
return Response.ok(output)
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
|
||||||
.header("Cache-Control", "no-cache").build();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("缺少申报数据的人员导出异常", e);
|
log.error("缺少申报数据的人员导出异常", e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
@ -617,9 +646,7 @@ public class TaxDeclarationController {
|
||||||
};
|
};
|
||||||
|
|
||||||
response.setContentType("application/octet-stream");
|
response.setContentType("application/octet-stream");
|
||||||
return Response.ok(output)
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||||
.header("Content-disposition", "attachment;filename=" + fileName)
|
|
||||||
.header("Cache-Control", "no-cache").build();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("申报失败人员导出异常", e);
|
log.error("申报失败人员导出异常", e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,17 @@ package com.engine.salary.wrapper;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
import com.engine.salary.cache.SalaryCacheKey;
|
import com.engine.salary.cache.SalaryCacheKey;
|
||||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
|
||||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
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.taxagent.po.TaxAgentPO;
|
||||||
|
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationDetailBO;
|
||||||
import com.engine.salary.entity.taxdeclaration.dto.*;
|
import com.engine.salary.entity.taxdeclaration.dto.*;
|
||||||
import com.engine.salary.entity.taxdeclaration.param.*;
|
import com.engine.salary.entity.taxdeclaration.param.*;
|
||||||
import com.engine.salary.entity.taxdeclaration.po.*;
|
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.salarysob.IncomeCategoryEnum;
|
||||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
||||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||||
|
|
@ -91,6 +96,10 @@ public class TaxDeclareRecordWrapper extends Service {
|
||||||
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
|
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);
|
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);
|
List<TaxReportColumnPO> taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()));
|
||||||
return taxReportColumns;
|
//当前税款所属期报送成功且状态正常的人员
|
||||||
|
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) {
|
public void add(TaxDeclareRecordDetailSaveParam param) {
|
||||||
|
getTaxDeclarationValueService(user).save(param);
|
||||||
|
}
|
||||||
|
|
||||||
TaxDeclarationValuePO build = TaxDeclarationValuePO.builder()
|
/**
|
||||||
.id(IdGenerator.generate())
|
* 编辑
|
||||||
.taxDeclarationId(param.getTaxDeclarationId())
|
* @param param
|
||||||
.taxDeclareRecordId(param.getTaxDeclareRecordId())
|
*/
|
||||||
.employeeId(param.getEmployeeId())
|
public void edit(TaxDeclareRecordDetailSaveParam param) {
|
||||||
.employeeType(param.getEmployeeType())
|
getTaxDeclarationValueService(user).edit(param);
|
||||||
.resultValue(param.getTaxReportColumnValues())
|
}
|
||||||
.createTime(new Date())
|
|
||||||
.updateTime(new Date())
|
public TaxDeclareRecordDetailFormDTO detailInfo(Long id) {
|
||||||
.creator((long) user.getUID())
|
TaxDeclarationValuePO declarationValuePO = getTaxDeclarationValueService(user).getById(id);
|
||||||
.deleteType(0)
|
TaxDeclarationPO taxDeclarationPO = getTaxDeclarationService(user).getById(declarationValuePO.getTaxDeclarationId());
|
||||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
|
||||||
|
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();
|
.build();
|
||||||
List<TaxDeclarationValuePO> objects = new ArrayList<>();
|
|
||||||
objects.add(build);
|
|
||||||
getTaxDeclarationValueService(user).batchSave(objects);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue