diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java new file mode 100644 index 000000000..5064230c2 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java @@ -0,0 +1,18 @@ +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 { + + private Long salarySobId; + + private List existSalaryGroupIds; +} diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java similarity index 65% rename from src/com/engine/salary/entity/salaryBill/param/SalaryBillItemQueryParam.java rename to src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java index dcdfd62cc..cf2441c44 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java @@ -3,14 +3,18 @@ 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 SalaryBillItemQueryParam extends BaseQueryParam { +public class SalaryBillSalaryItemQueryParam extends BaseQueryParam { private Long salarySobId; private Long groupId; + + private List existSalaryItemIds; } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 7eafb8470..8f488f4fd 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -105,21 +105,29 @@ public class SalaryBillController { } /** - * 获取薪资项目设置 - * - * @param salarySobId - * @return + * 获取可用的薪资项目 */ @GET - @Path("/template/getGroupedSalaryItemSet") + @Path("/template/getAvailableSalaryGroupSet") @Produces(MediaType.APPLICATION_JSON) - public String getSalaryItemSet(@Context HttpServletRequest request, @Context HttpServletResponse response, - @QueryParam("salarySobId") Long salarySobId, @QueryParam("groupId") Long groupId) { + public String getAvailableSalaryGroupSet(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody SalaryBillSalaryGroupQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user) - .run(getSalaryTemplateWrapper(user)::getSalaryItemSetGrouped, - SalaryBillItemQueryParam.builder() - .salarySobId(salarySobId).groupId(groupId).build()); + return new ResponseResult>(user) + .run(getSalaryTemplateWrapper(user)::getSalaryGroupSet, param); + } + + /** + * 获取可用的薪资项目 + */ + @GET + @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>(user) + .run(getSalaryTemplateWrapper(user)::getSalaryItemSetGrouped, param); } /** diff --git a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java index dbae4dc4a..8d5d5c51d 100644 --- a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java @@ -337,7 +337,7 @@ public class SalaryTemplateWrapper extends Service { } List 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> result = salaryItemPOS.stream().map(m -> { Map 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,14 +386,37 @@ public class SalaryTemplateWrapper extends Service { .build(); } - public List getSalaryItemSetGrouped(SalaryBillItemQueryParam param) { + /** + * 获取单个分组下,没有被加入到模板的薪资项目 + * @param param 入参 + * @return 单个分组下剩余的薪资项目 + */ + public List getSalaryItemSetGrouped(SalaryBillSalaryItemQueryParam param) { List salaryItemSet = getSalaryTemplateService(user).getSalaryItemSet(param.getSalarySobId(), false); Long groupId = param.getGroupId(); return salaryItemSet.stream() - .filter(s-> Objects.equals(s.getGroupId(), groupId+"")) + .filter(s -> Objects.equals(s.getGroupId(), groupId + "")) .map(SalaryTemplateSalaryItemSetListDTO::getItems) .findFirst() - .orElse(Collections.emptyList()); + .orElse(Collections.emptyList()) + .stream() + .filter(item -> !Optional.ofNullable(param.getExistSalaryItemIds()).orElse(Collections.emptyList()) + .contains(item.getId()) + ).collect(Collectors.toList()); + } + + /** + * 获取账套下没有被加入的分组 + * @param param 入参 + * @return 分组与下属 + */ + public List getSalaryGroupSet(SalaryBillSalaryGroupQueryParam param) { + return getSalaryTemplateService(user).getSalaryItemSet(param.getSalarySobId(), false) + .stream() + .filter(group -> !Optional.ofNullable(param.getExistSalaryGroupIds()).orElse(Collections.emptyList()) + .contains(group.getGroupId()) + ) + .collect(Collectors.toList()); } }