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.dto.SalarySobCheckRuleListDTO;
import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam;
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.engine.salary.util.page.PageInfo;
import com.weaver.excel.formula.api.entity.ExpressFormula;
import weaver.hrm.User;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
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 列表查询条件
* @return
*/
public PageInfo listPage(SalarySobCheckRuleQueryParam queryParam) {
// 分页查询薪资账套的校验规则
PageInfo page = getSalarySobCheckRuleService(user).listPageByParam(queryParam);
// todo 查询公式详情
// Set formulaIds = SalaryEntityUtil.properties(page.getList(), SalarySobCheckRulePO::getFormulaId);
// List expressFormulas = salaryFormulaService.listExpressFormula(formulaIds);
// 转换成dto
List salarySobCheckRuleListDTOS = SalarySobCheckRuleBO.convert2ListDTO(page.getList(), new ArrayList<>());
// 转换成前端所需的数据格式
PageInfo dtoPage = new PageInfo<>(salarySobCheckRuleListDTOS, SalarySobCheckRuleListDTO.class);
dtoPage.setPageSize(page.getPageSize());
dtoPage.setPageNum(page.getPageNum());
dtoPage.setTotal(page.getTotal());
return 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);
}
}