package com.engine.salary.service.impl;
import com.engine.core.impl.Service;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.extemp.param.ExtEmpQueryParam;
import com.engine.salary.entity.extemp.param.ExtEmpSaveParam;
import com.engine.salary.entity.extemp.po.ExtEmpPO;
import com.engine.salary.mapper.extemp.ExternalEmployeeMapper;
import com.engine.salary.service.ExtEmpService;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import dm.jdbc.util.IdGenerator;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 累计专项
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class ExtEmpServiceImpl extends Service implements ExtEmpService {
private ExternalEmployeeMapper getExternalEmployeeMapper() {
return MapperProxyFactory.getProxy(ExternalEmployeeMapper.class);
}
@Override
public List list(ExtEmpQueryParam param) {
return getExternalEmployeeMapper().listSome(ExtEmpPO.builder().username(param.getUsername()).build());
}
@Override
public PageInfo listPage(ExtEmpQueryParam param) {
List extEmpPOS = list(param);
return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), extEmpPOS, ExtEmpPO.class);
}
@Override
public void save(ExtEmpSaveParam param) {
ExtEmpPO po = new ExtEmpPO();
BeanUtils.copyProperties(param, po);
po.setId(IdGenerator.generate());
po.setCreator((long) user.getUID());
po.setModifier((long) user.getUID());
Date now = new Date();
po.setCreateTime(now);
po.setUpdateTime(now);
po.setDeleteType(0);
getExternalEmployeeMapper().insertIgnoreNull(po);
}
@Override
public void update(ExtEmpSaveParam param) {
ExtEmpPO po = new ExtEmpPO();
BeanUtils.copyProperties(param, po);
po.setModifier((long) user.getUID());
Date now = new Date();
po.setUpdateTime(now);
getExternalEmployeeMapper().updateIgnoreNull(po);
}
@Override
public void delete(Collection ids) {
if (CollectionUtils.isNotEmpty(ids)) {
ids.forEach(getExternalEmployeeMapper()::delete);
}
}
public List cover(List extEmps) {
return extEmps.stream().map(emp -> {
DataCollectionEmployee employee = new DataCollectionEmployee();
BeanUtils.copyProperties(emp, employee);
return employee;
}).collect(Collectors.toList());
}
}