diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties
index c62ade2bb..116589d50 100644
--- a/resource/WEB-INF/prop/hrmSalary.properties
+++ b/resource/WEB-INF/prop/hrmSalary.properties
@@ -1,5 +1,5 @@
log=false
defaultCloseNonStandard149=true
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
-version=2.14.3.2406.01
+version=2.14.4.2406.02
openFormulaForcedEditing=false
\ No newline at end of file
diff --git a/resource/sqlupgrade/DM/sql202406200203.sql b/resource/sqlupgrade/DM/sql202406200203.sql
new file mode 100644
index 000000000..df0e20a61
--- /dev/null
+++ b/resource/sqlupgrade/DM/sql202406200203.sql
@@ -0,0 +1,9 @@
+ALTER TABLE hrsa_salary_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_back_item ADD default_value varchar2(255) NULL;
+/
+
diff --git a/resource/sqlupgrade/GS/sql202406200203.sql b/resource/sqlupgrade/GS/sql202406200203.sql
new file mode 100644
index 000000000..df0e20a61
--- /dev/null
+++ b/resource/sqlupgrade/GS/sql202406200203.sql
@@ -0,0 +1,9 @@
+ALTER TABLE hrsa_salary_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_back_item ADD default_value varchar2(255) NULL;
+/
+
diff --git a/resource/sqlupgrade/JC/sql202406200203.sql b/resource/sqlupgrade/JC/sql202406200203.sql
new file mode 100644
index 000000000..df0e20a61
--- /dev/null
+++ b/resource/sqlupgrade/JC/sql202406200203.sql
@@ -0,0 +1,9 @@
+ALTER TABLE hrsa_salary_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_back_item ADD default_value varchar2(255) NULL;
+/
+
diff --git a/resource/sqlupgrade/Mysql/sql202406200203.sql b/resource/sqlupgrade/Mysql/sql202406200203.sql
new file mode 100644
index 000000000..dc241d8d5
--- /dev/null
+++ b/resource/sqlupgrade/Mysql/sql202406200203.sql
@@ -0,0 +1,3 @@
+alter table hrsa_salary_item add default_value varchar(255);
+alter table hrsa_salary_sob_item add default_value varchar(255);
+alter table hrsa_salary_sob_back_item add default_value varchar(255);
\ No newline at end of file
diff --git a/resource/sqlupgrade/Oracle/sql202406200203.sql b/resource/sqlupgrade/Oracle/sql202406200203.sql
new file mode 100644
index 000000000..141829044
--- /dev/null
+++ b/resource/sqlupgrade/Oracle/sql202406200203.sql
@@ -0,0 +1,6 @@
+ALTER TABLE hrsa_salary_item ADD default_value varchar2(255) NULL
+/
+ALTER TABLE hrsa_salary_sob_item ADD default_value varchar2(255) NULL
+/
+ALTER TABLE hrsa_salary_sob_back_item ADD default_value varchar2(255) NULL
+/
\ No newline at end of file
diff --git a/resource/sqlupgrade/PG/sql202406200203.sql b/resource/sqlupgrade/PG/sql202406200203.sql
new file mode 100644
index 000000000..39c8d422e
--- /dev/null
+++ b/resource/sqlupgrade/PG/sql202406200203.sql
@@ -0,0 +1,3 @@
+alter table hrsa_salary_item add default_value VARCHAR(255);
+alter table hrsa_salary_sob_item add default_value VARCHAR(255);
+alter table hrsa_salary_sob_back_item add default_value VARCHAR(255);
\ No newline at end of file
diff --git a/resource/sqlupgrade/SQLServer/sql202406200203.sql b/resource/sqlupgrade/SQLServer/sql202406200203.sql
new file mode 100644
index 000000000..17c17597a
--- /dev/null
+++ b/resource/sqlupgrade/SQLServer/sql202406200203.sql
@@ -0,0 +1,6 @@
+alter table hrsa_salary_item add default_value varchar(255)
+go
+alter table hrsa_salary_sob_item add default_value varchar(255)
+go
+alter table hrsa_salary_sob_back_item add default_value varchar(255)
+go
\ No newline at end of file
diff --git a/resource/sqlupgrade/ST/sql202406200203.sql b/resource/sqlupgrade/ST/sql202406200203.sql
new file mode 100644
index 000000000..df0e20a61
--- /dev/null
+++ b/resource/sqlupgrade/ST/sql202406200203.sql
@@ -0,0 +1,9 @@
+ALTER TABLE hrsa_salary_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_item ADD default_value varchar2(255) NULL;
+/
+
+ALTER TABLE hrsa_salary_sob_back_item ADD default_value varchar2(255) NULL;
+/
+
diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md
index 594b14bf8..13ba2242f 100644
--- a/resource/wiki/常用查询.md
+++ b/resource/wiki/常用查询.md
@@ -18,4 +18,4 @@ left join hrmresource e on e.id= result.employee_id
left join hrsa_tax_agent t on a.tax_agent_id=t.id
where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0
and a.employee_id=人员id and t.name=扣缴义务人名称
- and effective_time <= now() and c.name='基本工资' order by effective_time desc
\ No newline at end of file
+ c.name='基本工资' order by effective_time desc
\ No newline at end of file
diff --git a/src/com/engine/salary/constant/des.json b/src/com/engine/salary/constant/des.json
index 0b35d5f80..f970e4448 100644
--- a/src/com/engine/salary/constant/des.json
+++ b/src/com/engine/salary/constant/des.json
@@ -980,7 +980,31 @@
"infinite": true
}
]
- }
+ },
+ {
+ "name": "DAYSINMONTH",
+ "chineseName": "返回指定月的天数",
+ "description": "返回指定月的天数。",
+ "example": "DAYSINMONTH('2024-01-01')",
+ "result": "31",
+ "paramDescs": [
+ "*日期*(必选)"
+ ],
+ "formatString": "DAYSINMONTH(日期)",
+ "paramArray": [],
+ "paramData": [],
+ "returnType": "number",
+ "type": "function",
+ "validForm": "days_in_month",
+ "paramCount": -1,
+ "paramStatuses": [
+ {
+ "dataType": "date",
+ "must": true,
+ "infinite": true
+ }
+ ]
+ },
],
"dataType": "date",
"name": "日期函数",
diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java
index 2e8f30ea4..d727f7eb6 100644
--- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java
+++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java
@@ -261,7 +261,7 @@ public class SalaryBillBO {
}
Util_Message.store(messageBean);
} catch (IOException e) {
- e.printStackTrace();
+ log.error("消息发送失败",e);
}
}
diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java
new file mode 100644
index 000000000..8d48e5118
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryBill/param/SalaryPreviewParam.java
@@ -0,0 +1,32 @@
+package com.engine.salary.entity.salaryBill.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 工资单预览参数
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalaryPreviewParam {
+
+ /**
+ * 工资单id
+ */
+ private Long salaryInfoId;
+
+ /**
+ * 员工id
+ */
+ private Long recipient;
+
+}
diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java
index 1048360fa..b0c5fd15f 100644
--- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java
+++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java
@@ -40,8 +40,6 @@ public class SalaryItemBO {
private static final BaseBean baseBean = new BaseBean();
- //强制开启账套的公式配置
- private static final Boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing"));
@@ -86,6 +84,10 @@ public class SalaryItemBO {
if (CollectionUtils.isEmpty(salaryItems)) {
return Collections.emptyList();
}
+
+ //强制开启账套的公式配置
+ boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing"));
+
Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
Map sysSalaryItemNameMap = SalaryEntityUtil.convert2Map(sysSalaryItemPOS, SysSalaryItemPO::getId, SysSalaryItemPO::getName);
return salaryItems.stream().map(salaryItemPO -> {
@@ -134,6 +136,9 @@ public class SalaryItemBO {
if (CollectionUtils.isEmpty(salaryItems)) {
return Collections.emptyList();
}
+ //强制开启账套的公式配置
+ boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing"));
+
Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
Map sysSalaryItemNameMap = SalaryEntityUtil.convert2Map(sysSalaryItemPOS, SysSalaryItemPO::getId, SysSalaryItemPO::getName);
return salaryItems.stream().map(salaryItemPO -> {
@@ -171,6 +176,7 @@ public class SalaryItemBO {
.sortedIndex(salaryItemPO.getSortedIndex())
.description(salaryItemPO.getDescription())
.salaryItemType(salaryItemPO.getUseInEmployeeSalary() == 0 ? "薪资项目" : "档案字段")
+ .defaultValue(salaryItemPO.getDefaultValue())
.build();
}
).collect(Collectors.toList());
@@ -202,7 +208,8 @@ public class SalaryItemBO {
.setTaxAgentIds(salaryItemPO.getTaxAgentIds())
.setSharedType(salaryItemPO.getSharedType())
.setSortedIndex(salaryItemPO.getSortedIndex())
- .setWidth(salaryItemPO.getWidth());
+ .setWidth(salaryItemPO.getWidth())
+ .setDefaultValue(salaryItemPO.getDefaultValue());
}
/**
@@ -283,6 +290,7 @@ public class SalaryItemBO {
.taxAgentIds(saveParam.getTaxAgentIds())
.sortedIndex(saveParam.getSortedIndex())
.width(saveParam.getWidth())
+ .defaultValue(saveParam.getDefaultValue())
.build();
// 开启了"薪资档案引用",取值方式固定为输入
// if (Objects.equals(saveParam.getUseInEmployeeSalary(), NumberUtils.INTEGER_ONE)) {
diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java
index da0c6d4d5..15585ff2d 100644
--- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java
+++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java
@@ -98,4 +98,7 @@ public class SalaryItemFormDTO {
// 宽度
private Integer width;
+
+ // 默认值
+ private String defaultValue;
}
diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java
index 10aaa12bc..f90b6ff41 100644
--- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java
+++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java
@@ -113,6 +113,9 @@ public class SalaryItemSobListDTO {
//排序
private Integer sortedIndex;
+ // 默认值
+ private String defaultValue;
+
@SalaryTableColumn(text = "操作", width = "20%", column = "operate")
private String operate;
diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java
index a200cea77..c7bfbd4bf 100644
--- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java
+++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java
@@ -63,7 +63,7 @@ public class SalaryItemSaveParam {
private Integer roundingMode;
//保留小数位
- @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "小数位最多为8")
+ @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 10, message = "小数位最多为10")
private Integer pattern;
/**
@@ -107,4 +107,9 @@ public class SalaryItemSaveParam {
* 宽度
*/
private Integer width;
+
+ /**
+ * 默认值
+ */
+ private String defaultValue;
}
diff --git a/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java b/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java
index 8db3c3c89..1224b0c56 100644
--- a/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java
+++ b/src/com/engine/salary/entity/salaryitem/po/SalaryItemPO.java
@@ -191,4 +191,10 @@ public class SalaryItemPO {
*/
@ElogTransform(name = "宽度")
private Integer width;
+
+ /**
+ * 默认值
+ */
+ @ElogTransform(name = "默认值")
+ private String defaultValue;
}
diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
index 511e946c7..b1a76a4a4 100644
--- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
+++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java
@@ -144,6 +144,7 @@ public class SalarySobItemAggregateBO {
.canEdit(openFormulaForcedEditing || Objects.equals(salaryItemPO.getCanEdit(), 1))
.canDelete(openFormulaForcedEditing || salaryItemPO.getCanDelete() == null || Objects.equals(salaryItemPO.getCanDelete(), 1))
.width(salaryItemPO.getWidth())
+ .defaultValue(salaryItemPO.getDefaultValue())
.build());
}
}
diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
index 8b23d6446..9429f1522 100644
--- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
+++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemDTO.java
@@ -112,4 +112,7 @@ public class SalarySobItemDTO {
// 显示宽度
private Integer width;
+
+ // 默认值
+ private String defaultValue;
}
diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java
index f23df1512..890f52ee9 100644
--- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java
+++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java
@@ -53,7 +53,7 @@ public class SalarySobItemFormDTO {
private Integer roundingMode;
//保留小数位")
- @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "小数位最多为8")
+ @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 10, message = "小数位最多为10")
private Integer pattern;
//取值方式")
@@ -83,4 +83,7 @@ public class SalarySobItemFormDTO {
// 薪资档案引用。0:薪资档案未引用、1:薪资档案引用
private Integer useInEmployeeSalary;
+
+ // 默认值
+ private String defaultValue;
}
diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
index e166991dc..c5944e9b8 100644
--- a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
+++ b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
@@ -79,6 +79,9 @@ public class SalarySobItemSaveParam {
private Boolean canDelete;
+ // 默认值
+ private String defaultValue;
+
/**
* 进位规则
*/
diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobBackItemPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobBackItemPO.java
index 1b4981481..793d64bfe 100644
--- a/src/com/engine/salary/entity/salarysob/po/SalarySobBackItemPO.java
+++ b/src/com/engine/salary/entity/salarysob/po/SalarySobBackItemPO.java
@@ -114,6 +114,11 @@ public class SalarySobBackItemPO{
@JsonIgnore
private Date updateTime;
+ /**
+ * 默认值
+ */
+ private String defaultValue;
+
/**
@@ -132,6 +137,7 @@ public class SalarySobBackItemPO{
", valueType=" + valueType +
", formulaId=" + formulaId +
", backCalcType=" + backCalcType +
+ ", defaultValue=" + defaultValue +
'}';
}
diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
index 74e2f278a..3fed60b27 100644
--- a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
+++ b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
@@ -131,6 +131,11 @@ public class SalarySobItemPO {
//该分类是否隐藏(0不隐藏,1隐藏)
private Long itemHide;
+ /**
+ * 默认值
+ */
+ private String defaultValue;
+
//in
Collection ids;
Collection salarySobIds;
@@ -153,6 +158,7 @@ public class SalarySobItemPO {
", pattern=" + pattern +
", valueType=" + valueType +
", itemHide=" + itemHide +
+ ", defaultValue=" + defaultValue +
'}';
}
diff --git a/src/com/engine/salary/formlua/constant/FormluaConstant.java b/src/com/engine/salary/formlua/constant/FormluaConstant.java
index c3d7f4cb7..c88d7090d 100644
--- a/src/com/engine/salary/formlua/constant/FormluaConstant.java
+++ b/src/com/engine/salary/formlua/constant/FormluaConstant.java
@@ -985,7 +985,31 @@ public class FormluaConstant {
" \"infinite\": true\n" +
" }\n" +
" ]\n" +
- " }\n" +
+ " },\n" +
+ " {\n" +
+ " \"name\": \"DAYSINMONTH\",\n" +
+ " \"chineseName\": \"返回指定月的天数\",\n" +
+ " \"description\": \"返回指定月的天数。\",\n" +
+ " \"example\": \"DAYSINMONTH('2024-01-01')\",\n" +
+ " \"result\": \"31\",\n" +
+ " \"paramDescs\": [\n" +
+ " \"*日期*(必选)\"\n" +
+ " ],\n" +
+ " \"formatString\": \"DAYSINMONTH(日期)\",\n" +
+ " \"paramArray\": [],\n" +
+ " \"paramData\": [],\n" +
+ " \"returnType\": \"number\",\n" +
+ " \"type\": \"function\",\n" +
+ " \"validForm\": \"days_in_month\",\n" +
+ " \"paramCount\": -1,\n" +
+ " \"paramStatuses\": [\n" +
+ " {\n" +
+ " \"dataType\": \"date\",\n" +
+ " \"must\": true,\n" +
+ " \"infinite\": true\n" +
+ " }\n" +
+ " ]\n" +
+ " },\n" +
" ],\n" +
" \"dataType\": \"date\",\n" +
" \"name\": \"日期函数\",\n" +
diff --git a/src/com/engine/salary/formlua/core/QlExpress.java b/src/com/engine/salary/formlua/core/QlExpress.java
index 68cd238d9..9660ff1fe 100644
--- a/src/com/engine/salary/formlua/core/QlExpress.java
+++ b/src/com/engine/salary/formlua/core/QlExpress.java
@@ -189,6 +189,7 @@ public class QlExpress {
runner.addFunctionOfServiceMethod("CURRSECOND", dateTimeService, "currSecond", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("MAXDATE", dateTimeService, "maxDate", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("MINDATE", dateTimeService, "minDate", new Class[]{Object[].class}, "");
+ runner.addFunctionOfServiceMethod("DAYSINMONTH", dateTimeService, "daysInMonth", new Class[]{Object[].class}, "");
// runner.addFunctionOfServiceMethod("DAYOFMONTH", dateTimeService, "dayOfMonth", new Class[]{Object[].class}, "");
//聚合函数
diff --git a/src/com/engine/salary/formlua/func/compare/EqOperator.java b/src/com/engine/salary/formlua/func/compare/EqOperator.java
index 24ee31946..679149b83 100644
--- a/src/com/engine/salary/formlua/func/compare/EqOperator.java
+++ b/src/com/engine/salary/formlua/func/compare/EqOperator.java
@@ -1,6 +1,5 @@
package com.engine.salary.formlua.func.compare;
-import com.alibaba.fastjson.JSON;
import com.engine.salary.formlua.core.exception.ErrorType;
import com.engine.salary.formlua.entity.parameter.DataType;
import com.engine.salary.formlua.util.CompareUtil;
@@ -37,7 +36,6 @@ public class EqOperator extends OperatorEqualsLessMore {
public Object executeInner(Object... list) throws Exception {
DataType result=new DataType();
result.setDataType(DataType.BOOL);
- logger.info("等于号参数:"+JSON.toJSONString(list));
String oper="=";
if(list.length!=2){
throw new RuntimeException("[=]"+ ErrorType.MAX_VAR_COUNT.name());
@@ -75,7 +73,6 @@ public class EqOperator extends OperatorEqualsLessMore {
int i=0;
for (;i"+secondParam);
if((firstParam instanceof String || firstParam instanceof Character) && (secondParam instanceof String || secondParam instanceof Character)){
if(firstParam.toString().length()==1&&secondParam.toString().length()==1){
boolean r=firstParam.toString().equals(secondParam.toString());
diff --git a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java
index f33b7dd5a..1540b887c 100644
--- a/src/com/engine/salary/formlua/func/compare/GreaterOperator.java
+++ b/src/com/engine/salary/formlua/func/compare/GreaterOperator.java
@@ -1,6 +1,5 @@
package com.engine.salary.formlua.func.compare;
-import com.alibaba.fastjson.JSON;
import com.engine.salary.formlua.entity.parameter.DataType;
import com.engine.salary.formlua.util.CompareUtil;
import com.engine.salary.formlua.util.DateUtil;
@@ -22,7 +21,6 @@ public class GreaterOperator extends OperatorEqualsLessMore {
result.setDataType(DataType.BOOL);
// IgnoreParamFilter.filterCompareFunc(op1,op2,">");
String datatype = ExcelParamUtil.checkParamType(op1);
- logger.info("大于号比较:" + JSON.toJSONString(op1) + "-->" + JSON.toJSONString(op2));
//对option的特殊处理,获取option的字符串后根据逗号分割,然后排序数组,数组长度不一致返回false,一致则循环对比直到同样下标的数据不一致返回false,否则为true
try {
if (datatype.equals(DataType.OPTION)) {
@@ -77,8 +75,6 @@ public class GreaterOperator extends OperatorEqualsLessMore {
}
result.setContent(dateResult);
} else {
- logger.info("参数1:" + ExcelParamUtil.convertParamValToNumber(op1) + "");
- logger.info("参数2:" + ExcelParamUtil.convertParamValToNumber(op2) + "");
boolean r;
if (ExcelParamUtil.getParamType(op1).toLowerCase().equals("double") || ExcelParamUtil.getParamType(op2).toLowerCase().equals("double")) {
r = OperatorEqualsLessMore.executeInner(">", ExcelParamUtil.convertParamValToNumber(op1), ExcelParamUtil.convertParamValToNumber(op2));
diff --git a/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java b/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java
index d4d612bf8..8011e3649 100644
--- a/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java
+++ b/src/com/engine/salary/formlua/func/compare/WOperatorDiv.java
@@ -52,10 +52,9 @@ public class WOperatorDiv extends OperatorMultiDiv {
newList[1] = secondParam;
try {
Object r = super.executeInner(newList);
- logger.info("乘法运算:" + r.toString());
result.setContent(new BigDecimal(r + ""));
} catch (Exception e) {
- logger.info("除法计算异常返回0:" + e.getMessage());
+ logger.error("除法计算异常返回0:" + e.getMessage());
result.setContent(0);
}
return result;
diff --git a/src/com/engine/salary/formlua/func/date/DateTimeService.java b/src/com/engine/salary/formlua/func/date/DateTimeService.java
index 2b7dca962..7fbf04508 100644
--- a/src/com/engine/salary/formlua/func/date/DateTimeService.java
+++ b/src/com/engine/salary/formlua/func/date/DateTimeService.java
@@ -89,4 +89,11 @@ import com.engine.salary.formlua.entity.parameter.DataType;
*/
DataType currSecond(Object... objects);
+ /**
+ * 获取月有多少天
+ * @param objects
+ * @return
+ */
+ DataType daysInMonth(Object... objects);
+
}
diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java
index 07fa4c8ae..5f2ffedd0 100644
--- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java
+++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java
@@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.YearMonth;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -549,7 +550,6 @@ public class DateTimeServiceImpl implements DateTimeService {
date = lastday;
break;
}
- logger.info("firstday:" + firstday + " lastday:" + lastday);
return new DataType(DataType.STRING, date);
}
@@ -998,6 +998,37 @@ public class DateTimeServiceImpl implements DateTimeService {
int year = cal.get(Calendar.SECOND);
return new DataType(DataType.NUMBER, year);
}
+
+ @Override
+ public DataType daysInMonth(Object... objects) {
+ Class[] typeObjects = new Class[]{DateAndString.class};
+ IgnoreParamFilter.commonFilter("YEAR", 1, 1, typeObjects, objects);
+ Object obj = objects[0];
+ Object date = DateUtil.getContent(obj, formatter);
+ if (ExcelParamUtil.checkIsNull(date, ExcelParamUtil.CHECKLEVEL_STRING)) {
+ return new DataType(DataType.NUMBER, 0);
+ }
+ int year = 0;
+ try {
+ year = getDateTimeValue(date, "Y", "YEAR");
+ } catch (ParseException e) {
+ logger.error("err", e);
+ throw new RuntimeException(e);
+ }
+
+ IgnoreParamFilter.commonFilter("MONTH", 1, 1, typeObjects, objects);
+ int month = 0;
+ try {
+ month = getDateTimeValue(date, "M", "MONTH") + 1;
+ } catch (ParseException e) {
+ logger.error("err", e);
+ throw new RuntimeException(e);
+ }
+
+ YearMonth yearMonth = YearMonth.of(year, month);
+ int daysInMonth = yearMonth.lengthOfMonth();
+ return new DataType(DataType.NUMBER, daysInMonth);
+ }
/*******以下为日期函数的一些公共逻辑********/
@@ -1256,7 +1287,7 @@ public class DateTimeServiceImpl implements DateTimeService {
r = true;
break;
} catch (ParseException e) {
- logger.info(e.getMessage());
+ logger.error(e.getMessage());
r = false;
}
}
diff --git a/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java b/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java
index acda12221..e3b4f1d24 100644
--- a/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java
+++ b/src/com/engine/salary/formlua/func/finance/FinanceServiceImpl.java
@@ -79,7 +79,6 @@ public class FinanceServiceImpl implements FinanceService{
int intLen = integerNum.length();
for (int i = 0; i < intLen; i++) {
String n = integerNum.substring(i, i+1);
- logger.info("转换中文:"+n);
int p = intLen - i - 1;
int q = p / 4;
int m = p % 4;
diff --git a/src/com/engine/salary/formlua/func/logic/IfOperator.java b/src/com/engine/salary/formlua/func/logic/IfOperator.java
index 44430d341..b826836fb 100644
--- a/src/com/engine/salary/formlua/func/logic/IfOperator.java
+++ b/src/com/engine/salary/formlua/func/logic/IfOperator.java
@@ -1,6 +1,5 @@
package com.engine.salary.formlua.func.logic;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.engine.salary.formlua.core.exception.ExcelRunTimeException;
import com.engine.salary.formlua.entity.parameter.DataType;
@@ -26,7 +25,6 @@ public class IfOperator extends OperatorIf {
throw new ExcelRunTimeException("IF函数只允许三个参数");
}
Object obj = list.get(0).getObject(parent);
- logger.info("IF参数:" + JSON.toJSONString(obj));
boolean isDataTypeBool = false;
DataType boolDtaType = null;
if (obj != null && obj instanceof DataType) {
diff --git a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java
index 395b9acdf..f550fd861 100644
--- a/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java
+++ b/src/com/engine/salary/formlua/func/logic/LogicServiceImpl.java
@@ -477,7 +477,6 @@ public class LogicServiceImpl implements LogicService {
Object obj = objects[i - 1];
String typeStr = ExcelParamUtil.getParamType(obj);
typeStr = ExcelParamUtil.checkParamType(typeStr);
- logger.info(typeStr);
if (type == null) {
type = typeStr;
} else {
diff --git a/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java b/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java
index bf96613c3..f18557327 100644
--- a/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java
+++ b/src/com/engine/salary/formlua/func/string/StringFormulaServiceImpl.java
@@ -236,7 +236,6 @@ public class StringFormulaServiceImpl implements StringFormulaService {
int replaceLength=(repIdx-1)+repLenth;
if(replaceLength>sourceStr.length()){
// throw new RunTimeException(errorJson.getString("msg"));
- logger.info("REPLACE函数替换位置超过了字符长度");
replaceLength=sourceStr.length();
}
String cutStr=sourceStr.substring(repIdx-1,replaceLength);
@@ -463,7 +462,6 @@ public class StringFormulaServiceImpl implements StringFormulaService {
sex = "男";
}
}
- logger.info(sex);
return new DataType(DataType.STRING,sex);
}
@@ -471,7 +469,6 @@ public class StringFormulaServiceImpl implements StringFormulaService {
public DataType nativePlace(String idCard){
int nativePlaceCode=Integer.parseInt(idCard.substring(0, 6));
String nativePlace= NativePlace.getNativePlace(nativePlaceCode);
- logger.info("您所在的地区为:\n" + nativePlace);
return new DataType(DataType.STRING,nativePlace);
}
@@ -489,7 +486,6 @@ public class StringFormulaServiceImpl implements StringFormulaService {
if(dataType!=null && dataType.getContent()!=null){
age=dataType.getContent();
}
- logger.info("年龄:"+age);
}
} catch (ParseException e) {
logger.error("err",e);
@@ -526,7 +522,6 @@ public class StringFormulaServiceImpl implements StringFormulaService {
}
String birth=year+"-"+month+"-"+day;
- logger.info("生日为:"+birth);
result=birth;
break;
@@ -756,12 +751,10 @@ public class StringFormulaServiceImpl implements StringFormulaService {
if(fieldType.equalsIgnoreCase("string")){
if(content!=null){
try {
- logger.info("isJson函数的JSON字符转换:"+content+"");
JSON.parseObject(content+"");
resultDataType=new DataType(DataType.BOOL,true);
} catch (Exception e) {
- logger.info("err",e);
- logger.info("不是正常的JSON字符");
+ logger.error("err",e);
resultDataType=new DataType(DataType.BOOL,false);
}
}else{
@@ -800,13 +793,11 @@ public class StringFormulaServiceImpl implements StringFormulaService {
if(fieldType.equalsIgnoreCase("string")){
if(content!=null){
try {
- logger.info("isJson函数的JSON字符转换:"+content+"");
JSONObject jsonObject=JSON.parseObject(content+"");
Object jsonValue=jsonObject.get(objectKey+"");
resultDataType=new DataType(DataType.STRING,jsonValue==null?"":jsonValue.toString());
} catch (Exception e) {
logger.info("err",e);
- logger.info("不是正常的JSON字符");
resultDataType=new DataType(DataType.STRING,"");
}
}else{
diff --git a/src/com/engine/salary/formlua/util/DateUtil.java b/src/com/engine/salary/formlua/util/DateUtil.java
index 64e97e2bd..5eddb6eb0 100644
--- a/src/com/engine/salary/formlua/util/DateUtil.java
+++ b/src/com/engine/salary/formlua/util/DateUtil.java
@@ -87,7 +87,6 @@ public class DateUtil {
try {
format.setLenient(false);
format.parse(dateString);
- logger.info(dateString);
} catch (ParseException e) {
// logger.error("err",e);
convertSuccess=false;
diff --git a/src/com/engine/salary/formlua/util/IgnoreParamFilter.java b/src/com/engine/salary/formlua/util/IgnoreParamFilter.java
index 31f670347..b8db227e4 100644
--- a/src/com/engine/salary/formlua/util/IgnoreParamFilter.java
+++ b/src/com/engine/salary/formlua/util/IgnoreParamFilter.java
@@ -1,6 +1,5 @@
package com.engine.salary.formlua.util;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.engine.salary.formlua.core.exception.ErrorType;
import com.engine.salary.formlua.entity.parameter.DataType;
@@ -39,7 +38,6 @@ public class IgnoreParamFilter {
* @return
*/
public static boolean isEmployee(Object object) {
- logger.info("校验人员参数" + JSON.toJSONString(object));
// if (object instanceof DataType) {
// DataType dataType = (DataType) object;
// if (dataType.getComponentKey() != null && dataType.getComponentKey().equalsIgnoreCase(ComponentType.Employee.toString())) {
@@ -227,7 +225,6 @@ public class IgnoreParamFilter {
* @throws RuntimeException
*/
public static void filterAggFunc(String func, Object... objects) throws RuntimeException {
- logger.info("聚合参数:" + JSON.toJSONString(objects));
Integer number = getSetFuncNumber(func);
Map map = new HashMap<>();
boolean mustNumber = false;
diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml
index 93ec756ca..7b8f39b3b 100644
--- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml
+++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml
@@ -24,6 +24,9 @@
+
+
+
@@ -52,7 +55,8 @@
t.tax_agent_ids,
t.sorted_index,
t.hide_default,
- t.width
+ t.width,
+ t.default_value
@@ -221,6 +225,9 @@
width,
+
+ default_value,
+
@@ -295,6 +302,9 @@
#{width},
+
+ #{defaultValue},
+
@@ -369,7 +379,12 @@
width=#{width},
- sorted_index=#{sortedIndex},
+
+ sorted_index=#{sortedIndex},
+
+
+ default_value=#{defaultValue},
+
WHERE id = #{id} AND delete_type = 0
diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobBackItemMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobBackItemMapper.xml
index 430bb5734..85c51b081 100644
--- a/src/com/engine/salary/mapper/salarysob/SalarySobBackItemMapper.xml
+++ b/src/com/engine/salary/mapper/salarysob/SalarySobBackItemMapper.xml
@@ -52,6 +52,7 @@
, t.delete_type
, t.create_time
, t.update_time
+ , t.default_value
diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
index 04c91d121..62a3ca7ae 100644
--- a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
+++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
@@ -17,6 +17,7 @@
+
@@ -41,6 +42,7 @@
, t.rounding_mode
, t.pattern
, t.value_type
+ , t.default_value
, t.item_hide
, t.income_category
@@ -174,6 +176,7 @@
value_type=#{valueType},
item_hide=#{itemHide},
income_category=#{incomeCategory},
+ default_value=#{defaultValue},
WHERE id = #{id} AND delete_type = 0
@@ -228,6 +231,9 @@
value_type=#{valueType},
+
+ default_value=#{defaultValue},
+
item_hide=#{itemHide},
@@ -280,7 +286,7 @@
INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
+ sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category,default_value)
VALUES
(
@@ -301,13 +307,14 @@
#{item.valueType},
#{item.salaryItemCode},
#{item.itemHide},
- #{item.incomeCategory}
+ #{item.incomeCategory},
+ #{item.defaultValue}
)
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
+ sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category,default_value)
select
@@ -328,14 +335,15 @@
#{item.valueType,jdbcType=INTEGER},
#{item.salaryItemCode,jdbcType=INTEGER},
#{item.itemHide,jdbcType=DOUBLE},
- #{item.incomeCategory,jdbcType=VARCHAR}
+ #{item.incomeCategory,jdbcType=VARCHAR},
+ #{item.defaultValue,jdbcType=VARCHAR}
from dual
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
+ sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category,default_value)
VALUES
(
#{item.salarySobId},
@@ -355,7 +363,8 @@
#{item.valueType},
#{item.salaryItemCode},
#{item.itemHide},
- #{item.incomeCategory}
+ #{item.incomeCategory},
+ #{item.defaultValue}
)
diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
index e74dd2bb4..df89fef4f 100644
--- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
+++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
@@ -24,6 +24,7 @@ import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.excel.ExcelUtilPlus;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -137,6 +138,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
/**
* 获取员工发薪明细列表
+ *
* @param queryParam
*/
public Map salaryList(SalaryStatisticsEmployeeSalaryQueryParam queryParam) {
@@ -147,7 +149,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
// 获取发薪人员
PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam);
// 获取薪资核算结果
- SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList());
+ SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList());
List