From 2c03d4bc27b80eeaecfe662ca979ff67d1466e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 May 2022 16:36:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/agency/bo/PaymentAgencyBO.java | 65 +++++ .../agency/dto/PaymentAgencyFormDTO.java | 65 +++++ .../agency/dto/PaymentAgencyListDTO.java | 61 +++++ .../entity/agency/po/PaymentAgencyPO.java | 73 ++++++ .../salary/entity/taxagent/bo/TaxAgentBO.java | 242 +++++++++-------- .../taxagent/po/TaxAgentManageRangePO.java | 1 + .../taxagent/TaxAgentManageRangeMapper.java | 2 + .../taxagent/TaxAgentManageRangeMapper.xml | 11 + .../service/TaxAgentManageRangeService.java | 13 +- .../salary/service/TaxAgentV2Service.java | 3 +- .../impl/TaxAgentManageRangeServiceImpl.java | 244 +++++++----------- .../service/impl/TaxAgentV2ServiceImpl.java | 11 +- src/com/engine/salary/util/page/PageUtil.java | 17 +- .../salary/wrapper/TaxAgentWrapper.java | 158 ++++++------ 14 files changed, 606 insertions(+), 360 deletions(-) create mode 100644 src/com/engine/salary/entity/agency/bo/PaymentAgencyBO.java create mode 100644 src/com/engine/salary/entity/agency/dto/PaymentAgencyFormDTO.java create mode 100644 src/com/engine/salary/entity/agency/dto/PaymentAgencyListDTO.java create mode 100644 src/com/engine/salary/entity/agency/po/PaymentAgencyPO.java diff --git a/src/com/engine/salary/entity/agency/bo/PaymentAgencyBO.java b/src/com/engine/salary/entity/agency/bo/PaymentAgencyBO.java new file mode 100644 index 000000000..f16d65f33 --- /dev/null +++ b/src/com/engine/salary/entity/agency/bo/PaymentAgencyBO.java @@ -0,0 +1,65 @@ +package com.engine.salary.entity.agency.bo; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.weaver.common.distribution.genid.IdGenerator; +import com.weaver.hrm.salary.entity.agency.dto.PaymentAgencyFormDTO; +import com.weaver.hrm.salary.entity.agency.dto.PaymentAgencyListDTO; +import com.weaver.hrm.salary.entity.agency.po.PaymentAgencyPO; +import com.weaver.hrm.salary.enums.sicategory.DeleteTypeEnum; + +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: + * @Author: zhangheng + * @CreateDate: 2022/4/20 20:59 + * @Version: v1.0 + */ +public class PaymentAgencyBO { + + public static Wrapper buildPaymentAgencyListWrapper(Long employeeId, String tenantKey) { + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(PaymentAgencyPO::getTenantKey, tenantKey); + lambdaQueryWrapper.eq(PaymentAgencyPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue()); + lambdaQueryWrapper.orderByDesc(PaymentAgencyPO::getUpdateTime); + return lambdaQueryWrapper; + } + + public static List buildPaymentAgencyDTOList(List paymentAgencyPOS, Long employeeId, String tenantKey) { + if (CollectionUtils.isEmpty(paymentAgencyPOS)) { + return Collections.emptyList(); + } + return paymentAgencyPOS.stream().map(e -> PaymentAgencyListDTO.builder() + .id(e.getId()) + .agencyName(e.getAgencyName()) + .remarks(e.getRemarks()).build() + ).collect(Collectors.toList()); + } + + public static PaymentAgencyFormDTO buildPaymentAgencyFormDTO(PaymentAgencyPO paymentAgencyPO, Long employeeId, String tenantKey) { + PaymentAgencyFormDTO paymentAgencyFormDTO = PaymentAgencyFormDTO.builder().build(); + paymentAgencyFormDTO.setId(paymentAgencyPO.getId()); + paymentAgencyFormDTO.setAgencyName(paymentAgencyPO.getAgencyName()); + paymentAgencyFormDTO.setRemarks(paymentAgencyFormDTO.getRemarks()); + return paymentAgencyFormDTO; + } + + public static PaymentAgencyPO buildPaymentAgencyPO(PaymentAgencyFormDTO paymentAgencyFormDTO, Long employeeId, String tenantKey) { + return PaymentAgencyPO.builder() + .id(IdGenerator.generate()) + .agencyName(paymentAgencyFormDTO.getAgencyName()) + .createTime(LocalDateTime.now()) + .creator(employeeId) + .tenantKey(tenantKey) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .updateTime(LocalDateTime.now()) + .remarks(paymentAgencyFormDTO.getRemarks()) + .build(); + } +} diff --git a/src/com/engine/salary/entity/agency/dto/PaymentAgencyFormDTO.java b/src/com/engine/salary/entity/agency/dto/PaymentAgencyFormDTO.java new file mode 100644 index 000000000..9200d1de8 --- /dev/null +++ b/src/com/engine/salary/entity/agency/dto/PaymentAgencyFormDTO.java @@ -0,0 +1,65 @@ +package com.engine.salary.entity.agency.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.weaver.common.component.form.item.WeaFormItemType; +import com.weaver.hrm.salary.annotation.SalaryForm; +import com.weaver.hrm.salary.annotation.SalaryFormItem; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * @Description: + * @Author: zhangheng + * @CreateDate: 2022/4/20 21:31 + * @Version: v1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("代缴机构表单") +public class PaymentAgencyFormDTO { + + @ApiModelProperty("主键id") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @SalaryForm( + label = "名称", + labelId = 84756, + items = { + @SalaryFormItem( + itemType = WeaFormItemType.INPUT, + required = true, + maxLength = "50" + ) + } + ) + @NotBlank(message = "name is required") + @Size(max = 50, message = "the maximum lenth is 50") + @ApiModelProperty("名称") + private String agencyName; + + @SalaryForm( + label = "备注", + labelId = 84961, + items = { + @SalaryFormItem( + itemType = WeaFormItemType.TEXTAREA, + maxLength = "50" + ) + } + ) + @NotBlank(message = "name is required") + @Size(max = 60, message = "the maximum lenth is 60") + @ApiModelProperty("名称") + private String remarks; +} diff --git a/src/com/engine/salary/entity/agency/dto/PaymentAgencyListDTO.java b/src/com/engine/salary/entity/agency/dto/PaymentAgencyListDTO.java new file mode 100644 index 000000000..997e6c9f3 --- /dev/null +++ b/src/com/engine/salary/entity/agency/dto/PaymentAgencyListDTO.java @@ -0,0 +1,61 @@ +package com.engine.salary.entity.agency.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.weaver.common.authority.format.Operates; +import com.weaver.common.authority.format.TableColumn; +import com.weaver.common.authority.format.TableOperates; +import com.weaver.common.authority.format.WeaFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Description: + * @Author: zhangheng + * @CreateDate: 2022/4/20 20:41 + * @Version: v1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("代缴机构列表") +@TableOperates(value = { + @Operates(index = 0, text = "编辑", labelId = 87058), + @Operates(index = 1, text = "删除", labelId = 87061) +}) +public class PaymentAgencyListDTO { + + /** + * 主键id + */ + @ApiModelProperty("主键id") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 社保福利代缴机构 + */ + @WeaFormat( + label = "社保福利代缴机构", + labelId = 112448, + tableColumn = @TableColumn(width = "200") + ) + @ApiModelProperty("社保福利代缴机构") + private String agencyName; + + /** + * 备注 + */ + @WeaFormat( + label = "备注", + labelId = 84961, + tableColumn = @TableColumn(width = "300") + ) + @ApiModelProperty("备注") + private String remarks; +} diff --git a/src/com/engine/salary/entity/agency/po/PaymentAgencyPO.java b/src/com/engine/salary/entity/agency/po/PaymentAgencyPO.java new file mode 100644 index 000000000..e9c394198 --- /dev/null +++ b/src/com/engine/salary/entity/agency/po/PaymentAgencyPO.java @@ -0,0 +1,73 @@ +package com.engine.salary.entity.agency.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.weaver.common.elog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * @Description: + * @Author: zhangheng + * @CreateDate: 2022/4/20 20:24 + * @Version: v1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("hrsa_payment_agency") +@ElogTransform(name = "数据采集-累计专项附加扣除表") +public class PaymentAgencyPO { + + /** + * 主键id + */ + @ElogTransform(name = "主键id") + private Long id; + + /** + * 机构名称 + */ + @ElogTransform(name = "机构名称") + private String agencyName; + + /** + * 备注 + */ + @ElogTransform(name = "备注") + private String remarks; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间", ignore = true) + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间", ignore = true) + private LocalDateTime updateTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人", ignore = true) + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除", ignore = true) + private Integer deleteType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户key", ignore = true) + private String tenantKey; +} diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index 2b08cd5a7..fcd6abcd2 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -1,7 +1,13 @@ package com.engine.salary.entity.taxagent.bo; +import com.cloudstore.eccom.pc.table.WeaTable; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.pc.table.WeaTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableOperates; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.agency.po.PaymentAgencyPO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.hrm.PositionInfo; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; @@ -9,6 +15,7 @@ import com.engine.salary.entity.taxagent.dto.TaxAgentSubAdminListDTO; import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam; import com.engine.salary.entity.taxagent.param.TaxAgentSaveParam; import com.engine.salary.entity.taxagent.param.TaxAgentSubAdminRangeSaveParam; +import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxagent.po.TaxAgentSubAdminPO; @@ -19,18 +26,11 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.google.common.base.Joiner; import com.google.common.collect.Lists; -import com.weaver.common.component.table.WeaTable; -import com.weaver.common.component.table.column.WeaTableColumn; -import com.weaver.common.component.table.operate.WeaTableOperate; import com.weaver.common.component.table.permission.Permission; -import com.weaver.common.distribution.genid.IdGenerator; import com.weaver.common.hrm.cache.HrmDepartmentComInfo; -import com.weaver.common.hrm.cache.HrmEmployeeComInfo; import com.weaver.common.hrm.cache.HrmPositionComInfo; import com.weaver.common.hrm.domain.employee.HrmStatus; -import com.weaver.hrm.salary.entity.agency.po.PaymentAgencyPO; -import com.weaver.hrm.salary.entity.taxagent.po.TaxAgentAdminPO; -import com.weaver.teams.domain.user.SimpleEmployee; +import dm.jdbc.util.IdGenerator; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -76,71 +76,67 @@ public class TaxAgentBO { * * @param weaTable * @param isOpenDevolution - * @param employeeId - * @param tenantKey - * @param size */ - public static void buildTaxAgentTable(WeaTable weaTable, boolean isOpenDevolution, Long employeeId, String tenantKey, int size) { + public static void buildTaxAgentTable(WeaTable weaTable, boolean isOpenDevolution) { // 表格表头 List columns = new ArrayList<>(); - String name = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 91558, "个税扣缴义务人名称"); - String employeeRange = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86125, "人员范围"); - String admins = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 106259, "管理员"); - String subAdmins = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 106283, "分管理员"); - String paymentAgency = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 112448, "社保福利代缴机构"); - String description = SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 84961, "备注"); + String name = SalaryI18nUtil.getI18nLabel(91558, "个税扣缴义务人名称"); + String employeeRange = SalaryI18nUtil.getI18nLabel(86125, "人员范围"); + String admins = SalaryI18nUtil.getI18nLabel(106259, "管理员"); + String subAdmins = SalaryI18nUtil.getI18nLabel(106283, "分管理员"); +// String paymentAgency = SalaryI18nUtil.getI18nLabel(112448, "社保福利代缴机构"); + String description = SalaryI18nUtil.getI18nLabel(84961, "备注"); if (isOpenDevolution) { columns.add(new WeaTableColumn(name, "name", "20%")); columns.add(new WeaTableColumn(employeeRange, "employeeRange", "20%")); columns.add(new WeaTableColumn(admins, "admins", "20%")); // columns.add(new WeaTableColumn(subAdmins, "subAdmins", "20%")); - columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); +// columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); columns.add(new WeaTableColumn(description, "description", "20%")); } else { columns.add(new WeaTableColumn(name, "name", "40%")); columns.add(new WeaTableColumn(employeeRange, "employeeRange", "20%")); - columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); +// columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); columns.add(new WeaTableColumn(description, "description", "40%")); } weaTable.setColumns(columns); - List operates = weaTable.getOperates(); - operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 59943, "编辑"), 0)); - operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 59942, "删除"), 1)); + WeaTableOperates operates = weaTable.getOperates(); + operates.getOperate().add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(59943, "编辑"), null, "0")); + operates.getOperate().add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(59942, "删除"), null, "1")); // if (isOpenDevolution) { -// operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 106247, "管理范围及分权设置"), 2)); +// operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel( 106247, "管理范围及分权设置"), 2)); // } - weaTable.setOperatesPermission(getDefaultOperatesPermission(operates.size(), size)); +// weaTable.setOperatesPermission(getDefaultOperatesPermission(operates.getOperate().size(), size)); // weaTable.setCheckBoxPermission(getDefaultCheckBoxPermission(size)); // // weaTable.setTableType(WeaTableTypeEnum.CHECKBOX); } - private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { - List> permissionList = Lists.newArrayList(); - for (int i = 0; i < recordSize; i++) { - List permissions = Lists.newArrayList(); - for (int j = 0; j < operateSize; j++) { - permissions.add(new Permission(true, false)); - } - permissionList.add(permissions); - } - return permissionList; - } - - private static List getDefaultCheckBoxPermission(int recordSize) { - List permissionList = Lists.newArrayList(); - for (int i = 0; i < recordSize; i++) { - permissionList.add(new Permission(true, false)); - } - return permissionList; - } +// private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { +// List> permissionList = Lists.newArrayList(); +// for (int i = 0; i < recordSize; i++) { +// List permissions = Lists.newArrayList(); +// for (int j = 0; j < operateSize; j++) { +// permissions.add(new Permission(true, false)); +// } +// permissionList.add(permissions); +// } +// return permissionList; +// } +// +// private static List getDefaultCheckBoxPermission(int recordSize) { +// List permissionList = Lists.newArrayList(); +// for (int i = 0; i < recordSize; i++) { +// permissionList.add(new Permission(true, false)); +// } +// return permissionList; +// } /** * 表数据转列表数据 * * @param taxAgents - * @param tenantKey * @return */ public static List convertToListDTO(Collection taxAgents) { @@ -148,12 +144,12 @@ public class TaxAgentBO { return Collections.emptyList(); } return taxAgents.stream() - .map(e -> TaxAgentListDTO.builder() - .id(e.getId()) - .name(e.getName()) - .description(e.getDescription()) - .build()) - .collect(Collectors.toList()); + .map(e -> TaxAgentListDTO.builder() + .id(e.getId()) + .name(e.getName()) + .description(e.getDescription()) + .build()) + .collect(Collectors.toList()); } /** @@ -173,7 +169,7 @@ public class TaxAgentBO { * @return */ public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, + List adminList, String setLabel) { return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList, setLabel); } @@ -187,26 +183,26 @@ public class TaxAgentBO { */ public static List> convertToTableListDTO(Boolean isDevolution, List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, String setLabel) { + List adminList, String setLabel) { if (CollectionUtils.isEmpty(taxAgents)) { return Collections.emptyList(); } return taxAgents.stream() - .map(e -> { - Map map = new LinkedHashMap<>(); - map.put("id", e.getId()); - map.put("name", e.getName()); - map.put("employeeRange", setLabel); - if (isDevolution) { - List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); - List admins = adminList.stream().filter(a -> empIds.contains(a.getId())).map(SimpleEmployee::getUsername).collect(Collectors.toList()); - map.put("admins", CollectionUtils.isEmpty(admins) ? "" : Joiner.on(",").join(admins)); - map.put("subAdmins", setLabel); - } - map.put("paymentAgency", buildPaymentAgency(e.getPaymentAgency(), paymentAgencyPOS)); - map.put("description", e.getDescription()); - return map; - }).collect(Collectors.toList()); + .map(e -> { + Map map = new LinkedHashMap<>(); + map.put("id", e.getId()); + map.put("name", e.getName()); + map.put("employeeRange", setLabel); + if (isDevolution) { + List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); + List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); + map.put("admins", CollectionUtils.isEmpty(admins) ? "" : Joiner.on(",").join((Iterable) admins)); + map.put("subAdmins", setLabel); + } + map.put("paymentAgency", buildPaymentAgency(e.getPaymentAgency(), paymentAgencyPOS)); + map.put("description", e.getDescription()); + return map; + }).collect(Collectors.toList()); } public static List> buildPaymentAgency(String originStr, List paymentAgencyPOS) { @@ -242,14 +238,14 @@ public class TaxAgentBO { } Date now = new Date(); return TaxAgentPO.builder() - .id(saveParam.getId()) - .name(saveParam.getName()) - .description(saveParam.getDescription()) - .createTime(now) - .updateTime(now) - .creator(employeeId) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); + .id(saveParam.getId()) + .name(saveParam.getName()) + .description(saveParam.getDescription()) + .createTime(now) + .updateTime(now) + .creator(employeeId) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); } /** @@ -265,16 +261,16 @@ public class TaxAgentBO { return Collections.emptyList(); } return list.stream() - .map(e -> { - Optional optionalUsername = subAdminList.stream().filter(a -> e.getEmployeeId().equals(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).findFirst(); - return TaxAgentSubAdminListDTO.builder() - .id(e.getId()) - .subAdmin(optionalUsername.isPresent() ? optionalUsername.get() : "") - .range(range) - .description(e.getRemark()) - .build(); - }) - .collect(Collectors.toList()); + .map(e -> { + Optional optionalUsername = subAdminList.stream().filter(a -> e.getEmployeeId().equals(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).findFirst(); + return TaxAgentSubAdminListDTO.builder() + .id(e.getId()) + .subAdmin(optionalUsername.isPresent() ? optionalUsername.get() : "") + .range(range) + .description(e.getRemark()) + .build(); + }) + .collect(Collectors.toList()); } /** @@ -288,13 +284,13 @@ public class TaxAgentBO { * @param hrmStatusList * @return */ - public static List convert2ListDTO(List taxAgentManageRanges, List employeeComInfos, + public static List convert2ListDTO(List taxAgentManageRanges, List employeeComInfos, List departmentComInfos, List subDepartmentComInfos, - List positionComInfos, List hrmStatusList) { + List positionComInfos, List hrmStatusList) { if (CollectionUtils.isEmpty(taxAgentManageRanges)) { return Collections.emptyList(); } - Map employeeComInfoMap = SalaryEntityUtil.convert2Map(employeeComInfos, HrmEmployeeComInfo::getId, HrmEmployeeComInfo::getUsername); + Map employeeComInfoMap = SalaryEntityUtil.convert2Map(employeeComInfos, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername); Map departmentComInfoMap = SalaryEntityUtil.convert2Map(departmentComInfos, HrmDepartmentComInfo::getId, HrmDepartmentComInfo::getName); Map subDepartmentComInfoMap = SalaryEntityUtil.convert2Map(subDepartmentComInfos, HrmDepartmentComInfo::getId, HrmDepartmentComInfo::getName); Map positionComInfoMap = SalaryEntityUtil.convert2Map(positionComInfos, HrmPositionComInfo::getId, HrmPositionComInfo::getName); @@ -302,20 +298,20 @@ public class TaxAgentBO { Map hrmStatusNameMap = SalaryEntityUtil.convert2Map(hrmStatusList, hrmStatus -> String.valueOf(hrmStatus.getCodeId()), HrmStatus::getName); return taxAgentManageRanges.stream() - .map(taxAgentManageRange -> { - TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(taxAgentManageRange.getTargetType()); - return TaxAgentManageRangeListDTO.builder() - .id(taxAgentManageRange.getId()) - .targetType(targetTypeEnum) - .targetTypeName(Optional.ofNullable(targetTypeEnum) - .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) - .orElse(StringUtils.EMPTY)) - .targetId(taxAgentManageRange.getTargetId()) - .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap)) - .employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus())) - .build(); - }) - .collect(Collectors.toList()); + .map(taxAgentManageRange -> { + TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(taxAgentManageRange.getTargetType()); + return TaxAgentManageRangeListDTO.builder() + .id(taxAgentManageRange.getId()) + .targetType(targetTypeEnum) + .targetTypeName(Optional.ofNullable(targetTypeEnum) + .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) + .orElse(StringUtils.EMPTY)) + .targetId(taxAgentManageRange.getTargetId()) + .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap)) + .employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus())) + .build(); + }) + .collect(Collectors.toList()); } private static String buildEmployeeStatus(Map hrmStatusNameMap, String employeeStatus) { @@ -364,7 +360,7 @@ public class TaxAgentBO { } public static Result handleSubAdminRange(List taxAgentManageRanges, TaxAgentManageRangeSaveParam saveParam, Long taxAgentId, Long subAdminId, - Long employeeId, String tenantKey) { + Long employeeId, String tenantKey) { return handleManageRange(taxAgentManageRanges, saveParam, TaxAgentRangeTypeEnum.SUBADMIN, taxAgentId, subAdminId, employeeId, tenantKey); } @@ -380,17 +376,17 @@ public class TaxAgentBO { * @return */ private static Result handleManageRange(List taxAgentManageRanges, TaxAgentManageRangeSaveParam saveParam, - TaxAgentRangeTypeEnum rangeTypeEnum, Long taxAgentId, Long subAdminId, Long employeeId, String tenantKey) { + TaxAgentRangeTypeEnum rangeTypeEnum, Long taxAgentId, Long subAdminId, Long employeeId, String tenantKey) { Date now = new Date(); Result handleResult = Result.builder() - .needInsertTaxAgentManageRanges(Lists.newArrayList()) - .needUpdateTaxAgentManageRanges(Lists.newArrayList()) - .build(); + .needInsertTaxAgentManageRanges(Lists.newArrayList()) + .needUpdateTaxAgentManageRanges(Lists.newArrayList()) + .build(); if (CollectionUtils.isEmpty(saveParam.getTargetParams())) { return handleResult; } Map taxAgentManageRangeMap = SalaryEntityUtil.convert2Map(taxAgentManageRanges, - e -> e.getIncludeType() + "-" + e.getTargetType() + "-" + e.getTargetId() + "-" + e.getRangeType()); + e -> e.getIncludeType() + "-" + e.getTargetType() + "-" + e.getTargetId() + "-" + e.getRangeType()); for (TaxAgentSubAdminRangeSaveParam.TaxAgentSubAdminRangeTargetParam targetParam : saveParam.getTargetParams()) { String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId() + "-" + rangeTypeEnum.getValue(); if (taxAgentManageRangeMap.containsKey(key)) { @@ -401,20 +397,20 @@ public class TaxAgentBO { continue; } TaxAgentManageRangePO taxAgentManageRange = TaxAgentManageRangePO.builder() - .id(IdGenerator.generate()) - .taxAgentId(taxAgentId) - .taxAgentSubAdminId(subAdminId) - .rangeType(rangeTypeEnum.getValue()) - .targetType(targetParam.getTargetType().getValue()) - .targetId(targetParam.getTargetId()) - .employeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus())) - .includeType(saveParam.getIncludeType()) - .creator(employeeId) - .createTime(now) - .updateTime(now) - .tenantKey(tenantKey) - .deleteType(0) - .build(); + .id(IdGenerator.generate()) + .taxAgentId(taxAgentId) + .taxAgentSubAdminId(subAdminId) + .rangeType(rangeTypeEnum.getValue()) + .targetType(targetParam.getTargetType().getValue()) + .targetId(targetParam.getTargetId()) + .employeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus())) + .includeType(saveParam.getIncludeType()) + .creator(employeeId) + .createTime(now) + .updateTime(now) + .tenantKey(tenantKey) + .deleteType(0) + .build(); handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange); } return handleResult; diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentManageRangePO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentManageRangePO.java index 16fb07c19..815ba6d22 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentManageRangePO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentManageRangePO.java @@ -94,4 +94,5 @@ public class TaxAgentManageRangePO { private Collection taxAgentIds; + private Collection ids; } diff --git a/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.java b/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.java index 1bbeff56e..6e22e36b1 100644 --- a/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.java +++ b/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.java @@ -3,6 +3,7 @@ package com.engine.salary.mapper.taxagent; import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; import org.apache.ibatis.annotations.Mapper; +import java.util.Collection; import java.util.List; @Mapper @@ -64,4 +65,5 @@ public interface TaxAgentManageRangeMapper { */ int delete(TaxAgentManageRangePO taxAgentManageRange); + void deleteByIds(Collection ids); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.xml b/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.xml index 46b4ed3da..d4497453e 100644 --- a/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.xml +++ b/src/com/engine/salary/mapper/taxagent/TaxAgentManageRangeMapper.xml @@ -281,5 +281,16 @@ WHERE id = #{id} AND delete_type = 0 + + UPDATE hrsa_tax_agent_manage_range + SET delete_type=1 + WHERE + id IN + + #{id} + + AND delete_type = 0 + + \ No newline at end of file diff --git a/src/com/engine/salary/service/TaxAgentManageRangeService.java b/src/com/engine/salary/service/TaxAgentManageRangeService.java index 06e780a00..33b1e6c31 100644 --- a/src/com/engine/salary/service/TaxAgentManageRangeService.java +++ b/src/com/engine/salary/service/TaxAgentManageRangeService.java @@ -1,9 +1,14 @@ package com.engine.salary.service; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentRangeQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; +import com.engine.salary.entity.taxagent.param.TaxAgentSubAdminRangeQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentSubAdminRangeSaveParam; +import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; +import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; @@ -50,7 +55,7 @@ public interface TaxAgentManageRangeService { * @param taxAgentSubAdminIds * @return */ -// List listSalaryEmployeeBySubAdminIds(SalaryEmployeeStatusEnum employeeStatus, List taxAgentSubAdminIds); + List listSalaryEmployeeBySubAdminIds(SalaryEmployeeStatusEnum employeeStatus, List taxAgentSubAdminIds); /** * 根据查询条件查询分管理员的人员范围 @@ -59,7 +64,7 @@ public interface TaxAgentManageRangeService { * @param includeType 0-从范围中排除/1-关联人员范围 * @return */ -// Page listPageByParamAndIncludeType(TaxAgentSubAdminRangeQueryParam queryParam, Integer includeType); + PageInfo listPageByParamAndIncludeType(TaxAgentSubAdminRangeQueryParam queryParam, Integer includeType); /** * 根据查询条件查询个税扣缴义务人的人员范围 @@ -68,7 +73,7 @@ public interface TaxAgentManageRangeService { * @param includeType 0-从范围中排除/1-关联人员范围 * @return */ -// PageInfo listPageByParamAndIncludeType(TaxAgentRangeQueryParam queryParam, Integer includeType); + PageInfo listPageByParamAndIncludeType(TaxAgentRangeQueryParam queryParam, Integer includeType); /** * 根据分管理员id集合查询范围列表 @@ -76,7 +81,7 @@ public interface TaxAgentManageRangeService { * @param taxAgentSubAdminIds * @return */ -// List listBySubAdminIds(Collection taxAgentSubAdminIds); + List listBySubAdminIds(Collection taxAgentSubAdminIds); /** * 保存 diff --git a/src/com/engine/salary/service/TaxAgentV2Service.java b/src/com/engine/salary/service/TaxAgentV2Service.java index 523c2f18d..29bce7029 100644 --- a/src/com/engine/salary/service/TaxAgentV2Service.java +++ b/src/com/engine/salary/service/TaxAgentV2Service.java @@ -134,10 +134,9 @@ public interface TaxAgentV2Service { * 更新代缴机构 * * @param taxAgentPO - * @param employeeId * @return */ - String paymentAgencyUpdate(TaxAgentPO taxAgentPO, Long employeeId); + String paymentAgencyUpdate(TaxAgentPO taxAgentPO); /** * 编辑个税扣缴义务人 diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index dfc2b7ea1..1dea5e269 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -5,29 +5,30 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.engine.core.impl.Service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; -import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeQueryParam; -import com.engine.salary.entity.taxagent.param.TaxAgentRangeQueryParam; -import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; +import com.engine.salary.entity.taxagent.param.*; import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.entity.taxagent.po.TaxAgentSubAdminPO; import com.engine.salary.enums.SalaryJobFlagEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.enums.taxagent.TaxAgentRangeTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.taxagent.TaxAgentManageRangeMapper; -import com.engine.salary.service.TaxAgentEmpService; -import com.engine.salary.service.TaxAgentManageRangeService; -import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.*; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.PageUtil; import com.google.common.collect.Lists; import com.weaver.common.async.bean.AsyncBean; import com.weaver.common.async.consumer.anno.method.AsyncListener; import com.weaver.common.cache.tablecache.impl.ComInfoCache; -import com.weaver.common.component.table.page.Page; import com.weaver.common.hrm.cache.HrmDepartmentComInfo; import com.weaver.common.hrm.cache.HrmEmployeeComInfo; import com.weaver.common.hrm.cache.HrmPositionComInfo; @@ -36,14 +37,8 @@ import com.weaver.common.hrm.domain.queue.HrmCommonQueue; import com.weaver.common.hrm.service.employee.HrmCommonHrmStatusService; import com.weaver.datasecurity.interceptor.DSTenantKeyThreadVar; import com.weaver.hrm.salary.common.SalaryEmployee; -import com.weaver.hrm.salary.entity.taxagent.bo.TaxAgentBO; import com.weaver.hrm.salary.entity.taxagent.param.*; -import com.weaver.hrm.salary.entity.taxagent.po.TaxAgentPO; -import com.weaver.hrm.salary.entity.taxagent.po.TaxAgentSubAdminPO; -import com.weaver.hrm.salary.exception.SalaryRunTimeException; import com.weaver.hrm.salary.service.*; -import com.weaver.hrm.salary.util.SalaryI18nUtil; -import com.weaver.hrm.salary.util.SalaryPageUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -67,7 +62,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM private TaxAgentManageRangeMapper taxAgentManageRangeMapper; - private TaxAgentService taxAgentService; + private TaxAgentV2Service taxAgentService; private TaxAgentSubAdminService taxAgentSubAdminService; @@ -101,32 +96,33 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM return convertTaxAgentEmployee(employeeStatus, taxAgentIds, allTaxAgentManageRanges); } -// @Override -// public List listBySubAdminIds(Collection taxAgentSubAdminIds) { -// if (CollectionUtils.isEmpty(taxAgentSubAdminIds)) { -// return Lists.newArrayList(); -// } -// return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) -// .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) -// .eq(TaxAgentManageRangePO::getDeleteType, 0) -// .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.SUBADMIN.getValue()) -// .in(TaxAgentManageRangePO::getTaxAgentSubAdminId, taxAgentSubAdminIds) -// .orderByDesc(TaxAgentManageRangePO::getId) -// .list(); -// } + @Override + public List listBySubAdminIds(Collection taxAgentSubAdminIds) { + if (CollectionUtils.isEmpty(taxAgentSubAdminIds)) { + return Lists.newArrayList(); + } + taxAgentManageRangeMapper.listSome(TaxAgentManageRangePO.builder().rangeType(TaxAgentRangeTypeEnum.SUBADMIN.getValue()).build()) + return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) + .eq(TaxAgentManageRangePO::getTenantKey) + .eq(TaxAgentManageRangePO::getDeleteType, 0) + .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.SUBADMIN.getValue()) + .in(TaxAgentManageRangePO::getTaxAgentSubAdminId, taxAgentSubAdminIds) + .orderByDesc(TaxAgentManageRangePO::getId) + .list(); + } -// @Override -// public List listSalaryEmployeeBySubAdminIds(List taxAgentIds) { -// return listSalaryEmployeeBySubAdminIds(null, taxAgentIds); -// } + @Override + public List listSalaryEmployeeBySubAdminIds(List taxAgentIds) { + return listSalaryEmployeeBySubAdminIds(null, taxAgentIds); + } -// @Override -// public List listSalaryEmployeeBySubAdminIds(SalaryEmployeeStatusEnum employeeStatus, List taxAgentSubAdminIds) { -// List allTaxAgentManageRanges = this.listBySubAdminIds(taxAgentSubAdminIds); -// List taxAgentIds = allTaxAgentManageRanges.stream().map(TaxAgentManageRangePO::getTaxAgentId).distinct().collect(Collectors.toList()); -// -// return convertTaxAgentEmployee(employeeStatus, taxAgentIds, allTaxAgentManageRanges); -// } + @Override + public List listSalaryEmployeeBySubAdminIds(SalaryEmployeeStatusEnum employeeStatus, List taxAgentSubAdminIds) { + List allTaxAgentManageRanges = this.listBySubAdminIds(taxAgentSubAdminIds); + List taxAgentIds = allTaxAgentManageRanges.stream().map(TaxAgentManageRangePO::getTaxAgentId).distinct().collect(Collectors.toList()); + + return convertTaxAgentEmployee(employeeStatus, taxAgentIds, allTaxAgentManageRanges); + } private List convertTaxAgentEmployee(SalaryEmployeeStatusEnum employeeStatus, List taxAgentIds, List allTaxAgentManageRanges) { return taxAgentIds.stream().distinct().map(e -> { @@ -159,7 +155,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @return */ private List getManageRangeSalaryEmployees(SalaryEmployeeStatusEnum employeeStatus, Long taxAgentId, - List allTaxAgentManageRanges) { + List allTaxAgentManageRanges) { List includeAllTaxAgentManageRanges = allTaxAgentManageRanges.stream().filter(f -> f.getIncludeType().equals(NumberUtils.INTEGER_ONE)).collect(Collectors.toList()); if (CollectionUtils.isEmpty(includeAllTaxAgentManageRanges)) { return Collections.emptyList(); @@ -263,7 +259,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM // private List listBySubAdminIdAndIncludeType(Long subAdminId, Integer includeType) { // // return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) -// .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) +// .eq(TaxAgentManageRangePO::getTenantKey) // .eq(TaxAgentManageRangePO::getDeleteType, 0) // .eq(TaxAgentManageRangePO::getTaxAgentSubAdminId, subAdminId) // .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.SUBADMIN.getValue()) @@ -324,9 +320,9 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM .collect(Collectors.toList()); List positionComInfos = comInfoCache.getCacheList(HrmPositionComInfo.class, positionIds); // 分页参数 - Page dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); + PageInfo dtoPage = PageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxAgentManageRangeListDTO.class); // 查询人员状态 - List hrmStatusList = hrmCommonHrmStatusService.list(tenantKey); + List hrmStatusList = hrmCommonHrmStatusService.list(); // 薪资账套的人员范围po转换成列表dto List taxAgentManageRangeList = TaxAgentBO.convert2ListDTO(taxAgentManageRanges, employeeComInfos, departmentComInfos, subDepartmentComInfos, positionComInfos, hrmStatusList); // 根据对象名称过滤 @@ -337,7 +333,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } // 填充总数和当页数据 dtoPage.setTotal(taxAgentManageRangeList.size()); - dtoPage.setRecords(SalaryPageUtil.subList((int) dtoPage.getCurrent(), (int) dtoPage.getSize(), taxAgentManageRangeList)); + dtoPage.setList(PageUtil.subList(dtoPage.getPageNum(), dtoPage.getSize(), taxAgentManageRangeList)); return dtoPage; } @@ -346,22 +342,20 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * * @param saveParam 保存参数 * @param employeeId 人员id - * @param tenantKey 租户key */ @Override - @Transactional(rollbackFor = Exception.class) - public void save(TaxAgentRangeSaveParam saveParam, Long employeeId, String tenantKey) { + public void save(TaxAgentRangeSaveParam saveParam, Long employeeId) { // 查询薪资账套 - TaxAgentPO taxAgent = taxAgentService.getById(saveParam.getTaxAgentId(), tenantKey); + TaxAgentPO taxAgent = taxAgentService.getById(saveParam.getTaxAgentId()); if (Objects.isNull(taxAgent)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 108605, "参数错误,个税扣缴义务人不存在或者已被删除")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(108605, "参数错误,个税扣缴义务人不存在或者已被删除")); } // 查询已有的管理范围 - List taxAgentManageAllRanges = listByTaxAgentId(saveParam.getTaxAgentId(), tenantKey); + List taxAgentManageAllRanges = listByTaxAgentId(saveParam.getTaxAgentId()); List taxAgentManageRanges = taxAgentManageAllRanges.stream().filter(f -> f.getIncludeType().equals(saveParam.getIncludeType())).collect(Collectors.toList()); // 处理一下本次的保存参数(如果原来添加过对应的人员(/部门/岗位),那么本次不需要新增,只需要更新) - TaxAgentBO.Result result = TaxAgentBO.handleTaxAgentRange(taxAgentManageRanges, saveParam, taxAgent.getId(), employeeId, tenantKey); + TaxAgentBO.Result result = TaxAgentBO.handleTaxAgentRange(taxAgentManageRanges, saveParam, taxAgent.getId(), employeeId); /** 检查当前个税扣缴义务人的所有人员范围与所有分管理员的管理范围===========================start */ List allRanges = Lists.newArrayList(taxAgentManageAllRanges); @@ -371,17 +365,17 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>( Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType())) ), ArrayList::new)); - List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, saveParam.getTaxAgentId(), allRanges, tenantKey); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, saveParam.getTaxAgentId(), allRanges); // 如果是排除是否会对分管理范围产生影响 - List allSubAdminRanges = listSunAdminRangeByTaxAgentId(saveParam.getTaxAgentId(), tenantKey); + List allSubAdminRanges = listSunAdminRangeByTaxAgentId(saveParam.getTaxAgentId()); if (saveParam.getIncludeType().equals(NumberUtils.INTEGER_ZERO)) { - List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, saveParam.getTaxAgentId(), allSubAdminRanges, tenantKey); + List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, saveParam.getTaxAgentId(), allSubAdminRanges); - List allSalaryEmployeeIds = allSalaryEmployees.stream().map(SalaryEmployee::getEmployeeId).collect(Collectors.toList()); + List allSalaryEmployeeIds = allSalaryEmployees.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); allSubAdminSalaryEmployees.removeIf(a -> allSalaryEmployeeIds.contains(a.getEmployeeId())); if (CollectionUtils.isNotEmpty(allSubAdminSalaryEmployees)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 110122, "分管理员包含该范围,不能删除")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110122, "分管理员包含该范围,不能删除")); } } /** 检查当前个税扣缴义务人的所有人员范围与所有分管理员的管理范围===========================end */ @@ -396,10 +390,8 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM /** 同步本地人员范围的关联人员=========================== */ taskExecutor.execute(() -> { try { - DSTenantKeyThreadVar.tenantKey.set(tenantKey); - syncLocalEmp(saveParam.getTaxAgentId(), allSalaryEmployees, allSubAdminRanges, employeeId, tenantKey); + syncLocalEmp(saveParam.getTaxAgentId(), allSalaryEmployees, allSubAdminRanges, employeeId); } finally { - DSTenantKeyThreadVar.tenantKey.remove(); } }); @@ -410,45 +402,32 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * 获取个税口角义务人的管理范围 * * @param taxAgentId - * @param tenantKey * @return */ - private List listByTaxAgentId(Long taxAgentId, String tenantKey) { - return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) - .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTaxAgentId, taxAgentId) - .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.TAXAGENT.getValue()) - .orderByDesc(TaxAgentManageRangePO::getId) - .list(); + private List listByTaxAgentId(Long taxAgentId) { + return taxAgentManageRangeMapper.listSome(TaxAgentManageRangePO.builder().taxAgentId(taxAgentId).rangeType(TaxAgentRangeTypeEnum.TAXAGENT.getValue()).build()); } - private List listSunAdminRangeByTaxAgentId(Long taxAgentId, String tenantKey) { - return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) - .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTaxAgentId, taxAgentId) - .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.SUBADMIN.getValue()) - .orderByDesc(TaxAgentManageRangePO::getId) - .list(); + private List listSunAdminRangeByTaxAgentId(Long taxAgentId) { + return taxAgentManageRangeMapper.listSome(TaxAgentManageRangePO.builder().taxAgentId(taxAgentId).rangeType(TaxAgentRangeTypeEnum.SUBADMIN.getValue()).build()); } @Override @Transactional(rollbackFor = Exception.class) - public void save4SubAdmin(TaxAgentSubAdminRangeSaveParam saveParam, Long employeeId, String tenantKey) { + public void save4SubAdmin(TaxAgentSubAdminRangeSaveParam saveParam, Long employeeId) { // 查询薪资账套 - TaxAgentSubAdminPO taxAgentSubAdmin = taxAgentSubAdminService.getById(saveParam.getSubAdminId(), tenantKey); + TaxAgentSubAdminPO taxAgentSubAdmin = taxAgentSubAdminService.getById(saveParam.getSubAdminId()); if (Objects.isNull(taxAgentSubAdmin)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 106687, "参数错误,分管理员不存在或者已被删除")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(106687, "参数错误,分管理员不存在或者已被删除")); } // 查询已有的管理范围 - List taxAgentManageAllRanges = listBySubAdminId(saveParam.getSubAdminId(), tenantKey); + List taxAgentManageAllRanges = listBySubAdminId(saveParam.getSubAdminId()); List taxAgentManageRanges = taxAgentManageAllRanges.stream().filter(f -> f.getIncludeType().equals(saveParam.getIncludeType())).collect(Collectors.toList()); // 处理一下本次的保存参数(如果原来添加过对应的人员(/部门/岗位),那么本次不需要新增,只需要更新) - TaxAgentBO.Result result = TaxAgentBO.handleSubAdminRange(taxAgentManageRanges, saveParam, taxAgentSubAdmin.getTaxAgentId(), taxAgentSubAdmin.getId(), employeeId, tenantKey); + TaxAgentBO.Result result = TaxAgentBO.handleSubAdminRange(taxAgentManageRanges, saveParam, taxAgentSubAdmin.getTaxAgentId(), taxAgentSubAdmin.getId(), employeeId); // 当前库中所有分管理员的管理范围 - List allSubAdminRangesExist = listSunAdminRangeByTaxAgentId(taxAgentSubAdmin.getTaxAgentId(), tenantKey); + List allSubAdminRangesExist = listSunAdminRangeByTaxAgentId(taxAgentSubAdmin.getTaxAgentId()); /** 检查当前分管理员的范围与其他分管理员人员范围===========================start */ // 当前分管理员的范围 List allSubAdminRangesCuttent = Lists.newArrayList(taxAgentManageAllRanges); @@ -458,13 +437,13 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM allSubAdminRangesCuttent.addAll(result.getNeedUpdateTaxAgentManageRanges()); // 当前分管理员的所有人员 - List currentSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allSubAdminRangesCuttent, tenantKey); + List currentSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allSubAdminRangesCuttent); // 其他分管理员的所有人员 - List otherSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), otherSubAdminRangesExist, tenantKey); + List otherSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), otherSubAdminRangesExist); for (SalaryEmployee se : currentSubAdminSalaryEmployees) { Optional optionalSe = otherSubAdminSalaryEmployees.stream().filter(f -> f.getEmployeeId().equals(se.getEmployeeId())).findFirst(); if (optionalSe.isPresent()) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 110149, "不可包含其他分管理员的人员")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110149, "不可包含其他分管理员的人员")); } } /** 检查当前分管理员的范围与其他分管理员人员范围===========================end */ @@ -479,14 +458,14 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM Comparator.comparing(f -> f.getTaxAgentSubAdminId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType())) ), ArrayList::new)); // 所属个税扣缴义务人的所有人员 - List allRanges = listByTaxAgentId(taxAgentSubAdmin.getTaxAgentId(), tenantKey); - List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allRanges, tenantKey); + List allRanges = listByTaxAgentId(taxAgentSubAdmin.getTaxAgentId()); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allRanges); // 所有分管理员的所有人员 - List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allSubAdminRanges, tenantKey); + List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentSubAdmin.getTaxAgentId(), allSubAdminRanges); List allSalaryEmployeeIds = allSalaryEmployees.stream().map(SalaryEmployee::getEmployeeId).collect(Collectors.toList()); allSubAdminSalaryEmployees.removeIf(a -> allSalaryEmployeeIds.contains(a.getEmployeeId())); if (CollectionUtils.isNotEmpty(allSubAdminSalaryEmployees)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 110125, "超出了整体人员范围")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110125, "超出了整体人员范围")); } /** 检查当前分管理员的范围与所属个税扣缴义务人的人员范围===========================end */ @@ -502,7 +481,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM taskExecutor.execute(() -> { try { DSTenantKeyThreadVar.tenantKey.set(tenantKey); - syncLocalEmp(taxAgentSubAdmin.getTaxAgentId(), allSalaryEmployees, finalAllSubAdminRanges, employeeId, tenantKey); + syncLocalEmp(taxAgentSubAdmin.getTaxAgentId(), allSalaryEmployees, finalAllSubAdminRanges, employeeId); } finally { DSTenantKeyThreadVar.tenantKey.remove(); } @@ -514,36 +493,23 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * 根据分管理员id获取管理范围列表 * * @param subAdminId - * @param tenantKey * @return */ - private List listBySubAdminId(Long subAdminId, String tenantKey) { - return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) - .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTaxAgentSubAdminId, subAdminId) - .eq(TaxAgentManageRangePO::getRangeType, TaxAgentRangeTypeEnum.SUBADMIN.getValue()) - .orderByDesc(TaxAgentManageRangePO::getId) - .list(); + private List listBySubAdminId(Long subAdminId) { + return taxAgentManageRangeMapper.listSome(TaxAgentManageRangePO.builder().taxAgentSubAdminId(subAdminId).rangeType(TaxAgentRangeTypeEnum.SUBADMIN.getValue()).build()); } - private List listByIds(Collection ids, String tenantKey) { + private List listByIds(Collection ids) { if (CollectionUtils.isEmpty(ids)) { return Collections.emptyList(); } - return new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) - .eq(TaxAgentManageRangePO::getDeleteType, 0) - .in(TaxAgentManageRangePO::getId, ids) - .orderByDesc(TaxAgentManageRangePO::getId) - .list(); + return taxAgentManageRangeMapper.listSome(TaxAgentManageRangePO.builder().ids(ids).build()); } @Override - @Transactional(rollbackFor = Exception.class) - public void deleteByIds(Collection ids, Long employeeId, String tenantKey) { + public void deleteByIds(Collection ids, Long employeeId) { // 查询管理范围 - List taxAgentManageRanges = listByIds(ids, tenantKey); + List taxAgentManageRanges = listByIds(ids); if (CollectionUtils.isEmpty(taxAgentManageRanges)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98604, "数据不存在或已被删除")); } @@ -552,34 +518,28 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110159, "一次只能删一个个税个税扣缴义务人的范围")); } Collection finalIds = ids; - taxAgentManageRanges = this.listByTaxAgentIds(taxAgentIds, tenantKey); + taxAgentManageRanges = this.listByTaxAgentIds(taxAgentIds); List allManageRanges = taxAgentManageRanges.stream().filter(f -> !finalIds.contains(f.getId())).collect(Collectors.toList()); List allRanges = allManageRanges.stream().filter(f -> f.getRangeType().equals(TaxAgentRangeTypeEnum.TAXAGENT.getValue())).collect(Collectors.toList()); List allSubAdminRanges = allManageRanges.stream().filter(f -> f.getRangeType().equals(TaxAgentRangeTypeEnum.SUBADMIN.getValue())).collect(Collectors.toList()); Long taxAgentId = taxAgentIds.get(0); - List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allRanges, tenantKey); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allRanges); - List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allSubAdminRanges, tenantKey); + List allSubAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allSubAdminRanges); allSalaryEmployees.forEach(f -> { allSubAdminSalaryEmployees.removeIf(a -> a.getEmployeeId().equals(f.getEmployeeId())); }); if (CollectionUtils.isNotEmpty(allSubAdminSalaryEmployees)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 110160, "分管理员存在超出整体人员范围以外的人员,不可删除")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110160, "分管理员存在超出整体人员范围以外的人员,不可删除")); } // 删除管理范围 - new LambdaUpdateChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) - .in(TaxAgentManageRangePO::getId, ids) - .set(TaxAgentManageRangePO::getDeleteType, 1) - .update(); + taxAgentManageRangeMapper.deleteByIds(ids); + /** 同步本地人员范围的关联人员=========================== */ taskExecutor.execute(() -> { try { - DSTenantKeyThreadVar.tenantKey.set(tenantKey); - syncLocalEmp(taxAgentId, allSalaryEmployees, allSubAdminRanges, employeeId, tenantKey); + syncLocalEmp(taxAgentId, allSalaryEmployees, allSubAdminRanges, employeeId); } finally { - DSTenantKeyThreadVar.tenantKey.remove(); } }); // 记录日志 todo @@ -589,12 +549,12 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM public void deleteByTaxAgentIds(Collection taxAgentIds, String tenantKey) { new LambdaUpdateChainWrapper<>(taxAgentManageRangeMapper) .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) + .eq(TaxAgentManageRangePO::getTenantKey) .in(TaxAgentManageRangePO::getTaxAgentId, taxAgentIds) .set(TaxAgentManageRangePO::getDeleteType, 1) .update(); // 删除管理范围下的所有人员 - taxAgentEmployeeService.deleteByTaxAgentIds(taxAgentIds, tenantKey); + taxAgentEmployeeService.deleteByTaxAgentIds(taxAgentIds); } @Override @@ -604,12 +564,12 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } new LambdaUpdateChainWrapper<>(taxAgentManageRangeMapper) .eq(TaxAgentManageRangePO::getDeleteType, 0) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) + .eq(TaxAgentManageRangePO::getTenantKey) .in(TaxAgentManageRangePO::getTaxAgentSubAdminId, subAdminIds) .set(TaxAgentManageRangePO::getDeleteType, 1) .update(); // 删除管理范围下的所有人员 - taxAgentSubAdminEmployeeService.deleteBySubAdminIds(subAdminIds, tenantKey); + taxAgentSubAdminEmployeeService.deleteBySubAdminIds(subAdminIds); } @AsyncListener(topic = "hrm_resource_queue") @@ -623,10 +583,8 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM // 开始同步 taskExecutor.execute(() -> { try { - DSTenantKeyThreadVar.tenantKey.set(tenantKey); - handleSyncTaxAgentEmpData(tenantKey); + handleSyncTaxAgentEmpData(); } finally { - DSTenantKeyThreadVar.tenantKey.remove(); } }); } @@ -634,11 +592,11 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM /** * 同步处理所有人员泛微 * - * @param tenantKey + * @param */ - private void handleSyncTaxAgentEmpData(String tenantKey) { + private void handleSyncTaxAgentEmpData() { List allManageRanges = new LambdaQueryChainWrapper<>(taxAgentManageRangeMapper) - .eq(TaxAgentManageRangePO::getTenantKey, tenantKey) + .eq(TaxAgentManageRangePO::getTenantKey) .eq(TaxAgentManageRangePO::getDeleteType, 0) .orderByDesc(TaxAgentManageRangePO::getId) .list(); @@ -652,17 +610,17 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM taxAgentIds.forEach(taxAgentId -> { // 当前个税扣缴义务人的所有范围 List allRanges = allManageRanges.stream().filter(f -> f.getTaxAgentId().equals(taxAgentId) && f.getRangeType().equals(TaxAgentRangeTypeEnum.TAXAGENT.getValue())).collect(Collectors.toList()); - List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allRanges, tenantKey); + List allSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, allRanges); taxAgentEmpSaveParamList.add(getTaxAgentEmpSyncParam(taxAgentId, allSalaryEmployees)); List allSubAdminRanges = allManageRanges.stream().filter(f -> f.getTaxAgentId().equals(taxAgentId) && f.getRangeType().equals(TaxAgentRangeTypeEnum.SUBADMIN.getValue())).collect(Collectors.toList()); - subAdminEmpSaveParamList.addAll(getTaxAgentSubAdminEmpSyncParam(taxAgentId, allSubAdminRanges, tenantKey)); + subAdminEmpSaveParamList.addAll(getTaxAgentSubAdminEmpSyncParam(taxAgentId, allSubAdminRanges)); }); Long employeeId = 0L; // 同步管理员的人员 - taxAgentEmployeeService.syncTaxAgentEmployee(taxAgentEmpSaveParamList, employeeId, tenantKey); + taxAgentEmployeeService.syncTaxAgentEmployee(taxAgentEmpSaveParamList, employeeId); // 同步分管理员的人员 - taxAgentSubAdminEmployeeService.syncTaxAgentSubAdminEmployee(subAdminEmpSaveParamList, employeeId, tenantKey); + taxAgentSubAdminEmployeeService.syncTaxAgentSubAdminEmployee(subAdminEmpSaveParamList, employeeId); } /** @@ -672,7 +630,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @param allSalaryEmployees * @return */ - private TaxAgentEmpSaveParam getTaxAgentEmpSyncParam(Long taxAgentId, List allSalaryEmployees) { + private TaxAgentEmpSaveParam getTaxAgentEmpSyncParam(Long taxAgentId, List allSalaryEmployees) { return TaxAgentEmpSaveParam.builder() .taxAgentId(taxAgentId) .salaryEmployeeList(allSalaryEmployees) @@ -684,15 +642,14 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * * @param taxAgentId * @param allSubAdminRanges - * @param tenantKey * @return */ - private List getTaxAgentSubAdminEmpSyncParam(Long taxAgentId, List allSubAdminRanges, String tenantKey) { + private List getTaxAgentSubAdminEmpSyncParam(Long taxAgentId, List allSubAdminRanges) { List allSubAdminIds = allSubAdminRanges.stream().map(TaxAgentManageRangePO::getTaxAgentSubAdminId).distinct().collect(Collectors.toList()); List subAdminEmpSaveParamList = Lists.newArrayList(); allSubAdminIds.forEach(e -> { List singSubAdminRanges = allSubAdminRanges.stream().filter(r -> e.equals(r.getTaxAgentSubAdminId())).collect(Collectors.toList()); - List subAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, singSubAdminRanges, tenantKey); + List subAdminSalaryEmployees = this.getManageRangeSalaryEmployees(null, taxAgentId, singSubAdminRanges); subAdminEmpSaveParamList.add(TaxAgentSubAdminEmpSaveParam.builder() .taxAgentId(taxAgentId) @@ -710,15 +667,14 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @param allSalaryEmployees 个税扣缴义务人下的所有人员 * @param allSubAdminRanges * @param employeeId - * @param tenantKey */ - private void syncLocalEmp(Long taxAgentId, List allSalaryEmployees, List allSubAdminRanges, Long employeeId, String tenantKey) { + private void syncLocalEmp(Long taxAgentId, List allSalaryEmployees, List allSubAdminRanges, Long employeeId) { List taxAgentEmpSaveParamList = Collections.singletonList(getTaxAgentEmpSyncParam(taxAgentId, allSalaryEmployees)); // 同步个税扣缴义务人的人员 - taxAgentEmployeeService.syncTaxAgentEmployee(taxAgentEmpSaveParamList, employeeId, tenantKey); + taxAgentEmployeeService.syncTaxAgentEmployee(taxAgentEmpSaveParamList, employeeId); - List subAdminEmpSaveParamList = getTaxAgentSubAdminEmpSyncParam(taxAgentId, allSubAdminRanges, tenantKey); + List subAdminEmpSaveParamList = getTaxAgentSubAdminEmpSyncParam(taxAgentId, allSubAdminRanges); // 同步分管理员的人员 - taxAgentSubAdminEmployeeService.syncTaxAgentSubAdminEmployee(subAdminEmpSaveParamList, employeeId, tenantKey); + taxAgentSubAdminEmployeeService.syncTaxAgentSubAdminEmployee(subAdminEmpSaveParamList, employeeId); } } diff --git a/src/com/engine/salary/service/impl/TaxAgentV2ServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentV2ServiceImpl.java index 683812390..60da8280f 100644 --- a/src/com/engine/salary/service/impl/TaxAgentV2ServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentV2ServiceImpl.java @@ -50,7 +50,6 @@ public class TaxAgentV2ServiceImpl extends Service implements TaxAgentV2Service private EmployMapper employMapper; -// // private ExtEmployeeService extEmployeeService; private TaxAgentBaseService taxAgentBaseService; @@ -261,11 +260,11 @@ public class TaxAgentV2ServiceImpl extends Service implements TaxAgentV2Service return StringUtils.EMPTY + taxAgent.getId(); } -// @Override -// public String paymentAgencyUpdate(TaxAgentPO taxAgentPO, Long employeeId) { -// taxAgentMapper.updateById(taxAgentPO); -// return ""; -// } + @Override + public String paymentAgencyUpdate(TaxAgentPO taxAgentPO) { + taxAgentMapper.update(taxAgentPO); + return ""; + } @Override @Transactional(rollbackFor = Exception.class) diff --git a/src/com/engine/salary/util/page/PageUtil.java b/src/com/engine/salary/util/page/PageUtil.java index ab4aa5314..5bea08831 100644 --- a/src/com/engine/salary/util/page/PageUtil.java +++ b/src/com/engine/salary/util/page/PageUtil.java @@ -1,6 +1,5 @@ package com.engine.salary.util.page; -import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import org.apache.commons.collections4.CollectionUtils; @@ -17,10 +16,22 @@ public class PageUtil { } - public static Page buildPage(Integer pageNo, Integer pageSize) { + public static PageInfo buildPage(Integer pageNo, Integer pageSize) { pageNo = pageNo == null || pageNo <= 0 ? 1 : pageNo; pageSize = pageSize == null || pageSize <= 0 ? 10 : pageSize; - return new Page(pageNo, pageSize, true); + PageInfo pageInfo = new PageInfo<>(); + pageInfo.setPageNum(pageNo); + pageInfo.setPageSize(pageSize); + return pageInfo; + } + + public static PageInfo buildPage(Integer pageNo, Integer pageSize,Class clazz) { + pageNo = pageNo == null || pageNo <= 0 ? 1 : pageNo; + pageSize = pageSize == null || pageSize <= 0 ? 10 : pageSize; + PageInfo pageInfo = new PageInfo<>(clazz); + pageInfo.setPageNum(pageNo); + pageInfo.setPageSize(pageSize); + return pageInfo; } /** diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index ebd2fe737..c050a9f33 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -1,38 +1,38 @@ package com.engine.salary.wrapper; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.cloudstore.eccom.pc.table.WeaTable; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.salary.entity.agency.po.PaymentAgencyPO; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.taxagent.bo.TaxAgentBO; +import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentAdminChangeCheckParam; import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; +import com.engine.salary.entity.taxagent.param.TaxAgentRangeQueryParam; +import com.engine.salary.entity.taxagent.param.TaxAgentSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; -import com.engine.salary.service.TaxAgentAdminService; -import com.engine.salary.service.TaxAgentBaseService; -import com.engine.salary.service.TaxAgentManageRangeService; -import com.engine.salary.service.TaxAgentV2Service; +import com.engine.salary.service.*; +import com.engine.salary.util.SalaryAssert; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.PageUtil; import com.google.common.collect.Maps; import com.weaver.common.authority.format.FormatManager; import com.weaver.common.component.browser.combination.TypesBrowserOption; import com.weaver.common.component.form.WeaForm; import com.weaver.common.component.form.item.WeaFormItem; import com.weaver.common.component.form.item.WeaFormOption; -import com.weaver.common.component.table.WeaTable; import com.weaver.common.component.table.page.Page; import com.weaver.common.hrm.domain.employee.HrmStatus; import com.weaver.framework.util.JsonUtil; -import com.weaver.hrm.salary.entity.agency.po.PaymentAgencyPO; -import com.weaver.hrm.salary.entity.siarchives.po.InsuranceEmployeeStatusPO; -import com.weaver.hrm.salary.entity.taxagent.bo.TaxAgentBO; import com.weaver.hrm.salary.entity.taxagent.dto.TaxAgentEmployeeOptionDTO; import com.weaver.hrm.salary.entity.taxagent.dto.TaxAgentFormDTO; import com.weaver.hrm.salary.entity.taxagent.dto.TaxAgentManageRangeFormDTO; -import com.weaver.hrm.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; import com.weaver.hrm.salary.entity.taxagent.param.*; import com.weaver.hrm.salary.exception.SalaryRunTimeException; import com.weaver.hrm.salary.service.*; -import com.weaver.hrm.salary.util.SalaryAssert; import com.weaver.hrm.salary.util.SalaryFormatUtil; -import com.weaver.hrm.salary.util.SalaryI18nUtil; -import com.weaver.hrm.salary.util.SalaryPageUtil; import com.weaver.teams.domain.user.SimpleEmployee; import com.weaver.teams.security.context.UserContext; import org.apache.commons.collections.CollectionUtils; @@ -60,7 +60,7 @@ public class TaxAgentWrapper { private TaxAgentV2Service taxAgentService; - private HrmCommonEmployeeService employeeService; + private SalaryEmployeeService employeeService; private TaxAgentManageRangeService taxAgentManageRangeService; @@ -106,7 +106,7 @@ public class TaxAgentWrapper { * @param currentEmployeeId * @return */ - public WeaTable list(TaxAgentQueryParam queryParam, Long currentEmployeeId) { + public Map list(TaxAgentQueryParam queryParam, Long currentEmployeeId) { // 是否是总管理员 Boolean isChief = taxAgentService.isChief(currentEmployeeId); // 是否开启分权 @@ -122,46 +122,54 @@ public class TaxAgentWrapper { if (isOpenDevolution) { List list = taxAgentService.list(queryParam); // 1.判断自己是否是管理员, 如果是管理员,就是能够操作所属个税扣缴义务人下的所有人的数据 - List taxAgentAdminList = taxAgentAdminService.listByTaxAgentIdsAndEmployeeId(list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()), - currentEmployeeId); + List taxAgentAdminList = taxAgentAdminService.listByTaxAgentIdsAndEmployeeId(list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()), currentEmployeeId); // 是管理员的列表 List adminTaxAgentIds = taxAgentAdminList.stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); - // 分页参数 - Page dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); list = list.stream().filter(f -> adminTaxAgentIds.contains(f.getId())).collect(Collectors.toList()); + // 分页参数 // 填充总数和当页数据 + PageInfo dtoPage = PageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); dtoPage.setTotal(list.size()); - dtoPage.setRecords(SalaryPageUtil.subList((int) dtoPage.getCurrent(), (int) dtoPage.getSize(), list)); + dtoPage.setList(PageUtil.subList(dtoPage.getPageNum(), dtoPage.getSize(), list)); page = dtoPage; } } - Page> listPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); + PageInfo> listPage = new PageInfo<>(); - String setLabel = SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 94614, "设置"); + String setLabel = SalaryI18nUtil.getI18nLabel(94614, "设置"); if (isOpenDevolution) { - List taxAgentIds = page.getRecords().stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + List list = page.getList(); + List taxAgentIds = list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); List taxAgentAdmins = taxAgentAdminService.listByTaxAgentIds(taxAgentIds); - List adminList = employeeService.getEmployeeByIds(taxAgentAdmins.stream().map(TaxAgentAdminPO::getEmployeeId).distinct().collect(Collectors.toList()), - currentTenantKey); - listPage.setRecords(TaxAgentBO.convertToTableListDTO(page.getRecords(), paymentAgencyPOS, taxAgentAdmins, adminList, setLabel)); + List adminList = employeeService.listByIds(taxAgentAdmins.stream().map(TaxAgentAdminPO::getEmployeeId).distinct().collect(Collectors.toList())); + listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, taxAgentAdmins, adminList, setLabel)); } else { - listPage.setRecords(TaxAgentBO.convertToTableListDTO(page.getRecords(), paymentAgencyPOS, setLabel)); + listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, setLabel)); } - WeaTable weaTable = FormatManager.getInstance().genTable(LinkedHashMap.class, listPage); + //构造表格 - TaxAgentBO.buildTaxAgentTable(weaTable, isOpenDevolution, currentEmployeeId, listPage.getRecords().size()); + WeaTable weaTable =new WeaTable(); + TaxAgentBO.buildTaxAgentTable(weaTable, isOpenDevolution); if (isChief) { // 在外展示操作按钮 - weaTable.getOperates().get(0).setOuter(Boolean.TRUE); +// weaTable.getOperates().get(0).setOuter(Boolean.TRUE); } else { // 去掉增删改权限 - weaTable.getOperates().clear(); - weaTable.getCheckBoxPermission().clear(); + weaTable.getOperates().getOperate().clear(); +// weaTable.getCheckBoxPermission().clear(); } - weaTable.setModule("hrmsalary"); - return weaTable; + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(weaTable.makeDataResult()); + result.success(); + + Map datas = new HashMap<>(); + datas.put("pageInfo", listPage); + datas.put("dataKey", result.getResultMap()); + + return datas; + } public List> paymentAgencyList(TaxAgentQueryParam queryParam, Long currentEmployeeId) { @@ -173,42 +181,42 @@ public class TaxAgentWrapper { } public String paymentAgencySave(TaxAgentSaveParam param, Long currentEmploueeId) { - List taxAgentPOS = taxAgentService.listByIds(Collections.singletonList(param.getId())); - SalaryAssert.notEmpty(taxAgentPOS, "data is not exist"); - TaxAgentPO taxAgentPO = taxAgentPOS.get(0); - List errorList = new ArrayList<>(); - List resultList = new ArrayList<>(); - if (StringUtils.isNotBlank(taxAgentPO.getPaymentAgency())) { - List originList = new ArrayList<>(Arrays.asList(taxAgentPO.getPaymentAgency().split(","))); - List list = new ArrayList<>(Arrays.asList(param.getPaymentAgency().split(","))); - originList.removeAll(list); - if (CollectionUtils.isNotEmpty(originList)) { - originList.stream().forEach(e -> { - List employeeStatusPOS = new LambdaQueryChainWrapper<>(siEmployeeStatusMapper) - .eq(InsuranceEmployeeStatusPO::getTenantKey) - .eq(InsuranceEmployeeStatusPO::getPaymentAgency, Long.valueOf(e)) - .eq(InsuranceEmployeeStatusPO::getPaymentOrganization, param.getId()) - .list(); - if (CollectionUtils.isNotEmpty(employeeStatusPOS)) { - errorList.add(e); - } - }); - } - if (CollectionUtils.isNotEmpty(errorList)) { - List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey); - errorList.forEach(e -> { - Optional optionalPaymentAgencyPO = paymentAgencyPOS.stream().filter(po -> Objects.equals(e, String.valueOf(po.getId()))).findFirst(); - optionalPaymentAgencyPO.ifPresent(paymentAgencyPO -> resultList.add(paymentAgencyPO.getAgencyName())); - }); - } - } - if (CollectionUtils.isNotEmpty(resultList)) { - return SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmploueeId, 115128, "有员工在") + String.join(",", resultList) + SalaryI18nUtil.getI18nLabel(currentTenantKey, - currentEmploueeId, 115129, "缴纳社保福利,不可取消关联"); - } else { - taxAgentPO.setPaymentAgency(param.getPaymentAgency()); - taxAgentService.paymentAgencyUpdate(taxAgentPO, currentEmploueeId); - } +// List taxAgentPOS = taxAgentService.listByIds(Collections.singletonList(param.getId())); +// SalaryAssert.notEmpty(taxAgentPOS, "data is not exist"); +// TaxAgentPO taxAgentPO = taxAgentPOS.get(0); +// List errorList = new ArrayList<>(); +// List resultList = new ArrayList<>(); +// if (StringUtils.isNotBlank(taxAgentPO.getPaymentAgency())) { +// List originList = new ArrayList<>(Arrays.asList(taxAgentPO.getPaymentAgency().split(","))); +// List list = new ArrayList<>(Arrays.asList(param.getPaymentAgency().split(","))); +// originList.removeAll(list); +// if (CollectionUtils.isNotEmpty(originList)) { +// originList.stream().forEach(e -> { +// List employeeStatusPOS = new LambdaQueryChainWrapper<>(siEmployeeStatusMapper) +// .eq(InsuranceEmployeeStatusPO::getTenantKey) +// .eq(InsuranceEmployeeStatusPO::getPaymentAgency, Long.valueOf(e)) +// .eq(InsuranceEmployeeStatusPO::getPaymentOrganization, param.getId()) +// .list(); +// if (CollectionUtils.isNotEmpty(employeeStatusPOS)) { +// errorList.add(e); +// } +// }); +// } +// if (CollectionUtils.isNotEmpty(errorList)) { +// List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey); +// errorList.forEach(e -> { +// Optional optionalPaymentAgencyPO = paymentAgencyPOS.stream().filter(po -> Objects.equals(e, String.valueOf(po.getId()))).findFirst(); +// optionalPaymentAgencyPO.ifPresent(paymentAgencyPO -> resultList.add(paymentAgencyPO.getAgencyName())); +// }); +// } +// } +// if (CollectionUtils.isNotEmpty(resultList)) { +// return SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmploueeId, 115128, "有员工在") + String.join(",", resultList) + SalaryI18nUtil.getI18nLabel(currentTenantKey, +// currentEmploueeId, 115129, "缴纳社保福利,不可取消关联"); +// } else { +// taxAgentPO.setPaymentAgency(param.getPaymentAgency()); +// taxAgentService.paymentAgencyUpdate(taxAgentPO, currentEmploueeId); +// } return ""; } @@ -217,7 +225,6 @@ public class TaxAgentWrapper { * * @param id * @param currentEmployeeId - * @param currentTenantKey * @return */ public WeaForm getFrom(Long id, Long currentEmployeeId) { @@ -271,7 +278,6 @@ public class TaxAgentWrapper { * * @param saveParam * @param currentEmployeeId - * @param currentTenantKey * @return */ public String save(TaxAgentSaveParam saveParam, Long currentEmployeeId) { @@ -283,7 +289,6 @@ public class TaxAgentWrapper { * * @param saveParam * @param currentEmployeeId - * @param currentTenantKey * @return */ public String update(TaxAgentSaveParam saveParam, Long currentEmployeeId) { @@ -295,7 +300,6 @@ public class TaxAgentWrapper { * * @param checkParam * @param currentEmployeeId - * @param currentTenantKey * @return */ public Boolean adminChangeCheck(TaxAgentAdminChangeCheckParam checkParam, Long currentEmployeeId) { @@ -307,7 +311,6 @@ public class TaxAgentWrapper { * * @param ids * @param currentEmployeeId - * @param currentTenantKey * @return */ public String delete(Collection ids, Long currentEmployeeId) { @@ -318,7 +321,6 @@ public class TaxAgentWrapper { * 个税扣缴义务人下拉列表 * * @param currentEmployeeId - * @param currentTenantKey * @return */ public List> selectList(Long currentEmployeeId) { @@ -333,8 +335,8 @@ public class TaxAgentWrapper { * @param tenantKey * @return */ - public WeaTable listRangeInclude(TaxAgentRangeQueryParam queryParam, Long employeeId, String tenantKey) { - Page listPage = taxAgentManageRangeService.listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ONE, tenantKey); + public PageInfo listRangeInclude(TaxAgentRangeQueryParam queryParam) { + PageInfo listPage = taxAgentManageRangeService.listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ONE); WeaTable weaTable = SalaryFormatUtil.getInstance().buildTable(TaxAgentManageRangeListDTO.class, listPage); weaTable.setModule("hrmsalary"); weaTable.setPageUid("taxAgentRangeIncludeList");