From a069447f024f73c3459d0d04c58f1624a0640f6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Mon, 11 Apr 2022 20:17:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=9F=BA=E7=A1=80=E5=85=AC?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salary/annotation/SalaryFormulaVar.java | 27 +
.../engine/salary/biz/AddUpSituationBiz.java | 9 +
.../TaxDeclarationDataIndexConstant.java | 224 +++++
.../entity/datacollection/AddUpDeduction.java | 3 +
.../entity/datacollection/AddUpSituation.java | 5 +
.../salary/entity/formula/DataType.java | 11 +
.../salary/entity/formula/ExpressFormula.java | 46 +
.../salaryacct/bo/CalculateFormulaVarBO.java | 885 +++++++++---------
.../salaryacct/bo/ExpressFormulaBO.java | 262 +++---
.../salaryacct/bo/SalaryAcctCalculateBO.java | 231 ++---
.../bo/SalaryAcctCalculatePriorityBO.java | 450 ++++-----
.../bo/SalaryAcctConsolidatedTaxBO.java | 182 ++--
.../salaryacct/po/SalaryAcctResultTempPO.java | 11 +-
.../dto/SalaryFormulaEmployeeDTO.java | 13 +-
.../entity/taxrate/SysTaxRateDetailPO.java | 109 +++
.../salary/entity/taxrate/TaxRateDetail.java | 6 +-
.../salary/entity/taxrate/bo/TaxRateBO.java | 61 +-
.../entity/taxrate/bo/TaxRateDetailBO.java | 46 +-
.../enums/SalaryFormulaReferenceEnum.java | 7 +-
.../salary/mapper/SysTaxRateDetailMapper.java | 20 +
.../salary/mapper/SysTaxRateDetailMapper.xml | 55 ++
.../datacollection/AddUpDeductionMapper.xml | 8 +-
.../datacollection/AddUpSituationMapper.java | 3 +-
.../datacollection/AddUpSituationMapper.xml | 19 +
.../SalaryAcctResultTempMapper.java | 54 ++
.../salaryacct/SalaryAcctResultTempMapper.xml | 194 ++++
.../salary/service/AddUpDeductionService.java | 12 +
.../salary/service/AddUpSituationService.java | 20 +
.../service/AttendQuoteFieldService.java | 6 +-
.../salary/service/OtherDeductionService.java | 4 +
.../salary/service/RemoteExcelService.java | 24 +
.../service/SalaryAcctCalculateService.java | 22 +
.../service/SalaryAcctProgressService.java | 61 ++
.../service/SalaryAcctResultService.java | 16 +-
.../service/SalaryAcctResultTempService.java | 39 +
.../salary/service/SalaryEmployeeService.java | 6 -
.../salary/service/TaxRateBaseService.java | 10 +
.../salary/service/TaxRateDetailService.java | 43 +
.../impl/AddUpDeductionServiceImpl.java | 20 +-
.../impl/AddUpSituationServiceImpl.java | 28 +
.../impl/AttendQuoteFieldServiceImpl.java | 8 +-
.../impl/OtherDeductionServiceImpl.java | 16 +-
.../service/impl/RemoteExcelServiceImpl.java | 310 ++++++
.../impl/SalaryAcctCalculateServiceImpl.java | 277 ++++++
.../impl/SalaryAcctResultServiceImpl.java | 297 +++---
.../impl/SalaryAcctResultTempServiceImpl.java | 53 ++
.../service/impl/TaxRateBaseServiceImpl.java | 38 +
.../impl/TaxRateDetailServiceImpl.java | 67 ++
.../engine/salary/util/SalaryDateUtil.java | 4 +
.../salary/web/AttendQuoteController.java | 2 +-
.../wrapper/SalaryAcctResultWrapper.java | 103 +-
51 files changed, 3117 insertions(+), 1310 deletions(-)
create mode 100644 src/com/engine/salary/annotation/SalaryFormulaVar.java
create mode 100644 src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java
create mode 100644 src/com/engine/salary/entity/formula/DataType.java
create mode 100644 src/com/engine/salary/entity/formula/ExpressFormula.java
create mode 100644 src/com/engine/salary/entity/taxrate/SysTaxRateDetailPO.java
create mode 100644 src/com/engine/salary/mapper/SysTaxRateDetailMapper.java
create mode 100644 src/com/engine/salary/mapper/SysTaxRateDetailMapper.xml
create mode 100644 src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTempMapper.java
create mode 100644 src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTempMapper.xml
create mode 100644 src/com/engine/salary/service/RemoteExcelService.java
create mode 100644 src/com/engine/salary/service/SalaryAcctCalculateService.java
create mode 100644 src/com/engine/salary/service/SalaryAcctProgressService.java
create mode 100644 src/com/engine/salary/service/SalaryAcctResultTempService.java
create mode 100644 src/com/engine/salary/service/TaxRateDetailService.java
create mode 100644 src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java
create mode 100644 src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java
create mode 100644 src/com/engine/salary/service/impl/SalaryAcctResultTempServiceImpl.java
create mode 100644 src/com/engine/salary/service/impl/TaxRateDetailServiceImpl.java
diff --git a/src/com/engine/salary/annotation/SalaryFormulaVar.java b/src/com/engine/salary/annotation/SalaryFormulaVar.java
new file mode 100644
index 000000000..2e3077158
--- /dev/null
+++ b/src/com/engine/salary/annotation/SalaryFormulaVar.java
@@ -0,0 +1,27 @@
+package com.engine.salary.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 薪资公式计算器-变量
+ *
Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface SalaryFormulaVar {
+
+ int labelId();
+
+ String defaultLabel();
+
+ String dataType();
+
+ String fieldId() default "";
+}
diff --git a/src/com/engine/salary/biz/AddUpSituationBiz.java b/src/com/engine/salary/biz/AddUpSituationBiz.java
index 744638fe8..02054a35f 100644
--- a/src/com/engine/salary/biz/AddUpSituationBiz.java
+++ b/src/com/engine/salary/biz/AddUpSituationBiz.java
@@ -297,4 +297,13 @@ public class AddUpSituationBiz extends BaseBean {
}
+ public void deleteSome(AddUpSituation params) {
+ SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
+ try {
+ AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class);
+ mapper.deleteSome(params);
+ } finally {
+ sqlSession.close();
+ }
+ }
}
diff --git a/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java b/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java
new file mode 100644
index 000000000..6c74264a1
--- /dev/null
+++ b/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java
@@ -0,0 +1,224 @@
+package com.engine.salary.constant;
+
+public class TaxDeclarationDataIndexConstant {
+
+ /**
+ * 本期收入
+ */
+ public static final String INCOME = "income";
+
+ /**
+ * 累计收入
+ */
+ public static final String ADD_UP_INCOME = "addUpIncome";
+
+ /**
+ * 本期免税收入
+ */
+ public static final String TAX_FREE_INCOME = "taxFreeIncome";
+
+ /**
+ * 累计免税收入
+ */
+ public static final String ADD_UP_TAX_FREE_INCOME = "addUpTaxFreeIncome";
+
+ /**
+ * 基本养老保险费
+ */
+ public static final String ENDOWMENT_INSURANCE = "endowmentInsurance";
+
+ /**
+ * 基本医疗保险费
+ */
+ public static final String MEDICAL_INSURANCE = "medicalInsurance";
+
+ /**
+ * 失业保险费
+ */
+ public static final String UNEMPLOYMENT_INSURANCE = "unemploymentInsurance";
+
+ /**
+ * 住房公积金
+ */
+ public static final String HOUSING_PROVIDENT_FUND = "housingProvidentFund";
+
+ /**
+ * 社保个人合计
+ */
+ public static final String SOCIAL_SECURITY_TOTAL = "socialSecurityTotal";
+
+ /**
+ * 公积金个人合计
+ */
+ public static final String ACCUMULATION_FUND_TOTAL = "accumulationFundTotal";
+
+ /**
+ * 当前累计社保个人合计
+ */
+ public static final String ADD_UP_SOCIAL_SECURITY_TOTAL = "addUpSocialSecurityTotal";
+
+ /**
+ * 当前累计公积金个人合计
+ */
+ public static final String ADD_UP_ACCUMULATION_FUND_TOTAL = "addUpAccumulationFundTotal";
+
+ /**
+ * 当前累计企业(职业)年金及其他福利个人合计
+ */
+ public static final String ADD_UP_ENTERPRISE_AND_OTHER = "addUpEnterpriseAndOther";
+
+ /**
+ * 本月(次)专项扣除合计
+ */
+ public static final String SPECIAL_DEDUCTION = "specialDeduction";
+
+ /**
+ * 累计专项扣除
+ */
+ public static final String ADD_UP_SPECIAL_DEDUCTION = "addUpSpecialDeduction";
+
+ /**
+ * 累计子女教育
+ */
+ public static final String ADD_UP_CHILD_EDUCATION = "addUpChildEducation";
+
+ /**
+ * 累计住房贷款利息
+ */
+ public static final String ADD_UP_HOUSING_LOAN_INTEREST = "addUpHousingLoanInterest";
+
+ /**
+ * 累计住房租金
+ */
+ public static final String ADD_UP_HOUSING_RENT = "addUpHousingRent";
+
+ /**
+ * 累计继续教育
+ */
+ public static final String ADD_UP_CONTINUING_EDUCATION = "addUpContinuingEducation";
+
+ /**
+ * 累计赡养老人
+ */
+ public static final String ADD_UP_SUPPORT_ELDERLY = "addUpSupportElderly";
+
+ /**
+ * 累计大病医疗
+ */
+ public static final String ADD_UP_ILLNESS_MEDICAL = "addUpIllnessMedical";
+
+ /**
+ * 累计专项附加扣除
+ */
+ public static final String ADD_UP_SPE_ADDI_DEDUCTION = "addUpSpeAddiDeduction";
+
+ /**
+ * 减除费用
+ */
+ public static final String SUBTRACTION = "subtraction";
+
+ /**
+ * 累计减除费用
+ */
+ public static final String ADD_UP_SUBTRACTION = "addUpSubtraction";
+
+ /**
+ * 企业(职业)年金
+ */
+ public static final String ANNUITY = "annuity";
+
+ /**
+ * 商业健康保险
+ */
+ public static final String COMMERCIAL_HEALTH_INSURANCE = "commercialHealthInsurance";
+
+ /**
+ * 税延养老保险
+ */
+ public static final String TAX_DEFERRED_ENDOWMENT_INSURANCE = "taxDeferredEndowmentInsurance";
+
+ /**
+ * 其他
+ */
+ public static final String OTHER = "other";
+
+ /**
+ * 本次其他扣除合计
+ */
+ public static final String OTHER_DEDUCTION = "otherDeduction";
+
+ /**
+ * 累计其他扣除
+ */
+ public static final String ADD_UP_OTHER_DEDUCTION = "addUpOtherDeduction";
+
+ /**
+ * 准允扣除的捐赠额
+ */
+ public static final String ALLOWED_DONATION = "allowedDonation";
+
+ /**
+ * 累计准允扣除的捐赠额
+ */
+ public static final String ADD_UP_ALLOWED_DONATION = "addUpAllowedDonation";
+
+ /**
+ * 累计应纳税所得额
+ */
+ public static final String ADD_UP_TAXABLE_INCOME = "addUpTaxableIncome";
+
+ /**
+ * 税率
+ */
+ public static final String TAX_RATE = "taxRate";
+
+ /**
+ * 速算扣除数
+ */
+ public static final String QUICK_DEDUCTION_FACTOR = "quickDeductionFactor";
+
+ /**
+ * 累计应纳税额
+ */
+ public static final String ADD_UP_TAX_PAYABLE = "addUpTaxPayable";
+
+ /**
+ * 累计已纳税额
+ */
+ public static final String ADD_UP_ADVANCE_TAX = "addUpAdvanceTax";
+
+ /**
+ * 减免税额
+ */
+ public static final String TAX_DEDUCTION = "taxDeduction";
+
+ /**
+ * 累计减免税额
+ */
+ public static final String ADD_UP_TAX_DEDUCTION = "addUpTaxDeduction";
+
+ /**
+ * 应补(退)税额
+ */
+ public static final String REFUNDED_OR_SUPPLEMENTED_TAX = "refundedOrSupplementedTax";
+
+ /**
+ * 劳务收入
+ */
+ public static final String LABOR_INCOME = "laborIncome";
+
+ /**
+ * 劳务免税收入
+ */
+ public static final String LABOR_TAX_FREE_INCOME = "laborTaxFreeIncome";
+
+ /**
+ * 所得项目
+ */
+ public static final String INCOME_ITEMS = "incomeItems";
+
+ /**
+ * 备注
+ */
+ public static final String DESCRIPTION = "description";
+}
diff --git a/src/com/engine/salary/entity/datacollection/AddUpDeduction.java b/src/com/engine/salary/entity/datacollection/AddUpDeduction.java
index 6e4b78666..4720dde38 100644
--- a/src/com/engine/salary/entity/datacollection/AddUpDeduction.java
+++ b/src/com/engine/salary/entity/datacollection/AddUpDeduction.java
@@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.util.Collection;
import java.util.Date;
/**
@@ -72,4 +73,6 @@ public class AddUpDeduction {
*/
private Date updateTime;
+ Collection employeeIds;
+
}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/datacollection/AddUpSituation.java b/src/com/engine/salary/entity/datacollection/AddUpSituation.java
index 934fa3124..5389cf2cd 100644
--- a/src/com/engine/salary/entity/datacollection/AddUpSituation.java
+++ b/src/com/engine/salary/entity/datacollection/AddUpSituation.java
@@ -7,6 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.util.Collection;
import java.util.Date;
/**
@@ -115,4 +116,8 @@ public class AddUpSituation {
*/
private Integer year;
+
+ //条件
+ Collection employeeIds;
+
}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/formula/DataType.java b/src/com/engine/salary/entity/formula/DataType.java
new file mode 100644
index 000000000..01cf43636
--- /dev/null
+++ b/src/com/engine/salary/entity/formula/DataType.java
@@ -0,0 +1,11 @@
+package com.engine.salary.entity.formula;
+
+public class DataType {
+ public static final String STRING = "string";
+ public static final String NUMBER = "number";
+ public static final String DATE = "date";
+ public static final String OPTION = "option";
+ public static final String BOOL = "boolean";
+ public static final String FORM = "form";
+ public static final String DATASOURCE = "dataSource";
+}
diff --git a/src/com/engine/salary/entity/formula/ExpressFormula.java b/src/com/engine/salary/entity/formula/ExpressFormula.java
new file mode 100644
index 000000000..3619ac54d
--- /dev/null
+++ b/src/com/engine/salary/entity/formula/ExpressFormula.java
@@ -0,0 +1,46 @@
+package com.engine.salary.entity.formula;
+
+import com.engine.salary.entity.datacollection.DataCollectionEmployee;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.weaver.excel.formula.api.entity.ExpressFormulaSourceLink;
+import com.weaver.excel.formula.api.entity.FormulaVar;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ExpressFormula {
+ @JsonSerialize(
+ using = ToStringSerializer.class
+ )
+ private Long id;
+ //名称
+ private String name;
+ private String module;
+ private String parameter;
+ private Long userId;
+ private Integer status;
+ private String msgFormula;
+ private String msgParameter;
+ private Date addTime;
+ private Date lastUpdate;
+ private Integer isDelete;
+ private Long formId;
+ private int type;
+ private String tenantKey;
+ private DataCollectionEmployee creator;
+ private List sourceLinks;
+ //引用类型
+ private String referenceType;
+ //返回类型
+ private String returnType;
+ //公式内容
+ private String formula;
+ private boolean showInLibrary;
+ private String codeFormula;
+ private String msgCodeFormula;
+ private List parameters;
+ private List msgParameters;
+}
diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java
index b88b346ca..af4854b17 100644
--- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java
+++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java
@@ -1,442 +1,443 @@
-//package com.engine.salary.entity.salaryacct.bo;
-//
-//import com.google.common.collect.Lists;
-//import com.google.common.collect.Maps;
-//import com.weaver.framework.util.JsonUtil;
-//import com.weaver.hrm.salary.annotation.SalaryFormulaVar;
-//import com.weaver.hrm.salary.common.LocalDateRange;
-//import com.weaver.hrm.salary.constant.SalaryFormulaFieldConstant;
-//import com.weaver.hrm.salary.entity.datacollection.dto.AttendQuoteDataDTO;
-//import com.weaver.hrm.salary.entity.datacollection.dto.AttendQuoteDataValueDTO;
-//import com.weaver.hrm.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
-//import com.weaver.hrm.salary.entity.datacollection.po.AddUpDeductionPO;
-//import com.weaver.hrm.salary.entity.datacollection.po.AddUpSituationPO;
-//import com.weaver.hrm.salary.entity.datacollection.po.OtherDeductionPO;
-//import com.weaver.hrm.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
-//import com.weaver.hrm.salary.entity.salaryacct.po.SalaryAcctResultPO;
-//import com.weaver.hrm.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
-//import com.weaver.hrm.salary.entity.salaryarchive.dto.SalaryArchiveItemDataDTO;
-//import com.weaver.hrm.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO;
-//import com.weaver.hrm.salary.entity.salaryitem.po.SalaryItemPO;
-//import com.weaver.hrm.salary.entity.salarysob.po.SalarySobAdjustRulePO;
-//import com.weaver.hrm.salary.enums.SalaryFormulaReferenceEnum;
-//import com.weaver.hrm.salary.enums.salarysob.SalarySobAdjustRuleTypeEnum;
-//import com.weaver.hrm.salary.util.SalaryEntityUtil;
-//import com.weaver.teams.domain.user.SimpleEmployee;
-//import lombok.Data;
-//import lombok.experimental.Accessors;
-//import org.apache.commons.lang3.StringUtils;
-//import org.apache.commons.lang3.math.NumberUtils;
-//
-//import java.lang.reflect.Field;
-//import java.math.BigDecimal;
-//import java.math.RoundingMode;
-//import java.time.temporal.ChronoUnit;
-//import java.util.*;
-//import java.util.stream.Collectors;
-//
-///**
-// * @description: 薪资核算-将数据转换成公式中的变量
-// * @author: xiajun
-// * @modified By: xiajun
-// * @date: Created in 1/25/22 7:29 PM
-// * @version:v1.0
-// */
-//@Data
-//@Accessors(chain = true)
-//public class CalculateFormulaVarBO {
-//
-// /**
-// * 员工信息
-// */
-// private List simpleEmployees;
-//
-// /**
-// * 薪资档案
-// */
-// private List salaryArchiveData;
-//
-// /**
-// * 累计情况
-// */
-// private List addUpSituationPOS;
-//
-// /**
-// * 累计专项附加扣除
-// */
-// private List addUpDeductionPOS;
-//
-// /**
-// * 其他扣除
-// */
-// private List otherDeductionPOS;
-//
-// /**
-// * 社保福利
-// */
-// private List