个税日志

This commit is contained in:
Harryxzy 2024-03-08 11:14:00 +08:00
parent d890ab5a84
commit 6aef2856e8
9 changed files with 212 additions and 40 deletions

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.employeedeclare.po;
import com.engine.salary.elog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -22,122 +23,146 @@ import java.util.Date;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ElogTransform(name = "人员信息报送")
//hrsa_employee_declare
public class EmployeeDeclarePO {
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 个税扣缴义务人
*/
@ElogTransform(name = "个税扣缴义务人")
private Long taxAgentId;
/**
* 税款所属期
*/
@ElogTransform(name = "税款所属期")
private Date taxCycle;
/**
* 人员id
*/
@ElogTransform(name = "人员id")
private Long employeeId;
/**
* 人员类型
*/
@ElogTransform(name = "人员类型")
private Integer employeeType;
/**
* 人员名称
*/
@ElogTransform(name = "人员名称")
private String employeeName;
/**
* 工号
*/
@ElogTransform(name = "工号")
private String jobNum;
/**
* 证件类型
*/
@ElogTransform(name = "证件类型")
private Integer cardType;
/**
* 证件号码
*/
@ElogTransform(name = "证件号码")
private String cardNum;
/**
* 性别
*/
@ElogTransform(name = "性别")
private Integer gender;
/**
* 出生日期
*/
@ElogTransform(name = "出生日期")
private Date birthday;
/**
* 状态
*/
@ElogTransform(name = "状态")
private Integer employmentStatus;
/**
* 手机号码
*/
@ElogTransform(name = "手机号码")
private String mobile;
/**
* 任职受雇从业类型
*/
@ElogTransform(name = "任职受雇从业类型")
private Integer employmentType;
/**
* 入职年度就业情形
*/
@ElogTransform(name = "入职年度就业情形")
private String employmentFirstYear;
/**
* 任职受雇从业日期
*/
@ElogTransform(name = "任职受雇从业日期")
private Date employmentDate;
/**
* 离职日期
*/
@ElogTransform(name = "离职日期")
private Date dismissDate;
/**
* 是否残疾
*/
@ElogTransform(name = "是否残疾")
private Integer disability;
/**
* 残疾证号
*/
@ElogTransform(name = "残疾证号")
private String disabilityCardNo;
/**
* 是否孤老
*/
@ElogTransform(name = "是否孤老")
private Integer lonelyOld;
/**
* 是否是烈属
*/
@ElogTransform(name = "是否是烈属")
private Integer martyrDependents;
/**
* 烈属证号
*/
@ElogTransform(name = "烈属证号")
private String martyrDependentsCardNo;
/**
* 是否扣除减除费用
*/
@ElogTransform(name = "是否扣除减除费用")
private Integer deductExpenses;
/**
@ -145,47 +170,56 @@ public class EmployeeDeclarePO {
* 注意不仅仅是针对某一个月
* 0从未报送成功过1报送成功过
*/
@ElogTransform(name = "是否成功报送过")
private Integer successfullyDeclared;
/**
* 员工信息是否发生变动
* 0本月未改动1本月有改动
*/
@ElogTransform(name = "员工信息是否发生变动")
private Integer newEmployeeInfo;
/**
* 申报状态
*/
@ElogTransform(name = "申报状态")
private Integer declareStatus;
/**
* 申报失败的错误信息
*/
@ElogTransform(name = "申报失败的错误信息")
private String declareErrorMsg;
/**
* 租户key
*/
@ElogTransform(name = "租户key")
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ElogTransform(name = "更新时间")
private Date updateTime;

View File

@ -1,12 +1,12 @@
package com.engine.salary.entity.taxdeclaration.po;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.elog.annotation.ElogTransform;
import com.engine.salary.enums.taxdeclaration.SourceEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Collection;
@ -22,77 +22,90 @@ import java.util.Map;
* @version 1.0
**/
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
//hrsa_tax_declaration_value")
@ElogTransform( name ="个税申报表的值" )
public class TaxDeclarationValuePO implements Serializable {
/**
* 主键id
*/
@ElogTransform( name ="主键id" )
private Long id;
/**
* 个税申报表id
*/
@ElogTransform( name ="个税申报表id" )
private Long taxDeclarationId;
/**
* 个税申报记录id
*/
@ElogTransform( name ="个税申报记录id" )
private Long taxDeclareRecordId;
/**
* 人员类型
*/
@ElogTransform( name ="人员类型" )
private Integer employeeType;
/**
* 人员id
*/
@ElogTransform( name ="人员id" )
private Long employeeId;
/**
* 薪资核算结果
*/
@ElogTransform( name ="薪资核算结果" )
private Map<String, String> resultValue;
/**
* 薪资核算结果只在加密解密中使用
*/
@Encrypt
@ElogTransform( name ="薪资核算结果" )
private String resultValueJson;
/**
* 租户key
*/
@ElogTransform( name ="租户key" )
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform( name ="创建人id" )
private Long creator;
/**
* 是否删除
*/
@ElogTransform( name ="是否删除" )
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform( name ="创建时间" )
private Date createTime;
/**
* 更新时间
*/
@ElogTransform( name ="更新时间" )
private Date updateTime;
/**
* 数据来源
* @see SourceEnum
*/
@ElogTransform( name ="数据来源" )
private Integer source;
private Collection<Long> ids;

View File

@ -2,7 +2,9 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.employeedeclare.bo.EmployeeDeclareBO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareExcelDTO;
@ -11,6 +13,7 @@ import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareImportParam
import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
@ -25,10 +28,7 @@ import com.engine.salary.service.EmployeeDeclareExcelService;
import com.engine.salary.service.EmployeeDeclareService;
import com.engine.salary.service.SalaryEmployeeService;
import com.engine.salary.service.TaxAgentService;
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.*;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.*;
import com.engine.salary.util.valid.SalaryCardUtil;
@ -499,6 +499,20 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
needUpdateEmployeeDeclares.stream().forEach(getEmployeeDeclareMapper()::update);
}
// 记录日志
needAddEmployeeDeclares.addAll(needUpdateEmployeeDeclares);
if (CollectionUtils.isNotEmpty(needAddEmployeeDeclares)) {
LoggerContext loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(taxAgentId));
loggerContext.setTargetName(taxAgent.getName() + "-" + SalaryDateUtil.getFormatYearMonth(param.getTaxCycle()));
loggerContext.setOperateType(OperateTypeEnum.EXCEL_IMPORT.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "导入人员信息报送"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "导入人员信息报送:") + taxAgent.getName());
loggerContext.setNewValueList(needAddEmployeeDeclares);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
}
apidatas.put("successCount", successCount);
apidatas.put("errorCount", failCount);
apidatas.put("errorData", errorData);
@ -569,6 +583,16 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
// 需要导出的数据
List<List<Object>> excelSheetData = ExcelUtil.getExcelSheetData(EmployeeDeclareListDTO.class, dtoList);
// 记录日志
TaxAgentPO taxAgent = getTaxAgentService(user).getById(queryParam.getTaxAgentId());
SalaryLoggerUtil.recordExportSingleLog(SalaryElogConfig.employeeDeclareLoggerTemplate,
queryParam.getTaxAgentId(),
SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」税款所属期「{1}」")
.replace("{0}", taxAgent.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(queryParam.getTaxCycle())),
"导出人员信息报送",
"导出人员信息报送",
user);
return ExcelUtil.genWorkbookV2(excelSheetData, "人员信息采集");
}

View File

@ -215,6 +215,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
employeeDeclare.setNewEmployeeInfo(0);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
TaxAgentPO taxAgent = getTaxAgentService(user).getById(saveParam.getTaxAgentId());
if (Objects.isNull(saveParam.getId())) {
employeeDeclare.setId(IdGenerator.generate());
employeeDeclare.setEmployeeId(saveParam.getEmployeeId());
@ -226,15 +227,15 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
employeeDeclare.setUpdateTime(now);
getEmployeeDeclareMapper().insertIgnoreNull(employeeDeclare);
// 记录日志
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(saveParam.getTaxAgentId()));
loggerContext.setTargetName(employeeDeclare.getEmployeeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报送人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报送人员:") + employeeDeclare.getEmployeeName());
loggerContext.setNewValues(employeeDeclare);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(saveParam.getTaxAgentId()));
loggerContext.setTargetName((taxAgent == null ? "" : taxAgent.getName()) + "-" + employeeDeclare.getEmployeeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报送人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报送人员:") + employeeDeclare.getEmployeeName());
loggerContext.setNewValues(employeeDeclare);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
} else {
EmployeeDeclarePO originEmployeeDeclare = getById(saveParam.getId());
if (Objects.isNull(originEmployeeDeclare)) {
@ -263,7 +264,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(saveParam.getTaxAgentId()));
loggerContext.setTargetName(employeeDeclare.getEmployeeName());
loggerContext.setTargetName((taxAgent == null ? "" : taxAgent.getName()) + "-" + employeeDeclare.getEmployeeName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑报送人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑报送人员:") + employeeDeclare.getEmployeeName());
@ -390,16 +391,19 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
}
getEmployeeDeclareMapper().deleteByIds(ids, new Date());
// 记录日志
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(employeeDeclare.getTaxAgentId()));
loggerContext.setTargetName(employeeDeclare.getEmployeeName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(156445, "删除报送人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(156445, "删除报送人员:") + employeeDeclare.getEmployeeName());
loggerContext.setNewValues(employeeDeclare);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
List<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAll();
Map<Long, TaxAgentPO> taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId);
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
TaxAgentPO taxAgent = taxAgentMap.get(employeeDeclare.getTaxAgentId());
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(Util.null2String(employeeDeclare.getTaxAgentId()));
loggerContext.setTargetName((taxAgent == null ? "" :taxAgent.getName()) + "-" + employeeDeclare.getEmployeeName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除报送人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除报送人员:") + employeeDeclare.getEmployeeName());
loggerContext.setNewValues(employeeDeclare);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
}
}
@ -525,8 +529,8 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// 记录日志
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(refreshParam.getTaxAgentId() + "-" + refreshParam.getTaxCycle().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", refreshParam.getTaxCycle().toString()));
loggerContext.setTargetId(refreshParam.getTaxAgentId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", SalaryDateUtil.getFormatYearMonth(refreshParam.getTaxCycle())));
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "刷新数据"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "刷新数据"));
@ -613,12 +617,12 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// 记录日志
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(param.getTaxAgentId() + "-" + param.getTaxCycle().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", param.getTaxCycle().toString()));
loggerContext.setTargetId(param.getTaxAgentId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", SalaryDateUtil.getFormatYearMonth(param.getTaxCycle())));
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "全部报送"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "全部报送"));
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
SalaryElogConfig.employeeDeclareLoggerTemplate.write(loggerContext);
}
@Override
@ -695,8 +699,8 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// 记录日志
LoggerContext<EmployeeDeclarePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(param.getTaxAgentId() + "-" + param.getTaxCycle().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", param.getTaxCycle().toString()));
loggerContext.setTargetId(param.getTaxAgentId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人:「{0}」税款所属期:「{1}」").replace("{0}", taxAgent.getName()).replace("{1}", SalaryDateUtil.getFormatYearMonth(param.getTaxCycle())));
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "获取结果反馈"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "获取结果反馈"));

View File

@ -2,12 +2,10 @@ package com.engine.salary.service.impl;
import com.api.formmode.mybatis.util.SqlProxyHandle;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.common.util.LogUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxdeclaration.dto.AbnormalEmployeeListDTO;
@ -17,7 +15,6 @@ import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryPa
import com.engine.salary.entity.taxdeclaration.param.DownloadTemplateParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
import com.engine.salary.entity.taxdeclaration.po.*;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;

View File

@ -480,6 +480,20 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
List<TaxDeclarationPO> objects = new ArrayList<>();
objects.add(taxDeclaration);
getTaxDeclarationMapper().batchInsert(objects);
// 记录日志
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId());
LoggerContext<TaxDeclarationPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId()));
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」税款所属期「{1}」申报表类型「{2}」")
.replace("{0}", taxAgentPO.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))
.replace("{2}", incomeCategory.getDefaultLabel()));
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增个税申报表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增个税申报表"));
}
@ -505,6 +519,18 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
}
getTaxDeclarationMapper().deleteByIdZj(taxDeclarationId);
// 记录日志
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(declarationPO.getTaxAgentId());
LoggerContext<TaxDeclarationPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(declarationPO.getTaxDeclareRecordId()));
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」税款所属期「{1}」申报表类型「{2}」")
.replace("{0}", taxAgentPO.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(declarationPO.getTaxCycle()))
.replace("{2}", IncomeCategoryEnum.parseByValue(declarationPO.getIncomeCategory()).getDefaultLabel()));
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除个税申报表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除个税申报表"));
}
}

View File

@ -5,12 +5,15 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.component.SalaryWeaTable;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.encrypt.EncryptUtil;
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.salaryarchive.dto.SalaryArchiveListDTO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationValueList;
import com.engine.salary.entity.taxdeclaration.dto.ContrastListDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
@ -21,6 +24,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
@ -32,10 +36,7 @@ import com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper;
import com.engine.salary.remote.tax.client.DeclareClient;
import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse;
import com.engine.salary.service.*;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryEnumUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.*;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelUtilPlus;
@ -48,6 +49,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import weaver.general.Util;
import weaver.hrm.User;
@ -96,6 +98,10 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
}
private TaxAgentService getTaxAgentService(User user) {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
@Override
public PageInfo<TaxDeclarationValuePO> listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection<Long> taxDeclarationIds, String keyword) {
List<TaxDeclarationValuePO> taxDeclarationValuePOS = getTaxDeclarationValueMapper().listSome(TaxDeclarationValuePO.builder().taxDeclarationIds(taxDeclarationIds).build());
@ -194,9 +200,26 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
}
TaxDeclarationValuePO po = TaxDeclarationValuePO.builder().id(IdGenerator.generate()).taxDeclarationId(param.getTaxDeclarationId()).taxDeclareRecordId(taxDeclareRecordId).employeeId(param.getEmployeeId()).employeeType(param.getEmployeeType()).resultValue(param.getTaxReportColumnValues()).resultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues())).createTime(new Date()).updateTime(new Date()).source(SourceEnum.ADD.getValue()).creator((long) user.getUID()).deleteType(0).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
TaxDeclarationValuePO po4log = new TaxDeclarationValuePO();
BeanUtils.copyProperties(po,po4log);
encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
getTaxDeclarationValueMapper().insertIgnoreNull(po);
// 记录日志
TaxAgentPO taxAgent = getTaxAgentService(user).getById(taxDeclaration.getTaxAgentId());
LoggerContext<TaxDeclarationPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(po.getTaxDeclareRecordId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」,税款所属期「{1}」,人员id「{3}」")
.replace("{0}", taxAgent.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(declareRecordPO.getTaxCycle()))
.replace("{2}", po.getEmployeeId().toString()));
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增人员"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增人员"));
loggerContext.setNewValues(po4log);
SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext);
//新增年终奖
if (IncomeCategoryEnum.ONETIME_ANNUAL_BONUS.getValue().equals(taxDeclaration.getIncomeCategory())) {
autoAddWagesDeclare(declareRecordPO);
@ -206,12 +229,32 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
@Override
public void edit(TaxDeclareRecordDetailSaveParam param) {
TaxDeclarationValuePO po = getById(param.getId());
TaxDeclarationValuePO oldPo = new TaxDeclarationValuePO();
BeanUtils.copyProperties(po, oldPo);
po.setResultValue(param.getTaxReportColumnValues());
po.setResultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues()));
po.setUpdateTime(new Date());
po.setSource(SourceEnum.EDIT.getValue());
encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
getTaxDeclarationValueMapper().updateIgnoreNull(po);
TaxDeclarationValuePO po4log = getTaxDeclarationValueMapper().getById(po.getId());
// 记录日志
TaxDeclareRecordPO taxDeclareRecordPO = getTaxDeclareRecordMapper().getById(po.getTaxDeclareRecordId());
TaxAgentPO taxAgent = getTaxAgentService(user).getById(taxDeclareRecordPO.getTaxAgentId());
LoggerContext<TaxDeclarationValuePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(po.getTaxDeclareRecordId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」税款所属期「{1}」人员id「{3}」")
.replace("{0}", taxAgent.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecordPO.getTaxCycle()))
.replace("{2}", po.getEmployeeId().toString()));
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "修改个税申报数据"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "修改个税申报数据"));
loggerContext.setOldValues(oldPo);
loggerContext.setNewValues(po4log);
SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext);
}
@Override

View File

@ -389,6 +389,19 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
//更新核算记录状态
getSalaryAcctRecordService(user).updateStatusByIds(salaryAcctRecordIds, SalaryAcctRecordStatusEnum.DECLARED);
// 记录日志
TaxAgentPO taxAgent = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId());
LoggerContext<TaxDeclarationValuePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(taxDeclareRecord.getId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」税款所属期「{1}」")
.replace("{0}", taxAgent.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle())));
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "刷新个税申报数据"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "刷新个税申报数据"));
SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext);
}
private TaxDeclarationResult generateReportPerRecord(TaxDeclareRecordPO taxDeclareRecord, List<SalaryAcctEmployeePO> salaryAcctEmployees) {

View File

@ -3,6 +3,8 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.cache.SalaryCacheKey;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
@ -11,6 +13,7 @@ import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationDetailBO;
import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.param.*;
import com.engine.salary.entity.taxdeclaration.po.*;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum;
@ -851,5 +854,20 @@ public class TaxDeclareRecordWrapper extends Service {
}
getTaxDeclarationValueService(user).deleteById(deleteId);
// 记录日志
TaxDeclareRecordPO taxDeclareRecordPO = getTaxDeclareRecordService(user).getById(declarationValuePO.getTaxDeclareRecordId());
TaxAgentPO taxAgent = getTaxAgentService(user).getById(taxDeclareRecordPO.getTaxAgentId());
LoggerContext<TaxDeclarationPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(taxDeclareRecordPO.getId().toString());
loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "个税扣缴义务人「{0}」,税款所属期「{1}」,人员id「{3}」")
.replace("{0}", taxAgent.getName())
.replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecordPO.getTaxCycle()))
.replace("{2}", declarationValuePO.getEmployeeId().toString()));
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "删除个税申报数据"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "删除个税申报数据"));
loggerContext.setOldValues(declarationValuePO);
SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext);
}
}