薪资核算导入,添加表头字段缓存功能

This commit is contained in:
Harryxzy 2023-03-16 16:19:23 +08:00
parent b9c40955ac
commit 3304ffdbd5
6 changed files with 42 additions and 1 deletions

View File

@ -14,4 +14,11 @@ public class SalaryItemConstant {
* 列表中薪资项目动态列后缀标识
*/
public static final String DYNAMIC_SUFFIX = "_salaryItem";
/**
* 薪资核算导入缓存表头字段key
*/
public static final String RESULT_IMPORT_FIELD_SIGN="_salaryAcctResultImportFieldSign";
}

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.List;
/**
* 薪资核算导入时生成导入模板的薪资项目
@ -30,6 +31,9 @@ public class SalaryAcctImportFieldDTO {
//输入项
private Collection<ImportFieldDTO> inputItems;
// 缓存勾选项目
private List<Long> checkItems;
@Data
@Builder
@NoArgsConstructor

View File

@ -6,6 +6,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
* <p>Copyright: Copyright (c) 2022</p>
@ -28,4 +30,7 @@ public class SalaryAcctImportParam {
@DataCheck(require = true,message = "薪资核算记录id为空")
Long salaryAcctRecordId;
// 导入表单字段缓存项目
List<Long> salaryItems;
}

View File

@ -105,6 +105,8 @@ public interface SalaryAcctExcelService {
Map<String, Object> preview(SalaryAcctImportParam param);
void cacheImportField(List<Long> salaryItems);
//
// /**
// * 薪资核算结果校验异常导出

View File

@ -1,11 +1,13 @@
package com.engine.salary.service.impl;
import com.api.formmode.mybatis.util.SqlProxyHandle;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.component.WeaTableColumnGroup;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.constant.SalaryItemConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.report.po.SalaryAcctResultReportPO;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO;
@ -34,6 +36,7 @@ import com.engine.salary.sys.entity.po.SalarySysConfPO;
import com.engine.salary.sys.enums.OpenEnum;
import com.engine.salary.sys.service.SalarySysConfService;
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.excel.ExcelParseHelper;
@ -391,8 +394,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
.salaryItemName(salaryItemPO.getName())
.build())
.collect(Collectors.toList());
// 缓存勾选
String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN;
String cacheValue = (String)Util_DataCache.getObjVal(cacheKey);
List<Long> checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class);
// 转换成dto
return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).build();
return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).checkItems(checkItems).build();
}
@Override
@ -575,6 +582,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
}
}
@Override
public void cacheImportField(List<Long> salaryItems) {
String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN;
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryItems));
}
private Map<String, Object> batchImport(SalaryAcctImportParam param, String importType) {
Map<String, Object> apidatas = new HashMap<String, Object>();
ValidUtil.doValidator(param);

View File

@ -31,6 +31,7 @@ import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -483,6 +484,15 @@ public class SalaryAcctController {
return new ResponseResult<Long, SalaryAcctImportFieldDTO>(user).run(getSalaryAcctExcelService(user)::getImportField, salaryAcctRecordId);
}
// 薪资核算导入字段缓存
@POST
@Path("/acctresult/cacheImportField")
@Produces(MediaType.APPLICATION_JSON)
public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<Long>, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param.getSalaryItems());
}
//导出导入模板
@GET
@Path("/acctresult/importtemplate/export")