From 5cea57d477e9dd6455b7e1badd20f9b5e609c37f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 17 Jun 2022 17:22:48 +0800 Subject: [PATCH] fix bug --- .../salary/cmd/sicategory/SICategoryListCmd.java | 2 +- .../salarysob/bo/SalarySobItemAggregateBO.java | 7 ++++++- .../salarysob/param/SalarySobDuplicateParam.java | 9 +++++++++ .../salarysob/param/SalarySobItemSaveParam.java | 10 ++++------ .../service/impl/SalarySobItemServiceImpl.java | 7 +++++++ .../salary/service/impl/SalarySobServiceImpl.java | 14 ++++++++++++++ .../engine/salary/web/SalaryArchiveController.java | 8 ++++---- .../engine/salary/web/SalaryItemController.java | 9 +++------ src/com/engine/salary/web/SalarySobController.java | 9 +++------ .../engine/salary/wrapper/SalarySobWrapper.java | 2 +- 10 files changed, 52 insertions(+), 25 deletions(-) diff --git a/src/com/engine/salary/cmd/sicategory/SICategoryListCmd.java b/src/com/engine/salary/cmd/sicategory/SICategoryListCmd.java index 33fb329dc..282dd1146 100644 --- a/src/com/engine/salary/cmd/sicategory/SICategoryListCmd.java +++ b/src/com/engine/salary/cmd/sicategory/SICategoryListCmd.java @@ -42,7 +42,7 @@ public class SICategoryListCmd extends AbstractCommonCommand } private String buildSqlWhere(Map params) { - String sqlWhere = "where delete_Type = 0"; + String sqlWhere = "where delete_Type = 0 and data_type != 1"; Integer welfareType = (Integer)params.get("welfareType"); if (Objects.nonNull(welfareType)){ diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index ceed12856..a68d7499a 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -178,6 +178,11 @@ public class SalarySobItemAggregateBO { if (CollectionUtils.isEmpty(itemGroups)) { return Collections.emptyList(); } - return itemGroups.stream().sorted(Comparator.comparingInt(SalarySobItemGroupDTO::getSortedIndex)).collect(Collectors.toList()); + return itemGroups.stream().map(group -> { + if (group != null && CollectionUtils.isEmpty(group.getItems())) { + group.setItems(new ArrayList<>()); + } + return group; + }).sorted(Comparator.comparingInt(SalarySobItemGroupDTO::getSortedIndex)).collect(Collectors.toList()); } } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java index bc4760bc5..19e213fdc 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salarysob.param; +import com.engine.salary.util.valid.DataCheck; import lombok.Data; /** @@ -16,11 +17,19 @@ public class SalarySobDuplicateParam { /** * 薪资账套的ID不允许为空 */ + @DataCheck(require = true, message = "薪资账套的ID不允许为空") private Long id; /** * 名称不允许为空 * 名称不能超过40个字符长度 */ + @DataCheck(require = true, max = 40, message = "名称不允许为空且名称不能超过40个字符长度") private String name; + + /** + * 个税扣缴义务人id + */ + @DataCheck(require = true, message = "个税扣缴义务人不允许为空") + private Long taxAgentId; } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java index 6a95cd154..edb9725da 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java @@ -83,18 +83,16 @@ public class SalarySobItemSaveParam { //"薪资账套薪资项目保存参数-薪资项目分类") public static class SalarySobItemGroupParam { - //主键id") + //主键id private Long id; - //@Max(value = 40, message = "LABEL:98177") - //@NotEmpty(message = "LABEL:86266") - //分类名称") + //分类名称" private String name; - //显示顺序") + //显示顺序 private Integer sortedIndex; - //分类下的薪资项目") + //分类下的薪资项目 private List items; } } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 955253646..214e1683b 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -166,6 +166,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe } // todo 2、分类名称唯一 + List itemGroups = saveParam.getItemGroups(); + if(CollectionUtils.isNotEmpty(itemGroups)){ + int count = (int)SalaryEntityUtil.properties(itemGroups, SalarySobItemSaveParam.SalarySobItemGroupParam::getName).stream().distinct().count(); + if(count < itemGroups.size()){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "分类名称重复!")); + } + } } /** diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index f3e585dce..e1339f485 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -336,6 +336,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { BeanUtils.copyProperties(salarySobPO, newSalarySobPO); newSalarySobPO.setId(saveParam.getId()) .setName(saveParam.getName()) + .setTaxAgentId(saveParam.getTaxAgentId()) .setIncomeCategory(saveParam.getTaxableItems()) .setSalaryCycleType(saveParam.getSalaryCycleType()) .setSalaryCycleFromDay(saveParam.getSalaryCycleFromDay()) @@ -439,6 +440,8 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override @Transactional(rollbackFor = Exception.class) public void duplicate(SalarySobDuplicateParam duplicateParam) { + ValidUtil.doValidator(duplicateParam); + // 查询薪资账套 SalarySobPO salarySobPO = getById(duplicateParam.getId()); if (Objects.isNull(salarySobPO)) { @@ -449,6 +452,16 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { if (CollectionUtils.isNotEmpty(salarySobPOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "薪资账套名称已存在")); } + + Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); + if (openDevolution) { + Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); + Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); + if (!taxAgentIds.contains(duplicateParam.getTaxAgentId())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "该扣缴义务人不在权限范围内!")); + } + } + // 查询薪资账套的员工信息字段 List salarySobEmpFieldPOS = salarySobEmpFieldService.listSome(SalarySobEmpFieldPO.builder().salarySobId(duplicateParam.getId()).build()); // 查询薪资账套的薪资项目副本 @@ -464,6 +477,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { // 复制薪资账套的基础设置 SalarySobPO newSalarySob = SalarySobPO.builder() .name(duplicateParam.getName()) + .taxAgentId(duplicateParam.getTaxAgentId()) .incomeCategory(salarySobPO.getIncomeCategory()) .salaryCycleType(salarySobPO.getSalaryCycleType()) .salaryCycleFromDay(salarySobPO.getSalaryCycleFromDay()) diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 8af3dab75..2ad62d3f5 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -345,10 +345,10 @@ public class SalaryArchiveController { /** * 删除薪资项目调整 */ - @POST + @GET @Path("/deleteSalaryItem") @Produces(MediaType.APPLICATION_JSON) - public String deleteSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long salaryArchiveItemId) { + public String deleteSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryArchiveItemWrapper(user)::deleteSalaryItem, salaryArchiveItemId); } @@ -407,10 +407,10 @@ public class SalaryArchiveController { * @param salaryArchiveTaxAgentId * @return */ - @POST + @GET @Path("/deleteTaxAgent") @Produces(MediaType.APPLICATION_JSON) - public String deleteTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long salaryArchiveTaxAgentId) { + public String deleteTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryArchiveTaxAgentWrapper(user)::deleteTaxAgent, salaryArchiveTaxAgentId); } diff --git a/src/com/engine/salary/web/SalaryItemController.java b/src/com/engine/salary/web/SalaryItemController.java index a7a56c102..fc3c8d738 100644 --- a/src/com/engine/salary/web/SalaryItemController.java +++ b/src/com/engine/salary/web/SalaryItemController.java @@ -20,10 +20,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Collection; @@ -104,10 +101,10 @@ public class SalaryItemController { /** * 薪资项目的详情 */ - @POST + @GET @Path("/getSalaryForm") @Produces(MediaType.APPLICATION_JSON) - public String getSalaryItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + public String getSalaryItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryItemWrapper(user)::getForm, id); } diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 27b5bf18e..6aa3e7ae2 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -19,10 +19,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Collection; @@ -76,10 +73,10 @@ public class SalarySobController { /** * 薪资账套基本信息表单 */ - @POST + @GET @Path("/basic/getForm") @Produces(MediaType.APPLICATION_JSON) - public String getSalarySobBasicForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + public String getSalarySobBasicForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalarySobWrapper(user)::getForm, id); } diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index 4c2327de2..3cdd10f80 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -169,7 +169,7 @@ public class SalarySobWrapper extends Service { Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - return taxAgentIds.contains(salarySobPO.getTaxAgentId()); + return taxAgentIds.contains(salarySobPO.getTaxAgentId())||Objects.isNull(salarySobPO.getTaxAgentId()); } }