diff --git a/src/com/engine/salary/enums/common/SalaryLogGroupTypeEnum.java b/src/com/engine/salary/enums/common/SalaryLogGroupTypeEnum.java new file mode 100644 index 000000000..5f4f684f6 --- /dev/null +++ b/src/com/engine/salary/enums/common/SalaryLogGroupTypeEnum.java @@ -0,0 +1,52 @@ +package com.engine.salary.enums.common; + +import com.engine.salary.enums.BaseEnum; +import lombok.AllArgsConstructor; + +/** + * 薪酬日志的项目 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@AllArgsConstructor +public enum SalaryLogGroupTypeEnum implements BaseEnum { + + // 其他业务数据相关 + CUS_BIZ_SETTING_FORM("1", "自定义业务数据表", 254950), + CUS_BIZ_SETTING_FIELD("2", "自定义业务数据表字段", 254951), + // 年终奖金相关 + ANNUAL_BONUS_PLAN("3","最优年终奖计税方案", 247010), + ANNUAL_BONUS_ADDUP("4","合并计税基础数据",250255), + ANNUAL_BONUS_STRATEGY("5","优化方案详情",250256), + // 薪资核算相关 + SALARY_ACCT_RECORD("6","薪资核算", 95783), + SALARY_ACCT_EMPLOYEE("7", "薪资核算人员", 203828), + SALARY_ACCT_RESULT_VALUE("8","薪资核算结果",187411), + SALARY_ACCT_CHECK_RESULT("9","薪资核算结果校验异常", 268617), + SALARY_ACCT_COMPARISON_RESULT("10","薪资核算线下对比结果", 268616), + ; + + private final String value; + + private final String defaultLabel; + + private final Integer labelId; + + @Override + public String getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/salary/enums/common/SalaryLogOperateTypeEnum.java b/src/com/engine/salary/enums/common/SalaryLogOperateTypeEnum.java new file mode 100644 index 000000000..b42cf2a9d --- /dev/null +++ b/src/com/engine/salary/enums/common/SalaryLogOperateTypeEnum.java @@ -0,0 +1,57 @@ +package com.engine.salary.enums.common; + +import com.engine.salary.enums.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 薪酬模块日志的操作类型 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Getter +@AllArgsConstructor +public enum SalaryLogOperateTypeEnum implements BaseEnum { + + VIEW("0","查看",90821), + ADD("1", "新建", 94607), + UPDATE("2", "更新", 249295), + DELETE("3", "删除", 87061), + FILE("4", "归档", 92144), + CANCEL_FILE("5", "取消归档", 145989), + CLEAR("6", "一键清空", 158473), + CALCULATE("7", "核算", 94146), + SYNC("8", "同步", 93950), + EXCEL_IMPORT("9", "导入", 87622), + RE_CALCULATE("10", "重新核算", 98820), + BATCH_EDIT("11","批量编辑", 158819), + CHECK("12","校验", 95786), + CALC_TAX_ONLINE("13","在线计算个税", 268191), + GET_CALC_TAX_FEEDBACK("14","获取个税计算反馈", 267984), + EXCEL_EXPORT("15","导出",17416) + ; + + private final String value; + + private final String defaultLabel; + + private final Integer labelId; + + @Override + public String getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } +} diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index 07485a3ef..d537c56c6 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -5,7 +5,9 @@ import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO; import com.engine.salary.entity.salaryacct.param.*; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; +import com.engine.salary.enums.common.SalaryLogOperateTypeEnum; import com.engine.salary.util.page.PageInfo; import java.util.Collection; @@ -211,4 +213,15 @@ public interface SalaryAcctResultService { * @param param */ void batchUpdate(SalaryAcctResultBatchUpdateParam param); + + /** + * 记录日志 + * + * @param salaryAcctRecord + * @param newResultValueMap + * @param operateType + */ + void writeBatchLog(SalaryAcctRecordPO salaryAcctRecord, + Map newResultValueMap, + SalaryLogOperateTypeEnum operateType); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 17bc144cd..ee4112a37 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -30,6 +30,8 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.common.FilterEnum; +import com.engine.salary.enums.common.SalaryLogGroupTypeEnum; +import com.engine.salary.enums.common.SalaryLogOperateTypeEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum; @@ -1236,4 +1238,21 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } } + + @Override + public void writeBatchLog(SalaryAcctRecordPO salaryAcctRecord, + Map newResultValueMap, + SalaryLogOperateTypeEnum operateType) { + LoggerContext> context = new LoggerContext<>(); + context.setUser(user); + context.setTargetId(salaryAcctRecord.getId().toString()); + context.setTargetName(SalaryI18nUtil.getI18nLabel( 268573, "全部人员")); + context.setOperator(user.getUID()+""); + context.setOperateType(operateType.getValue()); + context.setOperateTypeName(operateType.getDefaultLabel()); + context.setGroupId(SalaryLogGroupTypeEnum.SALARY_ACCT_RESULT_VALUE.getValue()); + context.setGroupNameLabel(SalaryLogGroupTypeEnum.SALARY_ACCT_RESULT_VALUE.getLabelId().toString()); + context.setNewValues(newResultValueMap); + SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(context); + } } \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SalaryCalcTaxServiceImpl.java b/src/com/engine/salary/service/impl/SalaryCalcTaxServiceImpl.java index 1eedb6ae5..9e41240a4 100644 --- a/src/com/engine/salary/service/impl/SalaryCalcTaxServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryCalcTaxServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; @@ -17,6 +18,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO; import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO; import com.engine.salary.entity.taxdeclaration.response.DeclareTaxResponse; +import com.engine.salary.enums.common.SalaryLogOperateTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -111,13 +113,18 @@ public class SalaryCalcTaxServiceImpl extends Service implements SalaryCalcTaxSe throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160525, "接口流量不足,暂无法使用该功能,请先购买智能算薪接口流量")); } - int i = getSalaryAcctEmployeeService(user).countNotDeclareByParam(AbnormalEmployeeListQueryParam.builder().recordId(salaryCalcTaxParam.getSalaryAcctRecordId()).build()); + Long salaryAcctRecordId = salaryCalcTaxParam.getSalaryAcctRecordId(); + int i = getSalaryAcctEmployeeService(user).countNotDeclareByParam(AbnormalEmployeeListQueryParam.builder().recordId(salaryAcctRecordId).build()); if (i > 0) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(11111, "存在未报送的人员,请先进行人员报送")); } + List reqs = getSalaryAcctCalcTaxReqService(user).listByRecordId(salaryAcctRecordId); + if (CollUtil.isNotEmpty(reqs)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(11111, "请先获取上一次在线算税结果")); + } // 查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salaryCalcTaxParam.getSalaryAcctRecordId()); + SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); // 查询薪资核算记录关联的个税扣缴义务人 List salaryAcctTaxAgents = getSalaryAcctTaxAgentService(user) .listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecord.getId())); @@ -176,9 +183,7 @@ public class SalaryCalcTaxServiceImpl extends Service implements SalaryCalcTaxSe // 批量保存 getSalaryAcctCalcTaxReqService(user).batchSave(salaryAcctCalcTaxReqs); // 记录日志 - String operateTypeName = SalaryI18nUtil.getI18nLabel(268191, "在线计算个税"); - // 记录日志 -// getSalaryAcctResultService(user).writeBatchLog(salaryAcctRecord, Collections.emptyMap(), SalaryLogOperateTypeEnum.CALC_TAX_ONLINE); + getSalaryAcctResultService(user).writeBatchLog(salaryAcctRecord, Collections.emptyMap(), SalaryLogOperateTypeEnum.CALC_TAX_ONLINE); } @Override @@ -263,6 +268,6 @@ public class SalaryCalcTaxServiceImpl extends Service implements SalaryCalcTaxSe getSalaryAcctResultService(user).batchUpdate(resultPOS); getSalaryAcctCalcTaxReqService(user).deleteByRecordId(salaryAcctRecord.getId()); // 记录日志 -// getSalaryAcctResultService(user).writeBatchLog(salaryAcctRecord, Collections.emptyMap(), SalaryLogOperateTypeEnum.GET_CALC_TAX_FEEDBACK); + getSalaryAcctResultService(user).writeBatchLog(salaryAcctRecord, Collections.emptyMap(), SalaryLogOperateTypeEnum.GET_CALC_TAX_FEEDBACK); } }