package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.salarysob.bo.SalarySobCheckRuleBO;
import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleFormDTO;
import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleSaveParam;
import com.engine.salary.entity.salarysob.param.UpdateCheckRuleFormulaParam;
import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.SalaryFormulaService;
import com.engine.salary.service.SalarySobCheckRuleService;
import com.engine.salary.service.impl.SalarySobCheckRuleServiceImpl;
import com.engine.salary.util.SalaryI18nUtil;
import com.weaver.excel.formula.api.entity.ExpressFormula;
import weaver.hrm.User;
import java.util.Collection;
import java.util.Objects;
/**
* 薪资账套的校验规则
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class SalarySobCheckRuleWrapper extends Service {
private SalarySobCheckRuleService getSalarySobCheckRuleService(User user) {
return (SalarySobCheckRuleService) ServiceUtil.getService(SalarySobCheckRuleServiceImpl.class, user);
}
private SalaryFormulaService salaryFormulaService;
/**
* 薪资账套的校验规则列表
*
* @param queryParam 列表查询条件
* @param tenantKey 租户key
* @return
*/
// public WeaTable listPage(SalarySobCheckRuleQueryParam queryParam, String tenantKey) {
// // 分页查询薪资账套的校验规则
// Page page = salarySobCheckRuleService.listPageByParam(queryParam, tenantKey);
// // 查询公式详情
// Set formulaIds = SalaryEntityUtil.properties(page.getRecords(), SalarySobCheckRulePO::getFormulaId);
// List expressFormulas = salaryFormulaService.listExpressFormula(formulaIds, tenantKey);
// // 转换成dto
// List salarySobCheckRuleListDTOS = SalarySobCheckRuleBO.convert2ListDTO(page.getRecords(), expressFormulas);
// // 转换成前端所需的数据格式
// Page dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
// dtoPage.setRecords(salarySobCheckRuleListDTOS);
// return SalaryFormatUtil.getInstance().buildTable(SalarySobCheckRuleListDTO.class, dtoPage);
// }
/**
* 薪资账套的校验规则详情
*
* @param id 校验规则的id
* @return
*/
public SalarySobCheckRuleFormDTO getForm(Long id) {
SalarySobCheckRuleFormDTO checkRuleFormDTO = new SalarySobCheckRuleFormDTO();
if (!Objects.isNull(id)) {
// 查询校验规则
SalarySobCheckRulePO salarySobCheckRulePO = getSalarySobCheckRuleService(user).getById(id);
if (Objects.isNull(salarySobCheckRulePO)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98636, "校验规则不存在或者已被删除"));
}
// 查询公式详情
ExpressFormula expressFormula = salaryFormulaService.getExpressFormula(salarySobCheckRulePO.getFormulaId());
// 转换成详情dto
checkRuleFormDTO = SalarySobCheckRuleBO.convert2FormDTO(salarySobCheckRulePO, expressFormula);
}
// 转换成前端所需的数据格式
return checkRuleFormDTO;
}
/**
* 保存
*
* @param saveParam 保存参数
*/
public void save(SalarySobCheckRuleSaveParam saveParam) {
getSalarySobCheckRuleService(user).save(saveParam);
}
/**
* 更新
*
* @param updateParam 更新参数
*/
public void update(SalarySobCheckRuleSaveParam updateParam) {
getSalarySobCheckRuleService(user).update(updateParam);
}
/**
* 更新校验规则的公式
*
* @param updateParam 更新参数
*/
public void updateFormulaId(UpdateCheckRuleFormulaParam updateParam) {
getSalarySobCheckRuleService(user).updateFormulaId(updateParam);
}
/**
* 删除
*
* @param ids 校验规则的id
*/
public void delete(Collection ids) {
getSalarySobCheckRuleService(user).deleteByIds(ids);
}
}