From 6aef2856e805076bf6d98c8bd17f5322157868ea Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 8 Mar 2024 11:14:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E7=A8=8E=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../employeedeclare/po/EmployeeDeclarePO.java | 34 +++++++++++ .../po/TaxDeclarationValuePO.java | 17 +++++- .../impl/EmployeeDeclareExcelServiceImpl.java | 32 ++++++++-- .../impl/EmployeeDeclareServiceImpl.java | 58 ++++++++++--------- .../impl/TaxDeclarationExcelServiceImpl.java | 3 - .../impl/TaxDeclarationServiceImpl.java | 26 +++++++++ .../impl/TaxDeclarationValueServiceImpl.java | 51 ++++++++++++++-- .../impl/TaxDeclareRecordServiceImpl.java | 13 +++++ .../wrapper/TaxDeclareRecordWrapper.java | 18 ++++++ 9 files changed, 212 insertions(+), 40 deletions(-) diff --git a/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java b/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java index b589d29c5..7c71b79c1 100644 --- a/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java +++ b/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java @@ -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; diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationValuePO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationValuePO.java index 9c88986dd..addea959b 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationValuePO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationValuePO.java @@ -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 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 ids; diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java index fa23d3cdb..bab047dc1 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java @@ -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> 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, "人员信息采集"); } diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java index 148e973ae..a613fb398 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java @@ -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 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 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 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 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 taxAgentPOS = getTaxAgentService(user).listAll(); + Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId); + for (EmployeeDeclarePO employeeDeclare : employeeDeclares) { + TaxAgentPO taxAgent = taxAgentMap.get(employeeDeclare.getTaxAgentId()); + LoggerContext 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 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 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 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, "获取结果反馈")); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java index 68ac9e277..e72ae6f09 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationExcelServiceImpl.java @@ -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; diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 7490af8d5..c1359a47b 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -480,6 +480,20 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration List objects = new ArrayList<>(); objects.add(taxDeclaration); getTaxDeclarationMapper().batchInsert(objects); + + + // 记录日志 + TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId()); + LoggerContext 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 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, "删除个税申报表")); } } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java index 202d6da3e..d1373f49b 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java @@ -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 listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection taxDeclarationIds, String keyword) { List 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 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 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 diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java index 88cbf4316..4824b3467 100644 --- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java @@ -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 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 salaryAcctEmployees) { diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java index fbb881460..0ecc8c72f 100644 --- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java @@ -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 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); } }