在线算税日志

This commit is contained in:
钱涛 2024-06-20 10:39:40 +08:00
parent 0df6169152
commit ba49d66b46
5 changed files with 152 additions and 6 deletions

View File

@ -0,0 +1,52 @@
package com.engine.salary.enums.common;
import com.engine.salary.enums.BaseEnum;
import lombok.AllArgsConstructor;
/**
* 薪酬日志的项目
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@AllArgsConstructor
public enum SalaryLogGroupTypeEnum implements BaseEnum<String> {
// 其他业务数据相关
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;
}
}

View File

@ -0,0 +1,57 @@
package com.engine.salary.enums.common;
import com.engine.salary.enums.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 薪酬模块日志的操作类型
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Getter
@AllArgsConstructor
public enum SalaryLogOperateTypeEnum implements BaseEnum<String> {
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;
}
}

View File

@ -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<String, String> newResultValueMap,
SalaryLogOperateTypeEnum operateType);
}

View File

@ -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<String, String> newResultValueMap,
SalaryLogOperateTypeEnum operateType) {
LoggerContext<Map<String, String>> 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);
}
}

View File

@ -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<SalaryAcctCalcTaxReqPO> 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<SalaryAcctTaxAgentPO> 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);
}
}