个税对接,个税申报接口
This commit is contained in:
parent
50658012a1
commit
dc63897165
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar2(10),
|
||||
tax_agent_id number,
|
||||
salary_month varchar2(10),
|
||||
tax_cycle varchar2(10),
|
||||
salary_month date,
|
||||
tax_cycle date,
|
||||
remark varchar2(1000),
|
||||
request_id varchar2(100),
|
||||
tax_declare_type number,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar2(10),
|
||||
tax_agent_id number,
|
||||
salary_month varchar2(10),
|
||||
tax_cycle varchar2(10),
|
||||
salary_month date,
|
||||
tax_cycle date,
|
||||
remark varchar2(1000),
|
||||
request_id varchar2(100),
|
||||
tax_declare_type number,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar2(10),
|
||||
tax_agent_id number,
|
||||
salary_month varchar2(10),
|
||||
tax_cycle varchar2(10),
|
||||
salary_month date,
|
||||
tax_cycle date,
|
||||
remark varchar2(1000),
|
||||
request_id varchar2(100),
|
||||
tax_declare_type number,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0 comment '是否删除' ,
|
||||
tenant_key varchar(10) comment '租户KEY' ,
|
||||
tax_agent_id bigint comment '个税扣缴义务人id' ,
|
||||
salary_month varchar(10) comment '薪资所属月' ,
|
||||
tax_cycle varchar(10) comment '税款所属期' ,
|
||||
salary_month datetime comment '薪资所属月' ,
|
||||
tax_cycle datetime comment '税款所属期' ,
|
||||
remark varchar(1000) comment '备注' ,
|
||||
request_id varchar(100) comment '供应商第三方系统返回的requestid' ,
|
||||
tax_declare_type tinyint comment '申报类型' ,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar2(10),
|
||||
tax_agent_id number,
|
||||
salary_month varchar2(10),
|
||||
tax_cycle varchar2(10),
|
||||
salary_month date,
|
||||
tax_cycle date,
|
||||
remark varchar2(1000),
|
||||
request_id varchar2(100),
|
||||
tax_declare_type number,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar(10),
|
||||
tax_agent_id bigint,
|
||||
salary_month varchar(10),
|
||||
tax_cycle varchar(10),
|
||||
salary_month timestamp,
|
||||
tax_cycle timestamp,
|
||||
remark varchar(1000),
|
||||
request_id varchar(100),
|
||||
tax_declare_type smallint,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key nvarchar(10),
|
||||
tax_agent_id bigint,
|
||||
salary_month nvarchar(10),
|
||||
tax_cycle nvarchar(10),
|
||||
salary_month datetime,
|
||||
tax_cycle datetime,
|
||||
remark nvarchar(1000),
|
||||
request_id nvarchar(100),
|
||||
tax_declare_type tinyint,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ create table hrsa_tax_declare_record
|
|||
delete_type int default 0,
|
||||
tenant_key varchar2(10),
|
||||
tax_agent_id number,
|
||||
salary_month varchar2(10),
|
||||
tax_cycle varchar2(10),
|
||||
salary_month date,
|
||||
tax_cycle date,
|
||||
remark varchar2(1000),
|
||||
request_id varchar2(100),
|
||||
tax_declare_type number,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.engine.salary.common;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 月份范围
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/22 1:53 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class YearMonthRange {
|
||||
|
||||
//开始月份
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Date startMonth;
|
||||
|
||||
//开始月份
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Date endMonth;
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import com.engine.salary.util.valid.DataCheck;
|
|||
import lombok.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -31,8 +32,14 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam {
|
|||
//人员姓名")
|
||||
private String employeeName;
|
||||
|
||||
/**
|
||||
* 税款所属期
|
||||
*/
|
||||
private Date taxCycle;
|
||||
|
||||
//个税扣缴义务人")
|
||||
private Long taxAgentId;
|
||||
private List<Long> taxAgentIds;
|
||||
|
||||
//分部
|
||||
private List<Long> subcompanyIds;
|
||||
|
|
@ -48,8 +55,8 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam {
|
|||
* 状态
|
||||
* @see SalaryEmployeeStatusEnum
|
||||
*/
|
||||
|
||||
private SalaryEmployeeStatusEnum status;
|
||||
|
||||
//状态(多选)
|
||||
private List<String> statuses;
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,11 @@ public class SalaryAcctEmployeePO {
|
|||
@SalaryFormulaVar(defaultLabel = "薪资所属月", labelId = 86321, dataType = "string")
|
||||
private Date salaryMonth;
|
||||
|
||||
/**
|
||||
* 税款所属期
|
||||
*/
|
||||
private Date taxCycle;
|
||||
|
||||
/**
|
||||
* 租户key
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
package com.engine.salary.entity.salaryacct.po;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 薪资核算记录对应的个税扣缴义务人
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: 2022/7/29 9:40
|
||||
* @version:v1.0
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
// "hrsa_acct_tax_agent")
|
||||
public class SalaryAcctTaxAgentPO {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 薪资核算记录的id
|
||||
*/
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
/**
|
||||
* 收入所得项目
|
||||
*/
|
||||
private Integer incomeCategory;
|
||||
|
||||
/**
|
||||
* 个税扣缴义务人的id
|
||||
*/
|
||||
private Long taxAgentId;
|
||||
|
||||
/**
|
||||
* 薪资所属月
|
||||
*/
|
||||
private Date salaryMonth;
|
||||
|
||||
/**
|
||||
* 税款所属期
|
||||
*/
|
||||
private Date taxCycle;
|
||||
|
||||
/**
|
||||
* 租户key
|
||||
*/
|
||||
private String tenantKey;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private Long creator;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Integer deleteType;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
|
|
@ -1,88 +1,86 @@
|
|||
//package com.engine.salary.entity.taxdeclaration.bo;
|
||||
//
|
||||
//import com.engine.salary.entity.taxdeclaration.dto.AbnormalEmployeeListDTO;
|
||||
//import com.engine.salary.entity.taxdeclaration.po.TaxDeclareEmployeePO;
|
||||
//import com.google.common.collect.Lists;
|
||||
//import com.weaver.hrm.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
//import com.weaver.hrm.salary.entity.extemployee.po.ExtEmployeePO;
|
||||
//import com.weaver.hrm.salary.enums.employeedeclare.CardTypeEnum;
|
||||
//import com.weaver.hrm.salary.enums.employeedeclare.DeclareStatusEnum;
|
||||
//import com.weaver.hrm.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
//import com.weaver.hrm.salary.util.SalaryEntityUtil;
|
||||
//import com.weaver.hrm.salary.util.SalaryEnumUtil;
|
||||
//import com.weaver.hrm.salary.util.SalaryI18nUtil;
|
||||
//import com.weaver.teams.domain.hr.SimpleUserInfo;
|
||||
//import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
//import org.apache.commons.collections4.CollectionUtils;
|
||||
//
|
||||
//import java.util.Collections;
|
||||
//import java.util.List;
|
||||
//import java.util.Map;
|
||||
//import java.util.Objects;
|
||||
//import java.util.function.Function;
|
||||
//import java.util.stream.Collectors;
|
||||
//
|
||||
///**
|
||||
// * @description: 个税申报明细表中的人员
|
||||
// * @author: xiajun
|
||||
// * @modified By: xiajun
|
||||
// * @date: Created in 2022/11/10 4:20 PM
|
||||
// * @version:v1.0
|
||||
// */
|
||||
//public class TaxDeclareEmployeeBO {
|
||||
//
|
||||
// public static List<AbnormalEmployeeListDTO> convert2AbnormalEmployee(List<TaxDeclareEmployeePO> taxDeclareEmployees,
|
||||
// List<EmployeeDeclarePO> employeeDeclares,
|
||||
// List<SimpleEmployee> simpleEmployees,
|
||||
// List<SimpleUserInfo> simpleUserInfos,
|
||||
// List<ExtEmployeePO> extEmployees) {
|
||||
// if (CollectionUtils.isEmpty(taxDeclareEmployees)) {
|
||||
// return Collections.emptyList();
|
||||
// }
|
||||
// List<AbnormalEmployeeListDTO> abnormalEmployeeList = Lists.newArrayList();
|
||||
// Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
|
||||
// Map<Long, SimpleEmployee> simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId);
|
||||
// Map<Long, SimpleUserInfo> simpleUserInfoMap = simpleUserInfos.stream()
|
||||
// .filter(simpleUserInfo -> Objects.nonNull(simpleUserInfo) && Objects.nonNull(simpleUserInfo.getUser()))
|
||||
// .collect(Collectors.toMap(simpleUserInfo -> simpleUserInfo.getUser().getId(), Function.identity(), (a, b) -> a));
|
||||
// Map<Long, ExtEmployeePO> extEmployeePOMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmployeePO::getId);
|
||||
// for (TaxDeclareEmployeePO taxDeclareEmployee : taxDeclareEmployees) {
|
||||
// AbnormalEmployeeListDTO abnormalEmployeeListDTO = new AbnormalEmployeeListDTO()
|
||||
// .setId(taxDeclareEmployee.getEmployeeId())
|
||||
// .setEmployeeId(taxDeclareEmployee.getEmployeeId())
|
||||
// .setEmployeeType(taxDeclareEmployee.getEmployeeType());
|
||||
// EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
// if (employeeDeclare != null) {
|
||||
// DeclareStatusEnum declareStatusEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDeclareStatus(), DeclareStatusEnum.class);
|
||||
// abnormalEmployeeListDTO
|
||||
// .setEmployeeName(employeeDeclare.getEmployeeName())
|
||||
// .setJobNum(employeeDeclare.getJobNum())
|
||||
// .setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
// .setCardNum(employeeDeclare.getCardNum())
|
||||
// .setDeclareStatus(declareStatusEnum)
|
||||
// .setDeclareStatusDesc(declareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(declareStatusEnum.getLabelId(), declareStatusEnum.getDefaultLabel()));
|
||||
// } else if (Objects.equals(taxDeclareEmployee.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())) {
|
||||
// SimpleEmployee simpleEmployee = simpleEmployeeMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
// SimpleUserInfo simpleUserInfo = simpleUserInfoMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
// abnormalEmployeeListDTO
|
||||
// .setEmployeeName(simpleEmployee.getUsername())
|
||||
// .setJobNum(simpleEmployee.getJobNum())
|
||||
// .setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
// .setCardNum(simpleUserInfo == null ? "" : simpleUserInfo.getIdNo())
|
||||
// .setDeclareStatus(null)
|
||||
// .setDeclareStatusDesc(SalaryI18nUtil.getI18nLabel(177863, "报送人员列表中无此人员"));
|
||||
// } else {
|
||||
// ExtEmployeePO extEmployee = extEmployeePOMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
// abnormalEmployeeListDTO
|
||||
// .setEmployeeName(extEmployee.getUsername())
|
||||
// .setJobNum("")
|
||||
// .setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
// .setCardNum(extEmployee.getCardNum())
|
||||
// .setDeclareStatus(null)
|
||||
// .setDeclareStatusDesc(SalaryI18nUtil.getI18nLabel(177863, "报送人员列表中无此人员"));
|
||||
// }
|
||||
// abnormalEmployeeList.add(abnormalEmployeeListDTO);
|
||||
// }
|
||||
// return abnormalEmployeeList;
|
||||
// }
|
||||
//}
|
||||
package com.engine.salary.entity.taxdeclaration.bo;
|
||||
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
import com.engine.salary.entity.extemp.po.ExtEmpPO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.AbnormalEmployeeListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareEmployeePO;
|
||||
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
|
||||
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryEnumUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description: 个税申报明细表中的人员
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/10 4:20 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class TaxDeclareEmployeeBO {
|
||||
|
||||
public static List<AbnormalEmployeeListDTO> convert2AbnormalEmployee(List<TaxDeclareEmployeePO> taxDeclareEmployees,
|
||||
List<EmployeeDeclarePO> employeeDeclares,
|
||||
List<DataCollectionEmployee> simpleEmployees,
|
||||
List<DataCollectionEmployee> simpleUserInfos,
|
||||
List<ExtEmpPO> extEmployees) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareEmployees)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<AbnormalEmployeeListDTO> abnormalEmployeeList = Lists.newArrayList();
|
||||
Map<Long, EmployeeDeclarePO> employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId);
|
||||
Map<Long, DataCollectionEmployee> simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId);
|
||||
Map<Long, DataCollectionEmployee> simpleUserInfoMap = simpleUserInfos.stream()
|
||||
.collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, Function.identity(), (a, b) -> a));
|
||||
Map<Long, ExtEmpPO> extEmployeePOMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmpPO::getId);
|
||||
for (TaxDeclareEmployeePO taxDeclareEmployee : taxDeclareEmployees) {
|
||||
AbnormalEmployeeListDTO abnormalEmployeeListDTO = new AbnormalEmployeeListDTO()
|
||||
.setId(taxDeclareEmployee.getEmployeeId())
|
||||
.setEmployeeId(taxDeclareEmployee.getEmployeeId())
|
||||
.setEmployeeType(taxDeclareEmployee.getEmployeeType());
|
||||
EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
if (employeeDeclare != null) {
|
||||
DeclareStatusEnum declareStatusEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDeclareStatus(), DeclareStatusEnum.class);
|
||||
abnormalEmployeeListDTO
|
||||
.setEmployeeName(employeeDeclare.getEmployeeName())
|
||||
.setJobNum(employeeDeclare.getJobNum())
|
||||
.setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
.setCardNum(employeeDeclare.getCardNum())
|
||||
.setDeclareStatus(declareStatusEnum)
|
||||
.setDeclareStatusDesc(declareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(declareStatusEnum.getLabelId(), declareStatusEnum.getDefaultLabel()));
|
||||
} else if (Objects.equals(taxDeclareEmployee.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())) {
|
||||
DataCollectionEmployee simpleEmployee = simpleEmployeeMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
DataCollectionEmployee simpleUserInfo = simpleUserInfoMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
abnormalEmployeeListDTO
|
||||
.setEmployeeName(simpleEmployee.getUsername())
|
||||
.setJobNum(simpleEmployee.getWorkcode())
|
||||
.setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
.setCardNum(simpleUserInfo == null ? "" : simpleUserInfo.getIdNo())
|
||||
.setDeclareStatus(null)
|
||||
.setDeclareStatusDesc(SalaryI18nUtil.getI18nLabel(177863, "报送人员列表中无此人员"));
|
||||
} else {
|
||||
ExtEmpPO extEmployee = extEmployeePOMap.get(taxDeclareEmployee.getEmployeeId());
|
||||
abnormalEmployeeListDTO
|
||||
.setEmployeeName(extEmployee.getUsername())
|
||||
.setJobNum("")
|
||||
.setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()))
|
||||
.setCardNum(extEmployee.getIdNo())
|
||||
.setDeclareStatus(null)
|
||||
.setDeclareStatusDesc(SalaryI18nUtil.getI18nLabel(177863, "报送人员列表中无此人员"));
|
||||
}
|
||||
abnormalEmployeeList.add(abnormalEmployeeListDTO);
|
||||
}
|
||||
return abnormalEmployeeList;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
package com.engine.salary.entity.taxdeclaration.dto;
|
||||
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表信息
|
||||
|
|
@ -22,13 +25,46 @@ import java.time.YearMonth;
|
|||
@AllArgsConstructor
|
||||
public class TaxDeclarationInfoDTO {
|
||||
|
||||
//薪资所属月")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private YearMonth salaryMonth;
|
||||
|
||||
//个税扣缴义务人id")
|
||||
@ApiModelProperty("薪资所属月")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Date salaryMonth;
|
||||
|
||||
@ApiModelProperty("税款所属期")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Date taxCycle;
|
||||
|
||||
@ApiModelProperty("个税扣缴义务人id")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long taxAgentId;
|
||||
|
||||
//个税扣缴义务人名称")
|
||||
@ApiModelProperty("个税扣缴义务人名称")
|
||||
private String taxAgentName;
|
||||
|
||||
@ApiModelProperty("申报类型")
|
||||
private TaxDeclareTypeEnum declareType;
|
||||
|
||||
@ApiModelProperty("申报类型描述")
|
||||
private String declareTypeDesc;
|
||||
|
||||
@ApiModelProperty("申报状态")
|
||||
private TaxDeclareStatusEnum declareStatus;
|
||||
|
||||
@ApiModelProperty("申报状态描述")
|
||||
private String declareStatusDesc;
|
||||
|
||||
@ApiModelProperty("申报失败的错误信息")
|
||||
private String declareErrorMsg;
|
||||
|
||||
@ApiModelProperty("是否展示图标")
|
||||
private boolean displayIcon;
|
||||
|
||||
@ApiModelProperty("申报失败的人数")
|
||||
private Integer declareFailSize;
|
||||
|
||||
@ApiModelProperty("校验异常的人数")
|
||||
private Integer abnormalSize;
|
||||
|
||||
@ApiModelProperty("已缴金额")
|
||||
private String taxPaidAmount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,11 @@ import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
|||
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 个税申报记录列表
|
||||
* @author: xiajun
|
||||
|
|
@ -30,10 +31,10 @@ public class TaxDeclareRecordListDTO {
|
|||
private String taxAgentName;
|
||||
|
||||
//薪资所属月")
|
||||
private String salaryMonth;
|
||||
private Date salaryMonth;
|
||||
|
||||
//税款所属期")
|
||||
private String taxCycle;
|
||||
private Date taxCycle;
|
||||
|
||||
//申报类型")
|
||||
private TaxDeclareTypeEnum taxDeclareType;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,11 @@ package com.engine.salary.entity.taxdeclaration.param;
|
|||
|
||||
import com.engine.salary.common.BaseQueryParam;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 个税申报-异常数据-未报送人员列表
|
||||
* @author: xiajun
|
||||
|
|
@ -29,5 +30,5 @@ public class AbnormalEmployeeListQueryParam extends BaseQueryParam {
|
|||
|
||||
@JsonIgnore
|
||||
//税款所属期")
|
||||
private String taxCycle;
|
||||
private Date taxCycle;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.engine.salary.entity.taxdeclaration.param;
|
||||
|
||||
import com.engine.salary.common.BaseQueryParam;
|
||||
import lombok.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.YearMonth;
|
||||
|
||||
|
|
@ -28,4 +31,7 @@ public class TaxDeclarationListQueryParam extends BaseQueryParam {
|
|||
private String fromSalaryMonthStr;
|
||||
|
||||
private String endSalaryMonthStr;
|
||||
|
||||
//个税扣缴义务人菜单")
|
||||
private String taxAgentName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,6 +82,12 @@ public class TaxDeclarationPO {
|
|||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
/**
|
||||
* 查看控制
|
||||
*/
|
||||
private Integer controlView;
|
||||
|
||||
//税款所属期
|
||||
LocalDateRange salaryMonths;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
package com.engine.salary.entity.taxdeclaration.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
|
|
@ -15,6 +19,9 @@ import java.util.Date;
|
|||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
//hrsa_tax_declare_record")
|
||||
//个税申报记录")
|
||||
public class TaxDeclareRecordPO implements Serializable {
|
||||
|
|
@ -23,89 +30,82 @@ public class TaxDeclareRecordPO implements Serializable {
|
|||
/**
|
||||
* 主键id
|
||||
*/
|
||||
//主键id")
|
||||
private Long id;
|
||||
/**
|
||||
* 个税扣缴义务人id
|
||||
*/
|
||||
//个税扣缴义务人")
|
||||
private Long taxAgentId;
|
||||
/**
|
||||
* 薪资所属月
|
||||
*/
|
||||
//薪资所属月")
|
||||
private String salaryMonth;
|
||||
private Date salaryMonth;
|
||||
/**
|
||||
* 税款所属期
|
||||
*/
|
||||
//税款所属期")
|
||||
private String taxCycle;
|
||||
private Date taxCycle;
|
||||
/**
|
||||
* 申报类型
|
||||
*/
|
||||
//申报类型")
|
||||
private Integer taxDeclareType;
|
||||
/**
|
||||
* 申报状态
|
||||
*/
|
||||
//申报状态")
|
||||
private Integer taxDeclareStatus;
|
||||
/**
|
||||
* 申报失败的错误信息
|
||||
*/
|
||||
//申报失败的错误信息")
|
||||
private String taxDeclareErrorMsg;
|
||||
/**
|
||||
* 请求的requestId
|
||||
*/
|
||||
//请求的requestId")
|
||||
private String requestId;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
//备注")
|
||||
private String remark;
|
||||
|
||||
//应缴金额")
|
||||
//应缴金额
|
||||
private String taxPayAmount;
|
||||
|
||||
//实缴总额")
|
||||
//实缴总额
|
||||
private String taxPaidAmount;
|
||||
|
||||
//实缴税额(不含滞纳金等)")
|
||||
//实缴税额(不含滞纳金等)
|
||||
private String taxPurePaidAmount;
|
||||
|
||||
//申报人数")
|
||||
//申报人数
|
||||
private Integer personNum;
|
||||
|
||||
/**
|
||||
* 个税申报表的待刷新数据的标识
|
||||
*/
|
||||
//个税申报表的待刷新数据的标识")
|
||||
private Integer displayUpdateIcon;
|
||||
/**
|
||||
* 租户key
|
||||
*/
|
||||
//租户key", ignore = true)
|
||||
private String tenantKey;
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
//创建人id", ignore = true)
|
||||
private Long creator;
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
//是否删除", ignore = true)
|
||||
private Integer deleteType;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
//创建时间", ignore = true)
|
||||
private Date createTime;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
//更新时间", ignore = true)
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
private Collection<Long> ids;
|
||||
private Collection<Long> taxAgentIds;
|
||||
private Date startDate;
|
||||
private Date endDate;
|
||||
private Date salaryMonthStartDate;
|
||||
private Date salaryMonthEndDate;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.mapper.salaryacct;
|
|||
|
||||
import com.engine.salary.common.LocalDateRange;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctTaxAgentPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
|
|
@ -78,4 +79,12 @@ public interface SalaryAcctRecordMapper {
|
|||
void updateLockSalaryItemIds(SalaryAcctRecordPO salaryAcctRecord);
|
||||
|
||||
List<SalaryAcctRecordPO> getBackCalcRecordByIds(@Param("collection") Set<Long> salaryAcctIds);
|
||||
|
||||
|
||||
/**
|
||||
* 获取核算记录和扣缴义务人对应关系
|
||||
* @param salaryAcctIds
|
||||
* @return
|
||||
*/
|
||||
List<SalaryAcctTaxAgentPO> listAcctTaxAgent(Collection<Long> salaryAcctIds);
|
||||
}
|
||||
|
|
@ -15,7 +15,8 @@
|
|||
<result column="delete_type" property="deleteType"/>
|
||||
<result column="tenant_key" property="tenantKey"/>
|
||||
<result column="back_calc_status" property="backCalcStatus"/>
|
||||
<result column="lock_salary_item_ids" property="lockSalaryItemIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
|
||||
<result column="lock_salary_item_ids" property="lockSalaryItemIds"
|
||||
typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -148,7 +149,7 @@
|
|||
<include refid="baseColumns"/>
|
||||
FROM hrsa_salary_acct_record t
|
||||
where delete_type = 0
|
||||
AND back_calc_status = 1
|
||||
AND back_calc_status = 1
|
||||
<if test="collection != null and collection.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="collection" open="(" item="id" separator="," close=")">
|
||||
|
|
@ -422,4 +423,24 @@
|
|||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<select id="listAcctTaxAgent" resultType="com.engine.salary.entity.salaryacct.po.SalaryAcctTaxAgentPO">
|
||||
select record.id as salaryAcctRecordId,
|
||||
sob.income_category as incomeCategory,
|
||||
sob.tax_agent_id as taxAgentId,
|
||||
record.salary_month as salaryMonth,
|
||||
record.tax_cycle as taxCycle
|
||||
FROM hrsa_salary_acct_record record
|
||||
left join hrsa_salary_sob sob
|
||||
on record.salary_sob_id = sob.id
|
||||
where record.delete_type = 0 and sob.delete_type = 0
|
||||
<if test="salaryAcctRecordIds != null and salaryAcctRecordIds.size()>0">
|
||||
AND record.id IN
|
||||
<foreach collection="salaryAcctRecordIds" open="(" item="salaryAcctRecordId" separator="," close=")">
|
||||
#{salaryAcctRecordId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package com.engine.salary.mapper.taxagent;
|
||||
|
||||
/**
|
||||
* @description: 个税申报
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/2 5:46 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public interface TaxDeclareRecordMapper {
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
package com.engine.salary.mapper.taxdeclaration;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationEmployeeDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareEmployeePO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
|
|
@ -70,4 +72,12 @@ public interface TaxDeclarationDetailMapper {
|
|||
List<TaxDeclarationDetailPO> listAll();
|
||||
|
||||
int batchUpdate(@Param("collection") List<TaxDeclarationDetailPO> taxDeclarationDetailPos);
|
||||
|
||||
List<TaxDeclareEmployeePO> listPage4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
List<TaxDeclareEmployeePO> list4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
List<TaxDeclareEmployeePO> listPage4NoValueByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
List<TaxDeclareEmployeePO> list4NoValueByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
package com.engine.salary.mapper.taxdeclaration;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface TaxDeclareRecordMapper {
|
||||
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listAll();
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listSome(TaxDeclareRecordPO taxDeclareRecord);
|
||||
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
TaxDeclareRecordPO getById(Long id);
|
||||
|
||||
/**
|
||||
* 新增,忽略null字段
|
||||
*
|
||||
* @param taxDeclareRecord 新增的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int insertIgnoreNull(TaxDeclareRecordPO taxDeclareRecord);
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
*
|
||||
* @param taxDeclareRecord
|
||||
*/
|
||||
void batchInsert(@Param("collection") List<TaxDeclareRecordPO> taxDeclareRecord);
|
||||
|
||||
/**
|
||||
* 修改,修改所有字段
|
||||
*
|
||||
* @param taxDeclareRecord 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int update(TaxDeclareRecordPO taxDeclareRecord);
|
||||
|
||||
/**
|
||||
* 修改,忽略null字段
|
||||
*
|
||||
* @param taxDeclareRecord 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int updateIgnoreNull(TaxDeclareRecordPO taxDeclareRecord);
|
||||
|
||||
/**
|
||||
* 删除记录
|
||||
*
|
||||
* @param taxDeclareRecord 待删除的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int delete(TaxDeclareRecordPO taxDeclareRecord);
|
||||
|
||||
/**
|
||||
* 批量删除记录
|
||||
* @param ids 主键id集合
|
||||
*/
|
||||
void deleteByIds(@Param("ids") Collection<Long> ids);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,536 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper">
|
||||
<resultMap id="BaseResultMap" type="com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO">
|
||||
<result column="id" property="id"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="creator" property="creator"/>
|
||||
<result column="delete_type" property="deleteType"/>
|
||||
<result column="tenant_key" property="tenantKey"/>
|
||||
<result column="tax_agent_id" property="taxAgentId"/>
|
||||
<result column="salary_month" property="salaryMonth"/>
|
||||
<result column="tax_cycle" property="taxCycle"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<result column="request_id" property="requestId"/>
|
||||
<result column="tax_declare_type" property="taxDeclareType"/>
|
||||
<result column="tax_declare_status" property="taxDeclareStatus"/>
|
||||
<result column="display_update_icon" property="displayUpdateIcon"/>
|
||||
<result column="tax_pay_amount" property="taxPayAmount"/>
|
||||
<result column="person_num" property="personNum"/>
|
||||
<result column="tax_declare_error_msg" property="taxDeclareErrorMsg"/>
|
||||
<result column="tax_paid_amount" property="taxPaidAmount"/>
|
||||
<result column="tax_pure_paid_amount" property="taxPurePaidAmount"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
<sql id="baseColumns">
|
||||
t
|
||||
.
|
||||
id
|
||||
, t.create_time
|
||||
, t.update_time
|
||||
, t.creator
|
||||
, t.delete_type
|
||||
, t.tenant_key
|
||||
, t.tax_agent_id
|
||||
, t.salary_month
|
||||
, t.tax_cycle
|
||||
, t.remark
|
||||
, t.request_id
|
||||
, t.tax_declare_type
|
||||
, t.tax_declare_status
|
||||
, t.display_update_icon
|
||||
, t.tax_pay_amount
|
||||
, t.person_num
|
||||
, t.tax_declare_error_msg
|
||||
, t.tax_paid_amount
|
||||
, t.tax_pure_paid_amount
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
<select id="listAll" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_tax_declare_record t
|
||||
WHERE delete_type = 0
|
||||
ORDER BY tax_cycle DESC
|
||||
</select>
|
||||
|
||||
<!-- 根据主键获取单条记录 -->
|
||||
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_tax_declare_record t
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</select>
|
||||
|
||||
<!-- 条件查询 -->
|
||||
<select id="listSome" resultMap="BaseResultMap"
|
||||
parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_tax_declare_record t
|
||||
WHERE delete_type = 0
|
||||
<if test="id != null">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
AND create_time = #{createTime}
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
AND update_time = #{updateTime}
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
AND creator = #{creator}
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
AND delete_type = #{deleteType}
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
AND tenant_key = #{tenantKey}
|
||||
</if>
|
||||
<if test="taxAgentId != null">
|
||||
AND tax_agent_id = #{taxAgentId}
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
AND salary_month = #{salaryMonth}
|
||||
</if>
|
||||
<if test="taxCycle != null">
|
||||
AND tax_cycle = #{taxCycle}
|
||||
</if>
|
||||
<if test="remark != null">
|
||||
AND remark = #{remark}
|
||||
</if>
|
||||
<if test="requestId != null">
|
||||
AND request_id = #{requestId}
|
||||
</if>
|
||||
<if test="taxDeclareType != null">
|
||||
AND tax_declare_type = #{taxDeclareType}
|
||||
</if>
|
||||
<if test="taxDeclareStatus != null">
|
||||
AND tax_declare_status = #{taxDeclareStatus}
|
||||
</if>
|
||||
<if test="displayUpdateIcon != null">
|
||||
AND display_update_icon = #{displayUpdateIcon}
|
||||
</if>
|
||||
<if test="taxPayAmount != null">
|
||||
AND tax_pay_amount = #{taxPayAmount}
|
||||
</if>
|
||||
<if test="personNum != null">
|
||||
AND person_num = #{personNum}
|
||||
</if>
|
||||
<if test="taxDeclareErrorMsg != null">
|
||||
AND tax_declare_error_msg = #{taxDeclareErrorMsg}
|
||||
</if>
|
||||
<if test="taxPaidAmount != null">
|
||||
AND tax_paid_amount = #{taxPaidAmount}
|
||||
</if>
|
||||
<if test="taxPurePaidAmount != null">
|
||||
AND tax_pure_paid_amount = #{taxPurePaidAmount}
|
||||
</if>
|
||||
<if test="ids != null and ids.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="taxAgentIds != null and taxAgentIds.size()>0">
|
||||
AND tax_agent_id IN
|
||||
<foreach collection="taxAgentIds" open="(" item="taxAgentId" separator="," close=")">
|
||||
#{taxAgentId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="startDate != null">
|
||||
AND tax_cycle <![CDATA[ >= ]]> #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
AND tax_cycle <![CDATA[ <= ]]> #{endDate}
|
||||
</if>
|
||||
ORDER BY tax_cycle DESC
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 插入不为NULL的字段 -->
|
||||
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO">
|
||||
INSERT INTO hrsa_tax_declare_record
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
<if test="id != null">
|
||||
id,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator,
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type,
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
tenant_key,
|
||||
</if>
|
||||
<if test="taxAgentId != null">
|
||||
tax_agent_id,
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
salary_month,
|
||||
</if>
|
||||
<if test="taxCycle != null">
|
||||
tax_cycle,
|
||||
</if>
|
||||
<if test="remark != null">
|
||||
remark,
|
||||
</if>
|
||||
<if test="requestId != null">
|
||||
request_id,
|
||||
</if>
|
||||
<if test="taxDeclareType != null">
|
||||
tax_declare_type,
|
||||
</if>
|
||||
<if test="taxDeclareStatus != null">
|
||||
tax_declare_status,
|
||||
</if>
|
||||
<if test="displayUpdateIcon != null">
|
||||
display_update_icon,
|
||||
</if>
|
||||
<if test="taxPayAmount != null">
|
||||
tax_pay_amount,
|
||||
</if>
|
||||
<if test="personNum != null">
|
||||
person_num,
|
||||
</if>
|
||||
<if test="taxDeclareErrorMsg != null">
|
||||
tax_declare_error_msg,
|
||||
</if>
|
||||
<if test="taxPaidAmount != null">
|
||||
tax_paid_amount,
|
||||
</if>
|
||||
<if test="taxPurePaidAmount != null">
|
||||
tax_pure_paid_amount,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
#{id},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
#{updateTime},
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
#{creator},
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
#{deleteType},
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="taxAgentId != null">
|
||||
#{taxAgentId},
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
#{salaryMonth},
|
||||
</if>
|
||||
<if test="taxCycle != null">
|
||||
#{taxCycle},
|
||||
</if>
|
||||
<if test="remark != null">
|
||||
#{remark},
|
||||
</if>
|
||||
<if test="requestId != null">
|
||||
#{requestId},
|
||||
</if>
|
||||
<if test="taxDeclareType != null">
|
||||
#{taxDeclareType},
|
||||
</if>
|
||||
<if test="taxDeclareStatus != null">
|
||||
#{taxDeclareStatus},
|
||||
</if>
|
||||
<if test="displayUpdateIcon != null">
|
||||
#{displayUpdateIcon},
|
||||
</if>
|
||||
<if test="taxPayAmount != null">
|
||||
#{taxPayAmount},
|
||||
</if>
|
||||
<if test="personNum != null">
|
||||
#{personNum},
|
||||
</if>
|
||||
<if test="taxDeclareErrorMsg != null">
|
||||
#{taxDeclareErrorMsg},
|
||||
</if>
|
||||
<if test="taxPaidAmount != null">
|
||||
#{taxPaidAmount},
|
||||
</if>
|
||||
<if test="taxPurePaidAmount != null">
|
||||
#{taxPurePaidAmount},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
||||
<insert id="batchInsert">
|
||||
|
||||
INSERT INTO hrsa_tax_declare_record
|
||||
(
|
||||
id,
|
||||
create_time,
|
||||
update_time,
|
||||
creator,
|
||||
delete_type,
|
||||
tenant_key,
|
||||
tax_agent_id,
|
||||
salary_month,
|
||||
tax_cycle,
|
||||
remark,
|
||||
request_id,
|
||||
tax_declare_type,
|
||||
tax_declare_status,
|
||||
display_update_icon,
|
||||
tax_pay_amount,
|
||||
person_num,
|
||||
tax_declare_error_msg,
|
||||
tax_paid_amount,
|
||||
tax_pure_paid_amount,
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
<foreach collection="collection" item="item" separator=",">
|
||||
#{item.id},
|
||||
#{item.createTime},
|
||||
#{item.updateTime},
|
||||
#{item.creator},
|
||||
#{item.deleteType},
|
||||
#{item.tenantKey},
|
||||
#{item.taxAgentId},
|
||||
#{item.salaryMonth},
|
||||
#{item.taxCycle},
|
||||
#{item.remark},
|
||||
#{item.requestId},
|
||||
#{item.taxDeclareType},
|
||||
#{item.taxDeclareStatus},
|
||||
#{item.displayUpdateIcon},
|
||||
#{item.taxPayAmount},
|
||||
#{item.personNum},
|
||||
#{item.taxDeclareErrorMsg},
|
||||
#{item.taxPaidAmount},
|
||||
#{item.taxPurePaidAmount},
|
||||
</foreach>
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
<insert id="batchInsert" databaseId="oracle">
|
||||
INSERT INTO hrsa_tax_declare_record (
|
||||
id,
|
||||
create_time,
|
||||
update_time,
|
||||
creator,
|
||||
delete_type,
|
||||
tenant_key,
|
||||
tax_agent_id,
|
||||
salary_month,
|
||||
tax_cycle,
|
||||
remark,
|
||||
request_id,
|
||||
tax_declare_type,
|
||||
tax_declare_status,
|
||||
display_update_icon,
|
||||
tax_pay_amount,
|
||||
person_num,
|
||||
tax_declare_error_msg,
|
||||
tax_paid_amount,
|
||||
tax_pure_paid_amount,
|
||||
)
|
||||
|
||||
<foreach collection="collection" item="item" separator="union all">
|
||||
select
|
||||
#{item.id,jdbcType=DOUBLE},
|
||||
#{item.createTime,jdbcType=DATE},
|
||||
#{item.updateTime,jdbcType=DATE},
|
||||
#{item.creator,jdbcType=DOUBLE},
|
||||
#{item.deleteType,jdbcType=INTEGER},
|
||||
#{item.tenantKey,jdbcType=VARCHAR},
|
||||
#{item.taxAgentId,jdbcType=DOUBLE},
|
||||
#{item.salaryMonth,jdbcType=DATE},
|
||||
#{item.taxCycle,jdbcType=DATE},
|
||||
#{item.remark,jdbcType=VARCHAR},
|
||||
#{item.requestId,jdbcType=DOUBLE},
|
||||
#{item.taxDeclareType,jdbcType=INTEGER},
|
||||
#{item.taxDeclareStatus,jdbcType=INTEGER},
|
||||
#{item.displayUpdateIcon,jdbcType=INTEGER},
|
||||
#{item.taxPayAmount,jdbcType=VARCHAR},
|
||||
#{item.personNum,jdbcType=INTEGER},
|
||||
#{item.taxDeclareErrorMsg,jdbcType=VARCHAR},
|
||||
#{item.taxPaidAmount,jdbcType=VARCHAR},
|
||||
#{item.taxPurePaidAmount,jdbcType=VARCHAR},
|
||||
from dual
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
<insert id="batchInsert" databaseId="sqlserver">
|
||||
<foreach collection="collection" item="item" separator=";">
|
||||
INSERT INTO hrsa_tax_declare_record (
|
||||
id,
|
||||
create_time,
|
||||
update_time,
|
||||
creator,
|
||||
delete_type,
|
||||
tenant_key,
|
||||
tax_agent_id,
|
||||
salary_month,
|
||||
tax_cycle,
|
||||
remark,
|
||||
request_id,
|
||||
tax_declare_type,
|
||||
tax_declare_status,
|
||||
display_update_icon,
|
||||
tax_pay_amount,
|
||||
person_num,
|
||||
tax_declare_error_msg,
|
||||
tax_paid_amount,
|
||||
tax_pure_paid_amount,
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.createTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.updateTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.creator,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.deleteType,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.tenantKey,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxAgentId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.salaryMonth,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxCycle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.remark,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.requestId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxDeclareType,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxDeclareStatus,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.displayUpdateIcon,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxPayAmount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.personNum,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxDeclareErrorMsg,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxPaidAmount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
#{item.taxPurePaidAmount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="update" parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO">
|
||||
UPDATE hrsa_tax_declare_record
|
||||
<set>
|
||||
create_time=#{createTime},
|
||||
update_time=#{updateTime},
|
||||
creator=#{creator},
|
||||
delete_type=#{deleteType},
|
||||
tenant_key=#{tenantKey},
|
||||
tax_agent_id=#{taxAgentId},
|
||||
salary_month=#{salaryMonth},
|
||||
tax_cycle=#{taxCycle},
|
||||
remark=#{remark},
|
||||
request_id=#{requestId},
|
||||
tax_declare_type=#{taxDeclareType},
|
||||
tax_declare_status=#{taxDeclareStatus},
|
||||
display_update_icon=#{displayUpdateIcon},
|
||||
tax_pay_amount=#{taxPayAmount},
|
||||
person_num=#{personNum},
|
||||
tax_declare_error_msg=#{taxDeclareErrorMsg},
|
||||
tax_paid_amount=#{taxPaidAmount},
|
||||
tax_pure_paid_amount=#{taxPurePaidAmount},
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 更新不为NULL的字段 -->
|
||||
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO">
|
||||
UPDATE hrsa_tax_declare_record
|
||||
<set>
|
||||
<if test="createTime != null">
|
||||
create_time=#{createTime},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
update_time=#{updateTime},
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator=#{creator},
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type=#{deleteType},
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
tenant_key=#{tenantKey},
|
||||
</if>
|
||||
<if test="taxAgentId != null">
|
||||
tax_agent_id=#{taxAgentId},
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
salary_month=#{salaryMonth},
|
||||
</if>
|
||||
<if test="taxCycle != null">
|
||||
tax_cycle=#{taxCycle},
|
||||
</if>
|
||||
<if test="remark != null">
|
||||
remark=#{remark},
|
||||
</if>
|
||||
<if test="requestId != null">
|
||||
request_id=#{requestId},
|
||||
</if>
|
||||
<if test="taxDeclareType != null">
|
||||
tax_declare_type=#{taxDeclareType},
|
||||
</if>
|
||||
<if test="taxDeclareStatus != null">
|
||||
tax_declare_status=#{taxDeclareStatus},
|
||||
</if>
|
||||
<if test="displayUpdateIcon != null">
|
||||
display_update_icon=#{displayUpdateIcon},
|
||||
</if>
|
||||
<if test="taxPayAmount != null">
|
||||
tax_pay_amount=#{taxPayAmount},
|
||||
</if>
|
||||
<if test="personNum != null">
|
||||
person_num=#{personNum},
|
||||
</if>
|
||||
<if test="taxDeclareErrorMsg != null">
|
||||
tax_declare_error_msg=#{taxDeclareErrorMsg},
|
||||
</if>
|
||||
<if test="taxPaidAmount != null">
|
||||
tax_paid_amount=#{taxPaidAmount},
|
||||
</if>
|
||||
<if test="taxPurePaidAmount != null">
|
||||
tax_pure_paid_amount=#{taxPurePaidAmount},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 根据主键删除记录 -->
|
||||
<delete id="delete">
|
||||
UPDATE hrsa_tax_declare_record
|
||||
SET delete_type=1
|
||||
WHERE id = #{id}
|
||||
AND delete_type = 0
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByIds">
|
||||
UPDATE hrsa_tax_declare_record
|
||||
SET delete_type = 1
|
||||
WHERE delete_type = 0
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -22,6 +22,8 @@ public interface ExtEmpService {
|
|||
|
||||
void delete(Collection<Long> ids);
|
||||
|
||||
List<ExtEmpPO> getExtEmpByIds(List<Long> ids);
|
||||
|
||||
DataCollectionEmployee getEmployeeById(Long id);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
//package com.engine.salary.service;
|
||||
//
|
||||
//import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
//
|
||||
//import java.util.Collection;
|
||||
//
|
||||
///**
|
||||
// * @description: 薪资核算
|
||||
// * @author: xiajun
|
||||
// * @modified By: xiajun
|
||||
// * @date: Created in 8/22/22 3:15 PM
|
||||
// * @version:v1.0
|
||||
// */
|
||||
//public interface SalaryAcctCalcService {
|
||||
//
|
||||
// /**
|
||||
// * 按薪资核算记录id进行核算
|
||||
// *
|
||||
// * @param salaryAcctRecordId
|
||||
// * @param simpleEmployee
|
||||
// */
|
||||
// void calcByRecordId(Long salaryAcctRecordId, DataCollectionEmployee simpleEmployee) throws Exception;
|
||||
//
|
||||
// /**
|
||||
// * 按薪资核算人员id进行核算
|
||||
// *
|
||||
// * @param salaryAcctEmployeeIds
|
||||
// * @param simpleEmployee
|
||||
// */
|
||||
// void calcByEmployeeIds(Long salaryAcctRecordId, Collection<Long> salaryAcctEmployeeIds, DataCollectionEmployee simpleEmployee) throws Exception;
|
||||
//}
|
||||
|
|
@ -5,6 +5,7 @@ import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
|
|||
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctTaxAgentPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
|
@ -207,4 +208,13 @@ public interface SalaryAcctRecordService {
|
|||
|
||||
|
||||
List<SalaryAcctRecordPO> listSome(SalaryAcctRecordPO po);
|
||||
|
||||
/**
|
||||
* 根据薪资核算记录id查询关联的个税扣缴义务人
|
||||
*
|
||||
* @param salaryAcctRecordIds
|
||||
* @return
|
||||
*/
|
||||
List<SalaryAcctTaxAgentPO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,13 @@ public interface TaxDeclarationService {
|
|||
* @param taxDeclarationId
|
||||
*/
|
||||
void withDrawTaxDeclaration(Long taxDeclarationId);
|
||||
|
||||
/**
|
||||
* 删除个税申报表
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
*/
|
||||
void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds);
|
||||
|
||||
void saveBatch(List<TaxDeclarationPO> taxDeclarations);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表明细
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 9/28/22 9:41 AM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public interface TaxDeclarationValueService {
|
||||
|
||||
/**
|
||||
* 查询个税申报表明细
|
||||
*
|
||||
* @param page
|
||||
* @param taxDeclarationIds
|
||||
* @return
|
||||
*/
|
||||
PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds( Collection<Long> taxDeclarationIds);
|
||||
|
||||
/**
|
||||
* 查询个税申报表明细
|
||||
*
|
||||
* @param taxDeclarationIds
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclarationValuePO> listByTaxDeclarationIds(Collection<Long> taxDeclarationIds);
|
||||
|
||||
/**
|
||||
* 查询个税申报表明细
|
||||
*
|
||||
* @param taxDeclarationIds
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclarationValuePO> listByTaxDeclarationIdsNoDecrypt(Collection<Long> taxDeclarationIds);
|
||||
|
||||
/**
|
||||
* 个税申报表明细列表
|
||||
*
|
||||
* @param taxDeclarationValues
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
TaxDeclarationValueListDTO convert2List(TaxDeclarationPO taxDeclaration, List<TaxDeclarationValuePO> taxDeclarationValues);
|
||||
|
||||
/**
|
||||
* 批量保存
|
||||
*
|
||||
* @param taxDeclarationValues
|
||||
* @param tenantKey
|
||||
*/
|
||||
void batchSave(List<TaxDeclarationValuePO> taxDeclarationValues);
|
||||
|
||||
/**
|
||||
* 删除个税申报表明细
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
* @param tenantKey
|
||||
*/
|
||||
void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.dto.AbnormalEmployeeListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareEmployeePO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表明细中的人员
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/10 4:10 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public interface TaxDeclareEmployeeService {
|
||||
|
||||
/**
|
||||
* 查询个税申报表明细中未报送成功的人员
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
PageInfo<TaxDeclareEmployeePO> listPage4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 查询个税申报表明细中未报送成功的人员
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareEmployeePO> list4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 查询已报送但是没有申报数据的人员
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
PageInfo<TaxDeclareEmployeePO> listPage4NoValueByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 查询已报送但是没有申报数据的人员
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareEmployeePO> list4NoValueByParam(AbnormalEmployeeListQueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 转换成数据异常人员dto
|
||||
*
|
||||
* @param taxDeclareRecord
|
||||
* @param taxDeclareEmployees
|
||||
* @return
|
||||
*/
|
||||
List<AbnormalEmployeeListDTO> convert2AbnormalEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List<TaxDeclareEmployeePO> taxDeclareEmployees);
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.dto.FailEmployeeListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareFailPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报失败数据
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/30 1:31 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public interface TaxDeclareFailService {
|
||||
|
||||
/**
|
||||
* 根据个税申报记录id查询申报失败数据(分页)
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
* @return
|
||||
*/
|
||||
PageInfo<TaxDeclareFailPO> listPageByTaxDeclareRecordIds( Collection<Long> taxDeclareRecordIds);
|
||||
|
||||
/**
|
||||
* 根据个税申报记录id查询申报失败数据
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareFailPO> listByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds);
|
||||
|
||||
/**
|
||||
* 根据个税申报记录id删除申报失败数据
|
||||
*
|
||||
* @param taxDeclareRecordIds
|
||||
*/
|
||||
void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds);
|
||||
|
||||
/**
|
||||
* 转换成申报失败数据dto
|
||||
*
|
||||
* @param taxDeclareRecord
|
||||
* @param taxDeclareFails
|
||||
* @return
|
||||
*/
|
||||
List<FailEmployeeListDTO> convert2FailEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List<TaxDeclareFailPO> taxDeclareFails);
|
||||
}
|
||||
|
|
@ -1,11 +1,16 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.common.YearMonthRange;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationRateDTO;
|
||||
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.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报
|
||||
|
|
@ -24,164 +29,139 @@ public interface TaxDeclareRecordService {
|
|||
*/
|
||||
TaxDeclareRecordPO getById(Long id);
|
||||
|
||||
// /**
|
||||
// * 查询个税申报记录
|
||||
// *
|
||||
// * @param ids
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// List<TaxDeclareRecordPO> listByIds(Collection<Long> ids, String tenantKey);
|
||||
//
|
||||
// /**
|
||||
// * 查询个税申报记录
|
||||
// *
|
||||
// * @param taxCycleRange
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// List<TaxDeclareRecordPO> listByTaxCycleRange(YearMonthRange taxCycleRange, String tenantKey);
|
||||
//
|
||||
// /**
|
||||
// * 根据个税扣缴义务人id、税款所属期查询个税申报记录
|
||||
// *
|
||||
// * @param taxAgentIds
|
||||
// * @param taxCycle
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// List<TaxDeclareRecordPO> listByTaxCycleAndTaxAgentIds(YearMonth taxCycle, Collection<Long> taxAgentIds, String tenantKey);
|
||||
//
|
||||
// /**
|
||||
// * 根据个税扣缴义务人id、薪资所属月查询个税申报记录
|
||||
// *
|
||||
// * @param salaryMonth
|
||||
// * @param taxAgentIds
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// List<TaxDeclareRecordPO> listBySalaryMonthAndTaxAgentIds(YearMonth salaryMonth, Collection<Long> taxAgentIds, String tenantKey);
|
||||
//
|
||||
// /**
|
||||
// * 查询个税申报记录
|
||||
// *
|
||||
// * @param queryParam
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// Page<TaxDeclareRecordPO> listPageByParam(TaxDeclarationListQueryParam queryParam, Long employeeId, String tenantKey);
|
||||
//
|
||||
// /**
|
||||
// * 生成申报表
|
||||
// *
|
||||
// * @param saveParam
|
||||
// * @param employeeId
|
||||
// * @param tenantKey
|
||||
// */
|
||||
// void save(TaxDeclarationSaveParam saveParam, Long employeeId, String tenantKey);
|
||||
/**
|
||||
* 查询个税申报记录
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listByIds(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 查询个税申报记录
|
||||
*
|
||||
* @param taxCycleRange
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listByTaxCycleRange(YearMonthRange taxCycleRange);
|
||||
|
||||
/**
|
||||
* 根据个税扣缴义务人id、税款所属期查询个税申报记录
|
||||
*
|
||||
* @param taxAgentIds
|
||||
* @param taxCycle
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listByTaxCycleAndTaxAgentIds(Date taxCycle, Collection<Long> taxAgentIds);
|
||||
|
||||
/**
|
||||
* 根据个税扣缴义务人id、薪资所属月查询个税申报记录
|
||||
*
|
||||
* @param salaryMonth
|
||||
* @param taxAgentIds
|
||||
* @return
|
||||
*/
|
||||
List<TaxDeclareRecordPO> listBySalaryMonthAndTaxAgentIds(Date salaryMonth, Collection<Long> taxAgentIds);
|
||||
|
||||
/**
|
||||
* 查询个税申报记录
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
PageInfo<TaxDeclareRecordPO> listPageByParam(TaxDeclarationListQueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 生成申报表
|
||||
*
|
||||
* @param saveParam
|
||||
*/
|
||||
void save(TaxDeclarationSaveParam saveParam);
|
||||
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
void refreshData(Long id, Long employeeId, String tenantKey);
|
||||
void refreshData(Long id);
|
||||
|
||||
/**
|
||||
* 更新个税申报表的待刷新数据的标识
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
void updateIcon(Long id, Integer displayIcon, Long employeeId, String tenantKey);
|
||||
void updateIcon(Long id, Integer displayIcon);
|
||||
|
||||
/**
|
||||
* 因为薪资核算结果发生变动,所以需要更新个税申报表的待刷新数据的标识
|
||||
*
|
||||
* @param taxCycle
|
||||
* @param taxAgentIds
|
||||
* @param tenantKey
|
||||
*/
|
||||
void updateByTaxCycleAndTaxAgentIds(YearMonth taxCycle, Collection<Long> taxAgentIds, String tenantKey);
|
||||
void updateByTaxCycleAndTaxAgentIds(Date taxCycle, Collection<Long> taxAgentIds);
|
||||
|
||||
/**
|
||||
* 判断是否有权限可查看个税申报表
|
||||
*
|
||||
* @param taxDeclaration
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
boolean checkByAuthority(TaxDeclarationPO taxDeclaration, Long employeeId, String tenantKey);
|
||||
boolean checkByAuthority(TaxDeclarationPO taxDeclaration);
|
||||
|
||||
/**
|
||||
* 根据id删除
|
||||
*
|
||||
* @param ids
|
||||
* @param tenantKey
|
||||
*/
|
||||
void deleteByIds(Collection<Long> ids, String tenantKey);
|
||||
void deleteByIds(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 个税申报
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
void declare(Long id, Long employeeId, String tenantKey);
|
||||
void declare(Long id);
|
||||
|
||||
/**
|
||||
* 个税申报获取反馈
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
void getDeclareFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate, Long employeeId, String tenantKey);
|
||||
void getDeclareFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate);
|
||||
|
||||
/**
|
||||
* 作废
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
void cancelDeclare(Long id, Long employeeId, String tenantKey);
|
||||
void cancelDeclare(Long id);
|
||||
|
||||
/**
|
||||
* 获取作废反馈
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
void getCancelFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate, Long employeeId, String tenantKey);
|
||||
void getCancelFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate);
|
||||
|
||||
/**
|
||||
* 更正申报
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
void updateDeclare(Long id, Long employeeId, String tenantKey);
|
||||
void updateDeclare(Long id);
|
||||
|
||||
/**
|
||||
* 税局端申报状态查询
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
String queryDeclareStatus(Long id, Long employeeId, String tenantKey);
|
||||
String queryDeclareStatus(Long id);
|
||||
|
||||
/**
|
||||
* 税局端申报明细查询
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
String queryCompanyIncomes(Long id, Long employeeId, String tenantKey);
|
||||
String queryCompanyIncomes(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表表头
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/12/5 6:36 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public interface TaxReportColumnService {
|
||||
|
||||
/**
|
||||
* 查询所有所得项目的个税申报表表头
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<TaxReportColumnPO> listAll();
|
||||
|
||||
/**
|
||||
* 根据所得项目查询个税申报表表头
|
||||
*
|
||||
* @param incomeCategory
|
||||
* @return
|
||||
*/
|
||||
List<TaxReportColumnPO> listByIncomeCategory(IncomeCategoryEnum incomeCategory);
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
//
|
||||
// private final Map<String, SalaryCalcRunService> serviceMap = new ConcurrentHashMap<>();
|
||||
//
|
||||
// @Autowired
|
||||
//
|
||||
// public SalaryCalcRunServiceFactory(Map<String, SalaryCalcRunService> map) {
|
||||
// for (Map.Entry<String, SalaryCalcRunService> entry : map.entrySet()) {
|
||||
// serviceMap.put(entry.getValue().getCalcType(), entry.getValue());
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
//public class TaxPaymentServiceFactory {
|
||||
// private final Map<Integer, TaxPaymentService> serviceMap = new ConcurrentHashMap<>();
|
||||
//
|
||||
// @Autowired
|
||||
//
|
||||
// public TaxPaymentServiceFactory(Map<String, TaxPaymentService> map) {
|
||||
// for (Map.Entry<String, TaxPaymentService> entry : map.entrySet()) {
|
||||
// serviceMap.putIfAbsent(entry.getValue().getServiceType(), entry.getValue());
|
||||
|
|
|
|||
|
|
@ -109,6 +109,18 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtEmpPO> getExtEmpByIds(List<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<ExtEmpPO> extEmpPOS = new ArrayList<>();
|
||||
List<List<Long>> partition = Lists.partition(ids, 500);
|
||||
partition.forEach(list -> extEmpPOS.addAll(getExternalEmployeeMapper().listSome(ExtEmpPO.builder().ids(list).build())));
|
||||
return extEmpPOS;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataCollectionEmployee getEmployeeById(Long id) {
|
||||
ExtEmpPO po = getExternalEmployeeMapper().getById(id);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
|
|||
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctTaxAgentPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||
|
|
@ -806,4 +807,12 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
public List<SalaryAcctRecordPO> listSome(SalaryAcctRecordPO po) {
|
||||
return getSalaryAcctRecordMapper().listSome(po);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctTaxAgentPO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordIds)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return getSalaryAcctRecordMapper().listAcctTaxAgent(salaryAcctRecordIds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
|
|||
|
||||
|
||||
private SysSalaryItemBiz sysSalaryItemBiz = new SysSalaryItemBiz();
|
||||
// @Autowired
|
||||
//
|
||||
// private LoggerTemplate salaryItemLoggerTemplate;
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
|
|||
@Override
|
||||
public void withDrawTaxDeclaration(Long taxDeclarationId) {
|
||||
TaxDeclarationPO po = getTaxDeclarationMapper().getById(taxDeclarationId);
|
||||
if(Objects.isNull(po)){
|
||||
if (Objects.isNull(po)) {
|
||||
throw new SalaryRunTimeException("个税申报表不存在");
|
||||
}
|
||||
// 获取当前个税扣缴义务人下的薪资账套
|
||||
|
|
@ -331,8 +331,30 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
|
|||
// 删除个税申报表
|
||||
getTaxDeclarationMapper().deleteByIdZj(po.getId());
|
||||
// 修改薪资核算记录状态为已归档
|
||||
if(CollectionUtils.isNotEmpty(salaryAcctRecordIds)){
|
||||
getSalaryAcctRecordService(user).updateStatusByIds(salaryAcctRecordIds,SalaryAcctRecordStatusEnum.ARCHIVED);
|
||||
if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) {
|
||||
getSalaryAcctRecordService(user).updateStatusByIds(salaryAcctRecordIds, SalaryAcctRecordStatusEnum.ARCHIVED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
|
||||
return;
|
||||
}
|
||||
getTaxDeclarationMapper().deleteByIds(taxDeclareRecordIds);
|
||||
// new LambdaUpdateChainWrapper<>(baseMapper)
|
||||
// .eq(TaxDeclarationPO::getTenantKey, tenantKey)
|
||||
// .eq(TaxDeclarationPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
// .in(TaxDeclarationPO::getTaxDeclareRecordId, taxDeclareRecordIds)
|
||||
// .set(TaxDeclarationPO::getDeleteType, DeleteTypeEnum.DELETED.getValue())
|
||||
// .set(TaxDeclarationPO::getUpdateTime, LocalDateTime.now())
|
||||
// .update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveBatch(List<TaxDeclarationPO> taxDeclarations) {
|
||||
if (CollectionUtils.isNotEmpty(taxDeclarations)) {
|
||||
getTaxDeclarationMapper().batchInsert(taxDeclarations);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,173 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
|
||||
import com.engine.salary.service.EmployeeDeclareService;
|
||||
import com.engine.salary.service.ExtEmpService;
|
||||
import com.engine.salary.service.SalaryEmployeeService;
|
||||
import com.engine.salary.service.TaxDeclarationValueService;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.weaver.common.component.table.column.WeaTableColumn;
|
||||
import com.weaver.common.hrm.service.HrmCommonEmployeeService;
|
||||
import com.weaver.framework.util.JsonUtil;
|
||||
import com.weaver.hrm.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
import com.weaver.hrm.salary.entity.extemployee.po.ExtEmployeePO;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.bo.TaxDeclarationValueList;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.po.TaxDeclarationPO;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||
import com.weaver.hrm.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
import com.weaver.hrm.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.weaver.hrm.salary.enums.sicategory.DeleteTypeEnum;
|
||||
import com.weaver.hrm.salary.service.*;
|
||||
import com.weaver.hrm.salary.util.SalaryEntityUtil;
|
||||
import com.weaver.hrm.salary.util.SalaryEnumUtil;
|
||||
import com.weaver.hrm.salary.util.SalaryPageUtil;
|
||||
import com.weaver.teams.domain.hr.SimpleUserInfo;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.YearMonth;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 9/28/22 9:41 AM
|
||||
* @version:v1.0
|
||||
*/
|
||||
@Slf4j
|
||||
public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclarationValueService {
|
||||
|
||||
|
||||
private DataSecurityService dataSecurityService;
|
||||
|
||||
private HrmCommonEmployeeService hrmCommonEmployeeService;
|
||||
|
||||
private SalaryEmployeeService salaryEmployeeService;
|
||||
|
||||
private ExtEmpService extEmployeeService;
|
||||
|
||||
private EmployeeDeclareService employeeDeclareService;
|
||||
|
||||
// private TaxReportColumnService taxReportColumnService;
|
||||
|
||||
@Override
|
||||
public PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds( Collection<Long> taxDeclarationIds) {
|
||||
if (page == null) {
|
||||
return page;
|
||||
}
|
||||
page = new LambdaQueryChainWrapper<>(baseMapper)
|
||||
.eq(TaxDeclarationValuePO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclarationValuePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclarationValuePO::getTaxDeclarationId, taxDeclarationIds)
|
||||
.page(page);
|
||||
page.setRecords(decryptBatch(page.getRecords(), tenantKey));
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxDeclarationValuePO> listByTaxDeclarationIds(Collection<Long> taxDeclarationIds) {
|
||||
List<TaxDeclarationValuePO> taxDeclarationValues = new LambdaQueryChainWrapper<>(baseMapper)
|
||||
.eq(TaxDeclarationValuePO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclarationValuePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclarationValuePO::getTaxDeclarationId, taxDeclarationIds)
|
||||
.list();
|
||||
return decryptBatch(taxDeclarationValues);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxDeclarationValuePO> listByTaxDeclarationIdsNoDecrypt(Collection<Long> taxDeclarationIds) {
|
||||
return new LambdaQueryChainWrapper<>(baseMapper)
|
||||
.eq(TaxDeclarationValuePO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclarationValuePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclarationValuePO::getTaxDeclarationId, taxDeclarationIds)
|
||||
.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaxDeclarationValueListDTO convert2List(TaxDeclarationPO taxDeclaration, List<TaxDeclarationValuePO> taxDeclarationValues) {
|
||||
// 查询个税申报表表头
|
||||
IncomeCategoryEnum incomeCategoryEnum = SalaryEnumUtil.enumMatchByValue(taxDeclaration.getIncomeCategory(), IncomeCategoryEnum.class);
|
||||
List<TaxReportColumnPO> taxReportColumns = taxReportColumnService.listByIncomeCategory(incomeCategoryEnum, tenantKey);
|
||||
// 人员id
|
||||
Set<Long> employeeIds = SalaryEntityUtil.properties(taxDeclarationValues, TaxDeclarationValuePO::getEmployeeId);
|
||||
// 查询报送的人员
|
||||
List<EmployeeDeclarePO> employeeDeclares = employeeDeclareService.listByTaxCycleAndTaxAgentIdAndEmployeeIds(
|
||||
YearMonth.parse(taxDeclaration.getTaxCycle()), taxDeclaration.getTaxAgentId(), employeeIds, tenantKey);
|
||||
// 查询人员信息
|
||||
List<Long> simpleEmployeeIds = taxDeclarationValues.stream()
|
||||
.filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))
|
||||
.map(TaxDeclarationValuePO::getEmployeeId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<SimpleEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(simpleEmployeeIds, tenantKey);
|
||||
// 查询人员薪资(身份证号码等)
|
||||
List<SimpleUserInfo> simpleUserInfos = salaryEmployeeService.listByEmployeeIds(simpleEmployeeIds, tenantKey);
|
||||
// 查询外部人员
|
||||
Set<Long> extEmployeeIds = taxDeclarationValues.stream()
|
||||
.filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.EXT_EMPLOYEE.getValue()))
|
||||
.map(TaxDeclarationValuePO::getEmployeeId)
|
||||
.collect(Collectors.toSet());
|
||||
List<ExtEmployeePO> extEmployees = extEmployeeService.listByIdsWithDeleted(extEmployeeIds, tenantKey);
|
||||
|
||||
// 列表表头
|
||||
List<WeaTableColumn> weaTableColumns = TaxDeclarationValueList.buildTableColumns(taxReportColumns);
|
||||
// 列表数据
|
||||
List<Map<String, Object>> data = TaxDeclarationValueList.buildTableData(incomeCategoryEnum, taxReportColumns, taxDeclarationValues,
|
||||
employeeDeclares, simpleEmployees, simpleUserInfos, extEmployees);
|
||||
|
||||
return new TaxDeclarationValueListDTO().setColumns(weaTableColumns).setData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchSave(List<TaxDeclarationValuePO> taxDeclarationValues) {
|
||||
if (CollectionUtils.isNotEmpty(taxDeclarationValues)) {
|
||||
// 加密
|
||||
taxDeclarationValues.forEach(taxDeclarationValue ->
|
||||
taxDeclarationValue.setResultValueJson(JsonUtil.toJsonString(taxDeclarationValue.getResultValue())));
|
||||
taxDeclarationValues = dataSecurityService.encryptBatch(taxDeclarationValues, TaxDeclarationValuePO.class, tenantKey);
|
||||
// 分批保存
|
||||
int batchSize = SalaryPageUtil.getBatchSize();
|
||||
List<List<TaxDeclarationValuePO>> partition = Lists.partition(taxDeclarationValues, batchSize);
|
||||
for (List<TaxDeclarationValuePO> subTaxDeclarationValues : partition) {
|
||||
baseMapper.batchInsert(subTaxDeclarationValues);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
|
||||
return;
|
||||
}
|
||||
new LambdaUpdateChainWrapper<>(baseMapper)
|
||||
.eq(TaxDeclarationValuePO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclarationValuePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclarationValuePO::getTaxDeclareRecordId, taxDeclareRecordIds)
|
||||
.set(TaxDeclarationValuePO::getDeleteType, DeleteTypeEnum.PHYSICAL_DELETED.getValue())
|
||||
.set(TaxDeclarationValuePO::getUpdateTime, LocalDateTime.now())
|
||||
.update();
|
||||
}
|
||||
|
||||
private List<TaxDeclarationValuePO> decryptBatch(List<TaxDeclarationValuePO> taxDeclarationValues) {
|
||||
if (CollectionUtils.isEmpty(taxDeclarationValues)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 解密
|
||||
taxDeclarationValues = dataSecurityService.decryptBatch(taxDeclarationValues, TaxDeclarationValuePO.class, tenantKey);
|
||||
taxDeclarationValues.forEach(salaryAcctResultValue -> {
|
||||
salaryAcctResultValue.setResultValue(JsonUtil.parseMap(salaryAcctResultValue.getResultValueJson(), String.class));
|
||||
});
|
||||
return taxDeclarationValues;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
import com.engine.salary.entity.extemp.po.ExtEmpPO;
|
||||
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclareEmployeeBO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.AbnormalEmployeeListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareEmployeePO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
|
||||
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper;
|
||||
import com.engine.salary.service.EmployeeDeclareService;
|
||||
import com.engine.salary.service.ExtEmpService;
|
||||
import com.engine.salary.service.SalaryEmployeeService;
|
||||
import com.engine.salary.service.TaxDeclareEmployeeService;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表明细中的人员
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/10 4:12 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class TaxDeclareEmployeeServiceImpl extends Service implements TaxDeclareEmployeeService {
|
||||
|
||||
|
||||
// private TaxDeclarationValueMapper taxDeclarationValueMapper;
|
||||
private TaxDeclarationDetailMapper taxDeclarationValueMapper;
|
||||
|
||||
private SalaryEmployeeService hrmCommonEmployeeService;
|
||||
|
||||
private SalaryEmployeeService salaryEmployeeService;
|
||||
|
||||
private ExtEmpService extEmployeeService;
|
||||
|
||||
private EmployeeDeclareService employeeDeclareService;
|
||||
|
||||
@Override
|
||||
public PageInfo<TaxDeclareEmployeePO> listPage4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam) {
|
||||
List<TaxDeclareEmployeePO> list = taxDeclarationValueMapper.listPage4NotDeclareByParam(queryParam);
|
||||
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, TaxDeclareEmployeePO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxDeclareEmployeePO> list4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam) {
|
||||
return taxDeclarationValueMapper.list4NotDeclareByParam(queryParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<TaxDeclareEmployeePO> listPage4NoValueByParam(AbnormalEmployeeListQueryParam queryParam) {
|
||||
List<TaxDeclareEmployeePO> list = taxDeclarationValueMapper.listPage4NoValueByParam(queryParam);
|
||||
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, TaxDeclareEmployeePO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxDeclareEmployeePO> list4NoValueByParam(AbnormalEmployeeListQueryParam queryParam) {
|
||||
return taxDeclarationValueMapper.list4NoValueByParam(queryParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AbnormalEmployeeListDTO> convert2AbnormalEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List<TaxDeclareEmployeePO> taxDeclareEmployees) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareEmployees)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 人员id
|
||||
Set<Long> employeeIds = SalaryEntityUtil.properties(taxDeclareEmployees, TaxDeclareEmployeePO::getEmployeeId);
|
||||
// 查询报送的人员
|
||||
List<EmployeeDeclarePO> employeeDeclares = employeeDeclareService.listByTaxCycleAndTaxAgentIdAndEmployeeIds(
|
||||
SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()), taxDeclareRecord.getTaxAgentId(), employeeIds);
|
||||
// 查询人员信息
|
||||
List<Long> simpleEmployeeIds = taxDeclareEmployees.stream()
|
||||
.filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))
|
||||
.map(TaxDeclareEmployeePO::getEmployeeId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<DataCollectionEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(simpleEmployeeIds);
|
||||
// 查询人员薪资(身份证号码等)
|
||||
List<DataCollectionEmployee> simpleUserInfos = salaryEmployeeService.listByIds(simpleEmployeeIds);
|
||||
// 查询外部人员
|
||||
List<Long> extEmployeeIds = taxDeclareEmployees.stream()
|
||||
.filter(taxDeclarationValue -> Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.EXT_EMPLOYEE.getValue()))
|
||||
.map(TaxDeclareEmployeePO::getEmployeeId)
|
||||
.collect(Collectors.toList());
|
||||
List<ExtEmpPO> extEmployees = extEmployeeService.getExtEmpByIds(extEmployeeIds);
|
||||
|
||||
return TaxDeclareEmployeeBO.convert2AbnormalEmployee(taxDeclareEmployees, employeeDeclares, simpleEmployees, simpleUserInfos, extEmployees);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.FailEmployeeListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareFailPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.service.TaxDeclareFailService;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.weaver.common.component.table.page.Page;
|
||||
import com.weaver.hrm.salary.dao.TaxDeclareFailMapper;
|
||||
import com.weaver.hrm.salary.enums.sicategory.DeleteTypeEnum;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey;
|
||||
|
||||
/**
|
||||
* @description: 个税申报失败数据
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/11/30 1:32 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class TaxDeclareFailServiceImpl extends Service implements TaxDeclareFailService {
|
||||
|
||||
private TaxDeclareFailMapper taxDeclareFailMapper;
|
||||
private TaxAgentService taxAgentService;
|
||||
|
||||
@Override
|
||||
public PageInfo<TaxDeclareFailPO> listPageByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
return new LambdaQueryChainWrapper<>(taxDeclareFailMapper)
|
||||
.eq(TaxDeclareFailPO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds)
|
||||
.page(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxDeclareFailPO> listByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
return new LambdaQueryChainWrapper<>(taxDeclareFailMapper)
|
||||
.eq(TaxDeclareFailPO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds)
|
||||
.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByTaxDeclareRecordIds(Collection<Long> taxDeclareRecordIds) {
|
||||
new LambdaUpdateChainWrapper<>(taxDeclareFailMapper)
|
||||
.eq(TaxDeclareFailPO::getTenantKey, tenantKey)
|
||||
.eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds)
|
||||
.set(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.PHYSICAL_DELETED.getValue())
|
||||
.set(TaxDeclareFailPO::getUpdateTime, LocalDateTime.now())
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FailEmployeeListDTO> convert2FailEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List<TaxDeclareFailPO> taxDeclareFails) {
|
||||
if (CollectionUtils.isEmpty(taxDeclareFails)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 查询个税扣缴义务人
|
||||
TaxAgentPO taxAgent = taxAgentService.getById(taxDeclareRecord.getTaxAgentId());
|
||||
Map<String, IncomeCategoryEnum> incomeCategoryEnumMap = Maps.newHashMap();
|
||||
for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) {
|
||||
incomeCategoryEnumMap.put(incomeCategoryEnum.getCode(), incomeCategoryEnum);
|
||||
}
|
||||
|
||||
List<FailEmployeeListDTO> dtos = Lists.newArrayList();
|
||||
for (TaxDeclareFailPO taxDeclareFail : taxDeclareFails) {
|
||||
IncomeCategoryEnum incomeCategoryEnum = incomeCategoryEnumMap.get(taxDeclareFail.getIncomeCategory());
|
||||
FailEmployeeListDTO dto = new FailEmployeeListDTO()
|
||||
.setId(taxDeclareFail.getId())
|
||||
.setEmployeeName(taxDeclareFail.getEmployeeName())
|
||||
.setTaxAgentName(taxAgent.getName())
|
||||
.setCardNum(taxDeclareFail.getCardNum())
|
||||
.setErrorMsg(taxDeclareFail.getErrorMsg())
|
||||
.setIncomeCategory(incomeCategoryEnum == null ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel()));
|
||||
dtos.add(dto);
|
||||
}
|
||||
return dtos;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,40 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.service.TaxReportColumnService;
|
||||
import com.weaver.hrm.salary.constant.SalaryConstant;
|
||||
import com.weaver.hrm.salary.enums.sicategory.DeleteTypeEnum;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 个税申报表表头
|
||||
* @author: xiajun
|
||||
* @modified By: xiajun
|
||||
* @date: Created in 2022/12/5 6:36 PM
|
||||
* @version:v1.0
|
||||
*/
|
||||
public class TaxReportColumnServiceImpl extends Service implements TaxReportColumnService {
|
||||
|
||||
@Override
|
||||
public List<TaxReportColumnPO> listAll() {
|
||||
return new LambdaQueryChainWrapper<>(baseMapper)
|
||||
.eq(TaxReportColumnPO::getTenantKey, SalaryConstant.DEFAULT_TENANT_KEY)
|
||||
.eq(TaxReportColumnPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.orderByAsc(TaxReportColumnPO::getId)
|
||||
.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaxReportColumnPO> listByIncomeCategory(IncomeCategoryEnum incomeCategory) {
|
||||
return new LambdaQueryChainWrapper<>(baseMapper)
|
||||
.eq(TaxReportColumnPO::getTenantKey, SalaryConstant.DEFAULT_TENANT_KEY)
|
||||
.eq(TaxReportColumnPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
|
||||
.eq(TaxReportColumnPO::getIncomeCategory, incomeCategory.getValue())
|
||||
.orderByAsc(TaxReportColumnPO::getId)
|
||||
.list();
|
||||
}
|
||||
}
|
||||
|
|
@ -166,7 +166,7 @@ public class TaxDeclarationController {
|
|||
taxDeclareRecordWrapper.updateIcon(param.getTaxDeclareRecordId(), UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey());
|
||||
return WeaResult.success(null);
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, TaxDeclarationInfoDTO>(user).run(getTaxDeclarationWrapper(user)::getTaxDeclarationInfoById, taxDeclarationId);
|
||||
return new ResponseResult<Long, TaxDeclarationInfoDTO>(user).run(getTaxDeclareRecordWrapper(user)::updateIcon, taxDeclarationId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,50 +1,38 @@
|
|||
package com.engine.salary.wrapper;
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.service.SalaryCacheService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.service.TaxDeclarationExcelService;
|
||||
import com.engine.salary.service.TaxDeclarationService;
|
||||
import com.weaver.common.component.form.WeaForm;
|
||||
import com.weaver.common.component.table.WeaTable;
|
||||
import com.weaver.common.component.table.page.Page;
|
||||
import com.weaver.common.component.table.permission.Permission;
|
||||
import com.weaver.common.distribution.genid.IdGenerator;
|
||||
import com.weaver.common.hr.util.Util;
|
||||
import com.weaver.common.hrm.service.HrmCommonEmployeeService;
|
||||
import com.weaver.common.threadPool.ThreadPoolUtil;
|
||||
import com.weaver.common.threadPool.constant.ModulePoolEnum;
|
||||
import com.weaver.common.threadPool.entity.LocalRunnable;
|
||||
import com.weaver.datasecurity.interceptor.DSTenantKeyThreadVar;
|
||||
import com.weaver.framework.util.JsonUtil;
|
||||
import com.weaver.hrm.salary.cache.SalaryCacheKey;
|
||||
import com.weaver.hrm.salary.common.excel.ExcelExportParam;
|
||||
import com.weaver.hrm.salary.constant.SalaryConstant;
|
||||
import com.weaver.hrm.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.dto.*;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
||||
import com.weaver.hrm.salary.entity.taxdeclaration.po.*;
|
||||
import com.weaver.hrm.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.weaver.hrm.salary.enums.taxdeclaration.TaxAgentRangeEnum;
|
||||
import com.weaver.hrm.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
||||
import com.weaver.hrm.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||
import com.weaver.hrm.salary.exception.SalaryNullException;
|
||||
import com.weaver.hrm.salary.exception.SalaryRunTimeException;
|
||||
import com.weaver.hrm.salary.service.*;
|
||||
import com.weaver.hrm.salary.util.*;
|
||||
import com.weaver.teams.domain.EntityType;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.engine.salary.cache.SalaryCacheKey;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.*;
|
||||
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.po.*;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
|
||||
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryEnumUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.weaver.util.threadPool.ThreadPoolUtil;
|
||||
import com.weaver.util.threadPool.constant.ModulePoolEnum;
|
||||
import com.weaver.util.threadPool.entity.LocalRunnable;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -59,48 +47,48 @@ import java.util.stream.Collectors;
|
|||
@Component
|
||||
public class TaxDeclareRecordWrapper extends Service {
|
||||
|
||||
|
||||
|
||||
private TaxDeclareRecordService taxDeclareRecordService;
|
||||
|
||||
|
||||
private TaxAgentService taxAgentService;
|
||||
|
||||
private HrmCommonEmployeeService hrmCommonEmployeeService;
|
||||
|
||||
|
||||
private SalaryEmployeeService hrmCommonEmployeeService;
|
||||
|
||||
private SalaryCacheService salaryCacheService;
|
||||
|
||||
|
||||
private TaxDeclarationService taxDeclarationService;
|
||||
|
||||
|
||||
private TaxDeclarationValueService taxDeclarationValueService;
|
||||
|
||||
|
||||
private TaxDeclarationExcelService taxDeclarationExcelService;
|
||||
|
||||
|
||||
private TaxDeclareEmployeeService taxDeclareEmployeeService;
|
||||
|
||||
|
||||
private TaxDeclareFailService taxDeclareFailService;
|
||||
|
||||
/**
|
||||
* 个税申报记录列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaTable<TaxDeclareRecordListDTO> listPage(TaxDeclarationListQueryParam queryParam, Long employeeId, String tenantKey) {
|
||||
Page<TaxDeclareRecordPO> page = taxDeclareRecordService.listPageByParam(queryParam, employeeId, tenantKey);
|
||||
Page<TaxDeclareRecordListDTO> dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
|
||||
if (CollectionUtils.isNotEmpty(page.getRecords())) {
|
||||
public PageInfo<TaxDeclareRecordListDTO> listPage(TaxDeclarationListQueryParam queryParam) {
|
||||
PageInfo<TaxDeclareRecordPO> page = taxDeclareRecordService.listPageByParam(queryParam);
|
||||
List<TaxDeclareRecordPO> list = page.getList();
|
||||
|
||||
PageInfo<TaxDeclareRecordListDTO> dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxDeclareRecordListDTO.class);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
// 查询个税扣缴义务人
|
||||
Set<Long> taxAgentIds = SalaryEntityUtil.properties(page.getRecords(), TaxDeclareRecordPO::getTaxAgentId);
|
||||
List<TaxAgentPO> taxAgents = taxAgentService.listByIds(taxAgentIds, tenantKey);
|
||||
Set<Long> taxAgentIds = SalaryEntityUtil.properties(list, TaxDeclareRecordPO::getTaxAgentId);
|
||||
List<TaxAgentPO> taxAgents = taxAgentService.listByIds(taxAgentIds);
|
||||
// 查询人员姓名
|
||||
List<Long> employeeIds = SalaryEntityUtil.properties(page.getRecords(), TaxDeclareRecordPO::getCreator, Collectors.toList());
|
||||
List<SimpleEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds, tenantKey);
|
||||
List<Long> employeeIds = SalaryEntityUtil.properties(list, TaxDeclareRecordPO::getCreator, Collectors.toList());
|
||||
List<DataCollectionEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds);
|
||||
|
||||
List<TaxDeclareRecordListDTO> dtoList = Lists.newArrayList();
|
||||
Map<Long, String> taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName);
|
||||
Map<Long, String> simpleEmployeeNameMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId, SimpleEmployee::getName);
|
||||
for (TaxDeclareRecordPO taxDeclareRecord : page.getRecords()) {
|
||||
Map<Long, String> simpleEmployeeNameMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername);
|
||||
for (TaxDeclareRecordPO taxDeclareRecord : list) {
|
||||
TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.class);
|
||||
TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.class);
|
||||
TaxDeclareRecordListDTO taxDeclareRecordListDTO = new TaxDeclareRecordListDTO()
|
||||
|
|
@ -121,195 +109,152 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
.setDisplayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1));
|
||||
dtoList.add(taxDeclareRecordListDTO);
|
||||
}
|
||||
dtoPage.setRecords(dtoList);
|
||||
dtoPage.setList(dtoList);
|
||||
}
|
||||
// 转换成前端所需的数据格式
|
||||
WeaTable<TaxDeclareRecordListDTO> weaTable = SalaryFormatUtil.<TaxDeclareRecordListDTO>getInstance()
|
||||
.buildTable(TaxDeclareRecordListDTO.class, dtoPage);
|
||||
for (int i = 0; i < dtoPage.getRecords().size(); i++) {
|
||||
TaxDeclareRecordListDTO dto = dtoPage.getRecords().get(i);
|
||||
List<Permission> permissions = weaTable.getOperatesPermission().get(i);
|
||||
for (int j = 0; j < permissions.size(); j++) {
|
||||
Permission permission = permissions.get(j);
|
||||
if (j == 1 && (dto.getTaxDeclareStatus() != TaxDeclareStatusEnum.NOT_DECLARE || dto.getTaxDeclareType() != TaxDeclareTypeEnum.NORMAL_DECLARE)) {
|
||||
permission.setVisible(false);
|
||||
permission.setDisabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return weaTable;
|
||||
return dtoPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个税申报表明细列表
|
||||
*
|
||||
* @param queryParam 列表查询条件
|
||||
* @param tenantKey 租户key
|
||||
* @return
|
||||
*/
|
||||
public WeaTable<?> listValuePage(TaxDeclarationValueListQueryParam queryParam, Long employeeId, String tenantKey) {
|
||||
public PageInfo listValuePage(TaxDeclarationValueListQueryParam queryParam) {
|
||||
// 查询个税申报表
|
||||
TaxDeclarationPO taxDeclaration = taxDeclarationService.getById(queryParam.getTaxDeclarationId(), tenantKey);
|
||||
TaxDeclarationPO taxDeclaration = taxDeclarationService.getById(queryParam.getTaxDeclarationId());
|
||||
// 判断是否有权限查看
|
||||
boolean canSee = taxDeclareRecordService.checkByAuthority(taxDeclaration, employeeId, tenantKey);
|
||||
boolean canSee = taxDeclareRecordService.checkByAuthority(taxDeclaration);
|
||||
if (!canSee) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156515, "对不起,您暂时没有权限查看"));
|
||||
}
|
||||
String pageUid = "taxDeclarationValueList";
|
||||
SalaryPageUtil.handlePageSize(pageUid, queryParam);
|
||||
// 查询个税申报表详情
|
||||
Page<TaxDeclarationValuePO> page = taxDeclarationValueService.listPageByTaxDeclarationIds(
|
||||
new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true), Collections.singleton(queryParam.getTaxDeclarationId()), tenantKey);
|
||||
TaxDeclarationValueListDTO taxDeclarationValueListDTO = taxDeclarationValueService.convert2List(taxDeclaration, page.getRecords(), tenantKey);
|
||||
Page<Map<String, Object>> dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
|
||||
dtoPage.setRecords(taxDeclarationValueListDTO.getData());
|
||||
// 转成前端所需的格式
|
||||
WeaTable<Map<String, Object>> weaTable = new WeaTable<>();
|
||||
weaTable.setColumns(taxDeclarationValueListDTO.getColumns());
|
||||
weaTable.setPage(dtoPage);
|
||||
weaTable.setModule(SalaryConstant.MODULE);
|
||||
weaTable.setPageUid(pageUid);
|
||||
return weaTable;
|
||||
PageInfo<TaxDeclarationValuePO> page = taxDeclarationValueService.listPageByTaxDeclarationIds(Collections.singleton(queryParam.getTaxDeclarationId()));
|
||||
TaxDeclarationValueListDTO taxDeclarationValueListDTO = taxDeclarationValueService.convert2List(taxDeclaration, page.getList());
|
||||
PageInfo<Map<String, Object>> dtoPage = new PageInfo();
|
||||
dtoPage.setList(taxDeclarationValueListDTO.getData());
|
||||
return dtoPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 未报送的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaTable<AbnormalEmployeeListDTO> listEmployeePage4NotDeclare(AbnormalEmployeeListQueryParam queryParam, String tenantKey) {
|
||||
String pageUid = "abnormalEmployeeList4NoDeclare";
|
||||
SalaryPageUtil.handlePageSize(pageUid, queryParam);
|
||||
WeaTable<AbnormalEmployeeListDTO> weaTable = listEmployeePage("NotDeclare", queryParam, tenantKey);
|
||||
weaTable.setPageUid(pageUid);
|
||||
return weaTable;
|
||||
public PageInfo<AbnormalEmployeeListDTO> listEmployeePage4NotDeclare(AbnormalEmployeeListQueryParam queryParam) {
|
||||
return listEmployeePage("NotDeclare", queryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 没有申报数据的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaTable<AbnormalEmployeeListDTO> listEmployeePage4NoValue(AbnormalEmployeeListQueryParam queryParam, String tenantKey) {
|
||||
String pageUid = "abnormalEmployeeList4NoValue";
|
||||
SalaryPageUtil.handlePageSize(pageUid, queryParam);
|
||||
WeaTable<AbnormalEmployeeListDTO> weaTable = listEmployeePage("NoValue", queryParam, tenantKey);
|
||||
weaTable.setPageUid(pageUid);
|
||||
return weaTable;
|
||||
public PageInfo<AbnormalEmployeeListDTO> listEmployeePage4NoValue(AbnormalEmployeeListQueryParam queryParam) {
|
||||
return listEmployeePage("NoValue", queryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 申报失败的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaTable<FailEmployeeListDTO> listEmployeePage4Fail(AbnormalEmployeeListQueryParam queryParam, String tenantKey) {
|
||||
String pageUid = "failEmployeeList";
|
||||
SalaryPageUtil.handlePageSize(pageUid, queryParam);
|
||||
public PageInfo<FailEmployeeListDTO> listEmployeePage4Fail(AbnormalEmployeeListQueryParam queryParam) {
|
||||
// 查询个税申报记录
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(queryParam.getTaxDeclareRecordId(), tenantKey);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(queryParam.getTaxDeclareRecordId());
|
||||
// 查询申报失败的数据
|
||||
Page<TaxDeclareFailPO> page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true);
|
||||
page = taxDeclareFailService.listPageByTaxDeclareRecordIds(page, Collections.singleton(taxDeclareRecord.getId()), tenantKey);
|
||||
PageInfo<TaxDeclareFailPO> taxDeclareFailPOPageInfo = taxDeclareFailService.listPageByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId()));
|
||||
List list = taxDeclareFailPOPageInfo.getList();
|
||||
// 转换成dto
|
||||
Page<FailEmployeeListDTO> dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
|
||||
dtoPage.setRecords(taxDeclareFailService.convert2FailEmployeeList(taxDeclareRecord, page.getRecords(), tenantKey));
|
||||
PageInfo<FailEmployeeListDTO> dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), FailEmployeeListDTO.class);
|
||||
dtoPage.setList(taxDeclareFailService.convert2FailEmployeeList(taxDeclareRecord, list));
|
||||
// 转成前端所需的格式
|
||||
return SalaryFormatUtil.<FailEmployeeListDTO>getInstance().buildTable(FailEmployeeListDTO.class, dtoPage);
|
||||
return dtoPage;
|
||||
}
|
||||
|
||||
private WeaTable<AbnormalEmployeeListDTO> listEmployeePage(String key, AbnormalEmployeeListQueryParam queryParam, String tenantKey) {
|
||||
WeaTable<AbnormalEmployeeListDTO> weaTable;
|
||||
private PageInfo<AbnormalEmployeeListDTO> listEmployeePage(String key, AbnormalEmployeeListQueryParam queryParam) {
|
||||
// 查询个税申报记录
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(queryParam.getTaxDeclareRecordId(), tenantKey);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(queryParam.getTaxDeclareRecordId());
|
||||
queryParam.setTaxAgentId(taxDeclareRecord.getTaxAgentId());
|
||||
queryParam.setTaxCycle(taxDeclareRecord.getTaxCycle());
|
||||
if (StringUtils.isEmpty(queryParam.getKeyword())) {
|
||||
// 查询个税申报记录的人员
|
||||
Page<TaxDeclareEmployeePO> page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true);
|
||||
PageInfo<TaxDeclareEmployeePO> page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxDeclareEmployeePO.class);
|
||||
if (StringUtils.equals("NotDeclare", key)) {
|
||||
page = taxDeclareEmployeeService.listPage4NotDeclareByParam(queryParam, tenantKey);
|
||||
page = taxDeclareEmployeeService.listPage4NotDeclareByParam(queryParam);
|
||||
} else if (StringUtils.equals("NoValue", key)) {
|
||||
page = taxDeclareEmployeeService.listPage4NoValueByParam(queryParam, tenantKey);
|
||||
page = taxDeclareEmployeeService.listPage4NoValueByParam(queryParam);
|
||||
}
|
||||
Page<AbnormalEmployeeListDTO> dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
|
||||
dtoPage.setRecords(taxDeclareEmployeeService.convert2AbnormalEmployeeList(taxDeclareRecord, page.getRecords(), tenantKey));
|
||||
// 转换成前端所需的格式
|
||||
weaTable = SalaryFormatUtil.<AbnormalEmployeeListDTO>getInstance().buildTable(AbnormalEmployeeListDTO.class, dtoPage);
|
||||
PageInfo<AbnormalEmployeeListDTO> dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), AbnormalEmployeeListDTO.class);
|
||||
dtoPage.setList(taxDeclareEmployeeService.convert2AbnormalEmployeeList(taxDeclareRecord, page.getList()));
|
||||
return dtoPage;
|
||||
} else {
|
||||
// 查询条件中包含"keyword"时,不好通过SQL分页,所以在内存中分页
|
||||
List<TaxDeclareEmployeePO> taxDeclareEmployees = Collections.emptyList();
|
||||
if (StringUtils.equals("NotDeclare", key)) {
|
||||
taxDeclareEmployees = taxDeclareEmployeeService.list4NotDeclareByParam(queryParam, tenantKey);
|
||||
taxDeclareEmployees = taxDeclareEmployeeService.list4NotDeclareByParam(queryParam);
|
||||
} else if (StringUtils.equals("NoValue", key)) {
|
||||
taxDeclareEmployees = taxDeclareEmployeeService.list4NoValueByParam(queryParam, tenantKey);
|
||||
taxDeclareEmployees = taxDeclareEmployeeService.list4NoValueByParam(queryParam);
|
||||
}
|
||||
List<AbnormalEmployeeListDTO> dtos = taxDeclareEmployeeService.convert2AbnormalEmployeeList(taxDeclareRecord, taxDeclareEmployees, tenantKey)
|
||||
List<AbnormalEmployeeListDTO> dtos = taxDeclareEmployeeService.convert2AbnormalEmployeeList(taxDeclareRecord, taxDeclareEmployees)
|
||||
.stream()
|
||||
.filter(e -> StringUtils.contains(e.getEmployeeName(), queryParam.getKeyword())
|
||||
|| StringUtils.contains(e.getJobNum(), queryParam.getKeyword())
|
||||
|| StringUtils.contains(e.getCardNum(), queryParam.getKeyword()))
|
||||
.collect(Collectors.toList());
|
||||
Page<AbnormalEmployeeListDTO> dtoPage = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), dtos.size(), true);
|
||||
dtoPage.setRecords(SalaryPageUtil.subList((int) dtoPage.getCurrent(), (int) dtoPage.getSize(), dtos));
|
||||
// 转换成前端所需的格式
|
||||
weaTable = SalaryFormatUtil.<AbnormalEmployeeListDTO>getInstance().buildTable(AbnormalEmployeeListDTO.class, dtoPage);
|
||||
PageInfo<AbnormalEmployeeListDTO> dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), dtos, AbnormalEmployeeListDTO.class);
|
||||
return dtoPage;
|
||||
}
|
||||
return weaTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取个税申报记录的表单
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public WeaForm getForm(Long id, Long employeeId, String tenantKey) {
|
||||
TaxDeclareRecordFormDTO formDTO = new TaxDeclareRecordFormDTO();
|
||||
formDTO.setTaxAgentRange(TaxAgentRangeEnum.SELECT_TAX_AGENT);
|
||||
// 判断当前是否开启了分权
|
||||
Boolean openDevolution = taxAgentService.isOpenDevolution(tenantKey);
|
||||
Boolean isChief = taxAgentService.isChief(employeeId, tenantKey);
|
||||
// 转换成前端所需的数据格式
|
||||
WeaForm weaForm = SalaryFormatUtil.<TaxDeclareRecordFormDTO>getInstance().buildForm(TaxDeclareRecordFormDTO.class, formDTO);
|
||||
weaForm.getItems().forEach((k, v) -> {
|
||||
if (StringUtils.equals("salaryMonth", k)) {
|
||||
Map<String, Object> otherParams = new HashMap<>();
|
||||
otherParams.put("type", "month");
|
||||
v.setOtherParams(otherParams);
|
||||
}
|
||||
// 未开启分权,没有"作为管理员的个税扣缴义务人"
|
||||
if (!openDevolution && StringUtils.equals("taxAgentRange", k)) {
|
||||
v.getOptions().remove(1);
|
||||
}
|
||||
// 开启分权,但不是总管理员,没有"所有个税扣缴义务人"
|
||||
if (openDevolution && !isChief && StringUtils.equals("taxAgentRange", k)) {
|
||||
v.getOptions().remove(0);
|
||||
}
|
||||
});
|
||||
return weaForm;
|
||||
}
|
||||
// /**
|
||||
// * 获取个税申报记录的表单
|
||||
// *
|
||||
// * @param id
|
||||
// * @param tenantKey
|
||||
// * @return
|
||||
// */
|
||||
// public WeaForm getForm(Long id) {
|
||||
// TaxDeclareRecordFormDTO formDTO = new TaxDeclareRecordFormDTO();
|
||||
// formDTO.setTaxAgentRange(TaxAgentRangeEnum.SELECT_TAX_AGENT);
|
||||
// // 判断当前是否开启了分权
|
||||
// Boolean openDevolution = taxAgentService.isOpenDevolution(tenantKey);
|
||||
// Boolean isChief = taxAgentService.isChief(employeeId);
|
||||
// // 转换成前端所需的数据格式
|
||||
// WeaForm weaForm = SalaryFormatUtil.<TaxDeclareRecordFormDTO>getInstance().buildForm(TaxDeclareRecordFormDTO.class, formDTO);
|
||||
// weaForm.getItems().forEach((k, v) -> {
|
||||
// if (StringUtils.equals("salaryMonth", k)) {
|
||||
// Map<String, Object> otherParams = new HashMap<>();
|
||||
// otherParams.put("type", "month");
|
||||
// v.setOtherParams(otherParams);
|
||||
// }
|
||||
// // 未开启分权,没有"作为管理员的个税扣缴义务人"
|
||||
// if (!openDevolution && StringUtils.equals("taxAgentRange", k)) {
|
||||
// v.getOptions().remove(1);
|
||||
// }
|
||||
// // 开启分权,但不是总管理员,没有"所有个税扣缴义务人"
|
||||
// if (openDevolution && !isChief && StringUtils.equals("taxAgentRange", k)) {
|
||||
// v.getOptions().remove(0);
|
||||
// }
|
||||
// });
|
||||
// return weaForm;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取个税申报记录下的个税申报表TAB
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public List<TaxDeclarationTabDTO> getTaxDeclarationTab(Long id, Long employeeId, String tenantKey) {
|
||||
public List<TaxDeclarationTabDTO> getTaxDeclarationTab(Long id, Long employeeId) {
|
||||
// 查询个税申报记录
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(id, tenantKey);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(id);
|
||||
// 查询个税申报记录下的个税申报表
|
||||
List<TaxDeclarationPO> taxDeclarations = taxDeclarationService.listByTaxCycleAndTaxAgentIds(YearMonth.parse(taxDeclareRecord.getTaxCycle()),
|
||||
Collections.singleton(taxDeclareRecord.getTaxAgentId()), tenantKey);
|
||||
List<TaxDeclarationPO> taxDeclarations = taxDeclarationService.listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()),
|
||||
Collections.singleton(taxDeclareRecord.getTaxAgentId()));
|
||||
taxDeclarations = taxDeclarations.stream()
|
||||
.filter(e -> Objects.equals(e.getControlView(), 0) || Objects.equals(e.getCreator(), employeeId))
|
||||
.collect(Collectors.toList());
|
||||
|
|
@ -332,12 +277,11 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 查询个税申报表的基本信息
|
||||
*
|
||||
* @param id 个税申报表id
|
||||
* @param tenantKey 租户key
|
||||
* @return
|
||||
*/
|
||||
public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id, String tenantKey) {
|
||||
public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id) {
|
||||
// 查询个税申报表
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(id, tenantKey);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRecordService.getById(id);
|
||||
if (Objects.isNull(taxDeclareRecord)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除"));
|
||||
}
|
||||
|
|
@ -346,58 +290,55 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
.setTaxAgentId(taxDeclareRecord.getTaxAgentId())
|
||||
.setTaxCycle(taxDeclareRecord.getTaxCycle());
|
||||
// 查询是否存在有未报送的人
|
||||
List<TaxDeclareEmployeePO> notDeclareTaxDeclareEmployees = taxDeclareEmployeeService.list4NotDeclareByParam(queryParam, tenantKey);
|
||||
List<TaxDeclareEmployeePO> notDeclareTaxDeclareEmployees = taxDeclareEmployeeService.list4NotDeclareByParam(queryParam);
|
||||
// 查询是否存在没有申报数据的人
|
||||
List<TaxDeclareEmployeePO> noValueTaxDeclareEmployees = taxDeclareEmployeeService.list4NoValueByParam(queryParam, tenantKey);
|
||||
List<TaxDeclareEmployeePO> noValueTaxDeclareEmployees = taxDeclareEmployeeService.list4NoValueByParam(queryParam);
|
||||
// 查询是否存在申报失败的人
|
||||
List<TaxDeclareFailPO> taxDeclareFails = taxDeclareFailService.listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId()), tenantKey);
|
||||
List<TaxDeclareFailPO> taxDeclareFails = taxDeclareFailService.listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId()));
|
||||
// 查询个税扣缴义务人
|
||||
TaxAgentPO taxAgentPO = taxAgentService.getById(taxDeclareRecord.getTaxAgentId(), tenantKey);
|
||||
TaxAgentPO taxAgentPO = taxAgentService.getById(taxDeclareRecord.getTaxAgentId());
|
||||
TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.class);
|
||||
TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.class);
|
||||
return new TaxDeclarationInfoDTO()
|
||||
.setSalaryMonth(taxDeclareRecord.getSalaryMonth())
|
||||
.setTaxCycle(taxDeclareRecord.getTaxCycle())
|
||||
.setTaxAgentId(taxDeclareRecord.getTaxAgentId())
|
||||
.setTaxAgentName(Optional.ofNullable(taxAgentPO).map(TaxAgentPO::getName).orElse(""))
|
||||
.setDeclareType(taxDeclareTypeEnum)
|
||||
.setDeclareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel()))
|
||||
.setDeclareStatus(taxDeclareStatusEnum)
|
||||
.setDeclareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel()))
|
||||
.setDeclareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg())
|
||||
.setDisplayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1))
|
||||
.setDeclareFailSize(taxDeclareFails.size())
|
||||
.setAbnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size())
|
||||
.setTaxPaidAmount(SalaryEntityUtil.thousandthConvert(taxDeclareRecord.getTaxPaidAmount()));
|
||||
return TaxDeclarationInfoDTO.builder()
|
||||
.salaryMonth(taxDeclareRecord.getSalaryMonth())
|
||||
.taxCycle(taxDeclareRecord.getTaxCycle())
|
||||
.taxAgentId(taxDeclareRecord.getTaxAgentId())
|
||||
.taxAgentName(Optional.ofNullable(taxAgentPO).map(TaxAgentPO::getName).orElse(""))
|
||||
.declareType(taxDeclareTypeEnum)
|
||||
.declareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel()))
|
||||
.declareStatus(taxDeclareStatusEnum)
|
||||
.declareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel()))
|
||||
.declareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg())
|
||||
.displayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1))
|
||||
.declareFailSize(taxDeclareFails.size())
|
||||
.abnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size())
|
||||
.taxPaidAmount(SalaryEntityUtil.thousandthConvert(taxDeclareRecord.getTaxPaidAmount()))
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param saveParam 保存参数
|
||||
* @param employeeId 人员id
|
||||
* @param tenantKey 租户key
|
||||
* @param saveParam 保存参数
|
||||
*/
|
||||
public String save(TaxDeclarationSaveParam saveParam, Long employeeId, String tenantKey) {
|
||||
public String save(TaxDeclarationSaveParam saveParam) {
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true)
|
||||
.setIndex(Util.null2String(IdGenerator.generate()))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 95836, "生成申报表"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(95836, "生成申报表"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
DSTenantKeyThreadVar.tenantKey.set(tenantKey);
|
||||
taxDeclareRecordService.save(saveParam, employeeId, tenantKey);
|
||||
taxDeclareRecordService.save(saveParam);
|
||||
taxDeclarationRate.setStatus(true).setFinish(true);
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("个税申报表生成报错:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187276, "个税申报表生成报错:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187276, "个税申报表生成报错:") + e.getMessage());
|
||||
} finally {
|
||||
DSTenantKeyThreadVar.tenantKey.remove();
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -409,61 +350,53 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 更新个税申报表的待刷新数据的标识
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
public void updateIcon(Long id, Long employeeId, String tenantKey) {
|
||||
taxDeclareRecordService.updateIcon(id, NumberUtils.INTEGER_ZERO, employeeId, tenantKey);
|
||||
public void updateIcon(Long id) {
|
||||
taxDeclareRecordService.updateIcon(id, NumberUtils.INTEGER_ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除个税申报表
|
||||
*
|
||||
* @param ids
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
*/
|
||||
public void delete(Collection<Long> ids, Long employeeId, String tenantKey) {
|
||||
taxDeclareRecordService.deleteByIds(ids, tenantKey);
|
||||
public void delete(Collection<Long> ids) {
|
||||
taxDeclareRecordService.deleteByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取个税申报表是否已经生成
|
||||
*
|
||||
* @param index
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public TaxDeclarationRateDTO getRate(String index, String tenantKey) {
|
||||
return salaryCacheService.get(SalaryCacheKey.TAX_DECLARATION, index, TaxDeclarationRateDTO.class);
|
||||
public TaxDeclarationRateDTO getRate(String index) {
|
||||
return salaryCacheService.get(SalaryCacheKey.TAX_DECLARATION + index);
|
||||
}
|
||||
|
||||
/**
|
||||
* 申报
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
public String declare(Long id, Long employeeId, String tenantKey) {
|
||||
public String declare(Long id) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 156454, "在线申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(156454, "在线申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
DSTenantKeyThreadVar.tenantKey.set(tenantKey);
|
||||
taxDeclareRecordService.declare(id, employeeId, tenantKey);
|
||||
taxDeclareRecordService.declare(id);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("在线申报失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187274, "在线申报失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187274, "在线申报失败:") + e.getMessage());
|
||||
} finally {
|
||||
DSTenantKeyThreadVar.tenantKey.remove();
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -475,26 +408,25 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 获取申报反馈
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
public String getDeclareFeedback(Long id, Long employeeId, String tenantKey) {
|
||||
public String getDeclareFeedback(Long id, Long employeeId) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 182680, "获取申报反馈"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(182680, "获取申报反馈"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
taxDeclareRecordService.getDeclareFeedback(id, taxDeclarationRate, employeeId, tenantKey);
|
||||
taxDeclareRecordService.getDeclareFeedback(id, taxDeclarationRate);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("获取申报反馈失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187255, "获取申报反馈失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187255, "获取申报反馈失败:") + e.getMessage());
|
||||
} finally {
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -506,26 +438,25 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 作废
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
public String cancelDeclare(Long id, Long employeeId, String tenantKey) {
|
||||
public String cancelDeclare(Long id, Long employeeId) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 158842, "作废申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(158842, "作废申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
taxDeclareRecordService.cancelDeclare(id, employeeId, tenantKey);
|
||||
taxDeclareRecordService.cancelDeclare(id);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("作废申报失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187272, "作废申报失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187272, "作废申报失败:") + e.getMessage());
|
||||
} finally {
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -537,26 +468,25 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 获取作废反馈
|
||||
*
|
||||
* @param id
|
||||
* @param tenantKey
|
||||
*/
|
||||
public String getCancelFeedback(Long id, Long employeeId, String tenantKey) {
|
||||
public String getCancelFeedback(Long id, Long employeeId) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 182681, "获取作废申报反馈"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(182681, "获取作废申报反馈"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
taxDeclareRecordService.getCancelFeedback(id, taxDeclarationRate, employeeId, tenantKey);
|
||||
taxDeclareRecordService.getCancelFeedback(id, taxDeclarationRate);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("获取作废反馈结果失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187270, "获取作废反馈结果失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187270, "获取作废反馈结果失败:") + e.getMessage());
|
||||
} finally {
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -569,27 +499,26 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public String updateDeclare(Long id, Long employeeId, String tenantKey) {
|
||||
public String updateDeclare(Long id, Long employeeId) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 177637, "更正申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(177637, "更正申报"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
taxDeclareRecordService.updateDeclare(id, employeeId, tenantKey);
|
||||
taxDeclareRecordService.updateDeclare(id);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("更正申报失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187269, "更正申报失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187269, "更正申报失败:") + e.getMessage());
|
||||
} finally {
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -601,54 +530,46 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
* 税局端申报状态查询
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public String queryDeclareStatus(Long id, Long employeeId, String tenantKey) {
|
||||
return taxDeclareRecordService.queryDeclareStatus(id, employeeId, tenantKey);
|
||||
public String queryDeclareStatus(Long id) {
|
||||
return taxDeclareRecordService.queryDeclareStatus(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 税局端申报明细查询
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public String queryCompanyIncomes(Long id, Long employeeId, String tenantKey) {
|
||||
return taxDeclareRecordService.queryCompanyIncomes(id, employeeId, tenantKey);
|
||||
public String queryCompanyIncomes(Long id) {
|
||||
return taxDeclareRecordService.queryCompanyIncomes(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*
|
||||
* @param id
|
||||
* @param employeeId
|
||||
* @param tenantKey
|
||||
* @return
|
||||
*/
|
||||
public String refreshData(Long id, Long employeeId, String tenantKey) {
|
||||
public String refreshData(Long id) {
|
||||
checkBefore(id);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id))
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 156447, "刷新数据"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
.setMsg(SalaryI18nUtil.getI18nLabel(156447, "刷新数据"));
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
DSTenantKeyThreadVar.tenantKey.set(tenantKey);
|
||||
taxDeclareRecordService.refreshData(id, employeeId, tenantKey);
|
||||
taxDeclareRecordService.refreshData(id);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException | SalaryNullException e) {
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("刷新数据失败:{}", e.getMessage(), e);
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 187268, "刷新数据失败:") + e.getMessage());
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187268, "刷新数据失败:") + e.getMessage());
|
||||
} finally {
|
||||
DSTenantKeyThreadVar.tenantKey.remove();
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION, taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
salaryCacheService.set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -657,97 +578,96 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
}
|
||||
|
||||
private void checkBefore(Long id) {
|
||||
TaxDeclarationRateDTO taxDeclarationRate = salaryCacheService.get(SalaryCacheKey.TAX_DECLARATION, Util.null2String(id), TaxDeclarationRateDTO.class);
|
||||
TaxDeclarationRateDTO taxDeclarationRate = salaryCacheService.get(SalaryCacheKey.TAX_DECLARATION + Util.null2String(id));
|
||||
if (taxDeclarationRate != null && !taxDeclarationRate.isFinish()) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182691, "当前正处于「{0}」中,请稍后再试").replace("{0}", taxDeclarationRate.getMsg()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出个税申报明细列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param simpleEmployee
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> exportTaxDeclarationValue(TaxDeclarationValueListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
.setBiz(String.valueOf(IdGenerator.generate()))
|
||||
.setModule(EntityType.hrmsalary.name())
|
||||
.setFunction("exportTaxDeclarationValue");
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
taxDeclarationExcelService.exportTaxDeclarationValue(excelExportParam, queryParam, simpleEmployee);
|
||||
}
|
||||
};
|
||||
ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportTaxDeclarationValue", localRunnable);
|
||||
return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出未报送的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param simpleEmployee
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> exportEmployee4NotDeclare(AbnormalEmployeeListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
.setBiz(String.valueOf(IdGenerator.generate()))
|
||||
.setModule(EntityType.hrmsalary.name())
|
||||
.setFunction("exportEmployee4NotDeclare");
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
taxDeclarationExcelService.exportEmployee4NotDeclare(excelExportParam, queryParam, simpleEmployee);
|
||||
}
|
||||
};
|
||||
ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4NotDeclare", localRunnable);
|
||||
return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出没有申报数据的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param simpleEmployee
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> exportEmployee4NoValue(AbnormalEmployeeListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
.setBiz(String.valueOf(IdGenerator.generate()))
|
||||
.setModule(EntityType.hrmsalary.name())
|
||||
.setFunction("exportEmployee4NoValue");
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
taxDeclarationExcelService.exportEmployee4NoValue(excelExportParam, queryParam, simpleEmployee);
|
||||
}
|
||||
};
|
||||
ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4NoValue", localRunnable);
|
||||
return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出申报失败的人员列表
|
||||
*
|
||||
* @param queryParam
|
||||
* @param simpleEmployee
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> exportEmployee4Fail(AbnormalEmployeeListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
.setBiz(String.valueOf(IdGenerator.generate()))
|
||||
.setModule(EntityType.hrmsalary.name())
|
||||
.setFunction("exportEmployee4Fail");
|
||||
LocalRunnable localRunnable = new LocalRunnable() {
|
||||
@Override
|
||||
public void execute() {
|
||||
taxDeclarationExcelService.exportEmployee4Fail(excelExportParam, queryParam, simpleEmployee);
|
||||
}
|
||||
};
|
||||
ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4Fail", localRunnable);
|
||||
return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
}
|
||||
// /**
|
||||
// * 导出个税申报明细列表
|
||||
// *
|
||||
// * @param queryParam
|
||||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportTaxDeclarationValue(TaxDeclarationValueListQueryParam queryParam) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setBiz(String.valueOf(IdGenerator.generate()))
|
||||
// .setModule(EntityType.hrmsalary.name())
|
||||
// .setFunction("exportTaxDeclarationValue");
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// taxDeclarationExcelService.exportTaxDeclarationValue(excelExportParam, queryParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportTaxDeclarationValue", localRunnable);
|
||||
// return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 导出未报送的人员列表
|
||||
// *
|
||||
// * @param queryParam
|
||||
// * @param simpleEmployee
|
||||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportEmployee4NotDeclare(AbnormalEmployeeListQueryParam queryParam) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setBiz(String.valueOf(IdGenerator.generate()))
|
||||
// .setModule(EntityType.hrmsalary.name())
|
||||
// .setFunction("exportEmployee4NotDeclare");
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// taxDeclarationExcelService.exportEmployee4NotDeclare(excelExportParam, queryParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4NotDeclare", localRunnable);
|
||||
// return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 导出没有申报数据的人员列表
|
||||
// *
|
||||
// * @param queryParam
|
||||
// * @param simpleEmployee
|
||||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportEmployee4NoValue(AbnormalEmployeeListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setBiz(String.valueOf(IdGenerator.generate()))
|
||||
// .setModule(EntityType.hrmsalary.name())
|
||||
// .setFunction("exportEmployee4NoValue");
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// taxDeclarationExcelService.exportEmployee4NoValue(excelExportParam, queryParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4NoValue", localRunnable);
|
||||
// return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 导出申报失败的人员列表
|
||||
// *
|
||||
// * @param queryParam
|
||||
// * @param simpleEmployee
|
||||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportEmployee4Fail(AbnormalEmployeeListQueryParam queryParam, SimpleEmployee simpleEmployee) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setBiz(String.valueOf(IdGenerator.generate()))
|
||||
// .setModule(EntityType.hrmsalary.name())
|
||||
// .setFunction("exportEmployee4Fail");
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// taxDeclarationExcelService.exportEmployee4Fail(excelExportParam, queryParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "exportEmployee4Fail", localRunnable);
|
||||
// return JsonUtil.parseMap(excelExportParam, Object.class);
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue