diff --git a/src/com/api/salary/web/SalaryFormulaController.java b/src/com/api/salary/web/SalaryFormulaController.java new file mode 100644 index 000000000..d2e501bf9 --- /dev/null +++ b/src/com/api/salary/web/SalaryFormulaController.java @@ -0,0 +1,7 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/formula") +public class SalaryFormulaController extends com.engine.salary.web.SalaryFormulaController { +} diff --git a/src/com/engine/salary/constant/SalaryFormulaFieldConstant.java b/src/com/engine/salary/constant/SalaryFormulaFieldConstant.java index 0a75e8d53..8dd24c3ad 100644 --- a/src/com/engine/salary/constant/SalaryFormulaFieldConstant.java +++ b/src/com/engine/salary/constant/SalaryFormulaFieldConstant.java @@ -1,12 +1,13 @@ package com.engine.salary.constant; /** - * @description: 薪酬管理公式编辑器的常量 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 12/24/21 5:51 PM - * @version:v1.0 - */ + * 薪酬管理公式编辑器的常量 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryFormulaFieldConstant { // 公式变量的所属模块 diff --git a/src/com/engine/salary/entity/salaryacct/bo/ExpressFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/ExpressFormulaBO.java index 2e5430416..9f74b1b12 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/ExpressFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/ExpressFormulaBO.java @@ -1,9 +1,9 @@ package com.engine.salary.entity.salaryacct.bo; import com.engine.salary.constant.SalaryFormulaFieldConstant; -import com.engine.salary.entity.formula.ExpressFormula; -import com.engine.salary.entity.formula.po.FormulaVar; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.SalaryFormulaReferenceEnum; import com.engine.salary.util.SalaryEntityUtil; diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java index 3320f2f73..e9c0c2e76 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculateBO.java @@ -1,7 +1,7 @@ package com.engine.salary.entity.salaryacct.bo; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; -import com.engine.salary.entity.formula.ExpressFormula; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java index 4cbb26192..e1440ebc4 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java @@ -1,8 +1,8 @@ package com.engine.salary.entity.salaryacct.bo; import com.engine.salary.constant.SalaryFormulaFieldConstant; -import com.engine.salary.entity.formula.ExpressFormula; -import com.engine.salary.entity.formula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.enums.SalaryFormulaReferenceEnum; @@ -24,12 +24,13 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; /** - * @description: 薪资核算-薪资项目运算优先级 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 2/7/22 2:49 PM - * @version:v1.0 - */ + * 薪资核算-薪资项目运算优先级 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryAcctCalculatePriorityBO { /** diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java index 5a34fe533..52c3b7f13 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctCalculateParam.java @@ -22,10 +22,7 @@ import java.util.Collection; @AllArgsConstructor public class SalaryAcctCalculateParam { - /** - * 不是employeeId而是salaryAcctEmpId - */ - //核算人员的id") + //核算人员的id,不是employeeId而是salaryAcctEmpId private Collection ids; @DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空") diff --git a/src/com/engine/salary/entity/formula/ExpressFormula.java b/src/com/engine/salary/entity/salaryformula/ExpressFormula.java similarity index 90% rename from src/com/engine/salary/entity/formula/ExpressFormula.java rename to src/com/engine/salary/entity/salaryformula/ExpressFormula.java index 1ead5d76c..4314d04fe 100644 --- a/src/com/engine/salary/entity/formula/ExpressFormula.java +++ b/src/com/engine/salary/entity/salaryformula/ExpressFormula.java @@ -1,6 +1,6 @@ -package com.engine.salary.entity.formula; +package com.engine.salary.entity.salaryformula; -import com.engine.salary.entity.formula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import lombok.Data; import java.util.Date; diff --git a/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java b/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java index 578272914..320404eca 100644 --- a/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java +++ b/src/com/engine/salary/entity/salaryformula/bo/SalaryFormulaBO.java @@ -1,7 +1,7 @@ package com.engine.salary.entity.salaryformula.bo; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; -import com.weaver.excel.formula.api.entity.ExpressFormula; import org.apache.commons.collections4.CollectionUtils; import java.util.Collections; @@ -9,12 +9,13 @@ import java.util.List; import java.util.stream.Collectors; /** - * @description: 薪酬管理公式 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 12/7/21 5:49 PM - * @version:v1.0 - */ + * 薪酬管理公式 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryFormulaBO { public static List convert2DTO(List expressFormulas) { diff --git a/src/com/engine/salary/entity/salaryformula/dto/ExpressFormulaDTO.java b/src/com/engine/salary/entity/salaryformula/dto/ExpressFormulaDTO.java index 4568c5e66..a28c8b2da 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/ExpressFormulaDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/ExpressFormulaDTO.java @@ -19,12 +19,12 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class ExpressFormulaDTO { - //公式idTaxAgent + //公式id private Long id; - //公式名称TaxAgent + //公式名称 private String name; - //公式表达式TaxAgent + //公式表达式 private String formula; } diff --git a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaTaxRateDTO.java b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaTaxRateDTO.java index 4655e1984..0033a562c 100644 --- a/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaTaxRateDTO.java +++ b/src/com/engine/salary/entity/salaryformula/dto/SalaryFormulaTaxRateDTO.java @@ -8,12 +8,13 @@ import lombok.NoArgsConstructor; import java.math.BigDecimal; /** - * @description: 薪资公式计算器-个税税率表 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 11/30/21 5:03 PM - * @version:v1.0 - */ + * 薪资公式计算器-个税税率表 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @Builder @NoArgsConstructor diff --git a/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaFieldQueryParam.java b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaFieldQueryParam.java new file mode 100644 index 000000000..bf9639405 --- /dev/null +++ b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaFieldQueryParam.java @@ -0,0 +1,29 @@ +package com.engine.salary.entity.salaryformula.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Map; + +/** + * 公式字段查询参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryFormulaFieldQueryParam { + + @DataCheck(require = true,message = "变量来源不可为空") + String sourceId; + + Map extendParam; +} diff --git a/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaSaveParam.java b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaSaveParam.java new file mode 100644 index 000000000..8f5f8aaa0 --- /dev/null +++ b/src/com/engine/salary/entity/salaryformula/param/SalaryFormulaSaveParam.java @@ -0,0 +1,62 @@ +package com.engine.salary.entity.salaryformula.param; + +import com.engine.salary.entity.salaryformula.po.FormulaVar; +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryFormulaSaveParam { + /** + * id + */ + @DataCheck(require = true,message = "主键为空",runtime = RuntimeTypeEnum.UPDATE) + private Long id; + /** + * 名称 + */ + private String name; + /** + * 备注 + */ + private String description; + /** + * 模块 + */ + private String module; + /** + * 用途 + */ + private String useFor; + /** + * 引用类型 + */ + private String referenceType; + /** + * 返回类型 + */ + private String returnType; + /** + * 校验类型 + */ + private String validateType; + /** + * 扩展参数 + */ + private String extendParam; + /** + * 公式内容 + */ + private String formula; + + + private List parameters; +} diff --git a/src/com/engine/salary/entity/formula/po/FormulaPO.java b/src/com/engine/salary/entity/salaryformula/po/FormulaPO.java similarity index 93% rename from src/com/engine/salary/entity/formula/po/FormulaPO.java rename to src/com/engine/salary/entity/salaryformula/po/FormulaPO.java index 907c096c0..8694b18e7 100644 --- a/src/com/engine/salary/entity/formula/po/FormulaPO.java +++ b/src/com/engine/salary/entity/salaryformula/po/FormulaPO.java @@ -1,4 +1,4 @@ -package com.engine.salary.entity.formula.po; +package com.engine.salary.entity.salaryformula.po; import lombok.AllArgsConstructor; import lombok.Builder; @@ -32,7 +32,7 @@ public class FormulaPO { /** * 用途 */ - private String use; + private String useFor; /** * 引用类型 */ diff --git a/src/com/engine/salary/entity/formula/po/FormulaVar.java b/src/com/engine/salary/entity/salaryformula/po/FormulaVar.java similarity index 92% rename from src/com/engine/salary/entity/formula/po/FormulaVar.java rename to src/com/engine/salary/entity/salaryformula/po/FormulaVar.java index a11a3471d..40e175edc 100644 --- a/src/com/engine/salary/entity/formula/po/FormulaVar.java +++ b/src/com/engine/salary/entity/salaryformula/po/FormulaVar.java @@ -1,4 +1,4 @@ -package com.engine.salary.entity.formula.po; +package com.engine.salary.entity.salaryformula.po; import lombok.AllArgsConstructor; import lombok.Builder; @@ -43,7 +43,7 @@ public class FormulaVar { /** * 排序 */ - private Integer order; + private Integer orderIndex; /** * 创建人 */ diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java index 854c0bb6f..a053be167 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryitem.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO; import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam; @@ -11,21 +12,22 @@ import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.weaver.excel.formula.api.entity.ExpressFormula; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import weaver.conn.util.IdGenerator; import java.util.*; import java.util.stream.Collectors; /** - * @description: 薪资项目 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 10/28/21 4:55 PM - * @version:v1.0 - */ + * 薪资项目 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryItemBO { @@ -165,7 +167,7 @@ public class SalaryItemBO { // long id = IdGenerator.generate(); SalaryItemPO salaryItemPO = SalaryItemPO.builder() // .id(id) -// .code(String.valueOf(id)) + .code(IdGenerator.getUUID()) .name(saveParam.getName()) .systemType(SalarySystemTypeEnum.CUSTOM.getValue()) .sysSalaryItemId(NumberUtils.LONG_ZERO) @@ -175,7 +177,7 @@ public class SalaryItemBO { .pattern(Optional.ofNullable(saveParam.getPattern()).orElse(2)) .valueType(saveParam.getValueType()) .dataType(saveParam.getDataType()) - .formulaId(saveParam.getValueType() == SalaryValueTypeEnum.FORMULA.getValue() ? Optional.ofNullable(saveParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO) : NumberUtils.LONG_ZERO) + .formulaId(Objects.equals(saveParam.getValueType(), SalaryValueTypeEnum.FORMULA.getValue()) ? Optional.ofNullable(saveParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO) : NumberUtils.LONG_ZERO) .description(saveParam.getDescription()) .canEdit(NumberUtils.INTEGER_ONE) .creator(employeeId) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobCheckRuleBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobCheckRuleBO.java index 472e67942..ab809f578 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobCheckRuleBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobCheckRuleBO.java @@ -1,7 +1,7 @@ package com.engine.salary.entity.salarysob.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.salary.entity.formula.ExpressFormula; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleFormDTO; import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleListDTO; import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleSaveParam; diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index f3a705bb3..9c61b303a 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salarysob.bo; import com.engine.salary.annotation.SalaryFormulaVar; +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.po.SalaryItemPO; @@ -16,7 +17,6 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.weaver.excel.formula.api.entity.ExpressFormula; import lombok.AllArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.math.NumberUtils; diff --git a/src/com/engine/salary/enums/SalaryFormulaReferenceEnum.java b/src/com/engine/salary/enums/SalaryFormulaReferenceEnum.java index ec513acb2..e7ed5a300 100644 --- a/src/com/engine/salary/enums/SalaryFormulaReferenceEnum.java +++ b/src/com/engine/salary/enums/SalaryFormulaReferenceEnum.java @@ -4,38 +4,39 @@ package com.engine.salary.enums; import java.util.Objects; /** - * @description: 薪资项目公式引用分类 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 11/1/21 10:16 AM - * @version:v1.0 - */ -public enum SalaryFormulaReferenceEnum implements BaseEnum { + * 薪资项目公式引用分类 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum SalaryFormulaReferenceEnum implements BaseEnum { - SALARY_ITEM(1, "薪资项目", 84960), - // SALARY_ITEM_OF_HISTORY(2, "历史台账薪资项目", 85364), - EMPLOYEE_INFO(3, "员工基本信息", 85366), - SALARY_ARCHIVES(4, "薪资档案", 85368), - ATTEND(5, "考勤引用", 85367), - ADD_UP_SITUATION(6, "往期累计情况", 104412), - ADD_UP_DEDUCTIONS(7, "累计专项附加扣除", 85380), - WELFARE(8, "社保福利", 87522), - OTHER_DEDUCTION(9, "其他免税扣除", 93849), + SALARY_ITEM("salaryItem", "薪资项目", 84960), + // SALARY_ITEM_OF_HISTORY("salaryItemOfHistory", "历史台账薪资项目", 85364), + EMPLOYEE_INFO("employeeInfo", "员工基本信息", 85366), + SALARY_ARCHIVES("salaryArchives", "薪资档案", 85368), + ATTEND("attend", "考勤引用", 85367), + ADD_UP_SITUATION("addUpSituation", "往期累计情况", 104412), + ADD_UP_DEDUCTIONS("addUpDeductions", "累计专项附加扣除", 85380), + WELFARE("welfare", "社保福利", 87522), + OTHER_DEDUCTION("otherDeduction", "其他免税扣除", 93849), ; - private int value; + private String value; private String defaultLabel; private int labelId; - SalaryFormulaReferenceEnum(int value, String defaultLabel, int labelId) { + SalaryFormulaReferenceEnum(String value, String defaultLabel, int labelId) { this.value = value; this.defaultLabel = defaultLabel; this.labelId = labelId; } @Override - public Integer getValue() { + public String getValue() { return value; } @@ -51,7 +52,7 @@ public enum SalaryFormulaReferenceEnum implements BaseEnum { public static SalaryFormulaReferenceEnum parseByValue(String value) { for (SalaryFormulaReferenceEnum referenceEnum : SalaryFormulaReferenceEnum.values()) { - if (Objects.equals(referenceEnum.getValue() + "", value)) { + if (Objects.equals(referenceEnum.getValue(), value)) { return referenceEnum; } } diff --git a/src/com/engine/salary/enums/SalaryValueTypeEnum.java b/src/com/engine/salary/enums/SalaryValueTypeEnum.java index 775adddb8..8e2f03b54 100644 --- a/src/com/engine/salary/enums/SalaryValueTypeEnum.java +++ b/src/com/engine/salary/enums/SalaryValueTypeEnum.java @@ -5,12 +5,13 @@ import java.util.Arrays; import java.util.Objects; /** - * @description: 字段类型 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 11/1/21 4:35 PM - * @version:v1.0 - */ + * 字段类型 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public enum SalaryValueTypeEnum implements BaseEnum { INPUT(1, "输入", 84976), diff --git a/src/com/engine/salary/enums/salaryitem/SalaryDataTypeEnum.java b/src/com/engine/salary/enums/salaryitem/SalaryDataTypeEnum.java index f63b61d7b..4da922590 100644 --- a/src/com/engine/salary/enums/salaryitem/SalaryDataTypeEnum.java +++ b/src/com/engine/salary/enums/salaryitem/SalaryDataTypeEnum.java @@ -6,12 +6,13 @@ import java.util.Arrays; import java.util.Objects; /** - * @description: 薪资项目的字段类型 - * @author: xiajun - * @modified By: xiajun - * @date: 2022/3/10 17:16 - * @version:v1.0 - */ + * 薪资项目的字段类型 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public enum SalaryDataTypeEnum implements BaseEnum { STRING("string", "字符", 105093), NUMBER("number", "数值", 87625), diff --git a/src/com/engine/salary/init.sql b/src/com/engine/salary/init.sql index 5900a8c47..0b2d87b91 100644 --- a/src/com/engine/salary/init.sql +++ b/src/com/engine/salary/init.sql @@ -22,6 +22,8 @@ alter table hrsa_salary_archive_item modify id bigint auto_increment; alter table hrsa_salary_acct_record modify id bigint auto_increment; alter table hrsa_salary_acct_emp modify id bigint auto_increment; alter table hrsa_acct_result_temp modify id bigint auto_increment; +alter table hrsa_formula modify id bigint auto_increment; +alter table hrsa_formula_var modify id bigint auto_increment; --福利方案主键自增增加 diff --git a/src/com/engine/salary/mapper/formula/FormulaMapper.java b/src/com/engine/salary/mapper/formula/FormulaMapper.java index bde94aff7..322e7e20a 100644 --- a/src/com/engine/salary/mapper/formula/FormulaMapper.java +++ b/src/com/engine/salary/mapper/formula/FormulaMapper.java @@ -1,6 +1,7 @@ package com.engine.salary.mapper.formula; -import com.engine.salary.entity.formula.po.FormulaPO; +import com.engine.salary.entity.salaryformula.po.FormulaPO; +import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; @@ -55,5 +56,5 @@ public interface FormulaMapper { */ int delete(FormulaPO formula); - List listByIds(Collection ids); + List listByIds(@Param("ids")Collection ids); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/formula/FormulaMapper.xml b/src/com/engine/salary/mapper/formula/FormulaMapper.xml index 20962688a..4184bceb1 100644 --- a/src/com/engine/salary/mapper/formula/FormulaMapper.xml +++ b/src/com/engine/salary/mapper/formula/FormulaMapper.xml @@ -1,12 +1,12 @@ - + - + @@ -26,7 +26,7 @@ , t.name , t.description , t.module - , t.use + , t.use_for , t.reference_type , t.return_type , t.validate_type @@ -55,7 +55,7 @@ - SELECT FROM hrsa_formula t @@ -72,8 +72,8 @@ AND module = #{module} - - AND use = #{use} + + AND use_for = #{useFor} AND reference_type = #{referenceType} @@ -113,7 +113,7 @@ - INSERT INTO hrsa_formula @@ -131,8 +131,8 @@ module, - - use, + + use_for, reference_type, @@ -175,8 +175,8 @@ #{module}, - - #{use}, + + #{useFor}, #{referenceType}, @@ -208,9 +208,30 @@ + + + UPDATE hrsa_formula + + name=#{name}, + description=#{description}, + module=#{module}, + use_for=#{useFor}, + reference_type=#{referenceType}, + return_type=#{returnType}, + validate_type=#{validateType}, + extend_param=#{extendParam}, + formula=#{formula}, + creator=#{creator}, + delete_type=#{deleteType}, + create_time=#{createTime}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + - + UPDATE hrsa_formula @@ -222,8 +243,8 @@ module=#{module}, - - use=#{use}, + + use_for=#{useFor}, reference_type=#{referenceType}, @@ -258,7 +279,7 @@ - + UPDATE hrsa_formula SET delete_type=1 WHERE id = #{id} diff --git a/src/com/engine/salary/mapper/formula/FormulaVarMapper.java b/src/com/engine/salary/mapper/formula/FormulaVarMapper.java index 002f490a5..ca25e4752 100644 --- a/src/com/engine/salary/mapper/formula/FormulaVarMapper.java +++ b/src/com/engine/salary/mapper/formula/FormulaVarMapper.java @@ -1,6 +1,6 @@ package com.engine.salary.mapper.formula; -import com.engine.salary.entity.formula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import java.util.List; @@ -44,13 +44,6 @@ public interface FormulaVarMapper { * @return 返回影响行数 */ int updateIgnoreNull(FormulaVar formulaVar); - - /** - * 删除记录 - * - * @param formulaVar 待删除的记录 - * @return 返回影响行数 - */ - int delete(FormulaVar formulaVar); - + + void deleteByFormulaId(Long formulaId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml b/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml index 240b5e32c..faf6d97c0 100644 --- a/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml +++ b/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml @@ -1,7 +1,7 @@ - + @@ -9,7 +9,7 @@ - + @@ -27,7 +27,7 @@ , t.field_name , t.field_type , t.source - , t.order + , t.order_index , t.creator , t.delete_type , t.create_time @@ -51,14 +51,12 @@ - SELECT FROM hrsa_formula_var t WHERE delete_type = 0 - - AND id = #{id} - AND name = #{name} @@ -77,8 +75,8 @@ AND source = #{source} - - AND order = #{order} + + AND order_index = #{orderIndex} AND creator = #{creator} @@ -92,26 +90,17 @@ AND update_time = #{updateTime} - - AND id IN - - #{id} - - ORDER BY id DESC - INSERT INTO hrsa_formula_var - - id, - name, @@ -130,8 +119,8 @@ source, - - order, + + order_index, creator, @@ -147,9 +136,6 @@ - - #{id}, - #{name}, @@ -168,8 +154,8 @@ #{source}, - - #{order}, + + #{orderIndex}, #{creator}, @@ -187,8 +173,9 @@ + - + UPDATE hrsa_formula_var @@ -209,8 +196,8 @@ source=#{source}, - - order=#{order}, + + order_index=#{orderIndex}, creator=#{creator}, @@ -229,13 +216,11 @@ - - + UPDATE hrsa_formula_var SET delete_type=1 - WHERE id = #{id} + WHERE formula_id = #{formulaId} AND delete_type = 0 - \ No newline at end of file diff --git a/src/com/engine/salary/service/RemoteExcelService.java b/src/com/engine/salary/service/RemoteExcelService.java index 7894abedf..8081451ee 100644 --- a/src/com/engine/salary/service/RemoteExcelService.java +++ b/src/com/engine/salary/service/RemoteExcelService.java @@ -1,6 +1,7 @@ package com.engine.salary.service; -import com.weaver.excel.formula.api.entity.FormulaVar; + +import com.engine.salary.entity.salaryformula.po.FormulaVar; import java.util.List; import java.util.Map; @@ -12,6 +13,9 @@ public interface RemoteExcelService { List fieldList(String sourceId, Map extendParam); + List> fieldGroupList(Map extendParam); + + // ExcelPage dataSourceList(String categoryId, ExcelPage page, Map extendParam, SimpleEmployee employee); // // List findProperData(String dataId, String fieldId, String fieldType, Map extendParam, SimpleEmployee employee); diff --git a/src/com/engine/salary/service/SalaryFormulaService.java b/src/com/engine/salary/service/SalaryFormulaService.java index b58c2ed59..8527912dc 100644 --- a/src/com/engine/salary/service/SalaryFormulaService.java +++ b/src/com/engine/salary/service/SalaryFormulaService.java @@ -1,6 +1,7 @@ package com.engine.salary.service; -import com.engine.salary.entity.formula.ExpressFormula; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; import java.util.Collection; import java.util.List; @@ -30,4 +31,8 @@ public interface SalaryFormulaService { * @return */ ExpressFormula getExpressFormula(Long formulaId); + + void save(SalaryFormulaSaveParam salaryFormulaSaveParam); + + void update(SalaryFormulaSaveParam salaryFormulaSaveParam); } diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index 88d432fa3..6560353bc 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -10,6 +10,7 @@ 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.formula.DataType; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaTaxRateDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; @@ -22,7 +23,6 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; -import com.weaver.excel.formula.api.entity.FormulaVar; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -130,6 +130,16 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic return vars; } + @Override + public List> fieldGroupList(Map extendParam) { + return Arrays.stream(SalaryFormulaReferenceEnum.values()).map(e -> { + Map map = new HashMap<>(); + map.put("key", e.getValue()); + map.put("value", SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())); + return map; + }).collect(Collectors.toList()); + } + // @Override // public ExcelPage dataSourceList(String categoryId, ExcelPage page, Map extendParam, SimpleEmployee employee) { // log.info("categoryId: {}, page: {}", categoryId, JsonUtil.toJsonString(page)); @@ -218,7 +228,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic private List salaryItem2FormulaVar(SalaryFormulaReferenceEnum referenceEnum, Map extendParam) { Set salaryItemIds = Collections.emptySet(); - Object salarySobId = extendParam.get("salarySobId"); + Object salarySobId = extendParam == null ? null : extendParam.get("salarySobId"); if (Objects.nonNull(salarySobId)) { List salarySobItems = getSalarySobItemService(user).listBySalarySobId(Long.valueOf(String.valueOf(salarySobId))); salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); @@ -233,12 +243,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic .map(e -> { FormulaVar formulaVar = new FormulaVar(); formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + e.getCode()); - formulaVar.setTitle(e.getName()); - formulaVar.setFormId("" + referenceEnum.getValue()); - formulaVar.setDataType(DataType.NUMBER); - formulaVar.setModule(SalaryFormulaFieldConstant.MODULE); - formulaVar.setProperKey(DataType.NUMBER); - formulaVar.setProperKey(e.getDataType()); + formulaVar.setName(e.getName()); + formulaVar.setSource("" + referenceEnum.getValue()); + formulaVar.setFieldType(e.getDataType()); return formulaVar; }).collect(Collectors.toList()); @@ -258,13 +265,11 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic } else { formulaVar.setFieldId(annotation.fieldId()); } - formulaVar.setModule(SalaryFormulaFieldConstant.MODULE); - formulaVar.setTitle(SalaryI18nUtil.getI18nLabel(annotation.labelId(), annotation.defaultLabel())); - formulaVar.setFormId(formId); - formulaVar.setDataType(annotation.dataType()); - formulaVar.setProperKey(DataType.NUMBER); + formulaVar.setName(SalaryI18nUtil.getI18nLabel(annotation.labelId(), annotation.defaultLabel())); + formulaVar.setSource(formId); + formulaVar.setFieldType(annotation.dataType()); if (StringUtils.equals(formId, "" + SalaryFormulaReferenceEnum.EMPLOYEE_INFO.getValue())) { - formulaVar.setProperKey(DataType.STRING); + formulaVar.setSource(DataType.STRING); } formulaVars.add(formulaVar); } @@ -279,12 +284,12 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic List formulaVars = Lists.newArrayListWithExpectedSize(welfareColumns.size()); welfareColumns.forEach((k, v) -> { FormulaVar formulaVar = new FormulaVar(); - formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + v); - formulaVar.setModule(SalaryFormulaFieldConstant.MODULE); - formulaVar.setTitle(k); - formulaVar.setFormId("" + referenceEnum.getValue()); - formulaVar.setDataType(DataType.NUMBER); - formulaVar.setProperKey(DataType.NUMBER); +// formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + v); +// formulaVar.setModule(SalaryFormulaFieldConstant.MODULE); +// formulaVar.setTitle(k); +// formulaVar.setFormId("" + referenceEnum.getValue()); +// formulaVar.setDataType(DataType.NUMBER); +// formulaVar.setProperKey(DataType.NUMBER); formulaVars.add(formulaVar); }); return formulaVars; @@ -298,11 +303,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic List formulaVars = fields.stream().map(e -> { FormulaVar formulaVar = new FormulaVar(); formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + e.getId()); - formulaVar.setModule(SalaryFormulaFieldConstant.MODULE); - formulaVar.setTitle(e.getFieldName()); - formulaVar.setFormId("" + referenceEnum.getValue()); - formulaVar.setDataType(DataType.NUMBER); - formulaVar.setProperKey(DataType.NUMBER); + formulaVar.setName(e.getFieldName()); + formulaVar.setSource("" + referenceEnum.getValue()); + formulaVar.setFieldType(DataType.NUMBER); return formulaVar; }).collect(Collectors.toList()); return formulaVars; diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 86986b3e6..b8b462689 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -9,8 +9,8 @@ import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteDataDTO; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; -import com.engine.salary.entity.formula.ExpressFormula; -import com.engine.salary.entity.formula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryacct.bo.*; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index edb5fc037..f735b85fd 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -6,7 +6,7 @@ import com.engine.salary.biz.TaxAgentBiz; import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; -import com.engine.salary.entity.formula.ExpressFormula; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; @@ -481,6 +481,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // salaryAcctRecordLoggerTemplate.write(loggerContext); } catch (Exception e) { log.info("薪资核算出错:{}", e.getMessage(), e); + throw new SalaryRunTimeException(e); // salaryAcctProgressService.fail("" + calculateParam.getSalaryAcctRecordId(), SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage()); } finally { // 数据库字段加密用 diff --git a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java index 31e67cbc7..cabd27ac7 100644 --- a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.salary.entity.salaryacct.po.ExcelAcctResultPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; @@ -31,7 +32,6 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.PageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import com.weaver.excel.formula.api.entity.ExpressFormula; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; diff --git a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java index 2418b3237..8e7db8de4 100644 --- a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java @@ -1,23 +1,24 @@ package com.engine.salary.service.impl; import com.engine.core.impl.Service; -import com.engine.salary.entity.formula.ExpressFormula; -import com.engine.salary.entity.formula.po.FormulaPO; -import com.engine.salary.entity.formula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; +import com.engine.salary.entity.salaryformula.po.FormulaPO; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.formula.FormulaMapper; import com.engine.salary.mapper.formula.FormulaVarMapper; import com.engine.salary.service.SalaryFormulaService; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -86,4 +87,79 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe throw new SalaryRunTimeException("获取公示详情失败"); } } + + @Override + public void save(SalaryFormulaSaveParam param) { + + FormulaPO formulaPO = new FormulaPO(); + + formulaPO.setName(param.getName()); + formulaPO.setDescription(param.getDescription()); + formulaPO.setModule(param.getModule()); + formulaPO.setUseFor(param.getUseFor()); + formulaPO.setReferenceType(param.getReferenceType()); + formulaPO.setReturnType(param.getReturnType()); + formulaPO.setValidateType(param.getValidateType()); + formulaPO.setExtendParam(param.getExtendParam()); + formulaPO.setFormula(param.getFormula()); + formulaPO.setDeleteType(NumberUtils.INTEGER_ZERO); + + Date now = new Date(); + formulaPO.setCreateTime(now); + formulaPO.setUpdateTime(now); + formulaPO.setCreator((long) user.getUID()); + getFormulaMapper().insertIgnoreNull(formulaPO); + + List parameters = param.getParameters(); + parameters.forEach(po -> { + po.setFormulaId(formulaPO.getId()); + po.setDeleteType(NumberUtils.INTEGER_ZERO); + po.setCreator((long) user.getUID()); + po.setCreateTime(now); + po.setUpdateTime(now); + getFormulaVarMapper().insertIgnoreNull(po); + }); + + } + + + @Override + public void update(SalaryFormulaSaveParam param) { + + ValidUtil.doValidator(param, RuntimeTypeEnum.UPDATE); + + Long id = param.getId(); + FormulaPO formulaPO = getFormulaMapper().getById(id); + if (formulaPO == null) { + throw new SalaryRunTimeException("公式不存在或已删除"); + } + + formulaPO.setName(param.getName()); + formulaPO.setDescription(param.getDescription()); + formulaPO.setModule(param.getModule()); + formulaPO.setUseFor(param.getUseFor()); + formulaPO.setReferenceType(param.getReferenceType()); + formulaPO.setReturnType(param.getReturnType()); + formulaPO.setValidateType(param.getValidateType()); + formulaPO.setExtendParam(param.getExtendParam()); + formulaPO.setFormula(param.getFormula()); + formulaPO.setDeleteType(NumberUtils.INTEGER_ZERO); + + Date now = new Date(); + formulaPO.setUpdateTime(now); + formulaPO.setCreator((long) user.getUID()); + getFormulaMapper().updateIgnoreNull(formulaPO); + + List parameters = param.getParameters(); + //删除公式下的变量 + getFormulaVarMapper().deleteByFormulaId(id); + parameters.forEach(po -> { + po.setCreator((long) user.getUID()); + po.setCreateTime(now); + po.setUpdateTime(now); + getFormulaVarMapper().insertIgnoreNull(po); + }); + + } + } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 0ba8ed754..f2227fb9b 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -6,6 +6,7 @@ import com.engine.salary.biz.SalarySobBiz; import com.engine.salary.biz.SalarySobItemBiz; import com.engine.salary.biz.SalarySobItemGroupBiz; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; @@ -18,7 +19,6 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.weaver.excel.formula.api.entity.ExpressFormula; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; @@ -270,6 +270,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe @Override public void batchSave(Collection salarySobItemPOS) { + if (CollectionUtils.isEmpty(salarySobItemPOS)){ + return; + } salarySobItemMapper.batchInsert(salarySobItemPOS); } diff --git a/src/com/engine/salary/transmethod/TransMethod.java b/src/com/engine/salary/transmethod/TransMethod.java index f261cddaf..58058052a 100644 --- a/src/com/engine/salary/transmethod/TransMethod.java +++ b/src/com/engine/salary/transmethod/TransMethod.java @@ -1,7 +1,7 @@ package com.engine.salary.transmethod; import com.engine.salary.enums.SalaryCycleTypeEnum; -import com.engine.salary.enums.SalaryDataSourceEnum; +import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.enums.datacollection.AttendQuoteFieldSourceTypeEnum; import com.engine.salary.enums.datacollection.AttendQuoteFieldTypeEnum; import com.engine.salary.enums.datacollection.AttendQuoteSourceTypeEnum; @@ -90,7 +90,7 @@ public class TransMethod { * @return */ public static String datasource(String datasource) { - return SalaryDataSourceEnum.getDefaultLabelByValue(Integer.valueOf(datasource)); + return SalaryValueTypeEnum.getDefaultLabelByValue(Integer.valueOf(datasource)); } /** diff --git a/src/com/engine/salary/web/SalaryFormulaController.java b/src/com/engine/salary/web/SalaryFormulaController.java new file mode 100644 index 000000000..6c87d4765 --- /dev/null +++ b/src/com/engine/salary/web/SalaryFormulaController.java @@ -0,0 +1,65 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; +import com.engine.salary.entity.salaryformula.po.FormulaVar; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.wrapper.SalaryFormulaWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.List; +import java.util.Map; + +public class SalaryFormulaController { + + + private SalaryFormulaWrapper getSalaryFormulaWrapper(User user) { + return (SalaryFormulaWrapper) ServiceUtil.getService(SalaryFormulaWrapper.class, user); + } + + //变量项 + @POST + @Path("/search/group") + @Produces(MediaType.APPLICATION_JSON) + public String fieldGroupList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, List>>().run(getSalaryFormulaWrapper(user)::fieldGroupList, param); + } + + //变量字段列表 + @POST + @Path("/search/field") + @Produces(MediaType.APPLICATION_JSON) + public String fieldList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryFormulaFieldQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getSalaryFormulaWrapper(user)::fieldList, param); + } + + //获取公式详情 + @GET + @Path("/detail") + @Produces(MediaType.APPLICATION_JSON) + public String detail(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "formulaId") Long formulaId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryFormulaWrapper(user)::detail, formulaId); + } + + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryFormulaSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getSalaryFormulaWrapper(user)::save, param); + } + + +} diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index b64471b20..8ef64cf69 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -19,9 +19,6 @@ import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.ValidUtil; -import com.weaver.util.threadPool.ThreadPoolUtil; -import com.weaver.util.threadPool.constant.ModulePoolEnum; -import com.weaver.util.threadPool.entity.LocalRunnable; import weaver.hrm.User; import java.util.HashMap; @@ -187,13 +184,13 @@ public class SalaryAcctResultWrapper extends Service { // .setMessage(StringUtils.EMPTY); // salaryAcctProgressService.initProgress("" + calculateParam.getSalaryAcctRecordId(), initProgress, simpleEmployee.getEmployeeId(), tenantKey); // 异步执行薪资核算 - LocalRunnable localRunnable = new LocalRunnable() { - @Override - public void execute() { +// LocalRunnable localRunnable = new LocalRunnable() { +// @Override +// public void execute() { getSalaryAcctResultService(user).calculate(calculateParam, simpleEmployee); - } - }; - ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "salaryAcctCalculate", localRunnable); +// } +// }; +// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "salaryAcctCalculate", localRunnable); } /** diff --git a/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java b/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java new file mode 100644 index 000000000..49131016d --- /dev/null +++ b/src/com/engine/salary/wrapper/SalaryFormulaWrapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryformula.ExpressFormula; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam; +import com.engine.salary.entity.salaryformula.po.FormulaVar; +import com.engine.salary.entity.salaryformula.bo.SalaryFormulaBO; +import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; +import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.RemoteExcelService; +import com.engine.salary.service.SalaryFormulaService; +import com.engine.salary.service.impl.RemoteExcelServiceImpl; +import com.engine.salary.service.impl.SalaryFormulaServiceImpl; +import org.apache.commons.collections4.CollectionUtils; +import weaver.hrm.User; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 薪资项目 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SalaryFormulaWrapper extends Service { + + private RemoteExcelService getRemoteExcelService(User user) { + return (RemoteExcelService) ServiceUtil.getService(RemoteExcelServiceImpl.class, user); + } + + private SalaryFormulaService getSalaryFormulaService(User user) { + return (SalaryFormulaService) ServiceUtil.getService(SalaryFormulaServiceImpl.class, user); + } + + + /** + * 公式字段列表 + * + * @param param 查询参数 + * @return + */ + public List fieldList(SalaryFormulaFieldQueryParam param) { + return getRemoteExcelService(user).fieldList(param.getSourceId(), param.getExtendParam()); + } + + + /** + * 公式字段分类 + * + * @param param 查询参数 + * @return + */ + public List> fieldGroupList(Map param) { + return getRemoteExcelService(user).fieldGroupList(param); + } + + public ExpressFormulaDTO detail(Long formulaId) { + List expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(formulaId)); + if (CollectionUtils.isEmpty(expressFormulas)) { + throw new SalaryRunTimeException("获取公式详情失败"); + } + return SalaryFormulaBO.convert2DTO(expressFormulas).get(0); + } + + public void save(SalaryFormulaSaveParam salaryFormulaSaveParam) { + getSalaryFormulaService(user).save(salaryFormulaSaveParam); + } +} diff --git a/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java b/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java index 8a35e24b5..d607c8b37 100644 --- a/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java @@ -2,7 +2,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.formula.ExpressFormula; +import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salarysob.bo.SalarySobCheckRuleBO; import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleFormDTO; import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleListDTO;