浮动薪酬

This commit is contained in:
Harryxzy 2024-10-14 10:38:30 +08:00
parent 31d2994a9a
commit 49cbb7a7cc
6 changed files with 66 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.datacollection.po;
import com.engine.salary.annotation.Encrypt;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -41,6 +42,7 @@ public class VariableArchiveItemPO {
/**
* 浮动值
*/
@Encrypt
private String itemValue;
/**

View File

@ -70,4 +70,6 @@ public interface VariableArchiveService {
void deleteSelectVariableArchive(Collection<Long> deleteIds);
List<Map<String, Object>> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List<Long> employeeIds, Long taxAgentId);
void updateData(VariableArchiveSaveParam updateParam);
}

View File

@ -1,6 +1,7 @@
package com.engine.salary.service.impl;
import com.engine.core.impl.Service;
import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO;
import com.engine.salary.mapper.datacollection.VariableArchiveItemMapper;
import com.engine.salary.service.VariableArchiveItemService;
@ -18,6 +19,7 @@ import java.util.List;
* @description 浮动薪酬档案明细
*/
public class VariableArchiveItemServiceImpl extends Service implements VariableArchiveItemService {
private EncryptUtil encryptUtil = new EncryptUtil();
private VariableArchiveItemMapper getVariableArchiveItemMapper(){
return MapperProxyFactory.getProxy(VariableArchiveItemMapper.class);
@ -34,7 +36,8 @@ public class VariableArchiveItemServiceImpl extends Service implements VariableA
if (CollectionUtils.isEmpty(variableArchiveIds)) {
return Collections.emptyList();
}
return getVariableArchiveItemMapper().listSome(VariableArchiveItemPO.builder().variableArchiveIds(variableArchiveIds).build());
List<VariableArchiveItemPO> variableArchiveItemPOS = getVariableArchiveItemMapper().listSome(VariableArchiveItemPO.builder().variableArchiveIds(variableArchiveIds).build());
return encryptUtil.decryptList(variableArchiveItemPOS, VariableArchiveItemPO.class);
}
/**
@ -52,6 +55,7 @@ public class VariableArchiveItemServiceImpl extends Service implements VariableA
if (CollectionUtils.isEmpty(insertList)) {
return 0;
}
encryptUtil.encryptList(insertList, VariableArchiveItemPO.class);
List<List<VariableArchiveItemPO>> partition = Lists.partition(insertList, 50);
partition.forEach(part -> getVariableArchiveItemMapper().batchInsert(part));
return 0;

View File

@ -151,9 +151,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi
*/
@Override
public List<Map<String, Object>> buildVariableArchiveData(Collection<VariableArchiveListDTO> variableArchives) {
if (CollectionUtils.isEmpty(variableArchives)) {
// 无数据
}
List<Long> variableArchiveIds = variableArchives.stream().map(VariableArchiveListDTO::getId).collect(Collectors.toList());
// 获取浮动薪资档案所对应的浮动薪资项目数据
List<VariableArchiveItemPO> variableArchiveItemList = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds);
@ -599,4 +596,41 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi
List<VariableArchiveListDTO> variableArchiveListDTO = list(queryParam);
return buildVariableArchiveData(variableArchiveListDTO);
}
@Override
public void updateData(VariableArchiveSaveParam updateParam) {
if (updateParam.getId() == null) {
throw new SalaryRunTimeException("参数错误");
}
// 获取浮动薪酬档案
VariableArchivePO variableArchivePO = getVariableArchiveMapper().getById(updateParam.getId());
if (variableArchivePO == null) {
throw new SalaryRunTimeException("浮动薪酬档案不存在或已被删除");
}
// 删除原有的浮动薪酬档案明细
getVariableArchiveItemService(user).deleteByArchiveIds(Collections.singletonList(updateParam.getId()));
// 保存浮动薪资档案详细信息
List<VariableArchiveItemPO> variableArchiveItemList = new ArrayList<>();
Date now = new Date();
updateParam.getItemValueList().forEach(e -> {
variableArchiveItemList.add(VariableArchiveItemPO.builder()
.id(IdGenerator.generate())
.employeeId(updateParam.getEmployeeId())
.variableArchiveId(variableArchivePO.getId())
.variableItemId(e.getVariableItemId())
.itemValue(e.getItemValue())
.creator(Long.valueOf(user.getUID()))
.createTime(now)
.updateTime(now)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
});
if (CollectionUtils.isNotEmpty(variableArchiveItemList)) {
getVariableArchiveItemService(user).batchInsert(variableArchiveItemList);
}
}
}

View File

@ -114,6 +114,22 @@ public class VariableArchiveController {
return new ResponseResult<VariableArchiveSaveParam, String>(user).run(getVariableArchiveWrapper(user)::createData, saveParam);
}
/**
* 编辑浮动薪酬档案
*
* @param request
* @param response
* @param updateParam
* @return
*/
@POST
@Path("/updateData")
@Produces(MediaType.APPLICATION_JSON)
public String updateData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody VariableArchiveSaveParam updateParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<VariableArchiveSaveParam, String>(user).run(getVariableArchiveWrapper(user)::updateData, updateParam);
}
@GET
@Path("/downloadTemplate")

View File

@ -123,4 +123,8 @@ public class VariableArchiveWrapper extends Service {
public void deleteSelectVariableArchive(Collection<Long> deleteIds) {
getVariableArchiveService(user).deleteSelectVariableArchive(deleteIds);
}
public void updateData(VariableArchiveSaveParam updateParam) {
getVariableArchiveService(user).updateData(updateParam);
}
}