package com.engine.salary.service.impl; import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryItemBiz; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.service.SalaryItemService; import org.apache.commons.collections4.CollectionUtils; import java.util.Collection; import java.util.Collections; import java.util.List; /** * 薪资项目 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public class SalaryItemServiceImpl extends Service implements SalaryItemService { SalaryItemBiz salaryItemMapper; // @Autowired // private SalarySobItemService salarySobItemService; // @Autowired // private SysSalaryItemService sysSalaryItemService; // @Autowired // private LoggerTemplate salaryItemLoggerTemplate; @Override public SalaryItemPO getById(Long id) { return salaryItemMapper.getById(id); } @Override public List listAll() { return salaryItemMapper.listAll(); } @Override public List listByIds(Collection ids) { if (CollectionUtils.isEmpty(ids)) { return Collections.emptyList(); } return salaryItemMapper.listSome(SalaryItemPO.builder().ids(ids).build()); } @Override public List listBySysSalaryItemIds(Collection sysSalaryItemIds) { if (CollectionUtils.isEmpty(sysSalaryItemIds)) { return Collections.emptyList(); } return salaryItemMapper.listSome(SalaryItemPO.builder().sysSalaryItemIds(sysSalaryItemIds).build()); } @Override public List listByName(String name) { return salaryItemMapper.listSome(SalaryItemPO.builder().name(name).build()); } @Override public List listBySystemType(SalarySystemTypeEnum systemType) { return salaryItemMapper.listSome(SalaryItemPO.builder().systemType(systemType.getValue()).build()); } @Override public List listBySystemTypeAndUseDefault(SalarySystemTypeEnum systemType, Integer useDefault) { return salaryItemMapper.listSome(SalaryItemPO.builder().systemType(systemType.getValue()).useDefault(useDefault).build()); } // @Override // public Page listPageByParam(SalaryItemSearchParam searchParam, String tenantKey) { // // 分页参数 // Page page = SalaryPageUtil.buildPage(searchParam.getCurrent(), searchParam.getPageSize()); // // 构建查询参数 // Wrapper queryWrapper = SalaryItemBO.buildQueryWrapper(searchParam, tenantKey); // // 返回查询结果 // return salaryItemMapper.selectPage(page, queryWrapper); // } // @Override // public void save(SalaryItemSaveParam saveParam, Long employeeId) { // // 名称不能和已有的自定义薪资项目重名 // List salaryItemPOS = listByName(saveParam.getName()); // if (CollectionUtils.isNotEmpty(salaryItemPOS)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98326, "薪资项目名称已存在,请重新命名")); // } // // 名称不能和已有的系统薪资项目重名 // List sysSalaryItemPOS = sysSalaryItemService.listByName(saveParam.getName()); // if (CollectionUtils.isNotEmpty(sysSalaryItemPOS)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98328, "自定义薪资项目的名称不能和系统薪资项目的名称重名")); // } // // 保存薪资项目 // SalaryItemPO salaryItemPO = SalaryItemBO.convert2SalaryItemPO(saveParam, Long.valueOf(user.getUID())); // salaryItemMapper.insert(salaryItemPO); // // 记录日志 // LoggerContext loggerContext = new LoggerContext<>(); // loggerContext.setTargetId(String.valueOf(salaryItemPO.getId())); // loggerContext.setTargetName(salaryItemPO.getName()); // loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); // loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(98329, "新建薪资项目")); // loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(98329, "新建薪资项目") + ": " + salaryItemPO.getName()); // loggerContext.setNewValues(salaryItemPO); // salaryItemLoggerTemplate.write(loggerContext); // } // // @Override // public void batchSave(Collection salaryItemPOS) { // salaryItemMapper.batchInsert(salaryItemPOS); // } // // @Override // public void update(SalaryItemSaveParam saveParam, Long employeeId, String tenantKey) { // // 查询薪资项目,判断薪资项目是否存在 // SalaryItemPO salaryItemPO = getById(saveParam.getId(), tenantKey); // if (Objects.isNull(salaryItemPO)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "参数错误,薪资项目不存在或已被删除")); // } // // 名称不能和已有的自定义薪资项目重名 // List salaryItemPOS = listByName(saveParam.getName(), tenantKey); // boolean nameExist = salaryItemPOS.stream().anyMatch(e -> !Objects.equals(salaryItemPO.getId(), e.getId())); // if (nameExist) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98326, "薪资项目名称已存在,请重新命名")); // } // // 名称不能和已有的系统薪资项目重名 // List sysSalaryItemPOS = sysSalaryItemService.listByName(saveParam.getName()); // boolean sysNameExist = sysSalaryItemPOS.stream().anyMatch(e -> !Objects.equals(salaryItemPO.getSysSalaryItemId(), e.getId())); // if (sysNameExist) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98328, "自定义薪资项目的名称不能和系统薪资项目的名称重名")); // } // // 更新薪资项目 // SalaryItemPO newSalaryItemPO = new SalaryItemPO(); // BeanUtils.copyProperties(salaryItemPO, newSalaryItemPO); // // 系统薪资项目的"属性"和"类型"不允许编辑 // if (Objects.equals(newSalaryItemPO.getSystemType(), SalarySystemTypeEnum.CUSTOM.getValue())) { // newSalaryItemPO.setCategory(saveParam.getCategory().getValue()); // newSalaryItemPO.setItemType(saveParam.getItemType().getValue()); // } // newSalaryItemPO.setName(saveParam.getName()); // newSalaryItemPO.setUseDefault(saveParam.getUseDefault()); // newSalaryItemPO.setUseInEmployeeSalary(saveParam.getUseInEmployeeSalary()); // newSalaryItemPO.setRoundingMode(saveParam.getRoundingMode().getValue()); // newSalaryItemPO.setPattern(saveParam.getPattern()); // newSalaryItemPO.setValueType(saveParam.getValueType().getValue()); // newSalaryItemPO.setFormulaId(saveParam.getValueType() == SalaryValueTypeEnum.INPUT ? 0L : saveParam.getFormulaId()); // newSalaryItemPO.setDatasource(saveParam.getValueType() == SalaryValueTypeEnum.INPUT ? SalaryDataSourceEnum.INPUT_IMPORT.getValue() // : SalaryDataSourceEnum.CUSTOM_FORMULA.getValue()); // newSalaryItemPO.setDescription(saveParam.getDescription()); // newSalaryItemPO.setUpdateTime(LocalDateTime.now()); // salaryItemMapper.updateById(newSalaryItemPO); // // 记录日志 // LoggerContext loggerContext = new LoggerContext<>(); // loggerContext.setTargetId(String.valueOf(newSalaryItemPO.getId())); // loggerContext.setTargetName(newSalaryItemPO.getName()); // loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); // loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(93892, "编辑薪资项目")); // loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(93892, "编辑薪资项目") + ": " + newSalaryItemPO.getName()); // loggerContext.setOldValues(salaryItemPO); // loggerContext.setNewValues(newSalaryItemPO); // salaryItemLoggerTemplate.write(loggerContext); // } // // @Override // public void deleteByIds(Collection ids, String tenantKey) { // // 查询薪资项目 // List salaryItemPOS = listByIds(ids, tenantKey); // if (CollectionUtils.isEmpty(salaryItemPOS)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "参数错误,薪资项目不存在或已被删除")); // } // // 查询薪资账套的薪资项目副本,被薪资账套引用的薪资项目不允许删除 // List salarySobItemPOS = salarySobItemService.listBySalaryItemIds(ids, tenantKey); // if (CollectionUtils.isNotEmpty(salarySobItemPOS)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98322, "薪资账套正在使用该薪资项目,不允许删除")); // } // // 删除薪资项目 // ids = SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getId); // salaryItemMapper.deleteByIds(ids, tenantKey); // // 记录删除日志 // salaryItemPOS.forEach(salaryItemPO -> { // LoggerContext loggerContext = new LoggerContext<>(); // loggerContext.setTargetId(String.valueOf(salaryItemPO.getId())); // loggerContext.setTargetName(salaryItemPO.getName()); // loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); // loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(98323, "删除薪资项目")); // loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(98323, "删除薪资项目") + ": " + salaryItemPO.getName()); // loggerContext.setOldValues(salaryItemPO); // salaryItemLoggerTemplate.write(loggerContext); // }); // } }