补充列
This commit is contained in:
parent
51e816ab56
commit
c537b7d944
|
|
@ -1,6 +1,7 @@
|
|||
package com.engine.salary.entity.salaryacct.bo;
|
||||
|
||||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.salary.annotation.SalaryFormulaVar;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
|
||||
|
|
@ -20,6 +21,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
|||
import com.engine.salary.entity.taxrate.TaxAgent;
|
||||
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -370,13 +372,13 @@ public class SalaryAcctResultBO {
|
|||
public static Map<String, String> buildEmployeeFieldName() {
|
||||
Field[] declaredFields = SalaryFormulaEmployeeDTO.class.getDeclaredFields();
|
||||
Map<String, String> employeeFieldNameMap = Maps.newHashMapWithExpectedSize(declaredFields.length);
|
||||
// for (Field declaredField : declaredFields) {
|
||||
// if (!declaredField.isAnnotationPresent(SalaryFormulaVar.class)) {
|
||||
// continue;
|
||||
// }
|
||||
// SalaryFormulaVar annotation = declaredField.getAnnotation(SalaryFormulaVar.class);
|
||||
// employeeFieldNameMap.put(declaredField.getName(), SystemEnv.getHtmlLabelName(annotation.labelId(), annotation.defaultLabel()));
|
||||
// }
|
||||
for (Field declaredField : declaredFields) {
|
||||
if (!declaredField.isAnnotationPresent(SalaryFormulaVar.class)) {
|
||||
continue;
|
||||
}
|
||||
SalaryFormulaVar annotation = declaredField.getAnnotation(SalaryFormulaVar.class);
|
||||
employeeFieldNameMap.put(declaredField.getName(), SalaryI18nUtil.getI18nLabel(annotation.labelId(), annotation.defaultLabel()));
|
||||
}
|
||||
return employeeFieldNameMap;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,6 @@ public class SalaryAcctRecordListDTO {
|
|||
@TableTitle(title = "备注", dataIndex = "description", key = "description")
|
||||
private String description;
|
||||
|
||||
@TableTitle(title = "操作", dataIndex = "description", key = "description")
|
||||
@TableTitle(title = "操作", dataIndex = "operate", key = "operate")
|
||||
private List<WeaTableOperate> operate;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package com.engine.salary.entity.salaryacct.param;
|
||||
|
||||
import com.engine.salary.util.valid.DataCheck;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
*
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SalaryAcctImportParam {
|
||||
|
||||
//上传文件id
|
||||
@DataCheck(require = true,message = "imageId为空")
|
||||
String imageId;
|
||||
|
||||
//薪资核算记录的id
|
||||
@DataCheck(require = true,message = "薪资核算记录id为空")
|
||||
Long salaryAcctRecordId;
|
||||
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<select id="listEmployee" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
|
||||
select e.ID as employeeId,
|
||||
e.LASTNAME as username,
|
||||
d.DEPARTMENTNAME as deparmentName
|
||||
d.DEPARTMENTNAME as departmentName
|
||||
from hrmresource e
|
||||
left join hrmdepartment d on e.departmentid = d.id
|
||||
where e.status not in (7)
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ public interface SalaryArchiveService {
|
|||
*/
|
||||
List<SalaryArchiveDataDTO> getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection<Long> employeeIds);
|
||||
|
||||
void importSalaryArchive(SalaryArchiveImportHandleParam param);
|
||||
Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param);
|
||||
|
||||
Map<String, Object> preview(SalaryArchiveImportHandleParam param);
|
||||
|
||||
|
|
|
|||
|
|
@ -301,7 +301,6 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
headerList.add(salaryItemPO.getName());
|
||||
dataIndexList.add("" + salaryItemPO.getId());
|
||||
}
|
||||
String[] headers = headerList.toArray(new String[0]);
|
||||
|
||||
// 查询薪资核算结果
|
||||
List<Map<String, Object>> resultMapList = getSalaryAcctResultService(user).listByParam(param);
|
||||
|
|
@ -426,7 +425,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// DSTenantKeyThreadVar.tenantKey.remove();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
|
||||
// @BatchImportHandler("importExcelAcctResult")
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
// public void importExcelAcctResult() {
|
||||
|
|
@ -444,15 +443,13 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// DSTenantKeyThreadVar.tenantKey.remove();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private void batchImport(BatchDocumentMessage message, String importType) {
|
||||
// String tenantKey = message.getTenantKey();
|
||||
// Long currentEmployeeId = message.getUserId();
|
||||
|
||||
// private void batchImport(SalaryAcctImportParam param, String importType) {
|
||||
// ValidUtil.doValidator(param);
|
||||
// LocalDateTime now = LocalDateTime.now();
|
||||
// // 前端传入的参数(薪资核算记录的id)
|
||||
// Map<String, Object> paramMap = JsonUtil.parseMap(message.getUploadSet().getCustomData(), Object.class);
|
||||
//
|
||||
// // 薪资核算记录的id
|
||||
// Long salaryAcctRecordId = Long.valueOf(String.valueOf(paramMap.get("salaryAcctRecordId")));
|
||||
// Long salaryAcctRecordId = param.getSalaryAcctRecordId();
|
||||
// // 薪资核算记录
|
||||
// SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
|
||||
// if (salaryAcctRecordPO == null) {
|
||||
|
|
@ -468,11 +465,11 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// List<SalaryAcctEmployeePO> salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordId);
|
||||
// Map<String, SalaryAcctEmployeePO> salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployees, e -> e.getEmployeeId() + "-" + e.getTaxAgentId());
|
||||
// // 租户下所有的人员
|
||||
// List<SalaryEmployee> salaryEmployees = getSalaryEmployeeService(user).listAll(tenantKey);
|
||||
// Map<String, Long> salaryEmployeeMap = SalaryEntityUtil.convert2Map(salaryEmployees, SalaryEmployee::getUsername, SalaryEmployee::getId);
|
||||
// List<DataCollectionEmployee> salaryEmployees = getSalaryEmployeeService(user).listAll();
|
||||
// Map<String, Long> salaryEmployeeMap = SalaryEntityUtil.convert2Map(salaryEmployees, DataCollectionEmployee::getUsername, DataCollectionEmployee::getEmployeeId);
|
||||
// // 租户下所有的个税扣缴义务人
|
||||
// List<TaxAgentPO> taxAgents = taxAgentService.listAll(tenantKey);
|
||||
// Map<String, Long> taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getName, TaxAgentPO::getId);
|
||||
// List<TaxAgent> taxAgents = taxAgentService.listAll();
|
||||
// Map<String, Long> taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgent::getName, TaxAgent::getId);
|
||||
//
|
||||
// // 索引(用于计算进度)
|
||||
// int index = 0;
|
||||
|
|
@ -487,7 +484,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// .reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
// .intValue();
|
||||
// // 包含错误提示信息的sheet页
|
||||
// List<ExcelSheet> errorExcelSheets = Lists.newArrayList();
|
||||
// List<Map<String, String>> errorExcelSheets = Lists.newArrayList();
|
||||
// // 解析excel
|
||||
// Set<Long> salaryAcctEmpIds = Sets.newHashSet();
|
||||
// // excel导入了哪些薪资项目
|
||||
|
|
@ -496,160 +493,165 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// List<SalaryAcctEmployeePO> newSalaryAcctEmployees = Lists.newArrayList();
|
||||
//
|
||||
// List<ExcelAcctResultPO> excelAcctResults = Lists.newArrayList();
|
||||
// for (ExcelSheet excelSheet : message.getBatchFile().getExcelSheets()) {
|
||||
// if (CollectionUtils.isEmpty(excelSheet.getHeader())) {
|
||||
// continue;
|
||||
// }
|
||||
// // 错误提示信息
|
||||
// List<ExcelComment> excelComments = Lists.newArrayList();
|
||||
// // 存在错误的那行数据
|
||||
// List<Map<String, Object>> errorDatas = Lists.newArrayList();
|
||||
// // 表头
|
||||
// List<Map> headers = excelSheet.getHeader();
|
||||
// // 处理数值
|
||||
// List<Map<String, Object>> data = excelSheet.getData();
|
||||
// if (CollectionUtils.isEmpty(data)) {
|
||||
// continue;
|
||||
// }
|
||||
// for (int i = 0; i < data.size(); i++) {
|
||||
// int usernameIndex = 0;
|
||||
// boolean isError = false;
|
||||
// Map<String, Object> map = data.get(i);
|
||||
// Long employeeId = 0L;
|
||||
// Long taxAgentId = 0L;
|
||||
// List<SalaryAcctResultPO> salaryAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1);
|
||||
// List<ExcelAcctResultPO> excelAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1);
|
||||
// for (int j = 0; j < headers.size(); j++) {
|
||||
// Map header = headers.get(j);
|
||||
// Object dataKey = header.get("key");
|
||||
// if (dataKey == null) {
|
||||
// continue;
|
||||
// }
|
||||
// String dataValue = (String) map.getOrDefault(dataKey.toString(), "");
|
||||
// if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(85429, "姓名"), dataKey.toString())) {
|
||||
// usernameIndex = j;
|
||||
// if (StringUtils.isEmpty(dataValue)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j);
|
||||
// } else {
|
||||
// employeeId = salaryEmployeeMap.getOrDefault(dataValue, 0L);
|
||||
// if (employeeId == null || employeeId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), i, i, j, j);
|
||||
// }
|
||||
// }
|
||||
// } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), dataKey.toString())) {
|
||||
// if (StringUtils.isEmpty(dataValue)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"), i, i, j, j);
|
||||
// } else {
|
||||
// taxAgentId = taxAgentNameMap.getOrDefault(dataValue, 0L);
|
||||
// if (taxAgentId == null || taxAgentId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"), i, i, j, j);
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// Long salaryItemId = salaryItemMap.get(dataKey.toString());
|
||||
// if (salaryItemId == null || salaryItemId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102841, "表头错误,本次核算所用账套不包含该薪资项目"), i, i, j, j);
|
||||
// } else {
|
||||
// excelSalaryItemIds.add(salaryItemId);
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)) {
|
||||
// ExcelAcctResultPO excelAcctResult = ExcelAcctResultPO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .salaryAcctRecordId(salaryAcctRecordPO.getId())
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryItemId(salaryItemId)
|
||||
// .resultValue(dataValue)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// excelAcctResultsOfOneEmp.add(excelAcctResult);
|
||||
// }
|
||||
// if (StringUtils.equals("importSalaryAcctResult", importType)) {
|
||||
// SalaryAcctResultPO salaryAcctResult = SalaryAcctResultPO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .salaryAcctRecordId(salaryAcctRecordPO.getId())
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryItemId(salaryItemId)
|
||||
// .resultValue(dataValue)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// salaryAcctResultsOfOneEmp.add(salaryAcctResult);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// // (如果是线下对比)如果个税扣缴义务人+人员目前不在核算人员里面,不支持导入
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)
|
||||
// && (employeeId != null && employeeId > 0)
|
||||
// && (taxAgentId != null && taxAgentId > 0)
|
||||
// && i == data.size() - 1
|
||||
// && !salaryAcctEmployeeMap.containsKey(employeeId + "-" + taxAgentId)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102842, "本次薪资核算不包含该人员"), i, i, usernameIndex, usernameIndex);
|
||||
// }
|
||||
// }
|
||||
// // 每处理50个数据更新一次进度
|
||||
// index++;
|
||||
// if (index % 50 == 0 || index >= total) {
|
||||
// salaryBatchService.sendImportRate(message.getBizId(), total, index);
|
||||
// }
|
||||
// if (isError) {
|
||||
// failCount++;
|
||||
// errorDatas.add(map);
|
||||
//
|
||||
// InputStream fileInputStream = null;
|
||||
// fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId()));
|
||||
//
|
||||
// Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX);
|
||||
// List<String> headers = ExcelSupport.getSheetHeader(sheet, 0);
|
||||
//
|
||||
// if (CollectionUtils.isEmpty(headers)) {
|
||||
// return;
|
||||
// }
|
||||
// // 错误提示信息
|
||||
// List<ExcelComment> excelComments = Lists.newArrayList();
|
||||
// // 存在错误的那行数据
|
||||
// List<Map<String, Object>> errorDatas = Lists.newArrayList();
|
||||
// // 表头
|
||||
// List<Map> headers = excelSheet.getHeader();
|
||||
// // 处理数值
|
||||
// List<Map<String, Object>> data = excelSheet.getData();
|
||||
// if (CollectionUtils.isEmpty(data)) {
|
||||
// continue;
|
||||
// }
|
||||
// for (int i = 0; i < data.size(); i++) {
|
||||
// int usernameIndex = 0;
|
||||
// boolean isError = false;
|
||||
// Map<String, Object> map = data.get(i);
|
||||
// Long employeeId = 0L;
|
||||
// Long taxAgentId = 0L;
|
||||
// List<SalaryAcctResultPO> salaryAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1);
|
||||
// List<ExcelAcctResultPO> excelAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1);
|
||||
// for (int j = 0; j < headers.size(); j++) {
|
||||
// Map header = headers.get(j);
|
||||
// Object dataKey = header.get("key");
|
||||
// if (dataKey == null) {
|
||||
// continue;
|
||||
// }
|
||||
// SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(employeeId + "-" + taxAgentId);
|
||||
// Long salaryAcctEmpId = Optional.ofNullable(salaryAcctEmployee).map(SalaryAcctEmployeePO::getId).orElse(0L);
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)) {
|
||||
// for (ExcelAcctResultPO excelAcctResultPO : excelAcctResultsOfOneEmp) {
|
||||
// excelAcctResultPO.setEmployeeId(employeeId);
|
||||
// excelAcctResultPO.setTaxAgentId(taxAgentId);
|
||||
// excelAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId);
|
||||
// String dataValue = (String) map.getOrDefault(dataKey.toString(), "");
|
||||
// if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(85429, "姓名"), dataKey.toString())) {
|
||||
// usernameIndex = j;
|
||||
// if (StringUtils.isEmpty(dataValue)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j);
|
||||
// } else {
|
||||
// employeeId = salaryEmployeeMap.getOrDefault(dataValue, 0L);
|
||||
// if (employeeId == null || employeeId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), i, i, j, j);
|
||||
// }
|
||||
// }
|
||||
// } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), dataKey.toString())) {
|
||||
// if (StringUtils.isEmpty(dataValue)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"), i, i, j, j);
|
||||
// } else {
|
||||
// taxAgentId = taxAgentNameMap.getOrDefault(dataValue, 0L);
|
||||
// if (taxAgentId == null || taxAgentId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"), i, i, j, j);
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// Long salaryItemId = salaryItemMap.get(dataKey.toString());
|
||||
// if (salaryItemId == null || salaryItemId <= 0) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102841, "表头错误,本次核算所用账套不包含该薪资项目"), i, i, j, j);
|
||||
// } else {
|
||||
// excelSalaryItemIds.add(salaryItemId);
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)) {
|
||||
// ExcelAcctResultPO excelAcctResult = ExcelAcctResultPO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .salaryAcctRecordId(salaryAcctRecordPO.getId())
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryItemId(salaryItemId)
|
||||
// .resultValue(dataValue)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// excelAcctResultsOfOneEmp.add(excelAcctResult);
|
||||
// }
|
||||
// if (StringUtils.equals("importSalaryAcctResult", importType)) {
|
||||
// SalaryAcctResultPO salaryAcctResult = SalaryAcctResultPO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .salaryAcctRecordId(salaryAcctRecordPO.getId())
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryItemId(salaryItemId)
|
||||
// .resultValue(dataValue)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// salaryAcctResultsOfOneEmp.add(salaryAcctResult);
|
||||
// }
|
||||
// }
|
||||
// excelAcctResults.addAll(excelAcctResultsOfOneEmp);
|
||||
// }
|
||||
// if (StringUtils.equals("importSalaryAcctResult", importType)) {
|
||||
// if (salaryAcctEmpId <= 0) {
|
||||
// SalaryAcctEmployeePO acctEmployee = SalaryAcctEmployeePO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .employeeId(employeeId)
|
||||
// .salaryAcctRecordId(salaryAcctRecordId)
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryMonth(salaryAcctRecordPO.getSalaryMonth())
|
||||
// .taxAgentId(taxAgentId)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// newSalaryAcctEmployees.add(acctEmployee);
|
||||
// salaryAcctEmpId = acctEmployee.getId();
|
||||
// }
|
||||
// for (SalaryAcctResultPO salaryAcctResultPO : salaryAcctResultsOfOneEmp) {
|
||||
// salaryAcctResultPO.setEmployeeId(employeeId);
|
||||
// salaryAcctResultPO.setTaxAgentId(taxAgentId);
|
||||
// salaryAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId);
|
||||
// }
|
||||
// salaryAcctEmpIds.add(salaryAcctEmpId);
|
||||
// salaryAcctResults.addAll(salaryAcctResultsOfOneEmp);
|
||||
// // (如果是线下对比)如果个税扣缴义务人+人员目前不在核算人员里面,不支持导入
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)
|
||||
// && (employeeId != null && employeeId > 0)
|
||||
// && (taxAgentId != null && taxAgentId > 0)
|
||||
// && i == data.size() - 1
|
||||
// && !salaryAcctEmployeeMap.containsKey(employeeId + "-" + taxAgentId)) {
|
||||
// isError = true;
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102842, "本次薪资核算不包含该人员"), i, i, usernameIndex, usernameIndex);
|
||||
// }
|
||||
// successCount++;
|
||||
// }
|
||||
// // 如果sheet包含错误数据
|
||||
// if (CollectionUtils.isNotEmpty(errorDatas)) {
|
||||
// salaryBatchService.createErrorExcelSheet(headers, errorDatas, excelSheet.getName(), excelComments, errorExcelSheets);
|
||||
// // 每处理50个数据更新一次进度
|
||||
// index++;
|
||||
// if (index % 50 == 0 || index >= total) {
|
||||
// salaryBatchService.sendImportRate(message.getBizId(), total, index);
|
||||
// }
|
||||
// if (isError) {
|
||||
// failCount++;
|
||||
// errorDatas.add(map);
|
||||
// continue;
|
||||
// }
|
||||
// SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(employeeId + "-" + taxAgentId);
|
||||
// Long salaryAcctEmpId = Optional.ofNullable(salaryAcctEmployee).map(SalaryAcctEmployeePO::getId).orElse(0L);
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)) {
|
||||
// for (ExcelAcctResultPO excelAcctResultPO : excelAcctResultsOfOneEmp) {
|
||||
// excelAcctResultPO.setEmployeeId(employeeId);
|
||||
// excelAcctResultPO.setTaxAgentId(taxAgentId);
|
||||
// excelAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId);
|
||||
// }
|
||||
// excelAcctResults.addAll(excelAcctResultsOfOneEmp);
|
||||
// }
|
||||
// if (StringUtils.equals("importSalaryAcctResult", importType)) {
|
||||
// if (salaryAcctEmpId <= 0) {
|
||||
// SalaryAcctEmployeePO acctEmployee = SalaryAcctEmployeePO.builder()
|
||||
// .id(IdGenerator.generate())
|
||||
// .employeeId(employeeId)
|
||||
// .salaryAcctRecordId(salaryAcctRecordId)
|
||||
// .salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
// .salaryMonth(salaryAcctRecordPO.getSalaryMonth())
|
||||
// .taxAgentId(taxAgentId)
|
||||
// .creator(currentEmployeeId)
|
||||
// .createTime(now)
|
||||
// .updateTime(now)
|
||||
// .deleteType(0)
|
||||
// .tenantKey(tenantKey)
|
||||
// .build();
|
||||
// newSalaryAcctEmployees.add(acctEmployee);
|
||||
// salaryAcctEmpId = acctEmployee.getId();
|
||||
// }
|
||||
// for (SalaryAcctResultPO salaryAcctResultPO : salaryAcctResultsOfOneEmp) {
|
||||
// salaryAcctResultPO.setEmployeeId(employeeId);
|
||||
// salaryAcctResultPO.setTaxAgentId(taxAgentId);
|
||||
// salaryAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId);
|
||||
// }
|
||||
// salaryAcctEmpIds.add(salaryAcctEmpId);
|
||||
// salaryAcctResults.addAll(salaryAcctResultsOfOneEmp);
|
||||
// }
|
||||
// successCount++;
|
||||
// }
|
||||
// // 如果sheet包含错误数据
|
||||
// if (CollectionUtils.isNotEmpty(errorDatas)) {
|
||||
// salaryBatchService.createErrorExcelSheet(headers, errorDatas, excelSheet.getName(), excelComments, errorExcelSheets);
|
||||
// }
|
||||
// if (StringUtils.equals("importExcelAcctResult", importType)) {
|
||||
// getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId));
|
||||
|
|
@ -671,7 +673,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// // 发送导入回调信息
|
||||
// salaryBatchService.sendImportCallBackInfo(message, successCount, failCount, errorExcelSheets);
|
||||
// }
|
||||
//
|
||||
|
||||
// @Override
|
||||
// public Map<String, Object> exportCheckResult(
|
||||
// SalaryCheckResultExportParam exportParam,
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
}
|
||||
|
||||
@Override
|
||||
public XSSFWorkbook exportList( SalaryArchiveQueryParam queryParam) {
|
||||
public XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam) {
|
||||
// 1.工作簿名称
|
||||
String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案");
|
||||
// 获取所有可被引用的薪资项目
|
||||
|
|
@ -389,7 +389,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
/**
|
||||
* 导入薪资档案
|
||||
*/
|
||||
public void importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
public Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
//1、参数校验
|
||||
vaildImportParam(param);
|
||||
|
||||
|
|
@ -435,7 +435,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
// 错误sheet数据
|
||||
List<Map<String, Object>> errorData = new ArrayList<>();
|
||||
// 错误提示
|
||||
List<Map<String, Object>> excelComments = new ArrayList<>();
|
||||
List<Map<String, String>> excelComments = new ArrayList<>();
|
||||
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
|
|
@ -461,6 +461,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
// 4.数据入库处理
|
||||
handleImportData(isInit, importHandleParam);
|
||||
|
||||
Map<String,Object> apidatas = new HashMap<>();
|
||||
|
||||
apidatas.put("successCount", successCount);
|
||||
apidatas.put("errorCount", errorCount);
|
||||
apidatas.put("errorNotice", excelComments);
|
||||
return apidatas;
|
||||
|
||||
} finally {
|
||||
IOUtils.closeQuietly(fileInputStream);
|
||||
}
|
||||
|
|
@ -569,7 +576,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
* @param initImportData
|
||||
* @param importHandleParam
|
||||
*/
|
||||
private Map<String, Object> validInitImportData(boolean isError, int rowNo, Map<String, Object> map, List<Map<String, Object>> excelComments, int errorCount, int successCount, List<Map<String, Object>> errorData, List<SalaryArchiveInitImportDTO> initImportData, SalaryArchiveImportHandleParam importHandleParam) {
|
||||
private Map<String, Object> validInitImportData(boolean isError, int rowNo, Map<String, Object> map, List<Map<String, String>> excelComments, int errorCount, int successCount, List<Map<String, Object>> errorData, List<SalaryArchiveInitImportDTO> initImportData, SalaryArchiveImportHandleParam importHandleParam) {
|
||||
Long employeeId = Long.valueOf(Optional.ofNullable(map.get("employeeId")).orElse("0").toString());
|
||||
Optional<SalaryArchiveInitImportDTO> optionalInitImport = initImportData.stream().filter(f -> f.getEmployeeId().equals(employeeId)).findFirst();
|
||||
|
||||
|
|
@ -596,6 +603,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
sames.forEach(e -> {
|
||||
if (!e.isError()) {
|
||||
e.setError(Boolean.TRUE);
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", "该员工的薪资档案记录有误,请检查");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0);
|
||||
finalErrorCount.addAndGet(1);
|
||||
errorData.add(e.getRow());
|
||||
|
|
@ -618,6 +628,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
sames.forEach(e -> {
|
||||
if (!e.isError()) {
|
||||
e.setError(Boolean.TRUE);
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", "该员工的薪资档案记录有误");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0);
|
||||
finalErrorCount.addAndGet(1);
|
||||
errorData.add(e.getRow());
|
||||
|
|
@ -664,7 +677,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
* @return
|
||||
*/
|
||||
private boolean singleRowCheck(String importType, List<Long> allEmployeeIds, Map<String, Object> map, List<String> headers, int effectiveTimeIndex,
|
||||
List<Map<String, Object>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) {
|
||||
List<Map<String, String>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) {
|
||||
boolean isError = false;
|
||||
|
||||
boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue());
|
||||
|
|
@ -729,6 +742,28 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
// 调整原因列判空(调薪或调整个税扣缴义务人)
|
||||
|| (adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust)));
|
||||
// 判空
|
||||
if (userNameI18n.equals(key) && StringUtils.isEmpty(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", key + "不能为空");
|
||||
excelComments.add(errorMessageMap);
|
||||
}
|
||||
// 个税扣缴义务人列判空(初始化导入或调整个税扣缴义务人)
|
||||
if ((taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust)) && StringUtils.isEmpty(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", key + "不能为空");
|
||||
excelComments.add(errorMessageMap);
|
||||
}
|
||||
if (effectiveTimeI18n.equals(key) && StringUtils.isEmpty(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", key + "不能为空");
|
||||
excelComments.add(errorMessageMap);
|
||||
}
|
||||
// 调整原因列判空(调薪或调整个税扣缴义务人)
|
||||
if ((adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust)) && StringUtils.isEmpty(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", key + "不能为空");
|
||||
excelComments.add(errorMessageMap);
|
||||
}
|
||||
if (isEmpty) {
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100577, "不能为空"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
|
|
@ -736,13 +771,22 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
// 1.姓名列处理
|
||||
if (!isEmpty && userNameI18n.equals(key)) {
|
||||
if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","员工信息不能为空且不可重复(姓名与部门同时确认唯一)");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100578, "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
} else if (employeeId == null) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","姓名错误,系统内不存在该姓名");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
// (调薪或调整个税扣缴义务人)
|
||||
} else if (finalSalaryArchive == null && (isTaxAgentAdjust || isSalaryItemAdjust)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","该人员的薪资档案不存在,请先初始化");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101653, "该人员的薪资档案不存在,请先初始化"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
|
|
@ -751,10 +795,16 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
isError = handleTaxAgent(isError, isInit, effectiveTimeIndex, excelComments, errorCount, j, taxAgentId, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam);
|
||||
// 3.生效时间处理
|
||||
} else if (!isEmpty && effectiveTimeI18n.equals(key) && effectiveTime == null) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102497, "生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
// 4.调整原因列处理(调薪或调整个税扣缴义务人)
|
||||
} else if (!isEmpty && adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust) && StringUtils.isEmpty(adjustReason)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整原因不存在");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100591, "调整原因不存在"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
// 5.薪资项目列处理(初始化导入或调薪)
|
||||
|
|
@ -811,7 +861,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
* @return
|
||||
*/
|
||||
private boolean handleTaxAgent(boolean isError, boolean isInit, int effectiveTimeIndex,
|
||||
List<Map<String, Object>> excelComments, int errorCount, int j,
|
||||
List<Map<String, String>> excelComments, int errorCount, int j,
|
||||
Long taxAgentId, Date effectiveTime, SalaryArchivePO finalSalaryArchive, String taxAgentAdjustReason, SalaryArchiveImportHandleParam importHandleParam) {
|
||||
if (taxAgentId == null) {
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100545, "个税扣缴义务人不存在"), errorCount + 1, errorCount + 1, j, j);
|
||||
|
|
@ -835,35 +885,56 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
Date currentEffectiveTime = effectiveTaxAgent.getEffectiveTime();
|
||||
// 1.1 如果早于<当前已生效
|
||||
if (effectiveTime.before(currentEffectiveTime)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","生效日期不可早于当前已生效的调整日期");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex);
|
||||
isError = true;
|
||||
isBeforeError = true;
|
||||
// 1.2 如果等于当前已生效
|
||||
} else if (effectiveTime.equals(currentEffectiveTime)) {
|
||||
if (effectiveBeforeTaxAgent != null && effectiveBeforeTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
// 1.3 如果>已经生效且<=今天
|
||||
} else if (effectiveTime.after(currentEffectiveTime) && !effectiveTime.after(importHandleParam.getToday())) {
|
||||
if (effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
// 1.4 如果>今天
|
||||
} else if (effectiveTime.after(importHandleParam.getToday()) && effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
} else if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
|
|
@ -910,7 +981,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
* @return
|
||||
*/
|
||||
private boolean handleSalaryItem(boolean isError, boolean isInit, int effectiveTimeIndex,
|
||||
List<Map<String, Object>> excelComments, int errorCount, int j,
|
||||
List<Map<String, String>> excelComments, int errorCount, int j,
|
||||
Date effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam,
|
||||
String key, String cellVal, Map<String, Object> map) {
|
||||
Optional<SalaryItemPO> optionalSalaryItem = importHandleParam.getSalaryItems().stream().filter(e -> e.getName().equals(key)).findFirst();
|
||||
|
|
@ -934,35 +1005,56 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
|||
Date currentEffectiveTime = effectiveSalaryItem.getEffectiveTime();
|
||||
// 1.1 如果早于<当前已生效
|
||||
if (effectiveTime.before(currentEffectiveTime)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","生效日期不可早于当前已生效的调整日期");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex);
|
||||
isError = true;
|
||||
isBeforeError = true;
|
||||
// 1.2 如果等于当前已生效
|
||||
} else if (effectiveTime.equals(currentEffectiveTime)) {
|
||||
if (effectiveBeforeSalaryItem != null && effectiveBeforeSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
// 1.3 如果>已经生效且<=今天
|
||||
} else if (effectiveTime.after(currentEffectiveTime) && !effectiveTime.after(importHandleParam.getToday())) {
|
||||
if (effectiveSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
// 1.4 如果>今天
|
||||
} else if (effectiveTime.after(importHandleParam.getToday()) && effectiveSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","调整前后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
} else if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message","与未生效的调整后不可相同");
|
||||
excelComments.add(errorMessageMap);
|
||||
// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j);
|
||||
isError = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public class SalaryArchiveController {
|
|||
|
||||
SalaryArchiveImportTypeEnum importTypeEnum = SalaryArchiveImportTypeEnum.parseByValue(queryParam.getImportType());
|
||||
|
||||
String fileName = "薪资档案导入模板-" + importTypeEnum.getDefaultLabel();
|
||||
String fileName = "薪资档案导入模板-" + importTypeEnum.getDefaultLabel() + LocalDate.now();
|
||||
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
|
|
@ -240,6 +240,7 @@ public class SalaryArchiveController {
|
|||
return new ResponseResult<SalaryArchiveImportHandleParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::preview, importParam);
|
||||
}
|
||||
|
||||
//导入
|
||||
@POST
|
||||
@Path("/importSalaryArchive")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
|
|
@ -254,7 +255,7 @@ public class SalaryArchiveController {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String searchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SingleTaxAgentAdjustRecordQueryParam, Map<String,Object>>().run(getSalaryArchiveWrapper(user)::searchCondition);
|
||||
return new ResponseResult<SingleTaxAgentAdjustRecordQueryParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::searchCondition);
|
||||
}
|
||||
|
||||
// ******** 薪资档案主表 end ***********************************************************************************************/
|
||||
|
|
|
|||
|
|
@ -263,8 +263,8 @@ public class SalaryArchiveWrapper extends Service {
|
|||
return getSalaryArchiveService(user).preview(param);
|
||||
}
|
||||
|
||||
public void importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
getSalaryArchiveService(user).importSalaryArchive(param);
|
||||
public Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param) {
|
||||
return getSalaryArchiveService(user).importSalaryArchive(param);
|
||||
}
|
||||
|
||||
public XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue