Merge remote-tracking branch 'origin/release/2.2.2.2211.03' into release/2.2.2.2211.03
This commit is contained in:
commit
0f51d44cd4
|
|
@ -123,6 +123,19 @@ public class SalaryArchiveItemBiz {
|
|||
}
|
||||
|
||||
|
||||
public void updateIgnoreNull(SalaryArchiveItemPO salaryArchiveItem) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class);
|
||||
SalaryArchiveItemPOEncrypt.encryptSalaryArchiveItemPO(salaryArchiveItem);
|
||||
mapper.updateIgnoreNull(salaryArchiveItem);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<SalaryItemAdjustRecordListDTO> salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam, List<Long> salaryItemIds) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -30,4 +30,7 @@ public class SalaryArchiveItemFormDTO {
|
|||
|
||||
//薪资项目调整明细")
|
||||
private Map<String,Object> salaryArchiveItemDetail;
|
||||
|
||||
//是否可以编辑
|
||||
private boolean canOperator;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,12 +30,18 @@ import java.util.Set;
|
|||
//薪资项目调整保存参数")
|
||||
public class SalaryArchiveItemSaveParam {
|
||||
|
||||
// 主键id
|
||||
private Long salaryArchiveItemId;
|
||||
|
||||
//薪资档案id
|
||||
private Long salaryArchiveId;
|
||||
|
||||
//生效时间
|
||||
private Date effectiveTime;
|
||||
|
||||
// 是否允许编辑
|
||||
private Boolean canOperator;
|
||||
|
||||
/**
|
||||
* 调整原因
|
||||
*
|
||||
|
|
@ -49,6 +55,8 @@ public class SalaryArchiveItemSaveParam {
|
|||
//薪资项目
|
||||
private List<SalaryArchiveItemDetailSaveParam> salaryArchiveItems;
|
||||
|
||||
|
||||
|
||||
public static void checkParam(SalaryArchiveItemSaveParam saveParam) {
|
||||
if (saveParam.getSalaryArchiveId() == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100305, "薪资档案id必传"));
|
||||
|
|
@ -56,9 +64,9 @@ public class SalaryArchiveItemSaveParam {
|
|||
if (saveParam.getAdjustReason() == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "请选择调整原因"));
|
||||
}
|
||||
if (SalaryArchiveItemAdjustReasonEnum.parseByValue(saveParam.getAdjustReason()) == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "调整原因不在范围内"));
|
||||
}
|
||||
// if (SalaryArchiveItemAdjustReasonEnum.parseByValue(saveParam.getAdjustReason()) == null) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "调整原因不在范围内"));
|
||||
// }
|
||||
if (saveParam.getEffectiveTime() == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100307, "请选择生效日期"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,15 @@ public interface SalaryArchiveItemService {
|
|||
*/
|
||||
String getSalaryItemAdjustBeforeValue(SalaryItemAdjustBeforeParam adjustBeforeParam);
|
||||
|
||||
|
||||
/**
|
||||
* @description 根据薪资档案id和薪资项id获取薪资项目(生效+不生效)
|
||||
* @return List<SalaryAtemPO>
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/14 17:07
|
||||
*/
|
||||
List<SalaryArchiveItemPO> getSalaryItemsBySalaryArchiveIdAndItemIds(Long salaryArchiveId, List<Long> salaryItemPageIds);
|
||||
|
||||
/**
|
||||
* 获取当前已生效
|
||||
*
|
||||
|
|
@ -140,5 +149,11 @@ public interface SalaryArchiveItemService {
|
|||
Map<String, List<SalaryArchiveItemPO>> getIneffectiveItemListMap(Collection<Long> salaryArchiveIds, boolean isNoNeedSalaryItem, Collection<Long> salaryItemIds);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description 单个档案的薪资项目调整的编辑
|
||||
* @return String
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/14 13:38
|
||||
*/
|
||||
String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.engine.core.impl.Service;
|
|||
import com.engine.salary.biz.SalaryArchiveBiz;
|
||||
import com.engine.salary.biz.SalaryArchiveItemBiz;
|
||||
import com.engine.salary.biz.SalaryItemBiz;
|
||||
import com.engine.salary.constant.SalaryArchiveConstant;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
|
||||
import com.engine.salary.entity.salaryarchive.param.*;
|
||||
|
|
@ -12,6 +13,7 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
|
|||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.enums.UserStatusEnum;
|
||||
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
|
||||
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.service.SalaryArchiveItemService;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
|
|
@ -26,6 +28,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -57,8 +60,11 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
|
|||
private List<SalaryArchiveItemPO> getIneffectiveSalaryItems(Long salaryArchiveId, List<Long> salaryItemIds) {
|
||||
// 没有薪资项目时,给个不存在的,否则加载所有不合理
|
||||
salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds;
|
||||
ArrayList<Long> salaryArchiveIds = new ArrayList<>();
|
||||
salaryArchiveIds.add(salaryArchiveId);
|
||||
return salaryArchiveItemMapper.getIneffectiveSalaryItems(SalaryArchiveItemQueryParam.builder()
|
||||
.salaryArchiveId(salaryArchiveId)
|
||||
.salaryArchivesIds(salaryArchiveIds)
|
||||
.salaryItemIds(salaryItemIds)
|
||||
.effectiveTime(new Date()).build());
|
||||
}
|
||||
|
|
@ -74,6 +80,17 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
|
|||
.effectiveTime(new Date()).build());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<SalaryArchiveItemPO> getSalaryItemsBySalaryArchiveIdAndItemIds(Long salaryArchiveId, List<Long> salaryItemIds) {
|
||||
// 没有薪资项目时,给个不存在的,否则加载所有不合理
|
||||
salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds;
|
||||
return salaryArchiveItemMapper.getEffectiveSalaryItems(SalaryArchiveItemQueryParam.builder()
|
||||
.salaryArchiveId(salaryArchiveId)
|
||||
.salaryItemIds(salaryItemIds)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前已生效 gt
|
||||
*
|
||||
|
|
@ -169,6 +186,99 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
|
|||
return SalaryEntityUtil.group2Map(salaryArchiveItems, k -> k.getSalaryArchiveId() + "-" + k.getSalaryItemId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam) {
|
||||
// 检查参数
|
||||
SalaryArchiveItemSaveParam.checkParam(salaryArchiveItemSaveParam);
|
||||
|
||||
Long salaryArchiveId = salaryArchiveItemSaveParam.getSalaryArchiveId();
|
||||
// 获取所有可被引用的薪资项目
|
||||
List<SalaryItemPO> salaryItems = getCanAdjustSalaryItems();
|
||||
Map<Long, SalaryItemPO> salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getId);
|
||||
// 待处理薪资项目
|
||||
List<SalaryArchiveItemDetailSaveParam> salaryArchiveItems = salaryArchiveItemSaveParam.getSalaryArchiveItems().stream()
|
||||
.filter(e -> salaryItemMap.containsKey(e.getSalaryItemId()))
|
||||
.collect(Collectors.toList());
|
||||
List<Long> salaryItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemDetailSaveParam::getSalaryItemId).collect(Collectors.toList());
|
||||
// 薪资档案
|
||||
SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(salaryArchiveId);
|
||||
if (salaryArchive != null) {
|
||||
// 停薪列表禁止操作
|
||||
boolean isDisabled = salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue()) ||
|
||||
salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue());
|
||||
if (isDisabled) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(115437, "停薪列表禁止操作"));
|
||||
}
|
||||
SalaryArchiveItemPO salaryArchiveItem = null;
|
||||
if (salaryArchiveItemSaveParam.getSalaryArchiveItemId() != null ) {
|
||||
salaryArchiveItem = salaryArchiveItemMapper.getById(salaryArchiveItemSaveParam.getSalaryArchiveItemId());
|
||||
if (salaryArchiveItem == null || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchiveId)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100428, "该薪资档案的薪资项目的调整记录不存在"));
|
||||
}
|
||||
if (salaryArchiveItemSaveParam.getSalaryArchiveItems().size() > 1) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(149535, "单个调整不能处理多个薪资项目"));
|
||||
} else if (!salaryArchiveItems.get(0).getSalaryItemId().equals(salaryArchiveItem.getSalaryItemId())){
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 149539, "单个调薪的目标项目和调整明细项目id不一致"));
|
||||
}
|
||||
}
|
||||
// 构建更新PO
|
||||
SalaryArchiveItemPO updateSalaryArchiveItemPO = buildUpdateSalaryArchiveItemPO(salaryArchiveItemSaveParam,salaryArchiveItems,salaryItemIds,salaryArchiveItem);
|
||||
salaryArchiveItemMapper.updateIgnoreNull(updateSalaryArchiveItemPO);
|
||||
}
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 构建薪资档案中调薪的更新PO
|
||||
* @return null
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/14 14:24
|
||||
*/
|
||||
private SalaryArchiveItemPO buildUpdateSalaryArchiveItemPO(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam,List<SalaryArchiveItemDetailSaveParam> salaryArchiveItems,List<Long> salaryItemIds,SalaryArchiveItemPO salaryArchiveItem) {
|
||||
// 获取生效+未生效的数据
|
||||
List<SalaryArchiveItemPO> salaryItemsBySalaryArchiveIdAndItemIds = getSalaryItemsBySalaryArchiveIdAndItemIds(salaryArchiveItemSaveParam.getSalaryArchiveId(), salaryItemIds);
|
||||
// 获取当前已生效数据
|
||||
List<SalaryArchiveItemPO> effectiveSalaryItems = getEffectiveSalaryItems(salaryArchiveItemSaveParam.getSalaryArchiveId(), salaryItemIds);
|
||||
// 待保存生效时间
|
||||
Date saveEffectiveTime = salaryArchiveItemSaveParam.getEffectiveTime();
|
||||
salaryArchiveItems.forEach(e -> {
|
||||
// 已生效
|
||||
List<SalaryArchiveItemPO> effectiveList = effectiveSalaryItems.stream().filter(i -> i.getSalaryItemId().equals(e.getSalaryItemId())).collect(Collectors.toList());
|
||||
// 当前已生效
|
||||
SalaryArchiveItemPO effectiveSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null;
|
||||
List<SalaryArchiveItemPO> list = salaryItemsBySalaryArchiveIdAndItemIds.stream().filter(i -> i.getSalaryItemId().equals(e.getSalaryItemId())).collect(Collectors.toList());
|
||||
boolean isNotNumber = StringUtils.isNotEmpty(e.getAdjustValue()) && !Pattern.matches(SalaryArchiveConstant.NUMBER_REGEX, e.getAdjustValue());
|
||||
if (isNotNumber) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100581, "请输入数字"));
|
||||
}
|
||||
|
||||
// 修改了生效日期
|
||||
if(!salaryArchiveItemSaveParam.getEffectiveTime().equals(salaryArchiveItem.getEffectiveTime())){
|
||||
boolean isEffectiveTimeRepeat = list.stream().anyMatch(it -> it.getEffectiveTime().equals(saveEffectiveTime));
|
||||
if (isEffectiveTimeRepeat) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(153539, "已经存在该生效日期的调整记录,请修改生效日期"));
|
||||
}
|
||||
}
|
||||
|
||||
// 1.检验是否可以调整
|
||||
if (effectiveSalaryItem != null) {
|
||||
// 当前已经生效的时间
|
||||
Date effectiveTime = effectiveSalaryItem.getEffectiveTime();
|
||||
// 1.1 如果保存的生效日期早于<当前已生效
|
||||
if (saveEffectiveTime.before(effectiveTime)) {
|
||||
if(salaryArchiveItemSaveParam.getCanOperator() == Boolean.TRUE){
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期,仅修改备注"));
|
||||
}
|
||||
// 仅可编辑说明
|
||||
salaryArchiveItemMapper.updateIgnoreNull( SalaryArchiveItemPO.builder().id(salaryArchiveItemSaveParam.getSalaryArchiveItemId())
|
||||
.description(salaryArchiveItemSaveParam.getDescription()).build());
|
||||
}
|
||||
}
|
||||
});
|
||||
return SalaryArchiveItemPO.builder().id(salaryArchiveItemSaveParam.getSalaryArchiveItemId()).effectiveTime(salaryArchiveItemSaveParam.getEffectiveTime()).adjustReason(salaryArchiveItemSaveParam.getAdjustReason())
|
||||
.description(salaryArchiveItemSaveParam.getDescription()).itemValue(salaryArchiveItemSaveParam.getSalaryArchiveItems().get(0).getAdjustValue()).build();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<SalaryArchiveItemPO> getCurrentEffectiveItemListIngoreValue(Collection<Long> salaryArchivesIds, List<Long> salaryItemIds) {
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
|
|||
|
||||
@Override
|
||||
public List<SalarySobPO> listByAdmin() {
|
||||
List<SalarySobPO> salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().disable(NumberUtils.INTEGER_ZERO).build());
|
||||
List<SalarySobPO> salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().build());
|
||||
return filterByAdmin(salarySobPOS);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -718,6 +718,36 @@ public class SalaryArchiveController {
|
|||
return new ResponseResult<SingleSalaryItemAdjustRecordQueryParam, PageInfo<SingleSalaryItemAdjustRecordListDTO>>(user).run(getSalaryArchiveItemWrapper(user)::singleSalaryItemAdjustRecordList, queryParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 编辑前获取薪资项目调整信息
|
||||
* @return String
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/15 9:25
|
||||
*/
|
||||
@POST
|
||||
@Path("/adjustRecord/getSingleSalaryItemInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getSingleSalaryItemInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SingleSalaryItemAdjustRecordListDTO queryParam) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SingleSalaryItemAdjustRecordListDTO, SalaryArchiveItemFormDTO>(user).run(getSalaryArchiveItemWrapper(user)::getSingleSalaryItemInfo, queryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 单个档案的薪资项目调整的编辑
|
||||
* @return String
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/11 13:50
|
||||
*/
|
||||
@POST
|
||||
@Path("/adjustRecord/editSingleSalaryItem")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String editSingleSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveItemSaveParam updateParam) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::editSingleSalaryItem, updateParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出薪资项目调整记录列表
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -280,6 +280,17 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt
|
|||
return listPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 单个档案的薪资项目调整的编辑
|
||||
* @return void
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/14 11:46
|
||||
*/
|
||||
@Override
|
||||
public String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam) {
|
||||
return getSalaryArchiveItemService(user).editSingleSalaryItem(salaryArchiveItemSaveParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出薪资项目调整记录列表
|
||||
*
|
||||
|
|
@ -291,4 +302,72 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 获取单个档案的单个薪资项目调整信息
|
||||
* @return void
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/11 14:39
|
||||
*/
|
||||
public SalaryArchiveItemFormDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam) {
|
||||
SalaryArchiveItemPO byId = getSalaryArchiveItemService(user).getById(queryParam.getId());
|
||||
if(Objects.isNull(byId)){
|
||||
throw new SalaryRunTimeException("该薪资项目调整信息不存在");
|
||||
}
|
||||
// 获取所有可被引用的薪资项目
|
||||
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> adjustPageList = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().salaryArchiveId(byId.getSalaryArchiveId()).build(), salaryItemIds);
|
||||
|
||||
List<SingleSalaryItemAdjustRecordListDTO> resultList = Lists.newArrayList();
|
||||
adjustPageList.forEach(m -> {
|
||||
if (CollectionUtils.isNotEmpty(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()));
|
||||
|
||||
SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecordList = new SingleSalaryItemAdjustRecordListDTO();
|
||||
BeanUtils.copyProperties(m, singleSalaryItemAdjustRecordList);
|
||||
resultList.add(singleSalaryItemAdjustRecordList);
|
||||
});
|
||||
|
||||
List<Long> salaryItemPageIds = resultList.stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList());
|
||||
List<SalaryArchiveItemPO> effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(byId.getSalaryArchiveId(), salaryItemPageIds);
|
||||
// 行记录按钮权限控制
|
||||
for (int i = 0; i < resultList.size(); i++) {
|
||||
SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = resultList.get(i);
|
||||
if(singleSalaryItemAdjustRecord.getId().equals(queryParam.getId())){
|
||||
Optional<SalaryArchiveItemPO> optional = effectiveSalaryItems.stream().filter(f -> f.getSalaryItemId().equals(singleSalaryItemAdjustRecord.getSalaryItemId())).findFirst();
|
||||
Date effectiveDate = optional.map(SalaryArchiveItemPO::getEffectiveTime).orElse(null);
|
||||
if (effectiveDate != null && singleSalaryItemAdjustRecord.getEffectiveTime().before(effectiveDate)) {
|
||||
singleSalaryItemAdjustRecord.setCanOperator(Boolean.FALSE);
|
||||
} else {
|
||||
singleSalaryItemAdjustRecord.setCanOperator(Boolean.TRUE);
|
||||
}
|
||||
Map<String, Object> map = new HashMap<>(3);
|
||||
map.put("salaryItem", String.valueOf(singleSalaryItemAdjustRecord.getSalaryItemId()));
|
||||
map.put("salaryBefore", singleSalaryItemAdjustRecord.getAdjustBefore());
|
||||
map.put("adjustAfter", singleSalaryItemAdjustRecord.getAdjustAfter());
|
||||
|
||||
// 调整明细数据
|
||||
List<Map<String, Object>> tableData = Lists.newArrayList();
|
||||
tableData.add(map);
|
||||
|
||||
return SalaryArchiveItemFormDTO.builder()
|
||||
.canOperator(singleSalaryItemAdjustRecord.getCanOperator())
|
||||
.salaryArchiveId(byId.getSalaryArchiveId())
|
||||
.salaryArchiveItemForm(buildSalaryArchiveItemForm(byId.getEffectiveTime(), byId.getAdjustReason(), byId.getDescription()))
|
||||
.salaryArchiveItemDetail(buildSalaryArchiveItemAdjustDetailTable(tableData))
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,4 +55,13 @@ public interface SalaryArchiveItemWrapperProxy {
|
|||
PageInfo<SingleSalaryItemAdjustRecordListDTO> singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam);
|
||||
|
||||
|
||||
SalaryArchiveItemFormDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam);
|
||||
|
||||
/**
|
||||
* @description 单个档案的薪资项目调整的编辑
|
||||
* @return void
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/14 11:45
|
||||
*/
|
||||
String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue