103 lines
4.4 KiB
Java
103 lines
4.4 KiB
Java
|
|
package com.engine.salary.service.impl;
|
||
|
|
|
||
|
|
import cn.hutool.core.util.StrUtil;
|
||
|
|
import com.engine.common.util.ServiceUtil;
|
||
|
|
import com.engine.core.impl.Service;
|
||
|
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||
|
|
import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
|
||
|
|
import com.engine.salary.entity.setting.po.PageListSettingPO;
|
||
|
|
import com.engine.salary.mapper.setting.PageListSettingMapper;
|
||
|
|
import com.engine.salary.service.SalaryItemService;
|
||
|
|
import com.engine.salary.service.SalarySobService;
|
||
|
|
import com.engine.salary.service.SettingService;
|
||
|
|
import com.engine.salary.util.JsonUtil;
|
||
|
|
import com.engine.salary.util.db.IdGenerator;
|
||
|
|
import com.engine.salary.util.db.MapperProxyFactory;
|
||
|
|
import weaver.hrm.User;
|
||
|
|
|
||
|
|
import java.util.*;
|
||
|
|
import java.util.stream.Collectors;
|
||
|
|
|
||
|
|
import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 薪资核算
|
||
|
|
* <p>Copyright: Copyright (c) 2022</p>
|
||
|
|
* <p>Company: 泛微软件</p>
|
||
|
|
*
|
||
|
|
* @author qiantao
|
||
|
|
* @version 1.0
|
||
|
|
**/
|
||
|
|
public class SettingServiceImpl extends Service implements SettingService {
|
||
|
|
|
||
|
|
private PageListSettingMapper getPageListSettingMapper() {
|
||
|
|
return MapperProxyFactory.getProxy(PageListSettingMapper.class);
|
||
|
|
}
|
||
|
|
|
||
|
|
private SalarySobService getSalarySobService(User user) {
|
||
|
|
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||
|
|
}
|
||
|
|
|
||
|
|
private SalaryItemService getSalaryItemService(User user) {
|
||
|
|
return ServiceUtil.getService(SalaryItemServiceImpl.class, user);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) {
|
||
|
|
Date now = new Date();
|
||
|
|
|
||
|
|
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage());
|
||
|
|
if (pageListSettingPO != null) {
|
||
|
|
pageListSettingPO.setSetting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting()));
|
||
|
|
pageListSettingPO.setUpdateTime(now);
|
||
|
|
getPageListSettingMapper().updateIgnoreNull(pageListSettingPO);
|
||
|
|
} else {
|
||
|
|
pageListSettingPO = PageListSettingPO.builder()
|
||
|
|
.id(IdGenerator.generate())
|
||
|
|
.page(pageListSettingSaveParam.getPage())
|
||
|
|
.setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting()))
|
||
|
|
.creator((long) user.getUID())
|
||
|
|
.createTime(now)
|
||
|
|
.updateTime(now)
|
||
|
|
.deleteType(0)
|
||
|
|
.tenantKey(DEFAULT_TENANT_KEY)
|
||
|
|
.build();
|
||
|
|
getPageListSettingMapper().insertIgnoreNull(pageListSettingPO);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public Map getPageListSetting(String page) {
|
||
|
|
|
||
|
|
Map result = new HashMap();
|
||
|
|
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page);
|
||
|
|
if ("salary_details_report".equals(page)) {
|
||
|
|
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
|
||
|
|
salaryItemList = salaryItemList.stream()
|
||
|
|
.sorted(new Comparator<SalaryItemPO>() {
|
||
|
|
@Override
|
||
|
|
public int compare(SalaryItemPO o1, SalaryItemPO o2) {
|
||
|
|
if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
|
||
|
|
Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
|
||
|
|
Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
|
||
|
|
return systemType1.compareTo(systemType2);
|
||
|
|
} else {
|
||
|
|
Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
|
||
|
|
Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
|
||
|
|
return sortedIndex2.compareTo(sortedIndex1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.collect(Collectors.toList());
|
||
|
|
result.put("setting", salaryItemList);
|
||
|
|
if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) {
|
||
|
|
result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class));
|
||
|
|
} else {
|
||
|
|
List<Long> collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
|
||
|
|
result.put("checked", collect);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
}
|