2023-01-09 10:01:47 +08:00
|
|
|
package com.engine.salary.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
|
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeListDTO;
|
|
|
|
|
import com.engine.salary.entity.taxagent.param.TaxAgentImportParam;
|
|
|
|
|
import com.engine.salary.entity.taxagent.param.TaxAgentRangeDownloadTemplateParam;
|
|
|
|
|
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
|
|
|
|
import com.engine.salary.service.TaxAgentExcelService;
|
|
|
|
|
import com.engine.salary.service.TaxAgentService;
|
|
|
|
|
import com.engine.salary.util.SalaryI18nUtil;
|
|
|
|
|
import com.engine.salary.util.excel.ExcelComment;
|
|
|
|
|
import com.engine.salary.util.excel.ExcelParseHelper;
|
|
|
|
|
import com.engine.salary.util.excel.ExcelUtil;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import org.apache.commons.lang3.Validate;
|
|
|
|
|
import org.apache.poi.util.IOUtils;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
import weaver.file.ImageFileManager;
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author Harryxzy
|
|
|
|
|
* @date 2023/01/05 15:11
|
|
|
|
|
* @description
|
|
|
|
|
*/
|
|
|
|
|
public class TaxAgentExcelServiceImpl extends Service implements TaxAgentExcelService {
|
|
|
|
|
|
|
|
|
|
public TaxAgentService getTaxAgentService(User user) {
|
|
|
|
|
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public XSSFWorkbook downloadTemplateRange(TaxAgentRangeDownloadTemplateParam downloadTemplateParam, int currentEmployeeId) {
|
|
|
|
|
// 没有传递TaxAgentId就是当前登录人能够导入自己所能管理的个税扣缴义务人
|
|
|
|
|
TaxAgentPO taxAgent = downloadTemplateParam.getTaxAgentId() == null ? null : getTaxAgentService(user).getById(downloadTemplateParam.getTaxAgentId());
|
|
|
|
|
//获取操作按钮资源
|
|
|
|
|
List<List<Object>> rowList = getExcelRowList(taxAgent);
|
|
|
|
|
// 注释
|
|
|
|
|
List<ExcelComment> excelComments = Lists.newArrayList();
|
|
|
|
|
excelComments.add(new ExcelComment(0, 0, 1, 2, SalaryI18nUtil.getI18nLabel(100344, "必填")));
|
2023-02-08 17:48:14 +08:00
|
|
|
excelComments.add(new ExcelComment(4, 0, 6, 3, SalaryI18nUtil.getI18nLabel(100344, "若不填,默认全部员工状态。指定员工状态格式:试用、正式、临时、试用延期")));
|
2023-01-09 10:01:47 +08:00
|
|
|
//获取excel
|
|
|
|
|
return ExcelUtil.genWorkbookV2(rowList, "个税扣缴义务人人员范围", excelComments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, Object> preview(TaxAgentImportParam importParam) {
|
|
|
|
|
Map<String, Object> apidatas = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
//excel文件id
|
|
|
|
|
String imageId = Util.null2String(importParam.getImageId());
|
|
|
|
|
Validate.notBlank(imageId, "imageId为空");
|
|
|
|
|
|
|
|
|
|
InputStream fileInputStream = null;
|
|
|
|
|
try {
|
|
|
|
|
fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId));
|
2023-02-08 17:48:14 +08:00
|
|
|
List<TaxAgentManageRangeEmployeeListDTO> taxAgentManageRangeEmployees = ExcelParseHelper.parse2Map(fileInputStream, TaxAgentManageRangeEmployeeListDTO.class, 0, 1, 5, "TaxAgentEmployee.xlsx");
|
2023-01-09 10:01:47 +08:00
|
|
|
apidatas.put("preview", taxAgentManageRangeEmployees);
|
|
|
|
|
} finally {
|
|
|
|
|
IOUtils.closeQuietly(fileInputStream);
|
|
|
|
|
}
|
|
|
|
|
return apidatas;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 获取excel数据行
|
|
|
|
|
* @return List<List<String>>
|
|
|
|
|
* @author Harryxzy
|
|
|
|
|
* @date 2023/1/5 15:47
|
|
|
|
|
*/
|
|
|
|
|
private List<List<Object>> getExcelRowList(TaxAgentPO taxAgent) {
|
|
|
|
|
// 表头
|
|
|
|
|
List<Object> headers = Lists.newArrayList();
|
|
|
|
|
if (taxAgent == null) {
|
|
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel( 86184, "个税扣缴义务人"));
|
|
|
|
|
}
|
|
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel( 85429, "姓名"));
|
|
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel( 86185, "部门"));
|
|
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel(86186, "手机号"));
|
2023-01-09 15:12:44 +08:00
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
2023-02-08 17:48:14 +08:00
|
|
|
headers.add(SalaryI18nUtil.getI18nLabel(86318, "员工状态"));
|
2023-01-09 10:01:47 +08:00
|
|
|
List<List<Object>> rowList = new ArrayList<>();
|
|
|
|
|
rowList.add(headers);
|
|
|
|
|
return rowList;
|
|
|
|
|
}
|
|
|
|
|
}
|