Merge branch 'feat/salaryBillSaveItem042' into release/2.6.1.2301.02

This commit is contained in:
fcli 2023-02-09 17:22:53 +08:00
commit 5ee8097b3e
4 changed files with 114 additions and 3 deletions

View File

@ -0,0 +1,26 @@
package com.engine.salary.entity.salaryBill.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.*;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryBillSalaryGroupQueryParam extends BaseQueryParam {
/**
* 薪资账套id
*/
private Long salarySobId;
private Boolean isReplenish;
/**
* 前端已有的分组id
*/
private List<String> existSalaryGroupIds;
}

View File

@ -0,0 +1,22 @@
package com.engine.salary.entity.salaryBill.param;
import com.engine.salary.common.BaseQueryParam;
import lombok.*;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryBillSalaryItemQueryParam extends BaseQueryParam {
private Long salarySobId;
private Long groupId;
private Boolean isReplenish;
private List<String> existSalaryItemIds;
}

View File

@ -104,6 +104,32 @@ public class SalaryBillController {
return new ResponseResult<Long, List<SalaryTemplateSalaryItemSetListDTO>>(user).run(getSalaryTemplateWrapper(user)::getSalaryItemSet, salarySobId);
}
/**
* 获取可用的薪资项目
*/
@POST
@Path("/template/getAvailableSalaryGroupSet")
@Produces(MediaType.APPLICATION_JSON)
public String getAvailableSalaryGroupSet(@Context HttpServletRequest request, @Context HttpServletResponse response,
@RequestBody SalaryBillSalaryGroupQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryBillSalaryGroupQueryParam, List<SalaryTemplateSalaryItemSetListDTO>>(user)
.run(getSalaryTemplateWrapper(user)::getSalaryGroupSet, param);
}
/**
* 获取可用的薪资项目
*/
@POST
@Path("/template/getAvailableSalaryItemSet")
@Produces(MediaType.APPLICATION_JSON)
public String getAvailableSalaryItemSet(@Context HttpServletRequest request, @Context HttpServletResponse response,
@RequestBody SalaryBillSalaryItemQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryBillSalaryItemQueryParam, List<SalaryTemplateSalaryItemListDTO>>(user)
.run(getSalaryTemplateWrapper(user)::getSalaryItemSetGrouped, param);
}
/**
* 获取工资单模板补发设置表单
*

View File

@ -337,7 +337,7 @@ public class SalaryTemplateWrapper extends Service {
}
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salarySobBackItems.stream().map(SalarySobBackItemPO::getSalaryItemId).collect(Collectors.toList()));
String ruleTip = "(" + SalaryI18nUtil.getI18nLabel( 140142, "不等于0")+")";
String ruleTip = "(" + SalaryI18nUtil.getI18nLabel(140142, "不等于0") + ")";
List<Map<String, String>> result = salaryItemPOS.stream().map(m -> {
Map<String, String> map = new HashMap<>(2);
@ -368,9 +368,9 @@ public class SalaryTemplateWrapper extends Service {
if (id != null) {
SalaryTemplatePO po = getSalaryTemplateService(user).getById(id);
if (po == null) {
throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100533, "工资单模板不存在")+"[id:%s]", id));
throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100533, "工资单模板不存在") + "[id:%s]", id));
}
BeanUtils.copyProperties(po, salaryTemplateReplenishSetDTO);
BeanUtils.copyProperties(po, salaryTemplateReplenishSetDTO);
if (StringUtils.isNotEmpty(po.getReplenishSalaryItemSetting())) {
replenishSalaryItemSetting = JsonUtil.fromJson(po.getReplenishSalaryItemSetting(), List.class);
} else {
@ -386,4 +386,41 @@ public class SalaryTemplateWrapper extends Service {
.build();
}
/**
* 获取单个分组下没有被加入到模板的薪资项目
* @param param 入参
* @return 单个分组下剩余的薪资项目
*/
public List<SalaryTemplateSalaryItemListDTO> getSalaryItemSetGrouped(SalaryBillSalaryItemQueryParam param) {
Boolean isReplenish = Optional.ofNullable(param.getIsReplenish())
.orElse(false);
List<SalaryTemplateSalaryItemSetListDTO> salaryItemSet
= getSalaryTemplateService(user).getSalaryItemSet(param.getSalarySobId(), isReplenish);
Long groupId = param.getGroupId();
return salaryItemSet.stream()
.filter(s -> Objects.equals(s.getGroupId(), groupId + ""))
.map(SalaryTemplateSalaryItemSetListDTO::getItems)
.findFirst()
.orElse(Collections.emptyList())
.stream()
.filter(item -> !Optional.ofNullable(param.getExistSalaryItemIds()).orElse(Collections.emptyList())
.contains(item.getId())
).collect(Collectors.toList());
}
/**
* 获取账套下没有被加入的分组
* @param param 入参
* @return 分组与下属
*/
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryGroupSet(SalaryBillSalaryGroupQueryParam param) {
Boolean isReplenish = Optional.ofNullable(param.getIsReplenish())
.orElse(false);
return getSalaryTemplateService(user).getSalaryItemSet(param.getSalarySobId(), isReplenish)
.stream()
.filter(group -> !Optional.ofNullable(param.getExistSalaryGroupIds()).orElse(Collections.emptyList())
.contains(group.getGroupId())
)
.collect(Collectors.toList());
}
}