From faeafbe5adf5b45878d2d3cc88405d2ad4f51516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 25 Sep 2023 15:38:14 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryAcctResultQueryParam.java | 14 +++ .../salary/enums/common/FilterEnum.java | 119 ++++++++++++++++++ .../impl/SalaryAcctResultServiceImpl.java | 72 ++++++----- 3 files changed, 173 insertions(+), 32 deletions(-) create mode 100644 src/com/engine/salary/enums/common/FilterEnum.java diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java index f5b3d3bce..eeb09a7cb 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java @@ -2,6 +2,7 @@ package com.engine.salary.entity.salaryacct.param; import com.engine.salary.common.BaseQueryParam; import com.engine.salary.common.LocalDateRange; +import com.engine.salary.enums.common.FilterEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; @@ -63,4 +64,17 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam { //薪资项目id private Collection salaryItemIds; + + //其他条件 + private Collection otherConditions; + + + @Data + @NoArgsConstructor + @AllArgsConstructor + public class OtherCondition{ + private Long itemIds; + private FilterEnum filter; + private String params; + } } diff --git a/src/com/engine/salary/enums/common/FilterEnum.java b/src/com/engine/salary/enums/common/FilterEnum.java new file mode 100644 index 000000000..5db5aca9e --- /dev/null +++ b/src/com/engine/salary/enums/common/FilterEnum.java @@ -0,0 +1,119 @@ +package com.engine.salary.enums.common; + +import com.engine.salary.enums.BaseEnum; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; + +import java.math.BigDecimal; +import java.util.function.Predicate; + +public enum FilterEnum implements BaseEnum { + + BT("BT", "包含", 1) { + @Override + public Predicate filter(String... params) { + return a -> a.contentEquals(params[0]); + } + }, + EQ("EQ", "等于", 1) { + @Override + public Predicate filter(String... params) { + return a -> a.equals(params[0]); + } + }, + NE("NE", "不等于", 1) { + @Override + public Predicate filter(String... params) { + return a -> !a.equals(params[0]); + } + }, + GT("GT", "大于", 1) { + @Override + public Predicate filter(String... params) { + return a -> { + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { + return new BigDecimal(a).compareTo(new BigDecimal(params[0])) > 0; + } + return false; + }; + } + }, + LT("LT", "小于", 1) { + @Override + public Predicate filter(String... params) { + return a -> { + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { + return new BigDecimal(a).compareTo(new BigDecimal(params[0])) < 0; + } + return false; + }; + } + }, + GE("GE", "大于等于", 1) { + @Override + public Predicate filter(String... params) { + return a -> { + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { + return new BigDecimal(a).compareTo(new BigDecimal(params[0])) >= 0; + } + return false; + }; + } + }, + LE("LE", "小于等于", 1) { + @Override + public Predicate filter(String... params) { + return a -> { + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { + return new BigDecimal(a).compareTo(new BigDecimal(params[0])) <= 0; + } + return false; + }; + } + }, + ISEMPTY("ISEMPTY", "为空", 1) { + @Override + public Predicate filter(String... params) { + return StringUtils::isEmpty; + } + }, + ISNOTEMPTY("ISNOTEMPTY", "包含", 1) { + @Override + public Predicate filter(String... params) { + return StringUtils::isNotEmpty; + } + }; + + + FilterEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + private String value; + + private String defaultLabel; + + private int labelId; + + public abstract Predicate filter(String... params); + + + @Override + public String getValue() { + return null; + } + + @Override + public Integer getLabelId() { + return null; + } + + @Override + public String getDefaultLabel() { + return null; + } + + +} diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 717cfc917..cee8c3a63 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -23,6 +23,7 @@ import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.SalaryValueTypeEnum; +import com.engine.salary.enums.common.FilterEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum; @@ -301,17 +302,23 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public PageInfo> listPageByParam(SalaryAcctResultQueryParam queryParam) { - // 查询薪资核算人员(分页) - PageInfo page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); - // 查询薪资核算结果 - List> data = listBySalaryAcctEmployees(page.getList(), queryParam); - // 薪资核算结果的分页结果 - PageInfo> resultPage = new PageInfo<>(); - resultPage.setList(data); - resultPage.setTotal(page.getTotal()); - resultPage.setPageNum(page.getPageNum()); - resultPage.setPageSize(page.getPageSize()); - return resultPage; +// // 查询薪资核算人员(分页) +// PageInfo page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); +// // 查询薪资核算结果 +// List> data = listBySalaryAcctEmployees(page.getList(), queryParam); +// // 薪资核算结果的分页结果 +// PageInfo> resultPage = new PageInfo<>(); +// resultPage.setList(data); +// resultPage.setTotal(page.getTotal()); +// resultPage.setPageNum(page.getPageNum()); +// resultPage.setPageSize(page.getPageSize()); + + Collection otherConditions = queryParam.getOtherConditions(); + + List list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(1695204436145L)); + list = list.stream().filter(a -> FilterEnum.LT.filter("5000").test(a.getResultValue())).collect(Collectors.toList()); + + return null; } @Override @@ -331,7 +338,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); Map salaryItemIdKeySalarySobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId); - if(Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)){ + if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)) { // 是回算,获取回算项 List salarySobBackItemPOS = getSalarySobBackItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); salaryItemIds.addAll(salarySobBackItemPOS.stream().map(SalarySobBackItemPO::getSalaryItemId).collect(Collectors.toList())); @@ -339,7 +346,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds); // 查询薪资核算结果 - List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList()); + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId, Collectors.toList()); List salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); Map map = new HashMap<>(); @@ -396,7 +403,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } List salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds); // 查询薪资核算结果 - List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList()); + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId, Collectors.toList()); List salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 查询人员信息 List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); @@ -477,7 +484,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByRecordIdsAndEmpIdAndTaxAgentId(salaryAcctRecordIds, salaryAcctEmployeePO.getEmployeeId(), salaryAcctEmployeePO.getTaxAgentId()); } // 查询薪资核算人员的薪资核算结果 - List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList()); + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId, Collectors.toList()); List salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 查询薪资核算人员所有合并计税的薪资核算记录所用的账套 Set salarySobIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getSalarySobId); @@ -555,13 +562,13 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 保存参数转换成薪资核算结果po List salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(salaryAcctResultPOSOld, saveParam, salaryAcctEmployeePO, (long) user.getUID()); SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); - if(autoLock != null && StringUtils.equals(autoLock.getConfValue(),"1")){ + if (autoLock != null && StringUtils.equals(autoLock.getConfValue(), "1")) { // 对比核算结果提取修改了哪些薪资项目 Set needLockItems = new HashSet<>(); Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); salaryAcctResultPOS.stream().forEach(PO -> { String oldValue = Optional.ofNullable(oldResutMap.get(PO.getSalaryItemId())).map(SalaryAcctResultPO::getResultValue).orElse(""); - if(!StringUtils.equals(oldValue,PO.getResultValue())){ + if (!StringUtils.equals(oldValue, PO.getResultValue())) { needLockItems.add(PO.getSalaryItemId()); } }); @@ -601,7 +608,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 存储薪资核算结果数据来源日志 salaryAcctResultPOS = getSalaryAcctRecordService(user).listBySalaryAcctEmpId(saveParam.getSalaryAcctEmpId()); - saveSalaryAcctResultLog(salaryAcctResultPOSOld,salaryAcctResultPOS); + saveSalaryAcctResultLog(salaryAcctResultPOSOld, salaryAcctResultPOS); // 查询操作日志的targetName // String targetName = getSalaryAcctRecordService(user).getLogTargetNameById(salaryAcctEmployeePO.getSalaryAcctRecordId()); @@ -623,6 +630,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe /** * 存储薪资核算结果数据来源日志 + * * @param salaryAcctResultPOSOld * @param salaryAcctResultPOS */ @@ -631,11 +639,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List editItems = new ArrayList<>(); Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); salaryAcctResultPOS.stream().forEach(PO -> { - if(oldResutMap.get(PO.getSalaryItemId()) == null){ + if (oldResutMap.get(PO.getSalaryItemId()) == null) { editItems.add(PO); - }else{ + } else { String oldValue = oldResutMap.get(PO.getSalaryItemId()).getResultValue(); - if(!StringUtils.equals(oldValue,PO.getResultValue())){ + if (!StringUtils.equals(oldValue, PO.getResultValue())) { editItems.add(PO); } } @@ -819,8 +827,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List salaryAcctEmployeeIds = salaryAcctEmployeePOS.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); exceptItemIds.addAll(lockSalaryItemIds); exceptItemIds.addAll(salaryItemPOS.stream().filter(PO -> Objects.equals(PO.getValueType(), NumberUtils.INTEGER_ONE) && - Objects.equals(PO.getUseInEmployeeSalary(),0)) - .map(SalaryItemPO::getId).collect(Collectors.toList()) ); + Objects.equals(PO.getUseInEmployeeSalary(), 0)) + .map(SalaryItemPO::getId).collect(Collectors.toList())); getSalaryAcctResultLogService(user).deleteBySalaryAcctEmpIdExceptItemIds(salaryAcctEmployeeIds, exceptItemIds); } }.start(); @@ -940,9 +948,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // } Set salaryItemIds; - if(CollectionUtils.isNotEmpty(updateParam.getSalaryItemIds())){ + if (CollectionUtils.isNotEmpty(updateParam.getSalaryItemIds())) { salaryItemIds = updateParam.getSalaryItemIds(); - }else{ + } else { salaryItemIds = Collections.singleton(updateParam.getSalaryItemId()); } if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { @@ -981,10 +989,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public List listByAcctEmployeeIdsAndSalaryItemIds(List salaryAcctEmployeeIds, Collection salaryItemIds) { - if(CollectionUtils.isEmpty(salaryAcctEmployeeIds)){ + if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) { return Collections.emptyList(); } - List> partition = Lists.partition((List)salaryAcctEmployeeIds, 200); + List> partition = Lists.partition((List) salaryAcctEmployeeIds, 200); List result = new ArrayList<>(); partition.forEach(empIds -> { SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build(); @@ -1007,10 +1015,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public List listAcctEmpIdByAcctEmpId(List salaryAcctEmployeeIds) { - if(CollectionUtils.isEmpty(salaryAcctEmployeeIds)){ + if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) { return Collections.emptyList(); } - List> partition = Lists.partition((List)salaryAcctEmployeeIds, 1000); + List> partition = Lists.partition((List) salaryAcctEmployeeIds, 1000); List result = new ArrayList<>(); partition.forEach(empIds -> { result.addAll(getSalaryAcctResultMapper().getAcctEmpIsExist(empIds)); @@ -1047,15 +1055,15 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe public Boolean checkAuth(Long salaryAcctRecordId) { // 获取该核算记录的个税扣缴义务 SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); - if(Objects.isNull(recordPO)) { + if (Objects.isNull(recordPO)) { return false; } SalarySobPO salarySobPO = getSalarySobService(user).getById(recordPO.getSalarySobId()); Long taxAgentId = salarySobPO.getTaxAgentId(); List adminTaxAgentList = getTaxAgentAdminService(user).listByEmployeeId(Long.valueOf(user.getUID())); Optional canOperate = adminTaxAgentList.stream().filter(po -> NumberUtils.compare(taxAgentId, po.getTaxAgentId()) == 0).findFirst(); - if(!canOperate.isPresent()){ - return false; + if (!canOperate.isPresent()) { + return false; } return true; } From 5d203b0783cc863acdbab2b119ca15e5e3e8f2c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 25 Sep 2023 16:53:01 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=90=9C?= =?UTF-8?q?=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryAcctResultQueryParam.java | 10 ++--- .../salary/enums/common/FilterEnum.java | 43 ++++++++++--------- .../impl/SalaryAcctResultServiceImpl.java | 42 ++++++++++++------ 3 files changed, 55 insertions(+), 40 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java index eeb09a7cb..8ebe19131 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java @@ -28,7 +28,7 @@ import java.util.List; public class SalaryAcctResultQueryParam extends BaseQueryParam { //薪资核算记录id - @DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空") + @DataCheck(require = true, message = "参数错误,薪资核算记录ID不能为空") private Long salaryAcctRecordId; //人员姓名 @@ -66,15 +66,15 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam { private Collection salaryItemIds; //其他条件 - private Collection otherConditions; + private List otherConditions; @Data @NoArgsConstructor @AllArgsConstructor - public class OtherCondition{ - private Long itemIds; + public static class OtherCondition { + private Long itemId; private FilterEnum filter; - private String params; + private List params; } } diff --git a/src/com/engine/salary/enums/common/FilterEnum.java b/src/com/engine/salary/enums/common/FilterEnum.java index 5db5aca9e..7d7c6b58e 100644 --- a/src/com/engine/salary/enums/common/FilterEnum.java +++ b/src/com/engine/salary/enums/common/FilterEnum.java @@ -5,34 +5,35 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import java.math.BigDecimal; +import java.util.List; import java.util.function.Predicate; public enum FilterEnum implements BaseEnum { BT("BT", "包含", 1) { @Override - public Predicate filter(String... params) { - return a -> a.contentEquals(params[0]); + public Predicate filter(List params) { + return a -> a.contentEquals(params.get(0)); } }, EQ("EQ", "等于", 1) { @Override - public Predicate filter(String... params) { - return a -> a.equals(params[0]); + public Predicate filter(List params) { + return a -> a.equals(params.get(0)); } }, NE("NE", "不等于", 1) { @Override - public Predicate filter(String... params) { - return a -> !a.equals(params[0]); + public Predicate filter(List params) { + return a -> !a.equals(params.get(0)); } }, GT("GT", "大于", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return a -> { - if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { - return new BigDecimal(a).compareTo(new BigDecimal(params[0])) > 0; + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) { + return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) > 0; } return false; }; @@ -40,10 +41,10 @@ public enum FilterEnum implements BaseEnum { }, LT("LT", "小于", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return a -> { - if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { - return new BigDecimal(a).compareTo(new BigDecimal(params[0])) < 0; + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) { + return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) < 0; } return false; }; @@ -51,10 +52,10 @@ public enum FilterEnum implements BaseEnum { }, GE("GE", "大于等于", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return a -> { - if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { - return new BigDecimal(a).compareTo(new BigDecimal(params[0])) >= 0; + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) { + return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) >= 0; } return false; }; @@ -62,10 +63,10 @@ public enum FilterEnum implements BaseEnum { }, LE("LE", "小于等于", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return a -> { - if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) { - return new BigDecimal(a).compareTo(new BigDecimal(params[0])) <= 0; + if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) { + return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) <= 0; } return false; }; @@ -73,13 +74,13 @@ public enum FilterEnum implements BaseEnum { }, ISEMPTY("ISEMPTY", "为空", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return StringUtils::isEmpty; } }, ISNOTEMPTY("ISNOTEMPTY", "包含", 1) { @Override - public Predicate filter(String... params) { + public Predicate filter(List params) { return StringUtils::isNotEmpty; } }; @@ -97,7 +98,7 @@ public enum FilterEnum implements BaseEnum { private int labelId; - public abstract Predicate filter(String... params); + public abstract Predicate filter(List params); @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index cee8c3a63..d883e8cd0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -302,23 +302,37 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public PageInfo> listPageByParam(SalaryAcctResultQueryParam queryParam) { -// // 查询薪资核算人员(分页) -// PageInfo page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); -// // 查询薪资核算结果 -// List> data = listBySalaryAcctEmployees(page.getList(), queryParam); -// // 薪资核算结果的分页结果 -// PageInfo> resultPage = new PageInfo<>(); -// resultPage.setList(data); -// resultPage.setTotal(page.getTotal()); -// resultPage.setPageNum(page.getPageNum()); -// resultPage.setPageSize(page.getPageSize()); - Collection otherConditions = queryParam.getOtherConditions(); + //其他条件 + List otherConditions = queryParam.getOtherConditions(); + otherConditions = new ArrayList<>(); + otherConditions.add(new SalaryAcctResultQueryParam.OtherCondition(1695204436145L, FilterEnum.LE, Arrays.asList("5000"))); + if (CollectionUtils.isNotEmpty(otherConditions)) { + List items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList()); + List list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items); + for (int i = 0; i < otherConditions.size(); i++) { + SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i); + Long itemId = otherCondition.getItemId(); + FilterEnum filter = otherCondition.getFilter(); + List params = otherCondition.getParams(); + list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList()); + } + List salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList()); + queryParam.setIds(salaryAcctEmpId); + } - List list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(1695204436145L)); - list = list.stream().filter(a -> FilterEnum.LT.filter("5000").test(a.getResultValue())).collect(Collectors.toList()); + // 查询薪资核算人员(分页) + PageInfo page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); + // 查询薪资核算结果 + List> data = listBySalaryAcctEmployees(page.getList(), queryParam); + // 薪资核算结果的分页结果 + PageInfo> resultPage = new PageInfo<>(); + resultPage.setList(data); + resultPage.setTotal(page.getTotal()); + resultPage.setPageNum(page.getPageNum()); + resultPage.setPageSize(page.getPageSize()); - return null; + return resultPage; } @Override From 4ed4edc9ed960802ae357eb95b8d4bae64d55307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 27 Sep 2023 14:19:52 +0800 Subject: [PATCH 03/12] =?UTF-8?q?pdf=E6=8C=89=E9=92=AE=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java | 5 +++++ .../engine/salary/service/impl/SalarySendServiceImpl.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java index 9ce265dee..ae1a88f3a 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java @@ -46,4 +46,9 @@ public class SalarySendBaseInfoDTO { // 能否发送 private Boolean canSend; + + /** + * 是否支持导出工资单pdf + */ + private Boolean showPdfBt; } diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 94658397e..f3c245a70 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -86,6 +86,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.engine.salary.cache.SalaryCacheKey.SALARY_CACHE_SMS_CODE; +import static com.engine.salary.constant.HrmSalaryPayrollConf.GEN_PDF; /** * @Description: 工资单发放 @@ -450,6 +451,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .sendNum(salarySend.getSendNum()) .sendTotal(salarySend.getSendTotal()) .canSend(canSend) + .showPdfBt(GEN_PDF) // .salaryAcctType(salarySend.getSalaryAcctType().toString()) // .haveBackCalc(haveBackCalc ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO) .build(); From 4c5bc5dda749f7c60d96c6d22b34deb71dbab5f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 28 Sep 2023 17:05:42 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java | 2 +- .../entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java | 1 + src/com/engine/salary/service/impl/SalarySendServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java index ae1a88f3a..05b69d9bf 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendBaseInfoDTO.java @@ -50,5 +50,5 @@ public class SalarySendBaseInfoDTO { /** * 是否支持导出工资单pdf */ - private Boolean showPdfBt; + private Boolean showPdfBtn; } diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java index ae5a91807..e88c263c7 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java @@ -60,6 +60,7 @@ public class SalaryFormulaEmployeeDTO { private String dissmissdate; //状态 + @SalaryFormulaVar(defaultLabel = "状态", labelId = 98621, dataType = "string") private String status; //工号 diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index f3c245a70..e5426ff66 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -451,7 +451,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .sendNum(salarySend.getSendNum()) .sendTotal(salarySend.getSendTotal()) .canSend(canSend) - .showPdfBt(GEN_PDF) + .showPdfBtn(GEN_PDF) // .salaryAcctType(salarySend.getSalaryAcctType().toString()) // .haveBackCalc(haveBackCalc ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO) .build(); From b6508067f113d62ad5d450d710050dd7bb2b6c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 8 Oct 2023 09:16:54 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/enums/common/FilterEnum.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/enums/common/FilterEnum.java b/src/com/engine/salary/enums/common/FilterEnum.java index 7d7c6b58e..602bcadbd 100644 --- a/src/com/engine/salary/enums/common/FilterEnum.java +++ b/src/com/engine/salary/enums/common/FilterEnum.java @@ -103,17 +103,17 @@ public enum FilterEnum implements BaseEnum { @Override public String getValue() { - return null; + return value; } @Override public Integer getLabelId() { - return null; + return labelId; } @Override public String getDefaultLabel() { - return null; + return defaultLabel; } From 8166e760814532476535039908c1f5c322ebe379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 8 Oct 2023 13:38:37 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E8=B4=A6=E5=A5=97=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/datacollection/DataCollectionEmployee.java | 1 + .../salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java | 1 + .../salaryformula/dto/SalaryFormulaEmployeeDTO.java | 3 +++ src/com/engine/salary/enums/UserStatusEnum.java | 8 ++++++++ .../salary/service/impl/SalaryAcctResultServiceImpl.java | 7 +++++++ 5 files changed, 20 insertions(+) diff --git a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java index c5fc21616..4a43063ef 100644 --- a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java +++ b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java @@ -70,6 +70,7 @@ public class DataCollectionEmployee { @SalaryFormulaVar(defaultLabel = "状态编码", labelId = 98624, dataType = "string") private String status; + private String statusName; //工号 @SalaryFormulaVar(defaultLabel = "工号", labelId = 98622, dataType = "string") diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 5f3b9c700..82c86bda0 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -106,6 +106,7 @@ public class SalaryAcctFormulaBO { .telephone(simpleEmployee.getTelephone()) .sex(sexName) .status(simpleEmployee.getStatus()) + .statusName(simpleEmployee.getStatusName()) .departmentName(simpleEmployee.getDepartmentName()) .departmentId(simpleEmployee.getDepartmentId()) .subcompanyName(simpleEmployee.getSubcompanyName()) diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java index ae5a91807..558a608aa 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java @@ -62,6 +62,9 @@ public class SalaryFormulaEmployeeDTO { //状态 private String status; + @SalaryFormulaVar(defaultLabel = "状态", labelId = 98622, dataType = "string") + private String statusName; + //工号 @SalaryFormulaVar(defaultLabel = "工号", labelId = 98622, dataType = "string") private String workcode; diff --git a/src/com/engine/salary/enums/UserStatusEnum.java b/src/com/engine/salary/enums/UserStatusEnum.java index bd4cc6670..cdf894769 100644 --- a/src/com/engine/salary/enums/UserStatusEnum.java +++ b/src/com/engine/salary/enums/UserStatusEnum.java @@ -103,5 +103,13 @@ public enum UserStatusEnum implements BaseEnum { .map(v -> HrmStatus.builder().id(v.value.toString()).name(v.defaultLabel).build()).collect(Collectors.toList()); } + public static UserStatusEnum parseByValue(Integer value) { + for (UserStatusEnum statusEnum : UserStatusEnum.values()) { + if (Objects.equals(statusEnum.getValue(), value)) { + return statusEnum; + } + } + return null; + } } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 35a9253cb..953910849 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -23,6 +23,7 @@ import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.SalaryValueTypeEnum; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum; @@ -396,6 +397,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 查询人员信息 List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + simpleEmployees.forEach(e->{ + UserStatusEnum userStatusEnum = UserStatusEnum.parseByValue(Integer.parseInt(e.getStatus())); + if(userStatusEnum != null){ + e.setStatusName(userStatusEnum.getDefaultLabel()); + } + }); // 查询个税扣缴义务人 Set taxAgentIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getTaxAgentId); List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); From 5f152a991b352dfc8f3d160e7d6cb2284c6f7f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 8 Oct 2023 15:44:09 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=85=B6=E4=BB=96=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctResultServiceImpl.java | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index be1a11f7c..b6b7c2d2d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -45,6 +45,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; @@ -304,8 +305,35 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public PageInfo> listPageByParam(SalaryAcctResultQueryParam queryParam) { - // 查询薪资核算人员(分页) - PageInfo page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); + PageInfo page = null; + //其他条件 + List otherConditions = queryParam.getOtherConditions(); + if (CollectionUtils.isNotEmpty(otherConditions)) { + List items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList()); + List list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items); + for (int i = 0; i < otherConditions.size(); i++) { + SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i); + Long itemId = otherCondition.getItemId(); + FilterEnum filter = otherCondition.getFilter(); + List params = otherCondition.getParams(); + list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList()); + } + List salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList()); + + if (CollectionUtils.isEmpty(salaryAcctEmpId)) { + //条件不满足直接返回空列表 + page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), new ArrayList<>(), SalaryAcctEmployeePO.class); + } else { + queryParam.setIds(salaryAcctEmpId); + // 查询薪资核算人员(分页) + page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); + } + } else { + // 查询薪资核算人员(分页) + page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam); + } + + // 查询薪资核算结果 List> data = listBySalaryAcctEmployees(page.getList(), queryParam); // 薪资核算结果的分页结果 @@ -398,9 +426,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 查询人员信息 List employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); - simpleEmployees.forEach(e->{ + simpleEmployees.forEach(e -> { UserStatusEnum userStatusEnum = UserStatusEnum.parseByValue(Integer.parseInt(e.getStatus())); - if(userStatusEnum != null){ + if (userStatusEnum != null) { e.setStatusName(userStatusEnum.getDefaultLabel()); } }); From dada3a06331231ccc80ef476ceb7dfa2ec912173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Oct 2023 10:43:43 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E5=8E=BB=E9=99=A4objectuutil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryItemServiceImpl.java | 3 +-- .../service/impl/SalarySobItemServiceImpl.java | 17 ++++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 3031ffeae..3c30540a4 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -32,7 +32,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import weaver.hrm.User; @@ -435,7 +434,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService ValidUtil.doValidator(param); // 获取薪资项目信息 SalaryItemPO salaryItemPO = salaryItemBiz.getById(param.getSalaryItemId()); - if (ObjectUtils.isEmpty(salaryItemPO)) { + if (salaryItemPO == null) { throw new SalaryRunTimeException("薪资项目不存在或已被删除"); } // 获取薪资账套中薪资项目信息 diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index c4e27cdea..d954fd240 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -27,7 +27,6 @@ import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; @@ -646,7 +645,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe private SalaryItemPO checkItemExists(Long salaryItemId, Map salaryItemsMap) { SalaryItemPO salaryItemPO = salaryItemsMap.get(salaryItemId); - if (ObjectUtils.isEmpty(salaryItemPO)){ + if (salaryItemPO != null) { throw new SalaryRunTimeException("保存失败!存在薪资项目不存在或已被删除"); } return salaryItemPO; @@ -737,7 +736,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe SalarySobItemFormDTO salarySobItemFormDTO = new SalarySobItemFormDTO(); salarySobItemFormDTO.setCanEdit(1); // 默认可以编辑 - if (ObjectUtils.isNotEmpty(param.getSalarySobId()) && ObjectUtils.isNotEmpty(param.getSalaryItemId())) { + if (param.getSalarySobId() != null && param.getSalaryItemId() != null) { // 查询薪资账套 SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId()); if (Objects.isNull(salarySobPO)) { @@ -745,19 +744,19 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe } // 查询薪资项目 List salarySobItemPOS = getSalarySobItemMapper().listSome(SalarySobItemPO.builder().salarySobId(param.getSalarySobId()).salaryItemId(param.getSalaryItemId()).build()); - if (CollectionUtils.isEmpty(salarySobItemPOS)){ + if (CollectionUtils.isEmpty(salarySobItemPOS)) { throw new SalaryRunTimeException("账套中薪资项目不存在"); } SalarySobItemPO salarySobItemPO = salarySobItemPOS.get(0); SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(salarySobItemPO.getSalaryItemId()); - if (ObjectUtils.isEmpty(salaryItemPO)){ + if (salaryItemPO == null) { throw new SalaryRunTimeException("薪资项目不存在或已被删除"); } //获取系统值 List salarySobDefaultItemPOS = getSalarySobDefaultItemMapper().listAll(); salarySobDefaultItemPOS = salarySobDefaultItemPOS.stream().filter(po -> po.getSysSalaryItemId() != 0).collect(Collectors.toList()); Map longIntegerMap = SalaryEntityUtil.convert2Map(salarySobDefaultItemPOS, SalarySobDefaultItemPO::getSysSalaryItemId, SalarySobDefaultItemPO::getCanDelete); - if (salaryItemPO.getSysSalaryItemId() != null){ + if (salaryItemPO.getSysSalaryItemId() != null) { salarySobItemPO.setCanDelete(longIntegerMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), 1)); } // 获取薪资项目公式 @@ -773,14 +772,14 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe .build()); String formulaContent = CollectionUtils.isEmpty(expressFormulas) ? "" : expressFormulas.get(0).getFormula(); - Integer valueType = ObjectUtils.isEmpty(salarySobItemPO.getValueType()) ? salaryItemPO.getValueType() : salarySobItemPO.getValueType(); + Integer valueType = salarySobItemPO.getValueType() == null ? salaryItemPO.getValueType() : salarySobItemPO.getValueType(); salarySobItemFormDTO .setId(salarySobItemPO.getId()) .setName(salaryItemPO.getName()) .setItemHide(hideItemIds.contains(salaryItemPO.getId()) ? 1 : 0) .setDataType(salaryItemPO.getDataType()) - .setRoundingMode(ObjectUtils.isEmpty(salarySobItemPO.getRoundingMode()) ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode()) - .setPattern(ObjectUtils.isEmpty(salarySobItemPO.getPattern()) ? salaryItemPO.getPattern() : salarySobItemPO.getPattern()) + .setRoundingMode(salarySobItemPO.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode()) + .setPattern(salarySobItemPO.getPattern() == null ? salaryItemPO.getPattern() : salarySobItemPO.getPattern()) .setValueType(valueType) .setFormulaId(salarySobItemPO.getFormulaId()) .setFormulaContent(CollectionUtils.isNotEmpty(expressFormulas) ? formulaContent : "") From d69aa46e33f42e1e0b4de25c98ff18034e43947f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Oct 2023 14:10:09 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../timer/AutoSyncAttendQuoteDataJob.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java diff --git a/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java b/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java new file mode 100644 index 000000000..7f93fd2f3 --- /dev/null +++ b/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java @@ -0,0 +1,76 @@ +package com.engine.salary.timer; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.datacollection.param.AttendQuoteCheckOperationParam; +import com.engine.salary.entity.datacollection.param.AttendQuoteDataSyncParam; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.impl.SalarySobServiceImpl; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.wrapper.AttendQuoteDataWrapper; +import com.engine.salary.wrapper.AttendQuoteWrapper; +import org.apache.commons.lang3.StringUtils; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName AutoSyncAttendQuoteData + * @date 2023/08/11 9:53 + * @description 自动同步所有薪资账套的考勤引用 + */ +public class AutoSyncAttendQuoteDataJob extends BaseCronJob { + + private String date; + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private AttendQuoteWrapper getAttendQuoteWrapper(User user) { + return ServiceUtil.getService(AttendQuoteWrapper.class, user); + } + private AttendQuoteDataWrapper getAttendQuoteDataWrapper(User user) { + return ServiceUtil.getService(AttendQuoteDataWrapper.class, user); + } + + @Override + public void execute() { + User tempUser = new User(); + tempUser.setUid(1); + tempUser.setLoginid("sysadmin"); + // 获取所有的薪资账套 + List salarySobList = getSalarySobService(tempUser).listAll(); + LocalDate localDate = SalaryDateUtil.dateToLocalDate(new Date()); + localDate.plusMonths(-1); + if (StringUtils.isNotBlank(date)) { + localDate = SalaryDateUtil.dateToLocalDate(SalaryDateUtil.dateStrToLocalDate(date)); + } + String dateStr = SalaryDateUtil.getFormatYearMonth(localDate); + BaseBean baseBean = new BaseBean(); + // 循环所有的账套 + salarySobList.stream().forEach(sob -> { + // 校验是否可以操作 + Boolean canSync = getAttendQuoteWrapper(tempUser).checkOperation(AttendQuoteCheckOperationParam.builder() + .salarySobId(sob.getId()) + .salaryYearMonthStr(dateStr) + .build()); + if (canSync) { + // 同步数据 + try { + getAttendQuoteDataWrapper(tempUser).syncAttendQuoteData(AttendQuoteDataSyncParam.builder() + .salarySobId(sob.getId()) + .salaryYearMonth(dateStr) + .build()); + } catch (Exception e) { + baseBean.writeLog("自动同步考勤数据出错:"+ e); + } + } + }); + } +} From 39520346dc0cc519f3fe0102ab9b2345fea9bb33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Oct 2023 14:17:15 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 17 ----------- src/com/engine/salary/biz/SISchemeBiz.java | 23 --------------- .../engine/salary/encrypt/AESEncryptUtil.java | 29 ++----------------- 3 files changed, 2 insertions(+), 67 deletions(-) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index d32a556b2..4ba839d57 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -2400,23 +2400,6 @@ public class SIAccountBiz extends Service { dto.setSocialPaySum(socialPaySum.toPlainString()); } - private List encryptSchemeDetail(List source) { - source.forEach(item -> { - item.setUpperLimit(AESEncryptUtil.encrypt(item.getUpperLimit())); - item.setFixedCost(AESEncryptUtil.encrypt(item.getFixedCost())); - item.setLowerLimit(AESEncryptUtil.encrypt(item.getLowerLimit())); - }); - return source; - } - - private List decryptSchemeDetail(List encryptList) { - encryptList.forEach(item -> { - item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit())); - item.setFixedCost(AESEncryptUtil.decrypt(item.getFixedCost())); - item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit())); - }); - return encryptList; - } /** * 查询台账id是否已经薪资核算核算过 diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 74dba143c..cb8374169 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -462,15 +462,6 @@ public class SISchemeBiz { } - private List encryptSchemeDetailList(List source) { - source.forEach(item -> { - item.setUpperLimit(AESEncryptUtil.encrypt(item.getUpperLimit())); - item.setFixedCost(AESEncryptUtil.encrypt(item.getFixedCost())); - item.setLowerLimit(AESEncryptUtil.encrypt(item.getLowerLimit())); - }); - return source; - } - private List decryptSchemeDetailList(List encryptList) { encryptList.forEach(item -> { item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit())); @@ -480,20 +471,6 @@ public class SISchemeBiz { return encryptList; } - private InsuranceSchemeDetailPO encryptSchemeDetail(InsuranceSchemeDetailPO item) { - item.setUpperLimit(AESEncryptUtil.encrypt(item.getUpperLimit())); - item.setFixedCost(AESEncryptUtil.encrypt(item.getFixedCost())); - item.setLowerLimit(AESEncryptUtil.encrypt(item.getLowerLimit())); - return item; - } - - private InsuranceSchemeDetailPO decryptSchemeDetail(InsuranceSchemeDetailPO item) { - item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit())); - item.setFixedCost(AESEncryptUtil.decrypt(item.getFixedCost())); - item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit())); - return item; - } - public int checkBeforeDeleteSocialscheme(Map params) { return getSIAccountUtilMapper().checkBeforeDeleteSocialscheme((Collection) params.get("ids")).get(0).getNum(); } diff --git a/src/com/engine/salary/encrypt/AESEncryptUtil.java b/src/com/engine/salary/encrypt/AESEncryptUtil.java index bcf5d0dba..76a12259a 100644 --- a/src/com/engine/salary/encrypt/AESEncryptUtil.java +++ b/src/com/engine/salary/encrypt/AESEncryptUtil.java @@ -4,7 +4,6 @@ import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; -import com.wbi.util.StringUtil; import org.apache.commons.lang3.StringUtils; import weaver.general.AES; import weaver.general.BaseBean; @@ -30,26 +29,13 @@ public class AESEncryptUtil { * @return 加密数据 */ public static String encrypt(String source) { - String isEncrypt = getSalarySysConfigValue(); //防止初始化老数据时二次加密 - if (StringUtils.isNotBlank(source) && OpenEnum.OPEN.getValue().equals(isEncrypt) && !source.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { + if (StringUtils.isNotBlank(source) && !source.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { return SalarySysConstant.PRE_SIGN_ENCRYPT + AES.encrypt(source, aesEncryptScrect); } return source; } - /** - * 应用设置是否开启加密 - * - * @return - */ - private static String getSalarySysConfigValue() { - SalarySysConfPO sysConfPO = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); - if (sysConfPO == null) { - return "1"; - } - return sysConfPO.getConfValue(); - } /** * AES解密 @@ -58,15 +44,11 @@ public class AESEncryptUtil { * @return 解密字符串 */ public static String decrypt(String encryptStr) { - SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); if (StringUtils.isNotBlank(encryptStr)) { if (encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { encryptStr = encryptStr.substring(4, encryptStr.length()); return AES.decrypt(encryptStr, aesEncryptScrect); - } - //第一版没有加AES_前缀为加密标识,所以初始解密时,需要根据是否有配置判断是否需要解密 - //未配置加密设置时,需要解密 - if (sysConfPo == null) { + } else { return AES.decrypt(encryptStr, aesEncryptScrect); } } @@ -81,13 +63,6 @@ public class AESEncryptUtil { */ public static String closeEncryptSetting(String encryptStr) { SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); -// if (StringUtils.isNotBlank(encryptStr) && encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { -// encryptStr = encryptStr.substring(4, encryptStr.length()); -// return AES.decrypt(encryptStr, aesEncryptScrect); -// } else if (sysConfPo == null && StringUtils.isNotBlank(encryptStr)) { -// return AES.decrypt(encryptStr, aesEncryptScrect); -// } -// return encryptStr; if (encryptStr == null) { return null; } else { From 2766ceb276e8959687a7e5a6af32e697088a84bd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Oct 2023 14:34:18 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DataJob.java => AutoSyncAttendQuoteJob.java} | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) rename src/com/engine/salary/timer/{AutoSyncAttendQuoteDataJob.java => AutoSyncAttendQuoteJob.java} (82%) diff --git a/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java b/src/com/engine/salary/timer/AutoSyncAttendQuoteJob.java similarity index 82% rename from src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java rename to src/com/engine/salary/timer/AutoSyncAttendQuoteJob.java index 7f93fd2f3..78baf3e7d 100644 --- a/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java +++ b/src/com/engine/salary/timer/AutoSyncAttendQuoteJob.java @@ -9,7 +9,7 @@ import com.engine.salary.service.impl.SalarySobServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.wrapper.AttendQuoteDataWrapper; import com.engine.salary.wrapper.AttendQuoteWrapper; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; @@ -24,9 +24,9 @@ import java.util.List; * @date 2023/08/11 9:53 * @description 自动同步所有薪资账套的考勤引用 */ -public class AutoSyncAttendQuoteDataJob extends BaseCronJob { +public class AutoSyncAttendQuoteJob extends BaseCronJob { - private String date; + private String preMonth; private SalarySobService getSalarySobService(User user) { return ServiceUtil.getService(SalarySobServiceImpl.class, user); @@ -47,10 +47,13 @@ public class AutoSyncAttendQuoteDataJob extends BaseCronJob { // 获取所有的薪资账套 List salarySobList = getSalarySobService(tempUser).listAll(); LocalDate localDate = SalaryDateUtil.dateToLocalDate(new Date()); - localDate.plusMonths(-1); - if (StringUtils.isNotBlank(date)) { - localDate = SalaryDateUtil.dateToLocalDate(SalaryDateUtil.dateStrToLocalDate(date)); + + int preMonthValue = -1; + if (preMonth != null && NumberUtils.isCreatable(preMonth)) { + preMonthValue = -1 * Integer.valueOf(preMonth); } + localDate = localDate.plusMonths(preMonthValue); + String dateStr = SalaryDateUtil.getFormatYearMonth(localDate); BaseBean baseBean = new BaseBean(); // 循环所有的账套 @@ -63,10 +66,12 @@ public class AutoSyncAttendQuoteDataJob extends BaseCronJob { if (canSync) { // 同步数据 try { + baseBean.writeLog("自动同步考勤数据开始:"+ sob.getId()+","+dateStr); getAttendQuoteDataWrapper(tempUser).syncAttendQuoteData(AttendQuoteDataSyncParam.builder() .salarySobId(sob.getId()) .salaryYearMonth(dateStr) .build()); + baseBean.writeLog("自动同步考勤数据结束:"+ sob.getId()+","+dateStr); } catch (Exception e) { baseBean.writeLog("自动同步考勤数据出错:"+ e); } From e570c1879ec5093de9039623b4ed111b764dd9db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Oct 2023 15:35:20 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E8=B4=A6=E5=A5=97=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sql/删除档案.txt | 26 +++++++++++++++++++ .../impl/SalarySobItemServiceImpl.java | 5 +++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 resource/sql/删除档案.txt diff --git a/resource/sql/删除档案.txt b/resource/sql/删除档案.txt new file mode 100644 index 000000000..2c4fa7372 --- /dev/null +++ b/resource/sql/删除档案.txt @@ -0,0 +1,26 @@ +一、删除指定扣缴义务人下的档案 +操作前做好数据备份 + +删除扣缴义务人下的档案(注意删除后,再添加进扣缴义务人,不会自动生成档案) + +1、查询hrsa_tax_agent表对应扣缴义务人id +select id from hrsa_tax_agent + +2、删除社保福利档案 +update hrsa_insurance_base_info set delete_type=3 where payment_organization = 扣缴义务人id +update hrsa_social_archives set delete_type=3 where payment_organization = 扣缴义务人id +update hrsa_fund_archives set delete_type=3 where payment_organization = 扣缴义务人id +update hrsa_other_archives set delete_type=3 where payment_organization = 扣缴义务人id + + +3、删除薪资档案 +update hrsa_salary_archive set delete_type=3 where tax_agent_id=扣缴义务人id + + +二、删除停薪员工档案 +update hrsa_salary_archive set delete_type=3 where run_status in ('STOP_FROM_PENDING','STOP_FROM_SUSPEND') + + + + +.\wkhtmltopdf.exe http://127.0.0.1:8080/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=1694053661638&recipient=92&type=phone C:\baidu.pdf \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index d954fd240..fa0a889fc 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -26,6 +26,7 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; import dm.jdbc.util.IdGenerator; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; @@ -44,6 +45,7 @@ import java.util.stream.Collectors; * @author qiantao * @version 1.0 **/ +@Slf4j public class SalarySobItemServiceImpl extends Service implements SalarySobItemService { private SalarySobItemBiz salarySobItemMapper = new SalarySobItemBiz(); @@ -645,7 +647,8 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe private SalaryItemPO checkItemExists(Long salaryItemId, Map salaryItemsMap) { SalaryItemPO salaryItemPO = salaryItemsMap.get(salaryItemId); - if (salaryItemPO != null) { + if (salaryItemPO == null) { + log.error("薪资项目:{}不存在", salaryItemId); throw new SalaryRunTimeException("保存失败!存在薪资项目不存在或已被删除"); } return salaryItemPO;