This commit is contained in:
钱涛 2022-03-31 18:41:41 +08:00
parent a8732708a8
commit 163963d463
10 changed files with 392 additions and 112 deletions

View File

@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* 薪资项目调整
* <p>Copyright: Copyright (c) 2022</p>
@ -23,9 +25,9 @@ public class SalaryArchiveItemFormDTO {
//薪资档案id")
private Long salaryArchiveId;
// //基本调整信息")
// private WeaForm salaryArchiveItemForm;
//
// //薪资项目调整明细")
// private EditableTable salaryArchiveItemDetail;
//基本调整信息")
private Map<String,Object> salaryArchiveItemForm;
//薪资项目调整明细")
private Map<String,Object> salaryArchiveItemDetail;
}

View File

@ -9,7 +9,6 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.Date;
/**
@ -100,7 +99,7 @@ public class SalaryItemAdjustRecordListDTO {
// tableColumn = @TableColumn(width = "100")
// )
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate effectiveTime;
private Date effectiveTime;
//操作人")
// @WeaFormat(

View File

@ -1,6 +1,9 @@
package com.engine.salary.enums.salaryarchive;
import com.engine.salary.util.SalaryI18nUtil;
import java.util.Arrays;
import java.util.Optional;
/**
* @Description: 薪资档案-薪资项目调整原因
@ -53,4 +56,9 @@ public enum SalaryArchiveItemAdjustReasonEnum {
}
return "";
}
public static String getDefaultLabelByValue(String value) {
Optional<SalaryArchiveItemAdjustReasonEnum> optionalAdjustReason = Arrays.stream(SalaryArchiveItemAdjustReasonEnum.values()).filter(r->r.getValue().equals(value)).findFirst();
return optionalAdjustReason.isPresent()? SalaryI18nUtil.getI18nLabel(optionalAdjustReason.get().getLabelId(), optionalAdjustReason.get().getDefaultLabel()):"";
}
}

View File

@ -439,7 +439,7 @@
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
AND e.status != '7'
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
@ -486,7 +486,7 @@
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
AND e.status != '7'
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
@ -593,7 +593,7 @@
LEFT JOIN hrsa_salary_item t2 ON t2.id = t1.salary_item_id
WHERE
t1. t1.delete_type = 0
AND e.status != 'unavailable' AND e.tenant_key = #{tenantKey}
AND e.status != '7'
<if test="salaryItemIds != null and salaryItemIds.size()>0">
AND t1.salary_item_id IN
<foreach collection="salaryItemIds" open="(" item="id" separator="," close=")">
@ -896,7 +896,7 @@
</if>
<if test="param.salaryArchivesIds != null and param.salaryArchivesIds.size()>0">
AND t.salary_archive_id IN
<foreach collection="param.ids" open="(" item="salaryArchiveId" separator="," close=")">
<foreach collection="param.salaryArchivesIds" open="(" item="salaryArchiveId" separator="," close=")">
#{param.salaryArchiveId}
</foreach>
</if>

View File

@ -183,16 +183,18 @@
</delete>
<sql id="salaryArchiveColumn">
t1.id,
t1
.
id
,
t1.employee_id,
e.mobile,
e.lastname as username,
e.status AS employeeStatus,
d.departmentname AS departmentName
</sql>
<sql id="paramSql">
<if test="param.ids != null and param.ids.size()>0">
@ -229,7 +231,7 @@
</if>
<!-- 入职日期 -->
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
<sql id="paramSql" databaseId="oracle">
@ -245,9 +247,6 @@
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
@ -267,7 +266,7 @@
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
<sql id="paramSql" databaseId="sqlserver">
@ -283,9 +282,6 @@
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
@ -305,7 +301,7 @@
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
</sql>
@ -317,7 +313,7 @@
hrsa_salary_archive t1
LEFT JOIN hrmresource e ON e.id = t1.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
WHERE t1.delete_type = 0
WHERE t1.delete_type = 0
<include refid="paramSql"/>
ORDER BY t1.id DESC
</select>
@ -329,13 +325,13 @@
e.mobile,
e.lastname as username,
e.status AS employeeStatus,
d.departmentname AS departmentName
d.departmentname AS departmentName
FROM
hrsa_salary_archive t1
LEFT JOIN hrmresource e ON e.id = t1.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
WHERE t1.delete_type = 0
WHERE t1.delete_type = 0
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
@ -343,15 +339,9 @@
#{id}
</foreach>
</if>
<if test="param.username != null and param.username != ''">
AND e.lastname like '%'||#{param.username}||'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
@ -371,12 +361,13 @@
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
ORDER BY t1.id DESC
</select>
<select id="list" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO" databaseId="sqlserver">
<select id="list" resultType="com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO"
databaseId="sqlserver">
SELECT
t1.id,
@ -384,13 +375,13 @@
e.mobile,
e.lastname as username,
e.status AS employeeStatus,
d.departmentname AS departmentName
d.departmentname AS departmentName
FROM
hrsa_salary_archive t1
LEFT JOIN hrmresource e ON e.id = t1.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
WHERE t1.delete_type = 0
WHERE t1.delete_type = 0
<if test="param.ids != null and param.ids.size()>0">
AND t1.id IN
@ -402,11 +393,6 @@
<if test="param.username != null and param.username != ''">
AND e.lastname like '%'+#{param.username}+'%'
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND d.id IN
<foreach collection="param.departmentIds" open="(" item="id" separator="," close=")">
@ -426,7 +412,7 @@
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.hiredate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
ORDER BY t1.id DESC

View File

@ -76,13 +76,10 @@ public interface SalaryArchiveService {
/**
* 导出薪资档案列表
*
* @param map
* @param username
* @param eteamsId
* @param queryParam
* @throws Exception
*/
void exportList(Map<String, Object> map, String username, String eteamsId, SalaryArchiveQueryParam queryParam);
XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam);
/**
* 下载导入模板
@ -95,7 +92,6 @@ public interface SalaryArchiveService {
/**
* 获取离职时段设置
*
*/
List<SalaryArchiveDimissionPO> dimissionSets();
@ -111,7 +107,7 @@ public interface SalaryArchiveService {
* 根据日期范围与人员id获取薪资档案-薪资项目数据
*
* @param localDateRange
* @param employeeIds 为空则返回所有人的
* @param employeeIds 为空则返回所有人的
* @return
*/
List<SalaryArchiveDataDTO> getSalaryArchiveData(LocalDateRange localDateRange, Collection<Long> employeeIds);
@ -120,7 +116,7 @@ public interface SalaryArchiveService {
* 根据日期范围与人员id获取薪资档案-个税扣缴义务人数据
*
* @param localDateRange
* @param employeeIds 为空则返回所有人的
* @param employeeIds 为空则返回所有人的
* @return
*/
List<SalaryArchiveDataDTO> getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection<Long> employeeIds);

View File

@ -182,7 +182,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
@Override
public void exportList(Map<String, Object> map, String username, String eteamsId, SalaryArchiveQueryParam queryParam) {
public XSSFWorkbook exportList( SalaryArchiveQueryParam queryParam) {
// 1.工作簿名称
String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案");
// 获取所有可被引用的薪资项目
@ -222,7 +222,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
});
// 3.表数据
ExcelUtil.genWorkbookV2(rows, sheetName);
return ExcelUtil.genWorkbookV2(rows, sheetName);
}
@Override

View File

@ -1,11 +1,15 @@
package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveFormDTO;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.wrapper.SalaryArchiveItemWrapper;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.apache.commons.lang3.StringUtils;
@ -43,27 +47,14 @@ public class SalaryArchiveController {
private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveWrapper.class, user);
}
//
// @Autowired
// private SalaryArchiveWrapper salaryArchiveWrapper;
// @Autowired
// private SalaryArchiveItemWrapper salaryArchiveItemWrapper;
private SalaryArchiveItemWrapper getSalaryArchiveItemWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveItemWrapper.class, user);
}
// private SalaryArchiveTaxAgentWrapper salaryArchiveTaxAgentWrapper;
// /******** 薪资档案主表 start ***********************************************************************************************/
// /**
// * 薪资档案列表的高级搜索
// *
// * @return
// */
// @GetMapping("/getSearchCondition")
// @ApiOperation("薪资档案列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getSearchCondition() {
// return WeaResult.success(salaryArchiveWrapper.getSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
/**
* 薪资档案列表
@ -76,22 +67,38 @@ public class SalaryArchiveController {
@Produces(MediaType.APPLICATION_JSON)
public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryArchiveQueryParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::list, queryParam);
return new ResponseResult<SalaryArchiveQueryParam, PageInfo<Map<String, Object>>>().run(getSalaryArchiveWrapper(user)::list, queryParam);
}
/**
* 导出薪资档案
*
* @return
*/
@GET
@Path("/exportList")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
User user = HrmUserVarify.getUser(request, response);
SalaryArchiveQueryParam queryParam = buildParam(request);
// /**
// * 导出薪资档案
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/exportList")
// @ApiOperation("导出薪资档案")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportList(@RequestBody SalaryArchiveQueryParam queryParam) throws Exception {
// return WeaResult.success(salaryArchiveWrapper.exportList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
XSSFWorkbook workbook = getSalaryArchiveWrapper(user).exportList(queryParam);
String fileName = "薪资档案";
try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StreamingOutput output = outputStream -> {
workbook.write(outputStream);
outputStream.flush();
};
response.setContentType("application/octet-stream");
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
}
/**
* 获取薪资档案详情表单
@ -108,7 +115,7 @@ public class SalaryArchiveController {
if (StringUtils.isNotBlank(salaryArchiveIdStr)) {
salaryArchiveId = Long.valueOf(salaryArchiveIdStr);
}
return new ResponseResult<Long, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::getFrom, salaryArchiveId);
return new ResponseResult<Long, SalaryArchiveFormDTO>().run(getSalaryArchiveWrapper(user)::getFrom, salaryArchiveId);
}
@ -241,9 +248,9 @@ public class SalaryArchiveController {
// /******** 薪资档案主表 end ***********************************************************************************************/
//
// /******** 薪资项目调整 start ***********************************************************************************************/
// ******** 薪资档案主表 end ***********************************************************************************************/
// ******** 薪资项目调整 start ***********************************************************************************************/
// /**
// * 通过薪资档案id获取薪资项目调整表单
// *
@ -269,20 +276,25 @@ public class SalaryArchiveController {
// public WeaResult<String> getSalaryItemAdjustBeforeValue(@RequestBody SalaryItemAdjustBeforeParam adjustBeforeParam) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemAdjustBeforeValue(adjustBeforeParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 通过薪资档案的薪资项目id获取薪资项目调整表单
// *
// * @param salaryArchiveItemId
// * @return
// */
// @GetMapping("/getSalaryItemFormBySalaryArchiveItemId")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveItemFormDTO> getSalaryItemFormBySalaryArchiveItemId(@RequestParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemFormBySalaryArchiveItemId(salaryArchiveItemId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
/**
* 通过薪资档案的薪资项目id获取薪资项目调整表单
*
* @return
*/
@GET
@Path("/getSalaryItemFormBySalaryArchiveItemId")
@Produces(MediaType.APPLICATION_JSON)
public String getSalaryItemFormBySalaryArchiveItemId(@Context HttpServletRequest request, @Context HttpServletResponse response) {
User user = HrmUserVarify.getUser(request, response);
String salaryArchiveItemIdStr = request.getParameter("salaryArchiveItemId");
Long salaryArchiveItemId = null;
if (StringUtils.isNotBlank(salaryArchiveItemIdStr)) {
salaryArchiveItemId = Long.valueOf(salaryArchiveItemIdStr);
}
return new ResponseResult<Long, SalaryArchiveItemFormDTO>().run(getSalaryArchiveItemWrapper(user)::getSalaryItemFormBySalaryArchiveItemId,salaryArchiveItemId);
}
// /**
// * 保存薪资项目调整
// *

View File

@ -0,0 +1,286 @@
package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO;
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustBeforeParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.enums.SalaryUserStatusEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.SalaryArchiveItemService;
import com.engine.salary.service.impl.SalaryArchiveItemServiceImpl;
import com.engine.salary.util.SalaryI18nUtil;
import com.google.common.collect.Lists;
import org.springframework.stereotype.Component;
import weaver.hrm.User;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.stream.Collectors;
/**
* 薪资项目
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Component
public class SalaryArchiveItemWrapper extends Service {
private SalaryArchiveItemService getSalaryArchiveItemService(User user) {
return (SalaryArchiveItemService) ServiceUtil.getService(SalaryArchiveItemServiceImpl.class, user);
}
private ExecutorService taskExecutor;
/**
* 构建薪资项目基础信息表单
*
* @param effectiveTime
* @param adjustReason
* @param description
* @return
*/
private Map<String, Object> buildSalaryArchiveItemForm(Date effectiveTime, String adjustReason, String description) {
// 控件数据
Map<String, Object> data = new HashMap<>();
data.put("effectiveTime", effectiveTime + "");
data.put("adjustReason", adjustReason);
data.put("description", description);
return data;
}
/**
* 构建薪资档案调整明细
*
* @return
*/
private Map<String, Object> buildSalaryArchiveItemAdjustDetailTable(List<Map<String, Object>> tableData) {
Map<String, Object> map = new HashMap<>();
// 表头
List<String> headers = new ArrayList<>();
headers.add(SalaryI18nUtil.getI18nLabel(84960, "薪资项目"));
headers.add(SalaryI18nUtil.getI18nLabel(85433, "调整前"));
headers.add(SalaryI18nUtil.getI18nLabel(85434, "调整后"));
// 获取所有可被引用的薪资项目
List<SalaryItemPO> salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems();
List<Map<String, Object>> salaryItems = salaryItemList.stream().map(m -> {
Map<String, Object> salaryItemMap = new LinkedHashMap<>();
salaryItemMap.put("id", String.valueOf(m.getId()));
salaryItemMap.put("content", m.getName());
return salaryItemMap;
}).collect(Collectors.toList());
map.put("headers", headers);
map.put("list", tableData);
map.put("salaryItemList", salaryItems);
return map;
}
/**
* 获取薪资项目调整前的值
*
* @param adjustBeforeParam
* @return
*/
public String getSalaryItemAdjustBeforeValue(SalaryItemAdjustBeforeParam adjustBeforeParam) {
return getSalaryArchiveItemService(user).getSalaryItemAdjustBeforeValue(adjustBeforeParam);
}
/**
* 通过薪资档案的薪资项目id获取薪资项目调整表单
*
* @param salaryArchiveItemId
* @return
*/
public SalaryArchiveItemFormDTO getSalaryItemFormBySalaryArchiveItemId(Long salaryArchiveItemId) {
if (salaryArchiveItemId == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100427, "薪资档案的薪资项目id不能为空"));
}
SalaryArchiveItemPO salaryArchiveItem = getSalaryArchiveItemService(user).getById(salaryArchiveItemId);
if (salaryArchiveItem == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100428, "该薪资档案的薪资项目的调整记录不存在"));
}
Long salaryArchiveId = salaryArchiveItem.getSalaryArchiveId();
Date effectiveTime;
String adjustReason;
String description;
// 调整明细数据
List<Map<String, Object>> tableData = Lists.newArrayList();
// 获取调整前
String archiveItemBeforeValue = getSalaryArchiveItemService(user).getSalaryItemAdjustBeforeValue(SalaryItemAdjustBeforeParam.builder()
.salaryArchiveId(salaryArchiveItem.getSalaryArchiveId())
.salaryArchiveItemId(salaryArchiveItem.getId())
.salaryItemId(salaryArchiveItem.getSalaryItemId())
.build());
effectiveTime = salaryArchiveItem.getEffectiveTime();
adjustReason = salaryArchiveItem.getAdjustReason();
description = salaryArchiveItem.getDescription();
Map<String, Object> map = new HashMap<>(3);
map.put("salaryItem", String.valueOf(salaryArchiveItem.getSalaryItemId()));
map.put("salaryBefore", archiveItemBeforeValue);
map.put("adjustAfter", salaryArchiveItem.getItemValue());
tableData.add(map);
return SalaryArchiveItemFormDTO.builder()
.salaryArchiveId(salaryArchiveId)
.salaryArchiveItemForm(buildSalaryArchiveItemForm(effectiveTime, adjustReason, description))
.salaryArchiveItemDetail(buildSalaryArchiveItemAdjustDetailTable(tableData))
.build();
}
/**
* 保存薪资项目调整
*
* @param saveParam
* @return
*/
public String saveSalaryItem(SalaryArchiveItemSaveParam saveParam) {
return getSalaryArchiveItemService(user).saveSalaryItem(saveParam);
}
/**
* 删除薪资项目调整
*
* @param salaryArchiveItemId
* @return
*/
public String deleteSalaryItem(Long salaryArchiveItemId) {
return getSalaryArchiveItemService(user).deleteSalaryItem(salaryArchiveItemId);
}
/**
* 薪资项目调整记录列表
*
* @param queryParam
* @return
*/
public List<SalaryItemAdjustRecordListDTO> adjustRecordList(SalaryItemAdjustRecordQueryParam queryParam) {
// 获取所有可被引用的薪资项目
List<SalaryItemPO> salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems();
List<Long> salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
List<SalaryItemAdjustRecordListDTO> listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds);
List<SalaryItemAdjustRecordListDTO> list = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(queryParam, salaryItemIds);
//获取上次更改的记录
list.forEach(m -> {
if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) {
listAll.removeIf(a -> a.getId().equals(m.getId()));
}
Optional<SalaryItemAdjustRecordListDTO> optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst();
m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : "");
m.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(m.getEmployeeStatus()));
m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason()));
});
return list;
}
// /**
// * 单个档案的薪资项目调整记录列表
// *
// * @param queryParam
// * @param employeeId
// * @param tenantKey
// * @return
// */
// public WeaTable<SingleSalaryItemAdjustRecordListDTO> singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam, Long employeeId, String tenantKey) {
// if (queryParam.getSalaryArchiveId() == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100425, "薪资档案id不能为空"));
// }
// // 获取所有可被引用的薪资项目
// List<SalaryItemPO> salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(tenantKey);
// List<Long> salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
//
// Page<SalaryItemAdjustRecordListDTO> page = new Page<>(queryParam.getCurrent(), queryParam.getPageSize(), true);
// SalaryItemAdjustRecordQueryParam adjustRecordQueryParam = new SalaryItemAdjustRecordQueryParam();
// BeanUtils.copyProperties(queryParam, adjustRecordQueryParam);
// page = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(page, adjustRecordQueryParam, salaryItemIds, tenantKey);
// Page<SingleSalaryItemAdjustRecordListDTO> listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount());
//
// List<SalaryItemAdjustRecordListDTO> listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds, tenantKey);
// List<SalaryItemAdjustRecordListDTO> list = page.getRecords();
// List<SingleSalaryItemAdjustRecordListDTO> resultList = Lists.newArrayList();
// list.forEach(m -> {
// if (!org.springframework.util.CollectionUtils.isEmpty(listAll)) {
// listAll.removeIf(a -> a.getId().equals(m.getId()));
// }
// Optional<SalaryItemAdjustRecordListDTO> optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst();
// m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : "");
//
// m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason(), employeeId, tenantKey));
//
// SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecordList = new SingleSalaryItemAdjustRecordListDTO();
// BeanUtils.copyProperties(m, singleSalaryItemAdjustRecordList);
// resultList.add(singleSalaryItemAdjustRecordList);
// });
// listPage.setRecords(resultList);
//
// WeaTable<SingleSalaryItemAdjustRecordListDTO> weaTable = FormatManager.<SingleSalaryItemAdjustRecordListDTO>getInstance()
// .genTable(SingleSalaryItemAdjustRecordListDTO.class, listPage);
// weaTable.setModule("hrmsalary");
// List<Long> salaryItemPageIds = listPage.getRecords().stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList());
// List<SalaryArchiveItemPO> effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(queryParam.getSalaryArchiveId(), salaryItemPageIds, tenantKey);
// // 行记录按钮权限控制
// for (int i = 0; i < listPage.getRecords().size(); i++) {
// SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = listPage.getRecords().get(i);
// Optional<SalaryArchiveItemPO> optional = effectiveSalaryItems.stream().filter(f -> f.getSalaryItemId().equals(singleSalaryItemAdjustRecord.getSalaryItemId())).findFirst();
// LocalDate effectiveDate = optional.map(SalaryArchiveItemPO::getEffectiveTime).orElse(null);
// List<Permission> permissions = weaTable.getOperatesPermission().get(i);
// for (int j = 0; j < permissions.size(); j++) {
// Permission permission = permissions.get(j);
// if (effectiveDate != null && singleSalaryItemAdjustRecord.getEffectiveTime().isBefore(effectiveDate)) {
// permission.setVisible(false);
// permission.setDisabled(true);
// }
// if (j > 0 && singleSalaryItemAdjustRecord.getEffectiveTime().equals(effectiveDate)) {
// permission.setVisible(false);
// permission.setDisabled(false);
// }
// }
// }
// // 在外展示操作按钮
// weaTable.getOperates().get(0).setOuter(Boolean.TRUE);
// return weaTable;
// }
//
// /**
// * 导出薪资项目调整记录列表
// *
// * @param queryParam
// * @param employeeId
// * @param tenantKey
// * @return
// */
// public Map<String, Object> exportAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam, Long employeeId, String tenantKey) {
// // 构建异步导出参数
// Map<String, Object> map = salaryBatchService.buildeExportParam("exportSalaryArchiveItemAdjustRecord");
//
// String username = UserContext.getCurrentUser().getUsername();
// String eteamsId = TenantRpcContext.getEteamsId();
// taskExecutor.execute(() -> {
// try {
// DSTenantKeyThreadVar.tenantKey.set(tenantKey);
//
// getSalaryArchiveItemService(user).exportAdjustRecordList(map, username, eteamsId, queryParam, employeeId, tenantKey);
// } finally {
// DSTenantKeyThreadVar.tenantKey.remove();
// }
// });
// return map;
// }
}

View File

@ -239,18 +239,9 @@ public class SalaryArchiveWrapper extends Service {
getSalaryArchiveService(user).importSalaryArchive(param);
}
public XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam) {
return getSalaryArchiveService(user).exportList(queryParam);
}
//
// /**
// * 获取导入参数
// *
// * @return
// */
// public ExcelImportParam getImportParams() {
// return salaryBatchService.buildImportParam("importSalaryArchive",
// "importSalaryArchive",
// SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), 85368, "薪资档案"),
// null,
// null);
// }
}