From abba78ead317a6d11214ad0a848d2d4374f10f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 31 May 2024 11:36:56 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=9A=90=E8=97=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalarySobItemServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 90d5a5b26..7f7239571 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -566,7 +566,20 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe String formulaContent = CollectionUtils.isEmpty(expressFormulas) ? "" : expressFormulas.get(0).getFormula(); Integer valueType = salarySobItemPO.getValueType() == null ? salaryItemPO.getValueType() : salarySobItemPO.getValueType(); - salarySobItemFormDTO.setId(salarySobItemPO.getId()).setName(salaryItemPO.getName()).setItemHide(Integer.valueOf(salarySobItemPO.getItemHide().toString())).setDataType(salaryItemPO.getDataType()).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 : "").setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "").setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "").setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()).setDescription(salarySobItemPO.getDescription()).setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0); + salarySobItemFormDTO + .setId(salarySobItemPO.getId()) + .setName(salaryItemPO.getName()) + .setItemHide(salarySobItemPO.getItemHide()==null?0:Integer.parseInt(salarySobItemPO.getItemHide().toString())) + .setDataType(salaryItemPO.getDataType()) + .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 : "") + .setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "") + .setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "") + .setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) + .setDescription(salarySobItemPO.getDescription()) + .setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0); } return salarySobItemFormDTO; } From 6b164ece2a832159218f27867ed90ec7351a7546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 31 May 2024 11:39:08 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=9A=90=E8=97=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalarySobItemServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 90d5a5b26..7f7239571 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -566,7 +566,20 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe String formulaContent = CollectionUtils.isEmpty(expressFormulas) ? "" : expressFormulas.get(0).getFormula(); Integer valueType = salarySobItemPO.getValueType() == null ? salaryItemPO.getValueType() : salarySobItemPO.getValueType(); - salarySobItemFormDTO.setId(salarySobItemPO.getId()).setName(salaryItemPO.getName()).setItemHide(Integer.valueOf(salarySobItemPO.getItemHide().toString())).setDataType(salaryItemPO.getDataType()).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 : "").setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "").setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "").setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()).setDescription(salarySobItemPO.getDescription()).setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0); + salarySobItemFormDTO + .setId(salarySobItemPO.getId()) + .setName(salaryItemPO.getName()) + .setItemHide(salarySobItemPO.getItemHide()==null?0:Integer.parseInt(salarySobItemPO.getItemHide().toString())) + .setDataType(salaryItemPO.getDataType()) + .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 : "") + .setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "") + .setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "") + .setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) + .setDescription(salarySobItemPO.getDescription()) + .setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0); } return salarySobItemFormDTO; } From b6331b952c940f201502f5a900e9a24fcf77a1f5 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 5 Jun 2024 11:02:59 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=201=E3=80=81=E7=A4=BE?= =?UTF-8?q?=E4=BF=9D=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=E8=A1=A5=E5=B7=AE?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF=EF=BC=8C?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9A=84=E6=98=AF=E8=A1=A5=E5=B7=AE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=9B=202=E3=80=81=E6=8A=A5=E8=A1=A8=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E4=B8=8D=E8=AE=BE=E7=BD=AE=E8=B5=B7=E5=A7=8B=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E6=97=B6oracle=E6=95=B0=E6=8D=AE=E5=BA=93=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InsuranceAccountDetailMapper.java | 8 +++++ .../InsuranceAccountDetailMapper.xml | 11 ++++++ .../impl/SalaryStatisticsPushServiceImpl.java | 2 +- .../service/impl/SIAccountServiceImpl.java | 36 ++++++++++++++++++- 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java index 2dec937ca..2a05a0c72 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java @@ -116,6 +116,14 @@ public interface InsuranceAccountDetailMapper { */ List querySupplementListByBillMonth(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); + /** + * 查询补差数据 + * @param billMonth 账单月份 + * @param paymentOrganization 个税扣缴义务人 + * @return + */ + List queryBalanceListByBillMonth(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); + /** * 查询正常缴纳数据 * @param billMonth 账单月份 diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml index 55b55947e..2f58bed17 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml @@ -541,6 +541,17 @@ AND t.payment_organization = #{paymentOrganization} + + SELECT t.id,t.employee_id,t.social_per_json,t.social_com_json, + t.social_scheme_id,t.fund_scheme_id,t.other_scheme_id, t.fund_per_json,t.fund_com_json,t.other_per_json, t.other_com_json,t.social_per_sum,t.social_com_sum, t.fund_per_sum,t.fund_com_sum,t.other_per_sum, diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index cbd761e95..66273cc37 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -3502,6 +3502,16 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { Map resultMap = new HashMap<>(); // resultMap.put("data", dataMap); // resultMap.put("items", addGroups); + List insuranceSchemeDetailPOS = new ArrayList<>(); + List schemeIdList = new ArrayList<>(); + schemeIdList.add(insuranceAccountDetailPO.getSocialSchemeId()); + schemeIdList.add(insuranceAccountDetailPO.getFundSchemeId()); + schemeIdList.add(insuranceAccountDetailPO.getOtherSchemeId()); + schemeIdList = schemeIdList.stream().filter(schemeId -> schemeId != null).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(schemeIdList)) { + insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(schemeIdList); + } + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); List> perList = new ArrayList<>(); List> comList = new ArrayList<>(); @@ -3521,6 +3531,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { map.put("insuranceName", item.getLabel()); map.put("insuranceId", insuranceId); map.put("insuranceValue", dataMap.get(domkey[0])); + map.put("validNum", schemeValidNumMap.getOrDefault(insuranceId + "-2", 2).toString()); if (map.get("insuranceValue") != null && !"".equals(map.get("insuranceValue"))) { perList.add(map); @@ -3534,6 +3545,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { map.put("insuranceName", item.getLabel()); map.put("insuranceId", insuranceId); map.put("insuranceValue", dataMap.get(domkey[0])); + map.put("validNum", schemeValidNumMap.getOrDefault(insuranceId + "-1", 2).toString()); if (map.get("insuranceValue") != null && !"".equals(map.get("insuranceValue"))) { comList.add(map); @@ -3562,10 +3574,15 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } //对比可进行缴纳福利项与上面的已有福利项生成map for (Map balancePayItem : balancePaymentGroup) { + Map target = (Map)targetMap.get(balancePayItem.get("insuranceId") + "-" + balancePayItem.get("paymentScope")); if (targetMap.get(balancePayItem.get("insuranceId") + "-" + balancePayItem.get("paymentScope")) == null) { balancePayItem.put("insuranceValue", ""); + balancePayItem.put("validNum", balancePayItem.get("validNum")); resultList.add(balancePayItem); + } else { + target.put("validNum", balancePayItem.get("validNum")); } + } } } diff --git a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java index 6714938a3..29464725d 100644 --- a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java @@ -4,12 +4,11 @@ import com.alibaba.fastjson.JSON; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.siaccount.param.BalanceAccountBaseParam; -import com.engine.salary.entity.siaccount.param.EditAccountDetailParam; import com.engine.salary.entity.siaccount.param.InspectAccountParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; @@ -24,7 +23,6 @@ import com.engine.salary.enums.siaccount.ResourceFromEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.enums.sicategory.IsPaymentEnum; import com.engine.salary.enums.sicategory.PaymentScopeEnum; -import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; @@ -39,17 +37,15 @@ import com.engine.salary.service.SIAccountService; import com.engine.salary.service.SIBalanceService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; -import com.engine.salary.util.db.IdGenerator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import java.math.BigDecimal; import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -175,6 +171,8 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -187,6 +185,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -198,6 +197,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -207,6 +207,8 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); fundMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -219,6 +221,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -230,6 +233,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -239,6 +243,9 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); + otherMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -251,6 +258,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -262,6 +270,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); diff --git a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java index a37f5298f..270fbb143 100644 --- a/src/com/engine/salary/service/impl/SIRepairServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRepairServiceImpl.java @@ -28,10 +28,7 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -230,6 +227,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -241,6 +240,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -251,6 +251,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -260,6 +261,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); fundMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -271,6 +274,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -281,6 +285,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -290,6 +295,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); otherMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -301,6 +308,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -311,6 +319,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -322,6 +331,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -333,6 +344,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -343,6 +355,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -358,6 +371,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -369,6 +384,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -379,6 +395,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -394,6 +411,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -405,6 +424,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -415,6 +435,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -430,6 +451,8 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(socialSchemePO.getSocialSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); socialMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -441,6 +464,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -451,6 +475,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -462,6 +487,9 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); + fundMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -473,6 +501,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -483,6 +512,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); @@ -494,6 +524,9 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); + Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); + otherMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); String welfareTypeSign = welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 1 ? "social" : (welfareTypeMap.get(Long.valueOf(k)) != null && welfareTypeMap.get(Long.valueOf(k)) == 2 ? "fund" : "other" ); @@ -505,6 +538,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); comMap.put("paymentScope", "公司"); comMap.put("paymentScopeSign", "com"); + comMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_COMPANY.getValue(), 2).toString()); resultList.add(comMap); } if (insuranceIdAndScopeList.contains(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue())) { @@ -515,6 +549,7 @@ public class SIRepairServiceImpl extends Service implements SIRepairService { perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k))); perMap.put("paymentScope", "个人"); perMap.put("paymentScopeSign", "per"); + perMap.put("validNum",schemeValidNumMap.getOrDefault(k + "-" + PaymentScopeEnum.SCOPE_PERSON.getValue(), 2).toString()); resultList.add(perMap); } }); From 91444e9495154f5a856a42c814b4f12ec4b1ff38 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 5 Jun 2024 16:54:53 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E9=AB=98=E7=BA=A7=E6=90=9C=E7=B4=A2ISNOTEMPT?= =?UTF-8?q?Y=20=E4=B8=AD=E6=96=87=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/enums/common/FilterEnum.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/enums/common/FilterEnum.java b/src/com/engine/salary/enums/common/FilterEnum.java index c3d1ea2a5..ae7de1221 100644 --- a/src/com/engine/salary/enums/common/FilterEnum.java +++ b/src/com/engine/salary/enums/common/FilterEnum.java @@ -90,7 +90,7 @@ public enum FilterEnum implements BaseEnum { return StringUtils::isEmpty; } }, - ISNOTEMPTY("ISNOTEMPTY", "包含", 1) { + ISNOTEMPTY("ISNOTEMPTY", "不为空", 1) { @Override public Predicate filter(List params) { return StringUtils::isNotEmpty; From 789b77ba0b0345ce5540ec3992d6c7ad0cffa483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 6 Jun 2024 14:54:58 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E6=A1=A3=E6=A1=88=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryArchiveExcelServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index fa07ed7c6..c655d2d93 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -382,16 +382,16 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // SalaryArchiveExcelBO.createExcelComment(excelComments, requireI18n + ',' + SalaryI18nUtil.getI18nLabel(127641, "多个账套之间用,分隔"), 0, 0, 3, 3); // int i = enableHr ? 10 : 9; if (isPendingList) { - excelComments.add(new ExcelComment(6, 0, 8, 2, SalaryI18nUtil.getI18nLabel(100458, "格式样例为'2022-01-01'、'2022/1/1'"))); + excelComments.add(new ExcelComment(7, 0, 9, 2, SalaryI18nUtil.getI18nLabel(100458, "格式样例为'2022-01-01'、'2022/1/1'"))); // excelComments.add(new ExcelComment(5, 0, 8, 2, SalaryI18nUtil.getI18nLabel(100458, "格式样例为'2022-01-01'、'2022/1/1'"))); } else if (isFixedList) { if (isInit) { - excelComments.add(new ExcelComment(6, 0, 8, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); - excelComments.add(new ExcelComment(7, 0, 9, 2, SalaryI18nUtil.getI18nLabel(100458, "格式样例为'2022-01-01'、'2022/1/1'"))); - excelComments.add(new ExcelComment(8, 0, 10, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); - } else if (isSalaryItemAdjust) { - excelComments.add(new ExcelComment(6, 0, 8, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,可填写如:入职,转正,调薪,晋升,降职,调岗,调岗调薪,离职,其他,初始化"))); excelComments.add(new ExcelComment(7, 0, 9, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); + excelComments.add(new ExcelComment(8, 0, 10, 2, SalaryI18nUtil.getI18nLabel(100458, "格式样例为'2022-01-01'、'2022/1/1'"))); + excelComments.add(new ExcelComment(9, 0, 11, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); + } else if (isSalaryItemAdjust) { + excelComments.add(new ExcelComment(7, 0, 9, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,可填写如:入职,转正,调薪,晋升,降职,调岗,调岗调薪,离职,其他,初始化"))); + excelComments.add(new ExcelComment(8, 0, 10, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); } } else if (isSuspendList) { // SalaryArchiveExcelBO.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(109736, "格式样例为'2022-01-01'、'2022/1/1'"), 0, 0, i + 1, i + 1); From 7a67253407a34375210c3ad7b1291cdb98053191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 6 Jun 2024 15:35:12 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 0638a4f0d..c62ade2bb 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.14.2.2405.02 +version=2.14.3.2406.01 openFormulaForcedEditing=false \ No newline at end of file From a1e7ec160c2ba9c08514a229ffabf2f31ca767cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 11 Jun 2024 10:10:45 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryTemplateServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java index f8ee03c5a..f6f7e8b18 100644 --- a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java @@ -317,7 +317,7 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate List newItems = new ArrayList<>(); for (SalaryTemplateSalaryItemListDTO templateItem : salaryItemSetting.getItems()) { SalarySobEmpFieldPO empFieldPO = getSalarySobEmpFieldMapper().getById(Long.valueOf(templateItem.getSalaryItemId())); - if (empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) { + if (empFieldPO != null && empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) { templateItem.setId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString()); templateItem.setSalaryItemId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString()); newItems.add(templateItem); @@ -341,7 +341,7 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate List newItems = new ArrayList<>(); for (SalaryTemplateSalaryItemListDTO templateItem : salaryItemSetting.getItems()) { SalarySobEmpFieldPO empFieldPO = getSalarySobEmpFieldMapper().getById(Long.valueOf(templateItem.getSalaryItemId())); - if (empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) { + if (empFieldPO != null && empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) { templateItem.setId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString()); templateItem.setSalaryItemId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString()); newItems.add(templateItem); From f073f6d90cadb0897ee628fcac9a935499309e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 11 Jun 2024 15:48:07 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E9=9D=9E=E6=AD=A3=E5=B8=B8=E4=BA=BA=E5=91=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index f4d5b3643..e7cc9af35 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -261,7 +261,7 @@ public class SalaryBillBO { } Util_Message.store(messageBean); } catch (IOException e) { - e.printStackTrace(); + log.error("消息发送失败",e); } } From 853482141fb0dbe6a27d43a35a9ed929ed6475f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 12 Jun 2024 10:45:32 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E5=B0=8F=E6=95=B0=E4=BD=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=8110=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryitem/param/SalaryItemSaveParam.java | 2 +- .../salary/entity/salarysob/dto/SalarySobItemFormDTO.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java index a200cea77..5cf5c64b9 100644 --- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java @@ -63,7 +63,7 @@ public class SalaryItemSaveParam { private Integer roundingMode; //保留小数位 - @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "小数位最多为8") + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 10, message = "小数位最多为10") private Integer pattern; /** diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java index f23df1512..3f797c9bf 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java @@ -53,7 +53,7 @@ public class SalarySobItemFormDTO { private Integer roundingMode; //保留小数位") - @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "小数位最多为8") + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 10, message = "小数位最多为10") private Integer pattern; //取值方式") From 7e988193c6b3536f84388ecce63ac6a645e660a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 12 Jun 2024 14:31:50 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E5=85=AC=E5=BC=8F=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=88=E6=9C=89=E5=A4=9A=E5=B0=91=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/常用查询.md | 2 +- src/com/engine/salary/constant/des.json | 26 ++++++++++++++- .../formlua/constant/FormluaConstant.java | 26 ++++++++++++++- .../engine/salary/formlua/core/QlExpress.java | 1 + .../formlua/func/date/DateTimeService.java | 7 ++++ .../func/date/DateTimeServiceImpl.java | 32 +++++++++++++++++++ 6 files changed, 91 insertions(+), 3 deletions(-) diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index 594b14bf8..13ba2242f 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -18,4 +18,4 @@ left join hrmresource e on e.id= result.employee_id left join hrsa_tax_agent t on a.tax_agent_id=t.id where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 and a.employee_id=人员id and t.name=扣缴义务人名称 - and effective_time <= now() and c.name='基本工资' order by effective_time desc \ No newline at end of file + c.name='基本工资' order by effective_time desc \ No newline at end of file diff --git a/src/com/engine/salary/constant/des.json b/src/com/engine/salary/constant/des.json index 0b35d5f80..f970e4448 100644 --- a/src/com/engine/salary/constant/des.json +++ b/src/com/engine/salary/constant/des.json @@ -980,7 +980,31 @@ "infinite": true } ] - } + }, + { + "name": "DAYSINMONTH", + "chineseName": "返回指定月的天数", + "description": "返回指定月的天数。", + "example": "DAYSINMONTH('2024-01-01')", + "result": "31", + "paramDescs": [ + "*日期*(必选)" + ], + "formatString": "DAYSINMONTH(日期)", + "paramArray": [], + "paramData": [], + "returnType": "number", + "type": "function", + "validForm": "days_in_month", + "paramCount": -1, + "paramStatuses": [ + { + "dataType": "date", + "must": true, + "infinite": true + } + ] + }, ], "dataType": "date", "name": "日期函数", diff --git a/src/com/engine/salary/formlua/constant/FormluaConstant.java b/src/com/engine/salary/formlua/constant/FormluaConstant.java index c3d7f4cb7..c88d7090d 100644 --- a/src/com/engine/salary/formlua/constant/FormluaConstant.java +++ b/src/com/engine/salary/formlua/constant/FormluaConstant.java @@ -985,7 +985,31 @@ public class FormluaConstant { " \"infinite\": true\n" + " }\n" + " ]\n" + - " }\n" + + " },\n" + + " {\n" + + " \"name\": \"DAYSINMONTH\",\n" + + " \"chineseName\": \"返回指定月的天数\",\n" + + " \"description\": \"返回指定月的天数。\",\n" + + " \"example\": \"DAYSINMONTH('2024-01-01')\",\n" + + " \"result\": \"31\",\n" + + " \"paramDescs\": [\n" + + " \"*日期*(必选)\"\n" + + " ],\n" + + " \"formatString\": \"DAYSINMONTH(日期)\",\n" + + " \"paramArray\": [],\n" + + " \"paramData\": [],\n" + + " \"returnType\": \"number\",\n" + + " \"type\": \"function\",\n" + + " \"validForm\": \"days_in_month\",\n" + + " \"paramCount\": -1,\n" + + " \"paramStatuses\": [\n" + + " {\n" + + " \"dataType\": \"date\",\n" + + " \"must\": true,\n" + + " \"infinite\": true\n" + + " }\n" + + " ]\n" + + " },\n" + " ],\n" + " \"dataType\": \"date\",\n" + " \"name\": \"日期函数\",\n" + diff --git a/src/com/engine/salary/formlua/core/QlExpress.java b/src/com/engine/salary/formlua/core/QlExpress.java index 68cd238d9..9660ff1fe 100644 --- a/src/com/engine/salary/formlua/core/QlExpress.java +++ b/src/com/engine/salary/formlua/core/QlExpress.java @@ -189,6 +189,7 @@ public class QlExpress { runner.addFunctionOfServiceMethod("CURRSECOND", dateTimeService, "currSecond", new Class[]{Object[].class}, ""); runner.addFunctionOfServiceMethod("MAXDATE", dateTimeService, "maxDate", new Class[]{Object[].class}, ""); runner.addFunctionOfServiceMethod("MINDATE", dateTimeService, "minDate", new Class[]{Object[].class}, ""); + runner.addFunctionOfServiceMethod("DAYSINMONTH", dateTimeService, "daysInMonth", new Class[]{Object[].class}, ""); // runner.addFunctionOfServiceMethod("DAYOFMONTH", dateTimeService, "dayOfMonth", new Class[]{Object[].class}, ""); //聚合函数 diff --git a/src/com/engine/salary/formlua/func/date/DateTimeService.java b/src/com/engine/salary/formlua/func/date/DateTimeService.java index 2b7dca962..7fbf04508 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeService.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeService.java @@ -89,4 +89,11 @@ import com.engine.salary.formlua.entity.parameter.DataType; */ DataType currSecond(Object... objects); + /** + * 获取月有多少天 + * @param objects + * @return + */ + DataType daysInMonth(Object... objects); + } diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java index 07fa4c8ae..2220ff86c 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java @@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.YearMonth; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -998,6 +999,37 @@ public class DateTimeServiceImpl implements DateTimeService { int year = cal.get(Calendar.SECOND); return new DataType(DataType.NUMBER, year); } + + @Override + public DataType daysInMonth(Object... objects) { + Class[] typeObjects = new Class[]{DateAndString.class}; + IgnoreParamFilter.commonFilter("YEAR", 1, 1, typeObjects, objects); + Object obj = objects[0]; + Object date = DateUtil.getContent(obj, formatter); + if (ExcelParamUtil.checkIsNull(date, ExcelParamUtil.CHECKLEVEL_STRING)) { + return new DataType(DataType.NUMBER, 0); + } + int year = 0; + try { + year = getDateTimeValue(date, "Y", "YEAR"); + } catch (ParseException e) { + logger.error("err", e); + throw new RuntimeException(e); + } + + IgnoreParamFilter.commonFilter("MONTH", 1, 1, typeObjects, objects); + int month = 0; + try { + month = getDateTimeValue(date, "M", "MONTH") + 1; + } catch (ParseException e) { + logger.error("err", e); + throw new RuntimeException(e); + } + + YearMonth yearMonth = YearMonth.of(year, month); + int daysInMonth = yearMonth.lengthOfMonth(); + return new DataType(DataType.NUMBER, daysInMonth); + } /*******以下为日期函数的一些公共逻辑********/ From 1983ba968c73513ab75eb1fd0e9cb00e8f210b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 12 Jun 2024 15:35:40 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=97=A5=E5=BF=97=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=8D=E9=9C=80=E8=A6=81=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryitem/bo/SalaryItemBO.java | 9 +++++++-- .../salary/formlua/func/compare/EqOperator.java | 4 ---- .../salary/formlua/func/compare/GreaterOperator.java | 4 ---- .../salary/formlua/func/compare/WOperatorDiv.java | 3 +-- .../salary/formlua/func/date/DateTimeServiceImpl.java | 3 +-- .../formlua/func/finance/FinanceServiceImpl.java | 1 - .../engine/salary/formlua/func/logic/IfOperator.java | 2 -- .../salary/formlua/func/logic/LogicServiceImpl.java | 1 - .../formlua/func/string/StringFormulaServiceImpl.java | 11 +---------- src/com/engine/salary/formlua/util/DateUtil.java | 1 - .../engine/salary/formlua/util/IgnoreParamFilter.java | 3 --- 11 files changed, 10 insertions(+), 32 deletions(-) diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java index 1048360fa..990ab41e8 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java @@ -40,8 +40,6 @@ public class SalaryItemBO { private static final BaseBean baseBean = new BaseBean(); - //强制开启账套的公式配置 - private static final Boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing")); @@ -86,6 +84,10 @@ public class SalaryItemBO { if (CollectionUtils.isEmpty(salaryItems)) { return Collections.emptyList(); } + + //强制开启账套的公式配置 + boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing")); + Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula); Map sysSalaryItemNameMap = SalaryEntityUtil.convert2Map(sysSalaryItemPOS, SysSalaryItemPO::getId, SysSalaryItemPO::getName); return salaryItems.stream().map(salaryItemPO -> { @@ -134,6 +136,9 @@ public class SalaryItemBO { if (CollectionUtils.isEmpty(salaryItems)) { return Collections.emptyList(); } + //强制开启账套的公式配置 + boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing")); + Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula); Map sysSalaryItemNameMap = SalaryEntityUtil.convert2Map(sysSalaryItemPOS, SysSalaryItemPO::getId, SysSalaryItemPO::getName); return salaryItems.stream().map(salaryItemPO -> { diff --git a/src/com/engine/salary/formlua/func/compare/EqOperator.java b/src/com/engine/salary/formlua/func/compare/EqOperator.java index 24ee31946..679149b83 100644 --- a/src/com/engine/salary/formlua/func/compare/EqOperator.java +++ b/src/com/engine/salary/formlua/func/compare/EqOperator.java @@ -1,6 +1,5 @@ package com.engine.salary.formlua.func.compare; -import com.alibaba.fastjson.JSON; import com.engine.salary.formlua.core.exception.ErrorType; import com.engine.salary.formlua.entity.parameter.DataType; import com.engine.salary.formlua.util.CompareUtil; @@ -37,7 +36,6 @@ public class EqOperator extends OperatorEqualsLessMore { public Object executeInner(Object... list) throws Exception { DataType result=new DataType(); result.setDataType(DataType.BOOL); - logger.info("等于号参数:"+JSON.toJSONString(list)); String oper="="; if(list.length!=2){ throw new RuntimeException("[=]"+ ErrorType.MAX_VAR_COUNT.name()); @@ -75,7 +73,6 @@ public class EqOperator extends OperatorEqualsLessMore { int i=0; for (;i"+secondParam); if((firstParam instanceof String || firstParam instanceof Character) && (secondParam instanceof String || secondParam instanceof Character)){ if(firstParam.toString().length()==1&&secondParam.toString().length()==1){ boolean r=firstParam.toString().equals(secondParam.toString()); diff --git a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java index f33b7dd5a..1540b887c 100644 --- a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java +++ b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java @@ -1,6 +1,5 @@ package com.engine.salary.formlua.func.compare; -import com.alibaba.fastjson.JSON; import com.engine.salary.formlua.entity.parameter.DataType; import com.engine.salary.formlua.util.CompareUtil; import com.engine.salary.formlua.util.DateUtil; @@ -22,7 +21,6 @@ public class GreaterOperator extends OperatorEqualsLessMore { result.setDataType(DataType.BOOL); // IgnoreParamFilter.filterCompareFunc(op1,op2,">"); String datatype = ExcelParamUtil.checkParamType(op1); - logger.info("大于号比较:" + JSON.toJSONString(op1) + "-->" + JSON.toJSONString(op2)); //对option的特殊处理,获取option的字符串后根据逗号分割,然后排序数组,数组长度不一致返回false,一致则循环对比直到同样下标的数据不一致返回false,否则为true try { if (datatype.equals(DataType.OPTION)) { @@ -77,8 +75,6 @@ public class GreaterOperator extends OperatorEqualsLessMore { } result.setContent(dateResult); } else { - logger.info("参数1:" + ExcelParamUtil.convertParamValToNumber(op1) + ""); - logger.info("参数2:" + ExcelParamUtil.convertParamValToNumber(op2) + ""); boolean r; if (ExcelParamUtil.getParamType(op1).toLowerCase().equals("double") || ExcelParamUtil.getParamType(op2).toLowerCase().equals("double")) { r = OperatorEqualsLessMore.executeInner(">", ExcelParamUtil.convertParamValToNumber(op1), ExcelParamUtil.convertParamValToNumber(op2)); diff --git a/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java b/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java index d4d612bf8..8011e3649 100644 --- a/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java +++ b/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java @@ -52,10 +52,9 @@ public class WOperatorDiv extends OperatorMultiDiv { newList[1] = secondParam; try { Object r = super.executeInner(newList); - logger.info("乘法运算:" + r.toString()); result.setContent(new BigDecimal(r + "")); } catch (Exception e) { - logger.info("除法计算异常返回0:" + e.getMessage()); + logger.error("除法计算异常返回0:" + e.getMessage()); result.setContent(0); } return result; diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java index 2220ff86c..5f2ffedd0 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java @@ -550,7 +550,6 @@ public class DateTimeServiceImpl implements DateTimeService { date = lastday; break; } - logger.info("firstday:" + firstday + " lastday:" + lastday); return new DataType(DataType.STRING, date); } @@ -1288,7 +1287,7 @@ public class DateTimeServiceImpl implements DateTimeService { r = true; break; } catch (ParseException e) { - logger.info(e.getMessage()); + logger.error(e.getMessage()); r = false; } } diff --git a/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java b/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java index acda12221..e3b4f1d24 100644 --- a/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java +++ b/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java @@ -79,7 +79,6 @@ public class FinanceServiceImpl implements FinanceService{ int intLen = integerNum.length(); for (int i = 0; i < intLen; i++) { String n = integerNum.substring(i, i+1); - logger.info("转换中文:"+n); int p = intLen - i - 1; int q = p / 4; int m = p % 4; diff --git a/src/com/engine/salary/formlua/func/logic/IfOperator.java b/src/com/engine/salary/formlua/func/logic/IfOperator.java index 44430d341..b826836fb 100644 --- a/src/com/engine/salary/formlua/func/logic/IfOperator.java +++ b/src/com/engine/salary/formlua/func/logic/IfOperator.java @@ -1,6 +1,5 @@ package com.engine.salary.formlua.func.logic; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.salary.formlua.core.exception.ExcelRunTimeException; import com.engine.salary.formlua.entity.parameter.DataType; @@ -26,7 +25,6 @@ public class IfOperator extends OperatorIf { throw new ExcelRunTimeException("IF函数只允许三个参数"); } Object obj = list.get(0).getObject(parent); - logger.info("IF参数:" + JSON.toJSONString(obj)); boolean isDataTypeBool = false; DataType boolDtaType = null; if (obj != null && obj instanceof DataType) { diff --git a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java index 395b9acdf..f550fd861 100644 --- a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java +++ b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java @@ -477,7 +477,6 @@ public class LogicServiceImpl implements LogicService { Object obj = objects[i - 1]; String typeStr = ExcelParamUtil.getParamType(obj); typeStr = ExcelParamUtil.checkParamType(typeStr); - logger.info(typeStr); if (type == null) { type = typeStr; } else { diff --git a/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java b/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java index bf96613c3..f18557327 100644 --- a/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java +++ b/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java @@ -236,7 +236,6 @@ public class StringFormulaServiceImpl implements StringFormulaService { int replaceLength=(repIdx-1)+repLenth; if(replaceLength>sourceStr.length()){ // throw new RunTimeException(errorJson.getString("msg")); - logger.info("REPLACE函数替换位置超过了字符长度"); replaceLength=sourceStr.length(); } String cutStr=sourceStr.substring(repIdx-1,replaceLength); @@ -463,7 +462,6 @@ public class StringFormulaServiceImpl implements StringFormulaService { sex = "男"; } } - logger.info(sex); return new DataType(DataType.STRING,sex); } @@ -471,7 +469,6 @@ public class StringFormulaServiceImpl implements StringFormulaService { public DataType nativePlace(String idCard){ int nativePlaceCode=Integer.parseInt(idCard.substring(0, 6)); String nativePlace= NativePlace.getNativePlace(nativePlaceCode); - logger.info("您所在的地区为:\n" + nativePlace); return new DataType(DataType.STRING,nativePlace); } @@ -489,7 +486,6 @@ public class StringFormulaServiceImpl implements StringFormulaService { if(dataType!=null && dataType.getContent()!=null){ age=dataType.getContent(); } - logger.info("年龄:"+age); } } catch (ParseException e) { logger.error("err",e); @@ -526,7 +522,6 @@ public class StringFormulaServiceImpl implements StringFormulaService { } String birth=year+"-"+month+"-"+day; - logger.info("生日为:"+birth); result=birth; break; @@ -756,12 +751,10 @@ public class StringFormulaServiceImpl implements StringFormulaService { if(fieldType.equalsIgnoreCase("string")){ if(content!=null){ try { - logger.info("isJson函数的JSON字符转换:"+content+""); JSON.parseObject(content+""); resultDataType=new DataType(DataType.BOOL,true); } catch (Exception e) { - logger.info("err",e); - logger.info("不是正常的JSON字符"); + logger.error("err",e); resultDataType=new DataType(DataType.BOOL,false); } }else{ @@ -800,13 +793,11 @@ public class StringFormulaServiceImpl implements StringFormulaService { if(fieldType.equalsIgnoreCase("string")){ if(content!=null){ try { - logger.info("isJson函数的JSON字符转换:"+content+""); JSONObject jsonObject=JSON.parseObject(content+""); Object jsonValue=jsonObject.get(objectKey+""); resultDataType=new DataType(DataType.STRING,jsonValue==null?"":jsonValue.toString()); } catch (Exception e) { logger.info("err",e); - logger.info("不是正常的JSON字符"); resultDataType=new DataType(DataType.STRING,""); } }else{ diff --git a/src/com/engine/salary/formlua/util/DateUtil.java b/src/com/engine/salary/formlua/util/DateUtil.java index 64e97e2bd..5eddb6eb0 100644 --- a/src/com/engine/salary/formlua/util/DateUtil.java +++ b/src/com/engine/salary/formlua/util/DateUtil.java @@ -87,7 +87,6 @@ public class DateUtil { try { format.setLenient(false); format.parse(dateString); - logger.info(dateString); } catch (ParseException e) { // logger.error("err",e); convertSuccess=false; diff --git a/src/com/engine/salary/formlua/util/IgnoreParamFilter.java b/src/com/engine/salary/formlua/util/IgnoreParamFilter.java index 31f670347..b8db227e4 100644 --- a/src/com/engine/salary/formlua/util/IgnoreParamFilter.java +++ b/src/com/engine/salary/formlua/util/IgnoreParamFilter.java @@ -1,6 +1,5 @@ package com.engine.salary.formlua.util; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.salary.formlua.core.exception.ErrorType; import com.engine.salary.formlua.entity.parameter.DataType; @@ -39,7 +38,6 @@ public class IgnoreParamFilter { * @return */ public static boolean isEmployee(Object object) { - logger.info("校验人员参数" + JSON.toJSONString(object)); // if (object instanceof DataType) { // DataType dataType = (DataType) object; // if (dataType.getComponentKey() != null && dataType.getComponentKey().equalsIgnoreCase(ComponentType.Employee.toString())) { @@ -227,7 +225,6 @@ public class IgnoreParamFilter { * @throws RuntimeException */ public static void filterAggFunc(String func, Object... objects) throws RuntimeException { - logger.info("聚合参数:" + JSON.toJSONString(objects)); Integer number = getSetFuncNumber(func); Map map = new HashMap<>(); boolean mustNumber = false; From 4798f5d4a6f35b8e907b85a702bfb21c7092683d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 12 Jun 2024 17:35:06 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=86=85=E5=AD=98=E6=BA=A2=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctResultServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index c3d96f1ef..a1c7b9b90 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -219,10 +219,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List> partition = Lists.partition((List) salaryAcctEmployeeIds, 500); List salaryAcctResultPOS = new ArrayList<>(); partition.forEach(empIds -> { - salaryAcctResultPOS.addAll(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).build())); + List resultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).build()); + encryptUtil.decryptList(resultPOS, SalaryAcctResultPO.class); + salaryAcctResultPOS.addAll(resultPOS); }); // 解密 - encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); return salaryAcctResultPOS; } @@ -789,7 +790,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe acctResults = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())).collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); } List lockEmpIds = salaryAcctEmployeePOS.stream().filter(po -> LockStatusEnum.LOCK.getValue().equals(po.getLockStatus())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(lockEmpIds)){ + if (CollUtil.isNotEmpty(lockEmpIds)) { List acctResultPOS = listBySalaryAcctEmployeeIds(lockEmpIds); Map acctResultMaps = Optional.ofNullable(acctResultPOS).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); acctResults.putAll(acctResultMaps); From db391f01c4b212f234817c7e44f193e2f359ffd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 13 Jun 2024 13:39:24 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=86=85=E5=AD=98=E6=BA=A2=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsEmployeeWrapper.java | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 46ade27fb..1350df88a 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -24,6 +24,7 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelUtilPlus; 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 org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -137,6 +138,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { /** * 获取员工发薪明细列表 + * * @param queryParam */ public Map salaryList(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { @@ -147,7 +149,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); // 获取薪资核算结果 - SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); + SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); Map countResultMap = Maps.newHashMap(); @@ -183,7 +185,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 结果 if (queryParam.isExport()) { resultMap.put("columns", weaTableColumns); - resultMap.put("salaryItems",salaryStatisticsEmployeeDetailResult.getSalaryItemList()); + resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList()); resultMap.put("countResult", countResultMap); } else { WeaTable table = new WeaTable(); @@ -205,6 +207,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { /** * 获取员工发薪明细列表 + * * @param queryParam */ public Map salaryListSum(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { @@ -215,25 +218,37 @@ public class SalaryStatisticsEmployeeWrapper extends Service { queryParam.setExport(true); // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); - // 获取薪资核算结果 - SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); - List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); + List employeePOS = salaryAcctEmployeePageInfo.getList(); Map sumResultMap = Maps.newHashMap(); - if (CollectionUtils.isNotEmpty(records)) { - List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); - for (SalaryItemPO item : salaryItems) { - BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); - String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; - for (Map record : records) { - if (record.containsKey(itemKey)) { - if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { - sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); + + List> empParts = Lists.partition(employeePOS, 500); + + for (int i = 0; i < empParts.size(); i++) { + // 获取薪资核算结果 + SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(empParts.get(i)); + List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); + + if (CollectionUtils.isNotEmpty(records)) { + List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); + for (SalaryItemPO item : salaryItems) { + BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); + String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; + for (Map record : records) { + if (record.containsKey(itemKey)) { + if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); + } } } + Object o = sumResultMap.get(itemKey + "_n"); + if (o != null) { + sumBigDecimal = sumBigDecimal.add((BigDecimal) o); + } + sumResultMap.put(itemKey + "_n", sumBigDecimal); + // 薪资项目合计 + sumResultMap.put(itemKey, ReportDataUtil.thousandthConvert(sumBigDecimal.toString())); } - // 薪资项目合计 - sumResultMap.put(itemKey, ReportDataUtil.thousandthConvert(sumBigDecimal.toString())); } } resultMap.put("sumRow", sumResultMap); @@ -263,12 +278,12 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 合计 List sumRow = new ArrayList<>(); sumRow.add("总计"); - for (int i=1; i exportDetailList(SalaryStatisticsEmployeeDetailQueryParam queryParam) { From 1dd3439ce3133bff85d41c8b9c0bc196da0dcb5d Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 13 Jun 2024 13:59:43 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E5=B0=8F=E6=95=B0=E4=BD=8D=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 51 +++++++++++++++++-- .../service/impl/SIBalanceServiceImpl.java | 4 +- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 66273cc37..f95fb8244 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -3502,11 +3502,56 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { Map resultMap = new HashMap<>(); // resultMap.put("data", dataMap); // resultMap.put("items", addGroups); + + // 获取当前放方案信息 + InsuranceArchivesSocialSchemePO socialSchemePO = new InsuranceArchivesSocialSchemePO(); + InsuranceArchivesFundSchemePO fundSchemePO = new InsuranceArchivesFundSchemePO(); + InsuranceArchivesOtherSchemePO otherSchemePO = new InsuranceArchivesOtherSchemePO(); + List insuranceSchemeDetailPOS = new ArrayList<>(); List schemeIdList = new ArrayList<>(); - schemeIdList.add(insuranceAccountDetailPO.getSocialSchemeId()); - schemeIdList.add(insuranceAccountDetailPO.getFundSchemeId()); - schemeIdList.add(insuranceAccountDetailPO.getOtherSchemeId()); + if (insuranceAccountDetailPO.getSocialSchemeId() == null) { + List socialSchemePOList = getSocialSchemeMapper().getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(insuranceAccountDetailPO.getEmployeeId()) + .paymentOrganization(insuranceAccountDetailPO.getPaymentOrganization()) + .build()); + if (socialSchemePOList.size() > 0) { + encryptUtil.decryptList(socialSchemePOList, InsuranceArchivesSocialSchemePO.class); + socialSchemePO = socialSchemePOList.get(0); + } + schemeIdList.add(socialSchemePO.getSocialSchemeId()); + } else { + schemeIdList.add(insuranceAccountDetailPO.getSocialSchemeId()); + } + + if (insuranceAccountDetailPO.getFundSchemeId() == null) { + List fundSchemePOList = getFundSchemeMapper().getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(insuranceAccountDetailPO.getEmployeeId()) + .paymentOrganization(insuranceAccountDetailPO.getPaymentOrganization()) + .build()); + if (fundSchemePOList.size() > 0) { + encryptUtil.decryptList(fundSchemePOList, InsuranceArchivesFundSchemePO.class); + fundSchemePO = fundSchemePOList.get(0); + } + schemeIdList.add(fundSchemePO.getFundSchemeId()); + } else { + schemeIdList.add(insuranceAccountDetailPO.getFundSchemeId()); + } + + if (insuranceAccountDetailPO.getOtherSchemeId() == null) { + List otherSchemePOList = getOtherSchemeMapper().getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() + .employeeId(insuranceAccountDetailPO.getEmployeeId()) + .paymentOrganization(insuranceAccountDetailPO.getPaymentOrganization()) + .build()); + if (otherSchemePOList.size() > 0) { + encryptUtil.decryptList(otherSchemePOList, InsuranceArchivesOtherSchemePO.class); + otherSchemePO = otherSchemePOList.get(0); + } + schemeIdList.add(otherSchemePO.getOtherSchemeId()); + } else { + schemeIdList.add(insuranceAccountDetailPO.getOtherSchemeId()); + } + schemeIdList = schemeIdList.stream().filter(schemeId -> schemeId != null).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(schemeIdList)) { insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(schemeIdList); diff --git a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java index 29464725d..b9ec0de27 100644 --- a/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIBalanceServiceImpl.java @@ -207,7 +207,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(fundSchemePO.getFundSchemeId()); - List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(fundSchemePO.getFundSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); fundMap.forEach((k, v) -> { String welfareTypeName = welfareTypeMap.get(Long.valueOf(k)) == 1 ? "社保" : (welfareTypeMap.get(Long.valueOf(k)) == 2 ? "公积金" : "企业年金及其它福利" ); @@ -243,7 +243,7 @@ public class SIBalanceServiceImpl extends Service implements SIBalanceService { Map otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap().getClass()); //查询该福利方案下开启缴纳的福利项 List insuranceIdAndScopeList = payInsuranceIdAndScopeList(otherSchemePO.getOtherSchemeId()); - List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(socialSchemePO.getSocialSchemeId())); + List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().listBySchemeIds(Collections.singletonList(otherSchemePO.getOtherSchemeId())); Map schemeValidNumMap = SalaryEntityUtil.convert2Map(insuranceSchemeDetailPOS, po -> po.getInsuranceId() + "-" + po.getPaymentScope(), InsuranceSchemeDetailPO::getValidNum); otherMap.forEach((k, v) -> { From 64e34d6d085e2f2bb3fc7dcb8f94861a39f831dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 13 Jun 2024 17:46:37 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E9=A2=84?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryBill/param/SalaryPreviewParam.java | 32 +++ .../salary/service/SalaryBillService.java | 12 ++ .../salary/service/SalarySendService.java | 7 + .../service/impl/SalaryBillServiceImpl.java | 2 +- .../service/impl/SalarySendServiceImpl.java | 186 ++++++++++++++++++ .../salary/web/SalaryBillController.java | 15 ++ .../salary/wrapper/SalarySendWrapper.java | 4 + 7 files changed, 257 insertions(+), 1 deletion(-) create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java new file mode 100644 index 000000000..8d48e5118 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 工资单预览参数 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryPreviewParam { + + /** + * 工资单id + */ + private Long salaryInfoId; + + /** + * 员工id + */ + private Long recipient; + +} diff --git a/src/com/engine/salary/service/SalaryBillService.java b/src/com/engine/salary/service/SalaryBillService.java index 530c3080e..4878df87b 100644 --- a/src/com/engine/salary/service/SalaryBillService.java +++ b/src/com/engine/salary/service/SalaryBillService.java @@ -1,7 +1,10 @@ package com.engine.salary.service; +import com.engine.salary.entity.salaryBill.dto.SalaryBillSendDTO; import com.engine.salary.entity.salaryBill.param.SalaryExportPdfParam; import com.engine.salary.entity.salaryBill.param.SalarySendGrantParam; +import com.engine.salary.entity.salaryBill.po.SalarySendPO; +import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import java.util.List; import java.util.Map; @@ -52,6 +55,15 @@ public interface SalaryBillService { String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam); + /** + * 构建发放参数 + * @param salarySend + * @param taxAgentName + * @param salaryTemplate + * @return + */ + SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate); + /** * 工资单撤回 * diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index 72fc71423..4f570039b 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -218,4 +218,11 @@ public interface SalarySendService { List getByIds(List salarySendId); List listSome(SalarySendPO param); + + /** + * 工资单预览 + * @param param + * @return + */ + Map preview(SalaryPreviewParam param); } diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index eaf9c0be1..060f15cb2 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -337,7 +337,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService * @param salaryTemplate * @return */ - private SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) { + public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) { // 发送通道 Set sendChannels = SalaryBillBO.buildSendChannels(salaryTemplate); if (CollectionUtils.isEmpty(sendChannels)) { diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index efd438444..5e61fec2d 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1834,4 +1834,190 @@ public class SalarySendServiceImpl extends Service implements SalarySendService public List listSome(SalarySendPO param) { return getSalarySendMapper().listSome(param); } + + @Override + public Map preview(SalaryPreviewParam param) { + Long salaryInfoId = param.getSalaryInfoId(); + Long recipient = param.getRecipient(); + + if (salaryInfoId == null) { + throw new SalaryRunTimeException("工资单记录不存在!"); + } + SalarySendInfoPO po = new SalarySendInfoPO(); + po.setDeleteType(0); + po.setId(salaryInfoId); + + List salarySendInfos = salarySendInfoMapper.listSome(po); + if (CollectionUtils.isEmpty(salarySendInfos)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100511, "工资单信息不存在")); + } + + SalarySendInfoPO salarySendInfo = salarySendInfos.get(0); + + // 获取默认模板信息 + SalarySendPO salarySendPO = getSalarySendMapper().getById(salarySendInfo.getSalarySendId()); + if (salarySendPO == null) { + throw new SalaryRunTimeException("工资单不存在"); + } + + + SalarySendPO sendPo = new SalarySendPO(); + sendPo.setDeleteType(0); + sendPo.setId(salarySendInfo.getSalarySendId()); + List salarySends = mapper.listSome(sendPo); + if (CollectionUtils.isEmpty(salarySends)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在")); + } + SalarySendPO salarySend = salarySends.get(0); + Date salaryMonth = salarySend.getSalaryMonth(); + + + // 获取模板 + SalarySobPO salarySob = getSalarySobService(user).getById(salarySend.getSalarySobId()); + TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); + List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Arrays.asList(salarySend.getSalarySobId(), salarySob.getId())); + if (CollectionUtils.isEmpty(salaryTemplates)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送")); + } + SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(sendPo, taxAgentPO.getName(), salaryTemplates.get(0)); + + SalaryTemplatePO salaryTemplate = salaryBillSendDTO.getSalaryTemplate(); + if (salaryTemplate==null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100513, "没有默认模板,无法查看")); + } + + // 判断是否是补发 + boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType()); + + SalaryAcctResultPO acctPo = new SalaryAcctResultPO(); + acctPo.setDeleteType(0); + acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); + acctPo.setEmployeeId(recipient); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); + + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("薪资核算记录不存在!"); + } + List> salaryAcctResultS = null; + if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE) && !isReplenish) { + // 该记录回算过,并且获取的不是回算后的工资单 + salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { + Map map = new LinkedHashMap<>(); + map.put("salaryItemId", m.getSalaryItemId()); + map.put("resultValue", m.getOriginResultValue()); + return map; + }).collect(Collectors.toList()); + } else { + salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { + Map map = new LinkedHashMap<>(); + map.put("salaryItemId", m.getSalaryItemId()); + map.put("resultValue", m.getResultValue()); + return map; + }).collect(Collectors.toList()); + } + + + Map map = new LinkedHashMap<>(); + map.put("tenantName", ""); + map.put("sendTime", SalaryDateUtil.getFormatLocalDateTime(salarySendInfo.getSendTime())); + List listDTOS = JSONArray.parseArray(isReplenish ? salaryTemplate.getReplenishSalaryItemSetting() : salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); + Optional optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst(); + SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null); + List itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList()); + List> finalSalaryAcctResultS = salaryAcctResultS; + itemSetListDTOS.stream().forEach(item -> { + item.getItems() + .forEach(e -> { + if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) { + e.setSalaryItemValue(""); + } else { + Object o = finalSalaryAcctResultS.stream() + .filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst() + .orElse(new HashMap<>()) + .get("resultValue"); + e.setSalaryItemValue(o == null ? "" : (String) o); + } + }); + }); + + + /** + * 过滤空 + */ + if (Objects.equals(1, salaryTemplate.getSalaryItemNullStatus())) { + for (SalaryTemplateSalaryItemSetListDTO itemSetListDTO : itemSetListDTOS) { + List items = itemSetListDTO.getItems(); + List collect = items.stream().filter(item -> StringUtils.isNotBlank(item.getSalaryItemValue())).collect(Collectors.toList()); + itemSetListDTO.setItems(collect); + } + } + + /** + * 过滤0 + */ + if (Objects.equals(1, salaryTemplate.getSalaryItemZeroStatus())) { + for (SalaryTemplateSalaryItemSetListDTO itemSetListDTO : itemSetListDTOS) { + List items = itemSetListDTO.getItems(); + List collect = items.stream() + .filter(item -> SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue()) == null + || BigDecimal.ZERO.compareTo(SalaryEntityUtil.string2BigDecimal(item.getSalaryItemValue())) != 0) + .collect(Collectors.toList()); + itemSetListDTO.setItems(collect); + } + } + + DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); + map.put("employeeInformation", employeeInformation); + map.put("salaryGroups", itemSetListDTOS); + + salaryTemplate.setTheme(getBillTitle(salaryTemplate.getTheme(), salaryMonth, recipient)); + // 工资单水印文本型动态变量 == 处理 + handleSalaryWatermark(salaryTemplate, salarySendInfo, recipient); + map.put("salaryTemplate", salaryTemplate); + map.put("salaryAcctResult", salaryAcctResultS); + + // 工资单确认按钮 + if (NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0) { + // 开启了工资单确认 + Integer ackStatus = salarySendInfo.getBillConfirmStatus(); + if (ackStatus == null || ackStatus != BillConfimStatusEnum.CONFIRMED.getValue()) { + map.put("showAck", "1"); + } else { + map.put("showAck", "0"); + } + map.put("sendEmployeeId", salarySendInfo.getSendEmployeeId()); + } else { + map.put("showAck", "0"); + } + + + // 工资单反馈 + if (NumberUtils.compare(salaryTemplate.getFeedbackStatus(), 1) == 0) { + // 开启了工资单反馈按钮 + Integer confirmStatus = salarySendInfo.getBillConfirmStatus(); + map.put("showFeedback", "1"); + // 除非确认状态为已确认否则可以一直反馈 + if (NumberUtils.compare(salaryTemplate.getAckFeedbackStatus(), 1) == 0 && confirmStatus != null && confirmStatus == BillConfimStatusEnum.CONFIRMED.getValue()) { + map.put("showFeedback", "0"); + } + map.put("sendEmployeeId", salarySendInfo.getSendEmployeeId()); + } else { + map.put("showFeedback", "0"); + } + + // 记录查看日志 + String targetName = taxAgentPO.getName() + "-" + SalaryDateUtil.getFormatYearMonth(salarySendInfo.getSalaryMonth()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(salarySendInfo.getId())); + loggerContext.setTargetName(targetName); + loggerContext.setOperateType(OperateTypeEnum.READ.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "预览工资单") + ": " + targetName + " " + salaryInfoId); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "预览工资单") + ": " + targetName); + SalaryElogConfig.mySalaryBillLoggerTemplate.write(loggerContext); + return map; + } } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index c94be9966..10c6d9c31 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -323,6 +323,20 @@ public class SalaryBillController { return new ResponseResult(user).run(getSalarySendWrapper(user)::getBaseInfo, id); } + /** + * 预览工资单 + * + * @param param + * @return + */ + @POST + @Path("/preview") + @Produces(MediaType.APPLICATION_JSON) + public String preview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryPreviewParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::preview, param); + } + /** * 工资单发放信息列表的高级搜索 * @@ -563,6 +577,7 @@ public class SalaryBillController { /** * 下载pdf前先进行校验 生成 + * * @param request * @param response * @return diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 210c69501..725931b80 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -219,6 +219,10 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy return getSalarySendService(user).getBaseInfo(id); } + public Map preview(SalaryPreviewParam param) { + return getSalarySendService(user).preview(param); + } + /** * 工资单发放信息列表的高级搜索 * From 5b7533e908edaf9adfb7ba87ba9509b4215bf80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 14 Jun 2024 13:46:59 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=81=87=E6=9C=9F?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attend/service/impl/RemoteAttend4SalaryServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java index 6aeab513e..99553f193 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -18,6 +18,7 @@ import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.general.Util; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -172,7 +173,7 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt public List> getBalanceOfLeaveColumns() { Map paramsMap = new HashMap(); paramsMap.put("dateScope", "6"); - paramsMap.put("selectedYear", 2023); + paramsMap.put("selectedYear", LocalDate.now().getYear()); paramsMap.put("dataScope", "3"); paramsMap.put("resourceId", 92); paramsMap.put("status", "9"); From 0c0c754a9d94fd77e3baefcdece1979719e45107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Jun 2024 11:01:58 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/DM/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/GS/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/GS/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/JC/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/JC/sql202406180403.sql | 70 +++++++++++++++ resource/sqlupgrade/Mysql/sql202406180103.sql | 10 +++ resource/sqlupgrade/Mysql/sql202406180403.sql | 29 +++++++ .../sqlupgrade/Oracle/sql202406180103.sql | 18 ++++ .../sqlupgrade/Oracle/sql202406180403.sql | 69 +++++++++++++++ resource/sqlupgrade/PG/sql202406180103.sql | 9 ++ resource/sqlupgrade/PG/sql202406180403.sql | 68 +++++++++++++++ .../sqlupgrade/SQLServer/sql202406180103.sql | 11 +++ .../sqlupgrade/SQLServer/sql202406180403.sql | 31 +++++++ resource/sqlupgrade/ST/sql202406180103.sql | 27 ++++++ resource/sqlupgrade/ST/sql202406180403.sql | 70 +++++++++++++++ .../salaryacct/bo/SalaryAcctEmployeeBO.java | 9 ++ .../salaryacct/bo/SalaryAcctResultBO.java | 25 +++++- .../salaryacct/po/SalaryAcctEmployeePO.java | 30 +++++++ .../mapper/datacollection/EmployMapper.xml | 24 ++--- .../salaryacct/SalaryAcctEmployeeMapper.xml | 87 +++++++++++++++++-- .../impl/SalaryEmployeeServiceImpl.java | 4 +- 22 files changed, 784 insertions(+), 28 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202406180103.sql create mode 100644 resource/sqlupgrade/DM/sql202406180403.sql create mode 100644 resource/sqlupgrade/GS/sql202406180103.sql create mode 100644 resource/sqlupgrade/GS/sql202406180403.sql create mode 100644 resource/sqlupgrade/JC/sql202406180103.sql create mode 100644 resource/sqlupgrade/JC/sql202406180403.sql create mode 100644 resource/sqlupgrade/Mysql/sql202406180103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202406180403.sql create mode 100644 resource/sqlupgrade/Oracle/sql202406180103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202406180403.sql create mode 100644 resource/sqlupgrade/PG/sql202406180103.sql create mode 100644 resource/sqlupgrade/PG/sql202406180403.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202406180103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202406180403.sql create mode 100644 resource/sqlupgrade/ST/sql202406180103.sql create mode 100644 resource/sqlupgrade/ST/sql202406180403.sql diff --git a/resource/sqlupgrade/DM/sql202406180103.sql b/resource/sqlupgrade/DM/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/DM/sql202406180403.sql b/resource/sqlupgrade/DM/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/GS/sql202406180103.sql b/resource/sqlupgrade/GS/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/GS/sql202406180403.sql b/resource/sqlupgrade/GS/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/JC/sql202406180103.sql b/resource/sqlupgrade/JC/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/JC/sql202406180403.sql b/resource/sqlupgrade/JC/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202406180103.sql b/resource/sqlupgrade/Mysql/sql202406180103.sql new file mode 100644 index 000000000..4217d5d31 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202406180103.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_salary_acct_emp +ADD COLUMN subcompany_name varchar(200) , +ADD COLUMN subcompany_id bigint(0), +ADD COLUMN department_name varchar(200), +ADD COLUMN department_id bigint(0), +ADD COLUMN jobtitle_name varchar(200) , +ADD COLUMN jobtitle_id bigint(0) , +ADD COLUMN jobcall varchar(200), +ADD COLUMN jobcall_id bigint(0), +ADD COLUMN status varchar(200); \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202406180403.sql b/resource/sqlupgrade/Mysql/sql202406180403.sql new file mode 100644 index 000000000..c81607e2b --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202406180403.sql @@ -0,0 +1,29 @@ +update hrsa_salary_acct_emp a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId + set a.department_id = b.departmentId, + a.department_name = b.departmentName, + a.subcompany_id = b.subcompanyid, + a.subcompany_name = b.subcompanyName, + a.jobtitle_id = b.jobtitleId, + a.jobtitle_name = b.jobtitleName, + a.jobcall_id = b.jobcallId, + a.jobcall = b.jobcall, + a.status = b.status +where a.delete_type=0; \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202406180103.sql b/resource/sqlupgrade/Oracle/sql202406180103.sql new file mode 100644 index 000000000..ee99ea754 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202406180103.sql @@ -0,0 +1,18 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null +/ +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add department_id NUMBER null +/ +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL +/ +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL +/ +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL +/ +alter table hrsa_salary_acct_emp add status varchar2(200) NULL +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202406180403.sql b/resource/sqlupgrade/Oracle/sql202406180403.sql new file mode 100644 index 000000000..246694499 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202406180403.sql @@ -0,0 +1,69 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202406180103.sql b/resource/sqlupgrade/PG/sql202406180103.sql new file mode 100644 index 000000000..59a96d245 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202406180103.sql @@ -0,0 +1,9 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar(200); +alter table hrsa_salary_acct_emp add subcompany_id bigint; +alter table hrsa_salary_acct_emp add department_name varchar(200); +alter table hrsa_salary_acct_emp add department_id bigint; +alter table hrsa_salary_acct_emp add jobtitle_name varchar(200); +alter table hrsa_salary_acct_emp add jobtitle_id bigint; +alter table hrsa_salary_acct_emp add jobcall varchar(200); +alter table hrsa_salary_acct_emp add jobcall_id bigint; +alter table hrsa_salary_acct_emp add status varchar(200); \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202406180403.sql b/resource/sqlupgrade/PG/sql202406180403.sql new file mode 100644 index 000000000..a15174c5f --- /dev/null +++ b/resource/sqlupgrade/PG/sql202406180403.sql @@ -0,0 +1,68 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202406180103.sql b/resource/sqlupgrade/SQLServer/sql202406180103.sql new file mode 100644 index 000000000..87973812c --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202406180103.sql @@ -0,0 +1,11 @@ +ALTER TABLE hrsa_salary_acct_emp +ADD subcompany_name varchar(200), +subcompany_id bigint, +department_name varchar(200), +department_id bigint, +jobtitle_name varchar(200), +jobtitle_id bigint, +jobcall varchar(200), +jobcall_id bigint, +status varchar(200) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202406180403.sql b/resource/sqlupgrade/SQLServer/sql202406180403.sql new file mode 100644 index 000000000..02b5785e9 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202406180403.sql @@ -0,0 +1,31 @@ +UPDATE hrsa_salary_acct_emp +set department_id = b.departmentId, + department_name = b.departmentName, + subcompany_id = b.subcompanyid, + subcompany_name = b.subcompanyName, + jobtitle_id = b.jobtitleId, + jobtitle_name = b.jobtitleName, + jobcall_id = b.jobcallId, + jobcall = b.jobcall, + status = b.status +FROM hrsa_salary_acct_emp a INNER JOIN ( + select e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) as b +on a.employee_id = b.employeeId +WHERE a.delete_type=0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202406180103.sql b/resource/sqlupgrade/ST/sql202406180103.sql new file mode 100644 index 000000000..0f51111b9 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202406180103.sql @@ -0,0 +1,27 @@ +alter table hrsa_salary_acct_emp add subcompany_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add subcompany_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add department_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add department_id NUMBER null; +/ + +alter table hrsa_salary_acct_emp add jobtitle_name varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobtitle_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall varchar2(200) NULL; +/ + +alter table hrsa_salary_acct_emp add jobcall_id NUMBER NULL; +/ + +alter table hrsa_salary_acct_emp add status varchar2(200) NULL; +/ + diff --git a/resource/sqlupgrade/ST/sql202406180403.sql b/resource/sqlupgrade/ST/sql202406180403.sql new file mode 100644 index 000000000..5e12f2f77 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202406180403.sql @@ -0,0 +1,70 @@ +update hrsa_salary_acct_emp a +set +( + department_id , + department_name, + subcompany_id , + subcompany_name, + jobtitle_id , + jobtitle_name , + jobcall_id, + jobcall, + status +) + = +( + select + b.departmentId, + b.departmentName, + b.subcompanyid, + b.subcompanyName, + b.jobtitleId, + b.jobtitleName, + b.jobcallId, + b.jobcall, + b.status from + ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId +) +where a.delete_type=0 and + exists (select 1 from ( + select + e.id as employeeId, + d.departmentname as departmentName, + d.id as departmentId, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + c.jobtitlename as jobtitleName, + c.id as jobtitleId, + e.status as status, + e.jobcall as jobcallId, + job.name as jobcall + from hrmresource e + left join hrmdepartment d on e.departmentid = d.id + left join hrmjobtitles c on e.jobtitle = c.id + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join hrmjobcall job on e.jobcall=job.id + where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) + ) b + where a.employee_id = b.employeeId + ); +/ + diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 39499174c..dbbe56104 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -147,6 +147,15 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) + .departmentId(emp.getDepartmentId()) + .departmentName(emp.getDepartmentName()) + .jobcall(emp.getJobcall()) + .jobcallId(emp.getJobcallId()) + .jobtitleId(emp.getJobtitleId()) + .jobtitleName(emp.getJobtitleName()) + .subcompanyId(emp.getSubcompanyid()) + .subcompanyName(emp.getSubcompanyName()) + .status(emp.getStatus()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index 121092602..d68ab0330 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -20,6 +20,7 @@ import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; import com.engine.salary.entity.salarysob.po.*; 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.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.SalaryEntityUtil; @@ -267,6 +268,7 @@ public class SalaryAcctResultBO { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return Collections.emptyList(); } + SalaryI18nUtil.i18nList(salaryAcctEmployees); Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId); Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAccountingResults, SalaryAcctResultPO::getEmployeeId); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); @@ -278,12 +280,31 @@ public class SalaryAcctResultBO { // 薪资项目的字段类型(前端依据这个判断是否需要展示千分位) Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); map.putAll(dataTypeMap); - // TODO ?看一下如果不是回算这会不会有回算的东西? // 人员信息字段的值 Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); // 员工信息字段的字段类型 + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", e.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", e.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", e.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", e.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", e.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", e.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", e.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", e.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } // 主键id diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index cc67bfe05..d86941b8b 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryacct.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import lombok.AllArgsConstructor; @@ -112,6 +113,35 @@ public class SalaryAcctEmployeePO { @ElogTransform(name = "锁定状态") private Integer lockStatus; + /** + * 分部 + */ + @I18n + private String subcompanyName; + private Long subcompanyId; + /** + * 部门 + */ + @I18n + private String departmentName; + private Long departmentId; + /** + * 岗位 + */ + @I18n + private String jobtitleName; + private Long jobtitleId; + /** + * 职称 + */ + @I18n + private String jobcall; + private Long jobcallId; + /** + * 状态 + */ + private String status; + //--------条件---------- //主键id集合 diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index db4af3bf7..4beb41bfc 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -99,10 +99,16 @@ c.jobtitlename as jobtitleName, c.id as jobtitleId, e.companystartdate as companystartdate, - e.mobile as mobile + e.mobile as mobile, + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid, + job.id as jobcallId, + job.name as jobcall from hrmresource e + left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id left join hrmdepartment d on e.departmentid = d.id left join hrmjobtitles c on e.jobtitle = c.id + left join hrmjobcall job on e.jobcall=job.id WHERE e.status not in (7) and (e.accounttype is null or e.accounttype = 0) AND ( 1=2 @@ -139,14 +145,6 @@ #{status} - - - - - - - - ) ) @@ -187,14 +185,6 @@ #{status} - - - - - - - - ) ) diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index cc1dc0e33..76cb2dd0d 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -16,6 +16,15 @@ + + + + + + + + + @@ -54,7 +72,16 @@ INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) VALUES ( @@ -69,15 +96,32 @@ #{emp.deleteType}, #{emp.tenantKey}, #{emp.employeeType}, - #{emp.lockStatus} + #{emp.lockStatus}, + #{emp.subcompanyName}, + #{emp.subcompanyId}, + #{emp.departmentName}, + #{emp.departmentId}, + #{emp.jobtitleName}, + #{emp.jobtitleId}, + #{emp.jobcall}, + #{emp.jobcallId}, + #{emp.status} ) INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) - + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) select #{emp.salaryAcctRecordId,jdbcType=DOUBLE}, @@ -92,6 +136,15 @@ #{emp.tenantKey,jdbcType=VARCHAR}, #{emp.employeeType,jdbcType=INTEGER}, #{emp.lockStatus,jdbcType=INTEGER} + #{emp.subcompanyName,jdbcType=VARCHAR}, + #{emp.subcompanyId,jdbcType=DOUBLE}, + #{emp.departmentName,jdbcType=VARCHAR}, + #{emp.departmentId,jdbcType=DOUBLE}, + #{emp.jobtitleName,jdbcType=VARCHAR}, + #{emp.jobtitleId,jdbcType=DOUBLE}, + #{emp.jobcall,jdbcType=VARCHAR}, + #{emp.jobcallId,jdbcType=DOUBLE}, + #{emp.status,jdbcType=VARCHAR} from dual @@ -99,7 +152,16 @@ INSERT INTO hrsa_salary_acct_emp( salary_acct_record_id, salary_sob_id, employee_id, tax_agent_id, salary_month, - creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status) + creator, create_time, update_time, delete_type, tenant_key,employee_type,lock_status, + subcompany_name, + subcompany_id, + department_name, + department_id, + jobtitle_name, + jobtitle_id, + jobcall, + jobcall_id, + status) VALUES ( #{emp.salaryAcctRecordId}, @@ -113,7 +175,16 @@ #{emp.deleteType}, #{emp.tenantKey}, #{emp.employeeType}, - #{emp.lockStatus} + #{emp.lockStatus}, + #{emp.subcompanyName}, + #{emp.subcompanyId}, + #{emp.departmentName}, + #{emp.departmentId}, + #{emp.jobtitleName}, + #{emp.jobtitleId}, + #{emp.jobcall}, + #{emp.jobcallId}, + #{emp.status} ) @@ -1274,7 +1345,7 @@ UPDATE hrsa_salary_acct_emp SET lock_status = #{lockStatus} WHERE delete_type = 0 - AND salary_acct_record_id =#{recordId} + AND salary_acct_record_id = #{recordId} diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 29635dc60..10c025dce 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -328,7 +328,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee // 从hrmresource和hrmresourcevirtual可能获取到重复人员数据,需要根据人员id去重 result = result.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(DataCollectionEmployee::getEmployeeId))), ArrayList::new)); - return SalaryI18nUtil.i18nList(result); + //部门分部等信息备份到核算人员表中,不进行多语言处理 + // return SalaryI18nUtil.i18nList(result); + return result; } /** From 81c768b7b9a0ecb2d49562d107139b4b438eabf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Jun 2024 15:28:31 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctEmployeeBO.java | 25 +++++- .../salaryacct/bo/SalaryAcctResultBO.java | 76 +++++++++++++------ .../param/SalaryAcctResultQueryParam.java | 5 ++ .../salaryacct/SalaryAcctEmployeeMapper.xml | 18 +++++ .../impl/SalaryAcctEmployeeServiceImpl.java | 4 +- .../impl/SalaryAcctExcelServiceImpl.java | 2 + .../impl/SalaryAcctResultServiceImpl.java | 2 +- .../SalaryComparisonResultServiceImpl.java | 4 +- .../service/impl/SalarySendServiceImpl.java | 30 ++++---- 9 files changed, 123 insertions(+), 43 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index dbbe56104..60058a59c 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -15,6 +15,7 @@ import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; @@ -121,9 +122,9 @@ public class SalaryAcctEmployeeBO { } public static List convert2Employee(Collection employee, - SalaryAcctRecordPO salaryAcctRecord, - List salaryArchiveTaxAgentData, - Long employeeId) { + SalaryAcctRecordPO salaryAcctRecord, + List salaryArchiveTaxAgentData, + Long employeeId) { if (CollectionUtils.isEmpty(employee)) { return Collections.emptyList(); } @@ -168,6 +169,24 @@ public class SalaryAcctEmployeeBO { return resultList; } + /** + * 核算人员信息替换实时信息 + * @param simpleEmployee + * @param acctEmployeePO + */ + public static void copyAcctEmp(DataCollectionEmployee simpleEmployee, SalaryAcctEmployeePO acctEmployeePO) { + simpleEmployee.setDepartmentId(acctEmployeePO.getDepartmentId()); + simpleEmployee.setDepartmentName(acctEmployeePO.getDepartmentName()); + simpleEmployee.setSubcompanyid(acctEmployeePO.getSubcompanyId()); + simpleEmployee.setSubcompanyName(acctEmployeePO.getSubcompanyName()); + simpleEmployee.setJobcallId(acctEmployeePO.getJobcallId()); + simpleEmployee.setJobcall(acctEmployeePO.getJobcall()); + simpleEmployee.setJobtitleId(acctEmployeePO.getJobtitleId()); + simpleEmployee.setJobtitleName(acctEmployeePO.getJobtitleName()); + simpleEmployee.setStatusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(acctEmployeePO.getStatus(), "1")))); + simpleEmployee.setStatus(acctEmployeePO.getStatus()); + } + public static List> partitionByEmployeeId(List salaryAcctEmployees) { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index d68ab0330..4989bd7f2 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -32,6 +32,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; +import weaver.general.Util; import java.lang.reflect.Field; import java.util.*; @@ -252,7 +253,7 @@ public class SalaryAcctResultBO { * @param taxAgents * @param consolidatedTaxSalaryAcctEmpIds * @param customBackCalcParameters - * @param isBackCalc + * @param dynamicEmpInfo * @return */ public static List> buildTableData(List salaryItems, @@ -264,7 +265,7 @@ public class SalaryAcctResultBO { Set consolidatedTaxSalaryAcctEmpIds, Map customParameters, Map customBackCalcParameters, - boolean isBackCalc) { + boolean dynamicEmpInfo) { if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return Collections.emptyList(); } @@ -284,26 +285,30 @@ public class SalaryAcctResultBO { Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { // 员工信息字段的字段类型 - if ("departmentName".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentName", e.getDepartmentName()); - } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentId", e.getDepartmentId()); - } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { - map.put("subcompanyName", e.getSubcompanyName()); - } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcall", e.getJobcall()); - } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcallId", e.getJobcallId()); - } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleName", e.getJobtitleName()); - } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleId", e.getJobtitleId()); - } else if ("status".equals(salarySobEmpField.getFieldCode())) { - map.put("status", e.getStatus()); - } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { - map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); - } else { + if (dynamicEmpInfo) { map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } else { + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", e.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", e.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", e.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", e.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", e.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", e.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", e.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", e.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(e.getStatus()))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } @@ -349,7 +354,8 @@ public class SalaryAcctResultBO { List taxAgents, Map customParameters, Set consolidatedTaxSalaryAcctEmpIds, - Set includeSalaryItemIds) { + Set includeSalaryItemIds, + boolean dynamicEmpInfo) { if (CollectionUtils.isEmpty(simpleEmployees)) { return Collections.emptyList(); } @@ -365,8 +371,32 @@ public class SalaryAcctResultBO { // 员工信息字段的值 Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(salaryAcctEmployee.getEmployeeId())); for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); // 员工信息字段的字段类型 + if (dynamicEmpInfo) { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } else { + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", salaryAcctEmployee.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", salaryAcctEmployee.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", salaryAcctEmployee.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", salaryAcctEmployee.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", salaryAcctEmployee.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", salaryAcctEmployee.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", salaryAcctEmployee.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", salaryAcctEmployee.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployee.getStatus(), "1")))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } + } map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } // 系统值 diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java index 8ebe19131..5f5749ac7 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQueryParam.java @@ -65,6 +65,11 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam { //薪资项目id private Collection salaryItemIds; + /** + * 是否需要实时人员信息 + */ + private boolean dynamicEmpInfo; + //其他条件 private List otherConditions; diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 76cb2dd0d..fd451cda5 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -1221,6 +1221,15 @@ + + + + + + + + + @@ -1240,6 +1249,15 @@ , t.tenant_key , t.employee_type , t.lock_status + , t.subcompany_name + , t.subcompany_id + , t.department_name + , t.department_id + , t.jobtitle_name + , t.jobtitle_id + , t.jobcall + , t.jobcall_id + , t.status diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 86ee45d37..984c5f100 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -112,7 +112,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public SalaryAcctEmployeePO getById(Long id) { - return getSalaryAcctEmployeeMapper().getById(id); + SalaryAcctEmployeePO po = getSalaryAcctEmployeeMapper().getById(id); + SalaryI18nUtil.i18n(po); + return po; } @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index d21fe8d56..bab6f297d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -389,6 +389,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // List headerList = new ArrayList<>(weaTableColumns); List headerList = new ArrayList<>(finalWeaTableColumns); // 查询薪资核算结果 + queryParam.setDynamicEmpInfo(true); List> resultMapList = getSalaryAcctResultService(user).listByParam(queryParam); @@ -757,6 +758,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc rows.add(headerList); if (param.getImportType() != null && param.getImportType().equals("true")) { // 需要导出现有数据,查询薪资核算结果 + param.setDynamicEmpInfo(true); List> resultMapList = getSalaryAcctResultService(user).listByParam(param); for (Map map : resultMapList) { List row = Lists.newArrayListWithExpectedSize(headerColumnGroup.size()); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index a1c7b9b90..1c59cceb4 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -496,7 +496,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe }); // 转换成薪资核算结果列表 - return SalaryAcctResultBO.buildTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, salaryAcctEmployeePOS, salaryAcctResultPOS, taxAgentPOS, salaryAcctEmployeeIds4ConsolidatedTax, customParameters, customBackCalcParameters, isBackCalc); + return SalaryAcctResultBO.buildTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, salaryAcctEmployeePOS, salaryAcctResultPOS, taxAgentPOS, salaryAcctEmployeeIds4ConsolidatedTax, customParameters, customBackCalcParameters, queryParam.isDynamicEmpInfo()); } diff --git a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java index 688eba134..2fd26a4b3 100644 --- a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java @@ -160,7 +160,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary // 查询薪资核算所用薪资账套的薪资项目副本 List salarySobItemPOS = salaryAcctConfig.getSalarySobItems(); // 过滤在账套中隐藏的薪资项目 - salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide()==null || po.getItemHide() == 0).collect(Collectors.toList()); + salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide() == 0).collect(Collectors.toList()); // 查询公式详情 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); @@ -230,7 +230,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary Set includeSalaryItemIds = Sets.newHashSetWithExpectedSize(salaryItemPOS.size()); // 转换成薪资核算线下对比结果 List> resultMapList = SalaryAcctResultBO.buildComparisonTableData(salaryItemPOS, salarySobEmpFieldPOS, simpleEmployees, - salaryAcctEmployeePOS, salaryAcctResultPOS, excelAcctResultPOS, taxAgentPOS, customParameters, salaryAcctEmployeeIds4ConsolidatedTax, includeSalaryItemIds); + salaryAcctEmployeePOS, salaryAcctResultPOS, excelAcctResultPOS, taxAgentPOS, customParameters, salaryAcctEmployeeIds4ConsolidatedTax, includeSalaryItemIds, queryParam.isDynamicEmpInfo()); // 系统值和线下值一致的人员 if (queryParam.isOnlyDiffEmployee()) { // 过滤系统值和线下值一致的薪资核算人员 diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 5e61fec2d..be430e0a4 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Validator; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -25,6 +26,7 @@ import com.engine.salary.entity.salaryBill.param.*; import com.engine.salary.entity.salaryBill.po.SalarySendInfoPO; import com.engine.salary.entity.salaryBill.po.SalarySendPO; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; import com.engine.salary.entity.salaryacct.param.SalaryAcctResultQueryParam; @@ -564,13 +566,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // } // 获取薪资项目数据 - - - SalaryAcctResultPO acctPo = new SalaryAcctResultPO(); - acctPo.setDeleteType(0); - acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); - acctPo.setEmployeeId(currentEmployeeId); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(currentEmployeeId).build()); + if (CollUtil.isEmpty(salaryAcctResultPOS)) { + throw new SalaryRunTimeException("薪资核算结果不存在!"); + } encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); @@ -647,6 +646,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); + SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); @@ -700,6 +701,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return map; } + + private Date getLimitMonth() { //工资单时效性 salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); @@ -941,7 +944,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .jobtitleName(simpleEmployee.getJobtitleName()) .jobtitleId(simpleEmployee.getJobtitleId()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(simpleEmployee.getStatus())).getDefaultLabel()) + .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(),"1"))).getDefaultLabel()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) .workcode(StringUtils.isEmpty(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()) @@ -1889,11 +1892,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 判断是否是补发 boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType()); - SalaryAcctResultPO acctPo = new SalaryAcctResultPO(); - acctPo.setDeleteType(0); - acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); - acctPo.setEmployeeId(recipient); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(recipient).build()); + if (CollUtil.isEmpty(salaryAcctResultPOS)) { + throw new SalaryRunTimeException("薪资核算结果不存在!"); + } encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); @@ -1969,6 +1971,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); + SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); + SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS);