From dff9657c3db40ba851e961ffebaa584b4fc85339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 29 Apr 2022 14:17:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataCollectionEmployee.java | 32 ++++---- .../salaryacct/bo/CalculateFormulaVarBO.java | 73 +++++++++++++++++++ .../salaryacct/bo/SalaryAcctFormulaBO.java | 6 +- .../dto/SalaryFormulaEmployeeDTO.java | 58 ++++++++++----- .../SalaryFormulaReferenceEnum.java | 2 +- .../mapper/datacollection/EmployMapper.xml | 3 + .../service/impl/RemoteExcelServiceImpl.java | 16 ++-- .../impl/SalaryAcctCalculateServiceImpl.java | 41 +++-------- .../service/impl/SalarySendServiceImpl.java | 8 +- .../salary/wrapper/SalarySobItemWrapper.java | 4 +- 10 files changed, 162 insertions(+), 81 deletions(-) diff --git a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java index f7d0a77e5..395a353c1 100644 --- a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java +++ b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java @@ -21,32 +21,36 @@ import lombok.NoArgsConstructor; public class DataCollectionEmployee { //员工id - @SalaryFormulaVar(defaultLabel ="员工id", labelId = 86184, dataType = "string") + @SalaryFormulaVar(defaultLabel = "员工id", labelId = 86184, dataType = "string") private Long employeeId; // 个税扣缴义务人 - @SalaryFormulaVar(defaultLabel ="个税扣缴义务人", labelId = 86184, dataType = "string") - private String taxAgentName; +// private String taxAgentName; +// @SalaryFormulaVar(defaultLabel = "个税扣缴义务人", labelId = 86184, dataType = "string") +// private Long taxAgentId; //姓名 - @SalaryFormulaVar(defaultLabel ="姓名", labelId = 85429, dataType = "string") + @SalaryFormulaVar(defaultLabel = "姓名", labelId = 85429, dataType = "string") private String username; //部门 - @SalaryFormulaVar(defaultLabel ="部门", labelId = 86185, dataType = "string") + @SalaryFormulaVar(defaultLabel = "部门", labelId = 86185, dataType = "string") private String departmentName; + @SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86185, dataType = "string") private Long departmentId; //岗位 - @SalaryFormulaVar(defaultLabel ="岗位", labelId = 90633, dataType = "string") + @SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string") private String jobtitleName; + @SalaryFormulaVar(defaultLabel = "岗位ID", labelId = 90633, dataType = "string") + private Long jobtitleId; //入职日期 - @SalaryFormulaVar(defaultLabel ="入职日期", labelId = 86319, dataType = "string") + @SalaryFormulaVar(defaultLabel = "入职日期", labelId = 86319, dataType = "string") private String companystartdate; //手机号 - @SalaryFormulaVar(defaultLabel ="手机", labelId = 98621, dataType = "string") + @SalaryFormulaVar(defaultLabel = "手机", labelId = 98621, dataType = "string") private String mobile; //离职日期 @@ -56,27 +60,27 @@ public class DataCollectionEmployee { private String status; //工号 - @SalaryFormulaVar(defaultLabel ="工号", labelId = 98622, dataType = "string") + @SalaryFormulaVar(defaultLabel = "工号", labelId = 98622, dataType = "string") private String workcode; //性别 - @SalaryFormulaVar(defaultLabel ="性别", labelId = 98622, dataType = "string") + @SalaryFormulaVar(defaultLabel = "性别", labelId = 98622, dataType = "string") private String sex; //邮件 - @SalaryFormulaVar(defaultLabel ="邮件", labelId = 92919, dataType = "string") + @SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string") private String email; //电话 - @SalaryFormulaVar(defaultLabel ="电话", labelId = 98620, dataType = "string") + @SalaryFormulaVar(defaultLabel = "电话", labelId = 98620, dataType = "string") private String telephone; //职称 - @SalaryFormulaVar(defaultLabel ="职称", labelId = 98623, dataType = "string") + @SalaryFormulaVar(defaultLabel = "职称", labelId = 98623, dataType = "string") private String jobcall; //生日 - @SalaryFormulaVar(defaultLabel ="出生日期", labelId = 98624, dataType = "string") + @SalaryFormulaVar(defaultLabel = "出生日期", labelId = 98624, dataType = "string") private String birthday; //是否是系统管理员 diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index e89d506c9..b2a9eb0e0 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -18,6 +18,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobAdjustRulePO; import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.enums.salarysob.SalarySobAdjustRuleTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryDateUtil; @@ -128,9 +129,14 @@ public class CalculateFormulaVarBO { handleWelfareData(salaryAcctCalculateBO, resultMap); // 处理考勤数据 handleAttendQuoteData(salaryAcctCalculateBO, resultMap); + + //处理核算人员信息 + handleSalaryAcctEmployee(salaryAcctCalculateBO, resultMap); + handleSimpleEmployees(resultMap); return resultMap; } + /** * 处理薪资核算结果 * @@ -427,6 +433,73 @@ public class CalculateFormulaVarBO { } } + /** + * 处理核算人员信息 + * + * @param salaryAcctCalculateBO + * @param resultMap + */ + private void handleSalaryAcctEmployee(SalaryAcctCalculateBO salaryAcctCalculateBO, Map> resultMap) { + List salaryAcctEmployeePOS = salaryAcctCalculateBO.getSalaryAcctEmployeePOS(); + + // key:employeeId_taxAgentId、value:核算人员信息 + Map salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployeePOS, + po -> po.getEmployeeId() + "_" + po.getTaxAgentId()); + // 核算人员信息可选字段 + List fieldNames = Lists.newArrayList(); + Field[] declaredFields = SalaryAcctEmployeePO.class.getDeclaredFields(); + for (Field declaredField : declaredFields) { + if (declaredField.isAnnotationPresent(SalaryFormulaVar.class)) { + fieldNames.add(declaredField.getName()); + } + } + // 填充到返回结果集中 + salaryAcctEmployeeMap.forEach((key, po) -> { + List formulaVarValues = resultMap.computeIfAbsent(key, k -> Lists.newArrayList()); + Map map = JsonUtil.parseMap(po, String.class); + formulaVarValues.addAll(fieldNames.stream().map(fieldName -> { + String fieldId = SalarySQLReferenceEnum.SALARY_ACCT_EMPLOYEE.getValue() + + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + + fieldName; + return new FormulaVarValue().setFieldId(fieldId).setFieldValue(map.getOrDefault(fieldName, StringUtils.EMPTY)); + }).collect(Collectors.toList())); + }); + + } + + /** + * 处理员工基本信息 + * + * @param resultMap + */ + private void handleSimpleEmployees(Map> resultMap) { + + // key:employeeId_taxAgentId、value:员工信息 + Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, + po -> po.getEmployeeId() + ""); + // 核算人员信息可选字段 + List fieldNames = Lists.newArrayList(); + Field[] declaredFields = DataCollectionEmployee.class.getDeclaredFields(); + for (Field declaredField : declaredFields) { + if (declaredField.isAnnotationPresent(SalaryFormulaVar.class)) { + fieldNames.add(declaredField.getName()); + } + } + // 填充到返回结果集中 + employeeMap.forEach((key, po) -> { + List formulaVarValues = resultMap.computeIfAbsent(key, k -> Lists.newArrayList()); + Map map = JsonUtil.parseMap(po, String.class); + formulaVarValues.addAll(fieldNames.stream().map(fieldName -> { + String fieldId = SalarySQLReferenceEnum.EMPLOYEE_INFO.getValue() + + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + + fieldName; + return new FormulaVarValue().setFieldId(fieldId).setFieldValue(map.getOrDefault(fieldName, StringUtils.EMPTY)); + }).collect(Collectors.toList())); + }); + + } + + @Data @Accessors(chain = true) public static class FormulaVarValue { diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index 40281b54f..4f421abae 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -78,9 +78,9 @@ public class SalaryAcctFormulaBO { .sex(sexName) .status(simpleEmployee.getStatus()) .departmentName(simpleEmployee.getDepartmentName()) - .positionName(simpleEmployee.getJobtitleName()) - .gradeName(simpleEmployee.getJobcall()) - .hireDate(simpleEmployee.getCompanystartdate()) + .jobtitleName(simpleEmployee.getJobtitleName()) + .jobcall(simpleEmployee.getJobcall()) + .companystartdate(simpleEmployee.getCompanystartdate()) .birthday(simpleEmployee.getBirthday()) .build(); return JsonUtil.parseMap(JsonUtil.toJsonString(formulaEmployee), String.class); diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java index 7f454fd77..f1ab88fd2 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaEmployeeDTO.java @@ -24,43 +24,65 @@ public class SalaryFormulaEmployeeDTO { @SalaryFormulaVar(defaultLabel = "个税扣缴义务人", labelId = 86184, dataType = "string") private String taxAgentName; + @SalaryFormulaVar(defaultLabel = "个税扣缴义务人ID", labelId = 86184, dataType = "string") + private String taxAgentId; @SalaryFormulaVar(defaultLabel = "姓名", labelId = 85429, dataType = "string") private String username; - @SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string") - private String email; + //部门 + @SalaryFormulaVar(defaultLabel = "部门", labelId = 86185, dataType = "string") + private String departmentName; + @SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86185, dataType = "string") + private Long departmentId; + + //岗位 + @SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string") + private String jobtitleName; + @SalaryFormulaVar(defaultLabel = "岗位ID", labelId = 90633, dataType = "string") + private Long jobtitleId; + + @SalaryFormulaVar(defaultLabel = "入职日期", labelId = 86319, dataType = "string") + private String companystartdate; + + //手机号 @SalaryFormulaVar(defaultLabel = "手机", labelId = 98621, dataType = "string") private String mobile; - @SalaryFormulaVar(defaultLabel = "电话", labelId = 98620, dataType = "string") - private String telephone; + //离职日期 + private String dissmissdate; + + //状态 + private String status; + + //工号 + @SalaryFormulaVar(defaultLabel = "工号", labelId = 98622, dataType = "string") + private String workcode; + + //性别 + @SalaryFormulaVar(defaultLabel = "性别", labelId = 98622, dataType = "string") + private String sex; + // @SalaryFormulaVar(defaultLabel = "证件号码", labelId = 86318, dataType = "string") // private String idNo; - @SalaryFormulaVar(defaultLabel = "性别", labelId = 98622, dataType = "string") - private String sex; + //邮件 + @SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string") + private String email; - @SalaryFormulaVar(defaultLabel = "状态", labelId = 91075, dataType = "string") - private String status; - @SalaryFormulaVar(defaultLabel = "部门", labelId = 86185, dataType = "string") - private String departmentName; + @SalaryFormulaVar(defaultLabel = "电话", labelId = 98620, dataType = "string") + private String telephone; - @SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string") - private String positionName; - @SalaryFormulaVar(defaultLabel = "职级", labelId = 98623, dataType = "string") - private String gradeName; + //职称 + @SalaryFormulaVar(defaultLabel = "职称", labelId = 98623, dataType = "string") + private String jobcall; - @SalaryFormulaVar(defaultLabel = "入职日期", labelId = 86319, dataType = "string") - private String hireDate; @SalaryFormulaVar(defaultLabel = "出生日期", labelId = 98624, dataType = "string") private String birthday; -// //首次参加工作日期", labelId = 98625, dataType = "string") -// private String firstWorkDate; } diff --git a/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java b/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java index bb25103d9..68703d914 100644 --- a/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java +++ b/src/com/engine/salary/enums/salaryformula/SalaryFormulaReferenceEnum.java @@ -17,7 +17,7 @@ public enum SalaryFormulaReferenceEnum implements BaseEnum { SALARY_ITEM("salaryItem", "薪资项目", 84960), // SALARY_ITEM_OF_HISTORY("salaryItemOfHistory", "历史台账薪资项目", 85364), - EMPLOYEE_INFO("employeeInfo", "员工基本信息", 85366), +// EMPLOYEE_INFO("employeeInfo", "员工基本信息", 85366), SALARY_ARCHIVES("salaryArchives", "薪资档案", 85368), ATTEND("attend", "考勤引用", 85367), ADD_UP_SITUATION("addUpSituation", "往期累计情况", 104412), diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index b0a04e1e6..832152b2e 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -33,6 +33,7 @@ d.departmentname as departmentName, d.id as departmentId, c.jobtitlename as jobtitleName, + c.id as jobtitleId, e.companystartdate as companystartdate, e.mobile as mobile, b.dismissdate as dismissdate @@ -84,6 +85,7 @@ d.departmentname as departmentName, d.id as departmentId, c.jobtitlename as jobtitleName, + c.id as jobtitleId, e.companystartdate as companystartdate, e.mobile as mobile from hrmresource e @@ -134,6 +136,7 @@ d.departmentname as departmentName, d.id as departmentId, c.jobtitlename as jobtitleName, + c.id as jobtitleId, e.companystartdate as companystartdate, e.mobile as mobile, b.dismissdate as dismissdate diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index 1b96cac7e..04ed5f202 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -6,11 +6,11 @@ import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.constant.SalaryFormulaFieldConstant; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteFieldQueryParam; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; -import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaTaxRateDTO; import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; @@ -106,7 +106,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic if (referenceEnum != null) { switch (referenceEnum) { case EMPLOYEE_INFO: - vars = convert2FormulaVar(SalaryFormulaEmployeeDTO.class, referenceEnum.getValue() + ""); + vars = convert2FormulaVar(DataCollectionEmployee.class, referenceEnum.getValue() + ""); break; case SALARY_ACCT_EMPLOYEE: vars = convert2FormulaVar(SalaryAcctEmployeePO.class, referenceEnum.getValue() + ""); @@ -133,9 +133,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic case ADD_UP_DEDUCTIONS: vars = convert2FormulaVar(AddUpDeduction.class, referenceEnum.getValue() + ""); break; - case EMPLOYEE_INFO: - vars = convert2FormulaVar(SalaryFormulaEmployeeDTO.class, referenceEnum.getValue() + ""); - break; +// case EMPLOYEE_INFO: +// vars = convert2FormulaVar(SalaryFormulaEmployeeDTO.class, referenceEnum.getValue() + ""); +// break; case OTHER_DEDUCTION: vars = convert2FormulaVar(OtherDeductionPO.class, referenceEnum.getValue() + ""); break; @@ -307,9 +307,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic formulaVar.setName(SalaryI18nUtil.getI18nLabel(annotation.labelId(), annotation.defaultLabel())); formulaVar.setSource(formId); formulaVar.setFieldType(annotation.dataType()); - if (StringUtils.equals(formId, "" + SalaryFormulaReferenceEnum.EMPLOYEE_INFO.getValue())) { - formulaVar.setSource(DataType.STRING); - } +// if (StringUtils.equals(formId, "" + SalaryFormulaReferenceEnum.EMPLOYEE_INFO.getValue())) { +// formulaVar.setSource(DataType.STRING); +// } formulaVars.add(formulaVar); } return formulaVars; diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index f88e456e2..b2dc5b200 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -141,8 +141,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc Map> otherSalaryAcctEmployeePOMap = SalaryEntityUtil.group2Map(otherSalaryAcctEmployeePOS, salaryAcctEmployeePO -> salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()); // 10、转换成公式编辑器中的变量 - CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, - welfareData, attendQuoteDataDTOS, salaryAcctResultPOS); + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, welfareData, attendQuoteDataDTOS, salaryAcctResultPOS); Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); // 本次薪资核算所用的薪资账套下的薪资项目 @@ -155,8 +154,10 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc List salaryAcctResultTempPOS = Lists.newArrayList(); // 开始核算 for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { - // 获取当前薪资核算人员的公式中的变量的值 + //1 获取当前薪资核算人员的公式中的变量的值 List formulaVarValues = formulaVarMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()); + //2人员信息 + formulaVarValues.addAll(formulaVarMap.get(salaryAcctEmployeePO.getEmployeeId() + "")); Map formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue); // 按照计算好的优先级计算薪资项目的值 for (List salaryItemIds : salaryAcctCalculateBO.getSalaryItemIdWithPriorityList()) { @@ -184,28 +185,20 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc resultValue = runExpressSQL(expressFormula, formulaVarValueMap, simpleEmployee); } else { // 处理取值类型为“输入/导入”的薪资项目 - String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() - + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR - + salaryItemPO.getCode(); + String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); resultValue = formulaVarValueMap.getOrDefault(key, StringUtils.EMPTY); } // 处理薪资档案 if (Objects.equals(salaryItemPO.getUseInEmployeeSalary(), NumberUtils.INTEGER_ONE)) { - String key = SalaryFormulaReferenceEnum.SALARY_ARCHIVES.getValue() - + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR - + salaryItemPO.getCode(); + String key = SalaryFormulaReferenceEnum.SALARY_ARCHIVES.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); resultValue = formulaVarValueMap.getOrDefault(key, StringUtils.EMPTY); } // 处理合并计税 - resultValue = handleConsolidatedTax(resultValue, salaryItemPO, salaryAcctCalculateBO, - otherSalaryAcctEmployeePOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()), - otherSalaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId())); + resultValue = handleConsolidatedTax(resultValue, salaryItemPO, salaryAcctCalculateBO, otherSalaryAcctEmployeePOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId()), otherSalaryAcctResultPOMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId())); // 处理小数点 resultValue = SalaryAcctFormulaBO.roundResultValue(resultValue, salaryItemPO); // 将已经计算过的薪资项目的值转换成公式变量的值添加到集合中 - String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() - + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR - + salaryItemPO.getCode(); + String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); formulaVarValueMap.put(key, resultValue); // 值保存薪资账套下的薪资项目的核算结果 @@ -213,19 +206,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc // 转换成薪资核算结果po SalaryAcctResultTempPO salaryAcctResultTempPO = new SalaryAcctResultTempPO() // .setId(IdGenerator.generate()) - .setSalaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()) - .setSalaryAcctEmpId(salaryAcctEmployeePO.getId()) - .setEmployeeId(salaryAcctEmployeePO.getEmployeeId()) - .setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()) - .setSalarySobId(salaryAcctEmployeePO.getSalarySobId()) - .setSalaryItemId(salaryItemPO.getId()) - .setResultValue(resultValue) - .setCalculateKey(salaryAcctCalculateBO.getCalculateKey()) - .setCreator((long) user.getUID()) - .setCreateTime(now) - .setUpdateTime(now) - .setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .setDeleteType(0); + .setSalaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()).setSalaryAcctEmpId(salaryAcctEmployeePO.getId()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setSalarySobId(salaryAcctEmployeePO.getSalarySobId()).setSalaryItemId(salaryItemPO.getId()).setResultValue(resultValue).setCalculateKey(salaryAcctCalculateBO.getCalculateKey()).setCreator((long) user.getUID()).setCreateTime(now).setUpdateTime(now).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setDeleteType(0); salaryAcctResultTempPOS.add(salaryAcctResultTempPO); } } @@ -314,9 +295,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc } // 相同税款所属期内其他薪资核算记录 Set otherSalaryAcctRecordIds = SalaryEntityUtil.properties(otherSalaryAcctEmployeePOS, SalaryAcctEmployeePO::getSalaryAcctRecordId); - List otherSalaryAcctRecordPOS = salaryAcctCalculateBO.getOtherSalaryAcctRecordPOS().stream() - .filter(e -> otherSalaryAcctRecordIds.contains(e.getId())) - .collect(Collectors.toList()); + List otherSalaryAcctRecordPOS = salaryAcctCalculateBO.getOtherSalaryAcctRecordPOS().stream().filter(e -> otherSalaryAcctRecordIds.contains(e.getId())).collect(Collectors.toList()); // 相同税款所属期内,同一个个税扣缴义务人下的同一个人存在多次工资薪金类型的薪资核算记录,那么只有最早创建的薪资核算记录可以扣减如下数据:减除费用、专项扣除、专项附加扣除、其他扣除 // 根据薪资核算记录的创建时间判断是否需要做合并计税处理 boolean needConsolidatedTax = otherSalaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctCalculateBO.getSalaryAcctRecordPO().getCreateTime().compareTo(salaryAcctRecordPO.getCreateTime()) > 0); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 880615db9..90c116693 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -472,11 +472,11 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .birthday(simpleEmployee.getBirthday()) .departmentName(simpleEmployee.getDepartmentName() ) .email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail()) - .gradeName(simpleEmployee.getJobcall()) - .hireDate(simpleEmployee.getCompanystartdate()) - .sex(simpleEmployee.getSex() == "0" ? "男" : "女") + .jobcall(simpleEmployee.getJobcall()) + .companystartdate(simpleEmployee.getCompanystartdate()) + .sex("0".equals(simpleEmployee.getSex()) ? "男" : "女") .mobile(StringUtils.isEmpty(simpleEmployee.getMobile()) ? "" : simpleEmployee.getMobile()) - .positionName(simpleEmployee.getJobtitleName()) + .jobtitleName(simpleEmployee.getJobtitleName()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index ccb221841..508a90b6b 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -3,8 +3,8 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.annotation.SalaryFormulaVar; -import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.bo.SalaryItemBO; import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; @@ -156,7 +156,7 @@ public class SalarySobItemWrapper extends Service { * @return */ public Collection> empFieldList() { - Field[] declaredFields = DataCollectionEmployee.class.getDeclaredFields(); + Field[] declaredFields = SalaryFormulaEmployeeDTO.class.getDeclaredFields(); Map empFieldMap = Maps.newHashMapWithExpectedSize(declaredFields.length); List> list = new ArrayList(); for (Field declaredField : declaredFields) {