193 lines
9.8 KiB
Java
193 lines
9.8 KiB
Java
|
|
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;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 薪资项目
|
||
|
|
* <p>Copyright: Copyright (c) 2022</p>
|
||
|
|
* <p>Company: 泛微软件</p>
|
||
|
|
*
|
||
|
|
* @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<SalaryItemPO> listAll() {
|
||
|
|
return salaryItemMapper.listAll();
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public List<SalaryItemPO> listByIds(Collection<Long> ids) {
|
||
|
|
if (CollectionUtils.isEmpty(ids)) {
|
||
|
|
return Collections.emptyList();
|
||
|
|
}
|
||
|
|
return salaryItemMapper.listSome(SalaryItemPO.builder().ids(ids).build());
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public List<SalaryItemPO> listBySysSalaryItemIds(Collection<Long> sysSalaryItemIds) {
|
||
|
|
if (CollectionUtils.isEmpty(sysSalaryItemIds)) {
|
||
|
|
return Collections.emptyList();
|
||
|
|
}
|
||
|
|
return salaryItemMapper.listSome(SalaryItemPO.builder().sysSalaryItemIds(sysSalaryItemIds).build());
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public List<SalaryItemPO> listByName(String name) {
|
||
|
|
return salaryItemMapper.listSome(SalaryItemPO.builder().name(name).build());
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public List<SalaryItemPO> listBySystemType(SalarySystemTypeEnum systemType) {
|
||
|
|
return salaryItemMapper.listSome(SalaryItemPO.builder().systemType(systemType.getValue()).build());
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public List<SalaryItemPO> listBySystemTypeAndUseDefault(SalarySystemTypeEnum systemType, Integer useDefault) {
|
||
|
|
return salaryItemMapper.listSome(SalaryItemPO.builder().systemType(systemType.getValue()).useDefault(useDefault).build());
|
||
|
|
}
|
||
|
|
|
||
|
|
// @Override
|
||
|
|
// public Page<SalaryItemPO> listPageByParam(SalaryItemSearchParam searchParam, String tenantKey) {
|
||
|
|
// // 分页参数
|
||
|
|
// Page<SalaryItemPO> page = SalaryPageUtil.buildPage(searchParam.getCurrent(), searchParam.getPageSize());
|
||
|
|
// // 构建查询参数
|
||
|
|
// Wrapper<SalaryItemPO> queryWrapper = SalaryItemBO.buildQueryWrapper(searchParam, tenantKey);
|
||
|
|
// // 返回查询结果
|
||
|
|
// return salaryItemMapper.selectPage(page, queryWrapper);
|
||
|
|
// }
|
||
|
|
|
||
|
|
// @Override
|
||
|
|
// public void save(SalaryItemSaveParam saveParam, Long employeeId) {
|
||
|
|
// // 名称不能和已有的自定义薪资项目重名
|
||
|
|
// List<SalaryItemPO> salaryItemPOS = listByName(saveParam.getName());
|
||
|
|
// if (CollectionUtils.isNotEmpty(salaryItemPOS)) {
|
||
|
|
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98326, "薪资项目名称已存在,请重新命名"));
|
||
|
|
// }
|
||
|
|
// // 名称不能和已有的系统薪资项目重名
|
||
|
|
// List<SysSalaryItemPO> 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<SalaryItemPO> 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<SalaryItemPO> 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<SalaryItemPO> 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<SysSalaryItemPO> 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<SalaryItemPO> 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<Long> ids, String tenantKey) {
|
||
|
|
// // 查询薪资项目
|
||
|
|
// List<SalaryItemPO> salaryItemPOS = listByIds(ids, tenantKey);
|
||
|
|
// if (CollectionUtils.isEmpty(salaryItemPOS)) {
|
||
|
|
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "参数错误,薪资项目不存在或已被删除"));
|
||
|
|
// }
|
||
|
|
// // 查询薪资账套的薪资项目副本,被薪资账套引用的薪资项目不允许删除
|
||
|
|
// List<SalarySobItemPO> 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<SalaryItemPO> 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);
|
||
|
|
// });
|
||
|
|
// }
|
||
|
|
}
|