diff --git a/resource/sqlupgrade/DM/sql202307180603.sql b/resource/sqlupgrade/DM/sql202307180603.sql new file mode 100644 index 000000000..9154924fe --- /dev/null +++ b/resource/sqlupgrade/DM/sql202307180603.sql @@ -0,0 +1,4 @@ +alter table hrsa_salary_item + add hide_default NUMBER null; +/ + diff --git a/resource/sqlupgrade/JC/sql202307180603.sql b/resource/sqlupgrade/JC/sql202307180603.sql new file mode 100644 index 000000000..9154924fe --- /dev/null +++ b/resource/sqlupgrade/JC/sql202307180603.sql @@ -0,0 +1,4 @@ +alter table hrsa_salary_item + add hide_default NUMBER null; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202307180603.sql b/resource/sqlupgrade/Mysql/sql202307180603.sql new file mode 100644 index 000000000..5ddb48c1c --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202307180603.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_salary_item +ADD COLUMN hide_default int NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202307180603.sql b/resource/sqlupgrade/Oracle/sql202307180603.sql new file mode 100644 index 000000000..8bccbf455 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202307180603.sql @@ -0,0 +1,3 @@ +alter table hrsa_salary_item + add hide_default NUMBER null +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202307180603.sql b/resource/sqlupgrade/PG/sql202307180603.sql new file mode 100644 index 000000000..5ddb48c1c --- /dev/null +++ b/resource/sqlupgrade/PG/sql202307180603.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_salary_item +ADD COLUMN hide_default int NULL; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202307180603.sql b/resource/sqlupgrade/SQLServer/sql202307180603.sql new file mode 100644 index 000000000..8160ebc94 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202307180603.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_salary_item +ADD hide_default int NULL +GO \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java index 80ea657a2..b750c2c27 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java @@ -99,6 +99,7 @@ public class SalaryItemBO { .systemName(sysSalaryItemNameMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), StringUtils.EMPTY)) .useInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) .useDefault(salaryItemPO.getUseDefault()) + .hideDefault(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault()) .roundingMode(Optional.ofNullable(salaryRoundingModeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) @@ -145,6 +146,7 @@ public class SalaryItemBO { .systemName(sysSalaryItemNameMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), StringUtils.EMPTY)) .useInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) .useDefault(salaryItemPO.getUseDefault()) + .hideDefault(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault()) .roundingMode(Optional.ofNullable(salaryRoundingModeEnum) .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) .orElse(StringUtils.EMPTY)) @@ -181,6 +183,7 @@ public class SalaryItemBO { .setName(salaryItemPO.getName()) .setSystemType(salaryItemPO.getSystemType()) .setUseDefault(salaryItemPO.getUseDefault()) + .setHideDefault(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault()) .setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) .setRoundingMode(salaryItemPO.getRoundingMode()) .setPattern(salaryItemPO.getPattern()) @@ -256,6 +259,7 @@ public class SalaryItemBO { .sysSalaryItemId(NumberUtils.LONG_ZERO) .useDefault(saveParam.getUseDefault()) .useInEmployeeSalary(saveParam.getUseInEmployeeSalary()) + .hideDefault(saveParam.getHideDefault()) .roundingMode(saveParam.getRoundingMode() == null ? SalaryRoundingModeEnum.ROUNDING.getValue() : saveParam.getRoundingMode()) .pattern(Optional.ofNullable(saveParam.getPattern()).orElse(2)) .valueType(saveParam.getValueType()) diff --git a/src/com/engine/salary/entity/salaryitem/bo/SysSalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SysSalaryItemBO.java index a84ded713..544550acf 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SysSalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SysSalaryItemBO.java @@ -93,6 +93,7 @@ public class SysSalaryItemBO { .setCanEdit(sysSalaryItemPO.getCanEdit()) .setSystemType(sysSalaryItemPO.getSystemType()) .setUseDefault(sysSalaryItemPO.getUseDefault()) + .setHideDefault(0) .setUseInEmployeeSalary(sysSalaryItemPO.getUseInEmployeeSalary()) .setRoundingMode(sysSalaryItemPO.getRoundingMode()) .setPattern(sysSalaryItemPO.getPattern()) diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java index 96eaf0bec..e8a2afa8f 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java @@ -40,6 +40,11 @@ public class SalaryFieldListDTO { @TableTitle(title = "默认使用",dataIndex = "useDefault",key = "useDefault") private Integer useDefault; + //核算时隐藏 + @SalaryTableColumn(text = "核算时隐藏", width = "10%", column = "hideDefault") + @TableTitle(title = "核算时隐藏",dataIndex = "hideDefault",key = "hideDefault") + private Integer hideDefault; + //进位规则 @SalaryTableColumn(text = "进位规则", width = "10%", column = "roundingMode",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") @TableTitle(title = "进位规则",dataIndex = "roundingMode",key = "roundingMode") diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java index 95903867d..c00b85844 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java @@ -42,6 +42,9 @@ public class SalaryItemFormDTO { //默认使用") private Integer useDefault; + //核算时隐藏") + private Integer hideDefault; + //薪资档案引用") private Integer useInEmployeeSalary; diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java index 510a75f18..adb0dc4b1 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java @@ -51,6 +51,11 @@ public class SalaryItemListDTO { @TableTitle(title = "默认使用",dataIndex = "useDefault",key = "useDefault") private Integer useDefault; + //核算时隐藏 + @SalaryTableColumn(text = "核算时隐藏", width = "10%", column = "hideDefault") + @TableTitle(title = "核算时隐藏",dataIndex = "hideDefault",key = "hideDefault") + private Integer hideDefault; + //进位规则 @SalaryTableColumn(text = "进位规则", width = "10%", column = "roundingMode",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") @TableTitle(title = "进位规则",dataIndex = "roundingMode",key = "roundingMode") diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java index ef88c307a..ae0ecf30f 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java @@ -49,6 +49,11 @@ public class SalaryItemSobListDTO { @TableTitle(title = "默认使用",dataIndex = "useDefault",key = "useDefault") private Integer useDefault; + //核算时默认隐藏 + @SalaryTableColumn(text = "核算时隐藏", width = "10%", column = "hideDefault") + @TableTitle(title = "核算时隐藏",dataIndex = "hideDefault",key = "hideDefault") + private Integer hideDefault; + //进位规则 @SalaryTableColumn(text = "进位规则", width = "10%", column = "roundingMode",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") @TableTitle(title = "进位规则",dataIndex = "roundingMode",key = "roundingMode") diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java index 00325afc1..a2c6fa84b 100644 --- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java @@ -49,6 +49,10 @@ public class SalaryItemSaveParam { //薪资档案引用 private Integer useInEmployeeSalary; + //核算时默认隐藏 + @DataCheck(require = true, message = "核算时隐藏不允许为空") + private Integer hideDefault; + /** * 舍入规则 diff --git a/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java b/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java index f54afc630..3115f0efa 100644 --- a/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java +++ b/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java @@ -64,6 +64,11 @@ public class SalaryItemPO { */ private Integer useInEmployeeSalary; + /** + * 核算时隐藏 + */ + private Integer hideDefault; + /** * 进位规则 * diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemBO.java index 311dabd63..3e2513908 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemBO.java @@ -12,10 +12,7 @@ import lombok.Data; import lombok.experimental.Accessors; import org.apache.commons.lang3.math.NumberUtils; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -70,6 +67,8 @@ public class SalarySobItemBO { List defaultSalaryItemPOS, Long employeeId, String tenantKey) { Date now = new Date(); + // 需要保存的隐藏项目 + List needInsertItemHides = new ArrayList<>(); // 处理薪资账套默认的薪资项目分类 Map salarySobItemGroupIdMap = Maps.newHashMapWithExpectedSize(salarySobDefaultItemGroupPOS.size()); List salarySobItemGroups = Lists.newArrayListWithExpectedSize(salarySobDefaultItemGroupPOS.size()); @@ -88,8 +87,23 @@ public class SalarySobItemBO { .deleteType(NumberUtils.INTEGER_ZERO) .build()); salarySobItemGroupIdMap.put(salarySobDefaultItemGroupPO.getId(), salarySobItemGroupId); + + // 保存薪资项目分类隐藏信息 + needInsertItemHides.add(SalarySobItemHidePO.builder() + .id(IdGenerator.generate()) + .salarySobId(salarySobId) + .salaryItemId(salarySobItemGroupId) + .isGroup(1) + .itemHide(0L) + .creator(employeeId) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); } + List salarySobItems = Lists.newArrayListWithExpectedSize(defaultSalaryItemPOS.size()); // 处理薪资账套默认的系统薪资项目 Set sysSalaryItemIds = SalaryEntityUtil.properties(salarySobDefaultItemPOS, SalarySobDefaultItemPO::getSysSalaryItemId); @@ -113,6 +127,20 @@ public class SalarySobItemBO { .tenantKey(tenantKey) .deleteType(NumberUtils.INTEGER_ZERO) .build()); + + // 保存薪资项目隐藏信息 + needInsertItemHides.add(SalarySobItemHidePO.builder() + .id(IdGenerator.generate()) + .salarySobId(salarySobId) + .salaryItemId(salaryItemPO.getId()) + .isGroup(0) + .itemHide(Long.valueOf(salaryItemPO.getHideDefault()== null ? 0 : salaryItemPO.getHideDefault())) + .creator(employeeId) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); } // 处理薪资账套默认的自定义薪资项目(开启了"默认使用") for (int i = 0; i < defaultSalaryItemPOS.size(); i++) { @@ -139,6 +167,19 @@ public class SalarySobItemBO { .tenantKey(tenantKey) .deleteType(NumberUtils.INTEGER_ZERO) .build()); + // 保存薪资项目隐藏信息 + needInsertItemHides.add(SalarySobItemHidePO.builder() + .id(IdGenerator.generate()) + .salarySobId(salarySobId) + .salaryItemId(salaryItemPO.getId()) + .isGroup(0) + .itemHide(Long.valueOf(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault())) + .creator(employeeId) + .createTime(now) + .updateTime(now) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); } // 薪资账套默认的回算薪资项目 @@ -165,7 +206,8 @@ public class SalarySobItemBO { salarySobBackItems.add(salarySobBackItemPO); } - return new Result().setNeedInsertSalarySobItems(salarySobItems).setNeedInsertSalarySobItemGroups(salarySobItemGroups).setNeedInsertSalarySobBackItems(salarySobBackItems); + return new Result().setNeedInsertSalarySobItems(salarySobItems).setNeedInsertSalarySobItemGroups(salarySobItemGroups) + .setNeedInsertSalarySobBackItems(salarySobBackItems).setNeedInsertItemHides(needInsertItemHides); } @Data @@ -186,5 +228,10 @@ public class SalarySobItemBO { * 需要保存的回算薪资项目 */ List needInsertSalarySobBackItems; + + /** + * 需要保存的薪资项目隐藏信息 + */ + List needInsertItemHides; } } diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml index 557ff7364..7dd705c72 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml @@ -50,7 +50,8 @@ t.data_type, t.shared_type, t.tax_agent_ids, - t.sorted_index + t.sorted_index, + t.hide_default @@ -168,6 +169,9 @@ use_in_employee_salary, + + hide_default, + rounding_mode, @@ -236,6 +240,9 @@ #{useInEmployeeSalary}, + + #{hideDefault}, + #{roundingMode}, @@ -307,6 +314,9 @@ use_in_employee_salary=#{useInEmployeeSalary}, + + hide_default=#{hideDefault}, + rounding_mode=#{roundingMode}, diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 95b6bf39e..d2c0999f3 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -236,6 +236,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService newSalaryItemPO.setName(saveParam.getName()); newSalaryItemPO.setUseDefault(saveParam.getUseDefault()); newSalaryItemPO.setUseInEmployeeSalary(saveParam.getUseInEmployeeSalary()); + newSalaryItemPO.setHideDefault(saveParam.getHideDefault()); newSalaryItemPO.setRoundingMode(saveParam.getRoundingMode()); newSalaryItemPO.setPattern(saveParam.getPattern()); // newSalaryItemPO.setValueType(saveParam.getValueType()); diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index e370e40e3..4d1a8d659 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -378,16 +378,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .salarySobId(salarySobId) .salaryItemId(salarySobItemGroupId) .isGroup(1) - .itemHide(itemGroupParam.getItemHide()) + .itemHide(itemGroupParam.getItemHide() == null ? 0L : itemGroupParam.getItemHide()) .creator(employeeId) .createTime(now) .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); - if (itemGroupParam.getItemHide() == null) { - salarySobGroupItemHidePO.setItemHide(Long.valueOf(0)); - } needInsertItemShow.add(salarySobGroupItemHidePO); // salarySobItemMapper.InsertItemShow(salarySobGroupItemHidePO); @@ -448,17 +445,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .salarySobId(salarySobId) .salaryItemId(groupId) .isGroup(1) - .itemHide(itemGroupParam.getItemHide()) + .itemHide(itemGroupParam.getItemHide() == null ? 0L : itemGroupParam.getItemHide()) .creator(employeeId) .createTime(now) .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); - if (itemGroupParam.getItemHide() == null) { - salarySobGroupItemHidePO.setItemHide(Long.valueOf(0)); - } -// salarySobItemMapper.InsertItemShow(salarySobGroupItemHidePO); needInsertItemShow.add(salarySobGroupItemHidePO); @@ -502,7 +495,6 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); -// salarySobItemMapper.InsertItemShow(salarySobItemHidePO); needInsertItemShow.add(salarySobItemHidePO); } //更新 @@ -520,7 +512,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO); // 保存薪资项目是否展示 Long salarySobItemShowId = IdGenerator.generate(); - SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder() + needInsertItemShow.add(SalarySobItemHidePO.builder() .id(salarySobItemShowId) .salarySobId(salarySobId) .salaryItemId(itemParam.getSalaryItemId()) @@ -531,9 +523,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); -// salarySobItemMapper.InsertItemShow(salarySobItemHidePO); - needInsertItemShow.add(salarySobItemHidePO); + .build()); } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 1cf4943b6..aec691198 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -372,6 +372,13 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { if (CollectionUtils.isNotEmpty(result.getNeedInsertSalarySobBackItems())) { getSalarySobBackItemService(user).batchInsert(result.getNeedInsertSalarySobBackItems()); } + if (CollectionUtils.isNotEmpty(result.getNeedInsertItemHides())) { + //去重 + List list = new ArrayList<>(result.getNeedInsertItemHides().stream() + .collect(Collectors.toMap(SalarySobItemHidePO::getSalaryItemId, Function.identity(), (oldValue, newValue) -> oldValue)) + .values()); + salarySobItemService.batchInsertItemShow(list); + } } /** diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index 2400f224b..096d9a395 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -96,7 +96,7 @@ public class SalarySobItemWrapper extends Service { } }) .collect(Collectors.toList()); - SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList); + salaryItemList = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); //最终返回的分页对象 PageInfo dtoPage = new PageInfo<>(SalaryItemSobListDTO.class);