442 lines
23 KiB
Java
442 lines
23 KiB
Java
package com.engine.salary.service.impl;
|
||
|
||
import cn.hutool.json.JSONUtil;
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.engine.common.util.ServiceUtil;
|
||
import com.engine.core.impl.Service;
|
||
import com.engine.salary.biz.SalarySobBiz;
|
||
import com.engine.salary.biz.SalaryTemplateBiz;
|
||
import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO;
|
||
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateListDTO;
|
||
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemListDTO;
|
||
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO;
|
||
import com.engine.salary.entity.salaryBill.param.SalaryTemplateCopyParam;
|
||
import com.engine.salary.entity.salaryBill.param.SalaryTemplateDefaultUseParam;
|
||
import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam;
|
||
import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
|
||
import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO;
|
||
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||
import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO;
|
||
import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO;
|
||
import com.engine.salary.entity.salarysob.po.SalarySobItemHidePO;
|
||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||
import com.engine.salary.enums.salarybill.SalaryTemplateWhetherEnum;
|
||
import com.engine.salary.exception.SalaryRunTimeException;
|
||
import com.engine.salary.service.*;
|
||
import com.engine.salary.util.SalaryEntityUtil;
|
||
import com.engine.salary.util.page.PageInfo;
|
||
import com.engine.salary.util.page.SalaryPageUtil;
|
||
import com.mzlion.core.utils.BeanUtils;
|
||
import com.engine.salary.util.db.IdGenerator;
|
||
import org.apache.commons.collections.CollectionUtils;
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.apache.commons.lang3.math.NumberUtils;
|
||
import weaver.hrm.User;
|
||
|
||
import java.util.*;
|
||
import java.util.stream.Collectors;
|
||
|
||
/**
|
||
* @Description: 工资单模板
|
||
* @Author: wangxiangzhong
|
||
* @Date: 2021-12-08 14:44
|
||
*/
|
||
public class SalaryTemplateServiceImpl extends Service implements SalaryTemplateService {
|
||
|
||
private SalaryTemplateBiz mapper = new SalaryTemplateBiz();
|
||
|
||
private SalarySobBiz salarySobMapper = new SalarySobBiz();
|
||
|
||
private SalarySobItemService getSalarySobItemService(User user) {
|
||
return ServiceUtil.getService(SalarySobItemServiceImpl.class, user);
|
||
}
|
||
|
||
private SalarySobService getSalarySobService(User user) {
|
||
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||
}
|
||
|
||
private TaxAgentService getTaxAgentService(User user) {
|
||
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
|
||
}
|
||
|
||
private SalarySobItemHideService getSalarySobItemHideService(User user) {
|
||
return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user);
|
||
}
|
||
|
||
private SalaryBillItemNameService getSalaryBillItemNameService(User user) {
|
||
return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user);
|
||
}
|
||
|
||
@Override
|
||
public SalaryTemplatePO getById(Long id) {
|
||
return mapper.getById(id);
|
||
}
|
||
|
||
// @Override
|
||
// public Map<String, Object> listPage(SalaryTemplateQueryParam queryParam) {
|
||
// mapper.list(queryParam);
|
||
// return page;
|
||
// }
|
||
|
||
@Override
|
||
public String defaultUse(SalaryTemplateDefaultUseParam defaultUseParamy) {
|
||
// 校验参数
|
||
SalaryTemplateDefaultUseParam.checkParam(defaultUseParamy);
|
||
|
||
SalaryTemplatePO salaryTemplate = getById(defaultUseParamy.getId());
|
||
|
||
if (salaryTemplate == null) {
|
||
throw new SalaryRunTimeException("工资单模板不存在");
|
||
}
|
||
|
||
// 选中默认使用
|
||
SalaryTemplatePO po = new SalaryTemplatePO();
|
||
po.setDeleteType(0);
|
||
po.setSalarySobId(salaryTemplate.getSalarySobId());
|
||
po.setUseType(SalaryTemplateWhetherEnum.FALSE.getValue());
|
||
mapper.updateBySalarySobId(po);
|
||
|
||
SalaryTemplatePO salaryTemplateNew = new SalaryTemplatePO();
|
||
BeanUtils.copyProperties(salaryTemplate, salaryTemplateNew);
|
||
salaryTemplateNew.setUseType(SalaryTemplateWhetherEnum.TRUE.getValue());
|
||
mapper.updateById(salaryTemplateNew);
|
||
|
||
// 记录日志
|
||
// SalaryLoggerUtil.recordUpdateSingleLog(salaryTemplateLoggerTemplate,
|
||
// salaryTemplate.getId(),
|
||
// salaryTemplateNew.getName(),
|
||
// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 100534, "设为默认使用"),
|
||
// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 100534, "设为默认使用"),
|
||
// salaryTemplate,
|
||
// salaryTemplateNew);
|
||
|
||
return "";
|
||
}
|
||
|
||
@Override
|
||
public String save(SalaryTemplateSaveParam saveParam) {
|
||
// 校验参数
|
||
SalaryTemplateSaveParam.checkParam(saveParam);
|
||
|
||
SalaryTemplatePO po = new SalaryTemplatePO();
|
||
po.setDeleteType(0);
|
||
po.setName(saveParam.getName());
|
||
List<SalaryTemplatePO> salaryTemplates = mapper.listSome(po);
|
||
|
||
if (CollectionUtils.isNotEmpty(salaryTemplates)) {
|
||
throw new SalaryRunTimeException("工资单模板名称不允许重复");
|
||
}
|
||
|
||
SalarySobPO salarySobPO = new SalarySobPO();
|
||
po.setDeleteType(0);
|
||
po.setId(saveParam.getSalarySobId());
|
||
List<SalarySobPO> salarySobs = salarySobMapper.listSome(salarySobPO);
|
||
|
||
if (CollectionUtils.isEmpty(salarySobs)) {
|
||
throw new SalaryRunTimeException("薪资账套不存在");
|
||
}
|
||
// todo 薪资项目设置检查校验
|
||
// 保存
|
||
SalaryTemplatePO salaryTemplate = SalaryTemplateBO.convertToPO(saveParam, (long) user.getUID());
|
||
// salaryTemplate.setSendEmailId(saveParam.getSendEmail());
|
||
salaryTemplate.setEmailStatus(saveParam.getEmailStatus() ? 1 : 0);
|
||
salaryTemplate.setMsgStatus(saveParam.getMsgStatus() ? 1 : 0);
|
||
salaryTemplate.setSmsStatus(saveParam.getSmsStatus() != null && saveParam.getSmsStatus() ? 1 : 0);
|
||
salaryTemplate.setSmsSetting(saveParam.getSmsSetting() == null ? "" : JSON.toJSONString(saveParam.getSmsSetting()));
|
||
salaryTemplate.setTextContentPosition(saveParam.getTextContentPosition());
|
||
salaryTemplate.setSalaryItemNullStatus(saveParam.getSalaryItemNullStatus() ? 1 : 0);
|
||
salaryTemplate.setSalaryItemZeroStatus(saveParam.getSalaryItemZeroStatus() ? 1 : 0);
|
||
salaryTemplate.setAutoSendCycleType(saveParam.getAutoSendCycleType());
|
||
mapper.insert(salaryTemplate);
|
||
|
||
// 存储工资单项目自定义名称信息
|
||
saveParam.getSalaryBillItemNameSetting().stream().forEach(set -> set.setSalaryTemplateId(salaryTemplate.getId()));
|
||
getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting());
|
||
// 记录日志
|
||
// SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate,
|
||
// salaryTemplate.getId(),
|
||
// salaryTemplate.getName(),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100538, "新增工资单模板"),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100538, "新增工资单模板"),
|
||
// salaryTemplate);
|
||
|
||
return "";
|
||
}
|
||
|
||
@Override
|
||
public String update(SalaryTemplateSaveParam saveParam) {
|
||
// 校验参数
|
||
SalaryTemplateSaveParam.checkParam(saveParam);
|
||
// 校验是否可以编辑
|
||
if (saveParam.getId() == null) {
|
||
throw new SalaryRunTimeException("参数错误");
|
||
}
|
||
SalaryTemplatePO salaryTemplate = getById(saveParam.getId());
|
||
if (salaryTemplate == null) {
|
||
throw new SalaryRunTimeException("工资单模板不存在");
|
||
}
|
||
|
||
// 工资单模板编辑时不允许调整账套
|
||
if (!salaryTemplate.getSalarySobId().equals(saveParam.getSalarySobId())) {
|
||
throw new SalaryRunTimeException("工资单模板编辑时不允许调整账套");
|
||
}
|
||
|
||
SalaryTemplatePO po = new SalaryTemplatePO();
|
||
po.setDeleteType(0);
|
||
po.setName(saveParam.getName());
|
||
List<SalaryTemplatePO> salaryTemplates = mapper.listSome(po);
|
||
|
||
boolean nameExist = salaryTemplates.stream().anyMatch(e -> !Objects.equals(e.getId(), saveParam.getId()));
|
||
if (nameExist) {
|
||
throw new SalaryRunTimeException("工资单模板名称不允许重复");
|
||
}
|
||
SalarySobPO salarySobPO = new SalarySobPO();
|
||
po.setDeleteType(0);
|
||
po.setId(saveParam.getSalarySobId());
|
||
List<SalarySobPO> salarySobs = salarySobMapper.listSome(salarySobPO);
|
||
|
||
if (CollectionUtils.isEmpty(salarySobs)) {
|
||
throw new SalaryRunTimeException("薪资账套不存在");
|
||
}
|
||
// 更新工资单
|
||
SalaryTemplatePO salaryTemplateNew = new SalaryTemplatePO();
|
||
BeanUtils.copyProperties(salaryTemplate, salaryTemplateNew);
|
||
BeanUtils.copyProperties(saveParam, salaryTemplateNew);
|
||
salaryTemplateNew.setUpdateTime(new Date());
|
||
salaryTemplateNew.setSendEmailId(0L);
|
||
salaryTemplateNew.setEmailStatus(saveParam.getEmailStatus() ? 1 : 0);
|
||
salaryTemplateNew.setMsgStatus(saveParam.getMsgStatus() ? 1 : 0);
|
||
salaryTemplateNew.setSmsStatus(saveParam.getSmsStatus() != null && saveParam.getSmsStatus() ? 1 : 0);
|
||
salaryTemplateNew.setSmsSetting(saveParam.getSmsSetting() == null ? "" : JSON.toJSONString(saveParam.getSmsSetting()));
|
||
salaryTemplateNew.setTextContentPosition(saveParam.getTextContentPosition());
|
||
salaryTemplateNew.setSalaryItemNullStatus(saveParam.getSalaryItemNullStatus() ? 1 : 0);
|
||
salaryTemplateNew.setSalaryItemZeroStatus(saveParam.getSalaryItemZeroStatus() ? 1 : 0);
|
||
salaryTemplateNew.setAutoSendStatus(saveParam.getAutoSendStatus() ? 1 : 0);
|
||
salaryTemplateNew.setAutoSendCycleType(saveParam.getAutoSendCycleType());
|
||
salaryTemplateNew.setAckFeedbackStatus(saveParam.getAckFeedbackStatus() ? 1 : 0);
|
||
salaryTemplateNew.setAutoAckDays(saveParam.getAutoAckDays());
|
||
salaryTemplateNew.setFeedbackUrl(saveParam.getFeedbackUrl());
|
||
// todo 薪资项目设置检查校验
|
||
salaryTemplateNew.setSalaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : "");
|
||
salaryTemplateNew.setReplenishSalaryItemSetting(saveParam.getReplenishSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getReplenishSalaryItemSetting()) : "");
|
||
mapper.updateById(salaryTemplateNew);
|
||
|
||
// 保存自定义工资单项目名称信息
|
||
getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting());
|
||
// 模板中没有的薪资项目需要同步删除显示名称表
|
||
List<SalaryBillItemNamePO> billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(saveParam.getId()).build());
|
||
Map<Integer, List<SalaryBillItemNamePO>> billItemNameMap = SalaryEntityUtil.group2Map(billItemNameList, SalaryBillItemNamePO::getSalaryBillType);
|
||
List<SalaryTemplateSalaryItemListDTO> saveItemList = saveParam.getSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList());
|
||
Set<String> saveItemIdList = SalaryEntityUtil.properties(saveItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId);
|
||
// 正常工资单模板中删除的薪资项目
|
||
List<Long> needDeleteIds = billItemNameMap.getOrDefault(NumberUtils.INTEGER_ZERO, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString()))
|
||
.map(SalaryBillItemNamePO::getId).collect(Collectors.toList());
|
||
// 补发工资单模板中删除的薪资项目
|
||
List<SalaryTemplateSalaryItemListDTO> replenishItemList = saveParam.getReplenishSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList());
|
||
Set<String> saveReplenishItemIdList = SalaryEntityUtil.properties(replenishItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId);
|
||
needDeleteIds.addAll(billItemNameMap.getOrDefault(NumberUtils.INTEGER_ONE, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveReplenishItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString()))
|
||
.map(SalaryBillItemNamePO::getId).collect(Collectors.toList()));
|
||
getSalaryBillItemNameService(user).deleteByIds(needDeleteIds);
|
||
|
||
// 记录日志
|
||
// SalaryLoggerUtil.recordUpdateSingleLog(salaryTemplateLoggerTemplate,
|
||
// salaryTemplate.getId(),
|
||
// salaryTemplateNew.getName(),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100539, "编辑工资单模板"),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100539, "编辑工资单模板"),
|
||
// salaryTemplate,
|
||
// salaryTemplateNew);
|
||
|
||
return "";
|
||
}
|
||
|
||
@Override
|
||
public String copy(SalaryTemplateCopyParam copyParam) {
|
||
// 校验参数
|
||
SalaryTemplateCopyParam.checkParam(copyParam);
|
||
|
||
SalaryTemplatePO salaryTemplate = getById(copyParam.getId());
|
||
if (salaryTemplate == null) {
|
||
throw new SalaryRunTimeException("被复制的工资单不存在");
|
||
}
|
||
|
||
List<SalaryTemplateListDTO> salaryTemplates = mapper.list(SalaryTemplateQueryParam.builder().name(copyParam.getName()).build());
|
||
|
||
if (CollectionUtils.isNotEmpty(salaryTemplates)) {
|
||
throw new SalaryRunTimeException("工资单模板名称不允许重复");
|
||
}
|
||
|
||
SalaryTemplatePO salaryTemplateNew = new SalaryTemplatePO();
|
||
BeanUtils.copyProperties(salaryTemplate, salaryTemplateNew);
|
||
salaryTemplateNew.setId(null);
|
||
salaryTemplateNew.setName(copyParam.getName());
|
||
salaryTemplateNew.setUseType(SalaryTemplateWhetherEnum.FALSE.getValue());
|
||
mapper.insert(salaryTemplateNew);
|
||
|
||
// 复制工资单自定义名称信息
|
||
List<SalaryBillItemNamePO> billItemNamePOList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(copyParam.getId()).build());
|
||
if (CollectionUtils.isNotEmpty(billItemNamePOList)) {
|
||
Date now = new Date();
|
||
List<SalaryBillItemNamePO> needInsertList = billItemNamePOList.stream().map(po -> {
|
||
SalaryBillItemNamePO newSalaryBillItemNamePO = new SalaryBillItemNamePO();
|
||
BeanUtils.copyProperties(po, newSalaryBillItemNamePO);
|
||
newSalaryBillItemNamePO.setId(IdGenerator.generate());
|
||
newSalaryBillItemNamePO.setUpdateTime(now);
|
||
newSalaryBillItemNamePO.setSalaryTemplateId(salaryTemplateNew.getId());
|
||
return newSalaryBillItemNamePO;
|
||
}).collect(Collectors.toList());
|
||
getSalaryBillItemNameService(user).batchInsert(needInsertList);
|
||
}
|
||
// 记录日志
|
||
// SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate,
|
||
// salaryTemplateNew.getId(),
|
||
// salaryTemplateNew.getName(),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100541, "复制工资单模板"),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100541, "复制工资单模板"),
|
||
// salaryTemplateNew);
|
||
|
||
return "";
|
||
}
|
||
|
||
@Override
|
||
public String delete(Collection<Long> ids) {
|
||
if (CollectionUtils.isEmpty(ids)) {
|
||
throw new SalaryRunTimeException("参数错误");
|
||
}
|
||
List<SalaryTemplateListDTO> salaryTemplates = mapper.list(SalaryTemplateQueryParam.builder().ids(ids).build());
|
||
if (CollectionUtils.isEmpty(salaryTemplates)) {
|
||
throw new SalaryRunTimeException("要删除的工资单在不存在或已删除");
|
||
}
|
||
// TODO 正在使用的记录不允许删除
|
||
mapper.deleteByIds(ids);
|
||
// 删除工资单重命名表
|
||
getSalaryBillItemNameService(user).deleteByTemplateIds(ids);
|
||
// 记录日志
|
||
// salaryTemplates.forEach(e -> SalaryLoggerUtil.recordDeleteSingleLog(salaryTemplateLoggerTemplate,
|
||
// e.getId(),
|
||
// e.getName(),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100542, "删除工资单模板"),
|
||
// SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100542, "删除工资单模板")+":" + e.getName(),
|
||
// e));
|
||
return "";
|
||
}
|
||
|
||
@Override
|
||
public List<Map<String, Object>> selectSalarySobList() {
|
||
List<SalarySobPO> salarySobs = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO);
|
||
|
||
return salarySobs.stream().map(m -> {
|
||
Map<String, Object> map = new HashMap<>(2);
|
||
map.put("id", String.valueOf(m.getId()));
|
||
map.put("content", m.getName());
|
||
return map;
|
||
}).collect(Collectors.toList());
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId, boolean isReplenish) {
|
||
SalarySobItemAggregateDTO salarySobItemAggregate = getSalarySobItemService(user).getAggregateBySalarySobId(salarySobId);
|
||
// 处理薪资账套中隐藏的分类和项目
|
||
// 获取关闭显示的分类
|
||
List<Long> hideGroupIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salarySobId).isGroup(1).build());
|
||
// 过滤关闭显示的薪资项目分类
|
||
List<SalarySobItemGroupDTO> itemGroupDTOS = salarySobItemAggregate.getItemGroups().stream().filter(group -> !(hideGroupIDs.contains(group.getId()))).collect(Collectors.toList());
|
||
// 获取关闭显示的薪资项目
|
||
List<Long> hideItemIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salarySobId).isGroup(0).build());
|
||
for (SalarySobItemGroupDTO DTO : itemGroupDTOS) {
|
||
List<SalarySobItemDTO> items = DTO.getItems();
|
||
DTO.setItems(items.stream().filter(item -> !(hideItemIDs.contains(item.getSalaryItemId()))).collect(Collectors.toList()));
|
||
}
|
||
itemGroupDTOS = itemGroupDTOS.stream().filter(DTO -> CollectionUtils.isNotEmpty(DTO.getItems())).collect(Collectors.toList());
|
||
salarySobItemAggregate.setItemGroups(itemGroupDTOS);
|
||
if (hideGroupIDs.contains(0L)) {
|
||
// 隐藏了未分类
|
||
salarySobItemAggregate.setItems(Collections.emptyList());
|
||
} else {
|
||
salarySobItemAggregate.setItems(salarySobItemAggregate.getItems().stream().filter(item -> !(hideItemIDs.contains(item.getSalaryItemId()))).collect(Collectors.toList()));
|
||
}
|
||
return SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish);
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSetContainHide(Long salarySobId, Long salaryTemplateId, boolean isReplenish) {
|
||
SalarySobItemAggregateDTO salarySobItemAggregate = getSalarySobItemService(user).getAggregateBySalarySobId(salarySobId);
|
||
// 获取工资单薪资项目展示名信息
|
||
List<SalaryBillItemNamePO> billItemNameList = Collections.emptyList();
|
||
if (salaryTemplateId != null) {
|
||
billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(
|
||
SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId)
|
||
.salaryBillType(isReplenish ? 1 : 0)
|
||
.build());
|
||
}
|
||
|
||
Map<Long, String> itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName);
|
||
|
||
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateSalaryItemSetListDTOS = SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish);
|
||
salaryTemplateSalaryItemSetListDTOS.stream()
|
||
.filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111"))
|
||
.forEach(data -> {
|
||
data.getItems().forEach(item -> {
|
||
Long salaryItemId = Long.valueOf(item.getSalaryItemId());
|
||
if (itemShowNameMap.containsKey(salaryItemId)) {
|
||
item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId));
|
||
item.setName(itemShowNameMap.get(salaryItemId) + "(" + item.getOriginName() + ")");
|
||
} else {
|
||
item.setSalaryItemShowName(item.getOriginName());
|
||
item.setName(item.getOriginName());
|
||
}
|
||
});
|
||
});
|
||
return salaryTemplateSalaryItemSetListDTOS;
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplatePO> getDefaultTemplates(List<Long> salarySobIds) {
|
||
return mapper.listDefaultTemplates(salarySobIds);
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplatePO> getBySalarySobIds(Collection<Long> ids) {
|
||
return mapper.listSome(SalaryTemplatePO.builder().salarySobIds(ids).build());
|
||
}
|
||
|
||
@Override
|
||
public PageInfo<SalaryTemplateListDTO> listPage(SalaryTemplateQueryParam queryParam) {
|
||
List<SalaryTemplateListDTO> salaryTemplateDTOList = Collections.emptyList();
|
||
// 分权
|
||
long currentEmployeeId = user.getUID();
|
||
Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId);
|
||
if (needAuth) {
|
||
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO);
|
||
Set<Long> salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId);
|
||
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salarySobIds)) {
|
||
// 查询
|
||
salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder()
|
||
.salarySobId(queryParam.getSalarySobId())
|
||
.name(queryParam.getName())
|
||
.salarySobIds(salarySobIds).build());
|
||
} else {
|
||
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class);
|
||
}
|
||
} else {
|
||
// 查询
|
||
salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder().salarySobId(queryParam.getSalarySobId()).name(queryParam.getName()).build());
|
||
}
|
||
|
||
// 分页参数
|
||
PageInfo<SalaryTemplateListDTO> page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class);
|
||
return page;
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplatePO> getAutoSendTemplate() {
|
||
return mapper.listSome(SalaryTemplatePO.builder().autoSendStatus(NumberUtils.INTEGER_ONE).useType(NumberUtils.INTEGER_ONE).deleteType(NumberUtils.INTEGER_ZERO).build());
|
||
}
|
||
|
||
@Override
|
||
public List<SalaryTemplatePO> listNeedAckDefaultTemplate() {
|
||
return mapper.listSome(SalaryTemplatePO.builder().useType(NumberUtils.INTEGER_ONE).ackFeedbackStatus(NumberUtils.INTEGER_ONE).build());
|
||
}
|
||
}
|