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..8bf974208 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java @@ -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 existSalaryGroupIds; +} diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java new file mode 100644 index 000000000..ee0be17f7 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java @@ -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 existSalaryItemIds; +} diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 6f2c743f3..cf6de1647 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -104,6 +104,32 @@ public class SalaryBillController { return new ResponseResult>(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>(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>(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 993d30836..1c2f6d49f 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,4 +386,41 @@ public class SalaryTemplateWrapper extends Service { .build(); } + /** + * 获取单个分组下,没有被加入到模板的薪资项目 + * @param param 入参 + * @return 单个分组下剩余的薪资项目 + */ + public List getSalaryItemSetGrouped(SalaryBillSalaryItemQueryParam param) { + Boolean isReplenish = Optional.ofNullable(param.getIsReplenish()) + .orElse(false); + List 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 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()); + } }